REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 99.31 KB
Close
/opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/engine/__pycache__/base.cpython-311.pyc
Text
Base64
pw0NCgAAAAC7fG9pcFQBAOMAAAAAAAAAAAAAAAAGAAAAAAAAAPN8AQAAlwBkAGQBbABtAVoBAQBkAGQCbAJaAmQAZAJsA1oDZANkBGwEbQVaBQEAZANkBWwEbQZaBgEAZANkBmwHbQhaCAEAZAdkCGwJbQpaCgEAZAdkCWwJbQRaBAEAZAdkCmwJbQtaCwEAZAdkC2wJbQdaBwEAZAdkDGwMbQ1aDQEAZAdkC2wMbQdaDgEACQACAEcAZA2EAGQOZQWmAwAAqwMAAAAAAAAAAFoPAgBHAGQPhABkEGUGpgMAAKsDAAAAAAAAAABaEAIARwBkEYQAZBJlEaYDAACrAwAAAAAAAAAAWhICAEcAZBOEAGQUZRKmAwAAqwMAAAAAAAAAAFoTAgBHAGQVhABkFmUSpgMAAKsDAAAAAAAAAABaFAIARwBkF4QAZBhlEqYDAACrAwAAAAAAAAAAWhUCAEcAZBmEAGQaZQVlC2oWAAAAAAAAAACmBAAAqwQAAAAAAAAAAFoXAgBHAGQbhABkHGUXpgMAAKsDAAAAAAAAAABaGGQCUwApHekAAAAAKQHaDndpdGhfc3RhdGVtZW50TukBAAAAKQHaC0Nvbm5lY3RhYmxlKQHaEEV4Y2VwdGlvbkNvbnRleHQpAdoPX2Rpc3RpbGxfcGFyYW1z6QIAAAApAdoDZXhjKQHaCmludGVyZmFjZXMpAdoDbG9nKQHaBHV0aWwpAdoGc2NoZW1hYwAAAAAAAAAAAAAAAAMAAAAAAAAA8z4CAACXAGUAWgFkAFoCZAFaAwIAZQRqBQAAAAAAAAAAZAKmAQAAqwEAAAAAAAAAAFoGCQAJAAkACQAJAAkACQBkPWQEhAFaB2QFhABaCGUJZAaEAKYAAACrAAAAAAAAAAAAWgpkB4QAWgtkCIQAWgxkCYQAWg1kCoQAWg5kC4QAWg9lCWQMhACmAAAAqwAAAAAAAAAAAFoQZQlkDYQApgAAAKsAAAAAAAAAAABaEWUJZA6EAKYAAACrAAAAAAAAAAAAWhJkD4QAWhNlCWQQhACmAAAAqwAAAAAAAAAAAFoUZBGEAFoVZQlkEoQApgAAAKsAAAAAAAAAAABaFmUJZBOEAKYAAACrAAAAAAAAAAAAWhdlCWQUhACmAAAAqwAAAAAAAAAAAFoYZBWEAFoZZBaEAFoaZD5kF4QBWhtkGIQAWhxkGYQAWh1kGoQAWh5kPmQbhAFaH2QchABaIGQ/ZB2EAVohZD9kHoQBWiJkH4QAWiNkIIQAWiRkIYQAWiVkP2QihAFaJmQ+ZCOEAVonZCSEAFooZCWEAFopZCaEAFoqZCeEAForZCiEAFosZCmEAFotZCqEAFouZCuEAFovZCyEAFowZC2EAFoxZC6EAFoyZC+EAFozZDCEAFo0ZDGEAFo1ZDKEAFo2ZDOEAFo3ZDSEAFo4ZDWEAFo5ZD5kNoQBWjpkN4QAWjtkA1o8ZANaPWQ4hABaPmU/ZDmEAKYAAACrAAAAAAAAAAAAWkBkOoQAWkFkO4QAWkJkPIQAWkNkAlMAKUDaCkNvbm5lY3Rpb25hSQQAAFByb3ZpZGVzIGhpZ2gtbGV2ZWwgZnVuY3Rpb25hbGl0eSBmb3IgYSB3cmFwcGVkIERCLUFQSSBjb25uZWN0aW9uLgoKICAgIFByb3ZpZGVzIGV4ZWN1dGlvbiBzdXBwb3J0IGZvciBzdHJpbmctYmFzZWQgU1FMIHN0YXRlbWVudHMgYXMgd2VsbCBhcwogICAgOmNsYXNzOmBfZXhwcmVzc2lvbi5DbGF1c2VFbGVtZW50YCwgOmNsYXNzOmAuQ29tcGlsZWRgIGFuZAogICAgOmNsYXNzOmAuRGVmYXVsdEdlbmVyYXRvcmAKICAgIG9iamVjdHMuIFByb3ZpZGVzIGEgOm1ldGg6YGJlZ2luYCBtZXRob2QgdG8gcmV0dXJuIDpjbGFzczpgLlRyYW5zYWN0aW9uYAogICAgb2JqZWN0cy4KCiAgICBUaGUgQ29ubmVjdGlvbiBvYmplY3QgaXMgKipub3QqKiB0aHJlYWQtc2FmZS4gIFdoaWxlIGEgQ29ubmVjdGlvbiBjYW4gYmUKICAgIHNoYXJlZCBhbW9uZyB0aHJlYWRzIHVzaW5nIHByb3Blcmx5IHN5bmNocm9uaXplZCBhY2Nlc3MsIGl0IGlzIHN0aWxsCiAgICBwb3NzaWJsZSB0aGF0IHRoZSB1bmRlcmx5aW5nIERCQVBJIGNvbm5lY3Rpb24gbWF5IG5vdCBzdXBwb3J0IHNoYXJlZAogICAgYWNjZXNzIGJldHdlZW4gdGhyZWFkcy4gIENoZWNrIHRoZSBEQkFQSSBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLgoKICAgIFRoZSBDb25uZWN0aW9uIG9iamVjdCByZXByZXNlbnRzIGEgc2luZ2xlIERCQVBJIGNvbm5lY3Rpb24gY2hlY2tlZCBvdXQKICAgIGZyb20gdGhlIGNvbm5lY3Rpb24gcG9vbC4gSW4gdGhpcyBzdGF0ZSwgdGhlIGNvbm5lY3Rpb24gcG9vbCBoYXMgbm8gYWZmZWN0CiAgICB1cG9uIHRoZSBjb25uZWN0aW9uLCBpbmNsdWRpbmcgaXRzIGV4cGlyYXRpb24gb3IgdGltZW91dCBzdGF0ZS4gRm9yIHRoZQogICAgY29ubmVjdGlvbiBwb29sIHRvIHByb3Blcmx5IG1hbmFnZSBjb25uZWN0aW9ucywgY29ubmVjdGlvbnMgc2hvdWxkIGJlCiAgICByZXR1cm5lZCB0byB0aGUgY29ubmVjdGlvbiBwb29sIChpLmUuIGBgY29ubmVjdGlvbi5jbG9zZSgpYGApIHdoZW5ldmVyIHRoZQogICAgY29ubmVjdGlvbiBpcyBub3QgaW4gdXNlLgoKICAgIC4uIGluZGV4OjoKICAgICAgc2luZ2xlOiB0aHJlYWQgc2FmZXR5OyBDb25uZWN0aW9uCgogICAgTkZjCAAAAAAAAAAAAAAABAAAAAMAAADziAIAAJcAfAF8AF8AAAAAAAAAAAB8AWoBAAAAAAAAAAB8AF8BAAAAAAAAAAB8BHwAXwIAAAAAAAAAAHwEZAF1AXwAXwMAAAAAAAAAAHwEckF8AnwAXwQAAAAAAAAAAHwFfABfBQAAAAAAAAAAfARqBgAAAAAAAAAAfABfBgAAAAAAAAAAZAJ8AF8HAAAAAAAAAAB8BnwAXwgAAAAAAAAAAHwEagkAAAAAAAAAAHwAXwkAAAAAAAAAAHwEagoAAAAAAAAAAHwAXwoAAAAAAAAAAG6mfAKBAnwCbhN8AaALAAAAAAAAAAAAAAAAAAAAAAAAAACmAAAAqwAAAAAAAAAAAHwAXwQAAAAAAAAAAGQBfABfDAAAAAAAAAAAZAN8AF8NAAAAAAAAAAB8A3wAXwcAAAAAAAAAAGQCfABfDgAAAAAAAAAAZAR8AF8PAAAAAAAAAAB8AGoAAAAAAAAAAACgEAAAAAAAAAAAAAAAAAAAAAAAAAAApgAAAKsAAAAAAAAAAAB8AF8GAAAAAAAAAAB8B4AkfABqCAAAAAAAAAAAoBEAAAAAAAAAAAAAAAAAAAAAAAAAAHwBaggAAAAAAAAAAKYBAACrAQAAAAAAAAAAfABfCAAAAAAAAAAAfAdwCnwHZAF1AG8GfAFqCQAAAAAAAAAAfABfCQAAAAAAAAAAfAVyAkoAggF8AWoFAAAAAAAAAAB8AF8FAAAAAAAAAAB8AGoJAAAAAAAAAABzDHwAagAAAAAAAAAAAGoJAAAAAAAAAAByInwAaggAAAAAAAAAAKASAAAAAAAAAAAAAAAAAAAAAAAAAAB8AHwAagMAAAAAAAAAAKYCAACrAgAAAAAAAAAAAQBkAVMAZAFTACkFevJDb25zdHJ1Y3QgYSBuZXcgQ29ubmVjdGlvbi4KCiAgICAgICAgVGhlIGNvbnN0cnVjdG9yIGhlcmUgaXMgbm90IHB1YmxpYyBhbmQgaXMgb25seSBjYWxsZWQgb25seSBieSBhbgogICAgICAgIDpjbGFzczpgX2VuZ2luZS5FbmdpbmVgLiBTZWUgOm1ldGg6YF9lbmdpbmUuRW5naW5lLmNvbm5lY3RgIGFuZAogICAgICAgIDptZXRoOmBfZW5naW5lLkVuZ2luZS5jb250ZXh0dWFsX2Nvbm5lY3RgIG1ldGhvZHMuCgogICAgICAgIE5GcgIAAABUKRPaBmVuZ2luZdoHZGlhbGVjdNoYX0Nvbm5lY3Rpb25fX2JyYW5jaF9mcm9t2hNfQ29ubmVjdGlvbl9fYnJhbmNo2hdfQ29ubmVjdGlvbl9fY29ubmVjdGlvbtoSX2V4ZWN1dGlvbl9vcHRpb25z2gVfZWNob9oYc2hvdWxkX2Nsb3NlX3dpdGhfcmVzdWx02ghkaXNwYXRjaNoLX2hhc19ldmVudHPaEXNjaGVtYV9mb3Jfb2JqZWN02g5yYXdfY29ubmVjdGlvbtoYX0Nvbm5lY3Rpb25fX3RyYW5zYWN0aW9u2hpfQ29ubmVjdGlvbl9fc2F2ZXBvaW50X3NlcdoUX0Nvbm5lY3Rpb25fX2ludmFsaWTaGl9Db25uZWN0aW9uX19jYW5fcmVjb25uZWN02hBfc2hvdWxkX2xvZ19pbmZv2gVfam9pbtoOZW5naW5lX2Nvbm5lY3QpCNoEc2VsZnIRAAAA2gpjb25uZWN0aW9u2hFjbG9zZV93aXRoX3Jlc3VsdNoMX2Jy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bV9yZXN1bHRzPVRydWUpLlwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRlKHN0bXQpCgogICAgICAgIE5vdGUgdGhhdCBhbnkga2V5L3ZhbHVlIGNhbiBiZSBwYXNzZWQgdG8KICAgICAgICA6bWV0aDpgX2VuZ2luZS5Db25uZWN0aW9uLmV4ZWN1dGlvbl9vcHRpb25zYCwKICAgICAgICBhbmQgaXQgd2lsbCBiZSBzdG9yZWQgaW4gdGhlCiAgICAgICAgYGBfZXhlY3V0aW9uX29wdGlvbnNgYCBkaWN0aW9uYXJ5IG9mIHRoZSA6Y2xhc3M6YF9lbmdpbmUuQ29ubmVjdGlvbmAuCiAgICAgICAgSXQKICAgICAgICBpcyBzdWl0YWJsZSBmb3IgdXNhZ2UgYnkgZW5kLXVzZXIgc2NoZW1lcyB0byBjb21tdW5pY2F0ZSB3aXRoCiAgICAgICAgZXZlbnQgbGlzdGVuZXJzLCBmb3IgZXhhbXBsZS4KCiAgICAgICAgVGhlIGtleXdvcmRzIHRoYXQgYXJlIGN1cnJlbnRseSByZWNvZ25pemVkIGJ5IFNRTEFsY2hlbXkgaXRzZWxmCiAgICAgICAgaW5jbHVkZSBhbGwgdGhvc2UgbGlzdGVkIHVuZGVyIDptZXRoOmAuRXhlY3V0YWJsZS5leGVjdXRpb25fb3B0aW9uc2AsCiAgICAgICAgYXMgd2VsbCBhcyBvdGhlcnMgdGhhdCBhcmUgc3BlY2lmaWMgdG8gOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gLgoKICAgICAgICA6cGFyYW0gYXV0b2NvbW1pdDogQXZhaWxhYmxlIG9uOiBDb25uZWN0aW9uLCBzdGF0ZW1lbnQuCiAgICAgICAgICBXaGVuIFRydWUsIGEgQ09NTUlUIHdpbGwgYmUgaW52b2tlZCBhZnRlciBleGVjdXRpb24KICAgICAgICAgIHdoZW4gZXhlY3V0ZWQgaW4gJ2F1dG9jb21taXQnIG1vZGUsIGkuZS4gd2hlbiBhbiBleHBsaWNpdAogICAgICAgICAgdHJhbnNhY3Rpb24gaXMgbm90IGJlZ3VuIG9uIHRoZSBjb25uZWN0aW9uLiAgIE5vdGUgdGhhdCB0aGlzCiAgICAgICAgICBpcyAqKmxpYnJhcnkgbGV2ZWwsIG5vdCBEQkFQSSBsZXZlbCBhdXRvY29tbWl0KiouICBUaGUgREJBUEkKICAgICAgICAgIGNvbm5lY3Rpb24gd2lsbCByZW1haW4gaW4gYSByZWFsIHRyYW5zYWN0aW9uIHVubGVzcyB0aGUKICAgICAgICAgICJBVVRPQ09NTUlUIiBpc29sYXRpb24gbGV2ZWwgaXMgdXNlZC4KCiAgICAgICAgICAuLiBkZXByZWNhdGVkOjogMS40ICBUaGUgbGlicmFyeS1sZXZlbCAiYXV0b2NvbW1pdCIgZmVhdHVyZSBpcyBiZWluZwogICAgICAgICAgICAgcmVtb3ZlZCBpbiBmYXZvciBvZiBkYXRhYmFzZSBkcml2ZXIgImF1dG9jb21taXQiIHdoaWNoIGlzCiAgICAgICAgICAgICBub3cgd2lkZWx5IGF2YWlsYWJsZS4gIFNlZSB0aGUgc2VjdGlvbiA6cmVmOmBkYmFwaV9hdXRvY29tbWl0YC4KCiAgICAgICAgOnBhcmFtIGNvbXBpbGVkX2NhY2hlOiBBdmFpbGFibGUgb246IENvbm5lY3Rpb24uCiAgICAgICAgICBBIGRpY3Rpb25hcnkgd2hlcmUgOmNsYXNzOmAuQ29tcGlsZWRgIG9iamVjdHMKICAgICAgICAgIHdpbGwgYmUgY2FjaGVkIHdoZW4gdGhlIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYAogICAgICAgICAgY29tcGlsZXMgYSBjbGF1c2UKICAgICAgICAgIGV4cHJlc3Npb24gaW50byBhIDpjbGFzczpgLkNvbXBpbGVkYCBvYmplY3QuCiAgICAgICAgICBJdCBpcyB0aGUgdXNlcidzIHJlc3BvbnNpYmlsaXR5IHRvCiAgICAgICAgICBtYW5hZ2UgdGhlIHNpemUgb2YgdGhpcyBkaWN0aW9uYXJ5LCB3aGljaCB3aWxsIGhhdmUga2V5cwogICAgICAgICAgY29ycmVzcG9uZGluZyB0byB0aGUgZGlhbGVjdCwgY2xhdXNlIGVsZW1lbnQsIHRoZSBjb2x1bW4KICAgICAgICAgIG5hbWVzIHdpdGhpbiB0aGUgVkFMVUVTIG9yIFNFVCBjbGF1c2Ugb2YgYW4gSU5TRVJUIG9yIFVQREFURSwKICAgICAgICAgIGFzIHdlbGwgYXMgdGhlICJiYXRjaCIgbW9kZSBmb3IgYW4gSU5TRVJUIG9yIFVQREFURSBzdGF0ZW1lbnQuCiAgICAgICAgICBUaGUgZm9ybWF0IG9mIHRoaXMgZGljdGlvbmFyeSBpcyBub3QgZ3VhcmFudGVlZCB0byBzdGF5IHRoZQogICAgICAgICAgc2FtZSBpbiBmdXR1cmUgcmVsZWFzZXMuCgogICAgICAgICAgTm90ZSB0aGF0IHRoZSBPUk0gbWFrZXMgdXNlIG9mIGl0cyBvd24gImNvbXBpbGVkIiBjYWNoZXMgZm9yCiAgICAgICAgICBzb21lIG9wZXJhdGlvbnMsIGluY2x1ZGluZyBmbHVzaCBvcGVyYXRpb25zLiAgVGhlIGNhY2hpbmcKICAgICAgICAgIHVzZWQgYnkgdGhlIE9STSBpbnRlcm5hbGx5IHN1cGVyc2VkZXMgYSBjYWNoZSBkaWN0aW9uYXJ5CiAgICAgICAgICBzcGVjaWZpZWQgaGVyZS4KCiAgICAgICAgOnBhcmFtIGlzb2xhdGlvbl9sZXZlbDogQXZhaWxhYmxlIG9uOiA6Y2xhc3M6YF9lbmdpbmUuQ29ubmVjdGlvbmAuCgogICAgICAgICAgU2V0IHRoZSB0cmFuc2FjdGlvbiBpc29sYXRpb24gbGV2ZWwgZm9yIHRoZSBsaWZlc3BhbiBvZiB0aGlzCiAgICAgICAgICA6Y2xhc3M6YF9lbmdpbmUuQ29ubmVjdGlvbmAgb2JqZWN0LgogICAgICAgICAgVmFsaWQgdmFsdWVzIGluY2x1ZGUgdGhvc2Ugc3RyaW5nCiAgICAgICAgICB2YWx1ZXMgYWNjZXB0ZWQgYnkgdGhlIDpwYXJhbXJlZjpgX3NhLmNyZWF0ZV9lbmdpbmUuaXNvbGF0aW9uX2xldmVsYAogICAgICAgICAgcGFyYW1ldGVyIHBhc3NlZCB0byA6ZnVuYzpgX3NhLmNyZWF0ZV9lbmdpbmVgLiAgVGhlc2UgbGV2ZWxzIGFyZQogICAgICAgICAgc2VtaS1kYXRhYmFzZSBzcGVjaWZpYzsgc2VlIGluZGl2aWR1YWwgZGlhbGVjdCBkb2N1bWVudGF0aW9uIGZvcgogICAgICAgICAgdmFsaWQgbGV2ZWxzLgoKICAgICAgICAgIFRoZSBpc29sYXRpb24gbGV2ZWwgb3B0aW9uIGFwcGxpZXMgdGhlIGlzb2xhdGlvbiBsZXZlbCBieSBlbWl0dGluZwogICAgICAgICAgc3RhdGVtZW50cyBvbiB0aGUgIERCQVBJIGNvbm5lY3Rpb24sIGFuZCAqKm5lY2Vzc2FyaWx5IGFmZmVjdHMgdGhlCiAgICAgICAgICBvcmlnaW5hbCBDb25uZWN0aW9uIG9iamVjdCBvdmVyYWxsKiosIG5vdCBqdXN0IHRoZSBjb3B5IHRoYXQgaXMKICAgICAgICAgIHJldHVybmVkIGJ5IHRoZSBjYWxsIHRvIDptZXRoOmBfZW5naW5lLkNvbm5lY3Rpb24uZXhlY3V0aW9uX29wdGlvbnNgCiAgICAgICAgICBtZXRob2QuICBUaGUgaXNvbGF0aW9uIGxldmVsIHdpbGwgcmVtYWluIGF0IHRoZSBnaXZlbiBzZXR0aW5nIHVudGlsCiAgICAgICAgICB0aGUgREJBUEkgY29ubmVjdGlvbiBpdHNlbGYgaXMgcmV0dXJuZWQgdG8gdGhlIGNvbm5lY3Rpb24gcG9vbCwgaS5lLgogICAgICAgICAgdGhlIDptZXRoOmBfZW5naW5lLkNvbm5lY3Rpb24uY2xvc2VgIG1ldGhvZCBvbiB0aGUgb3JpZ2luYWwKICAgICAgICAgIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBpcyBjYWxsZWQsCiAgICAgICAgICB3aGVyZSAgYW4gZXZlbnQgaGFuZGxlciB3aWxsIGVtaXQKICAgICAgICAgIGFkZGl0aW9uYWwgc3RhdGVtZW50cyBvbiB0aGUgREJBUEkgY29ubmVjdGlvbiBpbiBvcmRlciB0byByZXZlcnQgdGhlCiAgICAgICAgICBpc29sYXRpb24gbGV2ZWwgY2hhbmdlLgoKICAgICAgICAgIC4uIHdhcm5pbmc6OiAgVGhlIGBgaXNvbGF0aW9uX2xldmVsYGAgZXhlY3V0aW9uIG9wdGlvbiBzaG91bGQKICAgICAgICAgICAgICoqbm90KiogYmUgdXNlZCB3aGVuIGEgdHJhbnNhY3Rpb24gaXMgYWxyZWFkeSBlc3RhYmxpc2hlZCwgdGhhdAogICAgICAgICAgICAgaXMsIHRoZSA6bWV0aDpgX2VuZ2luZS5Db25uZWN0aW9uLmJlZ2luYAogICAgICAgICAgICAgbWV0aG9kIG9yIHNpbWlsYXIgaGFzIGJlZW4KICAgICAgICAgICAgIGNhbGxlZC4gIEEgZGF0YWJhc2UgY2Fubm90IGNoYW5nZSB0aGUgaXNvbGF0aW9uIGxldmVsIG9uIGEKICAgICAgICAgICAgIHRyYW5zYWN0aW9uIGluIHByb2dyZXNzLCBhbmQgZGlmZmVyZW50IERCQVBJcyBhbmQvb3IKICAgICAgICAgICAgIFNRTEFsY2hlbXkgZGlhbGVjdHMgbWF5IGltcGxpY2l0bHkgcm9sbCBiYWNrIG9yIGNvbW1pdAogICAgICAgICAgICAgdGhlIHRyYW5zYWN0aW9uLCBvciBub3QgYWZmZWN0IHRoZSBjb25uZWN0aW9uIGF0IGFsbC4KCiAgICAgICAgICAuLiBub3RlOjogVGhlIGBgaXNvbGF0aW9uX2xldmVsYGAgZXhlY3V0aW9uIG9wdGlvbiBpcyBpbXBsaWNpdGx5CiAgICAgICAgICAgICByZXNldCBpZiB0aGUgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gIGlzIGludmFsaWRhdGVkLCBlLmcuIHZpYQogICAgICAgICAgICAgdGhlIDptZXRoOmBfZW5naW5lLkNvbm5lY3Rpb24uaW52YWxpZGF0ZWAgbWV0aG9kLCBvciBpZiBhCiAgICAgICAgICAgICBkaXNjb25uZWN0aW9uIGVycm9yIG9jY3Vycy4gIFRoZSBuZXcgY29ubmVjdGlvbiBwcm9kdWNlZCBhZnRlcgogICAgICAgICAgICAgdGhlIGludmFsaWRhdGlvbiB3aWxsIG5vdCBoYXZlIHRoZSBpc29sYXRpb24gbGV2ZWwgcmUtYXBwbGllZAogICAgICAgICAgICAgdG8gaXQgYXV0b21hdGljYWxseS4KCiAgICAgICAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgICAgICAgICA6cGFyYW1yZWY6YF9zYS5jcmVhdGVfZW5naW5lLmlzb2xhdGlvbl9sZXZlbGAKICAgICAgICAgICAgICAgIC0gc2V0IHBlciA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYCBpc29sYXRpb24gbGV2ZWwKCiAgICAgICAgICAgICAgICA6bWV0aDpgX2VuZ2luZS5Db25uZWN0aW9uLmdldF9pc29sYXRpb25fbGV2ZWxgCiAgICAgICAgICAgICAgICAtIHZpZXcgY3VycmVudCBsZXZlbAoKICAgICAgICAgICAgICAgIDpyZWY6YFNRTGl0ZSBUcmFuc2FjdGlvbiBJc29sYXRpb24gPHNxbGl0ZV9pc29sYXRpb25fbGV2ZWw+YAoKICAgICAgICAgICAgICAgIDpyZWY6YFBvc3RncmVTUUwgVHJhbnNhY3Rpb24gSXNvbGF0aW9uIDxwb3N0Z3Jlc3FsX2lzb2xhdGlvbl9sZXZlbD5gCgogICAgICAgICAgICAgICAgOnJlZjpgTXlTUUwgVHJhbnNhY3Rpb24gSXNvbGF0aW9uIDxteXNxbF9pc29sYXRpb25fbGV2ZWw+YAoKICAgICAgICAgICAgICAgIDpyZWY6YFNRTCBTZXJ2ZXIgVHJhbnNhY3Rpb24gSXNvbGF0aW9uIDxtc3NxbF9pc29sYXRpb25fbGV2ZWw+YAoKICAgICAgICAgICAgICAgIDpyZWY6YHNlc3Npb25fdHJhbnNhY3Rpb25faXNvbGF0aW9uYCAtIGZvciB0aGUgT1JNCgogICAgICAgIDpwYXJhbSBub19wYXJhbWV0ZXJzOiBXaGVuIGBgVHJ1ZWBgLCBpZiB0aGUgZmluYWwgcGFyYW1ldGVyCiAgICAgICAgICBsaXN0IG9yIGRpY3Rpb25hcnkgaXMgdG90YWxseSBlbXB0eSwgd2lsbCBpbnZva2UgdGhlCiAgICAgICAgICBzdGF0ZW1lbnQgb24gdGhlIGN1cnNvciBhcyBgYGN1cnNvci5leGVjdXRlKHN0YXRlbWVudClgYCwKICAgICAgICAgIG5vdCBwYXNzaW5nIHRoZSBwYXJhbWV0ZXIgY29sbGVjdGlvbiBhdCBhbGwuCiAgICAgICAgICBTb21lIERCQVBJcyBzdWNoIGFzIHBzeWNvcGcyIGFuZCBteXNxbC1weXRob24gY29uc2lkZXIKICAgICAgICAgIHBlcmNlbnQgc2lnbnMgYXMgc2lnbmlmaWNhbnQgb25seSB3aGVuIHBhcmFtZXRlcnMgYXJlCiAgICAgICAgICBwcmVzZW50OyB0aGlzIG9wdGlvbiBhbGxvd3MgY29kZSB0byBnZW5lcmF0ZSBTUUwKICAgICAgICAgIGNvbnRhaW5pbmcgcGVyY2VudCBzaWducyAoYW5kIHBvc3NpYmx5IG90aGVyIGNoYXJhY3RlcnMpCiAgICAgICAgICB0aGF0IGlzIG5ldXRyYWwgcmVnYXJkaW5nIHdoZXRoZXIgaXQncyBleGVjdXRlZCBieSB0aGUgREJBUEkKICAgICAgICAgIG9yIHBpcGVkIGludG8gYSBzY3JpcHQgdGhhdCdzIGxhdGVyIGludm9rZWQgYnkKICAgICAgICAgIGNvbW1hbmQgbGluZSB0b29scy4KCiAgICAgICAgOnBhcmFtIHN0cmVhbV9yZXN1bHRzOiBBdmFpbGFibGUgb246IENvbm5lY3Rpb24sIHN0YXRlbWVudC4KICAgICAgICAgIEluZGljYXRlIHRvIHRoZSBkaWFsZWN0IHRoYXQgcmVzdWx0cyBzaG91bGQgYmUKICAgICAgICAgICJzdHJlYW1lZCIgYW5kIG5vdCBwcmUtYnVmZmVyZWQsIGlmIHBvc3NpYmxlLiAgVGhpcyBpcyBhIGxpbWl0YXRpb24KICAgICAgICAgIG9mIG1hbnkgREJBUElzLiAgVGhlIGZsYWcgaXMgY3VycmVudGx5IHVuZGVyc3Rvb2Qgb25seSBieSB0aGUKICAgICAgICAgIHBzeWNvcGcyLCBteXNxbGRiIGFuZCBweW15c3FsIGRpYWxlY3RzLgoKICAgICAgICA6cGFyYW0gc2NoZW1hX3RyYW5zbGF0ZV9tYXA6IEF2YWlsYWJsZSBvbjogQ29ubmVjdGlvbiwgRW5naW5lLgogICAgICAgICAgQSBkaWN0aW9uYXJ5IG1hcHBpbmcgc2NoZW1hIG5hbWVzIHRvIHNjaGVtYSBuYW1lcywgdGhhdCB3aWxsIGJlCiAgICAgICAgICBhcHBsaWVkIHRvIHRoZSA6cGFyYW1yZWY6YF9zY2hlbWEuVGFibGUuc2NoZW1hYCBlbGVtZW50IG9mIGVhY2gKICAgICAgICAgIDpjbGFzczpgX3NjaGVtYS5UYWJsZWAKICAgICAgICAgIGVuY291bnRlcmVk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ciB0aGUgaXNvbGF0aW9uIGxldmVsIG9uIGEKICAgICAgICBwZXItOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gIGJhc2lzLgoKICAgICAgICBUaGlzIGF0dHJpYnV0ZSB3aWxsIHR5cGljYWxseSBwZXJmb3JtIGEgbGl2ZSBTUUwgb3BlcmF0aW9uIGluIG9yZGVyCiAgICAgICAgdG8gcHJvY3VyZSB0aGUgY3VycmVudCBpc29sYXRpb24gbGV2ZWwsIHNvIHRoZSB2YWx1ZSByZXR1cm5lZCBpcyB0aGUKICAgICAgICBhY3R1YWwgbGV2ZWwgb24gdGhlIHVuZGVybHlpbmcgREJBUEkgY29ubmVjdGlvbiByZWdhcmRsZXNzIG9mIGhvdwogICAgICAgIHRoaXMgc3RhdGUgd2FzIHNldC4gIENvbXBhcmUgdG8gdGhlCiAgICAgICAgOmF0dHI6YF9lbmdpbmUuQ29ubmVjdGlvbi5kZWZhdWx0X2lzb2xhdGlvbl9sZXZlbGAgYWNjZXNzb3IKICAgICAgICB3aGljaCByZXR1cm5zIHRoZSBkaWFsZWN0LWxldmVsIHNldHRpbmcgd2l0aG91dCBwZXJmb3JtaW5nIGEgU1FMCiAgICAgICAgcXVlcnkuCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDAuOS45CgogICAgICAgIC4uIHNlZWFsc286OgoKICAgICAgICAgICAgOmF0dHI6YF9lbmdpbmUuQ29ubmVjdGlvbi5kZWZhdWx0X2lzb2xhdGlvbl9sZXZlbGAKICAgICAgICAgICAgLSB2aWV3IGRlZmF1bHQgbGV2ZWwKCiAgICAgICAgICAgIDpwYXJhbXJlZjpgX3NhLmNyZWF0ZV9lbmdpbmUuaXNvbGF0aW9uX2xldmVsYAogICAgICAgICAgICAtIHNldCBwZXIgOmNsYXNzOmBfZW5naW5lLkVuZ2luZWAgaXNvbGF0aW9uIGxldmVsCgogICAgICAgICAgICA6cGFyYW1yZWY6YC5Db25uZWN0aW9uLmV4ZWN1dGlvbl9vcHRpb25zLmlzb2xhdGlvbl9sZXZlbGAKICAgICAgICAgICAgLSBzZXQgcGVyIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBpc29s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dHMgc291cmNlIGNvbm5lY3Rpb24gcG9vbCB3aWxsCiAgICAgICAgdHlwaWNhbGx5IGxhemlseSBjcmVhdGUgYSBuZXcgY29ubmVjdGlvbiB0byByZXBsYWNlIGl0LgoKICAgICAgICBVcG9uIHRoZSBuZXh0IHVzZSAod2hlcmUgInVzZSIgdHlwaWNhbGx5IG1lYW5zIHVzaW5nIHRoZQogICAgICAgIDptZXRoOmBfZW5naW5lLkNvbm5lY3Rpb24uZXhlY3V0ZWAgbWV0aG9kIG9yIHNpbWlsYXIpLAogICAgICAgIHRoaXMgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gIHdpbGwgYXR0ZW1wdCB0bwogICAgICAgIHByb2N1cmUgYSBuZXcgREJBUEkgY29ubmVjdGlvbiB1c2luZyB0aGUgc2VydmljZXMgb2YgdGhlCiAgICAgICAgOmNsYXNzOmBfcG9vbC5Qb29sYCBhcyBhIHNvdXJjZSBvZiBjb25uZWN0aXZpdHkgKGUuZy4KICAgICAgICBhICJyZWNvbm5lY3Rpb24iKS4KCiAgICAgICAgSWYgYSB0cmFuc2FjdGlvbiB3YXMgaW4gcHJvZ3Jlc3MgKGUuZy4gdGhlCiAgICAgICAgOm1ldGg6YF9lbmdpbmUuQ29ubmVjdGlvbi5iZWdpbmAgbWV0aG9kIGhhcyBiZWVuIGNhbGxlZCkgd2hlbgogICAgICAgIDptZXRoOmBfZW5naW5lLkNvbm5lY3Rpb24uaW52YWxpZGF0ZWAgbWV0aG9kIGlzIGNhbGxlZCwgYXQgdGhlIERCQVBJCiAgICAgICAgbGV2ZWwgYWxsIHN0YXRlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRyYW5zYWN0aW9uIGlzIGxvc3QsIGFzCiAgICAgICAgdGhlIERCQVBJIGNvbm5lY3Rpb24gaXMgY2xvc2VkLiAgVGhlIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYAogICAgICAgIHdpbGwgbm90IGFsbG93IGEgcmVjb25uZWN0aW9uIHRvIHByb2NlZWQgdW50aWwgdGhlCiAgICAgICAgOmNsYXNzOmAuVHJhbnNhY3Rpb25gIG9iamVjdCBpcyBlbmRlZCwgYnkgY2FsbGluZyB0aGUKICAgICAgICA6bWV0aDpgLlRyYW5zYWN0aW9uLnJvbGxiYWNrYCBtZXRob2Q7IHVudGlsIHRoYXQgcG9pbnQsIGFueSBhdHRlbXB0IGF0CiAgICAgICAgY29udGludWluZyB0byB1c2UgdGhlIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCB3aWxsIHJhaXNlIGFuCiAgICAgICAgOmNsYXNzOmB+c3FsYWxjaGVteS5leGMuSW52YWxpZFJlcXVlc3RFcnJvcmAuCiAgICAgICAgVGhpcyBpcyB0byBwcmV2ZW50IGFwcGxpY2F0aW9ucyBmcm9tIGFjY2lkZW50YWxseQogICAgICAgIGNvbnRpbnVpbmcgYW4gb25nb2luZyB0cmFuc2FjdGlvbmFsIG9wZXJhdGlvbnMgZGVzcGl0ZSB0aGUKICAgICAgICBmYWN0IHRoYXQgdGhlIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGxvc3QgZHVlIHRvIGFuCiAgICAgICAgaW52YWxpZGF0aW9uLgoKICAgICAgICBUaGUgOm1ldGg6YF9lbmdpbmUuQ29ubmVjdGlvbi5pbnZhbGlkYXRlYCBtZXRob2QsCiAgICAgICAganVzdCBsaWtlIGF1dG8taW52YWxpZGF0aW9uLAogICAgICAgIHdpbGwgYXQgdGhlIGNvbm5lY3Rpb24gcG9vbCBsZXZlbCBpbnZva2UgdGhlCiAgICAgICAgOm1ldGg6YF9ldmVudHMuUG9vbEV2ZW50cy5pbnZhbGlkYXRlYCBldmVudC4KCiAgICAgICAgLi4gc2VlYWxzbzo6CgogICAgICAgICAgICA6cmVmOmBwb29sX2Nvbm5lY3Rpb25faW52YWxpZGF0aW9uYAoKICAgICAgICBOcl8AAABUKQlyUQAAAHJPAAAAcgkAAAByYQAAAHIxAAAAcmYAAAByFQAAANoKaW52YWxpZGF0ZXIfAAAAKQJyJAAAANoJZXhjZXB0aW9ucwIAAAAgIHIpAAAAcnMAAAB6FUNvbm5lY3Rpb24uaW52YWxpZGF0ZQ4CAABzcAAAAIAA8FIBAAwQ1Asb8AABCRPYDBKIRuALD4w78AABCUcB3RIV1BIp0CpF0RJG1BJG0AxG4AsPjDrUCyrwAAEJOtgMEIxK1Awj1wwu0gwuqHnRDDnU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czo6CgogICAgICAgICAgICB0cmFucyA9IGNvbm4uYmVnaW4oKSAgICMgb3V0ZXJtb3N0IHRyYW5zYWN0aW9uCiAgICAgICAgICAgIHRyYW5zMiA9IGNvbm4uYmVnaW4oKSAgIyAibmVzdGVkIgogICAgICAgICAgICB0cmFuczIuY29tbWl0KCkgICAgICAgICMgZG9lcyBub3RoaW5nCiAgICAgICAgICAgIHRyYW5zLmNvbW1pdCgpICAgICAgICAgIyBhY3R1YWxseSBjb21taXRzCgogICAgICAgIENhbGxzIHRvIDptZXRoOmAuVHJhbnNhY3Rpb24uY29tbWl0YCBvbmx5IGhhdmUgYW4gZWZmZWN0CiAgICAgICAgd2hlbiBpbnZva2VkIHZpYSB0aGUgb3V0ZXJtb3N0IDpjbGFzczpgLlRyYW5zYWN0aW9uYCBvYmplY3QsIHRob3VnaCB0aGUKICAgICAgICA6bWV0aDpgLlRyYW5zYWN0aW9uLnJvbGxiYWNrYCBtZXRob2Qgb2YgYW55IG9mIHRoZQogICAgICAgIDpjbGFzczpgLlRyYW5zYWN0aW9uYCBvYmplY3RzIHdpbGwgcm9sbCBiYWNrIHRoZQogICAgICAgIHRyYW5zYWN0aW9uLgoKICAgICAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgICAgIDptZXRoOmBfZW5naW5lLkNvbm5lY3Rpb24uYmVnaW5fbmVzdGVkYCAtIHVzZSBhIFNBVkVQT0lOVAoKICAgICAgICAgICAgOm1ldGg6YF9lbmdpbmUuQ29ubmVjdGlvbi5iZWdpbl90d29waGFzZWAgLQogICAgICAgICAgICB1c2UgYSB0d28gcGhhc2UgL1hJRCB0cmFuc2FjdGlvbgoKICAgICAgICAgICAgOm1ldGg6YF9lbmdpbmUuRW5naW5lLmJlZ2luYCAtIGNvbnRleHQgbWFuYWdlciBhdmFpbGFibGUgZnJvbQogICAgICAgICAgICA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYAoKICAgICAgICApBXITAAAA2gViZWdpbnIdAAAA2g9Sb290VHJhbnNhY3Rpb27aC1RyYW5zYWN0aW9uci8AAABzAQAAACByKQAAAHJ4AAAAehBDb25uZWN0aW9uLmJlZ2lu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dGlvbiByZWZlcmVuY2VkCiAgICAgICAgaW50ZXJuYWxseS4gVGhlIERCQVBJIGNvbm5lY3Rpb24gaXMgdHlwaWNhbGx5IHJlc3RvcmVkCiAgICAgICAgYmFjayB0byB0aGUgY29ubmVjdGlvbi1ob2xkaW5nIDpjbGFzczpgX3Bvb2wuUG9vbGAgcmVmZXJlbmNlZAogICAgICAgIGJ5IHRoZSA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYCB0aGF0IHByb2R1Y2VkIHRoaXMKICAgICAgICA6Y2xhc3M6YF9lbmdpbmUuQ29ubmVjdGlvbmAuIEFueSB0cmFuc2FjdGlvbmFsIHN0YXRlIHByZXNlbnQgb24KICAgICAgICB0aGUgREJBUEkgY29ubmVjdGlvbiBpcyBhbHNvIHVuY29uZGl0aW9uYWxseSByZWxlYXNlZCB2aWEKICAgICAgICB0aGUgREJBUEkgY29ubmVjdGlvbidzIGBgcm9sbGJhY2soKWBgIG1ldGhvZCwgcmVnYXJkbGVzcwogICAgICAgIG9mIGFueSA6Y2xhc3M6YC5UcmFuc2FjdGlvbmAgb2JqZWN0IHRoYXQgbWF5IGJlCiAgICAgICAgb3V0c3RhbmRpbmcgd2l0aCByZWdhcmRzIHRvIHRoaXMgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gLgoKICAgICAgICBBZnRlciA6bWV0aDpgX2VuZ2luZS5Db25uZWN0aW9uLmNsb3NlYCBpcyBjYWxsZWQsIHRoZQogICAgICAgIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBpcyBwZXJtYW5lbnRseSBpbiBhIGNsb3NlZCBzdGF0ZSwKICAgICAgICBhbmQgd2lsbCBhbGxvdyBubyBmdXJ0aGVyIG9wZXJhdGlvbnMuCgogICAgICAgIEZOKQhyEwAAAHIVAAAAclMAAAByIAAAAHI/AAAAcpUAAAByHQAAAHIfAAAAKQJyJAAAANoEY29ubnMCAAAAICByKQAAAHI/AAAAehBDb25uZWN0aW9uLmNsb3NlegMAAHPoAAAAgADwJgAMENQLHfAABwkX8AIGDRfYFBjQFCXQFCX43RMh8AABDRXwAAENFfAAAQ0V2BAUkATwAwENFfj4+PAGACgtkATUECTYEBaQBvjwAwAoLZAE1BAk2BAWkAaQBpAGkAaQBpAG8AIOCSbYExfUEySIRPAKAA0Rj0qKSolMjEyITNgPE9QPIKBE1CQ20A820A822CQokATUECHwCgAUGJQ+8AABDSbYFBjQFCX4+PUZABAe8AABCRHwAAEJEfAAAQkR2AwQiETwAwEJEfj4+PAaACAliATUCBzYHSGIBNQIGtAIGtAIGnMtAAAAiQIMAIsBJQCMChkDlgIlAJgBGQOZAyUApQkxA7UHQS8AwS8KQTwDwTsBQTwDYwIAAAAAAAAAAAAAAAUAAAAPAAAA80gAAACXAAIAfABqAAAAAAAAAAAAfAFnAXwCogFSAGkAfAOkAY4BoAEAAAAAAAAAAAAAAAAAAAAAAAAAAKYAAACrAAAAAAAAAAAAUwApAXqBRXhlY3V0ZXMgYW5kIHJldHVybnMgdGhlIGZpcnN0IGNvbHVtbiBvZiB0aGUgZmlyc3Qgcm93LgoKICAgICAgICBUaGUgdW5kZXJseWluZyByZXN1bHQvY3Vyc29yIGlzIGNsb3NlZCBhZnRlciBleGVjdXRpb24uCiAgICAgICAgqQLaB2V4ZWN1dGXaBnNjYWxhcikEciQAAADaB29iamVjdF/aC211bHRpcGFyYW1z2gZwYXJhbXNzBAAAACAgICByKQAAAHLOAAAAehFDb25uZWN0aW9uLnNjYWxhcqcDAABzMgAAAIAA8AwAEByIdIx8mEfQDzyga9APPNAPPNAPPLBW0A880A881w9D0g9D0Q9F1A9F0AhFcisAAABjAgAAAAAAAAAAAAAABgAAAA8AAADzGgEAAJcAdAEAAAAAAAAAAAAAfAF0AgAAAAAAAAAAAABqAgAAAAAAAAAAZAEZAAAAAAAAAAAApgIAAKsCAAAAAAAAAAByF3wAoAMAAAAAAAAAAAAAAAAAAAAAAAAAAHwBfAJ8A6YDAACrAwAAAAAAAAAAUwAJAHwBagQAAAAAAAAAAH0EAgB8BHwAfAJ8A6YDAACrAwAAAAAAAAAAUwAjAHQKAAAAAAAAAAAAACQAcjN9BXQDAAAAAAAAAAAAAGoGAAAAAAAAAAB0DwAAAAAAAAAAAABqCAAAAAAAAAAAfAGmAQAAqwEAAAAAAAAAAHwFrAKmAgAAqwIAAAAAAAAAAAEAWQBkA30FfgVkA1MAZAN9BX4FdwF3AHgDWQB3ASkEYZ0IAABFeGVjdXRlcyBhIFNRTCBzdGF0ZW1lbnQgY29uc3RydWN0IGFuZCByZXR1cm5zIGEKICAgICAgICA6Y2xhc3M6YF9lbmdpbmUuUmVzdWx0UHJveHlgLgoKICAgICAgICA6cGFyYW0gb2JqZWN0OiBUaGUgc3RhdGVtZW50IHRvIGJlIGV4ZWN1dGVkLiAgTWF5IGJlCiAgICAgICAgIG9uZSBvZjoKCiAgICAgICAgICogYSBwbGFpbiBzdHJpbmcKICAgICAgICAgKiBhbnkgOmNsYXNzOmBfZXhwcmVzc2lvbi5DbGF1c2VFbGVtZW50YCBjb25zdHJ1Y3QgdGhhdCBpcyBhbHNvCiAgICAgICAgICAgYSBzdWJjbGFzcyBvZiA6Y2xhc3M6YC5FeGVjdXRhYmxlYCwgc3VjaCBhcyBhCiAgICAgICAgICAgOmZ1bmM6YF9leHByZXNzaW9uLnNlbGVjdGAgY29uc3RydWN0CiAgICAgICAgICogYSA6Y2xhc3M6YC5GdW5jdGlvbkVsZW1lbnRgLCBzdWNoIGFzIHRoYXQgZ2VuZXJhdGVkCiAgICAgICAgICAgYnkgOmRhdGE6YC5mdW5jYCwgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHdyYXBwZWQgaW4KICAgICAgICAgICBhIFNFTEVDVCBzdGF0ZW1lbnQsIHdoaWNoIGlzIHRoZW4gZXhlY3V0ZWQuCiAgICAgICAgICogYSA6Y2xhc3M6YC5ERExFbGVtZW50YCBvYmplY3QKICAgICAgICAgKiBhIDpjbGFzczpgLkRlZmF1bHRHZW5lcmF0b3JgIG9iamVjdAogICAgICAgICAqIGEgOmNsYXNzOmAuQ29tcGlsZWRgIG9iamVjdAoKICAgICAgICA6cGFyYW0gXCptdWx0aXBhcmFtcy9cKipwYXJhbXM6IHJlcHJlc2VudCBib3VuZCBwYXJhbWV0ZXIKICAgICAgICAgdmFsdWVzIHRvIGJlIHVzZWQgaW4gdGhlIGV4ZWN1dGlvbi4gICBUeXBpY2FsbHksCiAgICAgICAgIHRoZSBmb3JtYXQgaXMgZWl0aGVyIGEgY29sbGVjdGlvbiBvZiBvbmUgb3IgbW9yZQogICAgICAgICBkaWN0aW9uYXJpZXMgcGFzc2VkIHRvIFwqbXVsdGlwYXJhbXM6OgoKICAgICAgICAgICAgIGNvbm4uZXhlY3V0ZSgKICAgICAgICAgICAgICAgICB0YWJsZS5pbnNlcnQoKSwKICAgICAgICAgICAgICAgICB7ImlkIjoxLCAidmFsdWUiOiJ2MSJ9LAogICAgICAgICAgICAgICAgIHsiaWQiOjIsICJ2YWx1ZSI6InYyIn0KICAgICAgICAgICAgICkKCiAgICAgICAgIC4uLm9yIGluZGl2aWR1YWwga2V5L3ZhbHVlcyBpbnRlcnByZXRlZCBieSBcKipwYXJhbXM6OgoKICAgICAgICAgICAgIGNvbm4uZXhlY3V0ZSgKICAgICAgICAgICAgICAgICB0YWJsZS5pbnNlcnQoKSwgaWQ9MSwgdmFsdWU9InYxIgogICAgICAgICAgICAgKQoKICAgICAgICAgSW4gdGhlIGNhc2UgdGhhdCBhIHBsYWluIFNRTCBzdHJpbmcgaXMgcGFzc2VkLCBhbmQgdGhlIHVuZGVybHlpbmcKICAgICAgICAgREJBUEkgYWNjZXB0cyBwb3NpdGlvbmFsIGJpbmQgcGFyYW1ldGVycywgYSBjb2xsZWN0aW9uIG9mIHR1cGxlcwogICAgICAgICBvciBpbmRpdmlkdWFsIHZhbHVlcyBpbiBcKm11bHRpcGFyYW1zIG1heSBiZSBwYXNzZWQ6OgoKICAgICAgICAgICAgIGNvbm4uZXhlY3V0ZSgKICAgICAgICAgICAgICAgICAiSU5TRVJUIElOVE8gdGFibGUgKGlkLCB2YWx1ZSkgVkFMVUVTICg/LCA/KSIsCiAgICAgICAgICAgICAgICAgKDEsICJ2MSIpLCAoMiwgInYyIikKICAgICAgICAgICAgICkKCiAgICAgICAgICAgICBjb25uLmV4ZWN1dGUoCiAgICAgICAgICAgICAgICAgIklOU0VSVCBJTlRPIHRhYmxlIChpZCwgdmFsdWUpIFZBTFVFUyAoPywgPykiLAogICAgICAgICAgICAgICAgIDEsICJ2MSIKICAgICAgICAgICAgICkKCiAgICAgICAgIE5vdGUgYWJvdmUsIHRoZSB1c2FnZSBvZiBhIHF1ZXN0aW9uIG1hcmsgIj8iIG9yIG90aGVyCiAgICAgICAgIHN5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XCphcmdzIGFuZCBcKiprd2FyZ3MsCiAgICAgICAgZS5nLjo6CgogICAgICAgICAgICBkZWYgZG9fc29tZXRoaW5nKGNvbm4sIHgsIHkpOgogICAgICAgICAgICAgICAgY29ubi5leGVjdXRlKCJzb21lIHN0YXRlbWVudCIsIHsneCc6eCwgJ3knOnl9KQoKICAgICAgICAgICAgY29ubi50cmFuc2FjdGlvbihkb19zb21ldGhpbmcsIDUsIDEwKQoKICAgICAgICBUaGUgb3BlcmF0aW9ucyBpbnNpZGUgdGhlIGZ1bmN0aW9uIGFyZSBhbGwgaW52b2tlZCB3aXRoaW4gdGhlCiAgICAgICAgY29udGV4dCBvZiBhIHNpbmdsZSA6Y2xhc3M6YC5UcmFuc2FjdGlvbmAuCiAgICAgICAgVXBvbiBzdWNjZXNzLCB0aGUgdHJhbnNhY3Rpb24gaXMgY29tbWl0dGVkLiAgSWYgYW4KICAgICAgICBleGNlcHRpb24gaXMgcmFpc2VkLCB0aGUgdHJhbnNhY3Rpb24gaXMgcm9sbGVkIGJhY2sKICAgICAgICBiZWZvcmUgcHJvcGFnYXRpbmcgdGhlIGV4Y2VwdGlvbi4KCiAgICAgICAgLi4gbm90ZTo6CgogICAgICAgICAgIFRoZSA6bWV0aDpgLnRyYW5zYWN0aW9uYCBtZXRob2QgaXMgc3VwZXJzZWRlZCBieQogICAgICAgICAgIHRoZSB1c2FnZSBvZiB0aGUgUHl0aG9uIGBgd2l0aDpgYCBzdGF0ZW1lbnQsIHdoaWNoIGNhbgogICAgICAgICAgIGJlIHVzZWQgd2l0aCA6bWV0aDpgX2VuZ2luZS5Db25uZWN0aW9uLmJlZ2luYDo6CgogICAgICAgICAgICAgICB3aXRoIGNvbm4uYmVnaW4oKToKICAgICAgICAgICAgICAgICAgIGNvbm4uZXhlY3V0ZSgic29tZSBzdGF0ZW1lbnQiLCB7J3gnOjUsICd5JzoxMH0pCgogICAgICAgICAgIEFzIHdlbGwgYXMgd2l0aCA6bWV0aDpgX2VuZ2luZS5FbmdpbmUuYmVnaW5gOjoKCiAgICAgICAgICAgICAgIHdpdGggZW5naW5lLmJlZ2luKCkgYXMgY29ubjoKICAgICAgICAgICAg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IGIpIHZhbHVlcyAoMSwgMikiKQogICAgICAgIHRyYW5zLmNvbW1pdCgpCgogICAgVGhlIG9iamVjdCBwcm92aWRlcyA6bWV0aDpgLnJvbGxiYWNrYCBhbmQgOm1ldGg6YC5jb21taXRgCiAgICBtZXRob2RzIGluIG9yZGVyIHRvIGNvbnRyb2wgdHJhbnNhY3Rpb24gYm91bmRhcmllcy4gIEl0CiAgICBhbHNvIGltcGxlbWVudHMgYSBjb250ZXh0IG1hbmFnZXIgaW50ZXJmYWNlIHNvIHRoYXQKICAgIHRoZSBQeXRob24gYGB3aXRoYGAgc3RhdGVtZW50IGNhbiBiZSB1c2VkIHdpdGggdGhlCiAgICA6bWV0aDpgX2VuZ2luZS5Db25uZWN0aW9uLmJlZ2luYCBtZXRob2Q6OgoKICAgICAgICB3aXRoIGNvbm5lY3Rpb24uYmVnaW4oKToKICAgICAgICAgICAgY29ubmVjdGlvbi5leGVjdXRlKCJpbnNlcnQgaW50byB4IChhLCBiKSB2YWx1ZXMgKDEsIDIpIikKCiAgICBUaGUgVHJhbnNhY3Rpb24gb2JqZWN0IGlzICoqbm90KiogdGhyZWFkc2FmZS4KCiAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgOm1ldGg6YF9lbmdpbmUuQ29ubmVjdGlvbi5iZWdpbmAKCiAgICAgICAgOm1ldGg6YF9lbmdpbmUuQ29ubmVjdGlvbi5iZWdpbl90d29waGFzZWAKCiAgICAgICAgOm1ldGg6YF9lbmdpbmUuQ29ubmVjdGlvbi5iZWdpbl9uZXN0ZWRgCgogICAgLi4gaW5kZXg6OgogICAgICBzaW5nbGU6IHRocmVhZCBzYWZldHk7IFRyYW5zYWN0aW9uCiAgICBjAwAAAAAAAAAAAAAAAgAAAAMAAADzMAAAAJcAfAF8AF8AAAAAAAAAAAB8AnwAXwEAAAAAAAAAAGQBfABfAgAAAAAAAAAAZABTACkCTlQpA3IlAAAA2g5fYWN0dWFsX3BhcmVudNoJaXNfYWN0aXZlKQNyJAAAAHIlAAAA2gZwYXJlbnRzAwAAACAgIHIpAAAAcioAAAB6FFRyYW5zYWN0aW9uLl9faW5pdF9fuwYAAHMcAAAAgADYGiSIBIwP2B4kiATUCBvYGR2I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YSBuZXcgOmNsYXNzOmBfZW5naW5lLkVuZ2luZWAgdGhhdCB3aWxsIHByb3ZpZGUKICAgICAgICA6Y2xhc3M6YF9lbmdpbmUuQ29ubmVjdGlvbmAgb2JqZWN0cyB3aXRoIHRoZSBnaXZlbiBleGVjdXRpb24gb3B0aW9ucy4KCiAgICAgICAgVGhlIHJldHVybmVkIDpjbGFzczpgX2VuZ2luZS5FbmdpbmVgIHJlbWFpbnMgcmVsYXRlZCB0byB0aGUgb3JpZ2luYWwKICAgICAgICA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYCBpbiB0aGF0IGl0IHNoYXJlcyB0aGUgc2FtZSBjb25uZWN0aW9uIHBvb2wgYW5kCiAgICAgICAgb3RoZXIgc3RhdGU6CgogICAgICAgICogVGhlIDpjbGFzczpgX3Bvb2wuUG9vbGAgdXNlZCBieSB0aGUgbmV3IDpjbGFzczpgX2VuZ2luZS5FbmdpbmVgCiAgICAgICAgICBpcyB0aGUKICAgICAgICAgIHNhbWUgaW5zdGFuY2UuICBUaGUgOm1ldGg6YF9lbmdpbmUuRW5naW5lLmRpc3Bvc2VgCiAgICAgICAgICBtZXRob2Qgd2lsbCByZXBsYWNlCiAgICAgICAgICB0aGUgY29ubmVjdGlvbiBwb29sIGluc3RhbmNlIGZvciB0aGUgcGFyZW50IGVuZ2luZSBhcyB3ZWxsCiAgICAgICAgICBhcyB0aGlzIG9uZS4KICAgICAgICAqIEV2ZW50IGxpc3RlbmVycyBhcmUgImNhc2NhZGVkIiAtIG1lYW5pbmcsIHRoZSBuZXcKICAgICAgICAgIDpjbGFzczpgX2VuZ2luZS5FbmdpbmVgCiAgICAgICAgICBpbmhlcml0cyB0aGUgZXZlbnRzIG9mIHRoZSBwYXJlbnQsIGFuZCBuZXcgZXZlbnRzIGNhbiBiZSBhc3NvY2lhdGVkCiAgICAgICAgICB3aXRoIHRoZSBuZXcgOmNsYXNzOmBfZW5naW5lLkVuZ2luZWAgaW5kaXZpZHVhbGx5LgogICAgICAgICogVGhlIGxvZ2dpbmcgY29uZmlndXJhdGlvbiBhbmQgbG9nZ2luZ19uYW1lIGlzIGNvcGllZCBmcm9tIHRoZSBwYXJlbnQKICAgICAgICAgIDpjbGFzczpgX2VuZ2luZS5FbmdpbmVgLgoKICAgICAgICBUaGUgaW50ZW50IG9mIHRoZSA6bWV0aDpgX2VuZ2luZS5FbmdpbmUuZXhlY3V0aW9uX29wdGlvbnNgIG1ldGhvZCBpcwogICAgICAgIHRvIGltcGxlbWVudCAic2hhcmRpbmciIHNjaGVtZXMgd2hlcmUgbXVsdGlwbGUgOmNsYXNzOmBfZW5naW5lLkVuZ2luZWAKICAgICAgICBvYmplY3RzIHJlZmVyIHRvIHRoZSBzYW1lIGNvbm5lY3Rpb24gcG9vbCwgYnV0IGFyZSBkaWZmZXJlbnRpYXRlZAogICAgICAgIGJ5IG9wdGlvbnMgdGhhdCB3b3VsZCBiZSBjb25zdW1lZCBieSBhIGN1c3RvbSBldmVudDo6CgogICAgICAgICAgICBwcmltYXJ5X2VuZ2luZSA9IGNyZWF0ZV9lbmdpbmUoIm15c3FsOi8vIikKICAgICAgICAgICAgc2hhcmQxID0gcHJpbWFyeV9lbmdpbmUuZXhlY3V0aW9uX29wdGlvbnMoc2hhcmRfaWQ9InNoYXJkMSIpCiAgICAgICAgICAgIHNoYXJkMiA9IHByaW1hcnlfZW5naW5lLmV4ZWN1dGlvbl9vcHRpb25zKHNoYXJkX2lkPSJzaGFyZDIiKQoKICAgICAgICBBYm92ZSwgdGhlIGBgc2hhcmQxYGAgZW5naW5lIHNlcnZlcyBhcyBhIGZhY3RvcnkgZm9yCiAgICAgICAgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gCiAgICAgICAgb2JqZWN0cyB0aGF0IHdpbGwgY29udGFpbiB0aGUgZXhlY3V0aW9uIG9wdGlvbgogICAgICAgIGBgc2hhcmRfaWQ9c2hhcmQxYGAsIGFuZCBgYHNoYXJkMmBgIHdpbGwgcHJvZHVjZQogICAgICAgIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYAogICAgICAgIG9iamVjdHMgdGhhdCBjb250YWluIHRoZSBleGVjdXRpb24gb3B0aW9uIGBgc2hhcmRfaWQ9c2hhcmQyYGAuCgogICAgICAgIEFuIGV2ZW50IGhhbmRsZXIgY2FuIGNvbnN1bWUgdGhlIGFib3ZlIGV4ZWN1dGlvbiBvcHRpb24gdG8gcGVyZm9ybQogICAgICAgIGEgc2NoZW1hIHN3aXRjaCBvciBvdGhlciBvcGVyYXRpb24sIGdpdmVuIGEgY29ubmVjdGlvbi4gIEJlbG93CiAgICAgICAgd2UgZW1pdCBhIE15U1FMIGBgdXNlYGAgc3RhdGVtZW50IHRvIHN3aXRjaCBkYXRhYmFzZXMsIGF0IHRoZSBzYW1lCiAgICAgICAgdGltZSBrZWVwaW5nIHRyYWNrIG9mIHdoaWNoIGRhdGFiYXNlIHdlJ3ZlIGVzdGFibGlzaGVkIHVzaW5nIHRoZQogICAgICAgIDphdHRyOmBfZW5naW5lLkNvbm5lY3Rpb24uaW5mb2AgZGljdGlvbmFyeSwKICAgICAgICB3aGljaCBnaXZlcyB1cyBhIHBlcnNpc3RlbnQKICAgICAgICBzdG9yYWdlIHNwYWNlIHRoYXQgZm9sbG93cyB0aGUgREJBUEkgY29ubmVjdGlvbjo6CgogICAgICAgICAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IGV2ZW50CiAgICAgICAgICAgIGZyb20gc3FsYWxjaGVteS5lbmdpbmUgaW1wb3J0IEVuZ2luZQoKICAgICAgICAgICAgc2hhcmRzID0geyJkZWZhdWx0IjogImJhc2UiLCBzaGFyZF8xOiAiZGIxIiwgInNoYXJkXzIiOiAiZGIyIn0KCiAgICAgICAgICAgIEBldmVudC5saXN0ZW5zX2ZvcihFbmdpbmUsICJiZWZvcmVfY3Vyc29yX2V4ZWN1dGUiKQogICAgICAgICAgICBkZWYgX3N3aXRjaF9zaGFyZChjb25uLCBjdXJzb3IsIHN0bXQsCiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCBjb250ZXh0LCBleGVjdXRlbWFueSk6CiAgICAgICAgICAgICAgICBzaGFyZF9pZCA9IGNvbm4uX2V4ZWN1dGlvbl9vcHRpb25zLmdldCgnc2hhcmRfaWQnLCAiZGVmYXVsdCIpCiAgICAgICAgICAgICAgICBjdXJyZW50X3NoYXJkID0gY29ubi5pbmZvLmdldCgiY3VycmVudF9zaGFyZCIsIE5vbmUpCgogICAgICAgICAgICAgICAgaWYgY3VycmVudF9zaGFyZCAhPSBzaGFyZF9pZDoKICAgICAgICAgICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZSgidXNlICVzIiAlIHNoYXJkc1tzaGFyZF9pZF0pCiAgICAgICAgICAgICAgICAgICAgY29ubi5pbmZvWyJjdXJyZW50X3NoYXJkIl0gPSBzaGFyZF9pZAoKICAgICAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgICAgIDptZXRoOmBfZW5naW5lLkNvbm5lY3Rpb24uZXhlY3V0aW9uX29wdGlvbnNgCiAgICAgICAgICAgIC0gdXBkYXRlIGV4ZWN1dGlvbiBvcHRpb25zCiAgICAgICAgICAgIG9uIGEgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gIG9iamVjdC4KCiAgICAgICAgICAgIDptZXRoOmBfZW5naW5lLkVuZ2luZS51cGRhdGVfZXhlY3V0aW9uX29wdGlvbnNgCiAgICAgICAgICAgIC0gdXBkYXRlIHRoZSBleGVjdXRpb24KICAgICAgICAgICAgb3B0aW9ucyBmb3IgYSBnaXZlbiA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYCBpbiBwbGFjZS4KCiAgICAgICAgICAgIDptZXRoOmBfZW5naW5lLkVuZ2luZS5nZXRfZXhlY3V0aW9uX29wdGlvbnNgCgoKICAgICAgICApAdoMT3B0aW9uRW5naW5lcpwBAABzAgAAACAgcikAAABySQAAAHoYRW5naW5lLmV4ZWN1dGlvbl9vcHRpb25zmAcAAHMVAAAAgAD1VAIAEByYRKAj0Q8m1A8m0AgmcisAAABjAQAAAAAAAAAAAAAAAQAAAAMAAADzEAAAAJcAfABqAAAAAAAAAAAAUwApAXqzR2V0IHRoZSBub24tU1FMIG9wdGlvbnMgd2hpY2ggd2lsbCB0YWtlIGVmZmVjdCBkdXJpbmcgZXhlY3V0aW9uLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6IDEuMwoKICAgICAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgICAgIDptZXRoOmBfZW5naW5lLkVuZ2luZS5leGVjdXRpb25fb3B0aW9uc2AKICAgICAgICBySwAAAHIvAAAAcwEAAAAgcikAAAByTAAAAHocRW5naW5lLmdldF9leGVjdXRpb25fb3B0aW9uc+QHAAByTQAAAHIrAAAAYwEAAAAAAAAAAAAAAAEAAAADAAAA8xoAAACXAHwAagAAAAAAAAAAAGoBAAAAAAAAAABTACkBemlTdHJpbmcgbmFtZSBvZiB0aGUgOmNsYXNzOmB+c3FsYWxjaGVteS5lbmdpbmUuaW50ZXJmYWNlcy5EaWFsZWN0YAogICAgICAgIGluIHVzZSBieSB0aGlzIDpjbGFzczpgRW5naW5lYC4pAnISAAAAcqYAAAByLwAAAHMBAAAAIHIpAAAAcqYAAAB6C0VuZ2luZS5uYW1l7wcAAHMPAAAAgADwCgAQFIx81A8g0AggcisAAABjAQAAAAAAAAAAAAAAAQAAAAMAAADzGgAAAJcAfABqAAAAAAAAAAAAagEAAAAAAAAAAFMAKQF6aURyaXZlciBuYW1lIG9mIHRoZSA6Y2xhc3M6YH5zcWxhbGNoZW15LmVuZ2luZS5pbnRlcmZhY2VzLkRpYWxlY3RgCiAgICAgICAgaW4gdXNlIGJ5IHRoaXMgOmNsYXNzOmBFbmdpbmVgLikCchIAAADaBmRyaXZlcnIvAAAAcwEAAAAgcikAAAByogEAAHoNRW5naW5lLmRyaXZlcvYHAABzDwAAAIAA8AoAEBSMfNQPItAIInIrAAAAYwEAAAAAAAAAAAAAAAIAAAADAAAA8xYAAACXAGQBfABqAAAAAAAAAAAAegYAAFMAKQJOegpFbmdpbmUoJXIpKQFykQEAAHIvAAAAcwEAAAAgcikAAADaCF9fcmVwcl9feg9FbmdpbmUuX19yZXByX1//BwAAcw8AAACAANgPG5hknGjRDybQCCZyKwAAAGMBAAAAAAAAAAAAAAADAAAAAwAAAPOoAAAAlwB8AGoAAAAAAAAAAACgAQAAAAAAAAAAAAAAAAAAAAAAAAAApgAAAKsAAAAAAAAAAAABAHwAagAAAAAAAAAAAKACAAAAAAAAAAAAAAAAAAAAAAAAAACmAAAAqwAAAAAAAAAAAHwAXwAAAAAAAAAAAHwAagMAAAAAAAAAAKAEAAAAAAAAAAAAAAAAAAAAAAAAAAB8AKYBAACrAQAAAAAAAAAAAQBkAVMAKQJh5wMAAERpc3Bvc2Ugb2YgdGhlIGNvbm5lY3Rpb24gcG9vbCB1c2VkIGJ5IHRoaXMKICAgICAgICA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYC4KCiAgICAgICAgVGhpcyBoYXMgdGhlIGVmZmVjdCBvZiBmdWxseSBjbG9zaW5nIGFsbCAqKmN1cnJlbnRseSBjaGVja2VkIGluKioKICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9ucy4gIENvbm5lY3Rpb25zIHRoYXQgYXJlIHN0aWxsIGNoZWNrZWQgb3V0CiAgICAgICAgd2lsbCAqKm5vdCoqIGJlIGNsb3NlZCwgaG93ZXZlciB0aGV5IHdpbGwgbm8gbG9uZ2VyIGJlIGFzc29jaWF0ZWQKICAgICAgICB3aXRoIHRoaXMgOmNsYXNzOmBfZW5naW5lLkVuZ2luZWAsCiAgICAgICAgc28gd2hlbiB0aGV5IGFyZSBjbG9zZWQgaW5kaXZpZHVhbGx5LAogICAgICAgIGV2ZW50dWFsbHkgdGhlIDpjbGFzczpgX3Bvb2wuUG9vbGAgd2hpY2ggdGhleSBhcmUgYXNzb2NpYXRlZCB3aXRoIHdpbGwKICAgICAgICBiZSBnYXJiYWdlIGNvbGxlY3RlZCBhbmQgdGhleSB3aWxsIGJlIGNsb3NlZCBvdXQgZnVsbHksIGlmCiAgICAgICAgbm90IGFscmVhZHkgY2xvc2VkIG9uIGNoZWNraW4uCgogICAgICAgIEEgbmV3IGNvbm5lY3Rpb24gcG9vbCBpcyBjcmVhdGVkIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBvbGQgb25lIGhhcwogICAgICAgIGJlZW4gZGlzcG9zZWQuICAgVGhpcyBuZXcgcG9vbCwgbGlrZSBhbGwgU1FMQWxjaGVteSBjb25uZWN0aW9uIHBvb2xzLAogICAgICAgIGRvZXMgbm90IG1ha2UgYW55IGFjdHVhbCBjb25uZWN0aW9ucyB0byB0aGUgZGF0YWJhc2UgdW50aWwgb25lIGlzCiAgICAgICAgZmlyc3QgcmVxdWVzdGVkLCBzbyBhcyBsb25nIGFzIHRoZSA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYAogICAgICAgIGlzbid0IHVzZWQgYWdhaW4sCiAgICAgICAgbm8gbmV3IGNvbm5lY3Rpb25zIHdpbGwgYmUgbWFkZS4KCiAgICAgICAgLi4gc2VlYWxzbzo6Cgog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AABFeGVjdXRlcyB0aGUgZ2l2ZW4gY29uc3RydWN0IGFuZCByZXR1cm5zIGEKICAgICAgICA6Y2xhc3M6YF9lbmdpbmUuUmVzdWx0UHJveHlgLgoKICAgICAgICBUaGUgYXJndW1lbnRzIGFyZSB0aGUgc2FtZSBhcyB0aG9zZSB1c2VkIGJ5CiAgICAgICAgOm1ldGg6YF9lbmdpbmUuQ29ubmVjdGlvbi5leGVjdXRlYC4KCiAgICAgICAgSGVyZSwgYSA6Y2xhc3M6YF9lbmdpbmUuQ29ubmVjdGlvbmAgaXMgYWNxdWlyZWQgdXNpbmcgdGhlCiAgICAgICAgOm1ldGg6YF9lbmdpbmUuRW5naW5lLmNvbnRleHR1YWxfY29ubmVjdGAgbWV0aG9kLAogICAgICAgIGFuZCB0aGUgc3RhdGVtZW50IGV4ZWN1dGVkCiAgICAgICAgd2l0aCB0aGF0IGNvbm5lY3Rpb24uIFRoZSByZXR1cm5lZCA6Y2xhc3M6YF9lbmdpbmUuUmVzdWx0UHJveHlgCiAgICAgICAgaXMgZmxhZ2dlZAogICAgICAgIHN1Y2ggdGhhdCB3aGVuIHRoZSA6Y2xhc3M6YF9lbmdpbmUuUmVzdWx0UHJveHlgIGlzIGV4aGF1c3RlZCBhbmQgaXRzCiAgICAgICAgdW5kZXJseWluZyBjdXJzb3IgaXMgY2xvc2VkLCB0aGUgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gCiAgICAgICAgY3JlYXRlZCBoZXJlCiAgICAgICAgd2lsbCBhbHNvIGJlIGNsb3NlZCwgd2hpY2ggYWxsb3dzIGl0cyBhc3NvY2lhdGVkIERCQVBJIGNvbm5lY3Rpb24KICAgICAgICByZXNvdXJjZSB0byBiZSByZXR1cm5lZCB0byB0aGUgY29ubmVjdGlvbiBwb29sLgoKICAgICAgICBUcrUBAAApAnJxAAAAcs0AAAApBXIkAAAAcgkBAABy0AAAAHLRAAAAciUAAABzBQAAACAgICAgcikAAAByzQAAAHoORW5naW5lLmV4ZWN1dGWmCAAAcz0AAACAAPAoABYa1xUt0hUtwATQFS3RFUXUFUWICtgPIYh61A8hoCnQD0Soa9APRNAPRNAPRLhW0A9E0A9E0AhEcisAAABjAgAAAAAAAAAAAAAABQAAAA8AAADzSAAAAJcAAgB8AGoAAAAAAAAAAAB8AWcBfAKiAVIAaQB8A6QBjgGgAQAAAAAAAAAAAAAAAAAAAAAAAAAApgAAAKsAAAAAAAAAAABTAHI6AAAAcswAAAApBHIkAAAAcgkBAABy0AAAAHLRAAAAcwQAAAAgICAgcikAAAByzgAAAHoNRW5naW5lLnNjYWxhcr0IAABzMAAAAIAA2A8biHSMfJhJ0A8+qAvQDz7QDz7QDz6wdtAPPtAPPtcPRdIPRdEPR9QPR9AIR3IrAAAAYwQAAAAAAAAAAAAAAAUAAAADAAAA81wAAACXAHwAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQBrAKmAQAAqwEAAAAAAAAAAH0EfASgAQAAAAAAAAAAAAAAAAAAAAAAAAAAfAF8AnwDpgMAAKsDAAAAAAAAAABTAKkDTlRytQEAACkCcnEAAABy3AAAACkFciQAAAByAAEAAHLQAAAActEAAAByJQAAAHMFAAAAICAgICByKQAAAHLcAAAAeh1FbmdpbmUuX2V4ZWN1dGVfY2xhdXNlZWxlbWVudMAIAABzMAAAAIAA2BUZ1xUt0hUtwATQFS3RFUXUFUWICtgPGdcPMNIPMLAUsHvARtEPS9QPS9AIS3IrAAAAYwQAAAAAAAAAAAAAAAUAAAADAAAA81wAAACXAHwAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQBrAKmAQAAqwEAAAAAAAAAAH0EfASgAQAAAAAAAAAAAAAAAAAAAAAAAAAAfAF8AnwDpgMAAKsDAAAAAAAAAABTAHK9AQAAKQJycQAAAHIGAQAAKQVyJAAAAHLyAAAActAAAABy0QAAAHIlAAAAcwUAAAAgICAgIHIpAAAAcgYBAAB6GEVuZ2luZS5fZXhlY3V0ZV9jb21waWxlZMQIAABzMAAAAIAA2BUZ1xUt0hUtwATQFS3RFUXUFUWICtgPGdcPK9IPK6hIsGvANtEPStQPStAISnIrAAAAYwEAAAAAAAAAAAAAAAUAAAALAAAA8x4AAACXAAIAfABqAAAAAAAAAAAAfABmAWkAfAGkAY4BUwApAWGEAgAAUmV0dXJuIGEgbmV3IDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBvYmplY3QuCgogICAgICAgIFRoZSA6Y2xhc3M6YF9lbmdpbmUuQ29ubmVjdGlvbmAgb2JqZWN0IGlzIGEgZmFjYWRlIHRoYXQgdXNlcyBhIERCQVBJCiAgICAgICAgY29ubmVjdGlvbiBpbnRlcm5hbGx5IGluIG9yZGVyIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGRhdGFiYXNlLiAgVGhpcwogICAgICAgIGNvbm5lY3Rpb24gaXMgcHJvY3VyZWQgZnJvbSB0aGUgY29ubmVjdGlvbi1ob2xkaW5nIDpjbGFzczpgX3Bvb2wuUG9vbGAKICAgICAgICByZWZlcmVuY2VkIGJ5IHRoaXMgOmNsYXNzOmBfZW5naW5lLkVuZ2luZWAuIFdoZW4gdGhlCiAgICAgICAgOm1ldGg6YF9lbmdpbmUuQ29ubmVjdGlvbi5jbG9zZWAgbWV0aG9kIG9mIHRoZQogICAgICAgIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBvYmplY3QKICAgICAgICBpcyBjYWxsZWQsIHRoZSB1bmRlcmx5aW5nIERCQVBJIGNvbm5lY3Rpb24gaXMgdGhlbiByZXR1cm5lZCB0byB0aGUKICAgICAgICBjb25uZWN0aW9uIHBvb2wsIHdoZXJlIGl0IG1heSBiZSB1c2VkIGFnYWluIGluIGEgc3Vic2VxdWVudCBjYWxsIHRvCiAgICAgICAgOm1ldGg6YF9lbmdpbmUuRW5naW5lLmNvbm5lY3RgLgoKICAgICAgICApAXIuAAAAcm8AAABzAgAAACAgcikAAABybQAAAHoORW5naW5lLmNvbm5lY3TICAAAcx8AAACAAPAeABAkiHTUDyOgRNAPM9APM6hG0A8z0A8z0AgzcisAAAB6AzEuM2EMAQAAVGhlIDptZXRoOmBfZW5naW5lLkVuZ2luZS5jb250ZXh0dWFsX2Nvbm5lY3RgIG1ldGhvZCBpcyBkZXByZWNhdGVkLiBUaGlzIG1ldGhvZCBpcyBhbiBhcnRpZmFjdCBvZiB0aGUgdGhyZWFkbG9jYWwgZW5naW5lIHN0cmF0ZWd5IHdoaWNoIGlzIGFsc28gdG8gYmUgZGVwcmVjYXRlZC4gICBGb3IgZXhwbGljaXQgY29ubmVjdGlvbnMgZnJvbSBhbiA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYCwgdXNlIHRoZSA6bWV0aDpgX2VuZ2luZS5FbmdpbmUuY29ubmVjdGAgbWV0aG9kLmMCAAAAAAAAAAAAAAAFAAAACwAAAPMgAAAAlwACAHwAagAAAAAAAAAAAGQCZAF8AWkBfAKkAY4BUwApA2H2AgAAUmV0dXJuIGEgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gCiAgICAgICAgb2JqZWN0IHdoaWNoIG1heSBiZSBwYXJ0IG9mIHNvbWUKICAgICAgICBvbmdvaW5nIGNvbnRleHQuCgogICAgICAgIEJ5IGRlZmF1bHQsIHRoaXMgbWV0aG9kIGRvZXMgdGhlIHNhbWUgdGhpbmcgYXMKICAgICAgICA6bWV0aDpgX2VuZ2luZS5FbmdpbmUuY29ubmVjdGAuCiAgICAgICAgU3ViY2xhc3NlcyBvZiA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYCBtYXkgb3ZlcnJpZGUgdGhpcyBtZXRob2QKICAgICAgICB0byBwcm92aWRlIGNvbnRleHR1YWwgYmVoYXZpb3IuCgogICAgICAgIDpwYXJhbSBjbG9zZV93aXRoX3Jlc3VsdDogV2hlbiBUcnVlLCB0aGUgZmlyc3QKICAgICAgICAgIDpjbGFzczpgX2VuZ2luZS5SZXN1bHRQcm94eWAKICAgICAgICAgIGNyZWF0ZWQgYnkgdGhlIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCB3aWxsIGNhbGwgdGhlCiAgICAgICAgICA6bWV0aDpgX2VuZ2luZS5Db25uZWN0aW9uLmNsb3NlYAogICAgICAgICAgbWV0aG9kIG9mIHRoYXQgY29ubmVjdGlvbiBhcyBzb29uIGFzIGFueQogICAgICAgICAgcGVuZGluZyByZXN1bHQgcm93cyBhcmUgZXhoYXVzdGVkLiBUaGlzIGlzIHVzZWQgdG8gc3VwcGx5IHRoZQogICAgICAgICAgImNvbm5lY3Rpb25sZXNzIGV4ZWN1dGlvbiIgYmVoYXZpb3IgcHJvdmlkZWQgYnkgdGhlCiAgICAgICAgICA6bWV0aDpgX2VuZ2luZS5FbmdpbmUuZXhlY3V0ZWAgbWV0aG9kLgoKICAgICAgICByJgAAAHI7AAAAcqsBAACpA3IkAAAAciYAAABycAAAAHMD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Y3Rpb24gb2JqZWN0IHVzZWQgYnkgdGhlIHVuZGVybHlpbmcgZHJpdmVyIGluIHVzZS4KICAgICAgICBUaGUgb2JqZWN0IHdpbGwgaGF2ZSBhbGwgdGhlIHNhbWUgYmVoYXZpb3IgYXMgdGhlIHJlYWwgREJBUEkKICAgICAgICBjb25uZWN0aW9uLCBleGNlcHQgdGhhdCBpdHMgYGBjbG9zZSgpYGAgbWV0aG9kIHdpbGwgcmVzdWx0IGluIHRoZQogICAgICAgIGNvbm5lY3Rpb24gYmVpbmcgcmV0dXJuZWQgdG8gdGhlIHBvb2wsIHJhdGhlciB0aGFuIGJlaW5nIGNsb3NlZAogICAgICAgIGZvciByZWFsLgoKICAgICAgICBUaGlzIG1ldGhvZCBwcm92aWRlcyBkaXJlY3QgREJBUEkgY29ubmVjdGlvbiBhY2Nlc3MgZm9yCiAgICAgICAgc3BlY2lhbCBzaXR1YXRpb25zIHdoZW4gdGhlIEFQSSBwcm92aWRlZCBieQogICAgICAgIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYAogICAgICAgIGlzIG5vdCBuZWVkZWQuICAgV2hlbiBhIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBvYmplY3QgaXMgYWxyZWFkeQogICAgICAgIHByZXNlbnQsIHRoZSBEQkFQSSBjb25uZWN0aW9uIGlzIGF2YWlsYWJsZSB1c2luZwogICAgICAgIHRoZSA6YXR0cjpgX2VuZ2luZS5Db25uZWN0aW9uLmNvbm5lY3Rpb25gIGFjY2Vzc29yLgoKICAgICAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgICAgIDpyZWY6YGRiYXBpX2Nvbm5lY3Rpb25zYAoKICAgICAgICApA3LEAQAAci8BAADaEXVuaXF1ZV9jb25uZWN0aW9uKQJyJAAAAHJeAAAAcwIAAAAgIHIpAAAAchwAAAB6FUVuZ2luZS5yYXdfY29ubmVjdGlvbisJAABzJgAAAIAA8CwAEBTXDybSDybYDBCMSdQMJ6gb8QMCEAr0AAIQCvAAAgkKcisAAAApBU5OTk5GcjoAAAByXQEAACkCTk4pMHJeAQAAcl8BAAByYAEAAHJhAQAAcgwAAADaDWltbXV0YWJsZWRpY3Ry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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 10
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
base.cpython-311.pyc
99.31 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
default.cpython-311.pyc
66.23 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
interfaces.cpython-311.pyc
49.32 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
reflection.cpython-311.pyc
38.35 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
result.cpython-311.pyc
66.15 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
strategies.cpython-311.pyc
13.58 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
threadlocal.cpython-311.pyc
8.53 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
url.cpython-311.pyc
13.18 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
util.cpython-311.pyc
2.65 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-311.pyc
25.64 KB
lrw-r--r--
2026-02-06 08:01:45
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).