REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 75.82 KB
Close
/lib/python3.6/site-packages/OpenSSL/__pycache__/SSL.cpython-36.pyc
Text
Base64
Mw0NCqsXRlyHWwEA4wAAAAAAAAAAAAAAAFIAAABAAAAAcwQFAABkAGQBbABaAGQAZAFsAVoBZABkAmwCbQNaAwEAZABkA2wEbQVaBW0GWgYBAGQAZARsB20IWghtCVoJAQBkAGQFbAptC1oLAQBkAGQGbAxtDVoNAQBkAGQHbA5tD1oPAQBkAGQIbBBtEVoSbRNaE20UWhRtFVoVAQBkAGQJbBZtF1oYbRlaGm0bWhxtHVoebR9aIG0hWiJtI1okbSVaJm0nWigBAGQAZApsKW0qWiptK1orbSxaLG0tWi1tLloubS9aLwEAZAtkDGQNZA5kD2QQZBFkEmQTZBRkFWQWZBdkGGQZZBpkG2QcZB1kHmQfZCBkIWQiZCNkJGQlZCZkJ2QoZClkKmQrZCxkLWQuZC9kMGQxZDJkM2Q0ZDVkNmQ3ZDhkOWQ6ZDtkPGQ9ZD5kP2RAZEFkQmRDZERkRWRGZEdkSGRJZEpkS2RMZE1kTmRPZFBkUWRSZFNkVGRVZFZkV2RYZFlkWmRbZFxnUloweQhlMVoyVwBuJgQAZTNrCpABcpoBAAEAAQBHAGRdZF6EAGReZTSDA1oyWQBuAlgAZR5qNVo1ZR5qNlo2ZR5qN1o3ZR5qOFo4ZR5qOVo5ZR5qOlo6ZR5qO1o8ZR5qPVo+ZF9aP2RgWkBkYVpBZGJaQmRjWkNkZFpEZR5qRVpGZR5qR1pIZR5qSVpKZR5qS1pMZR5qTVpOZR5qT1pQZR5qUVpSZR5qU1pUZR5qVVpWZR5qV1pYZR5qWVpaZR5qW1pcZR5qXVpeZR5qX1pgZR5qYVpiZR5qY1pkZR5qZVpmZR5qZ1poZR5qaVpqZR5qa1psZR5qbVpuZR5qb1pwZR5qcVpyZR5qc1p0ZR5qdVp2ZR5qd1p4ZR5qeVp6ZR5qe1p8ZR5qfVp+ZR5qf1qAZR5qgVqCZR5qg1qEZR5qhVqGZR5qh1qIZR5qiVqKZR5qi1qMZR5qjVqOZR5qj1qQZR5qkVqSZR5qk1qUZR5qlVqWZR5ql1qYZR5qmVqZZR5qmlqaZR5qm1qbZR5qnJADciRlHmqdWp1lHmqeWp5lHmqfWp9lHmqgWqBlMGqhZGVkZmRnZGhnBIMBAQBlHmqiWqJlHmqjWqNlHmqkWqRlHmqlWqVlHmqmWqZlHmqnWqdlHmqoWqhlHmqpWqllHmqqWqplHmqrWqtlHmqsWqxlHmqtWq1lHmquWq5kaWRqZGtkbGRtZwVar2RuZwFasGRvWrFkcFqyRwBkcWRThABkU2WzgwNatGUGZRpltIMCWrVlIGW0gwFatkcAZHJkVIQAZFRltIMDWrdHAGRzZFWEAGRVZbSDA1q4RwBkdGRWhABkVmW0gwNauUcAZHVkV4QAZFdltIMDWrpHAGR2ZFiEAGRYZbSDA1q7RwBkd2R4hABkeGU0gwNavEcAZHlkeoQAZHplvIMDWr1HAGR7ZHyEAGR8ZbyDA1q+RwBkfWR+hABkfmW8gwNav0cAZH9kgIQAZIBlvIMDWsBHAGSBZIKEAGSCZbyDA1rBRwBkg2SEhABkhGW8gwNawmSFZIaEAFrDZIdkWYQAWsRkiGSJhABaxWXFZR5qxmSKgwJax2XFZR5qyGSLgwJayWXFZR5qymSMgwJay0cAZI1kWoQAZFplNIMDWsxHAGSOZFuEAGRbZTSDA1rNZQ9lzWXOZI9lz4MEWtBHAGSQZFyEAGRcZTSDA1rRZQ9l0WXOZJFlz4MEWtJlHmrTgwABAGQBUwApkukAAAAATikB2ghwbGF0Zm9ybSkC2gV3cmFwc9oHcGFydGlhbCkC2gVjb3VudNoFY2hhaW4pAdoTV2Vha1ZhbHVlRGljdGlvbmFyeSkB2gllcnJvcmNvZGUpAdoKZGVwcmVjYXRlZCkE2gtiaW5hcnlfdHlwZdoNaW50ZWdlcl90eXBlc9oIaW50MmJ5dGXaCmluZGV4Ynl0ZXMpCdoLVU5TUEVDSUZJRUTaGmV4Y2VwdGlvbl9mcm9tX2Vycm9yX3F1ZXVl2gNmZmnaA2xpYtoLbWFrZV9hc3NlcnTaBm5hdGl2ZdoLcGF0aF9zdHJpbmfaFnRleHRfdG9fYnl0ZXNfYW5kX3dhcm7aEW5vX3plcm9fYWxsb2NhdG9yKQbaDEZJTEVUWVBFX1BFTdoRX1Bhc3NwaHJhc2VIZWxwZXLaBFBLZXnaCFg1MDlOYW1l2gRYNTA52glYNTA5U3RvcmXaFk9QRU5TU0xfVkVSU0lPTl9OVU1CRVLaDlNTTEVBWV9WRVJTSU9O2g1TU0xFQVlfQ0ZMQUdT2g9TU0xFQVlfUExBVEZPUk3aClNTTEVBWV9ESVLaD1NTTEVBWV9CVUlMVF9PTtoNU0VOVF9TSFVURE9XTtoRUkVDRUlWRURfU0hVVERPV07aDFNTTHYyX01FVEhPRNoMU1NMdjNfTUVUSE9E2g1TU0x2MjNfTUVUSE9E2gxUTFN2MV9NRVRIT0TaDlRMU3YxXzFfTUVUSE9E2g5UTFN2MV8yX01FVEhPRNoLT1BfTk9fU1NMdjLaC09QX05PX1NTTHYz2gtPUF9OT19UTFN2MdoNT1BfTk9fVExTdjFfMdoNT1BfTk9fVExTdjFfMtoUTU9ERV9SRUxFQVNFX0JVRkZFUlPaEE9QX1NJTkdMRV9ESF9VU0XaEk9QX1NJTkdMRV9FQ0RIX1VTRdoQT1BfRVBIRU1FUkFMX1JTQdoYT1BfTUlDUk9TT0ZUX1NFU1NfSURfQlVH2hlPUF9ORVRTQ0FQRV9DSEFMTEVOR0VfQlVH2iNPUF9ORVRTQ0FQRV9SRVVTRV9DSVBIRVJfQ0hBTkdFX0JVR9oeT1BfU1NMUkVGMl9SRVVTRV9DRVJUX1RZUEVfQlVH2h1PUF9NSUNST1NPRlRfQklHX1NTTFYzX0JVRkZFUtoZT1BfTVNJRV9TU0xWMl9SU0FfUEFERElOR9obT1BfU1NMRUFZXzA4MF9DTElFTlRfREhfQlVH2g1PUF9UTFNfRDVfQlVH2hhPUF9UTFNfQkxPQ0tfUEFERElOR19CVUfaHk9QX0RPTlRfSU5TRVJUX0VNUFRZX0ZSQUdNRU5UU9obT1BfQ0lQSEVSX1NFUlZFUl9QUkVGRVJFTkNF2hNPUF9UTFNfUk9MTEJBQ0tfQlVH2hBPUF9QS0NTMV9DSEVDS18x2hBPUF9QS0NTMV9DSEVDS18y2hVPUF9ORVRTQ0FQRV9DQV9ETl9CVUfaIk9QX05FVFNDQVBFX0RFTU9fQ0lQSEVSX0NIQU5HRV9CVUfaEU9QX05PX0NPTVBSRVNTSU9O2g9PUF9OT19RVUVSWV9NVFXaEk9QX0NPT0tJRV9FWENIQU5HRdoMT1BfTk9fVElDS0VU2gZPUF9BTEzaC1ZFUklGWV9QRUVS2htWRVJJRllfRkFJTF9JRl9OT19QRUVSX0NFUlTaElZFUklGWV9DTElFTlRfT05DRdoLVkVSSUZZX05PTkXaDlNFU1NfQ0FDSEVfT0ZG2hFTRVNTX0NBQ0hFX0NMSUVOVNoRU0VTU19DQUNIRV9TRVJWRVLaD1NFU1NfQ0FDSEVfQk9USNoYU0VTU19DQUNIRV9OT19BVVRPX0NMRUFS2h1TRVNTX0NBQ0hFX05PX0lOVEVSTkFMX0xPT0tVUNocU0VTU19DQUNIRV9OT19JTlRFUk5BTF9TVE9SRdoWU0VTU19DQUNIRV9OT19JTlRFUk5BTNoOU1NMX1NUX0NPTk5FQ1TaDVNTTF9TVF9BQ0NFUFTaC1NTTF9TVF9NQVNL2gtTU0xfQ0JfTE9PUNoLU1NMX0NCX0VYSVTaC1NTTF9DQl9SRUFE2gxTU0xfQ0JfV1JJVEXaDFNTTF9DQl9BTEVSVNoRU1NMX0NCX1JFQURfQUxFUlTaElNTTF9DQl9XUklURV9BTEVSVNoSU1NMX0NCX0FDQ0VQVF9MT09Q2hJTU0xfQ0JfQUNDRVBUX0VYSVTaE1NTTF9DQl9DT05ORUNUX0xPT1DaE1NTTF9DQl9DT05ORUNUX0VYSVTaFlNTTF9DQl9IQU5EU0hBS0VfU1RBUlTaFVNTTF9DQl9IQU5EU0hBS0VfRE9ORdoFRXJyb3LaDVdhbnRSZWFkRXJyb3LaDldhbnRXcml0ZUVycm9y2hNXYW50WDUwOUxvb2t1cEVycm9y2g9aZXJvUmV0dXJuRXJyb3LaDFN5c0NhbGxFcnJvctoOU1NMZWF5X3ZlcnNpb27aB1Nlc3Npb27aB0NvbnRleHTaCkNvbm5lY3Rpb25jAAAAAAAAAAAAAAAAAQAAAEAAAABzDAAAAGUAWgFkAFoCZAFTACkC2gdfYnVmZmVyTikD2ghfX25hbWVfX9oKX19tb2R1bGVfX9oMX19xdWFsbmFtZV9fqQBycwAAAHJzAAAA+hkvdXNyL2xpYi9weXRob24zLjYvU1NMLnB5cm8AAAB2AAAAcwIAAAAIAXJvAAAA6QEAAADpAgAAAOkDAAAA6QQAAADpBQAAAOkGAAAA2gtTU0xfU1RfSU5JVNoNU1NMX1NUX0JFRk9SRdoJU1NMX1NUX09L2hJTU0xfU1RfUkVORUdPVElBVEV6Ii9ldGMvc3NsL2NlcnRzL2NhLWNlcnRpZmljYXRlcy5jcnR6IC9ldGMvcGtpL3Rscy9jZXJ0cy9jYS1idW5kbGUuY3J0ehYvZXRjL3NzbC9jYS1idW5kbGUucGVtehcvZXRjL3BraS90bHMvY2FjZXJ0LnBlbXoxL2V0Yy9wa2kvY2EtdHJ1c3QvZXh0cmFjdGVkL3BlbS90bHMtY2EtYnVuZGxlLnBlbXoOL2V0Yy9zc2wvY2VydHNzJAAAAC9vcHQvcHljYS9jcnlwdG9ncmFwaHkvb3BlbnNzbC9jZXJ0c3MnAAAAL29wdC9weWNhL2NyeXB0b2dyYXBoeS9vcGVuc3NsL2NlcnQucGVtYwAAAAAAAAAAAAAAAAEAAABAAAAAcxAAAABlAFoBZABaAmQBWgNkAlMAKQNyZQAAAHo0CiAgICBBbiBlcnJvciBvY2N1cnJlZCBpbiBhbiBgT3BlblNTTC5TU0xgIEFQSS4KICAgIE4pBHJwAAAAcnEAAABycgAAANoHX19kb2NfX3JzAAAAcnMAAABycwAAAHJ0AAAAcmUAAADvAAAAcwIAAAAIA2MAAAAAAAAAAAAAAAABAAAAQAAAAHMMAAAAZQBaAWQAWgJkAVMAKQJyZgAAAE4pA3JwAAAAcnEAAABycgAAAHJzAAAAcnMAAABycwAAAHJ0AAAAcmYAAAD5AAAAcwIAAAAIAWMAAAAAAAAAAAAAAAABAAAAQAAAAHMMAAAAZQBaAWQAWgJkAVMAKQJyZwAAAE4pA3JwAAAAcnEAAABycgAAAHJzAAAAcnMAAABycwAAAHJ0AAAAcmcAAAD9AAAAcwIAAAAIAWMAAAAAAAAAAAAAAAABAAAAQAAAAHMMAAAAZQBaAWQAWgJkAVMAKQJyaAAAAE4pA3JwAAAAcnEAAABycgAAAHJzAAAAcnMAAABycwAAAHJ0AAAAcmgAAAABAQAAcwIAAAAIAWMAAAAAAAAAAAAAAAABAAAAQAAAAHMMAAAAZQBaAWQAWgJkAVMAKQJyaQAAAE4pA3JwAAAAcnEAAABycgAAAHJzAAAAcnMAAABycwAAAHJ0AAAAcmkAAAAFAQAAcwIAAAAIAWMAAAAAAAAAAAAAAAABAAAAQAAAAHMMAAAAZQBaAWQAWgJkAVMAKQJyagAAAE4pA3JwAAAAcnEAAABycgAAAHJzAAAAcnMAAABycwAAAHJ0AAAAcmoAAAAJAQAAcwIAAAAIAWMAAAAAAAAAAAAAAAACAAAAQAAAAHMgAAAAZQBaAWQAWgJkAVoDZAJkA4QAWgRkBGQFhABaBWQGUwApB9oYX0NhbGxiYWNrRXhjZXB0aW9uSGVscGVyYcUBAAAKICAgIEEgYmFzZSBjbGFzcyBmb3Igd3JhcHBlciBjbGFzc2VzIHRoYXQgYWxsb3cgZm9yIGludGVsbGlnZW50IGV4Y2VwdGlvbgogICAgaGFuZGxpbmcgaW4gT3BlblNTTCBjYWxsYmFja3MuCgogICAgOml2YXIgbGlzdCBfcHJvYmxlbXM6IEFueSBleGNlcHRpb25zIHRoYXQgb2NjdXJyZWQgd2hpbGUgZXhlY3V0aW5nIGluIGEKICAgICAgICBjb250ZXh0IHdoZXJlIHRoZXkgY291bGQgbm90IGJlIHJhaXNlZCBpbiB0aGUgbm9ybWFsIHdheS4gIFR5cGljYWxseQogICAgICAgIHRoaXMgaXMgYmVjYXVzZSBPcGVuU1NMIGhhcyBjYWxsZWQgaW50byBzb21lIFB5dGhvbiBjb2RlIGFuZCByZXF1aXJlcyBhCiAgICAgICAgcmV0dXJuIHZhbHVlLiAgVGhlIGV4Y2VwdGlvbnMgYXJlIHNhdmVkIHRvIGJlIHJhaXNlZCBsYXRlciB3aGVuIGl0IGlzCiAgICAgICAgcG9zc2libGUgdG8gZG8gc28uCiAgICBjAQAAAAAAAAABAAAAAgAAAEMAAABzCgAAAGcAfABfAGQAUwApAU4pAdoJX3Byb2JsZW1zKQHaBHNlbGZycwAAAHJzAAAAcnQAAADaCF9faW5pdF9fGQEAAHMCAAAAAAF6IV9DYWxsYmFja0V4Y2VwdGlvbkhlbHBlci5fX2luaXRfX2MBAAAAAAAAAAEAAAALAAAAQwAAAHM2AAAAfABqAHIyeQp0AYMAAQBXAG4UBAB0AmsKciQBAAEAAQBZAG4CWAB8AGoAagNkAYMBggFkAlMAKQN6gQogICAgICAgIFJhaXNlIGFuIGV4Y2VwdGlvbiBmcm9tIHRoZSBPcGVuU1NMIGVycm9yIHF1ZXVlIG9yIHRoYXQgd2FzIHByZXZpb3VzbHkKICAgICAgICBjYXB0dXJlZCB3aGUgcnVubmluZyBhIGNhbGxiYWNrLgogICAgICAgIHIBAAAATikEcoEAAADaFF9yYWlzZV9jdXJyZW50X2Vycm9ycmUAAADaA3BvcCkBcoIAAABycwAAAHJzAAAAcnQAAADaEHJhaXNlX2lmX3Byb2JsZW0cAQAAcwwAAAAABQYBAgEKAQ4BBgF6KV9DYWxsYmFja0V4Y2VwdGlvbkhlbHBlci5yYWlzZV9pZl9wcm9ibGVtTikGcnAAAABycQAAAHJyAAAAcn8AAABygwAAAHKGAAAAcnMAAABycwAAAHJzAAAAcnQAAABygAAAAA0BAABzBgAAAAgKBAIIA3KAAAAAYwAAAAAAAAAAAAAAAAIAAABAAAAAcxgAAABlAFoBZABaAmQBWgNkAmQDhABaBGQEUwApBdoNX1ZlcmlmeUhlbHBlcnpeCiAgICBXcmFwIGEgY2FsbGJhY2sgc3VjaCB0aGF0IGl0IGNhbiBiZSB1c2VkIGFzIGEgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uCiAgICBjYWxsYmFjay4KICAgIGMCAAAAAAAAAAMAAAAEAAAAAwAAAHMyAAAAdABqAYgBgwEBAHQCiACDAYcAhwFmAmQBZAKECIMBfQJ0A2oEZAN8AoMCiAFfBGQAUwApBE5jAgAAAAAAAAALAAAAEAAAABMAAABzsAAAAHQAagF8AYMBfQJ0AGoCfAKDAQEAdANqBHwCgwF9A3QAagV8AYMBfQR0AGoGfAGDAX0FdABqB4MAfQZ0AGoIfAF8BoMCfQd0CWoKfAcZAH0IeRSIAHwIfAN8BHwFfACDBX0JVwBuLAQAdAtrCnKQAQB9CgEAehCIAWoMag18CoMBAQBkAVMAZAB9Cn4KWABuHFgAfAlyqHQAag58AXQAag+DAgEAZAJTAGQBUwBkAFMAKQNOcgEAAABydQAAACkQ2gRfbGliWh9YNTA5X1NUT1JFX0NUWF9nZXRfY3VycmVudF9jZXJ02gtYNTA5X3VwX3JlZnIbAAAA2hJfZnJvbV9yYXdfeDUwOV9wdHJaGFg1MDlfU1RPUkVfQ1RYX2dldF9lcnJvcloeWDUwOV9TVE9SRV9DVFhfZ2V0X2Vycm9yX2RlcHRoWiJTU0xfZ2V0X2V4X2RhdGFfWDUwOV9TVE9SRV9DVFhfaWR4WhpYNTA5X1NUT1JFX0NUWF9nZXRfZXhfZGF0YXJuAAAA2hBfcmV2ZXJzZV9tYXBwaW5n2glFeGNlcHRpb25ygQAAANoGYXBwZW5kWhhYNTA5X1NUT1JFX0NUWF9zZXRfZXJyb3JaCVg1MDlfVl9PSykL2gJva1oJc3RvcmVfY3R4WgR4NTA52gRjZXJ0WgxlcnJvcl9udW1iZXJaC2Vycm9yX2RlcHRo2gVpbmRleNoDc3NsWgpjb25uZWN0aW9u2gZyZXN1bHTaAWUpAtoIY2FsbGJhY2tyggAAAHJzAAAAcnQAAADaB3dyYXBwZXIyAQAAcyQAAAAAAgoBCgEKAQoBCgIIAQwBCgICAQIBEgIQAQwBEAIEAQ4BBAJ6J19WZXJpZnlIZWxwZXIuX19pbml0X18uPGxvY2Fscz4ud3JhcHBlcnoeaW50ICgqKShpbnQsIFg1MDlfU1RPUkVfQ1RYICopKQVygAAAAHKDAAAAcgMAAADaBF9mZmlylAAAACkDcoIAAABylAAAAHKVAAAAcnMAAAApAnKUAAAAcoIAAABydAAAAHKDAAAALwEAAHMIAAAAAAEKAhYaBAF6Fl9WZXJpZnlIZWxwZXIuX19pbml0X19OKQVycAAAAHJxAAAAcnIAAAByfwAAAHKDAAAAcnMAAABycwAAAHJzAAAAcnQAAAByhwAAACkBAABzBAAAAAgEBAJyhwAAAGMAAAAAAAAAAAAAAAACAAAAQAAAAHMYAAAAZQBaAWQAWgJkAVoDZAJkA4QAWgRkBFMAKQXaE19OcG5BZHZlcnRpc2VIZWxwZXJ6VAogICAgV3JhcCBhIGNhbGxiYWNrIHN1Y2ggdGhhdCBpdCBjYW4gYmUgdXNlZCBhcyBhbiBOUE4gYWR2ZXJ0aXNlbWVudCBjYWxsYmFjay4KICAgIGMCAAAAAAAAAAMAAAAEAAAAAwAAAHMyAAAAdABqAYgBgwEBAHQCiACDAYcAhwFmAmQBZAKECIMBfQJ0A2oEZAN8AoMCiAFfBGQAUwApBE5jBAAAAAAAAAAIAAAAEAAAABMAAABzoAAAAHludABqAXwAGQB9BIgAfASDAX0FZAFqAnQDagRkAmQDhAB8BUQAgwGDAYMBfQZ0BWoGZAR0B3wGgwGDAnQFagZkBXwGgwJnAnwEXwh8BGoIZAYZAGQGGQB8AmQGPAB8BGoIZAcZAHwBZAY8AGQGUwAEAHQJawpymgEAfQcBAHoQiAFqCmoLfAeDAQEAZAhTAGQAfQd+B1gAbgJYAGQAUwApCU7zAAAAAGMBAAAAAAAAAAIAAAAEAAAAcwAAAHMeAAAAfABdFn0BdAB0AXwBgwGDAXwBZgJWAAEAcQJkAFMAKQFOKQJyDAAAANoDbGVuKQLaAi4w2gFwcnMAAABycwAAAHJ0AAAA+gk8Z2VuZXhwcj5hAQAAcwIAAAAEAHpAX05wbkFkdmVydGlzZUhlbHBlci5fX2luaXRfXy48bG9jYWxzPi53cmFwcGVyLjxsb2NhbHM+LjxnZW5leHByPnoOdW5zaWduZWQgaW50ICp6D3Vuc2lnbmVkIGNoYXJbXXIBAAAAcnUAAABydgAAACkMcm4AAAByiwAAANoEam9pbnIGAAAA2g1mcm9tX2l0ZXJhYmxlcpYAAADaA25ld3KZAAAA2hxfbnBuX2FkdmVydGlzZV9jYWxsYmFja19hcmdzcowAAABygQAAAHKNAAAAKQhykQAAANoDb3V02gZvdXRsZW7aA2FyZ9oEY29ubtoGcHJvdG9z2ghwcm90b3N0cnKTAAAAKQJylAAAAHKCAAAAcnMAAABydAAAAHKVAAAAWAEAAHMaAAAAAAICAQoBCAQEARYIDgEQAhIBDgEEARABDAF6LV9OcG5BZHZlcnRpc2VIZWxwZXIuX19pbml0X18uPGxvY2Fscz4ud3JhcHBlcno+aW50ICgqKShTU0wgKiwgY29uc3QgdW5zaWduZWQgY2hhciAqKiwgdW5zaWduZWQgaW50ICosIHZvaWQgKikpBXKAAAAAcoMAAAByAwAAAHKWAAAAcpQAAAApA3KCAAAAcpQAAABylQAAAHJzAAAAKQJylAAAAHKCAAAAcnQAAABygwAAAFUBAABzCgAAAAABCgIWGwQBAgF6HF9OcG5BZHZlcnRpc2VIZWxwZXIuX19pbml0X19OKQVycAAAAHJxAAAAcnIAAAByfwAAAHKDAAAAcnMAAABycwAAAHJzAAAAcnQAAABylwAAAFABAABzBAAAAAgDBAJylwAAAGMAAAAAAAAAAAAAAAACAAAAQAAAAHMYAAAAZQBaAWQAWgJkAVoDZAJkA4QAWgRkBFMAKQXaEF9OcG5TZWxlY3RIZWxwZXJ6UAogICAgV3JhcCBhIGNhbGxiYWNrIHN1Y2ggdGhhdCBpdCBjYW4gYmUgdXNlZCBhcyBhbiBOUE4gc2VsZWN0aW9uIGNhbGxiYWNrLgogICAgYwIAAAAAAAAAAwAAAAQAAAADAAAAczIAAAB0AGoBiAGDAQEAdAKIAIMBhwCHAWYCZAFkAoQIgwF9AnQDagRkA3wCgwKIAV8EZABTACkETmMGAAAAAAAAAA0AAAAQAAAAEwAAAHPeAAAAeax0AGoBfAAZAH0GdAJqA3wDfASDAmQAZACFAhkAfQdnAH0IeDx8B3JgdAR8B2QBgwJ9CXwHZAJ8CWQCFwCFAhkAfQp8CGoFfAqDAQEAfAd8CWQCFwBkAIUCGQB9B3EmVwCIAHwGfAiDAn0LdAJqBmQDdAd8C4MBgwJ0AmoGZAR8C4MCZwJ8Bl8IfAZqCGQBGQBkARkAfAJkATwAfAZqCGQCGQB8AWQBPABkAVMABAB0CWsKctgBAH0MAQB6EIgBagpqBXwMgwEBAGQFUwBkAH0MfgxYAG4CWABkAFMAKQZOcgEAAABydQAAAHoPdW5zaWduZWQgY2hhciAqeg91bnNpZ25lZCBjaGFyW11ydgAAACkLcm4AAAByiwAAAHKWAAAA2gZidWZmZXJyDQAAAHKNAAAAcp8AAABymQAAANoZX25wbl9zZWxlY3RfY2FsbGJhY2tfYXJnc3KMAAAAcoEAAAApDXKRAAAAcqEAAAByogAAANoDaW5f2gVpbmxlbnKjAAAAcqQAAADaBWluc3Ry2glwcm90b2xpc3TaBmxlbmd0aNoFcHJvdG/aBm91dHN0cnKTAAAAKQJylAAAAHKCAAAAcnMAAABydAAAAHKVAAAAgQEAAHMkAAAAAAICAQoFFAEEAQYBCgEQAQoBFAMKBw4BEAISAQ4BBAEQAQwBeipfTnBuU2VsZWN0SGVscGVyLl9faW5pdF9fLjxsb2NhbHM+LndyYXBwZXJ6XmludCAoKikoU1NMICosIHVuc2lnbmVkIGNoYXIgKiosIHVuc2lnbmVkIGNoYXIgKiwgY29uc3QgdW5zaWduZWQgY2hhciAqLCB1bnNpZ25lZCBpbnQsIHZvaWQgKikpBXKAAAAAcoMAAAByAwAAAHKWAAAAcpQAAAApA3KCAAAAcpQAAABylQAAAHJzAAAAKQJylAAAAHKCAAAAcnQAAABygwAAAH4BAABzCgAAAAABCgIWIgQBAgJ6GV9OcG5TZWxlY3RIZWxwZXIuX19pbml0X19OKQVycAAAAHJxAAAAcnIAAAByfwAAAHKDAAAAcnMAAABycwAAAHJzAAAAcnQAAABypwAAAHkBAABzBAAAAAgDBAJypwAAAGMAAAAAAAAAAAAAAAACAAAAQAAAAHMYAAAAZQBaAWQAWgJkAVoDZAJkA4QAWgRkBFMAKQXaEV9BTFBOU2VsZWN0SGVscGVyelEKICAgIFdyYXAgYSBjYWxsYmFjayBzdWNoIHRoYXQgaXQgY2FuIGJlIHVzZWQgYXMgYW4gQUxQTiBzZWxlY3Rpb24gY2FsbGJhY2suCiAgICBjAgAAAAAAAAADAAAABAAAAAMAAABzMgAAAHQAagGIAYMBAQB0AogAgwGHAIcBZgJkAWQChAiDAX0CdANqBGQDfAKDAogBXwRkAFMAKQROYwYAAAAAAAAADQAAABAAAAATAAAAc/AAAAB5vnQAagF8ABkAfQZ0AmoDfAN8BIMCZABkAIUCGQB9B2cAfQh4PHwHcmB0BHwHZAGDAn0JfAdkAnwJZAIXAIUCGQB9CnwIagV8CoMBAQB8B3wJZAIXAGQAhQIZAH0HcSZXAIgAfAZ8CIMCfQt0BnwLdAeDAnN+dAhkA4MBggF0AmoJZAR0CnwLgwGDAnQCaglkBXwLgwJnAnwGXwt8BmoLZAEZAGQBGQB8AmQBPAB8BmoLZAIZAHwBZAE8AGQBUwAEAHQMawpy6gEAfQwBAHoQiAFqDWoFfAyDAQEAZAZTAGQAfQx+DFgAbgJYAGQAUwApB05yAQAAAHJ1AAAAeidBTFBOIGNhbGxiYWNrIG11c3QgcmV0dXJuIGEgYnl0ZXN0cmluZy56D3Vuc2lnbmVkIGNoYXIgKnoPdW5zaWduZWQgY2hhcltdcnYAAAApDnJuAAAAcosAAABylgAAAHKoAAAAcg0AAAByjQAAANoKaXNpbnN0YW5jZdoMX2JpbmFyeV90eXBl2glUeXBlRXJyb3JynwAAAHKZAAAA2hpfYWxwbl9zZWxlY3RfY2FsbGJhY2tfYXJnc3KMAAAAcoEAAAApDXKRAAAAcqEAAAByogAAAHKqAAAAcqsAAAByowAAAHKkAAAAcqwAAAByrQAAAFoLZW5jb2RlZF9sZW5yrwAAAHKwAAAAcpMAAAApAnKUAAAAcoIAAABycwAAAHJ0AAAAcpUAAACyAQAAcygAAAAAAgIBCgUUAQQBBgEKARABCgEUAwoCCgEIBg4BEAISAQ4BBAEQAQwBeitfQUxQTlNlbGVjdEhlbHBlci5fX2luaXRfXy48bG9jYWxzPi53cmFwcGVyel5pbnQgKCopKFNTTCAqLCB1bnNpZ25lZCBjaGFyICoqLCB1bnNpZ25lZCBjaGFyICosIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiwgdW5zaWduZWQgaW50LCB2b2lkICopKQVygAAAAHKDAAAAcgMAAABylgAAAHKUAAAAKQNyggAAAHKUAAAAcpUAAABycwAAACkCcpQAAAByggAAAHJ0AAAAcoMAAACvAQAAcwoAAAAAAQoCFiQEAQICehpfQUxQTlNlbGVjdEhlbHBlci5fX2luaXRfX04pBXJwAAAAcnEAAABycgAAAHJ/AAAAcoMAAABycwAAAHJzAAAAcnMAAABydAAAAHKxAAAAqgEAAHMEAAAACAMEAnKxAAAAYwAAAAAAAAAAAAAAAAIAAABAAAAAcxgAAABlAFoBZABaAmQBWgNkAmQDhABaBGQEUwApBdoZX09DU1BTZXJ2ZXJDYWxsYmFja0hlbHBlcmHwAwAACiAgICBXcmFwIGEgY2FsbGJhY2sgc3VjaCB0aGF0IGl0IGNhbiBiZSB1c2VkIGFzIGFuIE9DU1AgY2FsbGJhY2sgZm9yIHRoZSBzZXJ2ZXIKICAgIHNpZGUuCgogICAgQW5ub3lpbmdseSwgT3BlblNTTCBkZWZpbmVzIG9uZSBPQ1NQIGNhbGxiYWNrIGJ1dCB1c2VzIGl0IGluIHR3byBkaWZmZXJlbnQKICAgIHdheXMuIEZvciBzZXJ2ZXJzLCB0aGF0IGNhbGxiYWNrIGlzIGV4cGVjdGVkIHRvIHJldHJpZXZlIHNvbWUgT0NTUCBkYXRhIGFuZAogICAgaGFuZCBpdCB0byBPcGVuU1NMLCBhbmQgbWF5IHJldHVybiBvbmx5IFNTTF9UTFNFWFRfRVJSX09LLAogICAgU1NMX1RMU0VYVF9FUlJfRkFUQUwsIGFuZCBTU0xfVExTRVhUX0VSUl9OT0FDSy4gRm9yIGNsaWVudHMsIHRoYXQgY2FsbGJhY2sKICAgIGlzIGV4cGVjdGVkIHRvIGNoZWNrIHRoZSBPQ1NQIGRhdGEsIGFuZCByZXR1cm5zIGEgbmVnYXRpdmUgdmFsdWUgb24gZXJyb3IsCiAgICAwIGlmIHRoZSByZXNwb25zZSBpcyBub3QgYWNjZXB0YWJsZSwgb3IgcG9zaXRpdmUgaWYgaXQgaXMuIFRoZXNlIGFyZQogICAgbXV0dWFsbHkgZXhjbHVzaXZlIHJldHVybiBjb2RlIGJlaGF2aW91cnMsIGFuZCB0aGV5IG1lYW4gdGhhdCB3ZSBuZWVkIHR3bwogICAgaGVscGVycyBzbyB0aGF0IHdlIGFsd2F5cyByZXR1cm4gYW4gYXBwcm9wcmlhdGUgZXJyb3IgY29kZSBpZiB0aGUgdXNlcidzCiAgICBjb2RlIHRocm93cyBhbiBleGNlcHRpb24uCgogICAgR2l2ZW4gdGhhdCB3ZSBoYXZlIHRvIGhhdmUgdHdvIGhlbHBlcnMgYW55d2F5LCB0aGVzZSBoZWxwZXJzIGFyZSBhIGJpdCBtb3JlCiAgICBoZWxwZXJ5IHRoYW4gbW9zdDogc3BlY2lmaWNhbGx5LCB0aGV5IGhpZGUgYSBmZXcgbW9yZSBvZiB0aGUgT3BlblNTTAogICAgZnVuY3Rpb25zIHNvIHRoYXQgdGhlIHVzZXIgaGFzIGFuIGVhc2llciB0aW1lIHdyaXRpbmcgdGhlc2UgY2FsbGJhY2tzLgoKICAgIFRoaXMgaGVscGVyIGltcGxlbWVudHMgdGhlIHNlcnZlciBzaWRlLgogICAgYwIAAAAAAAAAAwAAAAQAAAADAAAAczIAAAB0AGoBiAGDAQEAdAKIAIMBhwCHAWYCZAFkAoQIgwF9AnQDagRkA3wCgwKIAV8EZABTACkETmMCAAAAAAAAAAgAAAAQAAAAEwAAAHOyAAAAeYB0AGoBfAAZAH0CfAF0AmoDawNyInQCagR8AYMBfQNuBGQAfQOIAHwCfAODAn0EdAV8BHQGgwJzQnQHZAGDAYIBfARzSmQCUwB0CHwEgwF9BXQJagp8BYMBfQZ8BHQCagt8BnwFgwJkAGQAhQI8AHQJagx8AHwGfAWDAwEAZANTAAQAdA1rCnKsAQB9BwEAehCIAWoOag98B4MBAQBkBFMAZAB9B34HWABuAlgAZABTACkFTnonT0NTUCBjYWxsYmFjayBtdXN0IHJldHVybiBhIGJ5dGVzdHJpbmcucncAAAByAQAAAHJ2AAAAKRBybgAAAHKLAAAAcpYAAADaBE5VTEzaC2Zyb21faGFuZGxlcrIAAAByswAAAHK0AAAAcpkAAAByiAAAAFoOT1BFTlNTTF9tYWxsb2NyqAAAAFofU1NMX3NldF90bHNleHRfc3RhdHVzX29jc3BfcmVzcHKMAAAAcoEAAAByjQAAACkIcpEAAADaBWNkYXRhcqQAAADaBGRhdGHaCW9jc3BfZGF0YVoQb2NzcF9kYXRhX2xlbmd0aFoIZGF0YV9wdHJykwAAACkCcpQAAAByggAAAHJzAAAAcnQAAABylQAAAPYBAABzJgAAAAACAgEKAwoBDAIEAwoCCgEIBgQBBAQIAQoBFAIEAQoDBAEQAQwBejNfT0NTUFNlcnZlckNhbGxiYWNrSGVscGVyLl9faW5pdF9fLjxsb2NhbHM+LndyYXBwZXJ6FmludCAoKikoU1NMICosIHZvaWQgKikpBXKAAAAAcoMAAAByAwAAAHKWAAAAcpQAAAApA3KCAAAAcpQAAABylQAAAHJzAAAAKQJylAAAAHKCAAAAcnQAAABygwAAAPMBAABzBgAAAAABCgIWJ3oiX09DU1BTZXJ2ZXJDYWxsYmFja0hlbHBlci5fX2luaXRfX04pBXJwAAAAcnEAAABycgAAAHJ/AAAAcoMAAABycwAAAHJzAAAAcnMAAABydAAAAHK2AAAA3QEAAHMEAAAACBQEAnK2AAAAYwAAAAAAAAAAAAAAAAIAAABAAAAAcxgAAABlAFoBZABaAmQBWgNkAmQDhABaBGQEUwApBdoZX09DU1BDbGllbnRDYWxsYmFja0hlbHBlcmHwAwAACiAgICBXcmFwIGEgY2FsbGJhY2sgc3VjaCB0aGF0IGl0IGNhbiBiZSB1c2VkIGFzIGFuIE9DU1AgY2FsbGJhY2sgZm9yIHRoZSBjbGllbnQKICAgIHNpZGUuCgogICAgQW5ub3lpbmdseSwgT3BlblNTTCBkZWZpbmVzIG9uZSBPQ1NQIGNhbGxiYWNrIGJ1dCB1c2VzIGl0IGluIHR3byBkaWZmZXJlbnQKICAgIHdheXMuIEZvciBzZXJ2ZXJzLCB0aGF0IGNhbGxiYWNrIGlzIGV4cGVjdGVkIHRvIHJldHJpZXZlIHNvbWUgT0NTUCBkYXRhIGFuZAogICAgaGFuZCBpdCB0byBPcGVuU1NMLCBhbmQgbWF5IHJldHVybiBvbmx5IFNTTF9UTFNFWFRfRVJSX09LLAogICAgU1NMX1RMU0VYVF9FUlJfRkFUQUwsIGFuZCBTU0xfVExTRVhUX0VSUl9OT0FDSy4gRm9yIGNsaWVudHMsIHRoYXQgY2FsbGJhY2sKICAgIGlzIGV4cGVjdGVkIHRvIGNoZWNrIHRoZSBPQ1NQIGRhdGEsIGFuZCByZXR1cm5zIGEgbmVnYXRpdmUgdmFsdWUgb24gZXJyb3IsCiAgICAwIGlmIHRoZSByZXNwb25zZSBpcyBub3QgYWNjZXB0YWJsZSwgb3IgcG9zaXRpdmUgaWYgaXQgaXMuIFRoZXNlIGFyZQogICAgbXV0dWFsbHkgZXhjbHVzaXZlIHJldHVybiBjb2RlIGJlaGF2aW91cnMsIGFuZCB0aGV5IG1lYW4gdGhhdCB3ZSBuZWVkIHR3bwogICAgaGVscGVycyBzbyB0aGF0IHdlIGFsd2F5cyByZXR1cm4gYW4gYXBwcm9wcmlhdGUgZXJyb3IgY29kZSBpZiB0aGUgdXNlcidzCiAgICBjb2RlIHRocm93cyBhbiBleGNlcHRpb24uCgogICAgR2l2ZW4gdGhhdCB3ZSBoYXZlIHRvIGhhdmUgdHdvIGhlbHBlcnMgYW55d2F5LCB0aGVzZSBoZWxwZXJzIGFyZSBhIGJpdCBtb3JlCiAgICBoZWxwZXJ5IHRoYW4gbW9zdDogc3BlY2lmaWNhbGx5LCB0aGV5IGhpZGUgYSBmZXcgbW9yZSBvZiB0aGUgT3BlblNTTAogICAgZnVuY3Rpb25zIHNvIHRoYXQgdGhlIHVzZXIgaGFzIGFuIGVhc2llciB0aW1lIHdyaXRpbmcgdGhlc2UgY2FsbGJhY2tzLgoKICAgIFRoaXMgaGVscGVyIGltcGxlbWVudHMgdGhlIGNsaWVudCBzaWRlLgogICAgYwIAAAAAAAAAAwAAAAQAAAADAAAAczIAAAB0AGoBiAGDAQEAdAKIAIMBhwCHAWYCZAFkAoQIgwF9AnQDagRkA3wCgwKIAV8EZABTACkETmMCAAAAAAAAAAkAAAAQAAAAEwAAAHOqAAAAeXh0AGoBfAAZAH0CfAF0AmoDawNyInQCagR8AYMBfQNuBGQAfQN0AmoFZAGDAX0EdAZqB3wAfASDAn0FfAVkAmsAckpkA30Gbhh0AmoIfARkAhkAfAWDAmQAZACFAhkAfQaIAHwCfAZ8A4MDfQd0CXQKfAeDAYMBUwAEAHQLawpypAEAfQgBAHoQiAFqDGoNfAiDAQEAZAVTAGQAfQh+CFgAbgJYAGQAUwApBk56EHVuc2lnbmVkIGNoYXIgKipyAQAAAHKYAAAAcnUAAADp/////ykOcm4AAAByiwAAAHKWAAAAcrcAAAByuAAAAHKfAAAAcogAAABaH1NTTF9nZXRfdGxzZXh0X3N0YXR1c19vY3NwX3Jlc3ByqAAAANoDaW502gRib29scowAAABygQAAAHKNAAAAKQlykQAAAHK5AAAAcqQAAAByugAAAFoIb2NzcF9wdHJaCG9jc3BfbGVucrsAAABaBXZhbGlkcpMAAAApAnKUAAAAcoIAAABycwAAAHJ0AAAAcpUAAAA5AgAAcx4AAAAAAgIBCgMKAQwCBAMKAQwBCAIGAxgCDAMMAhABDAJ6M19PQ1NQQ2xpZW50Q2FsbGJhY2tIZWxwZXIuX19pbml0X18uPGxvY2Fscz4ud3JhcHBlcnoWaW50ICgqKShTU0wgKiwgdm9pZCAqKSkFcoAAAABygwAAAHIDAAAAcpYAAABylAAAACkDcoIAAABylAAAAHKVAAAAcnMAAAApAnKUAAAAcoIAAABydAAAAHKDAAAANgIAAHMGAAAAAAEKAhYfeiJfT0NTUENsaWVudENhbGxiYWNrSGVscGVyLl9faW5pdF9fTikFcnAAAABycQAAAHJyAAAAcn8AAABygwAAAHJzAAAAcnMAAABycwAAAHJ0AAAAcrwAAAAgAgAAcwQAAAAIFAQCcrwAAABjAQAAAAAAAAADAAAABAAAAEMAAABzZAAAAGQAfQF0AHwAdAGDAnModAJ8AGQBZACDA30CfAJkAGsJcih8AoMAfQB0AHwAdAGDAnI2fAB9AXQAfAF0AYMCc0p0A2QCgwGCAW4WfAFkA2sAcmB0BGQEfAFmARYAgwGCAXwBUwApBU7aBmZpbGVub3ozYXJndW1lbnQgbXVzdCBiZSBhbiBpbnQsIG9yIGhhdmUgYSBmaWxlbm8oKSBtZXRob2QucgEAAAB6MWZpbGUgZGVzY3JpcHRvciBjYW5ub3QgYmUgYSBuZWdhdGl2ZSBpbnRlZ2VyICglaSkpBXKyAAAAcgsAAADaB2dldGF0dHJytAAAANoKVmFsdWVFcnJvcikD2gNvYmraAmZk2gRtZXRocnMAAABycwAAAHJ0AAAA2hFfYXNGaWxlRGVzY3JpcHRvclsCAABzGgAAAAABBAEKAQwBCAEGAgoBBAIKAQoBCAECAQwCcsYAAABjAQAAAAAAAAABAAAAAwAAAEMAAABzEAAAAHQAagF0AmoDfACDAYMBUwApAXqTCiAgICBSZXR1cm4gYSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgdmVyc2lvbiBvZiBPcGVuU1NMIGluIHVzZS4KCiAgICA6cGFyYW0gdHlwZTogT25lIG9mIHRoZSA6Y29uc3Q6YFNTTEVBWV9gIGNvbnN0YW50cyBkZWZpbmVkIGluIHRoaXMgbW9kdWxlLgogICAgKQRylgAAANoGc3RyaW5ncogAAAByawAAACkB2gR0eXBlcnMAAABycwAAAHJ0AAAAcmsAAABuAgAAcwIAAAAABmMCAAAAAAAAAAMAAAADAAAAAwAAAHMSAAAAhwCHAWYCZAFkAoQIfQJ8AlMAKQNhlAEAAAogICAgQnVpbGRzIGEgZGVjb3JhdG9yIHRoYXQgZW5zdXJlcyB0aGF0IGZ1bmN0aW9ucyB0aGF0IHJlbHkgb24gT3BlblNTTAogICAgZnVuY3Rpb25zIHRoYXQgYXJlIG5vdCBwcmVzZW50IGluIHRoaXMgYnVpbGQgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvciwKICAgIHJhdGhlciB0aGFuIEF0dHJpYnV0ZUVycm9yIGNvbWluZyBvdXQgb2YgY3J5cHRvZ3JhcGh5LgoKICAgIDpwYXJhbSBmbGFnOiBBIGNyeXB0b2dyYXBoeSBmbGFnIHRoYXQgZ3VhcmRzIHRoZSBmdW5jdGlvbnMsIGUuZy4KICAgICAgICBgYENyeXB0b2dyYXBoeV9IQVNfTkVYVFBST1RPTkVHYGAuCiAgICA6cGFyYW0gZXJyb3I6IFRoZSBzdHJpbmcgdG8gYmUgdXNlZCBpbiB0aGUgZXhjZXB0aW9uIGlmIHRoZSBmbGFnIGlzIGZhbHNlLgogICAgYwEAAAAAAAAAAgAAAAQAAAATAAAAcyQAAACIAXMcdAB8AIMBhwBmAWQBZAKECIMBfQF8AVMAfABTAGQAUwApA05jAAAAAAAAAAACAAAAAgAAAB8AAABzDAAAAHQAiACDAYIBZABTACkBTikB2hNOb3RJbXBsZW1lbnRlZEVycm9yKQLaBGFyZ3PaBmt3YXJncykB2gVlcnJvcnJzAAAAcnQAAADaB2V4cGxvZGWDAgAAcwIAAAAAAno8X21ha2VfcmVxdWlyZXMuPGxvY2Fscz4uX3JlcXVpcmVzX2RlY29yYXRvci48bG9jYWxzPi5leHBsb2RlKQFyAwAAACkC2gRmdW5jcs0AAAApAnLMAAAA2gRmbGFncnMAAABydAAAANoTX3JlcXVpcmVzX2RlY29yYXRvcoECAABzCAAAAAABBAEUAwQCeitfbWFrZV9yZXF1aXJlcy48bG9jYWxzPi5fcmVxdWlyZXNfZGVjb3JhdG9ycnMAAAApA3LPAAAAcswAAABy0AAAAHJzAAAAKQJyzAAAAHLPAAAAcnQAAADaDl9tYWtlX3JlcXVpcmVzdwIAAHMEAAAAAAoOCXLRAAAAehFOUE4gbm90IGF2YWlsYWJsZXoSQUxQTiBub3QgYXZhaWxhYmxlehFTTkkgbm90IGF2YWlsYWJsZWMAAAAAAAAAAAAAAAABAAAAQAAAAHMQAAAAZQBaAWQAWgJkAVoDZAJTACkDcmwAAAB6yQogICAgQSBjbGFzcyByZXByZXNlbnRpbmcgYW4gU1NMIHNlc3Npb24uICBBIHNlc3Npb24gZGVmaW5lcyBjZXJ0YWluIGNvbm5lY3Rpb24KICAgIHBhcmFtZXRlcnMgd2hpY2ggbWF5IGJlIHJlLXVzZWQgdG8gc3BlZWQgdXAgdGhlIHNldHVwIG9mIHN1YnNlcXVlbnQKICAgIGNvbm5lY3Rpb25zLgoKICAgIC4uIHZlcnNpb25hZGRlZDo6IDAuMTQKICAgIE4pBHJwAAAAcnEAAABycgAAAHJ/AAAAcnMAAABycwAAAHJzAAAAcnQAAABybAAAAJwCAABzBAAAAAgHBAFjAAAAAAAAAAAAAAAADAAAAEAAAABzzgEAAGUAWgFkAFoCZAFaA2UEZAJlBWQDZQZkBGUHZAVlCGQGZQlkB2kGWgplC2QIZAmEAGUKagyDAEQAgwGDAVoKZApkC4QAWg1kZWQNZA6EAVoOZA9kEIQAWg9kZmQRZBKEAVoQZBNkFIQAWhFkFWQWhABaEmQXZBiEAFoTZBlkGoQAWhRlFWYBZBtkHIQBWhZkHWQehABaF2QfZCCEAFoYZCFkIoQAWhllGmYBZCNkJIQBWhtkJWQmhABaHGQnZCiEAFodZClkKoQAWh5kK2QshABaH2QtZC6EAFogZC9kMIQAWiFkMWQyhABaImQzZDSEAFojZDVkNoQAWiRkN2Q4hABaJWQ5ZDqEAFomZDtkPIQAWidkPWQ+hABaKGQ/ZECEAFopZEFkQoQAWipkQ2REhABaK2RFZEaEAFosZEdkSIQAWi1kSWRKhABaLmRLZEyEAFovZE1kToQAWjBkT2RQhABaMWRRZFKEAFoyZTNkU2RUhACDAVo0ZFVkVoQAWjVlNmRXZFiEAIMBWjdlNmRZZFqEAIMBWjhlOWRbZFyEAIMBWjplOWRdZF6EAIMBWjtkX2RghABaPGRnZGFkYoQBWj1kaGRjZGSEAVo+ZAxTAClpcm0AAAB6zQogICAgOmNsYXNzOmBPcGVuU1NMLlNTTC5Db250ZXh0YCBpbnN0YW5jZXMgZGVmaW5lIHRoZSBwYXJhbWV0ZXJzIGZvciBzZXR0aW5nCiAgICB1cCBuZXcgU1NMIGNvbm5lY3Rpb25zLgoKICAgIDpwYXJhbSBtZXRob2Q6IE9uZSBvZiBTU0x2Ml9NRVRIT0QsIFNTTHYzX01FVEhPRCwgU1NMdjIzX01FVEhPRCwgb3IKICAgICAgICBUTFN2MV9NRVRIT0QuCiAgICBaDFNTTHYyX21ldGhvZFoMU1NMdjNfbWV0aG9kWg1TU0x2MjNfbWV0aG9kWgxUTFN2MV9tZXRob2RaDlRMU3YxXzFfbWV0aG9kWg5UTFN2MV8yX21ldGhvZGMBAAAAAAAAAAMAAAAFAAAAYwAAAHMwAAAAfABdKFwCfQF9AnQAdAF8AmQAgwNkAGsJcgJ8AXQAdAF8AoMCZgJWAAEAcQJkAFMAKQFOKQJywQAAAHKIAAAAKQNymgAAAFoKaWRlbnRpZmllctoEbmFtZXJzAAAAcnMAAABydAAAAHKcAAAAuAIAAHMEAAAABAEGAXoRQ29udGV4dC48Z2VuZXhwcj5jAgAAAAAAAAAGAAAAEwAAAEMAAABzJgEAAHQAfAF0AYMCcxJ0AmQBgwGCAXkOfABqA3wBGQB9AlcAbhwEAHQEawpyPAEAAQABAHQFZAKDAYIBWQBuAlgAfAKDAH0DdAZ8A3QHaghrA4MBAQB0CWoKfAODAX0EdAZ8BHQHaghrA4MBAQB0B2oLfAR0CWoMgwJ9BHkcdAlqDXwEZAODAn0FdAZ8BWQDawKDAQEAVwBuFAQAdA5rCnKoAQABAAEAWQBuAlgAfAR8AF8PZAB8AF8QZAB8AF8RZAB8AF8SZAB8AF8TZAB8AF8UZAB8AF8VZAB8AF8WZAB8AF8XZAB8AF8YZAB8AF8ZZAB8AF8aZAB8AF8bZAB8AF8cZAB8AF8dZAB8AF8eZAB8AF8fZAB8AF8gfABqIXQJaiKDAQEAZABTACkETnoZbWV0aG9kIG11c3QgYmUgYW4gaW50ZWdlcnoQTm8gc3VjaCBwcm90b2NvbHJ1AAAAKSNysgAAAHILAAAAcrQAAADaCF9tZXRob2Rz2ghLZXlFcnJvcnLCAAAA2g9fb3BlbnNzbF9hc3NlcnRylgAAAHK3AAAAcogAAABaC1NTTF9DVFhfbmV32gJnY1oMU1NMX0NUWF9mcmVlWhVTU0xfQ1RYX3NldF9lY2RoX2F1dG/aDkF0dHJpYnV0ZUVycm9y2ghfY29udGV4dNoSX3Bhc3NwaHJhc2VfaGVscGVy2hRfcGFzc3BocmFzZV9jYWxsYmFja9oUX3Bhc3NwaHJhc2VfdXNlcmRhdGHaDl92ZXJpZnlfaGVscGVy2hBfdmVyaWZ5X2NhbGxiYWNr2g5faW5mb19jYWxsYmFja9obX3Rsc2V4dF9zZXJ2ZXJuYW1lX2NhbGxiYWNr2glfYXBwX2RhdGHaFV9ucG5fYWR2ZXJ0aXNlX2hlbHBlctoXX25wbl9hZHZlcnRpc2VfY2FsbGJhY2vaEl9ucG5fc2VsZWN0X2hlbHBlctoUX25wbl9zZWxlY3RfY2FsbGJhY2vaE19hbHBuX3NlbGVjdF9oZWxwZXLaFV9hbHBuX3NlbGVjdF9jYWxsYmFja9oMX29jc3BfaGVscGVy2g5fb2NzcF9jYWxsYmFja9oKX29jc3BfZGF0YdoIc2V0X21vZGVaHVNTTF9NT0RFX0VOQUJMRV9QQVJUSUFMX1dSSVRFKQZyggAAANoGbWV0aG9kWgttZXRob2RfZnVuY1oKbWV0aG9kX29iatoHY29udGV4dNoDcmVzcnMAAABycwAAAHJ0AAAAcoMAAAC8AgAAc0YAAAAAAQoBCAICAQ4BDgEOAgYBDgIKAQ4BDgUCAQwBEAEOAQYCBgEGAQYBBgEGAQYBBgEGAQYBBgEGAQYBBgEGAQYBBgEGAQYCehBDb250ZXh0Ll9faW5pdF9fTmMDAAAAAAAAAAQAAAAEAAAAQwAAAHNOAAAAfAFkAWsIchB0AGoB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AgEAZANTACkEYdkCAAAKICAgICAgICBTcGVjaWZ5IHRoYXQgdGhlIHBsYXRmb3JtIHByb3ZpZGVkIENBIGNlcnRpZmljYXRlcyBhcmUgdG8gYmUgdXNlZCBmb3IKICAgICAgICB2ZXJpZmljYXRpb24gcHVycG9zZXMuIFRoaXMgbWV0aG9kIGhhcyBzb21lIGNhdmVhdHMgcmVsYXRlZCB0byB0aGUKICAgICAgICBiaW5hcnkgd2hlZWxzIHRoYXQgY3J5cHRvZ3JhcGh5IChweU9wZW5TU0wncyBwcmltYXJ5IGRlcGVuZGVuY3kpIHNoaXBzOgoKICAgICAgICAqICAgbWFjT1Mgd2lsbCBvbmx5IGxvYWQgY2VydGlmaWNhdGVzIHVzaW5nIHRoaXMgbWV0aG9kIGlmIHRoZSB1c2VyIGhhcwogICAgICAgICAgICB0aGUgYGBvcGVuc3NsQDEuMWBgIGBIb21lYnJldyA8aHR0cHM6Ly9icmV3LnNoPmBfIGZvcm11bGEgaW5zdGFsbGVkCiAgICAgICAgICAgIGluIHRoZSBkZWZhdWx0IGxvY2F0aW9uLgogICAgICAgICogICBXaW5kb3dzIHdpbGwgbm90IHdvcmsuCiAgICAgICAgKiAgIG1hbnlsaW51eDEgY3J5cHRvZ3JhcGh5IHdoZWVscyB3aWxsIHdvcmsgb24gbW9zdCBjb21tb24gTGludXgKICAgICAgICAgICAgZGlzdHJpYnV0aW9ucyBpbiBweU9wZW5TU0wgMTcuMS4wIGFuZCBhYm92ZS4gIHB5T3BlblNTTCBkZXRlY3RzIHRoZQogICAgICAgICAgICBtYW55bGludXgxIHdoZWVsIGFuZCBhdHRlbXB0cyB0byBsb2FkIHJvb3RzIHZpYSBhIGZhbGxiYWNrIHBhdGguCgogICAgICAgIDpyZXR1cm46IE5vbmUKICAgICAgICBydQAAANoFYXNjaWlOKRFyiAAAAFogU1NMX0NUWF9zZXRfZGVmYXVsdF92ZXJpZnlfcGF0aHNy2AAAAHLVAAAAcpYAAAByxwAAAFodWDUwOV9nZXRfZGVmYXVsdF9jZXJ0X2Rpcl9lbnbaBmRlY29kZVoeWDUwOV9nZXRfZGVmYXVsdF9jZXJ0X2ZpbGVfZW522hNfY2hlY2tfZW52X3ZhcnNfc2V0WhlYNTA5X2dldF9kZWZhdWx0X2NlcnRfZGlyWhpYNTA5X2dldF9kZWZhdWx0X2NlcnRfZmlsZdofX0NSWVBUT0dSQVBIWV9NQU5ZTElOVVgxX0NBX0RJUtogX0NSWVBUT0dSQVBIWV9NQU5ZTElOVVgxX0NBX0ZJTEXaHl9mYWxsYmFja19kZWZhdWx0X3ZlcmlmeV9wYXRoc9obX0NFUlRJRklDQVRFX0ZJTEVfTE9DQVRJT05T2htfQ0VSVElGSUNBVEVfUEFUSF9MT0NBVElPTlMpBnKCAAAA2gpzZXRfcmVzdWx02gtkaXJfZW52X3ZhctoMZmlsZV9lbnZfdmFyWgtkZWZhdWx0X2RpcloMZGVmYXVsdF9maWxlcnMAAABycwAAAHJ0AAAA2hhzZXRfZGVmYXVsdF92ZXJpZnlfcGF0aHMtAwAAcyAAAAAAFAwBDAYEAQoBBgEEAQoBBgEMAQ4BDgUIAQgDBAECAXogQ29udGV4dC5zZXRfZGVmYXVsdF92ZXJpZnlfcGF0aHNjAwAAAAAAAAADAAAAAgAAAEMAAABzIAAAAHQAagFqAnwCgwFkAWsJcB50AGoBagJ8AYMBZAFrCVMAKQJ6cAogICAgICAgIENoZWNrIHRvIHNlZSBpZiB0aGUgZGVmYXVsdCBjZXJ0IGRpci9maWxlIGVudmlyb25tZW50IHZhcnMgYXJlIHByZXNlbnQuCgogICAgICAgIDpyZXR1cm46IGJvb2wKICAgICAgICBOKQPaAm9z2gdlbnZpcm9u2gNnZXQpA3KCAAAAcgEBAAByAgEAAHJzAAAAcnMAAABydAAAAHL6AAAAXgMAAHMEAAAAAAcQAXobQ29udGV4dC5fY2hlY2tfZW52X3ZhcnNfc2V0YwMAAAAAAAAABQAAAAQAAABDAAAAc1IAAAB4JHwBRABdHH0DdABqAWoCfAODAXIGfABqA3wDgwEBAFAAcQZXAHgmfAJEAF0efQR0AGoBagR8BIMBcix8AGoDZAF8BIMCAQBQAHEsVwBkAVMAKQJhVwEAAAogICAgICAgIERlZmF1bHQgdmVyaWZ5IHBhdGhzIGFyZSBiYXNlZCBvbiB0aGUgY29tcGlsZWQgdmVyc2lvbiBvZiBPcGVuU1NMLgogICAgICAgIEhvd2V2ZXIsIHdoZW4gcHlj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ZWN0IHRvICptb2RlKiBhbmQgc3BlY2lmeQogICAgICAgIHRoYXQgKmNhbGxiYWNrKiBzaG91bGQgYmUgdXNlZCBmb3IgdmVyaWZpY2F0aW9uIGNhbGxiYWNrcy4KCiAgICAgICAgOnBhcmFtIG1vZGU6IFRoZSB2ZXJpZnkgbW9kZSwgdGhpcyBzaG91bGQgYmUgb25lIG9mCiAgICAgICAgICAgIDpjb25zdDpgVkVSSUZZX05PTkVgIGFuZCA6Y29uc3Q6YFZFUklGWV9QRUVSYC4gSWYKICAgICAgICAgICAgOmNvbnN0OmBWRVJJRllfUEVFUmAgaXMgdXNlZCwgKm1vZGUqIGNhbiBiZSBPUjplZCB3aXRoCiAgICAgICAgICAgIDpjb25zdDpgVkVSSUZZX0ZBSUxfSUZfTk9fUEVFUl9DRVJUYCBhbmQKICAgICAgICAgICAgOmNvbnN0OmBWRVJJRllfQ0xJRU5UX09OQ0VgIHRvIGZ1cnRoZXIgY29udHJvbCB0aGUgYmVoYXZpb3VyLgogICAgICAgIDpwYXJhbSBjYWxsYmFjazogVGhlIFB5dGhvbiBjYWxsYmFjayB0byB1c2UuICBUaGlzIHNob3VsZCB0YWtlIGZpdmUKICAgICAgICAgICAgYXJndW1lbnRzOiBBIENvbm5lY3Rpb24gb2JqZWN0LCBhbiBYNTA5IG9iamVjdCwgYW5kIHRocmVlIGludGVnZXIKICAgICAgICAgICAgdmFyaWFibGVzLCB3aGljaCBhcmUgaW4gdHVybiBwb3RlbnRpYWwgZXJyb3IgbnVtYmVyLCBlcnJvciBkZXB0aAogICAgICAgICAgICBhbmQgcmV0dXJuIGNvZGUuICpjYWxsYmFjayogc2hvdWxkIHJldHVybiBUcnVlIGlmIHZlcmlmaWNhdGlvbgogICAgICAgICAgICBwYXNzZXMgYW5kIEZhbHNlIG90aGVyd2lzZS4KICAgICAgICA6cmV0dXJuOiBOb25lCgogICAgICAgIFNlZSBTU0xfQ1RYX3NldF92ZXJpZnkoM1NTTCkgZm9yIGZ1cnRoZXIgZGV0YWlscy4KICAgICAgICB6F21vZGUgbXVzdCBiZSBhbiBpbnRlZ2VyehljYWxsYmFjayBtdXN0IGJlIGNhbGxhYmxlTikL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YSBjdXJ2ZSB0byB1c2UgZm9yIEVDREhFIGtleSBleGNoYW5nZS4KCiAgICAgICAgOnBhcmFtIGN1cnZlOiBBIGN1cnZlIG9iamVjdCB0byB1c2UgYXMgcmV0dXJuZWQgYnkgZWl0aGVyCiAgICAgICAgICAgIDptZXRoOmBPcGVuU1NMLmNyeXB0by5nZXRfZWxsaXB0aWNfY3VydmVgIG9yCiAgICAgICAgICAgIDptZXRoOmBPcGVuU1NMLmNyeXB0by5nZXRfZWxsaXB0aWNfY3VydmVzYC4KCiAgICAgICAgOnJldHVybjogTm9uZQogICAgICAgIE4pBHKIAAAAWhRTU0xfQ1RYX3NldF90bXBfZWNkaHLYAAAAWgpfdG9fRUNfS0VZKQJyggAAAFoFY3VydmVycwAAAHJzAAAAcnQAAADaDHNldF90bXBfZWNkaIYEAABzAgAAAAAKehRDb250ZXh0LnNldF90bXBfZWNkaGMCAAAAAAAAAAMAAAAFAAAAQwAAAHNWAAAAdABkAXwBgwJ9AXQBfAF0AoMCcxx0A2QCgwGCAXQEdAVqBnwAagd8AYMCZANrAoMBAQB0CHwAZASDAn0CdAR8AmoJgwBkBWQGZAdnA2sDgwEBAGQEUwApCHrzCiAgICAgICAgU2V0IHRoZSBsaXN0IG9mIGNpcGhlcnMgdG8gYmUgdXNlZCBpbiB0aGlzIGNvbnRleHQuCgogICAgICAgIFNlZSB0aGUgT3BlblNTTCBtYW51YWwgZm9yIG1vcmUgaW5mb3JtYXRpb24gKGUuZy4KICAgICAgICA6bWFucGFnZTpgY2lwaGVycygxKWApLgoKICAgICAgICA6cGFyYW0gYnl0ZXMgY2lwaGVyX2xpc3Q6IEFuIE9wZW5TU0wgY2lwaGVyIHN0cmluZy4KICAgICAgICA6cmV0dXJuOiBOb25lCiAgICAgICAg2gtjaXBoZXJfbGlzdHoiY2lwaGVyX2xpc3QgbXVzdCBiZSBhIGJ5dGUgc3RyaW5nLnJ1AAAATloWVExTX0FFU18yNTZfR0NNX1NIQTM4NFocVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NloWVExTX0FFU18xMjhfR0NNX1NIQTI1NikKchoBAABysgAAANoFYnl0ZXNytAAAAHLVAAAAcogAAABa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ZyBtYXRlcmlhbC4KCiAgICAgICAgOnBhcmFtIGJ5dGVzIHByb2ZpbGVzOiBBIGNvbG9uIGRlbGltaXRlZCBsaXN0IG9mIHByb3RlY3Rpb24gcHJvZmlsZQogICAgICAgICAgICBuYW1lcywgbGlrZSBgYGInU1JUUF9BRVMxMjhfQ01fU0hBMV84MDpTUlRQX0FFUzEyOF9DTV9TSEExXzMyJ2BgLgogICAgICAgIDpyZXR1cm46IE5vbmUKICAgICAgICB6H3Byb2ZpbGVzIG11c3QgYmUgYSBieXRlIHN0cmluZy5yAQAAAE4pB3KyAAAAciwBAABytAAAAHLVAAAAcogAAABaG1NTTF9DVFhfc2V0X3Rsc2V4dF91c2Vfc3J0cHLYAAAAKQJyggAAAFoIcHJvZmlsZXNycwAAAHJzAAAAcnQAAADaE3NldF90bHNleHRfdXNlX3NydHBmBQAAcwgAAAAACAoBCAICAXobQ29udGV4dC5zZXRfdGxzZXh0X3VzZV9zcnRwYwIAAAAAAAAAAgAAAAQAAABDAAAAcywAAAB0AHwBgwF8AF8BfABqAWoCfABfA3QEagV8AGoGfABqA3QHagiDAwEAZAFTACkCYfIBAAAKICAgICAgICBTcGVjaWZ5IGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGVuIG9mZmVyaW5nIGBOZXh0CiAgICAgICAgUHJvdG9jb2wgTmVnb3RpYXRpb24KICAgICAgICA8aHR0cHM6Ly90ZWNobm90ZXMuZ29vZ2xlY29kZS5jb20vZ2l0L25leHRwcm90b25lZy5odG1sPmBfIGFzIGEgc2VydmVyLgoKICAgICAgICA6cGFyYW0gY2FsbGJhY2s6IFRoZSBjYWxsYmFjayBmdW5jdGlvbi4gIEl0IHdpbGwgYmUgaW52b2tlZCB3aXRoIG9uZQogICAgICAgICAgICBhcmd1bWVudCwgdGhlIDpjbGFzczpgQ29ubmVjdGlvbmAgaW5zdGFuY2UuICBJdCBzaG91bGQgcmV0dXJuIGEKICAgICAgICAgICAgbGlzdCBvZiBieXRlc3RyaW5ncyByZXByZXNlbnRpbmcgdGhlIGFkdmVydGlzZWQgcHJvdG9jb2xzLCBsaWtlCiAgICAgICAgICAg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cGFxdWUgZGF0YSB0aGF0IHdpbGwgYmUgcGFzc2VkIGludG8gdGhlIGNhbGxiYWNrCiAgICAgICAgICAgIGZ1bmN0aW9uIHdoZW4gY2FsbGVkLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGF2b2lkIG5lZWRpbmcgdG8gZG8KICAgICAgICAgICAgY29tcGxleCBkYXRhIGxvb2t1cHMgb3IgdG8ga2VlcCB0cmFjayBvZiB3aGF0IGNvbnRleHQgaXMgYmVpbmcKICAgICAgICAgICAgdXNlZC4gVGhpcyBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwuCiAgICAgICAgTikCcrYAAAByRgEAACkEcoIAAABylAAAAHK6AAAAckQBAABycwAAAHJzAAAAcnQAAADaGHNldF9vY3NwX3NlcnZlcl9jYWxsYmFja9QFAABzBAAAAAAPCAF6IENvbnRleHQuc2V0X29jc3Bfc2VydmVyX2NhbGxiYWNrYwMAAAAAAAAABAAAAAMAAABDAAAAcxgAAAB0AHwBgwF9A3wAagF8A3wCgwIBAGQBUwApAmGNAwAACiAgICAgICAgU2V0IGEgY2FsbGJhY2sgdG8gdmFsaWRhdGUgT0NTUCBkYXRhIHN0YXBsZWQgdG8gdGhlIFRMUyBoYW5kc2hha2Ugb24KICAgICAgICB0aGUgY2xpZW50IHNpZGUuCgogICAgICAgIDpwYXJhbSBjYWxsYmFjazogVGhlIGNhbGxiYWNrIGZ1bmN0aW9uLiBJdCB3aWxsIGJlIGludm9rZWQgd2l0aCB0aHJlZQogICAgICAgICAgICBhcmd1bWVudHM6IHRoZSBDb25uZWN0aW9uLCBhIGJ5dGVzdHJpbmcgY29udGFpbmluZyB0aGUgc3RhcGxlZCBPQ1NQCiAgICAgICAgICAgIGFzc2VydGlvbiwgYW5kIHRoZSBvcHRpb25hbCBhcmJpdHJhcnkgZGF0YSB5b3UgaGF2ZSBwcm92aWRlZC4gVGhlCiAgICAgICAgICAgIGNhbGxiYWNrIG11c3QgcmV0dXJuIGEgYm9vbGVhbiB0aGF0IGluZGljYXRlcyB0aGUgcmVzdWx0IG9mCiAgICAgICAgICAgIHZhbGlkYXRpbmcgdGhlIE9DU1AgZGF0YTogYGBUcnVlYGAgaWYgdGhlIE9DU1AgZGF0YSBpcyB2YWxpZCBhbmQKICAgICAgICAgICAgdGhlIGNlcnRpZmljYXRlIGNhbiBiZSB0cnVzdGVkLCBvciBgYEZhbHNlYGAgaWYgZWl0aGVyIHRoZSBPQ1NQCiAgICAgICAgICAgIGRhdGEgaXMgaW52YWxpZCBvciB0aGUgY2VydGlmaWNhdGUgaGFzIGJlZW4gcmV2b2tlZC4KICAgICAgICA6cGFyYW0gZGF0YTogU29tZSBvcGFxdWUgZGF0YSB0aGF0IHdpbGwgYmUgcGFzc2VkIGludG8gdGhlIGNhbGxiYWNrCiAgICAgICAgICAgIGZ1bmN0aW9uIHdoZW4gY2FsbGVkLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGF2b2lkIG5lZWRpbmcgdG8gZG8KICAgICAgICAgICAgY29tcGxleCBkYXRhIGxvb2t1cHMgb3IgdG8ga2VlcCB0cmFjayBvZiB3aGF0IGNvbnRleHQgaXMgYmVpbmcKICAgICAgICAgICAgdXNlZC4gVGhpcyBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwuCiAgICAgICAgTikCcrwAAAByRgEAACkEcoIAAABylAAAAHK6AAAAckQBAABycwAAAHJzAAAAcnQAAADaGHNldF9vY3NwX2NsaWVudF9jYWxsYmFja+YFAABzBAAAAAARCAF6IENvbnRleHQuc2V0X29jc3BfY2xpZW50X2NhbGxiYWNrKQFOKQFOKQFOKQFOKT9ycAAAAHJxAAAAcnIAAAByfwAAAHIlAAAAciYAAAByJwAAAHIoAAAAcikAAAByKgAAAHLTAAAA2gRkaWN02gVpdGVtc3KDAAAAcvEAAABy9QAAAHL3AAAAcgMBAABy+gAAAHL9AAAAcgsBAAByFwAAAHIOAQAAchABAAByFAEAAHIVAQAAchYBAAByFwEAAHIYAQAAchkBAAByHAEAAHIeAQAAciABAAByIQEAAHIiAQAAciQBAAByJQEAAHImAQAAcikBAAByKgEAAHIuAQAAcjIBAAByMwEAAHI0AQAAcjUBAAByNwEAAHI4AQAAcjkBAAByOwEAAHI8AQAAcuoAAADaDV9yZXF1aXJlc19zbmlyPQEAAHI+AQAA2g1fcmVxdWlyZXNfbnBucj8BAAByQAEAANoOX3JlcXVpcmVzX2FscG5yQgEAAHJDAQAAckYBAAByRwEAAHJIAQAAcnMAAABycwAAAHJzAAAAcnQAAABybQAAAKcCAABzbgAAAAgHBAIEAQQBBAEEAQQBCAICAQYBDgMILgogCAcKHAgxCAsIFAgRDBYIDggRCAYMFwgOCAoIDwgUCBEICggdCA0ICQgJCBQIDAggCCUIFAgOCAkIEwgICAkIEQgNCA0MFQgPDBMMEgwWDBAIFAoSejRDb250ZXh0VHlwZSBoYXMgYmVlbiBkZXByZWNhdGVkLCB1c2UgQ29udGV4dCBpbnN0ZWFkYwAAAAAAAAAAAAAAAAMAAABAAAAAcw4CAABlAFoBZABaAmQBWgNlBIMAWgVkeGQDZASEAVoGZAVkBoQAWgdkB2QIhABaCGQJZAqEAFoJZAtkDIQAWgplC2QNZA6EAIMBWgxlC2QPZBCEAIMBWg1kEWQShABaDmR5ZBRkFYQBWg9lD1oQZHpkFmQXhAFaEWR7ZBhkGYQBWhJlEloTZHxkGmQbhAFaFGQcZB2EAFoVZB5kH4QAWhZkIGQhhABaF2QiZCOEAFoYZCRkJYQAWhlkJmQnhABaGmQoZCmEAFobZCpkK4QAWhxkLGQthABaHWQuZC+EAFoeZDBkMYQAWh9kMmQzhABaIGQ0ZDWEAFohZDZkN4QAWiJkOGQ5hABaI2Q6ZDuEAFokZDxkPYQAWiVkPmQ/hABaJmRAZEGEAFonZEJkQ4QAWihkRGRFhABaKWRGZEeEAFoqZEhkSYQAWitkfWRKZEuEAVosZExkTYQAWi1kTmRPhABaLmRQZFGEAFovZFJkU4QAWjBkVGRVhABaMWRWZFeEAFoyZFhkWYQAWjNkWmRbhABaNGRcZF2EAFo1ZF5kX4QAWjZkYGRhhABaN2RiZGOEAFo4ZGRkZYQAWjlkZmRnhABaOmRoZGmEAFo7ZGpka4QAWjxkbGRthABaPWRuZG+EAFo+ZT9kcGRxhACDAVpAZUFkcmRzhACDAVpCZUFkdGR1hACDAVpDZHZkd4QAWkRkAlMAKX5ybgAAAHoFCiAgICBOYwMAAAAAAAAABQAAAAQAAABDAAAAcwIBAAB0AHwBdAGDAnMSdAJkAYMBggF0A2oEfAFqBYMBfQN0BmoHfAN0A2oIgwJ8AF8JdANqCnwAagl0A2oLgwIBAHwBfABfBWQCfABfDGQCfABfDWQC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X1VTRXIyAAAAWhRTU0xfT1BfRVBIRU1FUkFMX1JTQXIzAAAAWhxTU0xfT1BfTUlDUk9TT0ZUX1NFU1NfSURfQlVHcjQAAABaHVNTTF9PUF9ORVRTQ0FQRV9DSEFMTEVOR0VfQlVHcjUAAABaJ1NTTF9PUF9ORVRTQ0FQRV9SRVVTRV9DSVBIRVJfQ0hBTkdFX0JVR3I2AAAAWiJTU0xfT1BfU1NMUkVGMl9SRVVTRV9DRVJUX1RZUEVfQlVHcjcAAABaIVNTTF9PUF9NSUNST1NPRlRfQklHX1NTTFYzX0JVRkZFUnI4AAAAWh1TU0xfT1BfTVNJRV9TU0xWMl9SU0FfUEFERElOR3I5AAAAWh9TU0xfT1BfU1NMRUFZXzA4MF9DTElFTlRfREhfQlVHcjoAAABaEVNTTF9PUF9UTFNfRDVfQlVHcjsAAABaHFNTTF9PUF9UTFNfQkxPQ0tfUEFERElOR19CVUdyPAAAAFoiU1NMX09QX0RPTlRfSU5TRVJUX0VNUFRZX0ZSQUdNRU5UU3I9AAAAWh9TU0xfT1BfQ0lQSEVSX1NFUlZFUl9QUkVGRVJFTkNFcj4AAABaF1NTTF9PUF9UTFNfUk9MTEJBQ0tfQlVHcj8AAABaFFNTTF9PUF9QS0NTMV9DSEVDS18xckAAAABaFFNTTF9PUF9QS0NTMV9DSEVDS18yckEAAABaGVNTTF9PUF9ORVRTQ0FQRV9DQV9ETl9CVUdyQgAAAFomU1NMX09QX05FVFNDQVBFX0RFTU9fQ0lQSEVSX0NIQU5HRV9CVUdyQwAAAFoVU1NMX09QX05PX0NPTVBSRVNTSU9OckQAAABaE1NTTF9PUF9OT19RVUVSWV9NVFVyRQAAAFoWU1NMX09QX0NPT0tJRV9FWENIQU5HRXJGAAAAWhBTU0xfT1BfTk9fVElDS0VUckcAAABaClNTTF9PUF9BTExySAAAAFoPU1NMX1ZFUklGWV9QRUVSckkAAABaH1NTTF9WRVJJRllfRkFJTF9JRl9OT19QRUVSX0NFUlRySgAAAFoWU1NMX1ZFUklGWV9DTElFTlRfT05DRXJLAAAAWg9TU0xfVkVSSUZZX05PTkVyTAAAAFoSU1NMX1NFU1NfQ0FDSEVfT0ZGck0AAABaFVNTTF9TRVNTX0NBQ0hFX0NMSUVOVHJOAAAAWhVTU0xfU0VTU19DQUNIRV9TRVJWRVJyTwAAAFoTU1NMX1NFU1NfQ0FDSEVfQk9USHJQAAAAWhxTU0xfU0VTU19DQUNIRV9OT19BVVRPX0NMRUFSclEAAABaIVNTTF9TRVNTX0NBQ0hFX05PX0lOVEVSTkFMX0xPT0tVUHJSAAAAWiBTU0xfU0VTU19DQUNIRV9OT19JTlRFUk5BTF9TVE9SRXJTAAAAWhpTU0xfU0VTU19DQUNIRV9OT19JTlRFUk5BTHJUAAAAclUAAAByVgAAAHJXAAAAWhdDcnlwdG9ncmFwaHlfSEFTX1NTTF9TVHJ7AAAAcnwAAAByfQAAAHJ+AAAA2gZleHRlbmRyWAAAAHJZAAAAcloAAAByWwAAAHJcAAAAcl0AAAByXgAAAHJfAAAAcmAAAAByYQAAAHJiAAAAcmMAAAByZAAAAHL+AAAAcv8AAABy+wAAAHL8AAAAcowAAAByZQAAAHKEAAAActUAAAByZgAAAHJnAAAAcmgAAAByaQAAAHJqAAAAcoAAAAByhwAAAHKXAAAAcqcAAABysQAAAHK2AAAAcrwAAAByxgAAAHJrAAAActEAAABaHUNyeXB0b2dyYXBoeV9IQVNfTkVYVFBST1RPTkVHckwBAABaFUNyeXB0b2dyYXBoeV9IQVNfQUxQTnJNAQAAWiBDcnlwdG9ncmFwaHlfSEFTX1RMU0VYVF9IT1NUTkFNRXJLAQAAcmwAAABybQAAAHJwAAAA2hJEZXByZWNhdGlvbldhcm5pbmdaC0NvbnRleHRUeXBlcm4AAABaDkNvbm5lY3Rpb25UeXBlWhBTU0xfbGlicmFyeV9pbml0cnMAAABycwAAAHJzAAAAcnQAAADaCDxtb2R1bGU+AQAAAHPUAQAACAEIAQwBEAEQAQwBDAIMAhgELAwgBAIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQYDAgEIARABFgMGAQYBBgEGAQYBBgIGAQYCBAEEAQQBBAEEAQQCBgEGAQYBBgEGAgYCBgEGAQYBBgEGAgYCBgEGAQYBBgEGAQYBBgEGAQYBBgEGAQYCBgIGAgYBBgEGAgYCBgEGAQYBBgIGAQYBBgEGAQYBBgEGAQYCBgEGAQYBCAEGAQYBBgEGAQQBAgECAQIBCAMGAQYBBgEGAQYBBgEGAQYBBgEGAQYBBgEGBAIBAgECAQIBBgQGBQQBBAMQBgoBCAMQBBAEEAQQBBAEEBwQJxApEDEQMxBDEDsIEwgJCBYCAQoEAgEKBAIBCgQQCxB/AH8AfwB/AH8AfwBaAgEEAQgEEH8AfwB/AH8AfwB/AH8ASQIBBAECAQYF
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 16
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
crypto.cpython-36.opt-1.pyc
87.87 KB
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
crypto.cpython-36.pyc
87.93 KB
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
debug.cpython-36.opt-1.pyc
1.08 KB
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
debug.cpython-36.pyc
1.08 KB
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
rand.cpython-36.opt-1.pyc
1.21 KB
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
rand.cpython-36.pyc
1.21 KB
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
SSL.cpython-36.opt-1.pyc
75.75 KB
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
SSL.cpython-36.pyc
75.82 KB
lrw-r--r--
2021-04-09 04:52:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
tsafe.cpython-36.opt-1.pyc
1.42 KB
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
tsafe.cpython-36.pyc
1.42 KB
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
version.cpython-36.opt-1.pyc
615 B
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
version.cpython-36.pyc
615 B
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
_util.cpython-36.opt-1.pyc
4.05 KB
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
_util.cpython-36.pyc
4.05 KB
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-36.opt-1.pyc
526 B
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-36.pyc
526 B
lrw-r--r--
2021-04-09 04:52:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).