REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 78.52 KB
Close
//opt/alt/python33/lib64/python3.3/logging/__pycache__/__init__.cpython-33.pyc
Text
Base64
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ZXUMAAAAQkFTSUNfRk9STUFUdRIAAABCdWZmZXJpbmdGb3JtYXR0ZXJ1CAAAAENSSVRJQ0FMdQUAAABERUJVR3UFAAAARVJST1J1BQAAAEZBVEFMdQsAAABGaWxlSGFuZGxlcnUGAAAARmlsdGVydQkAAABGb3JtYXR0ZXJ1BwAAAEhhbmRsZXJ1BAAAAElORk91CQAAAExvZ1JlY29yZHUGAAAATG9nZ2VydQ0AAABMb2dnZXJBZGFwdGVydQYAAABOT1RTRVR1CwAAAE51bGxIYW5kbGVydQ0AAABTdHJlYW1IYW5kbGVydQQAAABXQVJOdQcAAABXQVJOSU5HdQwAAABhZGRMZXZlbE5hbWV1CwAAAGJhc2ljQ29uZmlndQ8AAABjYXB0dXJlV2FybmluZ3N1CAAAAGNyaXRpY2FsdQUAAABkZWJ1Z3UHAAAAZGlzYWJsZXUFAAAAZXJyb3J1CQAAAGV4Y2VwdGlvbnUFAAAAZmF0YWx1DAAAAGdldExldmVsTmFtZXUJAAAAZ2V0TG9nZ2VydQ4AAABnZXRMb2dnZXJDbGFzc3UEAAAAaW5mb3UDAAAAbG9ndQ0AAABtYWtlTG9nUmVjb3JkdQ4AAABzZXRMb2dnZXJDbGFzc3UEAAAAd2FybnUHAAAAd2FybmluZ3UTAAAAZ2V0TG9nUmVjb3JkRmFjdG9yeXUTAAAAc2V0TG9nUmVjb3JkRmFjdG9yeXUKAAAAbGFzdFJlc29ydHUmAAAAVmluYXkgU2FqaXAgPHZpbmF5X3NhamlwQHJlZC1kb3ZlLmNvbT51CgAAAHByb2R1Y3Rpb251BwAAADAuNS4xLjJ1EAAAADA3IEZlYnJ1YXJ5IDIwMTB1BgAAAGZyb3plbnUTAAAAbG9nZ2luZyVzX19pbml0X18lc2kEAAAAdQkAAABfZ2V0ZnJhbWVjAAAAAAAAAAAAAAAAAgAAAEMAAABzDQAAAHQAAGoBAGQBAIMBAFMoAgAAAE5pAwAAACgCAAAAdQMAAABzeXN1CQAAAF9nZXRmcmFtZSgAAAAAKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1CAAAADxsYW1iZGE+QAAAAHMAAAAAdQgAAAA8bGFtYmRhPmMAAAAAAAAAAAAAAAAJAAAAQwAAAHMtAAAAeQoAdAAAggEAV24cAAEBAXQBAGoCAIMAAGQBABlqAwBqBABTWW4BAFhkAgBTKAMAAAB1NQAAAFJldHVybiB0aGUgZnJhbWUgb2JqZWN0IGZvciB0aGUgY2FsbGVyJ3Mgc3RhY2sgZnJhbWUuaQIAAABOKAUAAAB1CQAAAEV4Y2VwdGlvbnUDAAAAc3lzdQgAAABleGNfaW5mb3UIAAAAdGJfZnJhbWV1BgAAAGZfYmFjaygAAAAAKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1DAAAAGN1cnJlbnRmcmFtZUIAAABzCAAAAAACAwEKAQMBdQwAAABjdXJyZW50ZnJhbWVpMgAAAGkoAAAAaR4AAABpFAAAAGkKAAAAYwEAAAAAAAAAAQAAAAQAAABDAAAAcxQAAAB0AABqAQB8AABkAQB8AAAWgwIAUygCAAAAdQ8CAAAKICAgIFJldHVybiB0aGUgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiBsb2dnaW5nIGxldmVsICdsZXZlbCcuCgogICAgSWYgdGhlIGxldmVsIGlzIG9uZSBvZiB0aGUgcHJlZGVmaW5lZCBsZXZlbHMgKENSSVRJQ0FMLCBFUlJPUiwgV0FSTklORywKICAgIElORk8sIERFQlVHKSB0aGVuIHlvdSBnZXQgdGhlIGNvcnJlc3BvbmRpbmcgc3RyaW5nLiBJZiB5b3UgaGF2ZQogICAgYXNzb2NpYXRlZCBsZXZlbHMgd2l0aCBuYW1lcyB1c2luZyBhZGRMZXZlbE5hbWUgdGhlbiB0aGUgbmFtZSB5b3UgaGF2ZQogICAgYXNzb2NpYXRlZCB3aXRoICdsZXZlbCcgaXMgcmV0dXJuZWQuCgogICAgSWYgYSBudW1lcmljIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBkZWZpbmVkIGxldmVscyBpcyBwYXNzZWQKICAgIGluLCB0aGUgY29ycmVzcG9uZGluZyBzdHJpbmcgcmVwcmVzZW50YXRpb24gaXMgcmV0dXJuZWQuCgogICAgT3RoZXJ3aXNlLCB0aGUgc3RyaW5nICJMZXZl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XyQAdCUAc6QBZAgAfAAAXyYAblUAZAUAfAAAXyYAdCcAaigAaikAZAYAgwEAfQwAfAwAZAgAawkAcvkBeRYAfAwAaioAgwAAagEAfAAAXyYAV3H5AQR0KwBrCgBy9QEBAQFZcfkBWG4AAHQsAHIgAnQtAHQLAGQHAIMCAHIgAnQLAGouAIMAAHwAAF8vAG4JAGQIAHwAAF8vAGQIAFMoCQAAAHVLAAAACiAgICAgICAgSW5pdGlhbGl6ZSBhIGxvZ2dpbmcgcmVjb3JkIHdpdGggaW50ZXJlc3RpbmcgaW5mb3JtYXRpb24uCiAgICAgICAgaQEAAABpAAAAAHUOAAAAVW5rbm93biBtb2R1bGVp6AMAAHULAAAATWFpblByb2Nlc3N1DwAAAG11bHRpcHJvY2Vzc2luZ3UGAAAAZ2V0cGlkTigwAAAAdQQAAAB0aW1ldQQAAABuYW1ldQMAAABtc2d1AwAAAGxlbnUKAAAAaXNpbnN0YW5jZXUEAAAAZGljdHUEAAAAYXJnc3UMAAAAZ2V0TGV2ZWxOYW1ldQkAAABsZXZlbG5hbWV1BwAAAGxldmVsbm91CAAAAHBhdGhuYW1ldQIAAABvc3UEAAAAcGF0aHUIAAAAYmFzZW5hbWV1CAAAAGZpbGVuYW1ldQgAAABzcGxpdGV4dHUGAAAAbW9kdWxldQkAAABUeXBlRXJyb3J1CgAAAFZhbHVlRXJyb3J1DgAAAEF0dHJpYnV0ZUVycm9ydQgAAABleGNfaW5mb3UEAAAATm9uZXUIAAAAZXhjX3RleHR1CgAAAHN0YWNrX2luZm91BgAAAGxpbmVub3UIAAAAZnVuY05hbWV1BwAAAGNyZWF0ZWR1AwAAAGludHUFAAAAbXNlY3N1CgAAAF9zdGFydFRpbWV1DwAAAHJlbGF0aXZlQ3JlYXRlZHUKAAAAbG9nVGhyZWFkc3UJAAAAdGhyZWFkaW5ndQkAAABnZXRfaWRlbnR1BgAAAHRocmVhZHUOAAAAY3VycmVudF90aHJlYWR1CgAAAHRocmVhZE5hbWV1EgAAAGxvZ011bHRpcHJvY2Vzc2luZ3ULAAAAcHJvY2Vzc05hbWV1AwAAAHN5c3UHAAAAbW9kdWxlc3UDAAAAZ2V0dQ8AAABjdXJyZW50X3Byb2Nlc3N1CQAAAEV4Y2VwdGlvbnUMAAAAbG9nUHJvY2Vzc2VzdQcAAABoYXNhdHRydQYAAABnZXRwaWR1BwAAAHByb2Nlc3MoDQAAAHUEAAAAc2VsZnUEAAAAbmFtZXUFAAAAbGV2ZWx1CAAAAHBhdGhuYW1ldQYAAABsaW5lbm91AwAAAG1zZ3UEAAAAYXJnc3UIAAAAZXhjX2luZm91BAAAAGZ1bmN1BQAAAHNpbmZvdQYAAABrd2FyZ3N1AgAAAGN0dQIAAABtcCgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQgAAABfX2luaXRfX+gAAABzUAAAAAAFDAEJAQkONQENAQkBDwEJAQkBAwEVASABFgEJAQ4BCQEJAQkBCQEJAQkBFwEUAQwBDwEVAgkBCQEGAQwCCQESAQwFAwEWAQ0BCAEVARICdRIAAABMb2dSZWNvcmQuX19pbml0X19jAQAAAAAAAAABAAAABgAAAEMAAABzJgAAAGQBAHwAAGoAAHwAAGoBAHwAAGoCAHwAAGoDAHwAAGoEAGYFABZTKAIAAABOdSEAAAA8TG9nUmVjb3JkOiAlcywgJXMsICVzLCAlcywgIiVzIj4oBQAAAHUEAAAAbmFtZXUHAAAAbGV2ZWxub3UIAAAAcGF0aG5hbWV1BgAAAGxpbmVub3UDAAAAbXNnKAEAAAB1BAAAAHNlbGYoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUHAAAAX19zdHJfXyoBAABzBAAAAAABDwF1EQAAAExvZ1JlY29yZC5fX3N0cl9fYwEAAAAAAAAAAgAAAAIAAABDAAAAcywAAAB0AAB8AABqAQCDAQB9AQB8AABqAgByKAB8AQB8AABqAgAWfQEAbgAAfAEAUygBAAAAdasAAAAKICAgICAgICBSZXR1cm4gdGhlIG1lc3NhZ2UgZm9yIHRoaXMgTG9nUmVjb3JkLgoKICAgICAgICBSZXR1cm4gdGhlIG1lc3NhZ2UgZm9yIHRoaXMgTG9nUmVjb3JkIGFmdGVyIG1lcmdpbmcgYW55IHVzZXItc3VwcGxpZWQKICAgICAgICBhcmd1bWVudHMgd2l0aCB0aGUgbWVzc2FnZS4KICAgICAgICAoAwAAAHUDAAAAc3RydQMAAABtc2d1BAAAAGFyZ3MoAgAAAHUEAAAAc2VsZnUDAAAAbXNnKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1CgAAAGdldE1lc3NhZ2UuAQAAcwgAAAAABw8BCQEQAXUUAAAATG9nUmVjb3JkLmdldE1lc3NhZ2VOKAgAAAB1CAAAAF9fbmFtZV9fdQoAAABfX21vZHVsZV9fdQwAAABfX3F1YWxuYW1lX191BwAAAF9fZG9jX191BAAAAE5vbmV1CAAAAF9faW5pdF9fdQcAAABfX3N0cl9fdQoAAABnZXRNZXNzYWdlKAEAAAB1CgAAAF9fbG9jYWxzX18oAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUJAAAATG9nUmVjb3Jk3AAAAHMIAAAAEAsGAhJBDARjAQAAAAAAAAABAAAAAQAAAEMAAABzCgAAAHwAAGEAAGQBAFMoAgAAAHWbAAAACiAgICBTZXQgdGhlIGZhY3RvcnkgdG8gYmUgdXNlZCB3aGVuIGluc3RhbnRpYXRpbmcgYSBsb2cgcmVjb3JkLgoKICAgIDpwYXJhbSBmYWN0b3J5OiBBIGNhbGxhYmxlIHdoaWNoIHdpbGwgYmUgY2FsbGVkIHRvIGluc3RhbnRpYXRlCiAgICBhIGxvZyByZWNvcmQuCiAgICBOKAEAAAB1EQAAAF9sb2dSZWNvcmRGYWN0b3J5KAEAAAB1BwAAAGZhY3RvcnkoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUTAAAAc2V0TG9nUmVjb3JkRmFjdG9yeT8BAABzAgAAAAAIYwAAAAAAAAAAAAAAAAEAAABDAAAAcwQAAAB0AABTKAEAAAB1SAAAAAogICAgUmV0dXJuIHRoZSBmYWN0b3J5IHRvIGJlIHVzZWQgd2hlbiBpbnN0YW50aWF0aW5nIGEgbG9nIHJlY29yZC4KICAgICgBAAAAdREAAABfbG9nUmVjb3JkRmFjdG9yeSgAAAAAKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1EwAAAGdldExvZ1JlY29yZEZhY3RvcnlJAQAAcwIAAAAABWMBAAAAAAAAAAIAAAAJAAAAQwAAAHM1AAAAdAAAZAMAZAMAZAEAZAIAZAEAZgAAZAMAZAMAgwgAfQEAfAEAagIAagMAfAAAgwEAAXwBAFMoBAAAAHX0AAAACiAgICBNYWtlIGEgTG9nUmVjb3JkIHdob3NlIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQgYnkgdGhlIHNwZWNpZmllZCBkaWN0aW9uYXJ5LAogICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VmdWwgZm9yIGNvbnZlcnRpbmcgYSBsb2dnaW5nIGV2ZW50IHJlY2VpdmVkIG92ZXIKICAgIGEgc29ja2V0IGNvbm5lY3Rpb24gKHdoaWNoIGlzIHNlbnQgYXMgYSBkaWN0aW9uYXJ5KSBpbnRvIGEgTG9nUmVjb3JkCiAgICBpbnN0YW5jZS4KICAgIHUAAAAAaQAAAABOKAQAAAB1EQAAAF9sb2dSZWNvcmRGYWN0b3J5dQQAAABOb25ldQgAAABfX2RpY3RfX3UGAAAAdXBkYXRlKAIAAAB1BAAAAGRpY3R1AgAAAHJ2KAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1DQAAAG1ha2VMb2dSZWNvcmRQAQAAcwYAAAAAByEBEAFjAQAAAAAAAAABAAAAAgAAAEIAAABzSgAAAHwAAEVlAABaAQBkAABaAgBkAQBaAwBkAgBaBABkAwBaBQBkBABkBQCEAABaBgBkBgBkBwCEAABaBwBkCABkCQCEAABaCABkCgBTKAsAAAB1DAAAAFBlcmNlbnRTdHlsZXULAAAAJShtZXNzYWdlKXN1CwAAACUoYXNjdGltZSlzdQoAAAAlKGFzY3RpbWUpYwIAAAAAAAAAAgAAAAMAAABDAAAAcxYAAAB8AQBwDAB8AABqAAB8AABfAQBkAABTKAEAAABOKAIAAAB1DgAAAGRlZmF1bHRfZm9ybWF0dQQAAABfZm10KAIAAAB1BAAAAHNlbGZ1AwAAAGZtdCgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQgAAABfX2luaXRfX2UBAABzAgAAAAABdRUAAABQZXJjZW50U3R5bGUuX19pbml0X19jAQAAAAAAAAABAAAAAgAAAEMAAABzGQAAAHwAAGoAAGoBAHwAAGoCAIMBAGQBAGsFAFMoAgAAAE5pAAAAACgDAAAAdQQAAABfZm10dQQAAABmaW5kdQ4AAABhc2N0aW1lX3NlYXJjaCgBAAAAdQQAAABzZWxmKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1CAAAAHVzZXNUaW1laAEAAHMCAAAAAAF1FQAAAFBlcmNlbnRTdHlsZS51c2VzVGltZWMCAAAAAAAAAAIAAAACAAAAQwAAAHMOAAAAfAAAagAAfAEAagEAFlMoAQAAAE4oAgAAAHUEAAAAX2ZtdHUIAAAAX19kaWN0X18oAgAAAHUEAAAAc2VsZnUGAAAAcmVjb3JkKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1BgAAAGZvcm1hdGsBAABzAgAAAAABdRMAAABQZXJjZW50U3R5bGUuZm9ybWF0TigJAAAAdQgAAABfX25hbWVfX3UKAAAAX19tb2R1bGVfX3UMAAAAX19xdWFsbmFtZV9fdQ4AAABkZWZhdWx0X2Zvcm1hdHUOAAAAYXNjdGltZV9mb3JtYXR1DgAAAGFzY3RpbWVfc2VhcmNodQgAAABfX2luaXRfX3UIAAAAdXNlc1RpbWV1BgAAAGZvcm1hdCgBAAAAdQoAAABfX2xvY2Fsc19fKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1DAAAAFBlcmNlbnRTdHlsZV8BAABzDAAAABACBgEGAQYCDAMMA3UMAAAAUGVyY2VudFN0eWxlYwEAAAAAAAAAAQAAAAIAAABCAAAAczIAAAB8AABFZQAAWgEAZAAAWgIAZAEAWgMAZAIAWgQAZAMAWgUAZAQAZAUAhAAAWgYAZAYAUygHAAAAdQ4AAABTdHJGb3JtYXRTdHlsZXUJAAAAe21lc3NhZ2V9dQkAAAB7YXNjdGltZX11CAAAAHthc2N0aW1lYwIAAAAAAAAAAgAAAAIAAABDAAAAcxMAAAB8AABqAABqAQB8AQBqAgCNAABTKAEAAABOKAMAAAB1BAAAAF9mbXR1BgAAAGZvcm1hdHUIAAAAX19kaWN0X18oAgAAAHUEAAAAc2VsZnUGAAAAcmVjb3JkKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1BgAAAGZvcm1hdHMBAABzAgAAAAABdRUAAABTdHJGb3JtYXRTdHlsZS5mb3JtYXROKAcAAAB1CAAAAF9fbmFtZV9fdQoAAABfX21vZHVsZV9fdQwAAABfX3F1YWxuYW1lX191DgAAAGRlZmF1bHRfZm9ybWF0dQ4AAABhc2N0aW1lX2Zvcm1hdHUOAAAAYXNjdGltZV9zZWFyY2h1BgAAAGZvcm1hdCgBAAAAdQoAAABfX2xvY2Fsc19fKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1DgAAAFN0ckZvcm1hdFN0eWxlbgEAAHMIAAAAEAEGAQYBBgJ1DgAAAFN0ckZvcm1hdFN0eWxlYwEAAAAAAAAAAQAAAAIAAABCAAAAc0oAAAB8AABFZQAAWgEAZAAAWgIAZAEAWgMAZAIAWgQAZAIAWgUAZAMAZAQAhAAAWgYAZAUAZAYAhAAAWgcAZAcAZAgAhAAAWggAZAkAUygKAAAAdRMAAABTdHJpbmdUZW1wbGF0ZVN0eWxldQoAAAAke21lc3NhZ2V9dQoAAAAke2FzY3RpbWV9YwIAAAAAAAAAAgAAAAMAAABDAAAAcygAAAB8AQBwDAB8AABqAAB8AABfAQB0AgB8AABqAQCDAQB8AABfAwBkAABTKAEAAABOKAQAAAB1DgAAAGRlZmF1bHRfZm9ybWF0dQQAAABfZm10dQgAAABUZW1wbGF0ZXUEAAAAX3RwbCgCAAAAdQQAAABzZWxmdQMAAABmbXQoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUIAAAAX19pbml0X198AQAAcwQAAAAAARIBdRwAAABTdHJpbmdUZW1wbGF0ZVN0eWxlLl9faW5pdF9fYwEAAAAAAAAAAgAAAAMAAABDAAAAczQAAAB8AABqAAB9AQB8AQBqAQBkAQCDAQBkAgBrBQBwMwB8AQBqAQB8AABqAgCDAQBkAgBrBQBTKAMAAABOdQgAAAAkYXNjdGltZWkAAAAAKAMAAAB1BAAAAF9mbXR1BAAAAGZpbmR1DgAAAGFzY3RpbWVfZm9ybWF0KAIAAAB1BAAAAHNlbGZ1AwAAAGZtdCgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQgAAAB1c2VzVGltZYABAABzBAAAAAABCQF1HAAAAFN0cmluZ1RlbXBsYXRlU3R5bGUudXNlc1RpbWVjAgAAAAAAAAACAAAAAgAAAEMAAABzEwAAAHwAAGoAAGoBAHwBAGoCAI0AAFMoAQAAAE4oAwAAAHUEAAAAX3RwbHUKAAAAc3Vic3RpdHV0ZXUIAAAAX19kaWN0X18oAgAAAHUEAAAAc2VsZnUGAAAAcmVjb3JkKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1BgAAAGZvcm1hdIQBAABzAgAAAAABdRoAAABTdHJpbmdUZW1wbGF0ZVN0eWxlLmZvcm1hdE4oCQAAAHUIAAAAX19uYW1lX191CgAAAF9fbW9kdWxlX191DAAAAF9fcXVhbG5hbWVfX3UOAAAAZGVmYXVsdF9mb3JtYXR1DgAAAGFzY3RpbWVfZm9ybWF0dQ4AAABhc2N0aW1lX3NlYXJjaHUIAAAAX19pbml0X191CAAAAHVzZXNUaW1ldQYAAABmb3JtYXQoAQAAAHUKAAAAX19sb2NhbHNfXygAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dRMAAABTdHJpbmdUZW1wbGF0ZVN0eWxldwEAAHMMAAAAEAEGAQYBBgIMBAwEdRMAAABTdHJpbmdUZW1wbGF0ZVN0eWxldSIAAAAlKGxldmVsbmFtZSlzOiUobmFtZSlzOiUobWVzc2FnZSlzdQEAAAAldRwAAAB7bGV2ZWxuYW1lfTp7bmFtZX06e21lc3NhZ2V9dQEAAAB7dR8AAAAke2xldmVsbmFtZX06JHtuYW1lfToke21lc3NhZ2V9dQEAAAAkYwEAAAAAAAAAAQAAAAUAAABCAAAAc48AAAB8AABFZQAAWgEAZAAAWgIAZAEAWgMAZQQAagUAWgYAZBMAZBMAZAIAZAMAZAQAhAMAWggAZAUAWgkAZAYAWgoAZBMAZAcAZAgAhAEAWgsAZAkAZAoAhAAAWgwAZAsAZAwAhAAAWg0AZA0AZA4AhAAAWg4AZA8AZBAAhAAAWg8AZBEAZBIAhAAAWhAAZBMAUygUAAAAdQkAAABGb3JtYXR0ZXJ1pwgAAAogICAgRm9ybWF0dGVyIGluc3RhbmNlcyBhcmUgdXNlZCB0byBjb252ZXJ0IGEgTG9nUmVjb3JkIHRvIHRleHQuCgogICAgRm9ybWF0dGVycyBuZWVkIHRvIGtub3cgaG93IGEgTG9nUmVjb3JkIGlzIGNvbnN0cnVjdGVkLiBUaGV5IGFyZQogICAgcmVzcG9uc2libGUgZm9yIGNvbnZlcnRpbmcgYSBMb2dSZWNvcmQgdG8gKHVzdWFsbHkpIGEgc3RyaW5nIHdoaWNoIGNhbgogICAgYmUgaW50ZXJwcmV0ZWQgYnkgZWl0aGVyIGEgaHVtYW4gb3IgYW4gZXh0ZXJuYWwgc3lzdGVtLiBUaGUgYmFzZSBGb3JtYXR0ZXIKICAgIGFsbG93cyBhIGZvcm1hdHRpbmcgc3RyaW5nIHRvIGJlIHNwZWNpZmllZC4gSWYgbm9uZSBpcyBzdXBwbGllZCwgdGhlCiAgICBkZWZhdWx0IHZhbHVlIG9mICIlcyhtZXNzYWdlKSIgaXMgdXNlZC4KCiAgICBUaGUgRm9ybWF0dGVyIGNhbiBiZSBpbml0aWFsaXplZCB3aXRoIGEgZm9ybWF0IHN0cmluZyB3aGljaCBtYWtlcyB1c2Ugb2YKICAgIGtub3dsZWRnZSBvZiB0aGUgTG9nUmVjb3JkIGF0dHJpYnV0ZXMgLSBlLmcuIHRoZSBkZWZhdWx0IHZhbHVlIG1lbnRpb25lZAogICAgYWJvdmUgbWFrZXMgdXNlIG9mIHRoZSBmYWN0IHRoYXQgdGhlIHVzZXIncyBtZXNzYWdlIGFuZCBhcmd1bWVudHMgYXJlIHByZS0KICAgIGZvcm1hdHRlZCBpbnRvIGEgTG9nUmVjb3JkJ3MgbWVzc2FnZSBhdHRyaWJ1dGUuIEN1cnJlbnRseSwgdGhlIHVzZWZ1bAogICAgYXR0cmlidXRlcyBpbiBhIExvZ1JlY29yZCBhcmUgZGVzY3JpYmVkIGJ5OgoKICAgICUobmFtZSlzICAgICAgICAgICAgTmFtZSBvZiB0aGUgbG9nZ2VyIChsb2dnaW5nIGNoYW5uZWwpCiAgICAlKGxldmVsbm8pcyAgICAgICAgIE51bWVyaWMgbG9nZ2luZyBsZXZlbCBmb3IgdGhlIG1lc3NhZ2UgKERFQlVHLCBJTkZPLAogICAgICAgICAgICAgICAgICAgICAgICBXQVJOSU5HLCBFUlJPUiwgQ1JJVElDQUwpCiAgICAlKGxldmVsbmFtZSlzICAgICAgIFRleHQgbG9nZ2luZyBsZXZlbCBmb3IgdGhlIG1lc3NhZ2UgKCJERUJVRyIsICJJTkZPIiwKICAgICAgICAgICAgICAgICAgICAgICAgIldBUk5JTkciLCAiRVJST1IiLCAiQ1JJVElDQUwiKQogICAgJShwYXRobmFtZSlzICAgICAgICBGdWxsIHBhdGhuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZSB3aGVyZSB0aGUgbG9nZ2luZwogICAgICAgICAgICAgICAgICAgICAgICBjYWxsIHdhcyBpc3N1ZWQgKGlmIGF2YWlsYWJsZSkKICAgICUoZmlsZW5hbWUpcyAgICAgICAgRmlsZW5hbWUgcG9ydGlvbiBvZiBwYXRobmFtZQogICAgJShtb2R1bGUpcyAgICAgICAgICBNb2R1bGUgKG5hbWUgcG9ydGlvbiBvZiBmaWxlbmFtZSkKICAgICUobGluZW5vKWQgICAgICAgICAgU291cmNlIGxpbmUgbnVtYmVyIHdoZXJlIHRoZSBsb2dnaW5nIGNhbGwgd2FzIGlzc3VlZAogICAgICAgICAgICAgICAgICAgICAgICAoaWYgYXZhaWxhYmxlKQogICAgJShmdW5jTmFtZSlzICAgICAgICBGdW5jdGlvbiBuYW1lCiAgICAlKGNyZWF0ZWQpZiAgICAgICAgIFRpbWUgd2hlbiB0aGUgTG9nUmVjb3JkIHdhcyBjcmVhdGVkICh0aW1lLnRpbWUoKQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUpCiAgICAlKGFzY3RpbWUpcyAgICAgICAgIFRleHR1YWwgdGltZSB3aGVuIHRoZSBMb2dSZWNvcmQgd2FzIGNyZWF0ZWQKICAgICUobXNlY3MpZCAgICAgICAgICAgTWlsbGlzZWNvbmQgcG9ydGlvbiBvZiB0aGUgY3JlYXRpb24gdGltZQogICAgJShyZWxhdGl2ZUNyZWF0ZWQpZCBUaW1lIGluIG1pbGxpc2Vjb25kcyB3aGVuIHRoZSBMb2dSZWNvcmQgd2FzIGNyZWF0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlIHRvIHRoZSB0aW1lIHRoZSBsb2dnaW5nIG1vZHVsZSB3YXMgbG9hZGVkCiAgICAgICAgICAgICAgICAgICAgICAgICh0eXBpY2FsbHkgYXQgYXBwbGljYXRpb24gc3RhcnR1cCB0aW1lKQogICAgJSh0aHJlYWQpZCAgICAgICAgICBUaHJlYWQgSUQgKGlmIGF2YWlsYWJsZSkKICAgICUodGhyZWFkTmFtZSlzICAgICAgVGhyZWFkIG5hbWUgKGlmIGF2YWlsYWJsZSkKICAgICUocHJvY2VzcylkICAgICAgICAgUHJvY2VzcyBJRCAoaWYgYXZhaWxhYmxlKQogICAgJShtZXNzYWdlKXMgICAgICAgICBUaGUgcmVzdWx0IG9mIHJlY29yZC5nZXRNZXNzYWdlKCksIGNvbXB1dGVkIGp1c3QgYXMKICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHJlY29yZCBpcyBlbWl0dGVkCiAgICB1AQAAACVjBAAAAAAAAAAEAAAABAAAAEMAAABzYQAAAHwDAHQAAGsHAHIuAHQBAGQBAGQCAGoCAHQAAGoDAIMAAIMBABaDAQCCAQBuAAB0AAB8AwAZZAMAGXwBAIMBAHwAAF8EAHwAAGoEAGoFAHwAAF8FAHwCAHwAAF8GAGQEAFMoBQAAAHVeAgAACiAgICAgICAgSW5pdGlhbGl6ZSB0aGUgZm9ybWF0dGVyIHdpdGggc3BlY2lmaWVkIGZvcm1hdCBzdHJpbmdzLgoKICAgICAgICBJbml0aWFsaXplIHRoZSBmb3JtYXR0ZXIgZWl0aGVyIHdpdGggdGhlIHNwZWNpZmllZCBmb3JtYXQgc3RyaW5nLCBvciBhCiAgICAgICAgZGVmYXVsdCBhcyBkZXNjcmliZWQgYWJvdmUuIEFsbG93IGZvciBzcGVjaWFsaXplZCBkYXRlIGZvcm1hdHRpbmcgd2l0aAogICAgICAgIHRoZSBvcHRpb25hbCBkYXRlZm10IGFyZ3VtZW50IChpZiBvbWl0dGVkLCB5b3UgZ2V0IHRoZSBJU084NjAxIGZvcm1hdCkuCgogICAgICAgIFVzZSBhIHN0eWxlIHBhcmFtZXRlciBvZiAnJScsICd7JyBvciAnJCcgdG8gc3BlY2lmeSB0aGF0IHlvdSB3YW50IHRvCiAgICAgICAgdXNlIG9uZSBvZiAlLWZvcm1hdHRpbmcsIDptZXRoOmBzdHIuZm9ybWF0YCAoYGB7fWBgKSBmb3JtYXR0aW5nIG9yCiAgICAgICAgOmNsYXNzOmBzdHJpbmcuVGVtcGxhdGVgIGZvcm1hdHRpbmcgaW4geW91ciBmb3JtYXQgc3RyaW5nLgoKICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDogMy4yCiAgICAgICAgICAgQWRkZWQgdGhlIGBgc3R5bGVgYCBwYXJhbWV0ZXIuCiAgICAgICAgdRgAAABTdHlsZSBtdXN0IGJlIG9uZSBvZjogJXN1AQAAACxpAAAAAE4oBwAAAHUHAAAAX1NUWUxFU3UKAAAAVmFsdWVFcnJvcnUEAAAAam9pbnUEAAAAa2V5c3UGAAAAX3N0eWxldQQAAABfZm10dQcAAABkYXRlZm10KAQAAAB1BAAAAHNlbGZ1AwAAAGZtdHUHAAAAZGF0ZWZtdHUFAAAAc3R5bGUoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUIAAAA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dWx0IGltcGxlbWVudGF0aW9uIGp1c3QgdXNlcwogICAgICAgIHRyYWNlYmFjay5wcmludF9leGNlcHRpb24oKQogICAgICAgIGkCAAAAaQAAAABpAQAAAE51AQAAAApp/////2n/////KAcAAAB1AgAAAGlvdQgAAABTdHJpbmdJT3UJAAAAdHJhY2ViYWNrdQ8AAABwcmludF9leGNlcHRpb251BAAAAE5vbmV1CAAAAGdldHZhbHVldQUAAABjbG9zZSgFAAAAdQQAAABzZWxmdQIAAABlaXUDAAAAc2lvdQIAAAB0YnUBAAAAcygAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQ8AAABmb3JtYXRFeGNlcHRpb27uAQAAcxAAAAAABwwBCgQhAQwBCgEWARMBdRkAAABGb3JtYXR0ZXIuZm9ybWF0RXhjZXB0aW9uYwEAAAAAAAAAAQAAAAEAAABDAAAAcw0AAAB8AABqAABqAQCDAABTKAEAAAB1SwAAAAogICAgICAgIENoZWNrIGlmIHRoZSBmb3JtYXQgdXNlcyB0aGUgY3JlYXRpb24gdGltZSBvZiB0aGUgcmVjb3JkLgogICAgICAgICgCAAAAdQYAAABfc3R5bGV1CAAAAHVzZXNUaW1lKAEAAAB1BAAAAHNlbGYoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUIAAAAdXNlc1RpbWUBAgAAcwIAAAAABHUSAAAARm9ybWF0dGVyLnVzZXNUaW1lYwIAAAAAAAAAAgAAAAIAAABDAAAAcxAAAAB8AABqAABqAQB8AQCDAQBTKAEAAABOKAIAAAB1BgAAAF9zdHlsZXUGAAAAZm9ybWF0KAIAAAB1BAAAAHNlbGZ1BgAAAHJlY29yZCgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQ0AAABmb3JtYXRNZXNzYWdlBwIAAHMCAAAAAAF1FwAAAEZvcm1hdHRlci5mb3JtYXRNZXNzYWdlYwIAAAAAAAAAAgAAAAEAAABDAAAAcwQAAAB8AQBTKAEAAAB1VQEAAAogICAgICAgIFRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIGFuIGV4dGVuc2lvbiBwb2ludCBmb3Igc3BlY2lhbGl6ZWQKICAgICAgICBmb3JtYXR0aW5nIG9mIHN0YWNrIGluZm9ybWF0aW9uLgoKICAgICAgICBUaGUgaW5wdXQgZGF0YSBpcyBhIHN0cmluZyBhcyByZXR1cm5lZCBmcm9tIGEgY2FsbCB0bwogICAgICAgIDpmdW5jOmB0cmFjZWJhY2sucHJpbnRfc3RhY2tgLCBidXQgd2l0aCB0aGUgbGFzdCB0cmFpbGluZyBuZXdsaW5lCiAgICAgICAgcmVtb3ZlZC4KCiAgICAgICAgVGhlIGJhc2UgaW1wbGVtZW50YXRpb24ganVzdCByZXR1cm5zIHRoZSB2YWx1ZSBwYXNzZWQgaW4uCiAgICAgICAgKAAAAAAoAgAAAHUEAAAAc2VsZnUKAAAAc3RhY2tfaW5mbygAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQsAAABmb3JtYXRTdGFjawoCAABzAgAAAAALdRUAAABGb3JtYXR0ZXIuZm9ybWF0U3RhY2tjAgAAAAAAAAADAAAAAwAAAEMAAABz9wAAAHwBAGoAAIMAAHwBAF8BAHwAAGoCAIMAAHI2AHwAAGoDAHwBAHwAAGoEAIMCAHwBAF8FAG4AAHwAAGoGAHwBAIMBAH0CAHwBAGoHAHJyAHwBAGoIAHNyAHwAAGoJAHwBAGoHAIMBAHwBAF8IAHFyAG4AAHwBAGoIAHKuAHwCAGQEAGQCAIUCABlkAwBrAwByngB8AgBkAwAXfQIAbgAAfAIAfAEAaggAF30CAG4AAHwBAGoKAHLzAHwCAGQFAGQCAIUCABlkAwBrAwBy2gB8AgBkAwAXfQIAbgAAfAIAfAAAagsAfAEAagoAgwEAF30CAG4AAHwCAFMoBgAAAHV6AgAACiAgICAgICAgRm9ybWF0IHRoZSBzcGVjaWZpZWQgcmVjb3JkIGFzIHRleHQuCgogICAgICAgIFRoZSByZWNvcmQncyBhdHRyaWJ1dGUgZGljdGlvbmFyeSBpcyB1c2VkIGFzIHRoZSBvcGVyYW5kIHRvIGEKICAgICAgICBzdHJpbmcgZm9ybWF0dGluZyBvcGVyYXRpb24gd2hpY2ggeWllbGRzIHRoZSByZXR1cm5lZCBzdHJpbmcuCiAgICAgICAgQmVmb3JlIGZvcm1hdHRpbmcgdGhlIGRpY3Rpb25hcnksIGEgY291cGxlIG9mIHByZXBhcmF0b3J5IHN0ZXBzCiAgICAgICAgYXJlIGNhcnJpZWQgb3V0LiBUaGUgbWVzc2FnZSBhdHRyaWJ1dGUgb2YgdGhlIHJlY29yZCBpcyBjb21wdXRlZAogICAgICAgIHVzaW5nIExvZ1JlY29yZC5nZXRNZXNzYWdlKCkuIElmIHRoZSBmb3JtYXR0aW5nIHN0cmluZyB1c2VzIHRoZQogICAgICAgIHRpbWUgKGFzIGRldGVybWluZWQgYnkgYSBjYWxsIHRvIHVzZXNUaW1lKCksIGZvcm1hdFRpbWUoKSBpcwogICAgICAgIGNhbGxlZCB0byBmb3JtYXQgdGhlIGV2ZW50IHRpbWUuIElmIHRoZXJlIGlzIGV4Y2VwdGlvbiBpbmZvcm1hdGlvbiwKICAgICAgICBpdCBpcyBmb3JtYXR0ZWQgdXNpbmcgZm9ybWF0RXhjZXB0aW9uKCkgYW5kIGFwcGVuZGVkIHRvIHRoZSBtZXNzYWdlLgogICAgICAgIGkBAAAATnUBAAAACmn/////af////8oDAAAAHUKAAAAZ2V0TWVzc2FnZXUHAAAAbWVzc2FnZXUIAAAAdXNlc1RpbWV1CgAAAGZvcm1hdFRpbWV1BwAAAGRhdGVmbXR1BwAAAGFzY3RpbWV1DQAAAGZvcm1hdE1lc3NhZ2V1CAAAAGV4Y19pbmZvdQgAAABleGNfdGV4dHUPAAAAZm9ybWF0RXhjZXB0aW9udQoAAABzdGFja19pbmZvdQsAAABmb3JtYXRTdGFjaygDAAAAdQQAAABzZWxmdQYAAAByZWNvcmR1AQAAAHMoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUGAAAAZm9ybWF0FwIAAHMgAAAAAA0PAQwBGwEPAQkDCQEbAQkBFgENARABCQEWAQ0BGQF1EAAAAEZvcm1hdHRlci5mb3JtYXROKBEAAAB1CAAAAF9fbmFtZV9fdQoAAABfX21vZHVsZV9fdQwAAABfX3F1YWxuYW1lX191BwAAAF9fZG9jX191BAAAAHRpbWV1CQAAAGxvY2FsdGltZXUJAAAAY29udmVydGVydQQAAABOb25ldQgAAABfX2luaXRfX3UTAAAAZGVmYXVsdF90aW1lX2Zvcm1hdHUTAAAAZGVmYXVsdF9tc2VjX2Zvcm1hdHUKAAAAZm9ybWF0VGltZXUPAAAAZm9ybWF0RXhjZXB0aW9udQgAAAB1c2VzVGltZXUNAAAAZm9ybWF0TWVzc2FnZXULAAAAZm9ybWF0U3RhY2t1BgAAAGZvcm1hdCgBAAAAdQoAAABfX2xvY2Fsc19fKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1CQAAAEZvcm1hdHRlco8BAABzFgAAABAoBgIJAhUWBgEGAg8aDBMMBgwDDA1jAQAAAAAAAAABAAAAAwAAAEIAAABzTQAAAHwAAEVlAABaAQBkAABaAgBkAQBaAwBkCgBkAgBkAwCEAQBaBQBkBABkBQCEAABaBgBkBgBkBwCEAABaBwBkCABkCQCEAABaCABkCgBTKAsAAAB1EgAAAEJ1ZmZlcmluZ0Zvcm1hdHRlcnVCAAAACiAgICBBIGZvcm1hdHRlciBzdWl0YWJsZSBmb3IgZm9ybWF0dGluZyBhIG51bWJlciBvZiByZWNvcmRzLgogICAgYwIAAAAAAAAAAgAAAAIAAABDAAAAcx8AAAB8AQByEgB8AQB8AABfAABuCQB0AQB8AABfAABkAQBTKAIAAAB1bQAAAAogICAgICAgIE9wdGlvbmFsbHkgc3BlY2lmeSBhIGZvcm1hdHRlciB3aGljaCB3aWxsIGJlIHVzZWQgdG8gZm9ybWF0IGVhY2gKICAgICAgICBpbmRpdmlkdWFsIHJlY29yZC4KICAgICAgICBOKAIAAAB1BwAAAGxpbmVmbXR1EQAAAF9kZWZhdWx0Rm9ybWF0dGVyKAIAAAB1BAAAAHNlbGZ1BwAAAGxpbmVmbXQoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUIAAAAX19pbml0X19AAgAAcwYAAAAABQYBDAJ1GwAAAEJ1ZmZlcmluZ0Zvcm1hdHRlci5fX2luaXRfX2MCAAAAAAAAAAIAAAABAAAAQwAAAHMEAAAAZAEAUygCAAAAdUUAAAAKICAgICAgICBSZXR1cm4gdGhlIGhlYWRlciBzdHJpbmcgZm9yIHRoZSBzcGVjaWZpZWQgcmVjb3Jkcy4KICAgICAgICB1AAAAACgAAAAAKAIAAAB1BAAAAHNlbGZ1BwAAAHJlY29yZHMoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUMAAAAZm9ybWF0SGVhZGVySgIAAHMCAAAAAAR1HwAAAEJ1ZmZlcmluZ0Zvcm1hdHRlci5mb3JtYXRIZWFkZXJjAgAAAAAAAAACAAAAAQAAAEMAAABzBAAAAGQBAFMoAgAAAHVFAAAACiAgICAgICAgUmV0dXJuIHRoZSBmb290ZXIgc3RyaW5nIGZvciB0aGUgc3BlY2lmaWVkIHJlY29yZHMuCiAgICAgICAgdQAAAAAoAAAAACgCAAAAdQQAAABzZWxmdQcAAAByZWNvcmRzKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1DAAAAGZvcm1hdEZvb3RlclACAABzAgAAAAAEdR8AAABCdWZmZXJpbmdGb3JtYXR0ZXIuZm9ybWF0Rm9vdGVyYwIAAAAAAAAABAAAAAQAAABDAAAAc2wAAABkAQB9AgB0AAB8AQCDAQBkAgBrBAByaAB8AgB8AABqAQB8AQCDAQAXfQIAeCQAfAEARF0cAH0DAHwCAHwAAGoCAGoDAHwDAIMBABd9AgBxMgBXfAIAfAAAagQAfAEAgwEAF30CAG4AAHwCAFMoAwAAAHVRAAAACiAgICAgICAgRm9ybWF0IHRoZSBzcGVjaWZpZWQgcmVjb3JkcyBhbmQgcmV0dXJuIHRoZSByZXN1bHQgYXMgYSBzdHJpbmcuCiAgICAgICAgdQAAAABpAAAAACgFAAAAdQMAAABsZW51DAAAAGZvcm1hdEhlYWRlcnUHAAAAbGluZWZtdHUGAAAAZm9ybWF0dQwAAABmb3JtYXRGb290ZXIoBAAAAHUEAAAAc2VsZnUHAAAAcmVjb3Jkc3UCAAAAcnZ1BgAAAHJlY29yZCgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQYAAABmb3JtYXRWAgAAcw4AAAAABAYBEgETAQ0BGgEWAXUZAAAAQnVmZmVyaW5nRm9ybWF0dGVyLmZvcm1hdE4oCQAAAHUIAAAAX19uYW1lX191CgAAAF9fbW9kdWxlX191DAAAAF9fcXVhbG5hbWVfX3UHAAAAX19kb2NfX3UEAAAATm9uZXUIAAAAX19pbml0X191DAAAAGZvcm1hdEhlYWRlcnUMAAAAZm9ybWF0Rm9vdGVydQYAAABmb3JtYXQoAQAAAHUKAAAAX19sb2NhbHNfXygAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dRIAAABCdWZmZXJpbmdGb3JtYXR0ZXI8AgAAcwoAAAAQAwYBDwoMBgwGYwEAAAAAAAAAAQAAAAMAAABCAAAAczUAAAB8AABFZQAAWgEAZAAAWgIAZAEAWgMAZAIAZAMAZAQAhAEAWgQAZAUAZAYAhAAAWgUAZAcAUygIAAAAdQYAAABGaWx0ZXJ19gEAAAogICAgRmlsdGVyIGluc3RhbmNlcyBhcmUgdXNlZCB0byBwZXJmb3JtIGFyYml0cmFyeSBmaWx0ZXJpbmcgb2YgTG9nUmVjb3Jkcy4KCiAgICBMb2dnZXJzIGFuZCBIYW5kbGVycyBjYW4gb3B0aW9uYWxseSB1c2UgRmlsdGVyIGluc3RhbmNlcyB0byBmaWx0ZXIKICAgIHJlY29yZHMgYXMgZGVzaXJlZC4gVGhlIGJhc2UgZmlsdGVyIGNsYXNzIG9ubHkgYWxsb3dzIGV2ZW50cyB3aGljaCBhcmUKICAgIGJlbG93IGEgY2VydGFpbiBwb2ludCBpbiB0aGUgbG9nZ2VyIGhpZXJhcmNoeS4gRm9yIGV4YW1wbGUsIGEgZmlsdGVyCiAgICBpbml0aWFsaXplZCB3aXRoICJBLkIiIHdpbGwgYWxsb3cgZXZlbnRzIGxvZ2dlZCBieSBsb2dnZXJzICJBLkIiLAogICAgIkEuQi5DIiwgIkEuQi5DLkQiLCAiQS5CLkQiIGV0Yy4gYnV0IG5vdCAiQS5CQiIsICJCLkEuQiIgZXRjLiBJZgogICAgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgZW1wdHkgc3RyaW5nLCBhbGwgZXZlbnRzIGFyZSBwYXNzZWQuCiAgICB1AAAAAGMCAAAAAAAAAAIAAAACAAAAQwAAAHMcAAAAfAEAfAAAXwAAdAEAfAEAgwEAfAAAXwIAZAEAUygCAAAAdeYAAAAKICAgICAgICBJbml0aWFsaXplIGEgZmlsdGVyLgoKICAgICAgICBJbml0aWFsaXplIHdpdGggdGhlIG5hbWUgb2YgdGhlIGxvZ2dlciB3aGljaCwgdG9nZXRoZXIgd2l0aCBpdHMKICAgICAgICBjaGlsZHJlbiwgd2lsbCBoYXZlIGl0cyBldmVudHMgYWxsb3dlZCB0aHJvdWdoIHRoZSBmaWx0ZXIuIElmIG5vCiAgICAgICAgbmFtZSBpcyBzcGVjaWZpZWQsIGFsbG93IGV2ZXJ5IGV2ZW50LgogICAgICAgIE4oAwAAAHUEAAAAbmFtZXUDAAAAbGVudQQAAABubGVuKAIAAAB1BAAAAHNlbGZ1BAAAAG5hbWUoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUIAAAAX19pbml0X19xAgAAcwQAAAAACAkBdQ8AAABGaWx0ZXIuX19pbml0X19jAgAAAAAAAAACAAAABAAAAEMAAABzZQAAAHwAAGoAAGQBAGsCAHITAGQDAFN8AABqAgB8AQBqAgBrAgByKQBkAwBTfAEAagIAagMAfAAAagIAZAEAfAAAagAAgwMAZAEAawMAclEAZAQAU3wBAGoCAHwAAGoAABlkAgBrAgBTKAUAAAB12gAAAAogICAgICAgIERldGVybWluZSBpZiB0aGUgc3BlY2lmaWVkIHJlY29yZCBpcyB0byBiZSBsb2dnZWQuCgogICAgICAgIElzIHRoZSBzcGVjaWZpZWQgcmVjb3JkIHRvIGJlIGxvZ2dlZD8gUmV0dXJucyAwIGZvciBubywgbm9uemVybyBmb3IKICAgICAgICB5ZXMuIElmIGRlZW1lZCBhcHByb3ByaWF0ZSwgdGhlIHJlY29yZCBtYXkgYmUgbW9kaWZpZWQgaW4tcGxhY2UuCiAgICAgICAgaQAAAAB1AQAAAC5URigFAAAAdQQAAABubGVudQQAAABUcnVldQQAAABuYW1ldQQAAABmaW5kdQUAAABGYWxzZSgCAAAAdQQAAABzZWxmdQYAAAByZWNvcmQoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUGAAAAZmlsdGVyfAIAAHMOAAAAAAcPAQQBEgEEASQBBAF1DQAAAEZpbHRlci5maWx0ZXJOKAYAAAB1CAAAAF9fbmFtZV9fdQoAAABfX21vZHVsZV9fdQwAAABfX3F1YWxuYW1lX191BwAAAF9fZG9jX191CAAAAF9faW5pdF9fdQYAAABmaWx0ZXIoAQAAAHUKAAAAX19sb2NhbHNfXygAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQYAAABGaWx0ZXJmAgAAcwYAAAAQCgYBDwtjAQAAAAAAAAABAAAAAgAAAEIAAABzSgAAAHwAAEVlAABaAQBkAABaAgBkAQBaAwBkAgBkAwCEAABaBABkBABkBQCEAABaBQBkBgBkBwCEAABaBgBkCABkCQCEAABaBwBkCgBTKAsAAAB1CAAAAEZpbHRlcmVydVsAAAAKICAgIEEgYmFzZSBjbGFzcyBmb3IgbG9nZ2VycyBhbmQgaGFuZGxlcnMgd2hpY2ggYWxsb3dzIHRoZW0gdG8gc2hhcmUKICAgIGNvbW1vbiBjb2RlLgogICAgYwEAAAAAAAAAAQAAAAIAAABDAAAAcw0AAABnAAB8AABfAABkAQBTKAIAAAB1RQAAAAogICAgICAgIEluaXRpYWxpemUgdGhlIGxpc3Qgb2YgZmlsdGVycyB0byBiZSBhbiBlbXB0eSBsaXN0LgogICAgICAgIE4oAQAAAHUHAAAAZmlsdGVycygBAAAAdQQAAABzZWxmKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1CAAAAF9faW5pdF9fkAIAAHMCAAAAAAR1EQAAAEZpbHRlcmVyLl9faW5pdF9fYwIAAAAAAAAAAgAAAAIAAABDAAAAcyYAAAB8AQB8AABqAABrBwByIgB8AABqAABqAQB8AQCDAQABbgAAZAEAUygCAAAAdTsAAAAKICAgICAgICBBZGQgdGhlIHNwZWNpZmllZCBmaWx0ZXIgdG8gdGhpcyBoYW5kbGVyLgogICAgICAgIE4oAgAAAHUHAAAAZmlsdGVyc3UGAAAAYXBwZW5kKAIAAAB1BAAAAHNlbGZ1BgAAAGZpbHRlcigAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQkAAABhZGRGaWx0ZXKWAgAAcwQAAAAABA8BdRIAAABGaWx0ZXJlci5hZGRGaWx0ZXJjAgAAAAAAAAACAAAAAgAAAEMAAABzJgAAAHwBAHwAAGoAAGsGAHIiAHwAAGoAAGoBAHwBAIMBAAFuAABkAQBTKAIAAAB1QAAAAAogICAgICAgIFJlbW92ZSB0aGUgc3BlY2lmaWVkIGZpbHRlciBmcm9tIHRoaXMgaGFuZGxlci4KICAgICAgICBOKAIAAAB1BwAAAGZpbHRlcnN1BgAAAHJlbW92ZSgCAAAAdQQAAABzZWxmdQYAAABmaWx0ZXIoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUMAAAAcmVtb3ZlRmlsdGVynQIAAHMEAAAAAAQPAXUVAAAARmlsdGVyZXIucmVtb3ZlRmlsdGVyYwIAAAAAAAAABQAAAAQAAABDAAAAc1sAAABkAgB9AgB4TgB8AABqAQBEXUMAfQMAdAIAfAMAZAEAgwIAcjcAfAMAagMAfAEAgwEAfQQAbgwAfAMAfAEAgwEAfQQAfAQAcxAAZAMAfQIAUHEQAHEQAFd8AgBTKAQAAAB1ZwEAAAogICAgICAgIERldGVybWluZSBpZiBhIHJlY29yZCBpcyBsb2dnYWJsZSBieSBjb25zdWx0aW5nIGFsbCB0aGUgZmlsdGVycy4KCiAgICAgICAgVGhlIGRlZmF1bHQgaXMgdG8gYWxsb3cgdGhlIHJlY29yZCB0byBiZSBsb2dnZWQ7IGFueSBmaWx0ZXIgY2FuIHZldG8KICAgICAgICB0aGlzIGFuZCB0aGUgcmVjb3JkIGlzIHRoZW4gZHJvcHBlZC4gUmV0dXJucyBhIHplcm8gdmFsdWUgaWYgYSByZWNvcmQKICAgICAgICBpcyB0byBiZSBkcm9wcGVkLCBlbHNlIG5vbi16ZXJvLgoKICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDogMy4yCgogICAgICAgICAgIEFsbG93IGZpbHRlcnMgdG8gYmUganVzdCBjYWxsYWJsZXMuCiAgICAgICAgdQYAAABmaWx0ZXJURigFAAAAdQQAAABUcnVldQcAAABmaWx0ZXJzdQcAAABoYXNhdHRydQYAAABmaWx0ZXJ1BQAAAEZhbHNlKAUAAAB1BAAAAHNlbGZ1BgAAAHJlY29yZHUCAAAAcnZ1AQAAAGZ1BgAAAHJlc3VsdCgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQYAAABmaWx0ZXKkAgAAcxIAAAAADAYBEAEPARICDAEGAQYBCAF1DwAAAEZpbHRlcmVyLmZpbHRlck4oCAAAAHUIAAAAX19uYW1lX191CgAAAF9fbW9kdWxlX191DAAAAF9fcXVhbG5hbWVfX3UHAAAAX19kb2NfX3UIAAAAX19pbml0X191CQAAAGFkZEZpbHRlcnUMAAAAcmVtb3ZlRmlsdGVydQYAAABmaWx0ZXIoAQAAAHUKAAAAX19sb2NhbHNfXygAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQgAAABGaWx0ZXJlcosCAABzCgAAABAEBgEMBgwHDAd1CAAAAEZpbHRlcmVyYwEAAAAAAAAAAQAAAAwAAABDAAAAc10AAAB0AABkAQBrCQByWQB0AgBkAQBrCQByWQB0AwBkAQBrCQByWQB0AACDAAABeiAAfAAAdAIAawYAckoAdAIAagQAfAAAgwEAAW4AAFdkAQB0AwCDAAABWG4AAGQBAFMoAgAAAHVEAAAACiAgICBSZW1vdmUgYSBoYW5kbGVyIHJlZmVyZW5jZSBmcm9tIHRoZSBpbnRlcm5hbCBjbGVhbnVwIGxpc3QuCiAgICBOKAUAAAB1DAAAAF9hY3F1aXJlTG9ja3UEAAAATm9uZXUMAAAAX2hhbmRsZXJMaXN0dQwAAABfcmVsZWFzZUxvY2t1BgAAAHJlbW92ZSgBAAAAdQIAAAB3cigAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dREAAABfcmVtb3ZlSGFuZGxlclJlZsICAABzDgAAAAAHGAEMAQcBAwEMARQCdREAAABfcmVtb3ZlSGFuZGxlclJlZmMBAAAAAAAAAAEAAAAKAAAAQwAAAHMzAAAAdAAAgwAAAXodAHQBAGoCAHQDAGoEAHwAAHQFAIMCAIMBAAFXZAEAdAYAgwAAAVhkAQBTKAIAAAB1TAAAAAogICAgQWRkIGEgaGFuZGxlciB0byB0aGUgaW50ZXJuYWwgY2xlYW51cCBsaXN0IHVzaW5nIGEgd2VhayByZWZlcmVuY2UuCiAgICBOKAcAAAB1DAAAAF9hY3F1aXJlTG9ja3UMAAAAX2hhbmRsZXJMaXN0dQYAAABhcHBlbmR1BwAAAHdlYWtyZWZ1AwAAAHJlZnURAAAAX3JlbW92ZUhhbmRsZXJSZWZ1DAAAAF9yZWxlYXNlTG9jaygBAAAAdQcAAABoYW5kbGVyKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1DgAAAF9hZGRIYW5kbGVyUmVm0gIAAHMIAAAAAAQHAQMBHQJ1DgAAAF9hZGRIYW5kbGVyUmVmYwEAAAAAAAAAAQAAAAMAAABCAAAAc9QAAAB8AABFZQAAWgEAZAAAWgIAZAEAWgMAZQQAZAIAZAMAhAEAWgUAZAQAZAUAhAAAWgYAZAYAZAcAhAAAWgcAZQgAZQYAZQcAgwIAWgkAZAgAZAkAhAAAWgoAZAoAZAsAhAAAWgsAZAwAZA0AhAAAWgwAZA4AZA8AhAAAWg0AZBAAZBEAhAAAWg4AZBIAZBMAhAAAWg8AZBQAZBUAhAAAWhAAZBYAZBcAhAAAWhEAZBgAZBkAhAAAWhIAZBoAZBsAhAAAWhMAZBwAZB0AhAAAWhQAZB4AUygfAAAAdQcAAABIYW5kbGVydXEBAAAKICAgIEhhbmRsZXIgaW5zdGFuY2VzIGRpc3BhdGNoIGxvZ2dpbmcgZXZlbnRzIHRvIHNwZWNpZmljIGRlc3RpbmF0aW9ucy4KCiAgICBUaGUgYmFzZSBoYW5kbGVyIGNsYXNzLiBBY3RzIGFzIGEgcGxhY2Vob2xkZXIgd2hpY2ggZGVmaW5lcyB0aGUgSGFuZGxlcgogICAgaW50ZXJmYWNlLiBIYW5kbGVycyBjYW4gb3B0aW9uYWxseSB1c2UgRm9ybWF0dGVyIGluc3RhbmNlcyB0byBmb3JtYXQKICAgIHJlY29yZHMgYXMgZGVzaXJlZC4gQnkgZGVmYXVsdCwgbm8gZm9ybWF0dGVyIGlzIHNwZWNpZmllZDsgaW4gdGhpcyBjYXNlLAogICAgdGhlICdyYXcnIG1lc3NhZ2UgYXMgZGV0ZXJtaW5lZCBieSByZWNvcmQubWVzc2FnZSBpcyBsb2dnZWQuCiAgICBjAgAAAAAAAAACAAAAAgAAAEMAAABzRgAAAHQAAGoBAHwAAIMBAAFkAQB8AABfAwB0BAB8AQCDAQB8AABfBQBkAQB8AABfBgB0BwB8AACDAQABfAAAaggAgwAAAWQBAFMoAgAAAHV6AAAACiAgICAgICAgSW5pdGlhbGl6ZXMgdGhlIGluc3RhbmNlIC0gYmFzaWNhbGx5IHNldHRpbmcgdGhlIGZvcm1hdHRlciB0byBOb25lCiAgICAgICAgYW5kIHRoZSBmaWx0ZXIgbGlzdCB0byBlbXB0eS4KICAgICAgICBOKAkAAAB1CAAAAEZpbHRlcmVydQgAAABfX2luaXRfX3UEAAAATm9uZXUFAAAAX25hbWV1CwAAAF9jaGVja0xldmVsdQUAAABsZXZlbHUJAAAAZm9ybWF0dGVydQ4AAABfYWRkSGFuZGxlclJlZnUKAAAAY3JlYXRlTG9jaygCAAAAdQQAAABzZWxmdQUAAABsZXZlbCgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9f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AgAZfAIAZAMAGWQFAHQBAGoCAIMFAAF0AQBqAgBqBwBkBAB8AQBqCAB8AQBqCQBmAgAWgwEAAVduEgAEdAoAawoAcn4AAQEBWW4BAFhXZAUAfgIAWG4AAGQFAFMoBgAAAHVEAgAACiAgICAgICAgSGFuZGxlIGVycm9ycyB3aGljaCBvY2N1ciBkdXJpbmcgYW4gZW1pdCgpIGNhbGwuCgogICAgICAgIFRoaXMgbWV0aG9kIHNob3VsZCBiZSBjYWxsZWQgZnJvbSBoYW5kbGVycyB3aGVuIGFuIGV4Y2VwdGlvbiBpcwogICAgICAgIGVuY291bnRlcmVkIGR1cmluZyBhbiBlbWl0KCkgY2FsbC4gSWYgcmFpc2VFeGNlcHRpb25zIGlzIGZhbHNlLAogICAgICAgIGV4Y2VwdGlvbnMgZ2V0IHNpbGVudGx5IGlnbm9yZWQuIFRoaXMgaXMgd2hhdCBpcyBtb3N0bHkgd2FudGVkCiAgICAgICAgZm9yIGEgbG9nZ2luZyBzeXN0ZW0gLSBtb3N0IHVzZXJzIHdpbGwgbm90IGNhcmUgYWJvdXQgZXJyb3JzIGluCiAgICAgICAgdGhlIGxvZ2dpbmcgc3lzdGVtLCB0aGV5IGFyZSBtb3JlIGludGVyZXN0ZWQgaW4gYXBwbGljYXRpb24gZXJyb3JzLgogICAgICAgIFlvdSBjb3VsZCwgaG93ZXZlciwgcmVwbGFjZSB0aGlzIHdpdGggYSBjdXN0b20gaGFuZGxlciBpZiB5b3Ugd2lzaC4KICAgICAgICBUaGUgcmVjb3JkIHdoaWNoIHdhcyBiZWluZyBwcm9jZXNzZWQgaXMgcGFzc2VkIGluIHRvIHRoaXMgbWV0aG9kLgogICAgICAgIGkAAAAAaQEAAABpAgAAAHUdAAAATG9nZ2VkIGZyb20gZmlsZSAlcywgbGluZSAlcwpOKAsAAAB1DwAAAHJhaXNlRXhjZXB0aW9uc3UDAAAAc3lzdQYAAABzdGRlcnJ1CAAAAGV4Y19pbmZvdQkAAAB0cmFjZWJhY2t1DwAAAHByaW50X2V4Y2VwdGlvbnUEAAAATm9uZXUFAAAAd3JpdGV1CAAAAGZpbGVuYW1ldQYAAABsaW5lbm91BwAAAElPRXJyb3IoAwAAAHUEAAAAc2VsZnUGAAAAcmVjb3JkdQIAAABlaSgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQsAAABoYW5kbGVFcnJvcmgDAABzFAAAAAAMDwEMAQYBGwENAQwBGAENAQkCdRMAAABIYW5kbGVyLmhhbmRsZUVycm9yTigVAAAAdQgAAABfX25hbWVfX3UKAAAAX19tb2R1bGVfX3UMAAAAX19xdWFsbmFtZV9fdQcAAABfX2RvY19fdQYAAABOT1RTRVR1CAAAAF9faW5pdF9fdQgAAABnZXRfbmFtZXUIAAAAc2V0X25hbWV1CAAAAHByb3BlcnR5dQQAAABuYW1ldQoAAABjcmVhdGVMb2NrdQcAAABhY3F1aXJldQcAAAByZWxlYXNldQgAAABzZXRMZXZlbHUGAAAAZm9ybWF0dQQAAABlbWl0dQYAAABoYW5kbGV1DAAAAHNldEZvcm1hdHRlcnUFAAAAZmx1c2h1BQAAAGNsb3NldQsAAABoYW5kbGVFcnJvcigBAAAAdQoAAABfX2xvY2Fsc19fKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1BwAAAEhhbmRsZXLcAgAAcyAAAAAQCAYBDw0MAwwLDwIMCQwHDAcMBgwNDAoMEgwGDAkMEWMBAAAAAAAAAAEAAAADAAAAQgAAAHNHAAAAfAAARWUAAFoBAGQAAFoCAGQBAFoDAGQCAFoEAGQJAGQDAGQEAIQBAFoGAGQFAGQGAIQAAFoHAGQHAGQIAIQAAFoIAGQJAFMoCgAAAHUNAAAAU3RyZWFtSGFuZGxlcnW+AAAACiAgICBBIGhhbmRsZXIgY2xhc3Mgd2hpY2ggd3JpdGVzIGxvZ2dpbmcgcmVjb3JkcywgYXBwcm9wcmlhdGVseSBmb3JtYXR0ZWQsCiAgICB0byBhIHN0cmVhbS4gTm90ZSB0aGF0IHRoaXMgY2xhc3MgZG9lcyBub3QgY2xvc2UgdGhlIHN0cmVhbSwgYXMKICAgIHN5cy5zdGRvdXQgb3Igc3lzLnN0ZGVyciBtYXkgYmUgdXNlZC4KICAgIHUBAAAACmMCAAAAAAAAAAIAAAACAAAAQwAAAHMyAAAAdAAAagEAfAAAgwEAAXwBAGQBAGsIAHIlAHQDAGoEAH0BAG4AAHwBAHwAAF8FAGQBAFMoAgAAAHViAAAACiAgICAgICAgSW5pdGlhbGl6ZSB0aGUgaGFuZGxlci4KCiAgICAgICAgSWYgc3RyZWFtIGlzIG5vdCBzcGVjaWZpZWQsIHN5cy5zdGRlcnIgaXMgdXNlZC4KICAgICAgICBOKAYAAAB1BwAAAEhhbmRsZXJ1CAAAAF9faW5pdF9fdQQAAABOb25ldQMAAABzeXN1BgAAAHN0ZGVycnUGAAAAc3RyZWFtKAIAAAB1BAAAAHNlbGZ1BgAAAHN0cmVhbSgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQgAAABfX2luaXRfX4kDAABzCAAAAAAGDQEMAQwBdRYAAABTdHJlYW1IYW5kbGVyLl9faW5pdF9fYwEAAAAAAAAAAQAAAAoAAABDAAAAc0sAAAB8AABqAACDAAABei8AfAAAagEAcjgAdAIAfAAAagEAZAEAgwIAcjgAfAAAagEAagMAgwAAAW4AAFdkAgB8AABqBACDAAABWGQCAFMoAwAAAHUlAAAACiAgICAgICAgRmx1c2hlcyB0aGUgc3RyZWFtLgogICAgICAgIHUFAAAAZmx1c2hOKAUAAAB1BwAAAGFjcXVpcmV1BgAAAHN0cmVhbXUHAAAAaGFzYXR0cnUFAAAAZmx1c2h1BwAAAHJlbGVhc2UoAQAAAHUEAAAAc2VsZigAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQUAAABmbHVzaJQDAABzCgAAAAAECgEDARsBFAJ1EwAAAFN0cmVhbUhhbmRsZXIuZmx1c2hjAgAAAAAAAAAEAAAADAAAAEMAAABzeQAAAHlDAHwAAGoAAHwBAIMBAH0CAHwAAGoBAH0DAHwDAGoCAHwCAIMBAAF8AwBqAgB8AABqAwCDAQABfAAAagQAgwAAAVduLwAEdAUAdAYAZgIAawoAcmAAAQEBggAAWW4VAAEBAXwAAGoHAHwBAIMBAAFZbgEAWGQBAFMoAgAAAHWrAQAACiAgICAgICAgRW1pdCBhIHJlY29yZC4KCiAgICAgICAgSWYgYSBmb3JtYXR0ZXIgaXMgc3BlY2lmaWVkLCBpdCBpcyB1c2VkIHRvIGZvcm1hdCB0aGUgcmVjb3JkLgogICAgICAgIFRoZSByZWNvcmQgaXMgdGhlbiB3cml0dGVuIHRvIHRoZSBzdHJlYW0gd2l0aCBhIHRyYWlsaW5nIG5ld2xpbmUuICBJZgogICAgICAgIGV4Y2VwdGlvbiBpbmZvcm1hdGlvbiBpcyBwcmVzZW50LCBpdCBpcyBmb3JtYXR0ZWQgdXNpbmcKICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjZXB0aW9uIGFuZCBhcHBlbmRlZCB0byB0aGUgc3RyZWFtLiAgSWYgdGhlIHN0cmVhbQogICAgICAgIGhhcyBhbiAnZW5jb2RpbmcnIGF0dHJpYnV0ZSwgaXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgaG93IHRvIGRvIHRoZQogICAgICAgIG91dHB1dCB0byB0aGUgc3RyZWFtLgogICAgICAgIE4oCAAAAHUGAAAAZm9ybWF0dQYAAABzdHJlYW11BQAAAHdyaXRldQoAAAB0ZXJtaW5hdG9ydQUAAABmbHVzaHURAAAAS2V5Ym9hcmRJbnRlcnJ1cHR1CgAAAFN5c3RlbUV4aXR1CwAAAGhhbmRsZUVycm9yKAQAAAB1BAAAAHNlbGZ1BgAAAHJlY29yZHUDAAAAbXNndQYAAABzdHJlYW0oAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUEAAAAZW1pdJ8DAABzFAAAAAALAwEPAQkBDQEQAQ4BEwEHAQMBdRIAAABTdHJlYW1IYW5kbGVyLmVtaXROKAkAAAB1CAAAAF9fbmFtZV9fdQoAAABfX21vZHVsZV9fdQwAAABfX3F1YWxuYW1lX191BwAAAF9fZG9jX191CgAAAHRlcm1pbmF0b3J1BAAAAE5vbmV1CAAAAF9faW5pdF9fdQUAAABmbHVzaHUEAAAAZW1pdCgBAAAAdQoAAABfX2xvY2Fsc19fKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1DQAAAFN0cmVhbUhhbmRsZXKAAwAAcwoAAAAQBQYCBgIPCwwLYwEAAAAAAAAAAQAAAAUAAABCAAAAc1MAAAB8AABFZQAAWgEAZAAAWgIAZAEAWgMAZAIAZAsAZAwAZAMAZAQAhAMAWgYAZAUAZAYAhAAAWgcAZAcAZAgAhAAAWggAZAkAZAoAhAAAWgkAZAsAUygNAAAAdQsAAABGaWxlSGFuZGxlcnVPAAAACiAgICBBIGhhbmRsZXIgY2xhc3Mgd2hpY2ggd3JpdGVzIGZvcm1hdHRlZCBsb2dnaW5nIHJlY29yZHMgdG8gZGlzayBmaWxlcy4KICAgIHUBAAAAYWMFAAAAAAAAAAUAAAADAAAAQwAAAHNpAAAAdAAAagEAagIAfAEAgwEAfAAAXwMAfAIAfAAAXwQAfAMAfAAAXwUAfAQAfAAAXwYAfAQAck8AdAcAaggAfAAAgwEAAWQBAHwAAF8KAG4WAHQLAGoIAHwAAHwAAGoMAIMAAIMCAAFkAQBTKAIAAAB1TwAAAAogICAgICAgIE9wZW4gdGhlIHNwZWNpZmllZCBmaWxlIGFuZCB1c2UgaXQgYXMgdGhlIHN0cmVhbSBmb3IgbG9nZ2luZy4KICAgICAgICBOKA0AAAB1AgAAAG9zdQQAAABwYXRodQcAAABhYnNwYXRodQwAAABiYXNlRmlsZW5hbWV1BAAAAG1vZGV1CAAAAGVuY29kaW5ndQUAAABkZWxheXUHAAAASGFuZGxlcnUIAAAAX19pbml0X191BAAAAE5vbmV1BgAAAHN0cmVhbXUNAAAAU3RyZWFtSGFuZGxlcnUFAAAAX29wZW4oBQAAAHUEAAAAc2VsZnUIAAAAZmlsZW5hbWV1BAAAAG1vZGV1CAAAAGVuY29kaW5ndQUAAABkZWxheSgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQgAAABfX2luaXRfX7kDAABzEAAAAAAGFQEJAQkBCQEGAw0BDAJ1FAAAAEZpbGVIYW5kbGVyLl9faW5pdF9fYwEAAAAAAAAAAQAAAAoAAABDAAAAc24AAAB8AABqAACDAAABelIAfAAAagEAck4AfAAAagIAgwAAAXQDAHwAAGoBAGQBAIMCAHJCAHwAAGoBAGoEAIMAAAFuAABkAgB8AABfAQBuAAB0BgBqBAB8AACDAQABV2QCAHwAAGoHAIMAAAFYZAIAUygDAAAAdSQAAAAKICAgICAgICBDbG9zZXMgdGhlIHN0cmVhbS4KICAgICAgICB1BQAAAGNsb3NlTigIAAAAdQcAAABhY3F1aXJldQYAAABzdHJlYW11BQAAAGZsdXNodQcAAABoYXNhdHRydQUAAABjbG9zZXUEAAAATm9uZXUNAAAAU3RyZWFtSGFuZGxlcnUHAAAAcmVsZWFzZSgBAAAAdQQAAABzZWxmKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1BQAAAGNsb3NlywMAAHMSAAAAAAQKAQMBCQEKARIBEAEMAxECdREAAABGaWxlSGFuZGxlci5jbG9zZWMBAAAAAAAAAAEAAAAFAAAAQwAAAHMcAAAAdAAAfAAAagEAfAAAagIAZAEAfAAAagMAgwIBUygCAAAAdXgAAAAKICAgICAgICBPcGVuIHRoZSBjdXJyZW50IGJhc2UgZmlsZSB3aXRoIHRoZSAob3JpZ2luYWwpIG1vZGUgYW5kIGVuY29kaW5nLgogICAgICAgIFJldHVybiB0aGUgcmVzdWx0aW5nIHN0cmVhbS4KICAgICAgICB1CAAAAGVuY29kaW5nKAQAAAB1BAAAAG9wZW51DAAAAGJhc2VGaWxlbmFtZXUEAAAAbW9kZXUIAAAAZW5jb2RpbmcoAQAAAHUEAAAAc2VsZigAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQUAAABfb3BlbtwDAABzAgAAAAAFdREAAABGaWxlSGFuZGxlci5fb3BlbmMCAAAAAAAAAAIAAAADAAAAQwAAAHM1AAAAfAAAagAAZAEAawgAciEAfAAAagIAgwAAfAAAXwAAbgAAdAMAagQAfAAAfAEAgwIAAWQBAFMoAgAAAHWuAAAACiAgICAgICAgRW1pdCBhIHJlY29yZC4KCiAgICAgICAgSWYgdGhlIHN0cmVhbSB3YXMgbm90IG9wZW5lZCBiZWNhdXNlICdkZWxheScgd2FzIHNwZWNpZmllZCBpbiB0aGUKICAgICAgICBjb25zdHJ1Y3Rvciwgb3BlbiBpdCBiZWZvcmUgY2FsbGluZyB0aGUgc3VwZXJjbGFzcydzIGVtaXQuCiAgICAgICAgTigFAAAAdQYAAABzdHJlYW11BAAAAE5vbmV1BQAAAF9vcGVudQ0AAABTdHJlYW1IYW5kbGVydQQAAABlbWl0KAIAAAB1BAAAAHNlbGZ1BgAAAHJlY29yZCgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQQAAABlbWl04wMAAHMGAAAAAAcPARIBdRAAAABGaWxlSGFuZGxlci5lbWl0TkYoCgAAAHUIAAAAX19uYW1lX191CgAAAF9fbW9kdWxlX191DAAAAF9fcXVhbG5hbWVfX3UHAAAAX19kb2NfX3UEAAAATm9uZXUFAAAARmFsc2V1CAAAAF9faW5pdF9fdQUAAABjbG9zZXUFAAAAX29wZW51BAAAAGVtaXQoAQAAAHUKAAAAX19sb2NhbHNfXygAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQsAAABGaWxlSGFuZGxlcrUDAABzCgAAABADBgEVEgwRDAdjAQAAAAAAAAABAAAAAwAAAEIAAABzOwAAAHwAAEVlAABaAQBkAABaAgBkAQBaAwBlBABkAgBkAwCEAQBaBQBlBgBkBABkBQCEAACDAQBaBwBkBgBTKAcAAAB1DgAAAF9TdGRlcnJIYW5kbGVydcAAAAAKICAgIFRoaXMgY2xhc3MgaXMgbGlrZSBhIFN0cmVhbUhhbmRsZXIgdXNpbmcgc3lzLnN0ZGVyciwgYnV0IGFsd2F5cyB1c2VzCiAgICB3aGF0ZXZlciBzeXMuc3RkZXJyIGlzIGN1cnJlbnRseSBzZXQgdG8gcmF0aGVyIHRoYW4gdGhlIHZhbHVlIG9mCiAgICBzeXMuc3RkZXJyIGF0IGhhbmRsZXIgY29uc3RydWN0aW9uIHRpbWUuCiAgICBjAgAAAAAAAAACAAAAAwAAAEMAAABzFAAAAHQAAGoBAHwAAHwBAIMCAAFkAQBTKAIAAAB1KQAAAAogICAgICAgIEluaXRpYWxpemUgdGhlIGhhbmRsZXIuCiAgICAgICAgTigCAAAAdQcAAABIYW5kbGVydQgAAABfX2luaXRfXygCAAAAdQQAAABzZWxmdQUAAABsZXZlbCgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQgAAABfX2luaXRfX/QDAABzAgAAAAAEdRcAAABfU3RkZXJySGFuZGxlci5fX2luaXRfX2MBAAAAAAAAAAEAAAABAAAAQwAAAHMHAAAAdAAAagEAUygBAAAATigCAAAAdQMAAABzeXN1BgAAAHN0ZGVycigBAAAAdQQAAABzZWxmKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1BgAAAHN0cmVhbfoDAABzAgAAAAACdRUAAABfU3RkZXJySGFuZGxlci5zdHJlYW1OKAgAAAB1CAAAAF9fbmFtZV9fdQoAAABfX21vZHVsZV9fdQwAAABfX3F1YWxuYW1lX191BwAAAF9fZG9jX191BgAAAE5PVFNFVHUIAAAAX19pbml0X191CAAAAHByb3BlcnR5dQYAAABzdHJlYW0oAQAAAHUKAAAAX19sb2NhbHNfXygAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQ4AAABfU3RkZXJySGFuZGxlcu4DAABzBgAAABAFBgEPBnUOAAAAX1N0ZGVyckhhbmRsZXJjAQAAAAAAAAABAAAAAgAAAEIAAABzMgAAAHwAAEVlAABaAQBkAABaAgBkAQBaAwBkAgBkAwCEAABaBABkBABkBQCEAABaBQBkBgBTKAcAAAB1CwAAAFBsYWNlSG9sZGVydeMAAAAKICAgIFBsYWNlSG9sZGVyIGluc3RhbmNlcyBhcmUgdXNlZCBpbiB0aGUgTWFuYWdlciBsb2dnZXIgaGllcmFyY2h5IHRvIHRha2UKICAgIHRoZSBwbGFjZSBvZiBub2RlcyBmb3Igd2hpY2ggbm8gbG9nZ2VycyBoYXZlIGJlZW4gZGVmaW5lZC4gVGhpcyBjbGFzcyBpcwogICAgaW50ZW5kZWQgZm9yIGludGVybmFsIHVzZSBvbmx5IGFuZCBub3QgYXMgcGFydCBvZiB0aGUgcHVibGljIEFQSS4KICAgIGMCAAAAAAAAAAIAAAADAAAAQwAAAHMUAAAAaQEAZAEAfAEANnwAAF8BAGQBAFMoAgAAAHVZAAAACiAgICAgICAgSW5pdGlhbGl6ZSB3aXRoIHRoZSBzcGVjaWZpZWQgbG9nZ2VyIGJlaW5nIGEgY2hpbGQgb2YgdGhpcyBwbGFjZWhvbGRlci4KICAgICAgICBOKAIAAAB1BAAAAE5vbmV1CQAAAGxvZ2dlck1hcCgCAAAAdQQAAABzZWxmdQcAAABhbG9nZ2VyKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1CAAAAF9faW5pdF9fDAQAAHMCAAAAAAR1FAAAAFBsYWNlSG9sZGVyLl9faW5pdF9fYwIAAAAAAAAAAgAAAAMAAABDAAAAcyMAAAB8AQB8AABqAABrBwByHwBkAQB8AABqAAB8AQA8bgAAZAEAUygCAAAAdUoAAAAKICAgICAgICBBZGQgdGhlIHNwZWNpZmllZCBsb2dnZXIgYXMgYSBjaGlsZCBvZiB0aGlzIHBsYWNlaG9sZGVyLgogICAgICAgIE4oAgAAAHUJAAAAbG9nZ2VyTWFwdQQAAABOb25lKAIAAAB1BAAAAHNlbGZ1BwAAAGFsb2dnZXIoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUGAAAAYXBwZW5kEgQAAHMEAAAAAAQPAXUSAAAAUGxhY2VIb2xkZXIuYXBwZW5kTigGAAAAdQgAAABfX25hbWVfX3UKAAAAX19tb2R1bGVfX3UMAAAAX19xdWFsbmFtZV9fdQcAAABfX2RvY19fdQgAAABfX2luaXRfX3UGAAAAYXBwZW5kKAEAAAB1CgAAAF9fbG9jYWxzX18oAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24z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AQA8fAAAagsAfAIAgwEAAVdkAgB0DACDAAABWHwCAFMoAwAAAHXhAQAACiAgICAgICAgR2V0IGEgbG9nZ2VyIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lIChjaGFubmVsIG5hbWUpLCBjcmVhdGluZyBpdAogICAgICAgIGlmIGl0IGRvZXNuJ3QgeWV0IGV4aXN0LiBUaGlzIG5hbWUgaXMgYSBkb3Qtc2VwYXJhdGVkIGhpZXJhcmNoaWNhbAogICAgICAgIG5hbWUsIHN1Y2ggYXMgImEiLCAiYS5iIiwgImEuYi5jIiBvciBzaW1pbGFyLgoKICAgICAgICBJZiBhIFBsYWNlSG9sZGVyIGV4aXN0ZWQgZm9yIHRoZSBzcGVjaWZpZWQgbmFtZSBbaS5lLiB0aGUgbG9nZ2VyCiAgICAgICAgZGlkbid0IGV4aXN0IGJ1dCBhIGNoaWxkIG9mIGl0IGRpZF0sIHJlcGxhY2UgaXQgd2l0aCB0aGUgY3JlYXRlZAogICAgICAgIGxvZ2dlciBhbmQgZml4IHVwIHRoZSBwYXJlbnQvY2hpbGQgcmVmZXJlbmNlcyB3aGljaCBwb2ludGVkIHRvIHRoZQogICAgICAgIHBsYWNlaG9sZGVyIHRvIG5vdyBwb2ludCB0byB0aGUgbG9nZ2VyLgogICAgICAgIHUeAAAAQSBsb2dnZXIgbmFtZSBtdXN0IGJlIGEgc3RyaW5nTigNAAAAdQQAAABOb25ldQoAAABpc2luc3RhbmNldQMAAABzdHJ1CQAAAFR5cGVFcnJvcnUMAAAAX2FjcXVpcmVMb2NrdQoAAABsb2dnZXJEaWN0dQsAAABQbGFjZUhvbGRlcnULAAAAbG9nZ2VyQ2xhc3N1DAAAAF9sb2dnZXJDbGFzc3UHAAAAbWFuYWdlcnUOAAAAX2ZpeHVwQ2hpbGRyZW51DQAAAF9maXh1cFBhcmVudHN1DAAAAF9yZWxlYXNlTG9jaygEAAAAdQQAAABzZWxmdQQAAABuYW1ldQIAAABydnUCAAAAcGgoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUJAAAAZ2V0TG9nZ2VyQgQAAHMoAAAAAAsGAQ8BDwEHAQMBDwEN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AABaFQBkHgBkHwCEAABaFgBkIABkIQCEAABaFwBkIgBkIwCEAABaGABkJABkJQCEAABaGQBkJgBkJwCEAABaGgBkKABkKQCEAABaGwBkKgBkKwCEAABaHABkLABTKC4AAAB1BgAAAExvZ2dlcnVyAwAACiAgICBJbnN0YW5jZXMgb2YgdGhlIExvZ2dlciBjbGFzcyByZXByZXNlbnQgYSBzaW5nbGUgbG9nZ2luZyBjaGFubmVsLiBBCiAgICAibG9nZ2luZyBjaGFubmVsIiBpbmRpY2F0ZXMgYW4gYXJlYSBvZiBhbiBhcHBsaWNhdGlvbi4gRXhhY3RseSBob3cgYW4KICAgICJhcmVhIiBpcyBkZWZpbmVkIGlzIHVwIHRvIHRoZSBhcHBsaWNhdGlvbiBkZXZlbG9wZXIuIFNpbmNlIGFuCiAgICBhcHBsaWNhdGlvbiBjYW4gaGF2ZSBhbnkgbnVtYmVyIG9mIGFyZWFzLCBsb2dnaW5nIGNoYW5uZWxzIGFyZSBpZGVudGlmaWVkCiAgICBieSBhIHVuaXF1ZSBzdHJpbmcuIEFwcGxpY2F0aW9uIGFyZWFzIGNhbiBiZSBuZXN0ZWQgKGUuZy4gYW4gYXJlYQogICAgb2YgImlucHV0IHByb2Nlc3NpbmciIG1pZ2h0IGluY2x1ZGUgc3ViLWFyZWFzICJyZWFkIENTViBmaWxlcyIsICJyZWFkCiAgICBYTFMgZmlsZXMiIGFuZCAicmVhZCBHbnVtZXJpYyBmaWxlcyIpLiBUbyBjYXRlciBmb3IgdGhpcyBuYXR1cmFsIG5lc3RpbmcsCiAgICBjaGFubmVsIG5hbWVzIGFyZSBvcmdhbml6ZWQgaW50byBhIG5hbWVzcGFjZSBoaWVyYXJjaHkgd2hlcmUgbGV2ZWxzIGFyZQogICAgc2VwYXJhdGVkIGJ5IHBlcmlvZHMsIG11Y2ggbGlrZSB0aGUgSmF2YSBvciBQeXRob24gcGFja2FnZSBuYW1lc3BhY2UuIFNvCiAgICBpbiB0aGUgaW5zdGFuY2UgZ2l2ZW4gYWJvdmUsIGNoYW5uZWwgbmFtZXMgbWlnaHQgYmUgImlucHV0IiBmb3IgdGhlIHVwcGVyCiAgICBsZXZlbCwgYW5kICJpbnB1dC5jc3YiLCAiaW5wdXQueGxzIiBh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dGhlCiAgICAgICAgbG9nZ2VyIGhpZXJhcmNoeS4gSWYgbm8gaGFuZGxlciB3YXMgZm91bmQsIG91dHB1dCBhIG9uZS1vZmYgZXJyb3IKICAgICAgICBtZXNzYWdlIHRvIHN5cy5zdGRlcnIuIFN0b3Agc2VhcmNoaW5nIHVwIHRoZSBoaWVyYXJjaHkgd2hlbmV2ZXIgYQogICAgICAgIGxvZ2dlciB3aXRoIHRoZSAicHJvcGFnYXRlIiBhdHRyaWJ1dGUgc2V0IHRvIHplcm8gaXMgZm91bmQgLSB0aGF0CiAgICAgICAgd2lsbCBiZSB0aGUgbGFzdCBsb2dnZXIgd2hvc2UgaGFuZGxlcnMgYXJlIGNhbGxlZC4KICAgICAgICBpAAAAAGkBAAAAdSsAAABObyBoYW5kbGVycyBjb3VsZCBiZSBmb3VuZCBmb3IgbG9nZ2VyICIlcyIKTlQoEAAAAHUIAAAAaGFuZGxlcnN1BwAAAGxldmVsbm91BQAAAGxldmVsdQYAAABoYW5kbGV1CQAAAHByb3BhZ2F0ZXUEAAAATm9uZXUGAAAAcGFyZW50dQoAAABsYXN0UmVzb3J0dQ8AAAByYWlzZUV4Y2VwdGlvbnN1BwAAAG1hbmFnZXJ1FwAAAGVtaXR0ZWROb0hhbmRsZXJXYXJuaW5ndQMAAABzeXN1BgAAAHN0ZGVycnUFAAAAd3JpdGV1BAAAAG5hbWV1BAAAAFRydWUoBQAAAHUEAAAAc2VsZnUGAAAAcmVjb3JkdQEAAABjdQUAAABmb3VuZHUEAAAAaGRscigAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQwAAABjYWxsSGFuZGxlcnOUBQAAcyQAAAAACgYBBgEJARABCgESARQBCQEJAg0BDAEGARIBEwETAQwBCwF1EwAAAExvZ2dlci5jYWxsSGFuZGxlcnNjAQAAAAAAAAACAAAAAQAAAEMAAABzMAAAAHwAAH0BAHgjAHwBAHIrAHwBAGoAAHIfAHwBAGoAAFN8AQBqAQB9AQBxCQBXdAIAUygBAAAAdc8AAAAKICAgICAgICBHZXQgdGhlIGVmZmVjdGl2ZSBsZXZlbCBmb3IgdGhpcyBsb2dnZXIuCgogICAgICAgIExvb3AgdGhyb3VnaCB0aGlzIGxvZ2dlciBhbmQgaXRzIHBhcmVudHMgaW4gdGhlIGxvZ2dlciBoaWVyYXJjaHksCiAgICAgICAgbG9va2luZyBmb3IgYSBub24temVybyBsb2dnaW5nIGxldmVsLiBSZXR1cm4gdGhlIGZpcnN0IG9uZSBmb3VuZC4KICAgICAgICAoAwAAAHUFAAAAbGV2ZWx1BgAAAHBhcmVudHUGAAAATk9UU0VUKAIAAAB1BAAAAHNlbGZ1BgAAAGxvZ2dlcigAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dREAAABnZXRFZmZlY3RpdmVMZXZlbLIFAABzDAAAAAAHBgEJAQkBBwENAXUYAAAATG9nZ2VyLmdldEVmZmVjdGl2ZUxldmVsYwIAAAAAAAAAAgAAAAIAAABDAAAAcyYAAAB8AABqAABqAQB8AQBrBQByFgBkAQBTfAEAfAAAagMAgwAAawUAUygCAAAAdTsAAAAKICAgICAgICBJcyB0aGlzIGxvZ2dlciBlbmFibGVkIGZvciBsZXZlbCAnbGV2ZWwnPwogICAgICAgIEYoBAAAAHUHAAAAbWFuYWdlcnUHAAAAZGlzYWJsZXUFAAAARmFsc2V1EQAAAGdldEVmZmVjdGl2ZUxldmVsKAIAAAB1BAAAAHNlbGZ1BQAAAGxldmVsKAAAAAAoAAAAAHU1AAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2xvZ2dpbmcvX19pbml0X18ucHl1DAAAAGlzRW5hYmxlZEZvcsAFAABzBgAAAAAEEgEEAXUTAAAATG9nZ2VyLmlzRW5hYmxlZEZvcmMCAAAAAAAAAAIAAAADAAAAQwAAAHM6AAAAfAAAagAAfAAAawkAcioAZAEAagEAfAAAagIAfAEAZgIAgwEAfQEAbgAAfAAAagMAagQAfAEAgwEAUygCAAAAdWIBAAAKICAgICAgICBHZXQgYSBsb2dnZXIgd2hpY2ggaXMgYSBkZXNjZW5kYW50IHRvIHRoaXMgb25lLgoKICAgICAgICBUaGlzIGlzIGEgY29udmVuaWVuY2UgbWV0aG9kLCBzdWNoIHRoYXQKCiAgICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoJ2FiYycpLmdldENoaWxkKCdkZWYuZ2hpJykKCiAgICAgICAgaXMgdGhlIHNhbWUgYXMKCiAgICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoJ2FiYy5kZWYuZ2hpJykKCiAgICAgICAgSXQncyB1c2VmdWwsIGZvciBleGFtcGxlLCB3aGVuIHRoZSBwYXJlbnQgbG9nZ2VyIGlzIG5hbWVkIHVzaW5nCiAgICAgICAgX19uYW1lX18gcmF0aGVyIHRoYW4gYSBsaXRlcmFsIHN0cmluZy4KICAgICAgICB1AQAAAC4oBQAAAHUEAAAAcm9vdHUEAAAAam9pbnUEAAAAbmFtZXUHAAAAbWFuYWdlcnUJAAAAZ2V0TG9nZ2VyKAIAAAB1BAAAAHNlbGZ1BgAAAHN1ZmZpeCgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQgAAABnZXRDaGlsZMgFAABzBgAAAAAPDwEbAXUPAAAATG9nZ2VyLmdldENoaWxkTkYoHQAAAHUIAAAAX19uYW1lX191CgAAAF9fbW9kdWxlX191DAAAAF9fcXVhbG5hbWVfX3UHAAAAX19kb2NfX3UGAAAATk9UU0VUdQgAAABfX2luaXRfX3UIAAAAc2V0TGV2ZWx1BQAAAGRlYnVndQQAAABpbmZvdQcAAAB3YXJuaW5ndQQAAAB3YXJudQUAAABlcnJvcnUJAAAAZXhjZXB0aW9udQgAAABjcml0aWNhbHUFAAAAZmF0YWx1AwAAAGxvZ3UFAAAARmFsc2V1CgAAAGZpbmRDYWxsZXJ1BAAAAE5vbmV1CgAAAG1ha2VSZWNvcmR1BAAAAF9sb2d1BgAAAGhhbmRsZXUKAAAAYWRkSGFuZGxlcnUNAAAAcmVtb3ZlSGFuZGxlcnULAAAAaGFzSGFuZGxlcnN1DAAAAGNhbGxIYW5kbGVyc3URAAAAZ2V0RWZmZWN0aXZlTGV2ZWx1DAAAAGlzRW5hYmxlZEZvcnUIAAAAZ2V0Q2hpbGQoAQAAAHUKAAAAX19sb2NhbHNfXygAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhv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agQAZA4AdAkAfAcAGWQPABmDAgB9CAB0DAB8CAB8BgB8BwCDAwB9CQB4OgB8AQBEXTIAfQQAfAQAag0AZBEAawgAcqEBfAQAag4AfAkAgwEAAW4AAHQCAGoPAHwEAIMBAAFxfAFXfAAAagQAZBAAgwEAfQoAfAoAZBEAawkAcuABdAIAahAAfAoAgwEAAXHgAW4AAFdkEQB0EQCDAAABWGQRAFMoEgAAAHW1CQAACiAgICBEbyBiYXNpYyBjb25maWd1cmF0aW9uIGZvciB0aGUgbG9nZ2luZyBzeXN0ZW0uCgogICAgVGhpcyBmdW5jdGlvbiBkb2VzIG5vdGhpbmcgaWYgdGhlIHJvb3QgbG9nZ2VyIGFscmVhZHkgaGFzIGhhbmRsZXJzCiAgICBjb25maWd1cmVkLiBJdCBpcyBhIGNvbnZlbmllbmNlIG1ldGhvZCBpbnRlbmRlZCBmb3IgdXNlIGJ5IHNpbXBsZSBzY3JpcHRzCiAgICB0byBkbyBvbmUtc2hvdCBjb25maWd1cmF0aW9uIG9mIHRoZSBsb2dnaW5nIHBhY2thZ2UuCgogICAgVGhlIGRlZmF1bHQgYmVoYXZpb3VyIGlzIHRvIGNyZWF0ZSBhIFN0cmVhbUhhbmRsZXIgd2hpY2ggd3JpdGVzIHRvCiAgICBzeXMuc3RkZXJyLCBzZXQgYSBmb3JtYXR0ZXIgdXNpbmcgdGhlIEJBU0lDX0ZPUk1BVCBmb3JtYXQgc3RyaW5nLCBhbmQKICAgIGFkZCB0aGUgaGFuZGxlciB0byB0aGUgcm9vdCBsb2dnZXIuCgogICAgQSBudW1iZXIgb2Ygb3B0aW9uYWwga2V5d29yZCBhcmd1bWVudHMgbWF5IGJlIHNwZWNpZmllZCwgd2hpY2ggY2FuIGFsdGVyCiAgICB0aGUgZGVmYXVsdCBiZWhhdmlvdXIuCgogICAgZmlsZW5hbWUgIFNwZWNpZmllcyB0aGF0IGEgRmlsZUhhbmRsZXIgYmUgY3JlYXRlZCwgdXNpbmcgdGhlIHNwZWNpZmllZAogICAgICAgICAgICAgIGZpbGVuYW1lLCByYXRoZXIgdGhhbiBhIFN0cmVhbUhhbmRsZXIuCiAgICBmaWxlbW9kZSAgU3BlY2lmaWVzIHRoZSBtb2RlIHRvIG9wZW4gdGhlIGZpbGUsIGlmIGZpbGVuYW1lIGlzIHNwZWNpZmllZAogICAgICAgICAgICAgIChpZiBmaWxlbW9kZSBpcyB1bnNwZWNpZmllZCwgaXQgZGVmYXVsdHMgdG8gJ2EnKS4KICAgIGZvcm1hdCAgICBVc2UgdGhlIHNwZWNpZmllZCBmb3JtYXQgc3RyaW5nIGZvciB0aGUgaGFuZGxlci4KICAgIGRhdGVmbXQgICBVc2UgdGhlIHNwZWNpZmllZCBkYXRlL3RpbWUgZm9ybWF0LgogICAgc3R5bGUgICAgIElmIGEgZm9ybWF0IHN0cmluZyBpcyBzcGVjaWZpZWQsIHVzZSB0aGlzIHRvIHNwZWNpZnkgdGhlCiAgICAgICAgICAgICAgdHlwZSBvZiBmb3JtYXQgc3RyaW5nIChwb3NzaWJsZSB2YWx1ZXMgJyUnLCAneycsICckJywgZm9yCiAgICAgICAgICAgICAgJS1mb3JtYXR0aW5nLCA6bWV0aDpgc3RyLmZvcm1hdGAgYW5kIDpjbGFzczpgc3RyaW5nLlRlbXBsYXRlYAogICAgICAgICAgICAgIC0gZGVmYXVsdHMgdG8gJyUnKS4KICAgIGxldmVsICAgICBTZXQgdGhlIHJvb3QgbG9nZ2VyIGxldmVsIHRvIHRoZSBzcGVjaWZpZWQgbGV2ZWwuCiAgICBzdHJlYW0gICAgVXNlIHRoZSBzcGVjaWZpZWQgc3RyZWFtIHRvIGluaXRpYWxpemUgdGhlIFN0cmVhbUhhbmRsZXIuIE5vdGUKICAgICAgICAgICAgICB0aGF0IHRoaXMgYXJndW1lbnQgaXMgaW5jb21wYXRpYmxlIHdpdGggJ2ZpbGVuYW1lJyAtIGlmIGJvdGgKICAgICAgICAgICAgICBhcmUgcHJlc2VudCwgJ3N0cmVhbScgaXMgaWdub3JlZC4KICAgIGhhbmRsZXJzICBJZiBzcGVjaWZpZWQsIHRoaXMgc2hvdWxkIGJlIGFuIGl0ZXJhYmxlIG9mIGFscmVhZHkgY3JlYXRlZAogICAgICAgICAgICAgIGhhbmRsZXJzLCB3aGljaCB3aWxsIGJlIGFkZGVkIHRvIHRoZSByb290IGhhbmRsZXIuIEFueSBoYW5kbGVyCiAgICAgICAgICAgICAgaW4gdGhlIGxpc3Qgd2hpY2ggZG9lcyBub3QgaGF2ZSBhIGZvcm1hdHRlciBhc3NpZ25lZCB3aWxsIGJlCiAgICAgICAgICAgICAgYXNzaWduZWQgdGhlIGZvcm1hdHRlciBjcmVhdGVkIGluIHRoaXMgZnVuY3Rpb24uCgogICAgTm90ZSB0aGF0IHlvdSBjb3VsZCBzcGVjaWZ5IGEgc3RyZWFtIGNyZWF0ZWQgdXNpbmcgb3BlbihmaWxlbmFtZSwgbW9kZSkKICAgIHJhdGhlciB0aGFuIHBhc3NpbmcgdGhlIGZpbGVuYW1lIGFuZCBtb2RlIGluLiBIb3dldmVyLCBpdCBzaG91bGQgYmUKICAgIHJlbWVtYmVyZWQgdGhhdCBTdHJlYW1IYW5kbGVyIGRvZXMgbm90IGNsb3NlIGl0cyBzdHJlYW0gKHNpbmNlIGl0IG1heSBiZQogICAgdXNpbmcgc3lzLnN0ZG91dCBvciBzeXMuc3RkZXJyKSwgd2hlcmVhcyBGaWxlSGFuZGxlciBjbG9zZXMgaXRzIHN0cmVhbQogICAgd2hlbiB0aGUgaGFuZGxlciBpcyBjbG9zZWQuCgogICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIKICAgICAgIEFkZGVkIHRoZSBgYHN0eWxlYGAgcGFyYW1ldGVyLgoKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCiAgICAgICBBZGRlZCB0aGUgYGBoYW5kbGVyc2BgIHBhcmFtZXRlci4gQSBgYFZhbHVlRXJyb3JgYCBpcyBub3cgdGhyb3duIGZvcgogICAgICAgaW5jb21wYXRpYmxlIGFyZ3VtZW50cyAoZS5nLiBgYGhhbmRsZXJzYGAgc3BlY2lmaWVkIHRvZ2V0aGVyIHdpdGgKICAgICAgIGBgZmlsZW5hbWVgYC9gYGZpbGVtb2RlYGAsIG9yIGBgZmlsZW5hbWVgYC9gYGZpbGVtb2RlYGAgc3BlY2lmaWVkCiAgICAgICB0b2dldGhlciB3aXRoIGBgc3RyZWFtYGAsIG9yIGBgaGFuZGxlcnNgYCBzcGVjaWZpZWQgdG9nZXRoZXIgd2l0aAogICAgICAgYGBzdHJlYW1gYC4KICAgIGkAAAAAdQgAAABoYW5kbGVyc3UGAAAAc3RyZWFtdQgAAABmaWxlbmFtZXU4AAAAJ3N0cmVhbScgYW5kICdmaWxlbmFtZScgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQgdG9nZXRoZXJ1RwAAACdzdHJlYW0nIG9yICdmaWxlbmFtZScgc2hvdWxkIG5vdCBiZSBzcGVjaWZpZWQgdG9nZXRoZXIgd2l0aCAnaGFuZGxlcnMndQgAAABmaWxlbW9kZXUBAAAAYXUHAAAAZGF0ZWZtdHUFAAAAc3R5bGV1AQAAACV1GAAAAFN0eWxlIG11c3QgYmUgb25lIG9mOiAlc3UBAAAALHUGAAAAZm9ybWF0aQEAAAB1BQAAAGxldmVsTigSAAAAdQwAAABfYWNxdWlyZUxvY2t1AwAAAGxlbnUEAAAAcm9vdHUIAAAAaGFuZGxlcnN1AwAAAGdldHUEAAAATm9uZXUKAAAAVmFsdWVFcnJvcnULAAAARmlsZUhhbmRsZXJ1DQAAAFN0cmVhbUhhbmRsZXJ1BwAAAF9TVFlMRVN1BAAAAGpvaW51BAAAAGtleXN1CQAAAEZvcm1hdHRlcnUJAAAAZm9ybWF0dGVydQwAAABzZXRGb3JtYXR0ZXJ1CgAAAGFkZEhhbmRsZXJ1CAAAAHNldExldmVsdQwAAABfcmVsZWFzZUxvY2soCwAAAHUGAAAAa3dhcmdzdQgAAABoYW5kbGVyc3UIAAAAZmlsZW5hbWV1BAAAAG1vZGV1AQAAAGh1BgAAAHN0cmVhbXUDAAAAZGZzdQUAAABzdHlsZXUCAAAAZnN1AwAAAGZtdHUFAAAAbGV2ZWwoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXULAAAAYmFzaWNDb25maWdiBgAAc0AAAAAANAcBAwEVAQ8BDAEYARIDGAEPAgwBDwEGARIBEgIPAQwBDAESARIBDAEMARYBGgESAQ0BDwEQAREBDwEMARcCYwEAAAAAAAAAAQAAAAIAAABDAAAAcx4AAAB8AAByFgB0AABqAQBqAgB8AACDAQBTdAMAU2QBAFMoAgAAAHWCAAAACiAgICBSZXR1cm4gYSBsb2dnZXIgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUsIGNyZWF0aW5nIGl0IGlmIG5lY2Vzc2FyeS4KCiAgICBJZiBu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ACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUIAAAAc2h1dGRvd24eBwAAcxwAAAAABx0DAwEJAQYBBgEKAQoBDgETBQkCEgEDAQYBdQgAAABzaHV0ZG93bmMBAAAAAAAAAAEAAAACAAAAQgAAAHM+AAAAfAAARWUAAFoBAGQAAFoCAGQBAFoDAGQCAGQDAIQAAFoEAGQEAGQFAIQAAFoFAGQGAGQHAIQAAFoGAGQIAFMoCQAAAHULAAAATnVsbEhhbmRsZXJ12QEAAAogICAgVGhpcyBoYW5kbGVyIGRvZXMgbm90aGluZy4gSXQncyBpbnRlbmRlZCB0byBiZSB1c2VkIHRvIGF2b2lkIHRoZQogICAgIk5vIGhhbmRsZXJzIGNvdWxkIGJlIGZvdW5kIGZvciBsb2dnZXIgWFhYIiBvbmUtb2ZmIHdhcm5pbmcuIFRoaXMgaXMKICAgIGltcG9ydGFudCBmb3IgbGlicmFyeSBjb2RlLCB3aGljaCBtYXkgY29udGFpbiBjb2RlIHRvIGxvZyBldmVudHMuIElmIGEgdXNlcgogICAgb2YgdGhlIGxpYnJhcnkgZG9lcyBub3QgY29uZmlndXJlIGxvZ2dpbmcsIHRoZSBvbmUtb2ZmIHdhcm5pbmcgbWlnaHQgYmUKICAgIHByb2R1Y2VkOyB0byBhdm9pZCB0aGlzLCB0aGUgbGlicmFyeSBkZXZlbG9wZXIgc2ltcGx5IG5lZWRzIHRvIGluc3RhbnRpYXRlCiAgICBhIE51bGxIYW5kbGVyIGFuZCBhZGQgaXQgdG8gdGhlIHRvcC1sZXZlbCBsb2dnZXIgb2YgdGhlIGxpYnJhcnkgbW9kdWxlIG9yCiAgICBwYWNrYWdlLgogICAgYwIAAAAAAAAAAgAAAAEAAABDAAAAcwQAAABkAQBTKAIAAAB1BQAAAFN0dWIuTigAAAAAKAIAAAB1BAAAAHNlbGZ1BgAAAHJlY29yZCgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQYAAABoYW5kbGVMBwAAcwAAAAB1EgAAAE51bGxIYW5kbGVyLmhhbmRsZWMCAAAAAAAAAAIAAAABAAAAQwAAAHMEAAAAZAEAUygCAAAAdQUAAABTdHViLk4oAAAAACgCAAAAdQQAAABzZWxmdQYAAAByZWNvcmQoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUEAAAAZW1pdE8HAABzAAAAAHUQAAAATnVsbEhhbmRsZXIuZW1pdGMBAAAAAAAAAAEAAAACAAAAQwAAAHMNAAAAZAAAfAAAXwEAZAAAUygBAAAATigCAAAAdQQAAABOb25ldQQAAABsb2NrKAEAAAB1BAAAAHNlbGYoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUKAAAAY3JlYXRlTG9ja1IHAABzAgAAAAABdRYAAABOdWxsSGFuZGxlci5jcmVhdGVMb2NrTigHAAAAdQgAAABfX25hbWVfX3UKAAAAX19tb2R1bGVfX3UMAAAAX19xdWFsbmFtZV9fdQcAAABfX2RvY19fdQYAAABoYW5kbGV1BAAAAGVtaXR1CgAAAGNyZWF0ZUxvY2soAQAAAHUKAAAAX19sb2NhbHNfXygAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQsAAABOdWxsSGFuZGxlckIHAABzCAAAABAJBgEMAwwDYwYAAAAAAAAACAAAAAcAAABDAAAAc44AAAB8BABkAwBrCQByNwB0AQBkAwBrCQByigB0AQB8AAB8AQB8AgB8AwB8BAB8BQCDBgABcYoAblMAdAIAagMAfAAAfAEAfAIAfAMAfAUAgwUAfQYAdAQAZAEAgwEAfQcAfAcAagUAc3oAfAcAagYAdAcAgwAAgwEAAW4AAHwHAGoIAGQCAHwGAIMCAAFkAwBTKAQAAAB1iAEAAAogICAgSW1wbGVtZW50YXRpb24gb2Ygc2hvd3dhcm5pbmdzIHdoaWNoIHJlZGlyZWN0cyB0byBsb2dnaW5nLCB3aGljaCB3aWxsIGZpcnN0CiAgICBjaGVjayB0byBzZWUgaWYgdGhlIGZpbGUgcGFyYW1ldGVyIGlzIE5vbmUuIElmIGEgZmlsZSBpcyBzcGVjaWZpZWQsIGl0IHdpbGwKICAgIGRlbGVnYXRlIHRvIHRoZSBvcmlnaW5hbCB3YXJuaW5ncyBpbXBsZW1lbnRhdGlvbiBvZiBzaG93d2FybmluZy4gT3RoZXJ3aXNlLAogICAgaXQgd2lsbCBjYWxsIHdhcm5pbmdzLmZvcm1hdHdhcm5pbmcgYW5kIHdpbGwgbG9nIHRoZSByZXN1bHRpbmcgc3RyaW5nIHRvIGEKICAgIHdhcm5pbmdzIGxvZ2dlciBuYW1lZCAicHkud2FybmluZ3MiIHdpdGggbGV2ZWwgbG9nZ2luZy5XQVJOSU5HLgogICAgdQsAAABweS53YXJuaW5nc3UCAAAAJXNOKAkAAAB1BAAAAE5vbmV1FQAAAF93YXJuaW5nc19zaG93d2FybmluZ3UIAAAAd2FybmluZ3N1DQAAAGZvcm1hdHdhcm5pbmd1CQAAAGdldExvZ2dlcnUIAAAAaGFuZGxlcnN1CgAAAGFkZEhhbmRsZXJ1CwAAAE51bGxIYW5kbGVydQcAAAB3YXJuaW5nKAgAAAB1BwAAAG1lc3NhZ2V1CAAAAGNhdGVnb3J5dQgAAABmaWxlbmFtZXUGAAAAbGluZW5vdQQAAABmaWxldQQAAABsaW5ldQEAAABzdQYAAABsb2dnZXIoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUMAAAAX3Nob3d3YXJuaW5nWQcAAHMQAAAAAAgMAQwBHwIbAQwBCQETAXUMAAAAX3Nob3d3YXJuaW5nYwEAAAAAAAAAAQAAAAIAAABDAAAAc0wAAAB8AAByKgB0AABkAQBrCABySAB0AgBqAwBhAAB0BAB0AgBfAwBxSABuHgB0AABkAQBrCQBySAB0AAB0AgBfAwBkAQBhAABuAABkAQBTKAIAAAB1vwAAAAogICAgSWYgY2FwdHVyZSBpcyB0cnVlLCByZWRpcmVjdCBhbGwgd2FybmluZ3MgdG8gdGhlIGxvZ2dpbmcgcGFja2FnZS4KICAgIElmIGNhcHR1cmUgaXMgRmFsc2UsIGVuc3VyZSB0aGF0IHdhcm5pbmdzIGFyZSBub3QgcmVkaXJlY3RlZCB0byBsb2dnaW5nCiAgICBidXQgdG8gdGhlaXIgb3JpZ2luYWwgZGVzdGluYXRpb25zLgogICAgTigFAAAAdRUAAABfd2FybmluZ3Nfc2hvd3dhcm5pbmd1BAAAAE5vbmV1CAAAAHdhcm5pbmdzdQsAAABzaG93d2FybmluZ3UMAAAAX3Nob3d3YXJuaW5nKAEAAAB1BwAAAGNhcHR1cmUoAAAAACgAAAAAdTUAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvbG9nZ2luZy9fX2luaXRfXy5weXUPAAAAY2FwdHVyZVdhcm5pbmdzawcAAHMOAAAAAAcGAQwBCQEPAgwBCQEoZwAAAHUHAAAAX19kb2NfX3UDAAAAc3lzdQIAAABvc3UEAAAAdGltZXUCAAAAaW91CQAAAHRyYWNlYmFja3UIAAAAd2FybmluZ3N1BwAAAHdlYWtyZWZ1BgAAAHN0cmluZ3UIAAAAVGVtcGxhdGV1BwAAAF9fYWxsX191CQAAAHRocmVhZGluZ3ULAAAASW1wb3J0RXJyb3J1BAAAAE5vbmV1CgAAAF9fYXV0aG9yX191CgAAAF9fc3RhdHVzX191CwAAAF9fdmVyc2lvbl9fdQgAAABfX2RhdGVfX3UHAAAAaGFzYXR0cnUDAAAAc2VwdQgAAABfX2ZpbGVfX3UIAAAAX3NyY2ZpbGV1BAAAAHBhdGh1CAAAAG5vcm1jYXNldQwAAABjdXJyZW50ZnJhbWV1CgAAAF9zdGFydFRpbWV1BAAAAFRydWV1DwAAAHJhaXNlRXhjZXB0aW9uc3UKAAAAbG9nVGhyZWFkc3USAAAAbG9nTXVsdGlwcm9jZXNzaW5ndQwAAABsb2dQcm9jZXNzZXN1CAAAAENSSVRJQ0FMdQUAAABGQVRBTHUFAAAARVJST1J1BwAAAFdBUk5JTkd1BAAAAFdBUk51BAAAAElORk91BQAAAERFQlVHdQYAAABOT1RTRVR1CwAAAF9sZXZlbE5hbWVzdQwAAABnZXRMZXZlbE5hbWV1DAAAAGFkZExldmVsTmFtZXULAAAAX2NoZWNrTGV2ZWx1BQAAAFJMb2NrdQUAAABfbG9ja3UMAAAAX2FjcXVpcmVMb2NrdQwAAABfcmVsZWFzZUxvY2t1BgAAAG9iamVjdHUJAAAATG9nUmVjb3JkdREAAABfbG9nUmVjb3JkRmFjdG9yeXUTAAAAc2V0TG9nUmVjb3JkRmFjdG9yeXUTAAAAZ2V0TG9nUmVjb3JkRmFjdG9yeXUNAAAAbWFrZUxvZ1JlY29yZHUMAAAAUGVyY2VudFN0eWxldQ4AAABTdHJGb3JtYXRTdHlsZXUTAAAAU3RyaW5nVGVtcGxhdGVTdHlsZXUMAAAAQkFTSUNfRk9STUFUdQcAAABfU1RZTEVTdQkAAABGb3JtYXR0ZXJ1EQAAAF9kZWZhdWx0Rm9ybWF0dGVydRIAAABCdWZmZXJpbmdGb3JtYXR0ZXJ1BgAAAEZpbHRlcnUIAAAARmlsdGVyZXJ1EwAAAFdlYWtWYWx1ZURpY3Rpb25hcnl1CQAAAF9oYW5kbGVyc3UMAAAAX2hhbmRsZXJMaXN0dREAAABfcmVtb3ZlSGFuZGxlclJlZnUOAAAAX2FkZEhhbmRsZXJSZWZ1BwAAAEhhbmRsZXJ1DQAAAFN0cmVhbUhhbmRsZXJ1CwAAAEZpbGVIYW5kbGVydQ4AAABfU3RkZXJySGFuZGxlcnUSAAAAX2RlZmF1bHRMYXN0UmVzb3J0dQoAAABsYXN0UmVzb3J0dQsAAABQbGFjZUhvbGRlcnUMAAAAX2xvZ2dlckNsYXNzdQ4AAABzZXRMb2dnZXJDbGFzc3UOAAAAZ2V0TG9nZ2VyQ2xhc3N1BwAAAE1hbmFnZXJ1BgAAAExvZ2dlcnUKAAAAUm9vdExvZ2dlcnUNAAAATG9nZ2VyQWRhcHRlcnUEAAAAcm9vdHUHAAAAbWFuYWdlcnULAAAAYmFzaWNDb25maWd1CQAAAGdldExvZ2dlcnUIAAAAY3JpdGljYWx1BQAAAGZhdGFsdQUAAABlcnJvcnUJAAAAZXhjZXB0aW9udQcAAAB3YXJuaW5ndQQAAAB3YXJudQQAAABpbmZvdQUAAABkZWJ1Z3UDAAAAbG9ndQcAAABkaXNhYmxldQgAAABzaHV0ZG93bnUGAAAAYXRleGl0dQgAAAByZWdpc3RlcnULAAAATnVsbEhhbmRsZXJ1FQAAAF93YXJuaW5nc19zaG93d2FybmluZ3UMAAAAX3Nob3d3YXJuaW5ndQ8AAABjYXB0dXJlV2FybmluZ3MoAAAAACgAAAAAKAAAAAB1NQAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9sb2dnaW5nL19faW5pdF9fLnB5dQgAAAA8bW9kdWxlPhgAAABz8AAAAAYCVAEQAg8BEgEPAQ8BDwEPARIBDwIDARABDQELAgYBBgEGAQYKDwEhAgYBEgMPAQ8CDBEMBgYFBgUGBQYNBgEGAQYBBgEGAQYBBgEGAgMBBwEHAQcBBwEHAQcBBwEHAQcBBwEHAQcBCgMMEAwNDBcGAQ8CBgMMCQwLFmEGAgwKDAcMDxYPFgkWEAYCAwENAQ0BEAMWqwkCFioWJRY0DAEGAgwQDAoWpBY1FjkWEQwBBgYWFgYCDA0MBxZsFv8APhYMBgIWcQwBCQESBgxfDwsMCgYCDAoMCQwKDAUMCgwKDAoMBg8fDAENBBYVBgISEg==
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 6
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
config.cpython-33.pyc
33.13 KB
lrw-r--r--
2024-04-17 16:58:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
config.cpython-33.pyo
33.08 KB
lrw-r--r--
2024-04-17 16:58:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.cpython-33.pyc
56.21 KB
lrw-r--r--
2024-04-17 16:58:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.cpython-33.pyo
56.21 KB
lrw-r--r--
2024-04-17 16:58:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-33.pyc
78.52 KB
lrw-r--r--
2024-04-17 16:58:29
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-33.pyo
78.48 KB
lrw-r--r--
2024-04-17 16:58: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).