diff --git a/.github/workflows/clang-format-linter.yml b/.github/workflows/clang-format-linter.yml index 465f34e74..7d1df4fe5 100644 --- a/.github/workflows/clang-format-linter.yml +++ b/.github/workflows/clang-format-linter.yml @@ -9,6 +9,6 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: InsightSoftwareConsortium/ITKClangFormatLinterAction@master + - uses: InsightSoftwareConsortium/ITKClangFormatLinterAction@main with: - itk-branch: master + itk-branch: main diff --git a/packages/compare-images/python/itkwasm-compare-images-emscripten/itkwasm_compare_images_emscripten/js_package.py b/packages/compare-images/python/itkwasm-compare-images-emscripten/itkwasm_compare_images_emscripten/js_package.py index cdecc1060..5f9265f59 100644 --- a/packages/compare-images/python/itkwasm-compare-images-emscripten/itkwasm_compare_images_emscripten/js_package.py +++ b/packages/compare-images/python/itkwasm-compare-images-emscripten/itkwasm_compare_images_emscripten/js_package.py @@ -3,6 +3,6 @@ from itkwasm.pyodide import JsPackageConfig, JsPackage from ._version import __version__ -default_js_module = """data:text/javascript;base64,dmFyIFh0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgenQ9KEEsZSk9Pntmb3IodmFyIEkgaW4gZSlYdChBLEkse2dldDplW0ldLGVudW1lcmFibGU6ITB9KX07dmFyIF90PSI1LjQuMCIsV0E9X3Q7dmFyICR0PXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sZD0kdDt2YXIgQUk9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFI9QUk7ZnVuY3Rpb24gZUkoQSxlKXtsZXQgST1udWxsO3N3aXRjaChBKXtjYXNlIGQuVUludDg6e0k9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBkLkludDg6e0k9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIGQuVUludDE2OntJPW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIGQuSW50MTY6e0k9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBkLlVJbnQzMjp7ST1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBkLkludDMyOntJPW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgZC5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP0k9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOkk9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBkLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP0k9bmV3IEJpZ0ludDY0QXJyYXkoZSk6ST1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIFIuRmxvYXQzMjp7ST1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2UgUi5GbG9hdDY0OntJPW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7ST1udWxsO2JyZWFrfWNhc2UgbnVsbDp7ST1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIEl9dmFyIEo9ZUk7dmFyIHRJPXtVbmtub3duOiJVbmtub3duIixTY2FsYXI6IlNjYWxhciIsUkdCOiJSR0IiLFJHQkE6IlJHQkEiLE9mZnNldDoiT2Zmc2V0IixWZWN0b3I6IlZlY3RvciIsUG9pbnQ6IlBvaW50IixDb3ZhcmlhbnRWZWN0b3I6IkNvdmFyaWFudFZlY3RvciIsU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvcjoiU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvciIsRGlmZnVzaW9uVGVuc29yM0Q6IkRpZmZ1c2lvblRlbnNvcjNEIixDb21wbGV4OiJDb21wbGV4IixGaXhlZEFycmF5OiJGaXhlZEFycmF5IixBcnJheToiQXJyYXkiLE1hdHJpeDoiTWF0cml4IixWYXJpYWJsZUxlbmd0aFZlY3RvcjoiVmFyaWFibGVMZW5ndGhWZWN0b3IiLFZhcmlhYmxlU2l6ZU1hdHJpeDoiVmFyaWFibGVTaXplTWF0cml4In0saz10STt2YXIgakE9Y2xhc3N7ZGltZW5zaW9uO2NvbXBvbmVudFR5cGU7cGl4ZWxUeXBlO2NvbXBvbmVudHM7Y29uc3RydWN0b3IoZT0yLEk9ZC5VSW50OCx0PWsuU2NhbGFyLHI9MSl7dGhpcy5kaW1lbnNpb249ZSx0aGlzLmNvbXBvbmVudFR5cGU9SSx0aGlzLnBpeGVsVHlwZT10LHRoaXMuY29tcG9uZW50cz1yfX0sR2U9akE7ZnVuY3Rpb24gSUkoQSxlLEksdCxyKXtBW3QrSSplXT1yfXZhciBiZT1JSTt2YXIgdkE9Y2xhc3N7aW1hZ2VUeXBlO25hbWU9IkltYWdlIjtvcmlnaW47c3BhY2luZztkaXJlY3Rpb247c2l6ZTttZXRhZGF0YTtkYXRhO2NvbnN0cnVjdG9yKGU9bmV3IEdlKXt0aGlzLmltYWdlVHlwZT1lO2xldCBJPWUuZGltZW5zaW9uO3RoaXMub3JpZ2luPW5ldyBBcnJheShJKSx0aGlzLm9yaWdpbi5maWxsKDApLHRoaXMuc3BhY2luZz1uZXcgQXJyYXkoSSksdGhpcy5zcGFjaW5nLmZpbGwoMSksdGhpcy5kaXJlY3Rpb249bmV3IEZsb2F0NjRBcnJheShJKkkpLHRoaXMuZGlyZWN0aW9uLmZpbGwoMCk7Zm9yKGxldCB0PTA7dDxJO3QrKyliZSh0aGlzLmRpcmVjdGlvbixJLHQsdCwxKTt0aGlzLnNpemU9bmV3IEFycmF5KEkpLHRoaXMuc2l6ZS5maWxsKDApLHRoaXMubWV0YWRhdGE9bmV3IE1hcCx0aGlzLmRhdGE9bnVsbH19LExlPXZBO2Z1bmN0aW9uIHJJKEEsZSl7bGV0IEk9ey4uLkEuaW1hZ2VUeXBlfTtpZih0eXBlb2YgZTwidSImJnR5cGVvZiBlLnBpeGVsVHlwZTwidSImJihJLnBpeGVsVHlwZT1lLnBpeGVsVHlwZSxlLnBpeGVsVHlwZT09PWsuU2NhbGFyJiZJLmNvbXBvbmVudHMhPT0xKSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYXN0IG11bHRpLWNvbXBvbmVudCBpbWFnZSB0byBhIHNjYWxhciBpbWFnZSIpO3R5cGVvZiBlPCJ1IiYmdHlwZW9mIGUuY29tcG9uZW50VHlwZTwidSImJmUuY29tcG9uZW50VHlwZSE9PUEuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUmJihJLmNvbXBvbmVudFR5cGU9ZS5jb21wb25lbnRUeXBlKTtsZXQgdD1uZXcgTGUoSSk7aWYodC5uYW1lPUEubmFtZSx0Lm9yaWdpbj1BcnJheS5mcm9tKEEub3JpZ2luKSx0LnNwYWNpbmc9QXJyYXkuZnJvbShBLnNwYWNpbmcpLHQuZGlyZWN0aW9uPUEuZGlyZWN0aW9uLnNsaWNlKCksdC5zaXplPUFycmF5LmZyb20oQS5zaXplKSx0Lm1ldGFkYXRhPW5ldyBNYXAoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKEEubWV0YWRhdGEpKSkpLEEuZGF0YSE9PW51bGwpaWYodHlwZW9mIGU8InUiJiZ0eXBlb2YgZS5jb21wb25lbnRUeXBlPCJ1IiYmZS5jb21wb25lbnRUeXBlIT09QS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSlzd2l0Y2goQS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSl7Y2FzZSBkLlVJbnQ4OmNhc2UgZC5JbnQ4OmNhc2UgZC5VSW50MTY6Y2FzZSBkLkludDE2OmNhc2UgZC5VSW50MzI6Y2FzZSBkLkludDMyOmNhc2UgUi5GbG9hdDMyOmNhc2UgUi5GbG9hdDY0OnN3aXRjaCh0LmltYWdlVHlwZS5jb21wb25lbnRUeXBlKXtjYXNlIGQuVUludDg6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3QuZGF0YT1uZXcgVWludDhBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgVWludDhBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2UgZC5JbnQ4OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXt0LmRhdGE9bmV3IEludDhBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgSW50OEFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSBkLlVJbnQxNjppZihBLmRhdGEgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxBLmRhdGEgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSl7dC5kYXRhPW5ldyBVaW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgVWludDE2QXJyYXkoQS5kYXRhKTticmVhaztjYXNlIGQuSW50MTY6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3QuZGF0YT1uZXcgSW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgSW50MTZBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2UgZC5VSW50MzI6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3QuZGF0YT1uZXcgVWludDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09TnVtYmVyKEEuZGF0YVtyXSl9ZWxzZSB0LmRhdGE9bmV3IFVpbnQzMkFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSBkLkludDMyOmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXt0LmRhdGE9bmV3IEludDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09TnVtYmVyKEEuZGF0YVtyXSl9ZWxzZSB0LmRhdGE9bmV3IEludDMyQXJyYXkoQS5kYXRhKTticmVhaztjYXNlIFIuRmxvYXQzMjppZihBLmRhdGEgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxBLmRhdGEgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSl7dC5kYXRhPW5ldyBGbG9hdDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09TnVtYmVyKEEuZGF0YVtyXSl9ZWxzZSB0LmRhdGE9bmV3IEZsb2F0MzJBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2UgUi5GbG9hdDY0OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXt0LmRhdGE9bmV3IEZsb2F0NjRBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgRmxvYXQ2NEFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSBkLlVJbnQ2NDp0LmRhdGE9bmV3IEJpZ1VpbnQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPUJpZ0ludC5hc0ludE4oNjQsQmlnSW50KEEuZGF0YVtyXSkpO2JyZWFrO2Nhc2UgZC5JbnQ2NDp0LmRhdGE9bmV3IEJpZ0ludDY0QXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09QmlnSW50LmFzVWludE4oNjQsQmlnSW50KEEuZGF0YVtyXSkpO2JyZWFrfWJyZWFrO2Nhc2UgZC5VSW50NjQ6Y2FzZSBkLkludDY0OnN3aXRjaCh0LmltYWdlVHlwZS5jb21wb25lbnRUeXBlKXtjYXNlIGQuVUludDg6dC5kYXRhPW5ldyBVaW50OEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5JbnQ4OnQuZGF0YT1uZXcgSW50OEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5VSW50MTY6dC5kYXRhPW5ldyBVaW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKTticmVhaztjYXNlIGQuSW50MTY6dC5kYXRhPW5ldyBJbnQxNkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5VSW50MzI6dC5kYXRhPW5ldyBVaW50MzJBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKTticmVhaztjYXNlIGQuSW50MzI6dC5kYXRhPW5ldyBJbnQzMkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgUi5GbG9hdDMyOnQuZGF0YT1uZXcgRmxvYXQzMkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgUi5GbG9hdDY0OnQuZGF0YT1uZXcgRmxvYXQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5VSW50NjQ6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpdC5kYXRhPW5ldyBCaWdVaW50NjRBcnJheShBLmRhdGEpO2Vsc2V7dC5kYXRhPW5ldyBCaWdVaW50NjRBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1CaWdJbnQuYXNVaW50Tig2NCxCaWdJbnQoQS5kYXRhW3JdKSl9YnJlYWs7Y2FzZSBkLkludDY0OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXQuZGF0YT1uZXcgQmlnSW50NjRBcnJheShBLmRhdGEpO2Vsc2V7dC5kYXRhPW5ldyBCaWdJbnQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPUJpZ0ludC5hc0ludE4oNjQsQmlnSW50KEEuZGF0YVtyXSkpfWJyZWFrfWJyZWFrfWVsc2V7bGV0IHI9QS5kYXRhLmNvbnN0cnVjdG9yO3QuZGF0YT1uZXcgcihBLmRhdGEubGVuZ3RoKSx0LmRhdGEhPW51bGwmJnQuZGF0YS5zZXQoQS5kYXRhLDApfXJldHVybiB0fXZhciB1QT1ySTt2YXIgZ0k9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LGg9Z0k7dmFyIE1lPVN5bWJvbCgiQ29tbGluay5wcm94eSIpLGlJPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLFhBPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxaQT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIikseUE9U3ltYm9sKCJDb21saW5rLnRocm93biIpLFllPUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLG9JPXtjYW5IYW5kbGU6QT0+WWUoQSkmJkFbTWVdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6ZSxwb3J0MjpJfT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIHFlKEEsZSksW0ksW0ldXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSx6QShBKX19LGFJPXtjYW5IYW5kbGU6QT0+WWUoQSkmJnlBIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IGU7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTpBfSxbZSxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSxIZT1uZXcgTWFwKFtbInByb3h5IixvSV0sWyJ0aHJvdyIsYUldXSk7ZnVuY3Rpb24gbkkoQSxlKXtmb3IobGV0IEkgb2YgQSlpZihlPT09SXx8ST09PSIqInx8SSBpbnN0YW5jZW9mIFJlZ0V4cCYmSS50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIHFlKEEsZT1nbG9iYWxUaGlzLEk9WyIqIl0pe2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gdChyKXtpZighcnx8IXIuZGF0YSlyZXR1cm47aWYoIW5JKEksci5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luICcke3Iub3JpZ2lufScgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOmcsdHlwZTppLHBhdGg6c309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sci5kYXRhKSxFPShyLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKFApLEM7dHJ5e2xldCBhPXMuc2xpY2UoMCwtMSkucmVkdWNlKChsLEIpPT5sW0JdLEEpLG49cy5yZWR1Y2UoKGwsQik9PmxbQl0sQSk7c3dpdGNoKGkpe2Nhc2UiR0VUIjpDPW47YnJlYWs7Y2FzZSJTRVQiOmFbcy5zbGljZSgtMSlbMF1dPVAoci5kYXRhLnZhbHVlKSxDPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOkM9bi5hcHBseShhLEUpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGw9bmV3IG4oLi4uRSk7Qz1FSShsKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmwscG9ydDI6Qn09bmV3IE1lc3NhZ2VDaGFubmVsO3FlKEEsQiksQz1fQShsLFtsXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjpDPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2goYSl7Qz17dmFsdWU6YSxbeUFdOjB9fVByb21pc2UucmVzb2x2ZShDKS5jYXRjaChhPT4oe3ZhbHVlOmEsW3lBXTowfSkpLnRoZW4oYT0+e2xldFtuLGxdPXBBKGEpO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtpZDpnfSksbCksaT09PSJSRUxFQVNFIiYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdCksVGUoZSksWkEgaW4gQSYmdHlwZW9mIEFbWkFdPT0iZnVuY3Rpb24iJiZBW1pBXSgpKX0pLmNhdGNoKGE9PntsZXRbbixsXT1wQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW3lBXTowfSk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2lkOmd9KSxsKX0pfSksZS5zdGFydCYmZS5zdGFydCgpfWZ1bmN0aW9uIHNJKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIFRlKEEpe3NJKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gekEoQSxlKXtyZXR1cm4gVkEoQSxbXSxlKX1mdW5jdGlvbiBkQShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24geGUoQSl7cmV0dXJuIGooQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57VGUoQSl9KX12YXIgaEE9bmV3IFdlYWtNYXAsREE9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IGU9KGhBLmdldChBKXx8MCktMTtoQS5zZXQoQSxlKSxlPT09MCYmeGUoQSl9KTtmdW5jdGlvbiBCSShBLGUpe2xldCBJPShoQS5nZXQoZSl8fDApKzE7aEEuc2V0KGUsSSksREEmJkRBLnJlZ2lzdGVyKEEsZSxBKX1mdW5jdGlvbiBDSShBKXtEQSYmREEudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBWQShBLGU9W10sST1mdW5jdGlvbigpe30pe2xldCB0PSExLHI9bmV3IFByb3h5KEkse2dldChnLGkpe2lmKGRBKHQpLGk9PT1YQSlyZXR1cm4oKT0+e0NJKHIpLHhlKEEpLHQ9ITB9O2lmKGk9PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+cn07bGV0IHM9aihBLHt0eXBlOiJHRVQiLHBhdGg6ZS5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oUCk7cmV0dXJuIHMudGhlbi5iaW5kKHMpfXJldHVybiBWQShBLFsuLi5lLGldKX0sc2V0KGcsaSxzKXtkQSh0KTtsZXRbRSxDXT1wQShzKTtyZXR1cm4gaihBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLmUsaV0ubWFwKGE9PmEudG9TdHJpbmcoKSksdmFsdWU6RX0sQykudGhlbihQKX0sYXBwbHkoZyxpLHMpe2RBKHQpO2xldCBFPWVbZS5sZW5ndGgtMV07aWYoRT09PWlJKXJldHVybiBqKEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oUCk7aWYoRT09PSJiaW5kIilyZXR1cm4gVkEoQSxlLnNsaWNlKDAsLTEpKTtsZXRbQyxhXT1KZShzKTtyZXR1cm4gaihBLHt0eXBlOiJBUFBMWSIscGF0aDplLm1hcChuPT5uLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpDfSxhKS50aGVuKFApfSxjb25zdHJ1Y3QoZyxpKXtkQSh0KTtsZXRbcyxFXT1KZShpKTtyZXR1cm4gaihBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6ZS5tYXAoQz0+Qy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6c30sRSkudGhlbihQKX19KTtyZXR1cm4gQkkocixBKSxyfWZ1bmN0aW9uIFFJKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIEplKEEpe2xldCBlPUEubWFwKHBBKTtyZXR1cm5bZS5tYXAoST0+SVswXSksUUkoZS5tYXAoST0+SVsxXSkpXX12YXIgS2U9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gX0EoQSxlKXtyZXR1cm4gS2Uuc2V0KEEsZSksQX1mdW5jdGlvbiBFSShBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbTWVdOiEwfSl9ZnVuY3Rpb24gcEEoQSl7Zm9yKGxldFtlLEldb2YgSGUpaWYoSS5jYW5IYW5kbGUoQSkpe2xldFt0LHJdPUkuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTplLHZhbHVlOnR9LHJdfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxLZS5nZXQoQSl8fFtdXX1mdW5jdGlvbiBQKEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuIEhlLmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24gaihBLGUsSSl7cmV0dXJuIG5ldyBQcm9taXNlKHQ9PntsZXQgcj1jSSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gZyhpKXshaS5kYXRhfHwhaS5kYXRhLmlkfHxpLmRhdGEuaWQhPT1yfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixnKSx0KGkuZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6cn0sZSksSSl9KX1mdW5jdGlvbiBjSSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gdEEoQSxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShlLGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzpsSX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6QWV9PU9iamVjdCxtQT0oQT0+ZT0+e2xldCBJPWxJLmNhbGwoZSk7cmV0dXJuIEFbSV18fChBW0ldPUkuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxiPUE9PihBPUEudG9Mb3dlckNhc2UoKSxlPT5tQShlKT09PUEpLFNBPUE9PmU9PnR5cGVvZiBlPT09QSx7aXNBcnJheTp2fT1BcnJheSxJQT1TQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gZkkoQSl7cmV0dXJuIEEhPT1udWxsJiYhSUEoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhSUEoQS5jb25zdHJ1Y3RvcikmJkcoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIFdlPWIoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gdUkoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZXZShBLmJ1ZmZlciksZX12YXIgZEk9U0EoInN0cmluZyIpLEc9U0EoImZ1bmN0aW9uIiksamU9U0EoIm51bWJlciIpLEZBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIseUk9QT0+QT09PSEwfHxBPT09ITEsd0E9QT0+e2lmKG1BKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IGU9QWUoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEoU3ltYm9sLnRvU3RyaW5nVGFnIGluIEEpJiYhKFN5bWJvbC5pdGVyYXRvciBpbiBBKX0saEk9YigiRGF0ZSIpLERJPWIoIkZpbGUiKSxwST1iKCJCbG9iIiksd0k9YigiRmlsZUxpc3QiKSxtST1BPT5GQShBKSYmRyhBLnBpcGUpLFNJPUE9PntsZXQgZTtyZXR1cm4gQSYmKHR5cGVvZiBGb3JtRGF0YT09ImZ1bmN0aW9uIiYmQSBpbnN0YW5jZW9mIEZvcm1EYXRhfHxHKEEuYXBwZW5kKSYmKChlPW1BKEEpKT09PSJmb3JtZGF0YSJ8fGU9PT0ib2JqZWN0IiYmRyhBLnRvU3RyaW5nKSYmQS50b1N0cmluZygpPT09IltvYmplY3QgRm9ybURhdGFdIikpfSxGST1iKCJVUkxTZWFyY2hQYXJhbXMiKSxbUkksVUksTkksa0ldPVsiUmVhZGFibGVTdHJlYW0iLCJSZXF1ZXN0IiwiUmVzcG9uc2UiLCJIZWFkZXJzIl0ubWFwKGIpLEdJPUE9PkEudHJpbT9BLnRyaW0oKTpBLnJlcGxhY2UoL15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLCIiKTtmdW5jdGlvbiByQShBLGUse2FsbE93bktleXM6ST0hMX09e30pe2lmKEE9PT1udWxsfHx0eXBlb2YgQT4idSIpcmV0dXJuO2xldCB0LHI7aWYodHlwZW9mIEEhPSJvYmplY3QiJiYoQT1bQV0pLHYoQSkpZm9yKHQ9MCxyPUEubGVuZ3RoO3Q8cjt0KyspZS5jYWxsKG51bGwsQVt0XSx0LEEpO2Vsc2V7bGV0IGc9ST9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxpPWcubGVuZ3RoLHM7Zm9yKHQ9MDt0PGk7dCsrKXM9Z1t0XSxlLmNhbGwobnVsbCxBW3NdLHMsQSl9fWZ1bmN0aW9uIHZlKEEsZSl7ZT1lLnRvTG93ZXJDYXNlKCk7bGV0IEk9T2JqZWN0LmtleXMoQSksdD1JLmxlbmd0aCxyO2Zvcig7dC0tID4wOylpZihyPUlbdF0sZT09PXIudG9Mb3dlckNhc2UoKSlyZXR1cm4gcjtyZXR1cm4gbnVsbH12YXIgVz10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLFplPUE9PiFJQShBKSYmQSE9PVc7ZnVuY3Rpb24gJEEoKXtsZXR7Y2FzZWxlc3M6QX09WmUodGhpcykmJnRoaXN8fHt9LGU9e30sST0odCxyKT0+e2xldCBnPUEmJnZlKGUscil8fHI7d0EoZVtnXSkmJndBKHQpP2VbZ109JEEoZVtnXSx0KTp3QSh0KT9lW2ddPSRBKHt9LHQpOnYodCk/ZVtnXT10LnNsaWNlKCk6ZVtnXT10fTtmb3IobGV0IHQ9MCxyPWFyZ3VtZW50cy5sZW5ndGg7dDxyO3QrKylhcmd1bWVudHNbdF0mJnJBKGFyZ3VtZW50c1t0XSxJKTtyZXR1cm4gZX12YXIgYkk9KEEsZSxJLHthbGxPd25LZXlzOnR9PXt9KT0+KHJBKGUsKHIsZyk9PntJJiZHKHIpP0FbZ109dEEocixJKTpBW2ddPXJ9LHthbGxPd25LZXlzOnR9KSxBKSxMST1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLEpJPShBLGUsSSx0KT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUsdCksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLEkmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsSSl9LE1JPShBLGUsSSx0KT0+e2xldCByLGcsaSxzPXt9O2lmKGU9ZXx8e30sQT09bnVsbClyZXR1cm4gZTtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxnPXIubGVuZ3RoO2ctLSA+MDspaT1yW2ddLCghdHx8dChpLEEsZSkpJiYhc1tpXSYmKGVbaV09QVtpXSxzW2ldPSEwKTtBPUkhPT0hMSYmQWUoQSl9d2hpbGUoQSYmKCFJfHxJKEEsZSkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LFlJPShBLGUsSSk9PntBPVN0cmluZyhBKSwoST09PXZvaWQgMHx8ST5BLmxlbmd0aCkmJihJPUEubGVuZ3RoKSxJLT1lLmxlbmd0aDtsZXQgdD1BLmluZGV4T2YoZSxJKTtyZXR1cm4gdCE9PS0xJiZ0PT09SX0sSEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHYoQSkpcmV0dXJuIEE7bGV0IGU9QS5sZW5ndGg7aWYoIWplKGUpKXJldHVybiBudWxsO2xldCBJPW5ldyBBcnJheShlKTtmb3IoO2UtLSA+MDspSVtlXT1BW2VdO3JldHVybiBJfSxxST0oQT0+ZT0+QSYmZSBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmQWUoVWludDhBcnJheSkpLFRJPShBLGUpPT57bGV0IHQ9KEEmJkFbU3ltYm9sLml0ZXJhdG9yXSkuY2FsbChBKSxyO2Zvcig7KHI9dC5uZXh0KCkpJiYhci5kb25lOyl7bGV0IGc9ci52YWx1ZTtlLmNhbGwoQSxnWzBdLGdbMV0pfX0seEk9KEEsZSk9PntsZXQgSSx0PVtdO2Zvcig7KEk9QS5leGVjKGUpKSE9PW51bGw7KXQucHVzaChJKTtyZXR1cm4gdH0sS0k9YigiSFRNTEZvcm1FbGVtZW50IiksT0k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24oSSx0LHIpe3JldHVybiB0LnRvVXBwZXJDYXNlKCkrcn0pLFBlPSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsSSk9PkEuY2FsbChlLEkpKShPYmplY3QucHJvdG90eXBlKSxQST1iKCJSZWdFeHAiKSxWZT0oQSxlKT0+e2xldCBJPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLHQ9e307ckEoSSwocixnKT0+e2xldCBpOyhpPWUocixnLEEpKSE9PSExJiYodFtnXT1pfHxyKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsdCl9LFdJPUE9PntWZShBLChlLEkpPT57aWYoRyhBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKEkpIT09LTEpcmV0dXJuITE7bGV0IHQ9QVtJXTtpZihHKHQpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrSSsiJyIpfSl9fSl9LGpJPShBLGUpPT57bGV0IEk9e30sdD1yPT57ci5mb3JFYWNoKGc9PntJW2ddPSEwfSl9O3JldHVybiB2KEEpP3QoQSk6dChTdHJpbmcoQSkuc3BsaXQoZSkpLEl9LHZJPSgpPT57fSxaST0oQSxlKT0+QSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKEE9K0EpP0E6ZTtmdW5jdGlvbiBWSShBKXtyZXR1cm4hIShBJiZHKEEuYXBwZW5kKSYmQVtTeW1ib2wudG9TdHJpbmdUYWddPT09IkZvcm1EYXRhIiYmQVtTeW1ib2wuaXRlcmF0b3JdKX12YXIgWEk9QT0+e2xldCBlPW5ldyBBcnJheSgxMCksST0odCxyKT0+e2lmKEZBKHQpKXtpZihlLmluZGV4T2YodCk+PTApcmV0dXJuO2lmKCEoInRvSlNPTiJpbiB0KSl7ZVtyXT10O2xldCBnPXYodCk/W106e307cmV0dXJuIHJBKHQsKGkscyk9PntsZXQgRT1JKGkscisxKTshSUEoRSkmJihnW3NdPUUpfSksZVtyXT12b2lkIDAsZ319cmV0dXJuIHR9O3JldHVybiBJKEEsMCl9LHpJPWIoIkFzeW5jRnVuY3Rpb24iKSxfST1BPT5BJiYoRkEoQSl8fEcoQSkpJiZHKEEudGhlbikmJkcoQS5jYXRjaCksWGU9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygoSSx0KT0+KFcuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6cixkYXRhOmd9KT0+e3I9PT1XJiZnPT09SSYmdC5sZW5ndGgmJnQuc2hpZnQoKSgpfSwhMSkscj0+e3QucHVzaChyKSxXLnBvc3RNZXNzYWdlKEksIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOkk9PnNldFRpbWVvdXQoSSkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsRyhXLnBvc3RNZXNzYWdlKSksJEk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKFcpOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8WGUsbz17aXNBcnJheTp2LGlzQXJyYXlCdWZmZXI6V2UsaXNCdWZmZXI6ZkksaXNGb3JtRGF0YTpTSSxpc0FycmF5QnVmZmVyVmlldzp1SSxpc1N0cmluZzpkSSxpc051bWJlcjpqZSxpc0Jvb2xlYW46eUksaXNPYmplY3Q6RkEsaXNQbGFpbk9iamVjdDp3QSxpc1JlYWRhYmxlU3RyZWFtOlJJLGlzUmVxdWVzdDpVSSxpc1Jlc3BvbnNlOk5JLGlzSGVhZGVyczprSSxpc1VuZGVmaW5lZDpJQSxpc0RhdGU6aEksaXNGaWxlOkRJLGlzQmxvYjpwSSxpc1JlZ0V4cDpQSSxpc0Z1bmN0aW9uOkcsaXNTdHJlYW06bUksaXNVUkxTZWFyY2hQYXJhbXM6RkksaXNUeXBlZEFycmF5OnFJLGlzRmlsZUxpc3Q6d0ksZm9yRWFjaDpyQSxtZXJnZTokQSxleHRlbmQ6YkksdHJpbTpHSSxzdHJpcEJPTTpMSSxpbmhlcml0czpKSSx0b0ZsYXRPYmplY3Q6TUksa2luZE9mOm1BLGtpbmRPZlRlc3Q6YixlbmRzV2l0aDpZSSx0b0FycmF5OkhJLGZvckVhY2hFbnRyeTpUSSxtYXRjaEFsbDp4SSxpc0hUTUxGb3JtOktJLGhhc093blByb3BlcnR5OlBlLGhhc093blByb3A6UGUscmVkdWNlRGVzY3JpcHRvcnM6VmUsZnJlZXplTWV0aG9kczpXSSx0b09iamVjdFNldDpqSSx0b0NhbWVsQ2FzZTpPSSxub29wOnZJLHRvRmluaXRlTnVtYmVyOlpJLGZpbmRLZXk6dmUsZ2xvYmFsOlcsaXNDb250ZXh0RGVmaW5lZDpaZSxpc1NwZWNDb21wbGlhbnRGb3JtOlZJLHRvSlNPTk9iamVjdDpYSSxpc0FzeW5jRm46ekksaXNUaGVuYWJsZTpfSSxzZXRJbW1lZGlhdGU6WGUsYXNhcDokSX07ZnVuY3Rpb24gWihBLGUsSSx0LHIpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsZSYmKHRoaXMuY29kZT1lKSxJJiYodGhpcy5jb25maWc9SSksdCYmKHRoaXMucmVxdWVzdD10KSxyJiYodGhpcy5yZXNwb25zZT1yLHRoaXMuc3RhdHVzPXIuc3RhdHVzP3Iuc3RhdHVzOm51bGwpfW8uaW5oZXJpdHMoWixFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOm8udG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX0pO3ZhciB6ZT1aLnByb3RvdHlwZSxfZT17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiLCJFUlJfTk9UX1NVUFBPUlQiLCJFUlJfSU5WQUxJRF9VUkwiXS5mb3JFYWNoKEE9PntfZVtBXT17dmFsdWU6QX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhaLF9lKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoemUsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7Wi5mcm9tPShBLGUsSSx0LHIsZyk9PntsZXQgaT1PYmplY3QuY3JlYXRlKHplKTtyZXR1cm4gby50b0ZsYXRPYmplY3QoQSxpLGZ1bmN0aW9uKEUpe3JldHVybiBFIT09RXJyb3IucHJvdG90eXBlfSxzPT5zIT09ImlzQXhpb3NFcnJvciIpLFouY2FsbChpLEEubWVzc2FnZSxlLEksdCxyKSxpLmNhdXNlPUEsaS5uYW1lPUEubmFtZSxnJiZPYmplY3QuYXNzaWduKGksZyksaX07dmFyIHU9Wjt2YXIgUkE9bnVsbDtmdW5jdGlvbiBlZShBKXtyZXR1cm4gby5pc1BsYWluT2JqZWN0KEEpfHxvLmlzQXJyYXkoQSl9ZnVuY3Rpb24gQXQoQSl7cmV0dXJuIG8uZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gJGUoQSxlLEkpe3JldHVybiBBP0EuY29uY2F0KGUpLm1hcChmdW5jdGlvbihyLGcpe3JldHVybiByPUF0KHIpLCFJJiZnPyJbIityKyJdIjpyfSkuam9pbihJPyIuIjoiIik6ZX1mdW5jdGlvbiBBcihBKXtyZXR1cm4gby5pc0FycmF5KEEpJiYhQS5zb21lKGVlKX12YXIgZXI9by50b0ZsYXRPYmplY3Qobyx7fSxudWxsLGZ1bmN0aW9uKGUpe3JldHVybi9eaXNbQS1aXS8udGVzdChlKX0pO2Z1bmN0aW9uIHRyKEEsZSxJKXtpZighby5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTtlPWV8fG5ldyhSQXx8Rm9ybURhdGEpLEk9by50b0ZsYXRPYmplY3QoSSx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGYsYyl7cmV0dXJuIW8uaXNVbmRlZmluZWQoY1tmXSl9KTtsZXQgdD1JLm1ldGFUb2tlbnMscj1JLnZpc2l0b3J8fGEsZz1JLmRvdHMsaT1JLmluZGV4ZXMsRT0oSS5CbG9ifHx0eXBlb2YgQmxvYjwidSImJkJsb2IpJiZvLmlzU3BlY0NvbXBsaWFudEZvcm0oZSk7aWYoIW8uaXNGdW5jdGlvbihyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIEMoUSl7aWYoUT09PW51bGwpcmV0dXJuIiI7aWYoby5pc0RhdGUoUSkpcmV0dXJuIFEudG9JU09TdHJpbmcoKTtpZighRSYmby5pc0Jsb2IoUSkpdGhyb3cgbmV3IHUoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIG8uaXNBcnJheUJ1ZmZlcihRKXx8by5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIGEoUSxmLGMpe2xldCB5PVE7aWYoUSYmIWMmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYoby5lbmRzV2l0aChmLCJ7fSIpKWY9dD9mOmYuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKG8uaXNBcnJheShRKSYmQXIoUSl8fChvLmlzRmlsZUxpc3QoUSl8fG8uZW5kc1dpdGgoZiwiW10iKSkmJih5PW8udG9BcnJheShRKSkpcmV0dXJuIGY9QXQoZikseS5mb3JFYWNoKGZ1bmN0aW9uKHcsSCl7IShvLmlzVW5kZWZpbmVkKHcpfHx3PT09bnVsbCkmJmUuYXBwZW5kKGk9PT0hMD8kZShbZl0sSCxnKTppPT09bnVsbD9mOmYrIltdIixDKHcpKX0pLCExfXJldHVybiBlZShRKT8hMDooZS5hcHBlbmQoJGUoYyxmLGcpLEMoUSkpLCExKX1sZXQgbj1bXSxsPU9iamVjdC5hc3NpZ24oZXIse2RlZmF1bHRWaXNpdG9yOmEsY29udmVydFZhbHVlOkMsaXNWaXNpdGFibGU6ZWV9KTtmdW5jdGlvbiBCKFEsZil7aWYoIW8uaXNVbmRlZmluZWQoUSkpe2lmKG4uaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitmLmpvaW4oIi4iKSk7bi5wdXNoKFEpLG8uZm9yRWFjaChRLGZ1bmN0aW9uKHkscCl7KCEoby5pc1VuZGVmaW5lZCh5KXx8eT09PW51bGwpJiZyLmNhbGwoZSx5LG8uaXNTdHJpbmcocCk/cC50cmltKCk6cCxmLGwpKT09PSEwJiZCKHksZj9mLmNvbmNhdChwKTpbcF0pfSksbi5wb3AoKX19aWYoIW8uaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBCKEEpLGV9dmFyIHg9dHI7ZnVuY3Rpb24gZXQoQSl7bGV0IGU9eyIhIjoiJTIxIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwifiI6IiU3RSIsIiUyMCI6IisiLCIlMDAiOiJcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19KX1mdW5jdGlvbiB0dChBLGUpe3RoaXMuX3BhaXJzPVtdLEEmJngoQSx0aGlzLGUpfXZhciBJdD10dC5wcm90b3R5cGU7SXQuYXBwZW5kPWZ1bmN0aW9uKGUsSSl7dGhpcy5fcGFpcnMucHVzaChbZSxJXSl9O0l0LnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCBJPWU/ZnVuY3Rpb24odCl7cmV0dXJuIGUuY2FsbCh0aGlzLHQsZXQpfTpldDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBJKHJbMF0pKyI9IitJKHJbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgVUE9dHQ7ZnVuY3Rpb24gSXIoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIikucmVwbGFjZSgvJTVCL2dpLCJbIikucmVwbGFjZSgvJTVEL2dpLCJdIil9ZnVuY3Rpb24gZ0EoQSxlLEkpe2lmKCFlKXJldHVybiBBO2xldCB0PUkmJkkuZW5jb2RlfHxJcjtvLmlzRnVuY3Rpb24oSSkmJihJPXtzZXJpYWxpemU6SX0pO2xldCByPUkmJkkuc2VyaWFsaXplLGc7aWYocj9nPXIoZSxJKTpnPW8uaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyBVQShlLEkpLnRvU3RyaW5nKHQpLGcpe2xldCBpPUEuaW5kZXhPZigiIyIpO2khPT0tMSYmKEE9QS5zbGljZSgwLGkpKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStnfXJldHVybiBBfXZhciB0ZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsSSx0KXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDpJLHN5bmNocm9ub3VzOnQ/dC5zeW5jaHJvbm91czohMSxydW5XaGVuOnQ/dC5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goZSl7by5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24odCl7dCE9PW51bGwmJmUodCl9KX19LEllPXRlO3ZhciBOQT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIHJ0PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpVQTt2YXIgZ3Q9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciBpdD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBvdD17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczpydCxGb3JtRGF0YTpndCxCbG9iOml0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIGllPXt9O3p0KGllLHtoYXNCcm93c2VyRW52OigpPT5nZSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PnJyLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+Z3IsbmF2aWdhdG9yOigpPT5yZSxvcmlnaW46KCk9PmlyfSk7dmFyIGdlPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLHJlPXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCxycj1nZSYmKCFyZXx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZihyZS5wcm9kdWN0KTwwKSxncj10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsaXI9Z2UmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIEQ9ey4uLmllLC4uLm90fTtmdW5jdGlvbiBvZShBLGUpe3JldHVybiB4KEEsbmV3IEQuY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMsT2JqZWN0LmFzc2lnbih7dmlzaXRvcjpmdW5jdGlvbihJLHQscixnKXtyZXR1cm4gRC5pc05vZGUmJm8uaXNCdWZmZXIoSSk/KHRoaXMuYXBwZW5kKHQsSS50b1N0cmluZygiYmFzZTY0IikpLCExKTpnLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LGUpKX1mdW5jdGlvbiBvcihBKXtyZXR1cm4gby5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csQSkubWFwKGU9PmVbMF09PT0iW10iPyIiOmVbMV18fGVbMF0pfWZ1bmN0aW9uIGFyKEEpe2xldCBlPXt9LEk9T2JqZWN0LmtleXMoQSksdCxyPUkubGVuZ3RoLGc7Zm9yKHQ9MDt0PHI7dCsrKWc9SVt0XSxlW2ddPUFbZ107cmV0dXJuIGV9ZnVuY3Rpb24gbnIoQSl7ZnVuY3Rpb24gZShJLHQscixnKXtsZXQgaT1JW2crK107aWYoaT09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBzPU51bWJlci5pc0Zpbml0ZSgraSksRT1nPj1JLmxlbmd0aDtyZXR1cm4gaT0haSYmby5pc0FycmF5KHIpP3IubGVuZ3RoOmksRT8oby5oYXNPd25Qcm9wKHIsaSk/cltpXT1bcltpXSx0XTpyW2ldPXQsIXMpOigoIXJbaV18fCFvLmlzT2JqZWN0KHJbaV0pKSYmKHJbaV09W10pLGUoSSx0LHJbaV0sZykmJm8uaXNBcnJheShyW2ldKSYmKHJbaV09YXIocltpXSkpLCFzKX1pZihvLmlzRm9ybURhdGEoQSkmJm8uaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgST17fTtyZXR1cm4gby5mb3JFYWNoRW50cnkoQSwodCxyKT0+e2Uob3IodCkscixJLDApfSksSX1yZXR1cm4gbnVsbH12YXIga0E9bnI7ZnVuY3Rpb24gc3IoQSxlLEkpe2lmKG8uaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxvLnRyaW0oQSl9Y2F0Y2godCl7aWYodC5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyB0fXJldHVybihJfHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIGFlPXt0cmFuc2l0aW9uYWw6TkEsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsSSl7bGV0IHQ9SS5nZXRDb250ZW50VHlwZSgpfHwiIixyPXQuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLGc9by5pc09iamVjdChlKTtpZihnJiZvLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSksby5pc0Zvcm1EYXRhKGUpKXJldHVybiByP0pTT04uc3RyaW5naWZ5KGtBKGUpKTplO2lmKG8uaXNBcnJheUJ1ZmZlcihlKXx8by5pc0J1ZmZlcihlKXx8by5pc1N0cmVhbShlKXx8by5pc0ZpbGUoZSl8fG8uaXNCbG9iKGUpfHxvLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoby5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYoby5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gSS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IHM7aWYoZyl7aWYodC5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gb2UoZSx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChzPW8uaXNGaWxlTGlzdChlKSl8fHQuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgRT10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIHgocz97ImZpbGVzW10iOmV9OmUsRSYmbmV3IEUsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiBnfHxyPyhJLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksc3IoZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7bGV0IEk9dGhpcy50cmFuc2l0aW9uYWx8fGFlLnRyYW5zaXRpb25hbCx0PUkmJkkuZm9yY2VkSlNPTlBhcnNpbmcscj10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihvLmlzUmVzcG9uc2UoZSl8fG8uaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZvLmlzU3RyaW5nKGUpJiYodCYmIXRoaXMucmVzcG9uc2VUeXBlfHxyKSl7bGV0IGk9IShJJiZJLnNpbGVudEpTT05QYXJzaW5nKSYmcjt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSl9Y2F0Y2gocyl7aWYoaSl0aHJvdyBzLm5hbWU9PT0iU3ludGF4RXJyb3IiP3UuZnJvbShzLHUuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6c319cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOkQuY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOkQuY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O28uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57YWUuaGVhZGVyc1tBXT17fX0pO3ZhciBWPWFlO3ZhciBCcj1vLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLGF0PUE9PntsZXQgZT17fSxJLHQscjtyZXR1cm4gQSYmQS5zcGxpdChgCmApLmZvckVhY2goZnVuY3Rpb24oaSl7cj1pLmluZGV4T2YoIjoiKSxJPWkuc3Vic3RyaW5nKDAscikudHJpbSgpLnRvTG93ZXJDYXNlKCksdD1pLnN1YnN0cmluZyhyKzEpLnRyaW0oKSwhKCFJfHxlW0ldJiZCcltJXSkmJihJPT09InNldC1jb29raWUiP2VbSV0/ZVtJXS5wdXNoKHQpOmVbSV09W3RdOmVbSV09ZVtJXT9lW0ldKyIsICIrdDp0KX0pLGV9O3ZhciBudD1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIGlBKEEpe3JldHVybiBBJiZTdHJpbmcoQSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gR0EoQSl7cmV0dXJuIEE9PT0hMXx8QT09bnVsbD9BOm8uaXNBcnJheShBKT9BLm1hcChHQSk6U3RyaW5nKEEpfWZ1bmN0aW9uIENyKEEpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCksST0vKFteXHMsOz1dKylccyooPzo9XHMqKFteLDtdKykpPy9nLHQ7Zm9yKDt0PUkuZXhlYyhBKTspZVt0WzFdXT10WzJdO3JldHVybiBlfXZhciBRcj1BPT4vXlstX2EtekEtWjAtOV5gfH4sISMkJSYnKisuXSskLy50ZXN0KEEudHJpbSgpKTtmdW5jdGlvbiBuZShBLGUsSSx0LHIpe2lmKG8uaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsZSxJKTtpZihyJiYoZT1JKSwhIW8uaXNTdHJpbmcoZSkpe2lmKG8uaXNTdHJpbmcodCkpcmV0dXJuIGUuaW5kZXhPZih0KSE9PS0xO2lmKG8uaXNSZWdFeHAodCkpcmV0dXJuIHQudGVzdChlKX19ZnVuY3Rpb24gRXIoQSl7cmV0dXJuIEEudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcZF0pKFx3KikvZywoZSxJLHQpPT5JLnRvVXBwZXJDYXNlKCkrdCl9ZnVuY3Rpb24gY3IoQSxlKXtsZXQgST1vLnRvQ2FtZWxDYXNlKCIgIitlKTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2godD0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLHQrSSx7dmFsdWU6ZnVuY3Rpb24ocixnLGkpe3JldHVybiB0aGlzW3RdLmNhbGwodGhpcyxlLHIsZyxpKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgWD1jbGFzc3tjb25zdHJ1Y3RvcihlKXtlJiZ0aGlzLnNldChlKX1zZXQoZSxJLHQpe2xldCByPXRoaXM7ZnVuY3Rpb24gZyhzLEUsQyl7bGV0IGE9aUEoRSk7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2xldCBuPW8uZmluZEtleShyLGEpOyghbnx8cltuXT09PXZvaWQgMHx8Qz09PSEwfHxDPT09dm9pZCAwJiZyW25dIT09ITEpJiYocltufHxFXT1HQShzKSl9bGV0IGk9KHMsRSk9Pm8uZm9yRWFjaChzLChDLGEpPT5nKEMsYSxFKSk7aWYoby5pc1BsYWluT2JqZWN0KGUpfHxlIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3RvcilpKGUsSSk7ZWxzZSBpZihvLmlzU3RyaW5nKGUpJiYoZT1lLnRyaW0oKSkmJiFRcihlKSlpKGF0KGUpLEkpO2Vsc2UgaWYoby5pc0hlYWRlcnMoZSkpZm9yKGxldFtzLEVdb2YgZS5lbnRyaWVzKCkpZyhFLHMsdCk7ZWxzZSBlIT1udWxsJiZnKEksZSx0KTtyZXR1cm4gdGhpc31nZXQoZSxJKXtpZihlPWlBKGUpLGUpe2xldCB0PW8uZmluZEtleSh0aGlzLGUpO2lmKHQpe2xldCByPXRoaXNbdF07aWYoIUkpcmV0dXJuIHI7aWYoST09PSEwKXJldHVybiBDcihyKTtpZihvLmlzRnVuY3Rpb24oSSkpcmV0dXJuIEkuY2FsbCh0aGlzLHIsdCk7aWYoby5pc1JlZ0V4cChJKSlyZXR1cm4gSS5leGVjKHIpO3Rocm93IG5ldyBUeXBlRXJyb3IoInBhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uIil9fX1oYXMoZSxJKXtpZihlPWlBKGUpLGUpe2xldCB0PW8uZmluZEtleSh0aGlzLGUpO3JldHVybiEhKHQmJnRoaXNbdF0hPT12b2lkIDAmJighSXx8bmUodGhpcyx0aGlzW3RdLHQsSSkpKX1yZXR1cm4hMX1kZWxldGUoZSxJKXtsZXQgdD10aGlzLHI9ITE7ZnVuY3Rpb24gZyhpKXtpZihpPWlBKGkpLGkpe2xldCBzPW8uZmluZEtleSh0LGkpO3MmJighSXx8bmUodCx0W3NdLHMsSSkpJiYoZGVsZXRlIHRbc10scj0hMCl9fXJldHVybiBvLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKGcpOmcoZSkscn1jbGVhcihlKXtsZXQgST1PYmplY3Qua2V5cyh0aGlzKSx0PUkubGVuZ3RoLHI9ITE7Zm9yKDt0LS07KXtsZXQgZz1JW3RdOyghZXx8bmUodGhpcyx0aGlzW2ddLGcsZSwhMCkpJiYoZGVsZXRlIHRoaXNbZ10scj0hMCl9cmV0dXJuIHJ9bm9ybWFsaXplKGUpe2xldCBJPXRoaXMsdD17fTtyZXR1cm4gby5mb3JFYWNoKHRoaXMsKHIsZyk9PntsZXQgaT1vLmZpbmRLZXkodCxnKTtpZihpKXtJW2ldPUdBKHIpLGRlbGV0ZSBJW2ddO3JldHVybn1sZXQgcz1lP0VyKGcpOlN0cmluZyhnKS50cmltKCk7cyE9PWcmJmRlbGV0ZSBJW2ddLElbc109R0EociksdFtzXT0hMH0pLHRoaXN9Y29uY2F0KC4uLmUpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLmNvbmNhdCh0aGlzLC4uLmUpfXRvSlNPTihlKXtsZXQgST1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBvLmZvckVhY2godGhpcywodCxyKT0+e3QhPW51bGwmJnQhPT0hMSYmKElbcl09ZSYmby5pc0FycmF5KHQpP3Quam9pbigiLCAiKTp0KX0pLEl9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSlbU3ltYm9sLml0ZXJhdG9yXSgpfXRvU3RyaW5nKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpLm1hcCgoW2UsSV0pPT5lKyI6ICIrSSkuam9pbihgCmApfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLkkpe2xldCB0PW5ldyB0aGlzKGUpO3JldHVybiBJLmZvckVhY2gocj0+dC5zZXQocikpLHR9c3RhdGljIGFjY2Vzc29yKGUpe2xldCB0PSh0aGlzW250XT10aGlzW250XT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLHI9dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gZyhpKXtsZXQgcz1pQShpKTt0W3NdfHwoY3IocixpKSx0W3NdPSEwKX1yZXR1cm4gby5pc0FycmF5KGUpP2UuZm9yRWFjaChnKTpnKGUpLHRoaXN9fTtYLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtvLnJlZHVjZURlc2NyaXB0b3JzKFgucHJvdG90eXBlLCh7dmFsdWU6QX0sZSk9PntsZXQgST1lWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKTtyZXR1cm57Z2V0OigpPT5BLHNldCh0KXt0aGlzW0ldPXR9fX0pO28uZnJlZXplTWV0aG9kcyhYKTt2YXIgRj1YO2Z1bmN0aW9uIG9BKEEsZSl7bGV0IEk9dGhpc3x8Vix0PWV8fEkscj1GLmZyb20odC5oZWFkZXJzKSxnPXQuZGF0YTtyZXR1cm4gby5mb3JFYWNoKEEsZnVuY3Rpb24ocyl7Zz1zLmNhbGwoSSxnLHIubm9ybWFsaXplKCksZT9lLnN0YXR1czp2b2lkIDApfSksci5ub3JtYWxpemUoKSxnfWZ1bmN0aW9uIGFBKEEpe3JldHVybiEhKEEmJkEuX19DQU5DRUxfXyl9ZnVuY3Rpb24gc3QoQSxlLEkpe3UuY2FsbCh0aGlzLEE/PyJjYW5jZWxlZCIsdS5FUlJfQ0FOQ0VMRUQsZSxJKSx0aGlzLm5hbWU9IkNhbmNlbGVkRXJyb3IifW8uaW5oZXJpdHMoc3QsdSx7X19DQU5DRUxfXzohMH0pO3ZhciBNPXN0O2Z1bmN0aW9uIG5BKEEsZSxJKXtsZXQgdD1JLmNvbmZpZy52YWxpZGF0ZVN0YXR1czshSS5zdGF0dXN8fCF0fHx0KEkuc3RhdHVzKT9BKEkpOmUobmV3IHUoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIitJLnN0YXR1cyxbdS5FUlJfQkFEX1JFUVVFU1QsdS5FUlJfQkFEX1JFU1BPTlNFXVtNYXRoLmZsb29yKEkuc3RhdHVzLzEwMCktNF0sSS5jb25maWcsSS5yZXF1ZXN0LEkpKX1mdW5jdGlvbiBzZShBKXtsZXQgZT0vXihbLStcd117MSwyNX0pKDo/XC9cL3w6KS8uZXhlYyhBKTtyZXR1cm4gZSYmZVsxXXx8IiJ9ZnVuY3Rpb24gbHIoQSxlKXtBPUF8fDEwO2xldCBJPW5ldyBBcnJheShBKSx0PW5ldyBBcnJheShBKSxyPTAsZz0wLGk7cmV0dXJuIGU9ZSE9PXZvaWQgMD9lOjFlMyxmdW5jdGlvbihFKXtsZXQgQz1EYXRlLm5vdygpLGE9dFtnXTtpfHwoaT1DKSxJW3JdPUUsdFtyXT1DO2xldCBuPWcsbD0wO2Zvcig7biE9PXI7KWwrPUlbbisrXSxuPW4lQTtpZihyPShyKzEpJUEscj09PWcmJihnPShnKzEpJUEpLEMtaTxlKXJldHVybjtsZXQgQj1hJiZDLWE7cmV0dXJuIEI/TWF0aC5yb3VuZChsKjFlMy9CKTp2b2lkIDB9fXZhciBCdD1scjtmdW5jdGlvbiBmcihBLGUpe2xldCBJPTAsdD0xZTMvZSxyLGcsaT0oQyxhPURhdGUubm93KCkpPT57ST1hLHI9bnVsbCxnJiYoY2xlYXJUaW1lb3V0KGcpLGc9bnVsbCksQS5hcHBseShudWxsLEMpfTtyZXR1cm5bKC4uLkMpPT57bGV0IGE9RGF0ZS5ub3coKSxuPWEtSTtuPj10P2koQyxhKToocj1DLGd8fChnPXNldFRpbWVvdXQoKCk9PntnPW51bGwsaShyKX0sdC1uKSkpfSwoKT0+ciYmaShyKV19dmFyIEN0PWZyO3ZhciB6PShBLGUsST0zKT0+e2xldCB0PTAscj1CdCg1MCwyNTApO3JldHVybiBDdChnPT57bGV0IGk9Zy5sb2FkZWQscz1nLmxlbmd0aENvbXB1dGFibGU/Zy50b3RhbDp2b2lkIDAsRT1pLXQsQz1yKEUpLGE9aTw9czt0PWk7bGV0IG49e2xvYWRlZDppLHRvdGFsOnMscHJvZ3Jlc3M6cz9pL3M6dm9pZCAwLGJ5dGVzOkUscmF0ZTpDfHx2b2lkIDAsZXN0aW1hdGVkOkMmJnMmJmE/KHMtaSkvQzp2b2lkIDAsZXZlbnQ6ZyxsZW5ndGhDb21wdXRhYmxlOnMhPW51bGwsW2U/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0Eobil9LEkpfSxCZT0oQSxlKT0+e2xldCBJPUEhPW51bGw7cmV0dXJuW3Q9PmVbMF0oe2xlbmd0aENvbXB1dGFibGU6SSx0b3RhbDpBLGxvYWRlZDp0fSksZVsxXV19LENlPUE9PiguLi5lKT0+by5hc2FwKCgpPT5BKC4uLmUpKTt2YXIgUXQ9RC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLGUpPT5JPT4oST1uZXcgVVJMKEksRC5vcmlnaW4pLEEucHJvdG9jb2w9PT1JLnByb3RvY29sJiZBLmhvc3Q9PT1JLmhvc3QmJihlfHxBLnBvcnQ9PT1JLnBvcnQpKSkobmV3IFVSTChELm9yaWdpbiksRC5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoRC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBFdD1ELmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSxlLEksdCxyLGcpe2xldCBpPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQoZSldO28uaXNOdW1iZXIoSSkmJmkucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKEkpLnRvR01UU3RyaW5nKCkpLG8uaXNTdHJpbmcodCkmJmkucHVzaCgicGF0aD0iK3QpLG8uaXNTdHJpbmcocikmJmkucHVzaCgiZG9tYWluPSIrciksZz09PSEwJiZpLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1pLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IGU9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMqKSgiK0ErIik9KFteO10qKSIpKTtyZXR1cm4gZT9kZWNvZGVVUklDb21wb25lbnQoZVszXSk6bnVsbH0scmVtb3ZlKEEpe3RoaXMud3JpdGUoQSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiBRZShBKXtyZXR1cm4vXihbYS16XVthLXpcZCtcLS5dKjopP1wvXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIEVlKEEsZSl7cmV0dXJuIGU/QS5yZXBsYWNlKC9cLz9cLyQvLCIiKSsiLyIrZS5yZXBsYWNlKC9eXC8rLywiIik6QX1mdW5jdGlvbiBzQShBLGUsSSl7bGV0IHQ9IVFlKGUpO3JldHVybiBBJiYodHx8ST09ITEpP0VlKEEsZSk6ZX12YXIgY3Q9QT0+QSBpbnN0YW5jZW9mIEY/ey4uLkF9OkE7ZnVuY3Rpb24gTChBLGUpe2U9ZXx8e307bGV0IEk9e307ZnVuY3Rpb24gdChDLGEsbixsKXtyZXR1cm4gby5pc1BsYWluT2JqZWN0KEMpJiZvLmlzUGxhaW5PYmplY3QoYSk/by5tZXJnZS5jYWxsKHtjYXNlbGVzczpsfSxDLGEpOm8uaXNQbGFpbk9iamVjdChhKT9vLm1lcmdlKHt9LGEpOm8uaXNBcnJheShhKT9hLnNsaWNlKCk6YX1mdW5jdGlvbiByKEMsYSxuLGwpe2lmKG8uaXNVbmRlZmluZWQoYSkpe2lmKCFvLmlzVW5kZWZpbmVkKEMpKXJldHVybiB0KHZvaWQgMCxDLG4sbCl9ZWxzZSByZXR1cm4gdChDLGEsbixsKX1mdW5jdGlvbiBnKEMsYSl7aWYoIW8uaXNVbmRlZmluZWQoYSkpcmV0dXJuIHQodm9pZCAwLGEpfWZ1bmN0aW9uIGkoQyxhKXtpZihvLmlzVW5kZWZpbmVkKGEpKXtpZighby5pc1VuZGVmaW5lZChDKSlyZXR1cm4gdCh2b2lkIDAsQyl9ZWxzZSByZXR1cm4gdCh2b2lkIDAsYSl9ZnVuY3Rpb24gcyhDLGEsbil7aWYobiBpbiBlKXJldHVybiB0KEMsYSk7aWYobiBpbiBBKXJldHVybiB0KHZvaWQgMCxDKX1sZXQgRT17dXJsOmcsbWV0aG9kOmcsZGF0YTpnLGJhc2VVUkw6aSx0cmFuc2Zvcm1SZXF1ZXN0OmksdHJhbnNmb3JtUmVzcG9uc2U6aSxwYXJhbXNTZXJpYWxpemVyOmksdGltZW91dDppLHRpbWVvdXRNZXNzYWdlOmksd2l0aENyZWRlbnRpYWxzOmksd2l0aFhTUkZUb2tlbjppLGFkYXB0ZXI6aSxyZXNwb25zZVR5cGU6aSx4c3JmQ29va2llTmFtZTppLHhzcmZIZWFkZXJOYW1lOmksb25VcGxvYWRQcm9ncmVzczppLG9uRG93bmxvYWRQcm9ncmVzczppLGRlY29tcHJlc3M6aSxtYXhDb250ZW50TGVuZ3RoOmksbWF4Qm9keUxlbmd0aDppLGJlZm9yZVJlZGlyZWN0OmksdHJhbnNwb3J0OmksaHR0cEFnZW50OmksaHR0cHNBZ2VudDppLGNhbmNlbFRva2VuOmksc29ja2V0UGF0aDppLHJlc3BvbnNlRW5jb2Rpbmc6aSx2YWxpZGF0ZVN0YXR1czpzLGhlYWRlcnM6KEMsYSxuKT0+cihjdChDKSxjdChhKSxuLCEwKX07cmV0dXJuIG8uZm9yRWFjaChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LEEsZSkpLGZ1bmN0aW9uKGEpe2xldCBuPUVbYV18fHIsbD1uKEFbYV0sZVthXSxhKTtvLmlzVW5kZWZpbmVkKGwpJiZuIT09c3x8KElbYV09bCl9KSxJfXZhciBiQT1BPT57bGV0IGU9TCh7fSxBKSx7ZGF0YTpJLHdpdGhYU1JGVG9rZW46dCx4c3JmSGVhZGVyTmFtZTpyLHhzcmZDb29raWVOYW1lOmcsaGVhZGVyczppLGF1dGg6c309ZTtlLmhlYWRlcnM9aT1GLmZyb20oaSksZS51cmw9Z0Eoc0EoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplcikscyYmaS5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKHMudXNlcm5hbWV8fCIiKSsiOiIrKHMucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHMucGFzc3dvcmQpKToiIikpKTtsZXQgRTtpZihvLmlzRm9ybURhdGEoSSkpe2lmKEQuaGFzU3RhbmRhcmRCcm93c2VyRW52fHxELmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilpLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZigoRT1pLmdldENvbnRlbnRUeXBlKCkpIT09ITEpe2xldFtDLC4uLmFdPUU/RS5zcGxpdCgiOyIpLm1hcChuPT5uLnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pOltdO2kuc2V0Q29udGVudFR5cGUoW0N8fCJtdWx0aXBhcnQvZm9ybS1kYXRhIiwuLi5hXS5qb2luKCI7ICIpKX19aWYoRC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJih0JiZvLmlzRnVuY3Rpb24odCkmJih0PXQoZSkpLHR8fHQhPT0hMSYmUXQoZS51cmwpKSl7bGV0IEM9ciYmZyYmRXQucmVhZChnKTtDJiZpLnNldChyLEMpfXJldHVybiBlfTt2YXIgdXI9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixsdD11ciYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEksdCl7bGV0IHI9YkEoQSksZz1yLmRhdGEsaT1GLmZyb20oci5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOnMsb25VcGxvYWRQcm9ncmVzczpFLG9uRG93bmxvYWRQcm9ncmVzczpDfT1yLGEsbixsLEIsUTtmdW5jdGlvbiBmKCl7QiYmQigpLFEmJlEoKSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKGEpLHIuc2lnbmFsJiZyLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsYSl9bGV0IGM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Mub3BlbihyLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHIudXJsLCEwKSxjLnRpbWVvdXQ9ci50aW1lb3V0O2Z1bmN0aW9uIHkoKXtpZighYylyZXR1cm47bGV0IHc9Ri5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gYyYmYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksTj17ZGF0YTohc3x8cz09PSJ0ZXh0Inx8cz09PSJqc29uIj9jLnJlc3BvbnNlVGV4dDpjLnJlc3BvbnNlLHN0YXR1czpjLnN0YXR1cyxzdGF0dXNUZXh0OmMuc3RhdHVzVGV4dCxoZWFkZXJzOncsY29uZmlnOkEscmVxdWVzdDpjfTtuQShmdW5jdGlvbihPKXtJKE8pLGYoKX0sZnVuY3Rpb24oTyl7dChPKSxmKCl9LE4pLGM9bnVsbH0ib25sb2FkZW5kImluIGM/Yy5vbmxvYWRlbmQ9eTpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFjfHxjLnJlYWR5U3RhdGUhPT00fHxjLnN0YXR1cz09PTAmJiEoYy5yZXNwb25zZVVSTCYmYy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoeSl9LGMub25hYm9ydD1mdW5jdGlvbigpe2MmJih0KG5ldyB1KCJSZXF1ZXN0IGFib3J0ZWQiLHUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbCl9LGMub25lcnJvcj1mdW5jdGlvbigpe3QobmV3IHUoIk5ldHdvcmsgRXJyb3IiLHUuRVJSX05FVFdPUkssQSxjKSksYz1udWxsfSxjLm9udGltZW91dD1mdW5jdGlvbigpe2xldCBIPXIudGltZW91dD8idGltZW91dCBvZiAiK3IudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixOPXIudHJhbnNpdGlvbmFsfHxOQTtyLnRpbWVvdXRFcnJvck1lc3NhZ2UmJihIPXIudGltZW91dEVycm9yTWVzc2FnZSksdChuZXcgdShILE4uY2xhcmlmeVRpbWVvdXRFcnJvcj91LkVUSU1FRE9VVDp1LkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGx9LGc9PT12b2lkIDAmJmkuc2V0Q29udGVudFR5cGUobnVsbCksInNldFJlcXVlc3RIZWFkZXIiaW4gYyYmby5mb3JFYWNoKGkudG9KU09OKCksZnVuY3Rpb24oSCxOKXtjLnNldFJlcXVlc3RIZWFkZXIoTixIKX0pLG8uaXNVbmRlZmluZWQoci53aXRoQ3JlZGVudGlhbHMpfHwoYy53aXRoQ3JlZGVudGlhbHM9ISFyLndpdGhDcmVkZW50aWFscykscyYmcyE9PSJqc29uIiYmKGMucmVzcG9uc2VUeXBlPXIucmVzcG9uc2VUeXBlKSxDJiYoW2wsUV09eihDLCEwKSxjLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixsKSksRSYmYy51cGxvYWQmJihbbixCXT16KEUpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixuKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixCKSksKHIuY2FuY2VsVG9rZW58fHIuc2lnbmFsKSYmKGE9dz0+e2MmJih0KCF3fHx3LnR5cGU/bmV3IE0obnVsbCxBLGMpOncpLGMuYWJvcnQoKSxjPW51bGwpfSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnN1YnNjcmliZShhKSxyLnNpZ25hbCYmKHIuc2lnbmFsLmFib3J0ZWQ/YSgpOnIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixhKSkpO2xldCBwPXNlKHIudXJsKTtpZihwJiZELnByb3RvY29scy5pbmRleE9mKHApPT09LTEpe3QobmV3IHUoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrcCsiOiIsdS5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1jLnNlbmQoZ3x8bnVsbCl9KX07dmFyIGRyPShBLGUpPT57bGV0e2xlbmd0aDpJfT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYoZXx8SSl7bGV0IHQ9bmV3IEFib3J0Q29udHJvbGxlcixyLGc9ZnVuY3Rpb24oQyl7aWYoIXIpe3I9ITAscygpO2xldCBhPUMgaW5zdGFuY2VvZiBFcnJvcj9DOnRoaXMucmVhc29uO3QuYWJvcnQoYSBpbnN0YW5jZW9mIHU/YTpuZXcgTShhIGluc3RhbmNlb2YgRXJyb3I/YS5tZXNzYWdlOmEpKX19LGk9ZSYmc2V0VGltZW91dCgoKT0+e2k9bnVsbCxnKG5ldyB1KGB0aW1lb3V0ICR7ZX0gb2YgbXMgZXhjZWVkZWRgLHUuRVRJTUVET1VUKSl9LGUpLHM9KCk9PntBJiYoaSYmY2xlYXJUaW1lb3V0KGkpLGk9bnVsbCxBLmZvckVhY2goQz0+e0MudW5zdWJzY3JpYmU/Qy51bnN1YnNjcmliZShnKTpDLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixnKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChDPT5DLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixnKSk7bGV0e3NpZ25hbDpFfT10O3JldHVybiBFLnVuc3Vic2NyaWJlPSgpPT5vLmFzYXAocyksRX19LGZ0PWRyO3ZhciB5cj1mdW5jdGlvbiooQSxlKXtsZXQgST1BLmJ5dGVMZW5ndGg7aWYoIWV8fEk8ZSl7eWllbGQgQTtyZXR1cm59bGV0IHQ9MCxyO2Zvcig7dDxJOylyPXQrZSx5aWVsZCBBLnNsaWNlKHQsciksdD1yfSxocj1hc3luYyBmdW5jdGlvbiooQSxlKXtmb3IgYXdhaXQobGV0IEkgb2YgRHIoQSkpeWllbGQqeXIoSSxlKX0sRHI9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgZT1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOkksdmFsdWU6dH09YXdhaXQgZS5yZWFkKCk7aWYoSSlicmVhazt5aWVsZCB0fX1maW5hbGx5e2F3YWl0IGUuY2FuY2VsKCl9fSxjZT0oQSxlLEksdCk9PntsZXQgcj1ocihBLGUpLGc9MCxpLHM9RT0+e2l8fChpPSEwLHQmJnQoRSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKEUpe3RyeXtsZXR7ZG9uZTpDLHZhbHVlOmF9PWF3YWl0IHIubmV4dCgpO2lmKEMpe3MoKSxFLmNsb3NlKCk7cmV0dXJufWxldCBuPWEuYnl0ZUxlbmd0aDtpZihJKXtsZXQgbD1nKz1uO0kobCl9RS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KGEpKX1jYXRjaChDKXt0aHJvdyBzKEMpLEN9fSxjYW5jZWwoRSl7cmV0dXJuIHMoRSksci5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIEpBPXR5cGVvZiBmZXRjaD09ImZ1bmN0aW9uIiYmdHlwZW9mIFJlcXVlc3Q9PSJmdW5jdGlvbiImJnR5cGVvZiBSZXNwb25zZT09ImZ1bmN0aW9uIixkdD1KQSYmdHlwZW9mIFJlYWRhYmxlU3RyZWFtPT0iZnVuY3Rpb24iLHByPUpBJiYodHlwZW9mIFRleHRFbmNvZGVyPT0iZnVuY3Rpb24iPyhBPT5lPT5BLmVuY29kZShlKSkobmV3IFRleHRFbmNvZGVyKTphc3luYyBBPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgUmVzcG9uc2UoQSkuYXJyYXlCdWZmZXIoKSkpLHl0PShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LHdyPWR0JiZ5dCgoKT0+e2xldCBBPSExLGU9bmV3IFJlcXVlc3QoRC5vcmlnaW4se2JvZHk6bmV3IFJlYWRhYmxlU3RyZWFtLG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBBPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIEEmJiFlfSksdXQ9NjQqMTAyNCxsZT1kdCYmeXQoKCk9Pm8uaXNSZWFkYWJsZVN0cmVhbShuZXcgUmVzcG9uc2UoIiIpLmJvZHkpKSxMQT17c3RyZWFtOmxlJiYoQT0+QS5ib2R5KX07SkEmJihBPT57WyJ0ZXh0IiwiYXJyYXlCdWZmZXIiLCJibG9iIiwiZm9ybURhdGEiLCJzdHJlYW0iXS5mb3JFYWNoKGU9PnshTEFbZV0mJihMQVtlXT1vLmlzRnVuY3Rpb24oQVtlXSk/ST0+SVtlXSgpOihJLHQpPT57dGhyb3cgbmV3IHUoYFJlc3BvbnNlIHR5cGUgJyR7ZX0nIGlzIG5vdCBzdXBwb3J0ZWRgLHUuRVJSX05PVF9TVVBQT1JULHQpfSl9KX0pKG5ldyBSZXNwb25zZSk7dmFyIG1yPWFzeW5jIEE9PntpZihBPT1udWxsKXJldHVybiAwO2lmKG8uaXNCbG9iKEEpKXJldHVybiBBLnNpemU7aWYoby5pc1NwZWNDb21wbGlhbnRGb3JtKEEpKXJldHVybihhd2FpdCBuZXcgUmVxdWVzdChELm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OkF9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKG8uaXNBcnJheUJ1ZmZlclZpZXcoQSl8fG8uaXNBcnJheUJ1ZmZlcihBKSlyZXR1cm4gQS5ieXRlTGVuZ3RoO2lmKG8uaXNVUkxTZWFyY2hQYXJhbXMoQSkmJihBPUErIiIpLG8uaXNTdHJpbmcoQSkpcmV0dXJuKGF3YWl0IHByKEEpKS5ieXRlTGVuZ3RofSxTcj1hc3luYyhBLGUpPT57bGV0IEk9by50b0Zpbml0ZU51bWJlcihBLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIEk/P21yKGUpfSxodD1KQSYmKGFzeW5jIEE9PntsZXR7dXJsOmUsbWV0aG9kOkksZGF0YTp0LHNpZ25hbDpyLGNhbmNlbFRva2VuOmcsdGltZW91dDppLG9uRG93bmxvYWRQcm9ncmVzczpzLG9uVXBsb2FkUHJvZ3Jlc3M6RSxyZXNwb25zZVR5cGU6QyxoZWFkZXJzOmEsd2l0aENyZWRlbnRpYWxzOm49InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6bH09YkEoQSk7Qz1DPyhDKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgQj1mdChbcixnJiZnLnRvQWJvcnRTaWduYWwoKV0saSksUSxmPUImJkIudW5zdWJzY3JpYmUmJigoKT0+e0IudW5zdWJzY3JpYmUoKX0pLGM7dHJ5e2lmKEUmJndyJiZJIT09ImdldCImJkkhPT0iaGVhZCImJihjPWF3YWl0IFNyKGEsdCkpIT09MCl7bGV0IE49bmV3IFJlcXVlc3QoZSx7bWV0aG9kOiJQT1NUIixib2R5OnQsZHVwbGV4OiJoYWxmIn0pLFQ7aWYoby5pc0Zvcm1EYXRhKHQpJiYoVD1OLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJmEuc2V0Q29udGVudFR5cGUoVCksTi5ib2R5KXtsZXRbTyxmQV09QmUoYyx6KENlKEUpKSk7dD1jZShOLmJvZHksdXQsTyxmQSl9fW8uaXNTdHJpbmcobil8fChuPW4/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IHk9ImNyZWRlbnRpYWxzImluIFJlcXVlc3QucHJvdG90eXBlO1E9bmV3IFJlcXVlc3QoZSx7Li4ubCxzaWduYWw6QixtZXRob2Q6SS50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6YS5ub3JtYWxpemUoKS50b0pTT04oKSxib2R5OnQsZHVwbGV4OiJoYWxmIixjcmVkZW50aWFsczp5P246dm9pZCAwfSk7bGV0IHA9YXdhaXQgZmV0Y2goUSksdz1sZSYmKEM9PT0ic3RyZWFtInx8Qz09PSJyZXNwb25zZSIpO2lmKGxlJiYoc3x8dyYmZikpe2xldCBOPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKGtlPT57TltrZV09cFtrZV19KTtsZXQgVD1vLnRvRmluaXRlTnVtYmVyKHAuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtPLGZBXT1zJiZCZShULHooQ2UocyksITApKXx8W107cD1uZXcgUmVzcG9uc2UoY2UocC5ib2R5LHV0LE8sKCk9PntmQSYmZkEoKSxmJiZmKCl9KSxOKX1DPUN8fCJ0ZXh0IjtsZXQgSD1hd2FpdCBMQVtvLmZpbmRLZXkoTEEsQyl8fCJ0ZXh0Il0ocCxBKTtyZXR1cm4hdyYmZiYmZigpLGF3YWl0IG5ldyBQcm9taXNlKChOLFQpPT57bkEoTixULHtkYXRhOkgsaGVhZGVyczpGLmZyb20ocC5oZWFkZXJzKSxzdGF0dXM6cC5zdGF0dXMsc3RhdHVzVGV4dDpwLnN0YXR1c1RleHQsY29uZmlnOkEscmVxdWVzdDpRfSl9KX1jYXRjaCh5KXt0aHJvdyBmJiZmKCkseSYmeS5uYW1lPT09IlR5cGVFcnJvciImJi9mZXRjaC9pLnRlc3QoeS5tZXNzYWdlKT9PYmplY3QuYXNzaWduKG5ldyB1KCJOZXR3b3JrIEVycm9yIix1LkVSUl9ORVRXT1JLLEEsUSkse2NhdXNlOnkuY2F1c2V8fHl9KTp1LmZyb20oeSx5JiZ5LmNvZGUsQSxRKX19KTt2YXIgZmU9e2h0dHA6UkEseGhyOmx0LGZldGNoOmh0fTtvLmZvckVhY2goZmUsKEEsZSk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHt2YWx1ZTplfSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse3ZhbHVlOmV9KX19KTt2YXIgRHQ9QT0+YC0gJHtBfWAsRnI9QT0+by5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExLE1BPXtnZXRBZGFwdGVyOkE9PntBPW8uaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOmV9PUEsSSx0LHI9e307Zm9yKGxldCBnPTA7ZzxlO2crKyl7ST1BW2ddO2xldCBpO2lmKHQ9SSwhRnIoSSkmJih0PWZlWyhpPVN0cmluZyhJKSkudG9Mb3dlckNhc2UoKV0sdD09PXZvaWQgMCkpdGhyb3cgbmV3IHUoYFVua25vd24gYWRhcHRlciAnJHtpfSdgKTtpZih0KWJyZWFrO3JbaXx8IiMiK2ddPXR9aWYoIXQpe2xldCBnPU9iamVjdC5lbnRyaWVzKHIpLm1hcCgoW3MsRV0pPT5gYWRhcHRlciAke3N9IGArKEU9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxpPWU/Zy5sZW5ndGg+MT9gc2luY2UgOgpgK2cubWFwKER0KS5qb2luKGAKYCk6IiAiK0R0KGdbMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IHUoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitpLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gdH0sYWRhcHRlcnM6ZmV9O2Z1bmN0aW9uIHVlKEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBNKG51bGwsQSl9ZnVuY3Rpb24gWUEoQSl7cmV0dXJuIHVlKEEpLEEuaGVhZGVycz1GLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9b0EuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLE1BLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxWLmFkYXB0ZXIpKEEpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHVlKEEpLHQuZGF0YT1vQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSx0KSx0LmhlYWRlcnM9Ri5mcm9tKHQuaGVhZGVycyksdH0sZnVuY3Rpb24odCl7cmV0dXJuIGFBKHQpfHwodWUoQSksdCYmdC5yZXNwb25zZSYmKHQucmVzcG9uc2UuZGF0YT1vQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSx0LnJlc3BvbnNlKSx0LnJlc3BvbnNlLmhlYWRlcnM9Ri5mcm9tKHQucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdCh0KX0pfXZhciBIQT0iMS44LjQiO3ZhciBxQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsZSk9PntxQVtBXT1mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHQ9PT1BfHwiYSIrKGU8MT8ibiAiOiIgIikrQX19KTt2YXIgcHQ9e307cUEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsSSx0KXtmdW5jdGlvbiByKGcsaSl7cmV0dXJuIltBeGlvcyB2IitIQSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK2crIiciK2krKHQ/Ii4gIit0OiIiKX1yZXR1cm4oZyxpLHMpPT57aWYoZT09PSExKXRocm93IG5ldyB1KHIoaSwiIGhhcyBiZWVuIHJlbW92ZWQiKyhJPyIgaW4gIitJOiIiKSksdS5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIEkmJiFwdFtpXSYmKHB0W2ldPSEwLGNvbnNvbGUud2FybihyKGksIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK0krIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksZT9lKGcsaSxzKTohMH19O3FBLnNwZWxsaW5nPWZ1bmN0aW9uKGUpe3JldHVybihJLHQpPT4oY29uc29sZS53YXJuKGAke3R9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7ZX1gKSwhMCl9O2Z1bmN0aW9uIFJyKEEsZSxJKXtpZih0eXBlb2YgQSE9Im9iamVjdCIpdGhyb3cgbmV3IHUoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCB0PU9iamVjdC5rZXlzKEEpLHI9dC5sZW5ndGg7Zm9yKDtyLS0gPjA7KXtsZXQgZz10W3JdLGk9ZVtnXTtpZihpKXtsZXQgcz1BW2ddLEU9cz09PXZvaWQgMHx8aShzLGcsQSk7aWYoRSE9PSEwKXRocm93IG5ldyB1KCJvcHRpb24gIitnKyIgbXVzdCBiZSAiK0UsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYoSSE9PSEwKXRocm93IG5ldyB1KCJVbmtub3duIG9wdGlvbiAiK2csdS5FUlJfQkFEX09QVElPTil9fXZhciBCQT17YXNzZXJ0T3B0aW9uczpScix2YWxpZGF0b3JzOnFBfTt2YXIgWT1CQS52YWxpZGF0b3JzLF89Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5kZWZhdWx0cz1lLHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBJZSxyZXNwb25zZTpuZXcgSWV9fWFzeW5jIHJlcXVlc3QoZSxJKXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QoZSxJKX1jYXRjaCh0KXtpZih0IGluc3RhbmNlb2YgRXJyb3Ipe2xldCByPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHIpOnI9bmV3IEVycm9yO2xldCBnPXIuc3RhY2s/ci5zdGFjay5yZXBsYWNlKC9eLitcbi8sIiIpOiIiO3RyeXt0LnN0YWNrP2cmJiFTdHJpbmcodC5zdGFjaykuZW5kc1dpdGgoZy5yZXBsYWNlKC9eLitcbi4rXG4vLCIiKSkmJih0LnN0YWNrKz1gCmArZyk6dC5zdGFjaz1nfWNhdGNoe319dGhyb3cgdH19X3JlcXVlc3QoZSxJKXt0eXBlb2YgZT09InN0cmluZyI/KEk9SXx8e30sSS51cmw9ZSk6ST1lfHx7fSxJPUwodGhpcy5kZWZhdWx0cyxJKTtsZXR7dHJhbnNpdGlvbmFsOnQscGFyYW1zU2VyaWFsaXplcjpyLGhlYWRlcnM6Z309STt0IT09dm9pZCAwJiZCQS5hc3NlcnRPcHRpb25zKHQse3NpbGVudEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbil9LCExKSxyIT1udWxsJiYoby5pc0Z1bmN0aW9uKHIpP0kucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOnJ9OkJBLmFzc2VydE9wdGlvbnMocix7ZW5jb2RlOlkuZnVuY3Rpb24sc2VyaWFsaXplOlkuZnVuY3Rpb259LCEwKSksSS5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/SS5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOkkuYWxsb3dBYnNvbHV0ZVVybHM9ITApLEJBLmFzc2VydE9wdGlvbnMoSSx7YmFzZVVybDpZLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpZLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSxJLm1ldGhvZD0oSS5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgaT1nJiZvLm1lcmdlKGcuY29tbW9uLGdbSS5tZXRob2RdKTtnJiZvLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sUT0+e2RlbGV0ZSBnW1FdfSksSS5oZWFkZXJzPUYuY29uY2F0KGksZyk7bGV0IHM9W10sRT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oZil7dHlwZW9mIGYucnVuV2hlbj09ImZ1bmN0aW9uIiYmZi5ydW5XaGVuKEkpPT09ITF8fChFPUUmJmYuc3luY2hyb25vdXMscy51bnNoaWZ0KGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpKX0pO2xldCBDPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oZil7Qy5wdXNoKGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpfSk7bGV0IGEsbj0wLGw7aWYoIUUpe2xldCBRPVtZQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKFEudW5zaGlmdC5hcHBseShRLHMpLFEucHVzaC5hcHBseShRLEMpLGw9US5sZW5ndGgsYT1Qcm9taXNlLnJlc29sdmUoSSk7bjxsOylhPWEudGhlbihRW24rK10sUVtuKytdKTtyZXR1cm4gYX1sPXMubGVuZ3RoO2xldCBCPUk7Zm9yKG49MDtuPGw7KXtsZXQgUT1zW24rK10sZj1zW24rK107dHJ5e0I9UShCKX1jYXRjaChjKXtmLmNhbGwodGhpcyxjKTticmVha319dHJ5e2E9WUEuY2FsbCh0aGlzLEIpfWNhdGNoKFEpe3JldHVybiBQcm9taXNlLnJlamVjdChRKX1mb3Iobj0wLGw9Qy5sZW5ndGg7bjxsOylhPWEudGhlbihDW24rK10sQ1tuKytdKTtyZXR1cm4gYX1nZXRVcmkoZSl7ZT1MKHRoaXMuZGVmYXVsdHMsZSk7bGV0IEk9c0EoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiBnQShJLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcil9fTtvLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKGUpe18ucHJvdG90eXBlW2VdPWZ1bmN0aW9uKEksdCl7cmV0dXJuIHRoaXMucmVxdWVzdChMKHR8fHt9LHttZXRob2Q6ZSx1cmw6SSxkYXRhOih0fHx7fSkuZGF0YX0pKX19KTtvLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbihlKXtmdW5jdGlvbiBJKHQpe3JldHVybiBmdW5jdGlvbihnLGkscyl7cmV0dXJuIHRoaXMucmVxdWVzdChMKHN8fHt9LHttZXRob2Q6ZSxoZWFkZXJzOnQ/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOmcsZGF0YTppfSkpfX1fLnByb3RvdHlwZVtlXT1JKCksXy5wcm90b3R5cGVbZSsiRm9ybSJdPUkoITApfSk7dmFyIENBPV87dmFyIGRlPWNsYXNzIEF7Y29uc3RydWN0b3IoZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCBJO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihnKXtJPWd9KTtsZXQgdD10aGlzO3RoaXMucHJvbWlzZS50aGVuKHI9PntpZighdC5fbGlzdGVuZXJzKXJldHVybjtsZXQgZz10Ll9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7Zy0tID4wOyl0Ll9saXN0ZW5lcnNbZ10ocik7dC5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1yPT57bGV0IGcsaT1uZXcgUHJvbWlzZShzPT57dC5zdWJzY3JpYmUocyksZz1zfSkudGhlbihyKTtyZXR1cm4gaS5jYW5jZWw9ZnVuY3Rpb24oKXt0LnVuc3Vic2NyaWJlKGcpfSxpfSxlKGZ1bmN0aW9uKGcsaSxzKXt0LnJlYXNvbnx8KHQucmVhc29uPW5ldyBNKGcsaSxzKSxJKHQucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKGUpe2lmKHRoaXMucmVhc29uKXtlKHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19dW5zdWJzY3JpYmUoZSl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IEk9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoZSk7SSE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKEksMSl9dG9BYm9ydFNpZ25hbCgpe2xldCBlPW5ldyBBYm9ydENvbnRyb2xsZXIsST10PT57ZS5hYm9ydCh0KX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKEkpLGUuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKEkpLGUuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgZTtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24ocil7ZT1yfSksY2FuY2VsOmV9fX0sd3Q9ZGU7ZnVuY3Rpb24geWUoQSl7cmV0dXJuIGZ1bmN0aW9uKEkpe3JldHVybiBBLmFwcGx5KG51bGwsSSl9fWZ1bmN0aW9uIGhlKEEpe3JldHVybiBvLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBEZT17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoRGUpLmZvckVhY2goKFtBLGVdKT0+e0RlW2VdPUF9KTt2YXIgbXQ9RGU7ZnVuY3Rpb24gU3QoQSl7bGV0IGU9bmV3IENBKEEpLEk9dEEoQ0EucHJvdG90eXBlLnJlcXVlc3QsZSk7cmV0dXJuIG8uZXh0ZW5kKEksQ0EucHJvdG90eXBlLGUse2FsbE93bktleXM6ITB9KSxvLmV4dGVuZChJLGUsbnVsbCx7YWxsT3duS2V5czohMH0pLEkuY3JlYXRlPWZ1bmN0aW9uKHIpe3JldHVybiBTdChMKEEscikpfSxJfXZhciBtPVN0KFYpO20uQXhpb3M9Q0E7bS5DYW5jZWxlZEVycm9yPU07bS5DYW5jZWxUb2tlbj13dDttLmlzQ2FuY2VsPWFBO20uVkVSU0lPTj1IQTttLnRvRm9ybURhdGE9eDttLkF4aW9zRXJyb3I9dTttLkNhbmNlbD1tLkNhbmNlbGVkRXJyb3I7bS5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUpfTttLnNwcmVhZD15ZTttLmlzQXhpb3NFcnJvcj1oZTttLm1lcmdlQ29uZmlnPUw7bS5BeGlvc0hlYWRlcnM9RjttLmZvcm1Ub0pTT049QT0+a0Eoby5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTttLmdldEFkYXB0ZXI9TUEuZ2V0QWRhcHRlcjttLkh0dHBTdGF0dXNDb2RlPW10O20uZGVmYXVsdD1tO3ZhciAkPW07dmFye0F4aW9zOkphLEF4aW9zRXJyb3I6TWEsQ2FuY2VsZWRFcnJvcjpZYSxpc0NhbmNlbDpIYSxDYW5jZWxUb2tlbjpxYSxWRVJTSU9OOlRhLGFsbDp4YSxDYW5jZWw6S2EsaXNBeGlvc0Vycm9yOk9hLHNwcmVhZDpQYSx0b0Zvcm1EYXRhOldhLEF4aW9zSGVhZGVyczpqYSxIdHRwU3RhdHVzQ29kZTp2YSxmb3JtVG9KU09OOlphLGdldEFkYXB0ZXI6VmEsbWVyZ2VDb25maWc6WGF9PSQ7YXN5bmMgZnVuY3Rpb24gVXIoQSxlKXtsZXQgST1BLHQ9bnVsbDtpZihJPT1udWxsKXQ9bmV3IFdvcmtlcihuZXcgVVJMKCIuL3dlYi13b3JrZXJzL2l0ay13YXNtLXBpcGVsaW5lLndvcmtlci5qcyIsaW1wb3J0Lm1ldGEudXJsKSx7dHlwZToibW9kdWxlIn0pO2Vsc2UgaWYoSS5zdGFydHNXaXRoKCJodHRwIikpe2xldCByPWF3YWl0ICQuZ2V0KEkse3Jlc3BvbnNlVHlwZToiYmxvYiIscGFyYW1zOmV9KSxnPVVSTC5jcmVhdGVPYmplY3RVUkwoci5kYXRhKTt0PW5ldyBXb3JrZXIoZyx7dHlwZToibW9kdWxlIn0pfWVsc2UgdD1uZXcgV29ya2VyKEkse3R5cGU6Im1vZHVsZSJ9KTtyZXR1cm4gdH12YXIgUUE9VXI7ZnVuY3Rpb24gRnQoQSl7bGV0IGU9ekEoQSksST1BO3JldHVybiBJLnRlcm1pbmF0ZWQ9ITEsSS53b3JrZXJQcm94eT1lLEkub3JpZ2luYWxUZXJtaW5hdGU9SS50ZXJtaW5hdGUsSS50ZXJtaW5hdGU9KCk9PntJLnRlcm1pbmF0ZWQ9ITAsSS53b3JrZXJQcm94eVtYQV0oKSxJLm9yaWdpbmFsVGVybWluYXRlKCl9LHt3b3JrZXJQcm94eTplLHdvcmtlcjpJfX1hc3luYyBmdW5jdGlvbiBOcihBLGUsSSl7bGV0IHQ7aWYoQSE9bnVsbCl7bGV0IGc9QTtyZXR1cm4gZy53b3JrZXJQcm94eSE9PXZvaWQgMD8odD1nLndvcmtlclByb3h5LHt3b3JrZXJQcm94eTp0LHdvcmtlcjpnfSk6RnQoQSl9bGV0IHI9YXdhaXQgUUEoZSxJKTtyZXR1cm4gRnQocil9dmFyIFJ0PU5yO3ZhciBFQSxxLHdlLHBlPXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7d2U9bmV3IFVpbnQ4QXJyYXkocS5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LFRBPWNsYXNze2luaXQoKXtyZXR1cm4gRUF8fCh0eXBlb2YgZmV0Y2g8InUiP0VBPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIrVXQpLnRoZW4oZT0+ZS5hcnJheUJ1ZmZlcigpKS50aGVuKGU9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGUscGUpKS50aGVuKHRoaXMuX2luaXQpOkVBPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKFV0LCJiYXNlNjQiKSxwZSkudGhlbih0aGlzLl9pbml0KSxFQSl9X2luaXQoZSl7cT1lLmluc3RhbmNlLHBlLmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZShlLEk9MCl7aWYoIXEpdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IHQ9ZS5ieXRlTGVuZ3RoLHI9cS5leHBvcnRzLm1hbGxvYyh0KTt3ZS5zZXQoZSxyKSxJPUl8fE51bWJlcihxLmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShyLHQpKTtsZXQgZz1xLmV4cG9ydHMubWFsbG9jKEkpLGk9cS5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhnLEkscix0KSxzPXdlLnNsaWNlKGcsZytpKTtyZXR1cm4gcS5leHBvcnRzLmZyZWUocikscS5leHBvcnRzLmZyZWUoZyksc319LFV0PSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIE50PW5ldyBUQSxrdD0hMTthc3luYyBmdW5jdGlvbiBrcihBLGUsSSl7bGV0IHQ9InVua25vd24iO3R5cGVvZiBBIT0ic3RyaW5nIj90PUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT90PUE6dD10eXBlb2YgZTwidSI/YCR7ZX0vJHtBfWA6QSx0LmVuZHNXaXRoKCIuanMiKSYmKHQ9dC5zdWJzdHJpbmcoMCx0Lmxlbmd0aC0zKSksdC5lbmRzV2l0aCgiLndhc20iKSYmKHQ9dC5zdWJzdHJpbmcoMCx0Lmxlbmd0aC01KSksdC5lbmRzV2l0aCgiLndhc20uenN0IikmJih0PXQuc3Vic3RyaW5nKDAsdC5sZW5ndGgtOSkpO2xldCByPWAke3R9Lndhc21gLGc9YXdhaXQgJC5nZXQoYCR7cn0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOkl9KTtrdHx8KGF3YWl0IE50LmluaXQoKSxrdD0hMCk7bGV0IHM9TnQuZGVjb2RlKG5ldyBVaW50OEFycmF5KGcuZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke3R9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6c30pfXZhciBHdD1rcjt2YXIgYnQ9YXN5bmMoKT0+V2ViQXNzZW1ibHkudmFsaWRhdGUobmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwLDEsNSwxLDk2LDAsMSwxMjMsMywyLDEsMCwxMCwxMCwxLDgsMCw2NSwwLDI1MywxNSwyNTMsOTgsMTFdKSk7dmFyIE10PXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLEx0PW5ldyBUZXh0RW5jb2RlcixKdD1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gR3IoQSxlKXtsZXQgST17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSx0PUEuZnNfb3BlbihlLEkuZmxhZ3MpLGc9QS5mc19zdGF0KGUpLnNpemUsaT1udWxsO010P2k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKGcpOmk9bmV3IEFycmF5QnVmZmVyKGcpO2xldCBzPW5ldyBVaW50OEFycmF5KGkpO3JldHVybiBBLmZzX3JlYWQodCxzLDAsZywwKSxBLmZzX2Nsb3NlKHQpLHN9ZnVuY3Rpb24gWXQoQSxlLEkpe2xldCB0PW51bGw7TXQ/dD1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoSSk6dD1uZXcgQXJyYXlCdWZmZXIoSSk7bGV0IHI9bmV3IFVpbnQ4QXJyYXkodCksZz1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsZSxJKTtyZXR1cm4gci5zZXQoZykscn1mdW5jdGlvbiBTKEEsZSxJLHQpe2xldCByPTA7cmV0dXJuIGUhPT1udWxsJiYocj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxJLHQsZS5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheShlLmJ1ZmZlcikscikpLHJ9ZnVuY3Rpb24gSyhBLGUsSSl7bGV0IHQ9SlNPTi5zdHJpbmdpZnkoZSkscj1BLmxlbmd0aEJ5dGVzVVRGOCh0KSsxLGc9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxJLHJdKTtBLnN0cmluZ1RvVVRGOCh0LGcscil9ZnVuY3Rpb24gVShBLGUsSSx0KXtsZXQgcj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLEldKSxnPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsSV0pLGk9WXQoQSxyLGcpO3JldHVybiBKKHQsaS5idWZmZXIpfWZ1bmN0aW9uIGNBKEEsZSl7bGV0IEk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCxlXSksdD1BLlVURjhUb1N0cmluZyhJKTtyZXR1cm4gSlNPTi5wYXJzZSh0KX1mdW5jdGlvbiBicihBLGUsSSx0KXt0IT1udWxsJiZ0Lmxlbmd0aD4wJiZ0LmZvckVhY2goZnVuY3Rpb24oQyxhKXtzd2l0Y2goQy50eXBlKXtjYXNlIGguVGV4dFN0cmVhbTp7bGV0IG49THQuZW5jb2RlKEMuZGF0YS5kYXRhKSxsPVMoQSxuLGEsMCksQj17c2l6ZTpuLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O0soQSxCLGEpO2JyZWFrfWNhc2UgaC5Kc29uQ29tcGF0aWJsZTp7bGV0IG49THQuZW5jb2RlKEpTT04uc3RyaW5naWZ5KEMuZGF0YSkpLGw9UyhBLG4sYSwwKSxCPXtzaXplOm4uYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07SyhBLEIsYSk7YnJlYWt9Y2FzZSBoLkJpbmFyeVN0cmVhbTp7bGV0IG49Qy5kYXRhLmRhdGEsbD1TKEEsbixhLDApLEI9e3NpemU6bi5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTtLKEEsQixhKTticmVha31jYXNlIGguVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKEMuZGF0YS5wYXRoLEMuZGF0YS5kYXRhKTticmVha31jYXNlIGguQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoQy5kYXRhLnBhdGgsQy5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgaC5JbWFnZTp7bGV0IG49Qy5kYXRhLGw9UyhBLG4uZGF0YSxhLDApLEI9UyhBLG4uZGlyZWN0aW9uLGEsMSksUT10eXBlb2Ygbi5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShuLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sZj17aW1hZ2VUeXBlOm4uaW1hZ2VUeXBlLG5hbWU6bi5uYW1lLG9yaWdpbjpuLm9yaWdpbixzcGFjaW5nOm4uc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsc2l6ZTpuLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxtZXRhZGF0YTpRfTtLKEEsZixhKTticmVha31jYXNlIGguTWVzaDp7bGV0IG49Qy5kYXRhLGw9UyhBLG4ucG9pbnRzLGEsMCksQj1TKEEsbi5jZWxscyxhLDEpLFE9UyhBLG4ucG9pbnREYXRhLGEsMiksZj1TKEEsbi5jZWxsRGF0YSxhLDMpLGM9e21lc2hUeXBlOm4ubWVzaFR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZDZWxsczpuLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsY2VsbEJ1ZmZlclNpemU6bi5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOm4ubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOm4ubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtLKEEsYyxhKTticmVha31jYXNlIGguUG9pbnRTZXQ6e2xldCBuPUMuZGF0YSxsPVMoQSxuLnBvaW50cyxhLDApLEI9UyhBLG4ucG9pbnREYXRhLGEsMSksUT17cG9pbnRTZXRUeXBlOm4ucG9pbnRTZXRUeXBlLG5hbWU6bi5uYW1lLG51bWJlck9mUG9pbnRzOm4ubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YH07SyhBLFEsYSk7YnJlYWt9Y2FzZSBoLlRyYW5zZm9ybUxpc3Q6e2xldCBuPUMuZGF0YSxsPVtdLEI9MDtuLmZvckVhY2goUT0+e2xldCBmPSIiLGM9IiI7US50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGY9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtTKEEsUS5maXhlZFBhcmFtZXRlcnMsYSxCKX1gLEIrPTEsYz1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1MoQSxRLnBhcmFtZXRlcnMsYSxCKX1gLEIrPTEpO2xldCB5PXt0cmFuc2Zvcm1UeXBlOlEudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpRLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpRLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOlEubmFtZSxpbnB1dFNwYWNlTmFtZTpRLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpRLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmMsZml4ZWRQYXJhbWV0ZXJzOmZ9O2wucHVzaCh5KX0pLEsoQSxsLGEpO2JyZWFrfWNhc2UgaC5Qb2x5RGF0YTp7bGV0IG49Qy5kYXRhLGw9UyhBLG4ucG9pbnRzLGEsMCksQj1TKEEsbi52ZXJ0aWNlcyxhLDEpLFE9UyhBLG4ubGluZXMsYSwyKSxmPVMoQSxuLnBvbHlnb25zLGEsMyksYz1TKEEsbi50cmlhbmdsZVN0cmlwcyxhLDQpLHk9UyhBLG4ucG9pbnREYXRhLGEsNSkscD1TKEEsbi5wb2ludERhdGEsYSw2KSx3PXtwb2x5RGF0YVR5cGU6bi5wb2x5RGF0YVR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsdmVydGljZXNCdWZmZXJTaXplOm4udmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLGxpbmVzQnVmZmVyU2l6ZTpuLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxwb2x5Z29uc0J1ZmZlclNpemU6bi5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOm4udHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3l9YCxudW1iZXJPZkNlbGxQaXhlbHM6bi5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtwfWB9O0soQSx3LGEpO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCByPUEuc3RhY2tTYXZlKCksZz0wO3RyeXtnPUEuY2FsbE1haW4oZS5zbGljZSgpKX1jYXRjaChDKXt0aHJvdyB0eXBlb2YgQz09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShDKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxDfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUocil9bGV0IGk9QS5nZXRNb2R1bGVTdGRvdXQoKSxzPUEuZ2V0TW9kdWxlU3RkZXJyKCksRT1bXTtyZXR1cm4gSSE9bnVsbCYmSS5sZW5ndGg+MCYmZz09PTAmJkkuZm9yRWFjaChmdW5jdGlvbihDLGEpe2xldCBuPW51bGw7c3dpdGNoKEMudHlwZSl7Y2FzZSBoLlRleHRTdHJlYW06e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGEsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsYSwwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQixRKTtuPXtkYXRhOkp0LmRlY29kZShmKX07YnJlYWt9Y2FzZSBoLkpzb25Db21wYXRpYmxlOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxhLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGEsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEIsUSk7bj1KU09OLnBhcnNlKEp0LmRlY29kZShmKSk7YnJlYWt9Y2FzZSBoLkJpbmFyeVN0cmVhbTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsYSwwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxhLDBdKTtuPXtkYXRhOll0KEEsQixRKX07YnJlYWt9Y2FzZSBoLlRleHRGaWxlOntuPXtwYXRoOkMuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShDLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgaC5CaW5hcnlGaWxlOntuPXtwYXRoOkMuZGF0YS5wYXRoLGRhdGE6R3IoQSxDLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgaC5JbWFnZTp7bGV0IEI9Y0EoQSxhKTtCLmRhdGE9VShBLGEsMCxCLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxCLmRpcmVjdGlvbj1VKEEsYSwxLFIuRmxvYXQ2NCksQi5tZXRhZGF0YT1uZXcgTWFwKEIubWV0YWRhdGEpLG49QjticmVha31jYXNlIGguTWVzaDp7bGV0IEI9Y0EoQSxhKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9VShBLGEsMCxCLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qi5wb2ludHM9SihCLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxscz4wP0IuY2VsbHM9VShBLGEsMSxCLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTpCLmNlbGxzPUooQi5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPVUoQSxhLDIsQi5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SihCLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxQaXhlbHM+MD9CLmNlbGxEYXRhPVUoQSxhLDMsQi5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpCLmNlbGxEYXRhPUooQi5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksbj1CO2JyZWFrfWNhc2UgaC5Qb2ludFNldDp7bGV0IEI9Y0EoQSxhKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9VShBLGEsMCxCLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkIucG9pbnRzPUooQi5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9VShBLGEsMSxCLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SihCLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLG49QjticmVha31jYXNlIGguVHJhbnNmb3JtTGlzdDp7bGV0IEI9Y0EoQSxhKSxRPTA7Qi5mb3JFYWNoKChmLGMpPT57Zi50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGYubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKEJbY10uZml4ZWRQYXJhbWV0ZXJzPVUoQSxhLFEsUi5GbG9hdDY0KSksUSs9MSxmLm51bWJlck9mUGFyYW1ldGVycz4wJiYoQltjXS5wYXJhbWV0ZXJzPVUoQSxhLFEsZi50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxRKz0xKX0pLG49QjticmVha31jYXNlIGguUG9seURhdGE6e2xldCBCPWNBKEEsYSk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPVUoQSxhLDAsUi5GbG9hdDMyKTpCLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LEIudmVydGljZXNCdWZmZXJTaXplPjA/Qi52ZXJ0aWNlcz1VKEEsYSwxLGQuVUludDMyKTpCLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxCLmxpbmVzQnVmZmVyU2l6ZT4wP0IubGluZXM9VShBLGEsMixkLlVJbnQzMik6Qi5saW5lcz1uZXcgVWludDMyQXJyYXksQi5wb2x5Z29uc0J1ZmZlclNpemU+MD9CLnBvbHlnb25zPVUoQSxhLDMsZC5VSW50MzIpOkIucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LEIudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/Qi50cmlhbmdsZVN0cmlwcz1VKEEsYSw0LGQuVUludDMyKTpCLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1VKEEsYSw1LEIucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1KKEIucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxQaXhlbHM+MD9CLmNlbGxEYXRhPVUoQSxhLDYsQi5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5jZWxsRGF0YT1KKEIucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuPUI7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgbD17dHlwZTpDLnR5cGUsZGF0YTpufTtFLnB1c2gobCl9KSx7cmV0dXJuVmFsdWU6ZyxzdGRvdXQ6aSxzdGRlcnI6cyxvdXRwdXRzOkV9fXZhciBIdD1icjt2YXIgTHI9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uIEpyKEEsZSl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgST1bXTtmb3IobGV0IHQ9MDt0PEEubGVuZ3RoO3QrKyl7bGV0IHI9TXIoQVt0XSxlKTtyIT09bnVsbCYmSS5wdXNoKHIpfXJldHVybiBJfWZ1bmN0aW9uIE1yKEEsZSl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgST1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD9JPUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKEk9QSksTHImJkkgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOmU/STpJLnNsaWNlKDApfXZhciBxdD1KcjtmdW5jdGlvbiBZcihBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIgVHQ9WXI7ZnVuY3Rpb24gSHIoQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIHh0PUhyO2Z1bmN0aW9uIHFyKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBLdD1xcjt2YXIgVHI7ZnVuY3Rpb24geEEoKXtyZXR1cm4gVHJ9dmFyIHhyO2Z1bmN0aW9uIE90KCl7cmV0dXJuIHhyfXZhciBLcjtmdW5jdGlvbiBLQSgpe3JldHVybiBLcn12YXIgbWU9bmV3IE1hcDtmdW5jdGlvbiBPcigpe2xldCBBPUtBKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bnVsbCksQX1mdW5jdGlvbiBQdCgpe2xldCBBPXhBKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bmV3IFVSTCgiL3BpcGVsaW5lcyIsZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luKS5ocmVmKSxBfWZ1bmN0aW9uIE9BKCl7bGV0IEE9T3QoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT17fSksQX1hc3luYyBmdW5jdGlvbiBQcihBLGUsSSl7bGV0IHQ9QSxyPUE7aWYodHlwZW9mIEEhPSJzdHJpbmciJiYodD1uZXcgVVJMKEEuaHJlZikscj10LmhyZWYpLG1lLmhhcyhyKSlyZXR1cm4gbWUuZ2V0KHIpO3tsZXQgZz1hd2FpdCBHdChBLGU/LnRvU3RyaW5nKCk/P1B0KCksST8/T0EoKSk7cmV0dXJuIG1lLnNldChyLGcpLGd9fWFzeW5jIGZ1bmN0aW9uIFdyKEEsZSxJLHQscil7aWYoIWF3YWl0IGJ0KCkpe2xldCBjPSJXZWJBc3NlbWJseSBTSU1EIHN1cHBvcnQgaXMgcmVxdWlyZWQgLS0gcGxlYXNlIHVwZGF0ZSB5b3VyIGJyb3dzZXIuIjt0aHJvdyBhbGVydChjKSxuZXcgRXJyb3IoYyl9bGV0IGc9cj8ud2ViV29ya2VyPz9udWxsO2lmKGc9PT0hMSl7bGV0IGM9YXdhaXQgUHIoQS50b1N0cmluZygpLHI/LnBpcGVsaW5lQmFzZVVybCxyPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9PQSgpKTtyZXR1cm4gSHQoYyxlLEksdCl9bGV0IGk9ZyxzPXI/LnBpcGVsaW5lV29ya2VyVXJsPz9PcigpLEU9dHlwZW9mIHMhPSJzdHJpbmciJiZ0eXBlb2Ygcz8uaHJlZjwidSI/cy5ocmVmOnMse3dvcmtlclByb3h5OkMsd29ya2VyOmF9PWF3YWl0IFJ0KGksRSxyPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9PQSgpKTtpPWE7bGV0IG49W107dCE9bnVsbCYmdC5sZW5ndGg+MCYmdC5mb3JFYWNoKGZ1bmN0aW9uKGMpe2lmKGMudHlwZT09PWguQmluYXJ5U3RyZWFtKXtsZXQgeT1jLmRhdGEuZGF0YTtuLnB1c2goeSl9ZWxzZSBpZihjLnR5cGU9PT1oLkJpbmFyeUZpbGUpe2xldCB5PWMuZGF0YS5kYXRhO24ucHVzaCh5KX1lbHNlIGlmKGMudHlwZT09PWguSW1hZ2Upe2xldCB5PWMuZGF0YTt5LmRhdGEhPT1udWxsJiZuLnB1c2goLi4uVHQoeSkpfWVsc2UgaWYoYy50eXBlPT09aC5NZXNoKXtsZXQgeT1jLmRhdGE7bi5wdXNoKC4uLnh0KHkpKX1lbHNlIGlmKGMudHlwZT09PWguUG9seURhdGEpe2xldCB5PWMuZGF0YTtuLnB1c2goLi4uS3QoeSkpfX0pO2xldCBsPXI/LnBpcGVsaW5lQmFzZVVybD8/UHQoKSxCPXR5cGVvZiBsIT0ic3RyaW5nIiYmdHlwZW9mIGw/LmhyZWY8InUiP2wuaHJlZjpsLFE9dCE9bnVsbD9fQSh0LHF0KG4scj8ubm9Db3B5KSk6bnVsbCxmPWF3YWl0IEMucnVuUGlwZWxpbmUoQS50b1N0cmluZygpLEIsZSxJLFEscj8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/T0EoKSk7cmV0dXJue3JldHVyblZhbHVlOmYucmV0dXJuVmFsdWUsc3Rkb3V0OmYuc3Rkb3V0LHN0ZGVycjpmLnN0ZGVycixvdXRwdXRzOmYub3V0cHV0cyx3ZWJXb3JrZXI6aX19dmFyIGxBPVdyO3ZhciBqcj1udWxsO2Z1bmN0aW9uIFd0KCl7cmV0dXJuIGpyfXZhciBTZSx2cj1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AaXRrLXdhc20vY29tcGFyZS1pbWFnZXNAJHtXQX0vZGlzdC9waXBlbGluZXNgO2Z1bmN0aW9uIE9uKEEpe1NlPUF9ZnVuY3Rpb24gUEEoKXtpZih0eXBlb2YgU2U8InUiKXJldHVybiBTZTtsZXQgQT14QSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTp2cn12YXIgRmUsWnI9bnVsbDtmdW5jdGlvbiBqdChBKXtGZT1BfWZ1bmN0aW9uIEFBKCl7aWYodHlwZW9mIEZlPCJ1IilyZXR1cm4gRmU7bGV0IEE9S0EoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6WnJ9dmFyIGVBPW51bGw7YXN5bmMgZnVuY3Rpb24gdnQoKXtsZXQgQT1BQSgpLGU9dHlwZW9mIEEhPSJzdHJpbmciJiZ0eXBlb2YgQT8uaHJlZjwidSI/QS5ocmVmOkE7ZUE9YXdhaXQgUUEoZSl9ZnVuY3Rpb24gWG4oQSl7ZUE9QX1hc3luYyBmdW5jdGlvbiBadCgpe2lmKGVBIT09bnVsbClyZXR1cm4gZUEudGVybWluYXRlZCYmYXdhaXQgdnQoKSxlQTtsZXQgQT1XdCgpO3JldHVybiBBIT09bnVsbD9BOihhd2FpdCB2dCgpLGVBKX1hc3luYyBmdW5jdGlvbiBWcihBLGU9e2Jhc2VsaW5lSW1hZ2VzOltdfSl7bGV0IEk9W3t0eXBlOmguSnNvbkNvbXBhdGlibGV9LHt0eXBlOmguSW1hZ2V9LHt0eXBlOmguSW1hZ2V9XSx0PVt7dHlwZTpoLkltYWdlLGRhdGE6QX1dLHI9W107aWYoci5wdXNoKCIwIiksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCIyIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBlLmJhc2VsaW5lSW1hZ2VzPCJ1Iil7aWYoZS5iYXNlbGluZUltYWdlcy5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJiYXNlbGluZS1pbWFnZXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7ci5wdXNoKCItLWJhc2VsaW5lLWltYWdlcyIpLGF3YWl0IFByb21pc2UuYWxsKGUuYmFzZWxpbmVJbWFnZXMubWFwKGFzeW5jIGY9PntsZXQgYz10Lmxlbmd0aC50b1N0cmluZygpO3QucHVzaCh7dHlwZTpoLkltYWdlLGRhdGE6Zn0pLHIucHVzaChjKX0pKX10eXBlb2YgZS5kaWZmZXJlbmNlVGhyZXNob2xkPCJ1IiYmci5wdXNoKCItLWRpZmZlcmVuY2UtdGhyZXNob2xkIixlLmRpZmZlcmVuY2VUaHJlc2hvbGQudG9TdHJpbmcoKSksdHlwZW9mIGUucmFkaXVzVG9sZXJhbmNlPCJ1IiYmci5wdXNoKCItLXJhZGl1cy10b2xlcmFuY2UiLGUucmFkaXVzVG9sZXJhbmNlLnRvU3RyaW5nKCkpLHR5cGVvZiBlLnNwYXRpYWxUb2xlcmFuY2U8InUiJiZyLnB1c2goIi0tc3BhdGlhbC10b2xlcmFuY2UiLGUuc3BhdGlhbFRvbGVyYW5jZS50b1N0cmluZygpKSx0eXBlb2YgZS5udW1iZXJPZlBpeGVsc1RvbGVyYW5jZTwidSImJnIucHVzaCgiLS1udW1iZXItb2YtcGl4ZWxzLXRvbGVyYW5jZSIsZS5udW1iZXJPZlBpeGVsc1RvbGVyYW5jZS50b1N0cmluZygpKSx0eXBlb2YgZS5pZ25vcmVCb3VuZGFyeVBpeGVsczwidSImJmUuaWdub3JlQm91bmRhcnlQaXhlbHMmJnIucHVzaCgiLS1pZ25vcmUtYm91bmRhcnktcGl4ZWxzIik7bGV0IEM9ImNvbXBhcmUtZG91YmxlLWltYWdlcyIse3dlYldvcmtlcjphLHJldHVyblZhbHVlOm4sc3RkZXJyOmwsb3V0cHV0czpCfT1hd2FpdCBsQShDLHIsSSx0LHtwaXBlbGluZUJhc2VVcmw6UEEoKSxwaXBlbGluZVdvcmtlclVybDpBQSgpLHdlYldvcmtlcjplPy53ZWJXb3JrZXI/P251bGx9KTtpZihuIT09MCl0aHJvdyBuZXcgRXJyb3IobCk7cmV0dXJue3dlYldvcmtlcjphLG1ldHJpY3M6QlswXS5kYXRhLGRpZmZlcmVuY2VJbWFnZTpCWzFdLmRhdGEsZGlmZmVyZW5jZVVjaGFyMmRJbWFnZTpCWzJdLmRhdGF9fXZhciBSZT1Wcjthc3luYyBmdW5jdGlvbiBYcihBLGUpe2xldCBJPWU7aWYoSS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSE9PVIuRmxvYXQ2NCl7bGV0IHQ7ZS5pbWFnZVR5cGUucGl4ZWxUeXBlIT09ay5TY2FsYXImJmUuaW1hZ2VUeXBlLnBpeGVsVHlwZSE9PWsuVmFyaWFibGVMZW5ndGhWZWN0b3ImJih0PWsuVmFyaWFibGVMZW5ndGhWZWN0b3IpLEk9dUEoZSx7Y29tcG9uZW50VHlwZTpSLkZsb2F0NjQscGl4ZWxUeXBlOnR9KX1lbHNlIGlmKGUuaW1hZ2VUeXBlLnBpeGVsVHlwZSE9PWsuU2NhbGFyJiZlLmltYWdlVHlwZS5waXhlbFR5cGUhPT1rLlZhcmlhYmxlTGVuZ3RoVmVjdG9yKXtsZXQgdD1rLlZhcmlhYmxlTGVuZ3RoVmVjdG9yO0k9dUEoZSx7cGl4ZWxUeXBlOnR9KX1yZXR1cm4gSS5pbWFnZVR5cGUucGl4ZWxUeXBlPT09ay5WYXJpYWJsZUxlbmd0aFZlY3RvciYmKEk9KGF3YWl0IEEoSSkpLm1hZ25pdHVkZUltYWdlKSxJfXZhciBVZT1Ycjthc3luYyBmdW5jdGlvbiB6cihBLGU9e30pe2xldCBJPVt7dHlwZTpoLkltYWdlfV0sdD1be3R5cGU6aC5JbWFnZSxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpLHIucHVzaCgiLS1tZW1vcnktaW8iKTtsZXQgcz0idmVjdG9yLW1hZ25pdHVkZSIsRT1lPy53ZWJXb3JrZXI7RT09PXZvaWQgMCYmKEU9YXdhaXQgWnQoKSk7bGV0e3dlYldvcmtlcjpDLHJldHVyblZhbHVlOmEsc3RkZXJyOm4sb3V0cHV0czpsfT1hd2FpdCBsQShzLHIsSSx0LHtwaXBlbGluZUJhc2VVcmw6UEEoKSxwaXBlbGluZVdvcmtlclVybDpBQSgpLHdlYldvcmtlcjpFLG5vQ29weTplPy5ub0NvcHl9KTtpZihhIT09MCYmbiE9PSIiKXRocm93IG5ldyBFcnJvcihuKTtyZXR1cm57d2ViV29ya2VyOkMsbWFnbml0dWRlSW1hZ2U6bFswXT8uZGF0YX19dmFyIE5lPXpyO2FzeW5jIGZ1bmN0aW9uIF9yKEEsZT17YmFzZWxpbmVJbWFnZXM6W119KXthc3luYyBmdW5jdGlvbiBJKGkpe2xldHt3ZWJXb3JrZXI6cyxtYWduaXR1ZGVJbWFnZTpFfT1hd2FpdCBOZShpKTtyZXR1cm4gcz8udGVybWluYXRlKCkse21hZ25pdHVkZUltYWdlOkV9fWxldCB0PWF3YWl0IFVlKEksQSkscj1hd2FpdCBQcm9taXNlLmFsbChlLmJhc2VsaW5lSW1hZ2VzLm1hcChhc3luYyBpPT5hd2FpdCBVZShJLGkpKSksZz17Li4uZX07cmV0dXJuIGcuYmFzZWxpbmVJbWFnZXM9cixSZSh0LGcpfXZhciAkcj1fcjt2YXIgVnQ9J2RhdGE6dGV4dC9qYXZhc2NyaXB0O2NoYXJzZXQ9dXRmLTgsdmFyIERlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZGU9KEEsdCk9Pntmb3IodmFyIGUgaW4gdClEZShBLGUse2dldDp0W2VdLGVudW1lcmFibGU6ITB9KX07dmFyIEV0PVN5bWJvbCgiQ29tbGluay5wcm94eSIpLGhlPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLHllPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxZQT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksUUE9U3ltYm9sKCJDb21saW5rLnRocm93biIpLGN0PUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLG1lPXtjYW5IYW5kbGU6QT0+Y3QoQSkmJkFbRXRdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6dCxwb3J0MjplfT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIGxBKEEsdCksW2UsW2VdXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxGZShBKX19LHdlPXtjYW5IYW5kbGU6QT0+Y3QoQSkmJlFBIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IHQ7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj90PXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06dD17aXNFcnJvcjohMSx2YWx1ZTpBfSxbdCxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSxmdD1uZXcgTWFwKFtbInByb3h5IixtZV0sWyJ0aHJvdyIsd2VdXSk7ZnVuY3Rpb24gcGUoQSx0KXtmb3IobGV0IGUgb2YgQSlpZih0PT09ZXx8ZT09PSIqInx8ZSBpbnN0YW5jZW9mIFJlZ0V4cCYmZS50ZXN0KHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGxBKEEsdD1nbG9iYWxUaGlzLGU9WyIqIl0pe3QuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gSShyKXtpZighcnx8IXIuZGF0YSlyZXR1cm47aWYoIXBlKGUsci5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luIFwnJHtyLm9yaWdpbn1cJyBmb3IgY29tbGluayBwcm94eWApO3JldHVybn1sZXR7aWQ6byx0eXBlOmcscGF0aDpDfT1PYmplY3QuYXNzaWduKHtwYXRoOltdfSxyLmRhdGEpLEU9KHIuZGF0YS5hcmd1bWVudExpc3R8fFtdKS5tYXAoTyksYTt0cnl7bGV0IHM9Qy5zbGljZSgwLC0xKS5yZWR1Y2UoKGYsQik9PmZbQl0sQSksbj1DLnJlZHVjZSgoZixCKT0+ZltCXSxBKTtzd2l0Y2goZyl7Y2FzZSJHRVQiOmE9bjticmVhaztjYXNlIlNFVCI6c1tDLnNsaWNlKC0xKVswXV09TyhyLmRhdGEudmFsdWUpLGE9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6YT1uLmFwcGx5KHMsRSk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgZj1uZXcgbiguLi5FKTthPUdlKGYpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6Zixwb3J0MjpCfT1uZXcgTWVzc2FnZUNoYW5uZWw7bEEoQSxCKSxhPU1BKGYsW2ZdKX1icmVhaztjYXNlIlJFTEVBU0UiOmE9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChzKXthPXt2YWx1ZTpzLFtRQV06MH19UHJvbWlzZS5yZXNvbHZlKGEpLmNhdGNoKHM9Pih7dmFsdWU6cyxbUUFdOjB9KSkudGhlbihzPT57bGV0W24sZl09ZkEocyk7dC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2lkOm99KSxmKSxnPT09IlJFTEVBU0UiJiYodC5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixJKSxsdCh0KSxZQSBpbiBBJiZ0eXBlb2YgQVtZQV09PSJmdW5jdGlvbiImJkFbWUFdKCkpfSkuY2F0Y2gocz0+e2xldFtuLGZdPWZBKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxbUUFdOjB9KTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuKSx7aWQ6b30pLGYpfSl9KSx0LnN0YXJ0JiZ0LnN0YXJ0KCl9ZnVuY3Rpb24gU2UoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gbHQoQSl7U2UoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBGZShBLHQpe3JldHVybiBxQShBLFtdLHQpfWZ1bmN0aW9uIGFBKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiB1dChBKXtyZXR1cm4gVyhBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9PntsdChBKX0pfXZhciBFQT1uZXcgV2Vha01hcCxjQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgdD0oRUEuZ2V0KEEpfHwwKS0xO0VBLnNldChBLHQpLHQ9PT0wJiZ1dChBKX0pO2Z1bmN0aW9uIFJlKEEsdCl7bGV0IGU9KEVBLmdldCh0KXx8MCkrMTtFQS5zZXQodCxlKSxjQSYmY0EucmVnaXN0ZXIoQSx0LEEpfWZ1bmN0aW9uIE5lKEEpe2NBJiZjQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIHFBKEEsdD1bXSxlPWZ1bmN0aW9uKCl7fSl7bGV0IEk9ITEscj1uZXcgUHJveHkoZSx7Z2V0KG8sZyl7aWYoYUEoSSksZz09PXllKXJldHVybigpPT57TmUociksdXQoQSksST0hMH07aWYoZz09PSJ0aGVuIil7aWYodC5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5yfTtsZXQgQz1XKEEse3R5cGU6IkdFVCIscGF0aDp0Lm1hcChFPT5FLnRvU3RyaW5nKCkpfSkudGhlbihPKTtyZXR1cm4gQy50aGVuLmJpbmQoQyl9cmV0dXJuIHFBKEEsWy4uLnQsZ10pfSxzZXQobyxnLEMpe2FBKEkpO2xldFtFLGFdPWZBKEMpO3JldHVybiBXKEEse3R5cGU6IlNFVCIscGF0aDpbLi4udCxnXS5tYXAocz0+cy50b1N0cmluZygpKSx2YWx1ZTpFfSxhKS50aGVuKE8pfSxhcHBseShvLGcsQyl7YUEoSSk7bGV0IEU9dFt0Lmxlbmd0aC0xXTtpZihFPT09aGUpcmV0dXJuIFcoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbihPKTtpZihFPT09ImJpbmQiKXJldHVybiBxQShBLHQuc2xpY2UoMCwtMSkpO2xldFthLHNdPVF0KEMpO3JldHVybiBXKEEse3R5cGU6IkFQUExZIixwYXRoOnQubWFwKG49Pm4udG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OmF9LHMpLnRoZW4oTyl9LGNvbnN0cnVjdChvLGcpe2FBKEkpO2xldFtDLEVdPVF0KGcpO3JldHVybiBXKEEse3R5cGU6IkNPTlNUUlVDVCIscGF0aDp0Lm1hcChhPT5hLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpDfSxFKS50aGVuKE8pfX0pO3JldHVybiBSZShyLEEpLHJ9ZnVuY3Rpb24gVWUoQSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sQSl9ZnVuY3Rpb24gUXQoQSl7bGV0IHQ9QS5tYXAoZkEpO3JldHVyblt0Lm1hcChlPT5lWzBdKSxVZSh0Lm1hcChlPT5lWzFdKSldfXZhciBEdD1uZXcgV2Vha01hcDtmdW5jdGlvbiBNQShBLHQpe3JldHVybiBEdC5zZXQoQSx0KSxBfWZ1bmN0aW9uIEdlKEEpe3JldHVybiBPYmplY3QuYXNzaWduKEEse1tFdF06ITB9KX1mdW5jdGlvbiBmQShBKXtmb3IobGV0W3QsZV1vZiBmdClpZihlLmNhbkhhbmRsZShBKSl7bGV0W0kscl09ZS5zZXJpYWxpemUoQSk7cmV0dXJuW3t0eXBlOiJIQU5ETEVSIixuYW1lOnQsdmFsdWU6SX0scl19cmV0dXJuW3t0eXBlOiJSQVciLHZhbHVlOkF9LER0LmdldChBKXx8W11dfWZ1bmN0aW9uIE8oQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4gZnQuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiBXKEEsdCxlKXtyZXR1cm4gbmV3IFByb21pc2UoST0+e2xldCByPWtlKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBvKGcpeyFnLmRhdGF8fCFnLmRhdGEuaWR8fGcuZGF0YS5pZCE9PXJ8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG8pLEkoZy5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpyfSx0KSxlKX0pfWZ1bmN0aW9uIGtlKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiB2KEEsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkodCxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6TGV9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOlRBfT1PYmplY3QsREE9KEE9PnQ9PntsZXQgZT1MZS5jYWxsKHQpO3JldHVybiBBW2VdfHwoQVtlXT1lLnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksRz1BPT4oQT1BLnRvTG93ZXJDYXNlKCksdD0+REEodCk9PT1BKSxkQT1BPT50PT50eXBlb2YgdD09PUEse2lzQXJyYXk6an09QXJyYXksJD1kQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gYmUoQSl7cmV0dXJuIEEhPT1udWxsJiYhJChBKSYmQS5jb25zdHJ1Y3RvciE9PW51bGwmJiEkKEEuY29uc3RydWN0b3IpJiZVKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciB5dD1HKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIEplKEEpe2xldCB0O3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/dD1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6dD1BJiZBLmJ1ZmZlciYmeXQoQS5idWZmZXIpLHR9dmFyIEhlPWRBKCJzdHJpbmciKSxVPWRBKCJmdW5jdGlvbiIpLG10PWRBKCJudW1iZXIiKSxoQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLFllPUE9PkE9PT0hMHx8QT09PSExLHVBPUE9PntpZihEQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCB0PVRBKEEpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpJiYhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiBBKSYmIShTeW1ib2wuaXRlcmF0b3IgaW4gQSl9LHFlPUcoIkRhdGUiKSxNZT1HKCJGaWxlIiksS2U9RygiQmxvYiIpLFRlPUcoIkZpbGVMaXN0IiksT2U9QT0+aEEoQSkmJlUoQS5waXBlKSx4ZT1BPT57bGV0IHQ7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8VShBLmFwcGVuZCkmJigodD1EQShBKSk9PT0iZm9ybWRhdGEifHx0PT09Im9iamVjdCImJlUoQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sUGU9RygiVVJMU2VhcmNoUGFyYW1zIiksW1dlLGplLFplLFZlXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChHKSxYZT1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZywiIik7ZnVuY3Rpb24gQUEoQSx0LHthbGxPd25LZXlzOmU9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgSSxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSxqKEEpKWZvcihJPTAscj1BLmxlbmd0aDtJPHI7SSsrKXQuY2FsbChudWxsLEFbSV0sSSxBKTtlbHNle2xldCBvPWU/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSk6T2JqZWN0LmtleXMoQSksZz1vLmxlbmd0aCxDO2ZvcihJPTA7STxnO0krKylDPW9bSV0sdC5jYWxsKG51bGwsQVtDXSxDLEEpfX1mdW5jdGlvbiB3dChBLHQpe3Q9dC50b0xvd2VyQ2FzZSgpO2xldCBlPU9iamVjdC5rZXlzKEEpLEk9ZS5sZW5ndGgscjtmb3IoO0ktLSA+MDspaWYocj1lW0ldLHQ9PT1yLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHI7cmV0dXJuIG51bGx9dmFyIHg9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Omdsb2JhbCxwdD1BPT4hJChBKSYmQSE9PXg7ZnVuY3Rpb24gS0EoKXtsZXR7Y2FzZWxlc3M6QX09cHQodGhpcykmJnRoaXN8fHt9LHQ9e30sZT0oSSxyKT0+e2xldCBvPUEmJnd0KHQscil8fHI7dUEodFtvXSkmJnVBKEkpP3Rbb109S0EodFtvXSxJKTp1QShJKT90W29dPUtBKHt9LEkpOmooSSk/dFtvXT1JLnNsaWNlKCk6dFtvXT1JfTtmb3IobGV0IEk9MCxyPWFyZ3VtZW50cy5sZW5ndGg7STxyO0krKylhcmd1bWVudHNbSV0mJkFBKGFyZ3VtZW50c1tJXSxlKTtyZXR1cm4gdH12YXIgX2U9KEEsdCxlLHthbGxPd25LZXlzOkl9PXt9KT0+KEFBKHQsKHIsbyk9PntlJiZVKHIpP0Fbb109dihyLGUpOkFbb109cn0se2FsbE93bktleXM6SX0pLEEpLHplPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksdmU9KEEsdCxlLEkpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSxJKSxBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse3ZhbHVlOnQucHJvdG90eXBlfSksZSYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSxlKX0sJGU9KEEsdCxlLEkpPT57bGV0IHIsbyxnLEM9e307aWYodD10fHx7fSxBPT1udWxsKXJldHVybiB0O2Rve2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLG89ci5sZW5ndGg7by0tID4wOylnPXJbb10sKCFJfHxJKGcsQSx0KSkmJiFDW2ddJiYodFtnXT1BW2ddLENbZ109ITApO0E9ZSE9PSExJiZUQShBKX13aGlsZShBJiYoIWV8fGUoQSx0KSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gdH0sQUk9KEEsdCxlKT0+e0E9U3RyaW5nKEEpLChlPT09dm9pZCAwfHxlPkEubGVuZ3RoKSYmKGU9QS5sZW5ndGgpLGUtPXQubGVuZ3RoO2xldCBJPUEuaW5kZXhPZih0LGUpO3JldHVybiBJIT09LTEmJkk9PT1lfSx0ST1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYoaihBKSlyZXR1cm4gQTtsZXQgdD1BLmxlbmd0aDtpZighbXQodCkpcmV0dXJuIG51bGw7bGV0IGU9bmV3IEFycmF5KHQpO2Zvcig7dC0tID4wOyllW3RdPUFbdF07cmV0dXJuIGV9LGVJPShBPT50PT5BJiZ0IGluc3RhbmNlb2YgQSkodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZUQShVaW50OEFycmF5KSksSUk9KEEsdCk9PntsZXQgST0oQSYmQVtTeW1ib2wuaXRlcmF0b3JdKS5jYWxsKEEpLHI7Zm9yKDsocj1JLm5leHQoKSkmJiFyLmRvbmU7KXtsZXQgbz1yLnZhbHVlO3QuY2FsbChBLG9bMF0sb1sxXSl9fSxyST0oQSx0KT0+e2xldCBlLEk9W107Zm9yKDsoZT1BLmV4ZWModCkpIT09bnVsbDspSS5wdXNoKGUpO3JldHVybiBJfSxvST1HKCJIVE1MRm9ybUVsZW1lbnQiKSxnST1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXFxzXShbYS16XFxkXSkoXFx3KikvZyxmdW5jdGlvbihlLEkscil7cmV0dXJuIEkudG9VcHBlckNhc2UoKStyfSksaHQ9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4odCxlKT0+QS5jYWxsKHQsZSkpKE9iamVjdC5wcm90b3R5cGUpLGlJPUcoIlJlZ0V4cCIpLFN0PShBLHQpPT57bGV0IGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSksST17fTtBQShlLChyLG8pPT57bGV0IGc7KGc9dChyLG8sQSkpIT09ITEmJihJW29dPWd8fHIpfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxJKX0sc0k9QT0+e1N0KEEsKHQsZSk9PntpZihVKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YoZSkhPT0tMSlyZXR1cm4hMTtsZXQgST1BW2VdO2lmKFUoSSkpe2lmKHQuZW51bWVyYWJsZT0hMSwid3JpdGFibGUiaW4gdCl7dC53cml0YWJsZT0hMTtyZXR1cm59dC5zZXR8fCh0LnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCBcJyIrZSsiXCciKX0pfX0pfSxuST0oQSx0KT0+e2xldCBlPXt9LEk9cj0+e3IuZm9yRWFjaChvPT57ZVtvXT0hMH0pfTtyZXR1cm4gaihBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KHQpKSxlfSxDST0oKT0+e30sQkk9KEEsdCk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOnQ7ZnVuY3Rpb24gYUkoQSl7cmV0dXJuISEoQSYmVShBLmFwcGVuZCkmJkFbU3ltYm9sLnRvU3RyaW5nVGFnXT09PSJGb3JtRGF0YSImJkFbU3ltYm9sLml0ZXJhdG9yXSl9dmFyIFFJPUE9PntsZXQgdD1uZXcgQXJyYXkoMTApLGU9KEkscik9PntpZihoQShJKSl7aWYodC5pbmRleE9mKEkpPj0wKXJldHVybjtpZighKCJ0b0pTT04iaW4gSSkpe3Rbcl09STtsZXQgbz1qKEkpP1tdOnt9O3JldHVybiBBQShJLChnLEMpPT57bGV0IEU9ZShnLHIrMSk7ISQoRSkmJihvW0NdPUUpfSksdFtyXT12b2lkIDAsb319cmV0dXJuIEl9O3JldHVybiBlKEEsMCl9LEVJPUcoIkFzeW5jRnVuY3Rpb24iKSxjST1BPT5BJiYoaEEoQSl8fFUoQSkpJiZVKEEudGhlbikmJlUoQS5jYXRjaCksRnQ9KChBLHQpPT5BP3NldEltbWVkaWF0ZTp0PygoZSxJKT0+KHguYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6cixkYXRhOm99KT0+e3I9PT14JiZvPT09ZSYmSS5sZW5ndGgmJkkuc2hpZnQoKSgpfSwhMSkscj0+e0kucHVzaChyKSx4LnBvc3RNZXNzYWdlKGUsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOmU9PnNldFRpbWVvdXQoZSkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsVSh4LnBvc3RNZXNzYWdlKSksZkk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKHgpOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8RnQsaT17aXNBcnJheTpqLGlzQXJyYXlCdWZmZXI6eXQsaXNCdWZmZXI6YmUsaXNGb3JtRGF0YTp4ZSxpc0FycmF5QnVmZmVyVmlldzpKZSxpc1N0cmluZzpIZSxpc051bWJlcjptdCxpc0Jvb2xlYW46WWUsaXNPYmplY3Q6aEEsaXNQbGFpbk9iamVjdDp1QSxpc1JlYWRhYmxlU3RyZWFtOldlLGlzUmVxdWVzdDpqZSxpc1Jlc3BvbnNlOlplLGlzSGVhZGVyczpWZSxpc1VuZGVmaW5lZDokLGlzRGF0ZTpxZSxpc0ZpbGU6TWUsaXNCbG9iOktlLGlzUmVnRXhwOmlJLGlzRnVuY3Rpb246VSxpc1N0cmVhbTpPZSxpc1VSTFNlYXJjaFBhcmFtczpQZSxpc1R5cGVkQXJyYXk6ZUksaXNGaWxlTGlzdDpUZSxmb3JFYWNoOkFBLG1lcmdlOktBLGV4dGVuZDpfZSx0cmltOlhlLHN0cmlwQk9NOnplLGluaGVyaXRzOnZlLHRvRmxhdE9iamVjdDokZSxraW5kT2Y6REEsa2luZE9mVGVzdDpHLGVuZHNXaXRoOkFJLHRvQXJyYXk6dEksZm9yRWFjaEVudHJ5OklJLG1hdGNoQWxsOnJJLGlzSFRNTEZvcm06b0ksaGFzT3duUHJvcGVydHk6aHQsaGFzT3duUHJvcDpodCxyZWR1Y2VEZXNjcmlwdG9yczpTdCxmcmVlemVNZXRob2RzOnNJLHRvT2JqZWN0U2V0Om5JLHRvQ2FtZWxDYXNlOmdJLG5vb3A6Q0ksdG9GaW5pdGVOdW1iZXI6QkksZmluZEtleTp3dCxnbG9iYWw6eCxpc0NvbnRleHREZWZpbmVkOnB0LGlzU3BlY0NvbXBsaWFudEZvcm06YUksdG9KU09OT2JqZWN0OlFJLGlzQXN5bmNGbjpFSSxpc1RoZW5hYmxlOmNJLHNldEltbWVkaWF0ZTpGdCxhc2FwOmZJfTtmdW5jdGlvbiBaKEEsdCxlLEkscil7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2ssdGhpcy5tZXNzYWdlPUEsdGhpcy5uYW1lPSJBeGlvc0Vycm9yIix0JiYodGhpcy5jb2RlPXQpLGUmJih0aGlzLmNvbmZpZz1lKSxJJiYodGhpcy5yZXF1ZXN0PUkpLHImJih0aGlzLnJlc3BvbnNlPXIsdGhpcy5zdGF0dXM9ci5zdGF0dXM/ci5zdGF0dXM6bnVsbCl9aS5pbmhlcml0cyhaLEVycm9yLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6aS50b0pTT05PYmplY3QodGhpcy5jb25maWcpLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnN0YXR1c319fSk7dmFyIFJ0PVoucHJvdG90eXBlLE50PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e050W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFosTnQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShSdCwiaXNBeGlvc0Vycm9yIix7dmFsdWU6ITB9KTtaLmZyb209KEEsdCxlLEkscixvKT0+e2xldCBnPU9iamVjdC5jcmVhdGUoUnQpO3JldHVybiBpLnRvRmxhdE9iamVjdChBLGcsZnVuY3Rpb24oRSl7cmV0dXJuIEUhPT1FcnJvci5wcm90b3R5cGV9LEM9PkMhPT0iaXNBeGlvc0Vycm9yIiksWi5jYWxsKGcsQS5tZXNzYWdlLHQsZSxJLHIpLGcuY2F1c2U9QSxnLm5hbWU9QS5uYW1lLG8mJk9iamVjdC5hc3NpZ24oZyxvKSxnfTt2YXIgdT1aO3ZhciB5QT1udWxsO2Z1bmN0aW9uIE9BKEEpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQSl8fGkuaXNBcnJheShBKX1mdW5jdGlvbiBHdChBKXtyZXR1cm4gaS5lbmRzV2l0aChBLCJbXSIpP0Euc2xpY2UoMCwtMik6QX1mdW5jdGlvbiBVdChBLHQsZSl7cmV0dXJuIEE/QS5jb25jYXQodCkubWFwKGZ1bmN0aW9uKHIsbyl7cmV0dXJuIHI9R3QociksIWUmJm8/IlsiK3IrIl0iOnJ9KS5qb2luKGU/Ii4iOiIiKTp0fWZ1bmN0aW9uIGxJKEEpe3JldHVybiBpLmlzQXJyYXkoQSkmJiFBLnNvbWUoT0EpfXZhciB1ST1pLnRvRmxhdE9iamVjdChpLHt9LG51bGwsZnVuY3Rpb24odCl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KHQpfSk7ZnVuY3Rpb24gREkoQSx0LGUpe2lmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdCIpO3Q9dHx8bmV3KHlBfHxGb3JtRGF0YSksZT1pLnRvRmxhdE9iamVjdChlLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsZnVuY3Rpb24obCxjKXtyZXR1cm4haS5pc1VuZGVmaW5lZChjW2xdKX0pO2xldCBJPWUubWV0YVRva2VucyxyPWUudmlzaXRvcnx8cyxvPWUuZG90cyxnPWUuaW5kZXhlcyxFPShlLkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYikmJmkuaXNTcGVjQ29tcGxpYW50Rm9ybSh0KTtpZighaS5pc0Z1bmN0aW9uKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gYShRKXtpZihRPT09bnVsbClyZXR1cm4iIjtpZihpLmlzRGF0ZShRKSlyZXR1cm4gUS50b0lTT1N0cmluZygpO2lmKCFFJiZpLmlzQmxvYihRKSl0aHJvdyBuZXcgdSgiQmxvYiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYSBCdWZmZXIgaW5zdGVhZC4iKTtyZXR1cm4gaS5pc0FycmF5QnVmZmVyKFEpfHxpLmlzVHlwZWRBcnJheShRKT9FJiZ0eXBlb2YgQmxvYj09ImZ1bmN0aW9uIj9uZXcgQmxvYihbUV0pOkJ1ZmZlci5mcm9tKFEpOlF9ZnVuY3Rpb24gcyhRLGwsYyl7bGV0IGQ9UTtpZihRJiYhYyYmdHlwZW9mIFE9PSJvYmplY3QiKXtpZihpLmVuZHNXaXRoKGwsInt9IikpbD1JP2w6bC5zbGljZSgwLC0yKSxRPUpTT04uc3RyaW5naWZ5KFEpO2Vsc2UgaWYoaS5pc0FycmF5KFEpJiZsSShRKXx8KGkuaXNGaWxlTGlzdChRKXx8aS5lbmRzV2l0aChsLCJbXSIpKSYmKGQ9aS50b0FycmF5KFEpKSlyZXR1cm4gbD1HdChsKSxkLmZvckVhY2goZnVuY3Rpb24obSxIKXshKGkuaXNVbmRlZmluZWQobSl8fG09PT1udWxsKSYmdC5hcHBlbmQoZz09PSEwP1V0KFtsXSxILG8pOmc9PT1udWxsP2w6bCsiW10iLGEobSkpfSksITF9cmV0dXJuIE9BKFEpPyEwOih0LmFwcGVuZChVdChjLGwsbyksYShRKSksITEpfWxldCBuPVtdLGY9T2JqZWN0LmFzc2lnbih1SSx7ZGVmYXVsdFZpc2l0b3I6cyxjb252ZXJ0VmFsdWU6YSxpc1Zpc2l0YWJsZTpPQX0pO2Z1bmN0aW9uIEIoUSxsKXtpZighaS5pc1VuZGVmaW5lZChRKSl7aWYobi5pbmRleE9mKFEpIT09LTEpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAiK2wuam9pbigiLiIpKTtuLnB1c2goUSksaS5mb3JFYWNoKFEsZnVuY3Rpb24oZCx5KXsoIShpLmlzVW5kZWZpbmVkKGQpfHxkPT09bnVsbCkmJnIuY2FsbCh0LGQsaS5pc1N0cmluZyh5KT95LnRyaW0oKTp5LGwsZikpPT09ITAmJkIoZCxsP2wuY29uY2F0KHkpOlt5XSl9KSxuLnBvcCgpfX1pZighaS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJkYXRhIG11c3QgYmUgYW4gb2JqZWN0Iik7cmV0dXJuIEIoQSksdH12YXIgTT1ESTtmdW5jdGlvbiBrdChBKXtsZXQgdD17IiEiOiIlMjUyMSIsIlwnIjoiJTI1MjciLCIoIjoiJTI1MjgiLCIpIjoiJTI1MjkiLCJ+IjoiJTI1N0UiLCIlMjUyMCI6IisiLCIlMjUwMCI6IlxcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyFcJygpfl18JTI1MjB8JTI1MDAvZyxmdW5jdGlvbihJKXtyZXR1cm4gdFtJXX0pfWZ1bmN0aW9uIEx0KEEsdCl7dGhpcy5fcGFpcnM9W10sQSYmTShBLHRoaXMsdCl9dmFyIGJ0PUx0LnByb3RvdHlwZTtidC5hcHBlbmQ9ZnVuY3Rpb24odCxlKXt0aGlzLl9wYWlycy5wdXNoKFt0LGVdKX07YnQudG9TdHJpbmc9ZnVuY3Rpb24odCl7bGV0IGU9dD9mdW5jdGlvbihJKXtyZXR1cm4gdC5jYWxsKHRoaXMsSSxrdCl9Omt0O3JldHVybiB0aGlzLl9wYWlycy5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIGUoclswXSkrIj0iK2UoclsxXSl9LCIiKS5qb2luKCImIil9O3ZhciBtQT1MdDtmdW5jdGlvbiBkSShBKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoLyUyNTNBL2dpLCI6IikucmVwbGFjZSgvJTI1MjQvZywiJCIpLnJlcGxhY2UoLyUyNTJDL2dpLCIsIikucmVwbGFjZSgvJTI1MjAvZywiKyIpLnJlcGxhY2UoLyUyNTVCL2dpLCJbIikucmVwbGFjZSgvJTI1NUQvZ2ksIl0iKX1mdW5jdGlvbiB0QShBLHQsZSl7aWYoIXQpcmV0dXJuIEE7bGV0IEk9ZSYmZS5lbmNvZGV8fGRJO2kuaXNGdW5jdGlvbihlKSYmKGU9e3NlcmlhbGl6ZTplfSk7bGV0IHI9ZSYmZS5zZXJpYWxpemUsbztpZihyP289cih0LGUpOm89aS5pc1VSTFNlYXJjaFBhcmFtcyh0KT90LnRvU3RyaW5nKCk6bmV3IG1BKHQsZSkudG9TdHJpbmcoSSksbyl7bGV0IGc9QS5pbmRleE9mKCIlMjMiKTtnIT09LTEmJihBPUEuc2xpY2UoMCxnKSksQSs9KEEuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikrb31yZXR1cm4gQX12YXIgeEE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmhhbmRsZXJzPVtdfXVzZSh0LGUsSSl7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOnQscmVqZWN0ZWQ6ZSxzeW5jaHJvbm91czpJP0kuc3luY2hyb25vdXM6ITEscnVuV2hlbjpJP0kucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX1lamVjdCh0KXt0aGlzLmhhbmRsZXJzW3RdJiYodGhpcy5oYW5kbGVyc1t0XT1udWxsKX1jbGVhcigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX1mb3JFYWNoKHQpe2kuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKEkpe0khPT1udWxsJiZ0KEkpfSl9fSxQQT14QTt2YXIgd0E9e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9O3ZhciBKdD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6bUE7dmFyIEh0PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgWXQ9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgcXQ9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6SnQsRm9ybURhdGE6SHQsQmxvYjpZdH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBaQT17fTtkZShaQSx7aGFzQnJvd3NlckVudjooKT0+akEsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5oSSxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9PnlJLG5hdmlnYXRvcjooKT0+V0Esb3JpZ2luOigpPT5tSX0pO3ZhciBqQT10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1IixXQT10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsaEk9akEmJighV0F8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2YoV0EucHJvZHVjdCk8MCkseUk9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLG1JPWpBJiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBoPXsuLi5aQSwuLi5xdH07ZnVuY3Rpb24gVkEoQSx0KXtyZXR1cm4gTShBLG5ldyBoLmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLE9iamVjdC5hc3NpZ24oe3Zpc2l0b3I6ZnVuY3Rpb24oZSxJLHIsbyl7cmV0dXJuIGguaXNOb2RlJiZpLmlzQnVmZmVyKGUpPyh0aGlzLmFwcGVuZChJLGUudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6by5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSx0KSl9ZnVuY3Rpb24gd0koQSl7cmV0dXJuIGkubWF0Y2hBbGwoL1xcdyt8XFxbKFxcdyopXS9nLEEpLm1hcCh0PT50WzBdPT09IltdIj8iIjp0WzFdfHx0WzBdKX1mdW5jdGlvbiBwSShBKXtsZXQgdD17fSxlPU9iamVjdC5rZXlzKEEpLEkscj1lLmxlbmd0aCxvO2ZvcihJPTA7STxyO0krKylvPWVbSV0sdFtvXT1BW29dO3JldHVybiB0fWZ1bmN0aW9uIFNJKEEpe2Z1bmN0aW9uIHQoZSxJLHIsbyl7bGV0IGc9ZVtvKytdO2lmKGc9PT0iX19wcm90b19fIilyZXR1cm4hMDtsZXQgQz1OdW1iZXIuaXNGaW5pdGUoK2cpLEU9bz49ZS5sZW5ndGg7cmV0dXJuIGc9IWcmJmkuaXNBcnJheShyKT9yLmxlbmd0aDpnLEU/KGkuaGFzT3duUHJvcChyLGcpP3JbZ109W3JbZ10sSV06cltnXT1JLCFDKTooKCFyW2ddfHwhaS5pc09iamVjdChyW2ddKSkmJihyW2ddPVtdKSx0KGUsSSxyW2ddLG8pJiZpLmlzQXJyYXkocltnXSkmJihyW2ddPXBJKHJbZ10pKSwhQyl9aWYoaS5pc0Zvcm1EYXRhKEEpJiZpLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IGU9e307cmV0dXJuIGkuZm9yRWFjaEVudHJ5KEEsKEkscik9Pnt0KHdJKEkpLHIsZSwwKX0pLGV9cmV0dXJuIG51bGx9dmFyIHBBPVNJO2Z1bmN0aW9uIEZJKEEsdCxlKXtpZihpLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4odHx8SlNPTi5wYXJzZSkoQSksaS50cmltKEEpfWNhdGNoKEkpe2lmKEkubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgSX1yZXR1cm4oZXx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBYQT17dHJhbnNpdGlvbmFsOndBLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbih0LGUpe2xldCBJPWUuZ2V0Q29udGVudFR5cGUoKXx8IiIscj1JLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxvPWkuaXNPYmplY3QodCk7aWYobyYmaS5pc0hUTUxGb3JtKHQpJiYodD1uZXcgRm9ybURhdGEodCkpLGkuaXNGb3JtRGF0YSh0KSlyZXR1cm4gcj9KU09OLnN0cmluZ2lmeShwQSh0KSk6dDtpZihpLmlzQXJyYXlCdWZmZXIodCl8fGkuaXNCdWZmZXIodCl8fGkuaXNTdHJlYW0odCl8fGkuaXNGaWxlKHQpfHxpLmlzQmxvYih0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcodCkpcmV0dXJuIHQuYnVmZmVyO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXModCkpcmV0dXJuIGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksdC50b1N0cmluZygpO2xldCBDO2lmKG8pe2lmKEkuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik+LTEpcmV0dXJuIFZBKHQsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigoQz1pLmlzRmlsZUxpc3QodCkpfHxJLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7bGV0IEU9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBNKEM/eyJmaWxlc1tdIjp0fTp0LEUmJm5ldyBFLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gb3x8cj8oZS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLEZJKHQpKTp0fV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKHQpe2xldCBlPXRoaXMudHJhbnNpdGlvbmFsfHxYQS50cmFuc2l0aW9uYWwsST1lJiZlLmZvcmNlZEpTT05QYXJzaW5nLHI9dGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYoaS5pc1Jlc3BvbnNlKHQpfHxpLmlzUmVhZGFibGVTdHJlYW0odCkpcmV0dXJuIHQ7aWYodCYmaS5pc1N0cmluZyh0KSYmKEkmJiF0aGlzLnJlc3BvbnNlVHlwZXx8cikpe2xldCBnPSEoZSYmZS5zaWxlbnRKU09OUGFyc2luZykmJnI7dHJ5e3JldHVybiBKU09OLnBhcnNlKHQpfWNhdGNoKEMpe2lmKGcpdGhyb3cgQy5uYW1lPT09IlN5bnRheEVycm9yIj91LmZyb20oQyx1LkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpOkN9fXJldHVybiB0fV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpoLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpoLmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTIwMCYmdDwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIl0sQT0+e1hBLmhlYWRlcnNbQV09e319KTt2YXIgVj1YQTt2YXIgUkk9aS50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSxNdD1BPT57bGV0IHQ9e30sZSxJLHI7cmV0dXJuIEEmJkEuc3BsaXQoYCUwQWApLmZvckVhY2goZnVuY3Rpb24oZyl7cj1nLmluZGV4T2YoIjoiKSxlPWcuc3Vic3RyaW5nKDAscikudHJpbSgpLnRvTG93ZXJDYXNlKCksST1nLnN1YnN0cmluZyhyKzEpLnRyaW0oKSwhKCFlfHx0W2VdJiZSSVtlXSkmJihlPT09InNldC1jb29raWUiP3RbZV0/dFtlXS5wdXNoKEkpOnRbZV09W0ldOnRbZV09dFtlXT90W2VdKyIsICIrSTpJKX0pLHR9O3ZhciBLdD1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIGVBKEEpe3JldHVybiBBJiZTdHJpbmcoQSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gU0EoQSl7cmV0dXJuIEE9PT0hMXx8QT09bnVsbD9BOmkuaXNBcnJheShBKT9BLm1hcChTQSk6U3RyaW5nKEEpfWZ1bmN0aW9uIE5JKEEpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCksZT0vKFteXFxzLDs9XSspXFxzKig/Oj1cXHMqKFteLDtdKykpPy9nLEk7Zm9yKDtJPWUuZXhlYyhBKTspdFtJWzFdXT1JWzJdO3JldHVybiB0fXZhciBVST1BPT4vXlstX2EtekEtWjAtOV5gfH4sISUyMyQlJlwnKisuXSskLy50ZXN0KEEudHJpbSgpKTtmdW5jdGlvbiBfQShBLHQsZSxJLHIpe2lmKGkuaXNGdW5jdGlvbihJKSlyZXR1cm4gSS5jYWxsKHRoaXMsdCxlKTtpZihyJiYodD1lKSwhIWkuaXNTdHJpbmcodCkpe2lmKGkuaXNTdHJpbmcoSSkpcmV0dXJuIHQuaW5kZXhPZihJKSE9PS0xO2lmKGkuaXNSZWdFeHAoSSkpcmV0dXJuIEkudGVzdCh0KX19ZnVuY3Rpb24gR0koQSl7cmV0dXJuIEEudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcXGRdKShcXHcqKS9nLCh0LGUsSSk9PmUudG9VcHBlckNhc2UoKStJKX1mdW5jdGlvbiBrSShBLHQpe2xldCBlPWkudG9DYW1lbENhc2UoIiAiK3QpO1siZ2V0Iiwic2V0IiwiaGFzIl0uZm9yRWFjaChJPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsSStlLHt2YWx1ZTpmdW5jdGlvbihyLG8sZyl7cmV0dXJuIHRoaXNbSV0uY2FsbCh0aGlzLHQscixvLGcpfSxjb25maWd1cmFibGU6ITB9KX0pfXZhciBYPWNsYXNze2NvbnN0cnVjdG9yKHQpe3QmJnRoaXMuc2V0KHQpfXNldCh0LGUsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBvKEMsRSxhKXtsZXQgcz1lQShFKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IG49aS5maW5kS2V5KHIscyk7KCFufHxyW25dPT09dm9pZCAwfHxhPT09ITB8fGE9PT12b2lkIDAmJnJbbl0hPT0hMSkmJihyW258fEVdPVNBKEMpKX1sZXQgZz0oQyxFKT0+aS5mb3JFYWNoKEMsKGEscyk9Pm8oYSxzLEUpKTtpZihpLmlzUGxhaW5PYmplY3QodCl8fHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKWcodCxlKTtlbHNlIGlmKGkuaXNTdHJpbmcodCkmJih0PXQudHJpbSgpKSYmIVVJKHQpKWcoTXQodCksZSk7ZWxzZSBpZihpLmlzSGVhZGVycyh0KSlmb3IobGV0W0MsRV1vZiB0LmVudHJpZXMoKSlvKEUsQyxJKTtlbHNlIHQhPW51bGwmJm8oZSx0LEkpO3JldHVybiB0aGlzfWdldCh0LGUpe2lmKHQ9ZUEodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighZSlyZXR1cm4gcjtpZihlPT09ITApcmV0dXJuIE5JKHIpO2lmKGkuaXNGdW5jdGlvbihlKSlyZXR1cm4gZS5jYWxsKHRoaXMscixJKTtpZihpLmlzUmVnRXhwKGUpKXJldHVybiBlLmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyh0LGUpe2lmKHQ9ZUEodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCFlfHxfQSh0aGlzLHRoaXNbSV0sSSxlKSkpfXJldHVybiExfWRlbGV0ZSh0LGUpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBvKGcpe2lmKGc9ZUEoZyksZyl7bGV0IEM9aS5maW5kS2V5KEksZyk7QyYmKCFlfHxfQShJLElbQ10sQyxlKSkmJihkZWxldGUgSVtDXSxyPSEwKX19cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2gobyk6byh0KSxyfWNsZWFyKHQpe2xldCBlPU9iamVjdC5rZXlzKHRoaXMpLEk9ZS5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBvPWVbSV07KCF0fHxfQSh0aGlzLHRoaXNbb10sbyx0LCEwKSkmJihkZWxldGUgdGhpc1tvXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUodCl7bGV0IGU9dGhpcyxJPXt9O3JldHVybiBpLmZvckVhY2godGhpcywocixvKT0+e2xldCBnPWkuZmluZEtleShJLG8pO2lmKGcpe2VbZ109U0EociksZGVsZXRlIGVbb107cmV0dXJufWxldCBDPXQ/R0kobyk6U3RyaW5nKG8pLnRyaW0oKTtDIT09byYmZGVsZXRlIGVbb10sZVtDXT1TQShyKSxJW0NdPSEwfSksdGhpc31jb25jYXQoLi4udCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4udCl9dG9KU09OKHQpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYoZVtyXT10JiZpLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksZX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbdCxlXSk9PnQrIjogIitlKS5qb2luKGAlMEFgKX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJBeGlvc0hlYWRlcnMifXN0YXRpYyBmcm9tKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpcz90Om5ldyB0aGlzKHQpfXN0YXRpYyBjb25jYXQodCwuLi5lKXtsZXQgST1uZXcgdGhpcyh0KTtyZXR1cm4gZS5mb3JFYWNoKHI9Pkkuc2V0KHIpKSxJfXN0YXRpYyBhY2Nlc3Nvcih0KXtsZXQgST0odGhpc1tLdF09dGhpc1tLdF09e2FjY2Vzc29yczp7fX0pLmFjY2Vzc29ycyxyPXRoaXMucHJvdG90eXBlO2Z1bmN0aW9uIG8oZyl7bGV0IEM9ZUEoZyk7SVtDXXx8KGtJKHIsZyksSVtDXT0hMCl9cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2gobyk6byh0KSx0aGlzfX07WC5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7aS5yZWR1Y2VEZXNjcmlwdG9ycyhYLnByb3RvdHlwZSwoe3ZhbHVlOkF9LHQpPT57bGV0IGU9dFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQoSSl7dGhpc1tlXT1JfX19KTtpLmZyZWV6ZU1ldGhvZHMoWCk7dmFyIFM9WDtmdW5jdGlvbiBJQShBLHQpe2xldCBlPXRoaXN8fFYsST10fHxlLHI9Uy5mcm9tKEkuaGVhZGVycyksbz1JLmRhdGE7cmV0dXJuIGkuZm9yRWFjaChBLGZ1bmN0aW9uKEMpe289Qy5jYWxsKGUsbyxyLm5vcm1hbGl6ZSgpLHQ/dC5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksb31mdW5jdGlvbiByQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIFR0KEEsdCxlKXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELHQsZSksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1pLmluaGVyaXRzKFR0LHUse19fQ0FOQ0VMX186ITB9KTt2YXIgTD1UdDtmdW5jdGlvbiBvQShBLHQsZSl7bGV0IEk9ZS5jb25maWcudmFsaWRhdGVTdGF0dXM7IWUuc3RhdHVzfHwhSXx8SShlLnN0YXR1cyk/QShlKTp0KG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZS5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihlLnN0YXR1cy8xMDApLTRdLGUuY29uZmlnLGUucmVxdWVzdCxlKSl9ZnVuY3Rpb24gekEoQSl7bGV0IHQ9L14oWy0rXFx3XXsxLDI1fSkoOj9cXC9cXC98OikvLmV4ZWMoQSk7cmV0dXJuIHQmJnRbMV18fCIifWZ1bmN0aW9uIExJKEEsdCl7QT1BfHwxMDtsZXQgZT1uZXcgQXJyYXkoQSksST1uZXcgQXJyYXkoQSkscj0wLG89MCxnO3JldHVybiB0PXQhPT12b2lkIDA/dDoxZTMsZnVuY3Rpb24oRSl7bGV0IGE9RGF0ZS5ub3coKSxzPUlbb107Z3x8KGc9YSksZVtyXT1FLElbcl09YTtsZXQgbj1vLGY9MDtmb3IoO24hPT1yOylmKz1lW24rK10sbj1uJUE7aWYocj0ocisxKSVBLHI9PT1vJiYobz0obysxKSVBKSxhLWc8dClyZXR1cm47bGV0IEI9cyYmYS1zO3JldHVybiBCP01hdGgucm91bmQoZioxZTMvQik6dm9pZCAwfX12YXIgT3Q9TEk7ZnVuY3Rpb24gYkkoQSx0KXtsZXQgZT0wLEk9MWUzL3QscixvLGc9KGEscz1EYXRlLm5vdygpKT0+e2U9cyxyPW51bGwsbyYmKGNsZWFyVGltZW91dChvKSxvPW51bGwpLEEuYXBwbHkobnVsbCxhKX07cmV0dXJuWyguLi5hKT0+e2xldCBzPURhdGUubm93KCksbj1zLWU7bj49ST9nKGEscyk6KHI9YSxvfHwobz1zZXRUaW1lb3V0KCgpPT57bz1udWxsLGcocil9LEktbikpKX0sKCk9PnImJmcocildfXZhciB4dD1iSTt2YXIgXz0oQSx0LGU9Myk9PntsZXQgST0wLHI9T3QoNTAsMjUwKTtyZXR1cm4geHQobz0+e2xldCBnPW8ubG9hZGVkLEM9by5sZW5ndGhDb21wdXRhYmxlP28udG90YWw6dm9pZCAwLEU9Zy1JLGE9cihFKSxzPWc8PUM7ST1nO2xldCBuPXtsb2FkZWQ6Zyx0b3RhbDpDLHByb2dyZXNzOkM/Zy9DOnZvaWQgMCxieXRlczpFLHJhdGU6YXx8dm9pZCAwLGVzdGltYXRlZDphJiZDJiZzPyhDLWcpL2E6dm9pZCAwLGV2ZW50Om8sbGVuZ3RoQ29tcHV0YWJsZTpDIT1udWxsLFt0PyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKG4pfSxlKX0sdkE9KEEsdCk9PntsZXQgZT1BIT1udWxsO3JldHVybltJPT50WzBdKHtsZW5ndGhDb21wdXRhYmxlOmUsdG90YWw6QSxsb2FkZWQ6SX0pLHRbMV1dfSwkQT1BPT4oLi4udCk9PmkuYXNhcCgoKT0+QSguLi50KSk7dmFyIFB0PWguaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSx0KT0+ZT0+KGU9bmV3IFVSTChlLGgub3JpZ2luKSxBLnByb3RvY29sPT09ZS5wcm90b2NvbCYmQS5ob3N0PT09ZS5ob3N0JiYodHx8QS5wb3J0PT09ZS5wb3J0KSkpKG5ldyBVUkwoaC5vcmlnaW4pLGgubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KGgubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgV3Q9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsdCxlLEkscixvKXtsZXQgZz1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpXTtpLmlzTnVtYmVyKGUpJiZnLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZShlKS50b0dNVFN0cmluZygpKSxpLmlzU3RyaW5nKEkpJiZnLnB1c2goInBhdGg9IitJKSxpLmlzU3RyaW5nKHIpJiZnLnB1c2goImRvbWFpbj0iK3IpLG89PT0hMCYmZy5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9Zy5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCB0PWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxcXHMqKSgiK0ErIik9KFteO10qKSIpKTtyZXR1cm4gdD9kZWNvZGVVUklDb21wb25lbnQodFszXSk6bnVsbH0scmVtb3ZlKEEpe3RoaXMud3JpdGUoQSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiBBdChBKXtyZXR1cm4vXihbYS16XVthLXpcXGQrXFwtLl0qOik/XFwvXFwvL2kudGVzdChBKX1mdW5jdGlvbiB0dChBLHQpe3JldHVybiB0P0EucmVwbGFjZSgvXFwvP1xcLyQvLCIiKSsiLyIrdC5yZXBsYWNlKC9eXFwvKy8sIiIpOkF9ZnVuY3Rpb24gZ0EoQSx0LGUpe2xldCBJPSFBdCh0KTtyZXR1cm4gQSYmKEl8fGU9PSExKT90dChBLHQpOnR9dmFyIGp0PUE9PkEgaW5zdGFuY2VvZiBTP3suLi5BfTpBO2Z1bmN0aW9uIGsoQSx0KXt0PXR8fHt9O2xldCBlPXt9O2Z1bmN0aW9uIEkoYSxzLG4sZil7cmV0dXJuIGkuaXNQbGFpbk9iamVjdChhKSYmaS5pc1BsYWluT2JqZWN0KHMpP2kubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6Zn0sYSxzKTppLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZSh7fSxzKTppLmlzQXJyYXkocyk/cy5zbGljZSgpOnN9ZnVuY3Rpb24gcihhLHMsbixmKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChhKSlyZXR1cm4gSSh2b2lkIDAsYSxuLGYpfWVsc2UgcmV0dXJuIEkoYSxzLG4sZil9ZnVuY3Rpb24gbyhhLHMpe2lmKCFpLmlzVW5kZWZpbmVkKHMpKXJldHVybiBJKHZvaWQgMCxzKX1mdW5jdGlvbiBnKGEscyl7aWYoaS5pc1VuZGVmaW5lZChzKSl7aWYoIWkuaXNVbmRlZmluZWQoYSkpcmV0dXJuIEkodm9pZCAwLGEpfWVsc2UgcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIEMoYSxzLG4pe2lmKG4gaW4gdClyZXR1cm4gSShhLHMpO2lmKG4gaW4gQSlyZXR1cm4gSSh2b2lkIDAsYSl9bGV0IEU9e3VybDpvLG1ldGhvZDpvLGRhdGE6byxiYXNlVVJMOmcsdHJhbnNmb3JtUmVxdWVzdDpnLHRyYW5zZm9ybVJlc3BvbnNlOmcscGFyYW1zU2VyaWFsaXplcjpnLHRpbWVvdXQ6Zyx0aW1lb3V0TWVzc2FnZTpnLHdpdGhDcmVkZW50aWFsczpnLHdpdGhYU1JGVG9rZW46ZyxhZGFwdGVyOmcscmVzcG9uc2VUeXBlOmcseHNyZkNvb2tpZU5hbWU6Zyx4c3JmSGVhZGVyTmFtZTpnLG9uVXBsb2FkUHJvZ3Jlc3M6ZyxvbkRvd25sb2FkUHJvZ3Jlc3M6ZyxkZWNvbXByZXNzOmcsbWF4Q29udGVudExlbmd0aDpnLG1heEJvZHlMZW5ndGg6ZyxiZWZvcmVSZWRpcmVjdDpnLHRyYW5zcG9ydDpnLGh0dHBBZ2VudDpnLGh0dHBzQWdlbnQ6ZyxjYW5jZWxUb2tlbjpnLHNvY2tldFBhdGg6ZyxyZXNwb25zZUVuY29kaW5nOmcsdmFsaWRhdGVTdGF0dXM6QyxoZWFkZXJzOihhLHMsbik9PnIoanQoYSksanQocyksbiwhMCl9O3JldHVybiBpLmZvckVhY2goT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSxBLHQpKSxmdW5jdGlvbihzKXtsZXQgbj1FW3NdfHxyLGY9bihBW3NdLHRbc10scyk7aS5pc1VuZGVmaW5lZChmKSYmbiE9PUN8fChlW3NdPWYpfSksZX12YXIgRkE9QT0+e2xldCB0PWsoe30sQSkse2RhdGE6ZSx3aXRoWFNSRlRva2VuOkkseHNyZkhlYWRlck5hbWU6cix4c3JmQ29va2llTmFtZTpvLGhlYWRlcnM6ZyxhdXRoOkN9PXQ7dC5oZWFkZXJzPWc9Uy5mcm9tKGcpLHQudXJsPXRBKGdBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKSxBLnBhcmFtcyxBLnBhcmFtc1NlcmlhbGl6ZXIpLEMmJmcuc2V0KCJBdXRob3JpemF0aW9uIiwiQmFzaWMgIitidG9hKChDLnVzZXJuYW1lfHwiIikrIjoiKyhDLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChDLnBhc3N3b3JkKSk6IiIpKSk7bGV0IEU7aWYoaS5pc0Zvcm1EYXRhKGUpKXtpZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudnx8aC5oYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYpZy5zZXRDb250ZW50VHlwZSh2b2lkIDApO2Vsc2UgaWYoKEU9Zy5nZXRDb250ZW50VHlwZSgpKSE9PSExKXtsZXRbYSwuLi5zXT1FP0Uuc3BsaXQoIjsiKS5tYXAobj0+bi50cmltKCkpLmZpbHRlcihCb29sZWFuKTpbXTtnLnNldENvbnRlbnRUeXBlKFthfHwibXVsdGlwYXJ0L2Zvcm0tZGF0YSIsLi4uc10uam9pbigiOyAiKSl9fWlmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52JiYoSSYmaS5pc0Z1bmN0aW9uKEkpJiYoST1JKHQpKSxJfHxJIT09ITEmJlB0KHQudXJsKSkpe2xldCBhPXImJm8mJld0LnJlYWQobyk7YSYmZy5zZXQocixhKX1yZXR1cm4gdH07dmFyIEpJPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsWnQ9SkkmJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLEkpe2xldCByPUZBKEEpLG89ci5kYXRhLGc9Uy5mcm9tKHIuaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpDLG9uVXBsb2FkUHJvZ3Jlc3M6RSxvbkRvd25sb2FkUHJvZ3Jlc3M6YX09cixzLG4sZixCLFE7ZnVuY3Rpb24gbCgpe0ImJkIoKSxRJiZRKCksci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShzKSxyLnNpZ25hbCYmci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpfWxldCBjPW5ldyBYTUxIdHRwUmVxdWVzdDtjLm9wZW4oci5tZXRob2QudG9VcHBlckNhc2UoKSxyLnVybCwhMCksYy50aW1lb3V0PXIudGltZW91dDtmdW5jdGlvbiBkKCl7aWYoIWMpcmV0dXJuO2xldCBtPVMuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGMmJmMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLFI9e2RhdGE6IUN8fEM9PT0idGV4dCJ8fEM9PT0ianNvbiI/Yy5yZXNwb25zZVRleHQ6Yy5yZXNwb25zZSxzdGF0dXM6Yy5zdGF0dXMsc3RhdHVzVGV4dDpjLnN0YXR1c1RleHQsaGVhZGVyczptLGNvbmZpZzpBLHJlcXVlc3Q6Y307b0EoZnVuY3Rpb24oVCl7ZShUKSxsKCl9LGZ1bmN0aW9uKFQpe0koVCksbCgpfSxSKSxjPW51bGx9Im9ubG9hZGVuZCJpbiBjP2Mub25sb2FkZW5kPWQ6Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshY3x8Yy5yZWFkeVN0YXRlIT09NHx8Yy5zdGF0dXM9PT0wJiYhKGMucmVzcG9uc2VVUkwmJmMucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KGQpfSxjLm9uYWJvcnQ9ZnVuY3Rpb24oKXtjJiYoSShuZXcgdSgiUmVxdWVzdCBhYm9ydGVkIix1LkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGwpfSxjLm9uZXJyb3I9ZnVuY3Rpb24oKXtJKG5ldyB1KCJOZXR3b3JrIEVycm9yIix1LkVSUl9ORVRXT1JLLEEsYykpLGM9bnVsbH0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgSD1yLnRpbWVvdXQ/InRpbWVvdXQgb2YgIityLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsUj1yLnRyYW5zaXRpb25hbHx8d0E7ci50aW1lb3V0RXJyb3JNZXNzYWdlJiYoSD1yLnRpbWVvdXRFcnJvck1lc3NhZ2UpLEkobmV3IHUoSCxSLmNsYXJpZnlUaW1lb3V0RXJyb3I/dS5FVElNRURPVVQ6dS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsfSxvPT09dm9pZCAwJiZnLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGMmJmkuZm9yRWFjaChnLnRvSlNPTigpLGZ1bmN0aW9uKEgsUil7Yy5zZXRSZXF1ZXN0SGVhZGVyKFIsSCl9KSxpLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGMud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLEMmJkMhPT0ianNvbiImJihjLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksYSYmKFtmLFFdPV8oYSwhMCksYy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZikpLEUmJmMudXBsb2FkJiYoW24sQl09XyhFKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsbiksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsQikpLChyLmNhbmNlbFRva2VufHxyLnNpZ25hbCkmJihzPW09PntjJiYoSSghbXx8bS50eXBlP25ldyBMKG51bGwsQSxjKTptKSxjLmFib3J0KCksYz1udWxsKX0sci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi5zdWJzY3JpYmUocyksci5zaWduYWwmJihyLnNpZ25hbC5hYm9ydGVkP3MoKTpyLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIscykpKTtsZXQgeT16QShyLnVybCk7aWYoeSYmaC5wcm90b2NvbHMuaW5kZXhPZih5KT09PS0xKXtJKG5ldyB1KCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK3krIjoiLHUuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59Yy5zZW5kKG98fG51bGwpfSl9O3ZhciBIST0oQSx0KT0+e2xldHtsZW5ndGg6ZX09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKHR8fGUpe2xldCBJPW5ldyBBYm9ydENvbnRyb2xsZXIscixvPWZ1bmN0aW9uKGEpe2lmKCFyKXtyPSEwLEMoKTtsZXQgcz1hIGluc3RhbmNlb2YgRXJyb3I/YTp0aGlzLnJlYXNvbjtJLmFib3J0KHMgaW5zdGFuY2VvZiB1P3M6bmV3IEwocyBpbnN0YW5jZW9mIEVycm9yP3MubWVzc2FnZTpzKSl9fSxnPXQmJnNldFRpbWVvdXQoKCk9PntnPW51bGwsbyhuZXcgdShgdGltZW91dCAke3R9IG9mIG1zIGV4Y2VlZGVkYCx1LkVUSU1FRE9VVCkpfSx0KSxDPSgpPT57QSYmKGcmJmNsZWFyVGltZW91dChnKSxnPW51bGwsQS5mb3JFYWNoKGE9PnthLnVuc3Vic2NyaWJlP2EudW5zdWJzY3JpYmUobyk6YS5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsbyl9KSxBPW51bGwpfTtBLmZvckVhY2goYT0+YS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbykpO2xldHtzaWduYWw6RX09STtyZXR1cm4gRS51bnN1YnNjcmliZT0oKT0+aS5hc2FwKEMpLEV9fSxWdD1ISTt2YXIgWUk9ZnVuY3Rpb24qKEEsdCl7bGV0IGU9QS5ieXRlTGVuZ3RoO2lmKCF0fHxlPHQpe3lpZWxkIEE7cmV0dXJufWxldCBJPTAscjtmb3IoO0k8ZTspcj1JK3QseWllbGQgQS5zbGljZShJLHIpLEk9cn0scUk9YXN5bmMgZnVuY3Rpb24qKEEsdCl7Zm9yIGF3YWl0KGxldCBlIG9mIE1JKEEpKXlpZWxkKllJKGUsdCl9LE1JPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IHQ9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTplLHZhbHVlOkl9PWF3YWl0IHQucmVhZCgpO2lmKGUpYnJlYWs7eWllbGQgSX19ZmluYWxseXthd2FpdCB0LmNhbmNlbCgpfX0sZXQ9KEEsdCxlLEkpPT57bGV0IHI9cUkoQSx0KSxvPTAsZyxDPUU9PntnfHwoZz0hMCxJJiZJKEUpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChFKXt0cnl7bGV0e2RvbmU6YSx2YWx1ZTpzfT1hd2FpdCByLm5leHQoKTtpZihhKXtDKCksRS5jbG9zZSgpO3JldHVybn1sZXQgbj1zLmJ5dGVMZW5ndGg7aWYoZSl7bGV0IGY9bys9bjtlKGYpfUUuZW5xdWV1ZShuZXcgVWludDhBcnJheShzKSl9Y2F0Y2goYSl7dGhyb3cgQyhhKSxhfX0sY2FuY2VsKEUpe3JldHVybiBDKEUpLHIucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBOQT10eXBlb2YgZmV0Y2g9PSJmdW5jdGlvbiImJnR5cGVvZiBSZXF1ZXN0PT0iZnVuY3Rpb24iJiZ0eXBlb2YgUmVzcG9uc2U9PSJmdW5jdGlvbiIsX3Q9TkEmJnR5cGVvZiBSZWFkYWJsZVN0cmVhbT09ImZ1bmN0aW9uIixLST1OQSYmKHR5cGVvZiBUZXh0RW5jb2Rlcj09ImZ1bmN0aW9uIj8oQT0+dD0+QS5lbmNvZGUodCkpKG5ldyBUZXh0RW5jb2Rlcik6YXN5bmMgQT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IFJlc3BvbnNlKEEpLmFycmF5QnVmZmVyKCkpKSx6dD0oQSwuLi50KT0+e3RyeXtyZXR1cm4hIUEoLi4udCl9Y2F0Y2h7cmV0dXJuITF9fSxUST1fdCYmenQoKCk9PntsZXQgQT0hMSx0PW5ldyBSZXF1ZXN0KGgub3JpZ2luLHtib2R5Om5ldyBSZWFkYWJsZVN0cmVhbSxtZXRob2Q6IlBPU1QiLGdldCBkdXBsZXgoKXtyZXR1cm4gQT0hMCwiaGFsZiJ9fSkuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpO3JldHVybiBBJiYhdH0pLFh0PTY0KjEwMjQsSXQ9X3QmJnp0KCgpPT5pLmlzUmVhZGFibGVTdHJlYW0obmV3IFJlc3BvbnNlKCIiKS5ib2R5KSksUkE9e3N0cmVhbTpJdCYmKEE9PkEuYm9keSl9O05BJiYoQT0+e1sidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaCh0PT57IVJBW3RdJiYoUkFbdF09aS5pc0Z1bmN0aW9uKEFbdF0pP2U9PmVbdF0oKTooZSxJKT0+e3Rocm93IG5ldyB1KGBSZXNwb25zZSB0eXBlIFwnJHt0fVwnIGlzIG5vdCBzdXBwb3J0ZWRgLHUuRVJSX05PVF9TVVBQT1JULEkpfSl9KX0pKG5ldyBSZXNwb25zZSk7dmFyIE9JPWFzeW5jIEE9PntpZihBPT1udWxsKXJldHVybiAwO2lmKGkuaXNCbG9iKEEpKXJldHVybiBBLnNpemU7aWYoaS5pc1NwZWNDb21wbGlhbnRGb3JtKEEpKXJldHVybihhd2FpdCBuZXcgUmVxdWVzdChoLm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OkF9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcoQSl8fGkuaXNBcnJheUJ1ZmZlcihBKSlyZXR1cm4gQS5ieXRlTGVuZ3RoO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXMoQSkmJihBPUErIiIpLGkuaXNTdHJpbmcoQSkpcmV0dXJuKGF3YWl0IEtJKEEpKS5ieXRlTGVuZ3RofSx4ST1hc3luYyhBLHQpPT57bGV0IGU9aS50b0Zpbml0ZU51bWJlcihBLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGU/P09JKHQpfSx2dD1OQSYmKGFzeW5jIEE9PntsZXR7dXJsOnQsbWV0aG9kOmUsZGF0YTpJLHNpZ25hbDpyLGNhbmNlbFRva2VuOm8sdGltZW91dDpnLG9uRG93bmxvYWRQcm9ncmVzczpDLG9uVXBsb2FkUHJvZ3Jlc3M6RSxyZXNwb25zZVR5cGU6YSxoZWFkZXJzOnMsd2l0aENyZWRlbnRpYWxzOm49InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6Zn09RkEoQSk7YT1hPyhhKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgQj1WdChbcixvJiZvLnRvQWJvcnRTaWduYWwoKV0sZyksUSxsPUImJkIudW5zdWJzY3JpYmUmJigoKT0+e0IudW5zdWJzY3JpYmUoKX0pLGM7dHJ5e2lmKEUmJlRJJiZlIT09ImdldCImJmUhPT0iaGVhZCImJihjPWF3YWl0IHhJKHMsSSkpIT09MCl7bGV0IFI9bmV3IFJlcXVlc3QodCx7bWV0aG9kOiJQT1NUIixib2R5OkksZHVwbGV4OiJoYWxmIn0pLHE7aWYoaS5pc0Zvcm1EYXRhKEkpJiYocT1SLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJnMuc2V0Q29udGVudFR5cGUocSksUi5ib2R5KXtsZXRbVCxCQV09dkEoYyxfKCRBKEUpKSk7ST1ldChSLmJvZHksWHQsVCxCQSl9fWkuaXNTdHJpbmcobil8fChuPW4/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IGQ9ImNyZWRlbnRpYWxzImluIFJlcXVlc3QucHJvdG90eXBlO1E9bmV3IFJlcXVlc3QodCx7Li4uZixzaWduYWw6QixtZXRob2Q6ZS50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6cy5ub3JtYWxpemUoKS50b0pTT04oKSxib2R5OkksZHVwbGV4OiJoYWxmIixjcmVkZW50aWFsczpkP246dm9pZCAwfSk7bGV0IHk9YXdhaXQgZmV0Y2goUSksbT1JdCYmKGE9PT0ic3RyZWFtInx8YT09PSJyZXNwb25zZSIpO2lmKEl0JiYoQ3x8bSYmbCkpe2xldCBSPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKGF0PT57UlthdF09eVthdF19KTtsZXQgcT1pLnRvRmluaXRlTnVtYmVyKHkuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtULEJBXT1DJiZ2QShxLF8oJEEoQyksITApKXx8W107eT1uZXcgUmVzcG9uc2UoZXQoeS5ib2R5LFh0LFQsKCk9PntCQSYmQkEoKSxsJiZsKCl9KSxSKX1hPWF8fCJ0ZXh0IjtsZXQgSD1hd2FpdCBSQVtpLmZpbmRLZXkoUkEsYSl8fCJ0ZXh0Il0oeSxBKTtyZXR1cm4hbSYmbCYmbCgpLGF3YWl0IG5ldyBQcm9taXNlKChSLHEpPT57b0EoUixxLHtkYXRhOkgsaGVhZGVyczpTLmZyb20oeS5oZWFkZXJzKSxzdGF0dXM6eS5zdGF0dXMsc3RhdHVzVGV4dDp5LnN0YXR1c1RleHQsY29uZmlnOkEscmVxdWVzdDpRfSl9KX1jYXRjaChkKXt0aHJvdyBsJiZsKCksZCYmZC5uYW1lPT09IlR5cGVFcnJvciImJi9mZXRjaC9pLnRlc3QoZC5tZXNzYWdlKT9PYmplY3QuYXNzaWduKG5ldyB1KCJOZXR3b3JrIEVycm9yIix1LkVSUl9ORVRXT1JLLEEsUSkse2NhdXNlOmQuY2F1c2V8fGR9KTp1LmZyb20oZCxkJiZkLmNvZGUsQSxRKX19KTt2YXIgcnQ9e2h0dHA6eUEseGhyOlp0LGZldGNoOnZ0fTtpLmZvckVhY2gocnQsKEEsdCk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHt2YWx1ZTp0fSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse3ZhbHVlOnR9KX19KTt2YXIgJHQ9QT0+YC0gJHtBfWAsUEk9QT0+aS5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExLFVBPXtnZXRBZGFwdGVyOkE9PntBPWkuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOnR9PUEsZSxJLHI9e307Zm9yKGxldCBvPTA7bzx0O28rKyl7ZT1BW29dO2xldCBnO2lmKEk9ZSwhUEkoZSkmJihJPXJ0WyhnPVN0cmluZyhlKSkudG9Mb3dlckNhc2UoKV0sST09PXZvaWQgMCkpdGhyb3cgbmV3IHUoYFVua25vd24gYWRhcHRlciBcJyR7Z31cJ2ApO2lmKEkpYnJlYWs7cltnfHwiJTIzIitvXT1JfWlmKCFJKXtsZXQgbz1PYmplY3QuZW50cmllcyhyKS5tYXAoKFtDLEVdKT0+YGFkYXB0ZXIgJHtDfSBgKyhFPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSksZz10P28ubGVuZ3RoPjE/YHNpbmNlIDolMEFgK28ubWFwKCR0KS5qb2luKGAlMEFgKToiICIrJHQob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK2csIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiBJfSxhZGFwdGVyczpydH07ZnVuY3Rpb24gb3QoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEwobnVsbCxBKX1mdW5jdGlvbiBHQShBKXtyZXR1cm4gb3QoQSksQS5oZWFkZXJzPVMuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1JQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksVUEuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fFYuYWRhcHRlcikoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gb3QoQSksSS5kYXRhPUlBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1TLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gckEoSSl8fChvdChBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPUlBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1TLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIGtBPSIxLjguNCI7dmFyIExBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSx0KT0+e0xBW0FdPWZ1bmN0aW9uKEkpe3JldHVybiB0eXBlb2YgST09PUF8fCJhIisodDwxPyJuICI6IiAiKStBfX0pO3ZhciBBZT17fTtMQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24odCxlLEkpe2Z1bmN0aW9uIHIobyxnKXtyZXR1cm4iW0F4aW9zIHYiK2tBKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gXCciK28rIlwnIitnKyhJPyIuICIrSToiIil9cmV0dXJuKG8sZyxDKT0+e2lmKHQ9PT0hMSl0aHJvdyBuZXcgdShyKGcsIiBoYXMgYmVlbiByZW1vdmVkIisoZT8iIGluICIrZToiIikpLHUuRVJSX0RFUFJFQ0FURUQpO3JldHVybiBlJiYhQWVbZ10mJihBZVtnXT0hMCxjb25zb2xlLndhcm4ocihnLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2IitlKyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLHQ/dChvLGcsQyk6ITB9fTtMQS5zcGVsbGluZz1mdW5jdGlvbih0KXtyZXR1cm4oZSxJKT0+KGNvbnNvbGUud2FybihgJHtJfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke3R9YCksITApfTtmdW5jdGlvbiBXSShBLHQsZSl7aWYodHlwZW9mIEEhPSJvYmplY3QiKXRocm93IG5ldyB1KCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iix1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgST1PYmplY3Qua2V5cyhBKSxyPUkubGVuZ3RoO2Zvcig7ci0tID4wOyl7bGV0IG89SVtyXSxnPXRbb107aWYoZyl7bGV0IEM9QVtvXSxFPUM9PT12b2lkIDB8fGcoQyxvLEEpO2lmKEUhPT0hMCl0aHJvdyBuZXcgdSgib3B0aW9uICIrbysiIG11c3QgYmUgIitFLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnRpbnVlfWlmKGUhPT0hMCl0aHJvdyBuZXcgdSgiVW5rbm93biBvcHRpb24gIitvLHUuRVJSX0JBRF9PUFRJT04pfX12YXIgaUE9e2Fzc2VydE9wdGlvbnM6V0ksdmFsaWRhdG9yczpMQX07dmFyIGI9aUEudmFsaWRhdG9ycyx6PWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuZGVmYXVsdHM9dCx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgUEEscmVzcG9uc2U6bmV3IFBBfX1hc3luYyByZXF1ZXN0KHQsZSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KHQsZSl9Y2F0Y2goSSl7aWYoSSBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgbz1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXFxuLywiIik6IiI7dHJ5e0kuc3RhY2s/byYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChvLnJlcGxhY2UoL14uK1xcbi4rXFxuLywiIikpJiYoSS5zdGFjays9YCUwQWArbyk6SS5zdGFjaz1vfWNhdGNoe319dGhyb3cgSX19X3JlcXVlc3QodCxlKXt0eXBlb2YgdD09InN0cmluZyI/KGU9ZXx8e30sZS51cmw9dCk6ZT10fHx7fSxlPWsodGhpcy5kZWZhdWx0cyxlKTtsZXR7dHJhbnNpdGlvbmFsOkkscGFyYW1zU2VyaWFsaXplcjpyLGhlYWRlcnM6b309ZTtJIT09dm9pZCAwJiZpQS5hc3NlcnRPcHRpb25zKEkse3NpbGVudEpTT05QYXJzaW5nOmIudHJhbnNpdGlvbmFsKGIuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6Yi50cmFuc2l0aW9uYWwoYi5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOmIudHJhbnNpdGlvbmFsKGIuYm9vbGVhbil9LCExKSxyIT1udWxsJiYoaS5pc0Z1bmN0aW9uKHIpP2UucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOnJ9OmlBLmFzc2VydE9wdGlvbnMocix7ZW5jb2RlOmIuZnVuY3Rpb24sc2VyaWFsaXplOmIuZnVuY3Rpb259LCEwKSksZS5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/ZS5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOmUuYWxsb3dBYnNvbHV0ZVVybHM9ITApLGlBLmFzc2VydE9wdGlvbnMoZSx7YmFzZVVybDpiLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpiLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSxlLm1ldGhvZD0oZS5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgZz1vJiZpLm1lcmdlKG8uY29tbW9uLG9bZS5tZXRob2RdKTtvJiZpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sUT0+e2RlbGV0ZSBvW1FdfSksZS5oZWFkZXJzPVMuY29uY2F0KGcsbyk7bGV0IEM9W10sRT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24obCl7dHlwZW9mIGwucnVuV2hlbj09ImZ1bmN0aW9uIiYmbC5ydW5XaGVuKGUpPT09ITF8fChFPUUmJmwuc3luY2hyb25vdXMsQy51bnNoaWZ0KGwuZnVsZmlsbGVkLGwucmVqZWN0ZWQpKX0pO2xldCBhPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24obCl7YS5wdXNoKGwuZnVsZmlsbGVkLGwucmVqZWN0ZWQpfSk7bGV0IHMsbj0wLGY7aWYoIUUpe2xldCBRPVtHQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKFEudW5zaGlmdC5hcHBseShRLEMpLFEucHVzaC5hcHBseShRLGEpLGY9US5sZW5ndGgscz1Qcm9taXNlLnJlc29sdmUoZSk7bjxmOylzPXMudGhlbihRW24rK10sUVtuKytdKTtyZXR1cm4gc31mPUMubGVuZ3RoO2xldCBCPWU7Zm9yKG49MDtuPGY7KXtsZXQgUT1DW24rK10sbD1DW24rK107dHJ5e0I9UShCKX1jYXRjaChjKXtsLmNhbGwodGhpcyxjKTticmVha319dHJ5e3M9R0EuY2FsbCh0aGlzLEIpfWNhdGNoKFEpe3JldHVybiBQcm9taXNlLnJlamVjdChRKX1mb3Iobj0wLGY9YS5sZW5ndGg7bjxmOylzPXMudGhlbihhW24rK10sYVtuKytdKTtyZXR1cm4gc31nZXRVcmkodCl7dD1rKHRoaXMuZGVmYXVsdHMsdCk7bGV0IGU9Z0EodC5iYXNlVVJMLHQudXJsLHQuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiB0QShlLHQucGFyYW1zLHQucGFyYW1zU2VyaWFsaXplcil9fTtpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKHQpe3oucHJvdG90eXBlW3RdPWZ1bmN0aW9uKGUsSSl7cmV0dXJuIHRoaXMucmVxdWVzdChrKEl8fHt9LHttZXRob2Q6dCx1cmw6ZSxkYXRhOihJfHx7fSkuZGF0YX0pKX19KTtpLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKEkpe3JldHVybiBmdW5jdGlvbihvLGcsQyl7cmV0dXJuIHRoaXMucmVxdWVzdChrKEN8fHt9LHttZXRob2Q6dCxoZWFkZXJzOkk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOm8sZGF0YTpnfSkpfX16LnByb3RvdHlwZVt0XT1lKCksei5wcm90b3R5cGVbdCsiRm9ybSJdPWUoITApfSk7dmFyIHNBPXo7dmFyIGd0PWNsYXNzIEF7Y29uc3RydWN0b3IodCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCBlO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihvKXtlPW99KTtsZXQgST10aGlzO3RoaXMucHJvbWlzZS50aGVuKHI9PntpZighSS5fbGlzdGVuZXJzKXJldHVybjtsZXQgbz1JLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7by0tID4wOylJLl9saXN0ZW5lcnNbb10ocik7SS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1yPT57bGV0IG8sZz1uZXcgUHJvbWlzZShDPT57SS5zdWJzY3JpYmUoQyksbz1DfSkudGhlbihyKTtyZXR1cm4gZy5jYW5jZWw9ZnVuY3Rpb24oKXtJLnVuc3Vic2NyaWJlKG8pfSxnfSx0KGZ1bmN0aW9uKG8sZyxDKXtJLnJlYXNvbnx8KEkucmVhc29uPW5ldyBMKG8sZyxDKSxlKEkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKHQpe2lmKHRoaXMucmVhc29uKXt0KHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKHQpOnRoaXMuX2xpc3RlbmVycz1bdF19dW5zdWJzY3JpYmUodCl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IGU9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YodCk7ZSE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKGUsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCB0PW5ldyBBYm9ydENvbnRyb2xsZXIsZT1JPT57dC5hYm9ydChJKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKGUpLHQuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKGUpLHQuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgdDtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24ocil7dD1yfSksY2FuY2VsOnR9fX0sdGU9Z3Q7ZnVuY3Rpb24gaXQoQSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBBLmFwcGx5KG51bGwsZSl9fWZ1bmN0aW9uIHN0KEEpe3JldHVybiBpLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBudD17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMobnQpLmZvckVhY2goKFtBLHRdKT0+e250W3RdPUF9KTt2YXIgZWU9bnQ7ZnVuY3Rpb24gSWUoQSl7bGV0IHQ9bmV3IHNBKEEpLGU9dihzQS5wcm90b3R5cGUucmVxdWVzdCx0KTtyZXR1cm4gaS5leHRlbmQoZSxzQS5wcm90b3R5cGUsdCx7YWxsT3duS2V5czohMH0pLGkuZXh0ZW5kKGUsdCxudWxsLHthbGxPd25LZXlzOiEwfSksZS5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIEllKGsoQSxyKSl9LGV9dmFyIHc9SWUoVik7dy5BeGlvcz1zQTt3LkNhbmNlbGVkRXJyb3I9TDt3LkNhbmNlbFRva2VuPXRlO3cuaXNDYW5jZWw9ckE7dy5WRVJTSU9OPWtBO3cudG9Gb3JtRGF0YT1NO3cuQXhpb3NFcnJvcj11O3cuQ2FuY2VsPXcuQ2FuY2VsZWRFcnJvcjt3LmFsbD1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5hbGwodCl9O3cuc3ByZWFkPWl0O3cuaXNBeGlvc0Vycm9yPXN0O3cubWVyZ2VDb25maWc9azt3LkF4aW9zSGVhZGVycz1TO3cuZm9ybVRvSlNPTj1BPT5wQShpLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO3cuZ2V0QWRhcHRlcj1VQS5nZXRBZGFwdGVyO3cuSHR0cFN0YXR1c0NvZGU9ZWU7dy5kZWZhdWx0PXc7dmFyIGJBPXc7dmFye0F4aW9zOkJpLEF4aW9zRXJyb3I6YWksQ2FuY2VsZWRFcnJvcjpRaSxpc0NhbmNlbDpFaSxDYW5jZWxUb2tlbjpjaSxWRVJTSU9OOmZpLGFsbDpsaSxDYW5jZWw6dWksaXNBeGlvc0Vycm9yOkRpLHNwcmVhZDpkaSx0b0Zvcm1EYXRhOmhpLEF4aW9zSGVhZGVyczp5aSxIdHRwU3RhdHVzQ29kZTptaSxmb3JtVG9KU09OOndpLGdldEFkYXB0ZXI6cGksbWVyZ2VDb25maWc6U2l9PWJBO3ZhciBuQSxZLEJ0LEN0PXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7QnQ9bmV3IFVpbnQ4QXJyYXkoWS5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LEpBPWNsYXNze2luaXQoKXtyZXR1cm4gbkF8fCh0eXBlb2YgZmV0Y2g8InUiP25BPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIrcmUpLnRoZW4odD0+dC5hcnJheUJ1ZmZlcigpKS50aGVuKHQ9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKHQsQ3QpKS50aGVuKHRoaXMuX2luaXQpOm5BPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKHJlLCJiYXNlNjQiKSxDdCkudGhlbih0aGlzLl9pbml0KSxuQSl9X2luaXQodCl7WT10Lmluc3RhbmNlLEN0LmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZSh0LGU9MCl7aWYoIVkpdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IEk9dC5ieXRlTGVuZ3RoLHI9WS5leHBvcnRzLm1hbGxvYyhJKTtCdC5zZXQodCxyKSxlPWV8fE51bWJlcihZLmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShyLEkpKTtsZXQgbz1ZLmV4cG9ydHMubWFsbG9jKGUpLGc9WS5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhvLGUscixJKSxDPUJ0LnNsaWNlKG8sbytnKTtyZXR1cm4gWS5leHBvcnRzLmZyZWUociksWS5leHBvcnRzLmZyZWUobyksQ319LHJlPSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIG9lPW5ldyBKQSxnZT0hMTthc3luYyBmdW5jdGlvbiBqSShBLHQsZSl7bGV0IEk9bnVsbDt0eXBlb2YgQSE9InN0cmluZyI/ST1BLmhyZWY6QS5zdGFydHNXaXRoKCJodHRwIik/ST1BOkk9YCR7dH0vJHtBfWAsSS5lbmRzV2l0aCgiLmpzIikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtMykpLEkuZW5kc1dpdGgoIi53YXNtIikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtNSkpLEkuZW5kc1dpdGgoIi53YXNtLnpzdCIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTkpKTtsZXQgcj1gJHtJfS53YXNtYCxvPWF3YWl0IGJBLmdldChgJHtyfS56c3RgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIixwYXJhbXM6ZX0pO2dlfHwoYXdhaXQgb2UuaW5pdCgpLGdlPSEwKTtsZXQgQz1vZS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoby5kYXRhKSkuYnVmZmVyO3JldHVybihhd2FpdCBpbXBvcnQoYCR7SX0uanNgKSkuZGVmYXVsdCh7d2FzbUJpbmFyeTpDfSl9dmFyIGllPWpJO3ZhciBIQT1uZXcgTWFwO2FzeW5jIGZ1bmN0aW9uIFpJKEEsdCxlKXtsZXQgST1BLHI9QSxvPW51bGw7cmV0dXJuIHR5cGVvZiBBIT0ic3RyaW5nIiYmKEk9bmV3IFVSTChBLmhyZWYpLHI9SS5ocmVmKSxIQS5oYXMocik/bz1hd2FpdCBIQS5nZXQocik6KEhBLnNldChyLGllKEksdCxlKSksbz1hd2FpdCBIQS5nZXQocikpLG99dmFyIHNlPVpJO3ZhciBWST17VGV4dEZpbGU6IlRleHRGaWxlIixCaW5hcnlGaWxlOiJCaW5hcnlGaWxlIixUZXh0U3RyZWFtOiJUZXh0U3RyZWFtIixCaW5hcnlTdHJlYW06IkJpbmFyeVN0cmVhbSIsSW1hZ2U6IkltYWdlIixQb2ludFNldDoiUG9pbnRTZXQiLE1lc2g6Ik1lc2giLFBvbHlEYXRhOiJQb2x5RGF0YSIsVHJhbnNmb3JtTGlzdDoiVHJhbnNmb3JtTGlzdCIsSnNvbkNvbXBhdGlibGU6Ikpzb25Db21wYXRpYmxlIn0sRD1WSTt2YXIgWEk9e0ludDg6ImludDgiLFVJbnQ4OiJ1aW50OCIsSW50MTY6ImludDE2IixVSW50MTY6InVpbnQxNiIsSW50MzI6ImludDMyIixVSW50MzI6InVpbnQzMiIsSW50NjQ6ImludDY0IixVSW50NjQ6InVpbnQ2NCIsU2l6ZVZhbHVlVHlwZToidWludDY0IixJZGVudGlmaWVyVHlwZToidWludDY0IixJbmRleFZhbHVlVHlwZToiaW50NjQiLE9mZnNldFZhbHVlVHlwZToiaW50NjQifSxOPVhJO3ZhciBfST17RmxvYXQzMjoiZmxvYXQzMiIsRmxvYXQ2NDoiZmxvYXQ2NCIsU3BhY2VQcmVjaXNpb25UeXBlOiJmbG9hdDY0In0sUD1fSTtmdW5jdGlvbiB6SShBLHQpe2xldCBlPW51bGw7c3dpdGNoKEEpe2Nhc2UgTi5VSW50ODp7ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIE4uSW50ODp7ZT1uZXcgSW50OEFycmF5KHQpO2JyZWFrfWNhc2UgTi5VSW50MTY6e2U9bmV3IFVpbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgTi5JbnQxNjp7ZT1uZXcgSW50MTZBcnJheSh0KTticmVha31jYXNlIE4uVUludDMyOntlPW5ldyBVaW50MzJBcnJheSh0KTticmVha31jYXNlIE4uSW50MzI6e2U9bmV3IEludDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBOLlVJbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnVWludDY0QXJyYXk9PSJmdW5jdGlvbiI/ZT1uZXcgQmlnVWludDY0QXJyYXkodCk6ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIE4uSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ0ludDY0QXJyYXk9PSJmdW5jdGlvbiI/ZT1uZXcgQmlnSW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgUC5GbG9hdDMyOntlPW5ldyBGbG9hdDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBQLkZsb2F0NjQ6e2U9bmV3IEZsb2F0NjRBcnJheSh0KTticmVha31jYXNlIm51bGwiOntlPW51bGw7YnJlYWt9Y2FzZSBudWxsOntlPW51bGw7YnJlYWt9ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlR5cGUgaXMgbm90IHN1cHBvcnRlZCBhcyBhIFR5cGVkQXJyYXkiKX1yZXR1cm4gZX12YXIgSj16STt2YXIgQmU9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI9PSJmdW5jdGlvbiIsbmU9bmV3IFRleHRFbmNvZGVyLENlPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKTtmdW5jdGlvbiB2SShBLHQpe2xldCBlPXtmbGFnczoiciIsZW5jb2Rpbmc6ImJpbmFyeSJ9LEk9QS5mc19vcGVuKHQsZS5mbGFncyksbz1BLmZzX3N0YXQodCkuc2l6ZSxnPW51bGw7QmU/Zz1uZXcgU2hhcmVkQXJyYXlCdWZmZXIobyk6Zz1uZXcgQXJyYXlCdWZmZXIobyk7bGV0IEM9bmV3IFVpbnQ4QXJyYXkoZyk7cmV0dXJuIEEuZnNfcmVhZChJLEMsMCxvLDApLEEuZnNfY2xvc2UoSSksQ31mdW5jdGlvbiBhZShBLHQsZSl7bGV0IEk9bnVsbDtCZT9JPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihlKTpJPW5ldyBBcnJheUJ1ZmZlcihlKTtsZXQgcj1uZXcgVWludDhBcnJheShJKSxvPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcix0LGUpO3JldHVybiByLnNldChvKSxyfWZ1bmN0aW9uIHAoQSx0LGUsSSl7bGV0IHI9MDtyZXR1cm4gdCE9PW51bGwmJihyPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2FycmF5X2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsSSx0LmJ1ZmZlci5ieXRlTGVuZ3RoXSksQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KHQuYnVmZmVyKSxyKSkscn1mdW5jdGlvbiBLKEEsdCxlKXtsZXQgST1KU09OLnN0cmluZ2lmeSh0KSxyPUEubGVuZ3RoQnl0ZXNVVEY4KEkpKzEsbz1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUscl0pO0Euc3RyaW5nVG9VVEY4KEksbyxyKX1mdW5jdGlvbiBGKEEsdCxlLEkpe2xldCByPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsZV0pLG89QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksZz1hZShBLHIsbyk7cmV0dXJuIEooSSxnLmJ1ZmZlcil9ZnVuY3Rpb24gQ0EoQSx0KXtsZXQgZT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLHRdKSxJPUEuVVRGOFRvU3RyaW5nKGUpO3JldHVybiBKU09OLnBhcnNlKEkpfWZ1bmN0aW9uICRJKEEsdCxlLEkpe0khPW51bGwmJkkubGVuZ3RoPjAmJkkuZm9yRWFjaChmdW5jdGlvbihhLHMpe3N3aXRjaChhLnR5cGUpe2Nhc2UgRC5UZXh0U3RyZWFtOntsZXQgbj1uZS5lbmNvZGUoYS5kYXRhLmRhdGEpLGY9cChBLG4scywwKSxCPXtzaXplOm4uYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07SyhBLEIscyk7YnJlYWt9Y2FzZSBELkpzb25Db21wYXRpYmxlOntsZXQgbj1uZS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoYS5kYXRhKSksZj1wKEEsbixzLDApLEI9e3NpemU6bi5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtLKEEsQixzKTticmVha31jYXNlIEQuQmluYXJ5U3RyZWFtOntsZXQgbj1hLmRhdGEuZGF0YSxmPXAoQSxuLHMsMCksQj17c2l6ZTpuLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O0soQSxCLHMpO2JyZWFrfWNhc2UgRC5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoYS5kYXRhLnBhdGgsYS5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgRC5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShhLmRhdGEucGF0aCxhLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBELkltYWdlOntsZXQgbj1hLmRhdGEsZj1wKEEsbi5kYXRhLHMsMCksQj1wKEEsbi5kaXJlY3Rpb24scywxKSxRPXR5cGVvZiBuLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKG4ubWV0YWRhdGEuZW50cmllcygpKTpbXSxsPXtpbWFnZVR5cGU6bi5pbWFnZVR5cGUsbmFtZTpuLm5hbWUsb3JpZ2luOm4ub3JpZ2luLHNwYWNpbmc6bi5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxzaXplOm4uc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLG1ldGFkYXRhOlF9O0soQSxsLHMpO2JyZWFrfWNhc2UgRC5NZXNoOntsZXQgbj1hLmRhdGEsZj1wKEEsbi5wb2ludHMscywwKSxCPXAoQSxuLmNlbGxzLHMsMSksUT1wKEEsbi5wb2ludERhdGEscywyKSxsPXAoQSxuLmNlbGxEYXRhLHMsMyksYz17bWVzaFR5cGU6bi5tZXNoVHlwZSxuYW1lOm4ubmFtZSxudW1iZXJPZlBvaW50czpuLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCxudW1iZXJPZkNlbGxzOm4ubnVtYmVyT2ZDZWxscyxjZWxsczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxjZWxsQnVmZmVyU2l6ZTpuLmNlbGxCdWZmZXJTaXplLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxudW1iZXJPZkNlbGxQaXhlbHM6bi5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O0soQSxjLHMpO2JyZWFrfWNhc2UgRC5Qb2ludFNldDp7bGV0IG49YS5kYXRhLGY9cChBLG4ucG9pbnRzLHMsMCksQj1wKEEsbi5wb2ludERhdGEscywxKSxRPXtwb2ludFNldFR5cGU6bi5wb2ludFNldFR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpuLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gfTtLKEEsUSxzKTticmVha31jYXNlIEQuVHJhbnNmb3JtTGlzdDp7bGV0IG49YS5kYXRhLGY9W10sQj0wO24uZm9yRWFjaChRPT57bGV0IGw9IiIsYz0iIjtRLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYobD1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3AoQSxRLmZpeGVkUGFyYW1ldGVycyxzLEIpfWAsQis9MSxjPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7cChBLFEucGFyYW1ldGVycyxzLEIpfWAsQis9MSk7bGV0IGQ9e3RyYW5zZm9ybVR5cGU6US50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOlEubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOlEubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6US5uYW1lLGlucHV0U3BhY2VOYW1lOlEuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOlEub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6YyxmaXhlZFBhcmFtZXRlcnM6bH07Zi5wdXNoKGQpfSksSyhBLGYscyk7YnJlYWt9Y2FzZSBELlBvbHlEYXRhOntsZXQgbj1hLmRhdGEsZj1wKEEsbi5wb2ludHMscywwKSxCPXAoQSxuLnZlcnRpY2VzLHMsMSksUT1wKEEsbi5saW5lcyxzLDIpLGw9cChBLG4ucG9seWdvbnMscywzKSxjPXAoQSxuLnRyaWFuZ2xlU3RyaXBzLHMsNCksZD1wKEEsbi5wb2ludERhdGEscyw1KSx5PXAoQSxuLnBvaW50RGF0YSxzLDYpLG09e3BvbHlEYXRhVHlwZTpuLnBvbHlEYXRhVHlwZSxuYW1lOm4ubmFtZSxudW1iZXJPZlBvaW50czpuLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCx2ZXJ0aWNlc0J1ZmZlclNpemU6bi52ZXJ0aWNlc0J1ZmZlclNpemUsdmVydGljZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsbGluZXNCdWZmZXJTaXplOm4ubGluZXNCdWZmZXJTaXplLGxpbmVzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLHBvbHlnb25zQnVmZmVyU2l6ZTpuLnBvbHlnb25zQnVmZmVyU2l6ZSxwb2x5Z29uczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCx0cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU6bi50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemUsdHJpYW5nbGVTdHJpcHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpuLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7ZH1gLG51bWJlck9mQ2VsbFBpeGVsczpuLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3l9YH07SyhBLG0scyk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IHI9QS5zdGFja1NhdmUoKSxvPTA7dHJ5e289QS5jYWxsTWFpbih0LnNsaWNlKCkpfWNhdGNoKGEpe3Rocm93IHR5cGVvZiBhPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKGEpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLGF9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShyKX1sZXQgZz1BLmdldE1vZHVsZVN0ZG91dCgpLEM9QS5nZXRNb2R1bGVTdGRlcnIoKSxFPVtdO3JldHVybiBlIT1udWxsJiZlLmxlbmd0aD4wJiZvPT09MCYmZS5mb3JFYWNoKGZ1bmN0aW9uKGEscyl7bGV0IG49bnVsbDtzd2l0Y2goYS50eXBlKXtjYXNlIEQuVGV4dFN0cmVhbTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxsPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixCLFEpO249e2RhdGE6Q2UuZGVjb2RlKGwpfTticmVha31jYXNlIEQuSnNvbkNvbXBhdGlibGU6e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksbD1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQixRKTtuPUpTT04ucGFyc2UoQ2UuZGVjb2RlKGwpKTticmVha31jYXNlIEQuQmluYXJ5U3RyZWFtOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pO249e2RhdGE6YWUoQSxCLFEpfTticmVha31jYXNlIEQuVGV4dEZpbGU6e249e3BhdGg6YS5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKGEuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSBELkJpbmFyeUZpbGU6e249e3BhdGg6YS5kYXRhLnBhdGgsZGF0YTp2SShBLGEuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSBELkltYWdlOntsZXQgQj1DQShBLHMpO0IuZGF0YT1GKEEscywwLEIuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLEIuZGlyZWN0aW9uPUYoQSxzLDEsUC5GbG9hdDY0KSxCLm1ldGFkYXRhPW5ldyBNYXAoQi5tZXRhZGF0YSksbj1CO2JyZWFrfWNhc2UgRC5NZXNoOntsZXQgQj1DQShBLHMpO0IubnVtYmVyT2ZQb2ludHM+MD9CLnBvaW50cz1GKEEscywwLEIubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpCLnBvaW50cz1KKEIubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxzPjA/Qi5jZWxscz1GKEEscywxLEIubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOkIuY2VsbHM9SihCLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9RihBLHMsMixCLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1KKEIubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mQ2VsbFBpeGVscz4wP0IuY2VsbERhdGE9RihBLHMsMyxCLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkIuY2VsbERhdGE9SihCLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuPUI7YnJlYWt9Y2FzZSBELlBvaW50U2V0OntsZXQgQj1DQShBLHMpO0IubnVtYmVyT2ZQb2ludHM+MD9CLnBvaW50cz1GKEEscywwLEIucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qi5wb2ludHM9SihCLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1GKEEscywxLEIucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1KKEIucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksbj1CO2JyZWFrfWNhc2UgRC5UcmFuc2Zvcm1MaXN0OntsZXQgQj1DQShBLHMpLFE9MDtCLmZvckVhY2goKGwsYyk9PntsLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYobC5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYoQltjXS5maXhlZFBhcmFtZXRlcnM9RihBLHMsUSxQLkZsb2F0NjQpKSxRKz0xLGwubnVtYmVyT2ZQYXJhbWV0ZXJzPjAmJihCW2NdLnBhcmFtZXRlcnM9RihBLHMsUSxsLnRyYW5zZm9ybVR5cGUucGFyYW1ldGVyc1ZhbHVlVHlwZSkpLFErPTEpfSksbj1CO2JyZWFrfWNhc2UgRC5Qb2x5RGF0YTp7bGV0IEI9Q0EoQSxzKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9RihBLHMsMCxQLkZsb2F0MzIpOkIucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXksQi52ZXJ0aWNlc0J1ZmZlclNpemU+MD9CLnZlcnRpY2VzPUYoQSxzLDEsTi5VSW50MzIpOkIudmVydGljZXM9bmV3IFVpbnQzMkFycmF5LEIubGluZXNCdWZmZXJTaXplPjA/Qi5saW5lcz1GKEEscywyLE4uVUludDMyKTpCLmxpbmVzPW5ldyBVaW50MzJBcnJheSxCLnBvbHlnb25zQnVmZmVyU2l6ZT4wP0IucG9seWdvbnM9RihBLHMsMyxOLlVJbnQzMik6Qi5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXksQi50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9CLnRyaWFuZ2xlU3RyaXBzPUYoQSxzLDQsTi5VSW50MzIpOkIudHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPUYoQSxzLDUsQi5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkIucG9pbnREYXRhPUooQi5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mQ2VsbFBpeGVscz4wP0IuY2VsbERhdGE9RihBLHMsNixCLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpCLmNlbGxEYXRhPUooQi5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLG49QjticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBmPXt0eXBlOmEudHlwZSxkYXRhOm59O0UucHVzaChmKX0pLHtyZXR1cm5WYWx1ZTpvLHN0ZG91dDpnLHN0ZGVycjpDLG91dHB1dHM6RX19dmFyIFFlPSRJO3ZhciBBcj10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gdHIoQSx0KXtpZihBPT1udWxsKXJldHVybltdO2xldCBlPVtdO2ZvcihsZXQgST0wO0k8QS5sZW5ndGg7SSsrKXtsZXQgcj1lcihBW0ldLHQpO3IhPT1udWxsJiZlLnB1c2gocil9cmV0dXJuIGV9ZnVuY3Rpb24gZXIoQSx0KXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCBlPW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP2U9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYoZT1BKSxBciYmZSBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6dD9lOmUuc2xpY2UoMCl9dmFyIEVlPXRyO2Z1bmN0aW9uIElyKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciBjZT1JcjtmdW5jdGlvbiBycihBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgZmU9cnI7ZnVuY3Rpb24gb3IoQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIGxlPW9yO2FzeW5jIGZ1bmN0aW9uIGdyKEEsdCxlLEkpe2xldCByPVFlKEEsdCxlLEkpLG89W107cmV0dXJuIHIub3V0cHV0cy5mb3JFYWNoKGZ1bmN0aW9uKGcpe2lmKGcudHlwZT09PUQuQmluYXJ5U3RyZWFtfHxnLnR5cGU9PT1ELkJpbmFyeUZpbGUpe2xldCBDPWcuZGF0YTtvLnB1c2goQyl9ZWxzZSBpZihnLnR5cGU9PT1ELkltYWdlKXtsZXQgQz1nLmRhdGE7by5wdXNoKC4uLmNlKEMpKX1lbHNlIGlmKGcudHlwZT09PUQuTWVzaCl7bGV0IEM9Zy5kYXRhO28ucHVzaCguLi5mZShDKSl9ZWxzZSBpZihnLnR5cGU9PT1ELlBvbHlEYXRhKXtsZXQgQz1nLmRhdGE7by5wdXNoKC4uLmxlKEMpKX19KSxNQShyLEVlKG8sITApKX12YXIgdWU9Z3I7dmFyIGlyPXtydW5QaXBlbGluZTphc3luYyBmdW5jdGlvbihBLHQsZSxJLHIsbyl7bGV0IGc9YXdhaXQgc2UoQSx0LG8pO3JldHVybiBhd2FpdCB1ZShnLGUsSSxyKX19O2xBKGlyKTslMEEvKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOiUwQSUwQWNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6JTBBICAoKiolMEEgICAqIEBsaWNlbnNlJTBBICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDJTBBICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCUwQSAgICopJTBBKi8lMEEnO2p0KFZ0KTtleHBvcnR7UmUgYXMgY29tcGFyZURvdWJsZUltYWdlcywkciBhcyBjb21wYXJlSW1hZ2VzLFp0IGFzIGdldERlZmF1bHRXZWJXb3JrZXIsQUEgYXMgZ2V0UGlwZWxpbmVXb3JrZXJVcmwsUEEgYXMgZ2V0UGlwZWxpbmVzQmFzZVVybCxYbiBhcyBzZXREZWZhdWx0V2ViV29ya2VyLGp0IGFzIHNldFBpcGVsaW5lV29ya2VyVXJsLE9uIGFzIHNldFBpcGVsaW5lc0Jhc2VVcmwsTmUgYXMgdmVjdG9yTWFnbml0dWRlLFdBIGFzIHZlcnNpb259OwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAogICAqKQoqLwo=""" +default_js_module = """data:text/javascript;base64,dmFyIEVJPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgY0k9KEEsZSk9Pntmb3IodmFyIEkgaW4gZSlFSShBLEkse2dldDplW0ldLGVudW1lcmFibGU6ITB9KX07dmFyIGxJPSI1LjQuMCIsdGU9bEk7dmFyIGZJPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sZD1mSTt2YXIgdUk9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LEY9dUk7ZnVuY3Rpb24gZEkoQSxlKXtsZXQgST1udWxsO3N3aXRjaChBKXtjYXNlIGQuVUludDg6e0k9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBkLkludDg6e0k9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIGQuVUludDE2OntJPW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIGQuSW50MTY6e0k9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBkLlVJbnQzMjp7ST1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBkLkludDMyOntJPW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgZC5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP0k9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOkk9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBkLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP0k9bmV3IEJpZ0ludDY0QXJyYXkoZSk6ST1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIEYuRmxvYXQzMjp7ST1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2UgRi5GbG9hdDY0OntJPW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7ST1udWxsO2JyZWFrfWNhc2UgbnVsbDp7ST1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIEl9dmFyIEg9ZEk7dmFyIGhJPXtVbmtub3duOiJVbmtub3duIixTY2FsYXI6IlNjYWxhciIsUkdCOiJSR0IiLFJHQkE6IlJHQkEiLE9mZnNldDoiT2Zmc2V0IixWZWN0b3I6IlZlY3RvciIsUG9pbnQ6IlBvaW50IixDb3ZhcmlhbnRWZWN0b3I6IkNvdmFyaWFudFZlY3RvciIsU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvcjoiU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvciIsRGlmZnVzaW9uVGVuc29yM0Q6IkRpZmZ1c2lvblRlbnNvcjNEIixDb21wbGV4OiJDb21wbGV4IixGaXhlZEFycmF5OiJGaXhlZEFycmF5IixBcnJheToiQXJyYXkiLE1hdHJpeDoiTWF0cml4IixWYXJpYWJsZUxlbmd0aFZlY3RvcjoiVmFyaWFibGVMZW5ndGhWZWN0b3IiLFZhcmlhYmxlU2l6ZU1hdHJpeDoiVmFyaWFibGVTaXplTWF0cml4In0sRz1oSTt2YXIgSWU9Y2xhc3N7ZGltZW5zaW9uO2NvbXBvbmVudFR5cGU7cGl4ZWxUeXBlO2NvbXBvbmVudHM7Y29uc3RydWN0b3IoZT0yLEk9ZC5VSW50OCx0PUcuU2NhbGFyLHI9MSl7dGhpcy5kaW1lbnNpb249ZSx0aGlzLmNvbXBvbmVudFR5cGU9SSx0aGlzLnBpeGVsVHlwZT10LHRoaXMuY29tcG9uZW50cz1yfX0sdmU9SWU7ZnVuY3Rpb24geUkoQSxlLEksdCxyKXtBW3QrSSplXT1yfXZhciBaZT15STt2YXIgcmU9Y2xhc3N7aW1hZ2VUeXBlO25hbWU9IkltYWdlIjtvcmlnaW47c3BhY2luZztkaXJlY3Rpb247c2l6ZTttZXRhZGF0YTtkYXRhO2NvbnN0cnVjdG9yKGU9bmV3IHZlKXt0aGlzLmltYWdlVHlwZT1lO2xldCBJPWUuZGltZW5zaW9uO3RoaXMub3JpZ2luPW5ldyBBcnJheShJKSx0aGlzLm9yaWdpbi5maWxsKDApLHRoaXMuc3BhY2luZz1uZXcgQXJyYXkoSSksdGhpcy5zcGFjaW5nLmZpbGwoMSksdGhpcy5kaXJlY3Rpb249bmV3IEZsb2F0NjRBcnJheShJKkkpLHRoaXMuZGlyZWN0aW9uLmZpbGwoMCk7Zm9yKGxldCB0PTA7dDxJO3QrKylaZSh0aGlzLmRpcmVjdGlvbixJLHQsdCwxKTt0aGlzLnNpemU9bmV3IEFycmF5KEkpLHRoaXMuc2l6ZS5maWxsKDApLHRoaXMubWV0YWRhdGE9bmV3IE1hcCx0aGlzLmRhdGE9bnVsbH19LFZlPXJlO2Z1bmN0aW9uIERJKEEsZSl7bGV0IEk9ey4uLkEuaW1hZ2VUeXBlfTtpZih0eXBlb2YgZTwidSImJnR5cGVvZiBlLnBpeGVsVHlwZTwidSImJihJLnBpeGVsVHlwZT1lLnBpeGVsVHlwZSxlLnBpeGVsVHlwZT09PUcuU2NhbGFyJiZJLmNvbXBvbmVudHMhPT0xKSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBjYXN0IG11bHRpLWNvbXBvbmVudCBpbWFnZSB0byBhIHNjYWxhciBpbWFnZSIpO3R5cGVvZiBlPCJ1IiYmdHlwZW9mIGUuY29tcG9uZW50VHlwZTwidSImJmUuY29tcG9uZW50VHlwZSE9PUEuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUmJihJLmNvbXBvbmVudFR5cGU9ZS5jb21wb25lbnRUeXBlKTtsZXQgdD1uZXcgVmUoSSk7aWYodC5uYW1lPUEubmFtZSx0Lm9yaWdpbj1BcnJheS5mcm9tKEEub3JpZ2luKSx0LnNwYWNpbmc9QXJyYXkuZnJvbShBLnNwYWNpbmcpLHQuZGlyZWN0aW9uPUEuZGlyZWN0aW9uLnNsaWNlKCksdC5zaXplPUFycmF5LmZyb20oQS5zaXplKSx0Lm1ldGFkYXRhPW5ldyBNYXAoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKEEubWV0YWRhdGEpKSkpLEEuZGF0YSE9PW51bGwpaWYodHlwZW9mIGU8InUiJiZ0eXBlb2YgZS5jb21wb25lbnRUeXBlPCJ1IiYmZS5jb21wb25lbnRUeXBlIT09QS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSlzd2l0Y2goQS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSl7Y2FzZSBkLlVJbnQ4OmNhc2UgZC5JbnQ4OmNhc2UgZC5VSW50MTY6Y2FzZSBkLkludDE2OmNhc2UgZC5VSW50MzI6Y2FzZSBkLkludDMyOmNhc2UgRi5GbG9hdDMyOmNhc2UgRi5GbG9hdDY0OnN3aXRjaCh0LmltYWdlVHlwZS5jb21wb25lbnRUeXBlKXtjYXNlIGQuVUludDg6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3QuZGF0YT1uZXcgVWludDhBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgVWludDhBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2UgZC5JbnQ4OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXt0LmRhdGE9bmV3IEludDhBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgSW50OEFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSBkLlVJbnQxNjppZihBLmRhdGEgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxBLmRhdGEgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSl7dC5kYXRhPW5ldyBVaW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgVWludDE2QXJyYXkoQS5kYXRhKTticmVhaztjYXNlIGQuSW50MTY6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3QuZGF0YT1uZXcgSW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgSW50MTZBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2UgZC5VSW50MzI6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3QuZGF0YT1uZXcgVWludDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09TnVtYmVyKEEuZGF0YVtyXSl9ZWxzZSB0LmRhdGE9bmV3IFVpbnQzMkFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSBkLkludDMyOmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXt0LmRhdGE9bmV3IEludDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09TnVtYmVyKEEuZGF0YVtyXSl9ZWxzZSB0LmRhdGE9bmV3IEludDMyQXJyYXkoQS5kYXRhKTticmVhaztjYXNlIEYuRmxvYXQzMjppZihBLmRhdGEgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxBLmRhdGEgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSl7dC5kYXRhPW5ldyBGbG9hdDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09TnVtYmVyKEEuZGF0YVtyXSl9ZWxzZSB0LmRhdGE9bmV3IEZsb2F0MzJBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2UgRi5GbG9hdDY0OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXt0LmRhdGE9bmV3IEZsb2F0NjRBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKX1lbHNlIHQuZGF0YT1uZXcgRmxvYXQ2NEFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSBkLlVJbnQ2NDp0LmRhdGE9bmV3IEJpZ1VpbnQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPUJpZ0ludC5hc0ludE4oNjQsQmlnSW50KEEuZGF0YVtyXSkpO2JyZWFrO2Nhc2UgZC5JbnQ2NDp0LmRhdGE9bmV3IEJpZ0ludDY0QXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCByPTA7cjx0LmRhdGEubGVuZ3RoO3IrKyl0LmRhdGFbcl09QmlnSW50LmFzVWludE4oNjQsQmlnSW50KEEuZGF0YVtyXSkpO2JyZWFrfWJyZWFrO2Nhc2UgZC5VSW50NjQ6Y2FzZSBkLkludDY0OnN3aXRjaCh0LmltYWdlVHlwZS5jb21wb25lbnRUeXBlKXtjYXNlIGQuVUludDg6dC5kYXRhPW5ldyBVaW50OEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5JbnQ4OnQuZGF0YT1uZXcgSW50OEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5VSW50MTY6dC5kYXRhPW5ldyBVaW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKTticmVhaztjYXNlIGQuSW50MTY6dC5kYXRhPW5ldyBJbnQxNkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5VSW50MzI6dC5kYXRhPW5ldyBVaW50MzJBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1OdW1iZXIoQS5kYXRhW3JdKTticmVhaztjYXNlIGQuSW50MzI6dC5kYXRhPW5ldyBJbnQzMkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgRi5GbG9hdDMyOnQuZGF0YT1uZXcgRmxvYXQzMkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgRi5GbG9hdDY0OnQuZGF0YT1uZXcgRmxvYXQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPU51bWJlcihBLmRhdGFbcl0pO2JyZWFrO2Nhc2UgZC5VSW50NjQ6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpdC5kYXRhPW5ldyBCaWdVaW50NjRBcnJheShBLmRhdGEpO2Vsc2V7dC5kYXRhPW5ldyBCaWdVaW50NjRBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IHI9MDtyPHQuZGF0YS5sZW5ndGg7cisrKXQuZGF0YVtyXT1CaWdJbnQuYXNVaW50Tig2NCxCaWdJbnQoQS5kYXRhW3JdKSl9YnJlYWs7Y2FzZSBkLkludDY0OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXQuZGF0YT1uZXcgQmlnSW50NjRBcnJheShBLmRhdGEpO2Vsc2V7dC5kYXRhPW5ldyBCaWdJbnQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgcj0wO3I8dC5kYXRhLmxlbmd0aDtyKyspdC5kYXRhW3JdPUJpZ0ludC5hc0ludE4oNjQsQmlnSW50KEEuZGF0YVtyXSkpfWJyZWFrfWJyZWFrfWVsc2V7bGV0IHI9QS5kYXRhLmNvbnN0cnVjdG9yO3QuZGF0YT1uZXcgcihBLmRhdGEubGVuZ3RoKSx0LmRhdGEhPW51bGwmJnQuZGF0YS5zZXQoQS5kYXRhLDApfXJldHVybiB0fXZhciBSQT1ESTt2YXIgcEk9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LGg9cEk7dmFyIHplPVN5bWJvbCgiQ29tbGluay5wcm94eSIpLHdJPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLG9lPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxnZT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksTkE9U3ltYm9sKCJDb21saW5rLnRocm93biIpLF9lPUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLG1JPXtjYW5IYW5kbGU6QT0+X2UoQSkmJkFbemVdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6ZSxwb3J0MjpJfT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIEF0KEEsZSksW0ksW0ldXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxhZShBKX19LFNJPXtjYW5IYW5kbGU6QT0+X2UoQSkmJk5BIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IGU7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTpBfSxbZSxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSwkZT1uZXcgTWFwKFtbInByb3h5IixtSV0sWyJ0aHJvdyIsU0ldXSk7ZnVuY3Rpb24gRkkoQSxlKXtmb3IobGV0IEkgb2YgQSlpZihlPT09SXx8ST09PSIqInx8SSBpbnN0YW5jZW9mIFJlZ0V4cCYmSS50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEF0KEEsZT1nbG9iYWxUaGlzLEk9WyIqIl0pe2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gdChyKXtpZighcnx8IXIuZGF0YSlyZXR1cm47aWYoIUZJKEksci5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luICcke3Iub3JpZ2lufScgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOmksdHlwZTpnLHBhdGg6c309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sci5kYXRhKSxFPShyLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKFopLEM7dHJ5e2xldCBvPXMuc2xpY2UoMCwtMSkucmVkdWNlKChmLEIpPT5mW0JdLEEpLG49cy5yZWR1Y2UoKGYsQik9PmZbQl0sQSk7c3dpdGNoKGcpe2Nhc2UiR0VUIjpDPW47YnJlYWs7Y2FzZSJTRVQiOm9bcy5zbGljZSgtMSlbMF1dPVooci5kYXRhLnZhbHVlKSxDPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOkM9bi5hcHBseShvLEUpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGY9bmV3IG4oLi4uRSk7Qz1HSShmKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmYscG9ydDI6Qn09bmV3IE1lc3NhZ2VDaGFubmVsO0F0KEEsQiksQz1uZShmLFtmXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjpDPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2gobyl7Qz17dmFsdWU6byxbTkFdOjB9fVByb21pc2UucmVzb2x2ZShDKS5jYXRjaChvPT4oe3ZhbHVlOm8sW05BXTowfSkpLnRoZW4obz0+e2xldFtuLGZdPWJBKG8pO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtpZDppfSksZiksZz09PSJSRUxFQVNFIiYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdCksZXQoZSksZ2UgaW4gQSYmdHlwZW9mIEFbZ2VdPT0iZnVuY3Rpb24iJiZBW2dlXSgpKX0pLmNhdGNoKG89PntsZXRbbixmXT1iQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW05BXTowfSk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2lkOml9KSxmKX0pfSksZS5zdGFydCYmZS5zdGFydCgpfWZ1bmN0aW9uIFJJKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGV0KEEpe1JJKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gYWUoQSxlKXtyZXR1cm4gaWUoQSxbXSxlKX1mdW5jdGlvbiBVQShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gdHQoQSl7cmV0dXJuIHooQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57ZXQoQSl9KX12YXIga0E9bmV3IFdlYWtNYXAsR0E9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IGU9KGtBLmdldChBKXx8MCktMTtrQS5zZXQoQSxlKSxlPT09MCYmdHQoQSl9KTtmdW5jdGlvbiBVSShBLGUpe2xldCBJPShrQS5nZXQoZSl8fDApKzE7a0Euc2V0KGUsSSksR0EmJkdBLnJlZ2lzdGVyKEEsZSxBKX1mdW5jdGlvbiBOSShBKXtHQSYmR0EudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBpZShBLGU9W10sST1mdW5jdGlvbigpe30pe2xldCB0PSExLHI9bmV3IFByb3h5KEkse2dldChpLGcpe2lmKFVBKHQpLGc9PT1vZSlyZXR1cm4oKT0+e05JKHIpLHR0KEEpLHQ9ITB9O2lmKGc9PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+cn07bGV0IHM9eihBLHt0eXBlOiJHRVQiLHBhdGg6ZS5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oWik7cmV0dXJuIHMudGhlbi5iaW5kKHMpfXJldHVybiBpZShBLFsuLi5lLGddKX0sc2V0KGksZyxzKXtVQSh0KTtsZXRbRSxDXT1iQShzKTtyZXR1cm4geihBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLmUsZ10ubWFwKG89Pm8udG9TdHJpbmcoKSksdmFsdWU6RX0sQykudGhlbihaKX0sYXBwbHkoaSxnLHMpe1VBKHQpO2xldCBFPWVbZS5sZW5ndGgtMV07aWYoRT09PXdJKXJldHVybiB6KEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oWik7aWYoRT09PSJiaW5kIilyZXR1cm4gaWUoQSxlLnNsaWNlKDAsLTEpKTtsZXRbQyxvXT1YZShzKTtyZXR1cm4geihBLHt0eXBlOiJBUFBMWSIscGF0aDplLm1hcChuPT5uLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpDfSxvKS50aGVuKFopfSxjb25zdHJ1Y3QoaSxnKXtVQSh0KTtsZXRbcyxFXT1YZShnKTtyZXR1cm4geihBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6ZS5tYXAoQz0+Qy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6c30sRSkudGhlbihaKX19KTtyZXR1cm4gVUkocixBKSxyfWZ1bmN0aW9uIGtJKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIFhlKEEpe2xldCBlPUEubWFwKGJBKTtyZXR1cm5bZS5tYXAoST0+SVswXSksa0koZS5tYXAoST0+SVsxXSkpXX12YXIgSXQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gbmUoQSxlKXtyZXR1cm4gSXQuc2V0KEEsZSksQX1mdW5jdGlvbiBHSShBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbemVdOiEwfSl9ZnVuY3Rpb24gYkEoQSl7Zm9yKGxldFtlLEldb2YgJGUpaWYoSS5jYW5IYW5kbGUoQSkpe2xldFt0LHJdPUkuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTplLHZhbHVlOnR9LHJdfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxJdC5nZXQoQSl8fFtdXX1mdW5jdGlvbiBaKEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuICRlLmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24geihBLGUsSSl7cmV0dXJuIG5ldyBQcm9taXNlKHQ9PntsZXQgcj1iSSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gaShnKXshZy5kYXRhfHwhZy5kYXRhLmlkfHxnLmRhdGEuaWQhPT1yfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixpKSx0KGcuZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6cn0sZSksSSl9KX1mdW5jdGlvbiBiSSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gbkEoQSxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShlLGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzpMSX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6Q2V9PU9iamVjdCx7aXRlcmF0b3I6SkEsdG9TdHJpbmdUYWc6aXR9PVN5bWJvbCxNQT0oQT0+ZT0+e2xldCBJPUxJLmNhbGwoZSk7cmV0dXJuIEFbSV18fChBW0ldPUkuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxKPUE9PihBPUEudG9Mb3dlckNhc2UoKSxlPT5NQShlKT09PUEpLFlBPUE9PmU9PnR5cGVvZiBlPT09QSx7aXNBcnJheTokfT1BcnJheSxfPVlBKCJ1bmRlZmluZWQiKTtmdW5jdGlvbiBzQShBKXtyZXR1cm4gQSE9PW51bGwmJiFfKEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIV8oQS5jb25zdHJ1Y3RvcikmJmsoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIG90PUooIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gSkkoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZvdChBLmJ1ZmZlciksZX12YXIgTUk9WUEoInN0cmluZyIpLGs9WUEoImZ1bmN0aW9uIiksYXQ9WUEoIm51bWJlciIpLENBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsWUk9QT0+QT09PSEwfHxBPT09ITEsTEE9QT0+e2lmKE1BKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IGU9Q2UoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEoaXQgaW4gQSkmJiEoSkEgaW4gQSl9LEhJPUE9PntpZighQ0EoQSl8fHNBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LHFJPUooIkRhdGUiKSxUST1KKCJGaWxlIikseEk9SigiQmxvYiIpLE9JPUooIkZpbGVMaXN0IiksS0k9QT0+Q0EoQSkmJmsoQS5waXBlKSxQST1BPT57bGV0IGU7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8ayhBLmFwcGVuZCkmJigoZT1NQShBKSk9PT0iZm9ybWRhdGEifHxlPT09Im9iamVjdCImJmsoQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sV0k9SigiVVJMU2VhcmNoUGFyYW1zIiksW2pJLHZJLFpJLFZJXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChKKSxYST1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gQkEoQSxlLHthbGxPd25LZXlzOkk9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgdCxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSwkKEEpKWZvcih0PTAscj1BLmxlbmd0aDt0PHI7dCsrKWUuY2FsbChudWxsLEFbdF0sdCxBKTtlbHNle2lmKHNBKEEpKXJldHVybjtsZXQgaT1JP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLGc9aS5sZW5ndGgscztmb3IodD0wO3Q8Zzt0Kyspcz1pW3RdLGUuY2FsbChudWxsLEFbc10scyxBKX19ZnVuY3Rpb24gbnQoQSxlKXtpZihzQShBKSlyZXR1cm4gbnVsbDtlPWUudG9Mb3dlckNhc2UoKTtsZXQgST1PYmplY3Qua2V5cyhBKSx0PUkubGVuZ3RoLHI7Zm9yKDt0LS0gPjA7KWlmKHI9SVt0XSxlPT09ci50b0xvd2VyQ2FzZSgpKXJldHVybiByO3JldHVybiBudWxsfXZhciBWPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsc3Q9QT0+IV8oQSkmJkEhPT1WO2Z1bmN0aW9uIHNlKCl7bGV0e2Nhc2VsZXNzOkEsc2tpcFVuZGVmaW5lZDplfT1zdCh0aGlzKSYmdGhpc3x8e30sST17fSx0PShyLGkpPT57bGV0IGc9QSYmbnQoSSxpKXx8aTtMQShJW2ddKSYmTEEocik/SVtnXT1zZShJW2ddLHIpOkxBKHIpP0lbZ109c2Uoe30scik6JChyKT9JW2ddPXIuc2xpY2UoKTooIWV8fCFfKHIpKSYmKElbZ109cil9O2ZvcihsZXQgcj0wLGk9YXJndW1lbnRzLmxlbmd0aDtyPGk7cisrKWFyZ3VtZW50c1tyXSYmQkEoYXJndW1lbnRzW3JdLHQpO3JldHVybiBJfXZhciB6ST0oQSxlLEkse2FsbE93bktleXM6dH09e30pPT4oQkEoZSwocixpKT0+e0kmJmsocik/QVtpXT1uQShyLEkpOkFbaV09cn0se2FsbE93bktleXM6dH0pLEEpLF9JPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksJEk9KEEsZSxJLHQpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSx0KSxBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse3ZhbHVlOmUucHJvdG90eXBlfSksSSYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSxJKX0sQXI9KEEsZSxJLHQpPT57bGV0IHIsaSxnLHM9e307aWYoZT1lfHx7fSxBPT1udWxsKXJldHVybiBlO2Rve2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLGk9ci5sZW5ndGg7aS0tID4wOylnPXJbaV0sKCF0fHx0KGcsQSxlKSkmJiFzW2ddJiYoZVtnXT1BW2ddLHNbZ109ITApO0E9SSE9PSExJiZDZShBKX13aGlsZShBJiYoIUl8fEkoQSxlKSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gZX0sZXI9KEEsZSxJKT0+e0E9U3RyaW5nKEEpLChJPT09dm9pZCAwfHxJPkEubGVuZ3RoKSYmKEk9QS5sZW5ndGgpLEktPWUubGVuZ3RoO2xldCB0PUEuaW5kZXhPZihlLEkpO3JldHVybiB0IT09LTEmJnQ9PT1JfSx0cj1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYoJChBKSlyZXR1cm4gQTtsZXQgZT1BLmxlbmd0aDtpZighYXQoZSkpcmV0dXJuIG51bGw7bGV0IEk9bmV3IEFycmF5KGUpO2Zvcig7ZS0tID4wOylJW2VdPUFbZV07cmV0dXJuIEl9LElyPShBPT5lPT5BJiZlIGluc3RhbmNlb2YgQSkodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZDZShVaW50OEFycmF5KSkscnI9KEEsZSk9PntsZXQgdD0oQSYmQVtKQV0pLmNhbGwoQSkscjtmb3IoOyhyPXQubmV4dCgpKSYmIXIuZG9uZTspe2xldCBpPXIudmFsdWU7ZS5jYWxsKEEsaVswXSxpWzFdKX19LGdyPShBLGUpPT57bGV0IEksdD1bXTtmb3IoOyhJPUEuZXhlYyhlKSkhPT1udWxsOyl0LnB1c2goSSk7cmV0dXJuIHR9LGlyPUooIkhUTUxGb3JtRWxlbWVudCIpLG9yPUE9PkEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9cc10oW2EtelxkXSkoXHcqKS9nLGZ1bmN0aW9uKEksdCxyKXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpK3J9KSxndD0oKHtoYXNPd25Qcm9wZXJ0eTpBfSk9PihlLEkpPT5BLmNhbGwoZSxJKSkoT2JqZWN0LnByb3RvdHlwZSksYXI9SigiUmVnRXhwIiksQ3Q9KEEsZSk9PntsZXQgST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhBKSx0PXt9O0JBKEksKHIsaSk9PntsZXQgZzsoZz1lKHIsaSxBKSkhPT0hMSYmKHRbaV09Z3x8cil9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBLHQpfSxucj1BPT57Q3QoQSwoZSxJKT0+e2lmKGsoQSkmJlsiYXJndW1lbnRzIiwiY2FsbGVyIiwiY2FsbGVlIl0uaW5kZXhPZihJKSE9PS0xKXJldHVybiExO2xldCB0PUFbSV07aWYoayh0KSl7aWYoZS5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiBlKXtlLndyaXRhYmxlPSExO3JldHVybn1lLnNldHx8KGUuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kICciK0krIiciKX0pfX0pfSxzcj0oQSxlKT0+e2xldCBJPXt9LHQ9cj0+e3IuZm9yRWFjaChpPT57SVtpXT0hMH0pfTtyZXR1cm4gJChBKT90KEEpOnQoU3RyaW5nKEEpLnNwbGl0KGUpKSxJfSxDcj0oKT0+e30sQnI9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gUXIoQSl7cmV0dXJuISEoQSYmayhBLmFwcGVuZCkmJkFbaXRdPT09IkZvcm1EYXRhIiYmQVtKQV0pfXZhciBFcj1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSxJPSh0LHIpPT57aWYoQ0EodCkpe2lmKGUuaW5kZXhPZih0KT49MClyZXR1cm47aWYoc0EodCkpcmV0dXJuIHQ7aWYoISgidG9KU09OImluIHQpKXtlW3JdPXQ7bGV0IGk9JCh0KT9bXTp7fTtyZXR1cm4gQkEodCwoZyxzKT0+e2xldCBFPUkoZyxyKzEpOyFfKEUpJiYoaVtzXT1FKX0pLGVbcl09dm9pZCAwLGl9fXJldHVybiB0fTtyZXR1cm4gSShBLDApfSxjcj1KKCJBc3luY0Z1bmN0aW9uIiksbHI9QT0+QSYmKENBKEEpfHxrKEEpKSYmayhBLnRoZW4pJiZrKEEuY2F0Y2gpLEJ0PSgoQSxlKT0+QT9zZXRJbW1lZGlhdGU6ZT8oKEksdCk9PihWLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTppfSk9PntyPT09ViYmaT09PUkmJnQubGVuZ3RoJiZ0LnNoaWZ0KCkoKX0sITEpLHI9Pnt0LnB1c2gociksVi5wb3N0TWVzc2FnZShJLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTpJPT5zZXRUaW1lb3V0KEkpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLGsoVi5wb3N0TWVzc2FnZSkpLGZyPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChWKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fEJ0LHVyPUE9PkEhPW51bGwmJmsoQVtKQV0pLGE9e2lzQXJyYXk6JCxpc0FycmF5QnVmZmVyOm90LGlzQnVmZmVyOnNBLGlzRm9ybURhdGE6UEksaXNBcnJheUJ1ZmZlclZpZXc6SkksaXNTdHJpbmc6TUksaXNOdW1iZXI6YXQsaXNCb29sZWFuOllJLGlzT2JqZWN0OkNBLGlzUGxhaW5PYmplY3Q6TEEsaXNFbXB0eU9iamVjdDpISSxpc1JlYWRhYmxlU3RyZWFtOmpJLGlzUmVxdWVzdDp2SSxpc1Jlc3BvbnNlOlpJLGlzSGVhZGVyczpWSSxpc1VuZGVmaW5lZDpfLGlzRGF0ZTpxSSxpc0ZpbGU6VEksaXNCbG9iOnhJLGlzUmVnRXhwOmFyLGlzRnVuY3Rpb246ayxpc1N0cmVhbTpLSSxpc1VSTFNlYXJjaFBhcmFtczpXSSxpc1R5cGVkQXJyYXk6SXIsaXNGaWxlTGlzdDpPSSxmb3JFYWNoOkJBLG1lcmdlOnNlLGV4dGVuZDp6SSx0cmltOlhJLHN0cmlwQk9NOl9JLGluaGVyaXRzOiRJLHRvRmxhdE9iamVjdDpBcixraW5kT2Y6TUEsa2luZE9mVGVzdDpKLGVuZHNXaXRoOmVyLHRvQXJyYXk6dHIsZm9yRWFjaEVudHJ5OnJyLG1hdGNoQWxsOmdyLGlzSFRNTEZvcm06aXIsaGFzT3duUHJvcGVydHk6Z3QsaGFzT3duUHJvcDpndCxyZWR1Y2VEZXNjcmlwdG9yczpDdCxmcmVlemVNZXRob2RzOm5yLHRvT2JqZWN0U2V0OnNyLHRvQ2FtZWxDYXNlOm9yLG5vb3A6Q3IsdG9GaW5pdGVOdW1iZXI6QnIsZmluZEtleTpudCxnbG9iYWw6Vixpc0NvbnRleHREZWZpbmVkOnN0LGlzU3BlY0NvbXBsaWFudEZvcm06UXIsdG9KU09OT2JqZWN0OkVyLGlzQXN5bmNGbjpjcixpc1RoZW5hYmxlOmxyLHNldEltbWVkaWF0ZTpCdCxhc2FwOmZyLGlzSXRlcmFibGU6dXJ9O2Z1bmN0aW9uIEFBKEEsZSxJLHQscil7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2ssdGhpcy5tZXNzYWdlPUEsdGhpcy5uYW1lPSJBeGlvc0Vycm9yIixlJiYodGhpcy5jb2RlPWUpLEkmJih0aGlzLmNvbmZpZz1JKSx0JiYodGhpcy5yZXF1ZXN0PXQpLHImJih0aGlzLnJlc3BvbnNlPXIsdGhpcy5zdGF0dXM9ci5zdGF0dXM/ci5zdGF0dXM6bnVsbCl9YS5pbmhlcml0cyhBQSxFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOmEudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX0pO3ZhciBRdD1BQS5wcm90b3R5cGUsRXQ9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57RXRbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQUEsRXQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRdCwiaXNBeGlvc0Vycm9yIix7dmFsdWU6ITB9KTtBQS5mcm9tPShBLGUsSSx0LHIsaSk9PntsZXQgZz1PYmplY3QuY3JlYXRlKFF0KTthLnRvRmxhdE9iamVjdChBLGcsZnVuY3Rpb24obyl7cmV0dXJuIG8hPT1FcnJvci5wcm90b3R5cGV9LEM9PkMhPT0iaXNBeGlvc0Vycm9yIik7bGV0IHM9QSYmQS5tZXNzYWdlP0EubWVzc2FnZToiRXJyb3IiLEU9ZT09bnVsbCYmQT9BLmNvZGU6ZTtyZXR1cm4gQUEuY2FsbChnLHMsRSxJLHQsciksQSYmZy5jYXVzZT09bnVsbCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGcsImNhdXNlIix7dmFsdWU6QSxjb25maWd1cmFibGU6ITB9KSxnLm5hbWU9QSYmQS5uYW1lfHwiRXJyb3IiLGkmJk9iamVjdC5hc3NpZ24oZyxpKSxnfTt2YXIgdT1BQTt2YXIgSEE9bnVsbDtmdW5jdGlvbiBCZShBKXtyZXR1cm4gYS5pc1BsYWluT2JqZWN0KEEpfHxhLmlzQXJyYXkoQSl9ZnVuY3Rpb24gbHQoQSl7cmV0dXJuIGEuZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gY3QoQSxlLEkpe3JldHVybiBBP0EuY29uY2F0KGUpLm1hcChmdW5jdGlvbihyLGkpe3JldHVybiByPWx0KHIpLCFJJiZpPyJbIityKyJdIjpyfSkuam9pbihJPyIuIjoiIik6ZX1mdW5jdGlvbiBkcihBKXtyZXR1cm4gYS5pc0FycmF5KEEpJiYhQS5zb21lKEJlKX12YXIgaHI9YS50b0ZsYXRPYmplY3QoYSx7fSxudWxsLGZ1bmN0aW9uKGUpe3JldHVybi9eaXNbQS1aXS8udGVzdChlKX0pO2Z1bmN0aW9uIHlyKEEsZSxJKXtpZighYS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTtlPWV8fG5ldyhIQXx8Rm9ybURhdGEpLEk9YS50b0ZsYXRPYmplY3QoSSx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGwsYyl7cmV0dXJuIWEuaXNVbmRlZmluZWQoY1tsXSl9KTtsZXQgdD1JLm1ldGFUb2tlbnMscj1JLnZpc2l0b3J8fG8saT1JLmRvdHMsZz1JLmluZGV4ZXMsRT0oSS5CbG9ifHx0eXBlb2YgQmxvYjwidSImJkJsb2IpJiZhLmlzU3BlY0NvbXBsaWFudEZvcm0oZSk7aWYoIWEuaXNGdW5jdGlvbihyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIEMoUSl7aWYoUT09PW51bGwpcmV0dXJuIiI7aWYoYS5pc0RhdGUoUSkpcmV0dXJuIFEudG9JU09TdHJpbmcoKTtpZihhLmlzQm9vbGVhbihRKSlyZXR1cm4gUS50b1N0cmluZygpO2lmKCFFJiZhLmlzQmxvYihRKSl0aHJvdyBuZXcgdSgiQmxvYiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYSBCdWZmZXIgaW5zdGVhZC4iKTtyZXR1cm4gYS5pc0FycmF5QnVmZmVyKFEpfHxhLmlzVHlwZWRBcnJheShRKT9FJiZ0eXBlb2YgQmxvYj09ImZ1bmN0aW9uIj9uZXcgQmxvYihbUV0pOkJ1ZmZlci5mcm9tKFEpOlF9ZnVuY3Rpb24gbyhRLGwsYyl7bGV0IHk9UTtpZihRJiYhYyYmdHlwZW9mIFE9PSJvYmplY3QiKXtpZihhLmVuZHNXaXRoKGwsInt9IikpbD10P2w6bC5zbGljZSgwLC0yKSxRPUpTT04uc3RyaW5naWZ5KFEpO2Vsc2UgaWYoYS5pc0FycmF5KFEpJiZkcihRKXx8KGEuaXNGaWxlTGlzdChRKXx8YS5lbmRzV2l0aChsLCJbXSIpKSYmKHk9YS50b0FycmF5KFEpKSlyZXR1cm4gbD1sdChsKSx5LmZvckVhY2goZnVuY3Rpb24ocCxOKXshKGEuaXNVbmRlZmluZWQocCl8fHA9PT1udWxsKSYmZS5hcHBlbmQoZz09PSEwP2N0KFtsXSxOLGkpOmc9PT1udWxsP2w6bCsiW10iLEMocCkpfSksITF9cmV0dXJuIEJlKFEpPyEwOihlLmFwcGVuZChjdChjLGwsaSksQyhRKSksITEpfWxldCBuPVtdLGY9T2JqZWN0LmFzc2lnbihocix7ZGVmYXVsdFZpc2l0b3I6byxjb252ZXJ0VmFsdWU6Qyxpc1Zpc2l0YWJsZTpCZX0pO2Z1bmN0aW9uIEIoUSxsKXtpZighYS5pc1VuZGVmaW5lZChRKSl7aWYobi5pbmRleE9mKFEpIT09LTEpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAiK2wuam9pbigiLiIpKTtuLnB1c2goUSksYS5mb3JFYWNoKFEsZnVuY3Rpb24oeSxVKXsoIShhLmlzVW5kZWZpbmVkKHkpfHx5PT09bnVsbCkmJnIuY2FsbChlLHksYS5pc1N0cmluZyhVKT9VLnRyaW0oKTpVLGwsZikpPT09ITAmJkIoeSxsP2wuY29uY2F0KFUpOltVXSl9KSxuLnBvcCgpfX1pZighYS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJkYXRhIG11c3QgYmUgYW4gb2JqZWN0Iik7cmV0dXJuIEIoQSksZX12YXIgUD15cjtmdW5jdGlvbiBmdChBKXtsZXQgZT17IiEiOiIlMjEiLCInIjoiJTI3IiwiKCI6IiUyOCIsIikiOiIlMjkiLCJ+IjoiJTdFIiwiJTIwIjoiKyIsIiUwMCI6IlwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC9bIScoKX5dfCUyMHwlMDAvZyxmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pfWZ1bmN0aW9uIHV0KEEsZSl7dGhpcy5fcGFpcnM9W10sQSYmUChBLHRoaXMsZSl9dmFyIGR0PXV0LnByb3RvdHlwZTtkdC5hcHBlbmQ9ZnVuY3Rpb24oZSxJKXt0aGlzLl9wYWlycy5wdXNoKFtlLEldKX07ZHQudG9TdHJpbmc9ZnVuY3Rpb24oZSl7bGV0IEk9ZT9mdW5jdGlvbih0KXtyZXR1cm4gZS5jYWxsKHRoaXMsdCxmdCl9OmZ0O3JldHVybiB0aGlzLl9wYWlycy5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIEkoclswXSkrIj0iK0koclsxXSl9LCIiKS5qb2luKCImIil9O3ZhciBxQT11dDtmdW5jdGlvbiBEcihBKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoLyUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNC9nLCIkIikucmVwbGFjZSgvJTJDL2dpLCIsIikucmVwbGFjZSgvJTIwL2csIisiKX1mdW5jdGlvbiBRQShBLGUsSSl7aWYoIWUpcmV0dXJuIEE7bGV0IHQ9SSYmSS5lbmNvZGV8fERyO2EuaXNGdW5jdGlvbihJKSYmKEk9e3NlcmlhbGl6ZTpJfSk7bGV0IHI9SSYmSS5zZXJpYWxpemUsaTtpZihyP2k9cihlLEkpOmk9YS5pc1VSTFNlYXJjaFBhcmFtcyhlKT9lLnRvU3RyaW5nKCk6bmV3IHFBKGUsSSkudG9TdHJpbmcodCksaSl7bGV0IGc9QS5pbmRleE9mKCIjIik7ZyE9PS0xJiYoQT1BLnNsaWNlKDAsZykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK2l9cmV0dXJuIEF9dmFyIFFlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UoZSxJLHQpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDplLHJlamVjdGVkOkksc3luY2hyb25vdXM6dD90LnN5bmNocm9ub3VzOiExLHJ1bldoZW46dD90LnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QoZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaChlKXthLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbih0KXt0IT09bnVsbCYmZSh0KX0pfX0sRWU9UWU7dmFyIFRBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgaHQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOnFBO3ZhciB5dD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyIER0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIHB0PXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOmh0LEZvcm1EYXRhOnl0LEJsb2I6RHR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgZmU9e307Y0koZmUse2hhc0Jyb3dzZXJFbnY6KCk9PmxlLGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+cHIsaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT53cixuYXZpZ2F0b3I6KCk9PmNlLG9yaWdpbjooKT0+bXJ9KTt2YXIgbGU9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsY2U9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLHByPWxlJiYoIWNlfHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKGNlLnByb2R1Y3QpPDApLHdyPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixtcj1sZSYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgRD17Li4uZmUsLi4ucHR9O2Z1bmN0aW9uIHVlKEEsZSl7cmV0dXJuIFAoQSxuZXcgRC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbihJLHQscixpKXtyZXR1cm4gRC5pc05vZGUmJmEuaXNCdWZmZXIoSSk/KHRoaXMuYXBwZW5kKHQsSS50b1N0cmluZygiYmFzZTY0IikpLCExKTppLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4uZX0pfWZ1bmN0aW9uIFNyKEEpe3JldHVybiBhLm1hdGNoQWxsKC9cdyt8XFsoXHcqKV0vZyxBKS5tYXAoZT0+ZVswXT09PSJbXSI/IiI6ZVsxXXx8ZVswXSl9ZnVuY3Rpb24gRnIoQSl7bGV0IGU9e30sST1PYmplY3Qua2V5cyhBKSx0LHI9SS5sZW5ndGgsaTtmb3IodD0wO3Q8cjt0KyspaT1JW3RdLGVbaV09QVtpXTtyZXR1cm4gZX1mdW5jdGlvbiBScihBKXtmdW5jdGlvbiBlKEksdCxyLGkpe2xldCBnPUlbaSsrXTtpZihnPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IHM9TnVtYmVyLmlzRmluaXRlKCtnKSxFPWk+PUkubGVuZ3RoO3JldHVybiBnPSFnJiZhLmlzQXJyYXkocik/ci5sZW5ndGg6ZyxFPyhhLmhhc093blByb3AocixnKT9yW2ddPVtyW2ddLHRdOnJbZ109dCwhcyk6KCghcltnXXx8IWEuaXNPYmplY3QocltnXSkpJiYocltnXT1bXSksZShJLHQscltnXSxpKSYmYS5pc0FycmF5KHJbZ10pJiYocltnXT1GcihyW2ddKSksIXMpfWlmKGEuaXNGb3JtRGF0YShBKSYmYS5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCBJPXt9O3JldHVybiBhLmZvckVhY2hFbnRyeShBLCh0LHIpPT57ZShTcih0KSxyLEksMCl9KSxJfXJldHVybiBudWxsfXZhciB4QT1ScjtmdW5jdGlvbiBVcihBLGUsSSl7aWYoYS5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKGV8fEpTT04ucGFyc2UpKEEpLGEudHJpbShBKX1jYXRjaCh0KXtpZih0Lm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IHR9cmV0dXJuKEl8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgZGU9e3RyYW5zaXRpb25hbDpUQSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24oZSxJKXtsZXQgdD1JLmdldENvbnRlbnRUeXBlKCl8fCIiLHI9dC5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsaT1hLmlzT2JqZWN0KGUpO2lmKGkmJmEuaXNIVE1MRm9ybShlKSYmKGU9bmV3IEZvcm1EYXRhKGUpKSxhLmlzRm9ybURhdGEoZSkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkoeEEoZSkpOmU7aWYoYS5pc0FycmF5QnVmZmVyKGUpfHxhLmlzQnVmZmVyKGUpfHxhLmlzU3RyZWFtKGUpfHxhLmlzRmlsZShlKXx8YS5pc0Jsb2IoZSl8fGEuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihhLmlzQXJyYXlCdWZmZXJWaWV3KGUpKXJldHVybiBlLmJ1ZmZlcjtpZihhLmlzVVJMU2VhcmNoUGFyYW1zKGUpKXJldHVybiBJLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLGUudG9TdHJpbmcoKTtsZXQgcztpZihpKXtpZih0LmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiB1ZShlLHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKHM9YS5pc0ZpbGVMaXN0KGUpKXx8dC5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gUChzP3siZmlsZXNbXSI6ZX06ZSxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIGl8fHI/KEkuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxVcihlKSk6ZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihlKXtsZXQgST10aGlzLnRyYW5zaXRpb25hbHx8ZGUudHJhbnNpdGlvbmFsLHQ9SSYmSS5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKGEuaXNSZXNwb25zZShlKXx8YS5pc1JlYWRhYmxlU3RyZWFtKGUpKXJldHVybiBlO2lmKGUmJmEuaXNTdHJpbmcoZSkmJih0JiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgZz0hKEkmJkkuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlLHRoaXMucGFyc2VSZXZpdmVyKX1jYXRjaChzKXtpZihnKXRocm93IHMubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKHMsdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpzfX1yZXR1cm4gZX1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6RC5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6RC5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKGUpe3JldHVybiBlPj0yMDAmJmU8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07YS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntkZS5oZWFkZXJzW0FdPXt9fSk7dmFyIGVBPWRlO3ZhciBOcj1hLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLHd0PUE9PntsZXQgZT17fSxJLHQscjtyZXR1cm4gQSYmQS5zcGxpdChgCmApLmZvckVhY2goZnVuY3Rpb24oZyl7cj1nLmluZGV4T2YoIjoiKSxJPWcuc3Vic3RyaW5nKDAscikudHJpbSgpLnRvTG93ZXJDYXNlKCksdD1nLnN1YnN0cmluZyhyKzEpLnRyaW0oKSwhKCFJfHxlW0ldJiZOcltJXSkmJihJPT09InNldC1jb29raWUiP2VbSV0/ZVtJXS5wdXNoKHQpOmVbSV09W3RdOmVbSV09ZVtJXT9lW0ldKyIsICIrdDp0KX0pLGV9O3ZhciBtdD1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIEVBKEEpe3JldHVybiBBJiZTdHJpbmcoQSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gT0EoQSl7cmV0dXJuIEE9PT0hMXx8QT09bnVsbD9BOmEuaXNBcnJheShBKT9BLm1hcChPQSk6U3RyaW5nKEEpfWZ1bmN0aW9uIGtyKEEpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCksST0vKFteXHMsOz1dKylccyooPzo9XHMqKFteLDtdKykpPy9nLHQ7Zm9yKDt0PUkuZXhlYyhBKTspZVt0WzFdXT10WzJdO3JldHVybiBlfXZhciBHcj1BPT4vXlstX2EtekEtWjAtOV5gfH4sISMkJSYnKisuXSskLy50ZXN0KEEudHJpbSgpKTtmdW5jdGlvbiBoZShBLGUsSSx0LHIpe2lmKGEuaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsZSxJKTtpZihyJiYoZT1JKSwhIWEuaXNTdHJpbmcoZSkpe2lmKGEuaXNTdHJpbmcodCkpcmV0dXJuIGUuaW5kZXhPZih0KSE9PS0xO2lmKGEuaXNSZWdFeHAodCkpcmV0dXJuIHQudGVzdChlKX19ZnVuY3Rpb24gYnIoQSl7cmV0dXJuIEEudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcZF0pKFx3KikvZywoZSxJLHQpPT5JLnRvVXBwZXJDYXNlKCkrdCl9ZnVuY3Rpb24gTHIoQSxlKXtsZXQgST1hLnRvQ2FtZWxDYXNlKCIgIitlKTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2godD0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLHQrSSx7dmFsdWU6ZnVuY3Rpb24ocixpLGcpe3JldHVybiB0aGlzW3RdLmNhbGwodGhpcyxlLHIsaSxnKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgdEE9Y2xhc3N7Y29uc3RydWN0b3IoZSl7ZSYmdGhpcy5zZXQoZSl9c2V0KGUsSSx0KXtsZXQgcj10aGlzO2Z1bmN0aW9uIGkocyxFLEMpe2xldCBvPUVBKEUpO2lmKCFvKXRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgbj1hLmZpbmRLZXkocixvKTsoIW58fHJbbl09PT12b2lkIDB8fEM9PT0hMHx8Qz09PXZvaWQgMCYmcltuXSE9PSExKSYmKHJbbnx8RV09T0EocykpfWxldCBnPShzLEUpPT5hLmZvckVhY2gocywoQyxvKT0+aShDLG8sRSkpO2lmKGEuaXNQbGFpbk9iamVjdChlKXx8ZSBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpZyhlLEkpO2Vsc2UgaWYoYS5pc1N0cmluZyhlKSYmKGU9ZS50cmltKCkpJiYhR3IoZSkpZyh3dChlKSxJKTtlbHNlIGlmKGEuaXNPYmplY3QoZSkmJmEuaXNJdGVyYWJsZShlKSl7bGV0IHM9e30sRSxDO2ZvcihsZXQgbyBvZiBlKXtpZighYS5pc0FycmF5KG8pKXRocm93IFR5cGVFcnJvcigiT2JqZWN0IGl0ZXJhdG9yIG11c3QgcmV0dXJuIGEga2V5LXZhbHVlIHBhaXIiKTtzW0M9b1swXV09KEU9c1tDXSk/YS5pc0FycmF5KEUpP1suLi5FLG9bMV1dOltFLG9bMV1dOm9bMV19ZyhzLEkpfWVsc2UgZSE9bnVsbCYmaShJLGUsdCk7cmV0dXJuIHRoaXN9Z2V0KGUsSSl7aWYoZT1FQShlKSxlKXtsZXQgdD1hLmZpbmRLZXkodGhpcyxlKTtpZih0KXtsZXQgcj10aGlzW3RdO2lmKCFJKXJldHVybiByO2lmKEk9PT0hMClyZXR1cm4ga3Iocik7aWYoYS5pc0Z1bmN0aW9uKEkpKXJldHVybiBJLmNhbGwodGhpcyxyLHQpO2lmKGEuaXNSZWdFeHAoSSkpcmV0dXJuIEkuZXhlYyhyKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKGUsSSl7aWYoZT1FQShlKSxlKXtsZXQgdD1hLmZpbmRLZXkodGhpcyxlKTtyZXR1cm4hISh0JiZ0aGlzW3RdIT09dm9pZCAwJiYoIUl8fGhlKHRoaXMsdGhpc1t0XSx0LEkpKSl9cmV0dXJuITF9ZGVsZXRlKGUsSSl7bGV0IHQ9dGhpcyxyPSExO2Z1bmN0aW9uIGkoZyl7aWYoZz1FQShnKSxnKXtsZXQgcz1hLmZpbmRLZXkodCxnKTtzJiYoIUl8fGhlKHQsdFtzXSxzLEkpKSYmKGRlbGV0ZSB0W3NdLHI9ITApfX1yZXR1cm4gYS5pc0FycmF5KGUpP2UuZm9yRWFjaChpKTppKGUpLHJ9Y2xlYXIoZSl7bGV0IEk9T2JqZWN0LmtleXModGhpcyksdD1JLmxlbmd0aCxyPSExO2Zvcig7dC0tOyl7bGV0IGk9SVt0XTsoIWV8fGhlKHRoaXMsdGhpc1tpXSxpLGUsITApKSYmKGRlbGV0ZSB0aGlzW2ldLHI9ITApfXJldHVybiByfW5vcm1hbGl6ZShlKXtsZXQgST10aGlzLHQ9e307cmV0dXJuIGEuZm9yRWFjaCh0aGlzLChyLGkpPT57bGV0IGc9YS5maW5kS2V5KHQsaSk7aWYoZyl7SVtnXT1PQShyKSxkZWxldGUgSVtpXTtyZXR1cm59bGV0IHM9ZT9icihpKTpTdHJpbmcoaSkudHJpbSgpO3MhPT1pJiZkZWxldGUgSVtpXSxJW3NdPU9BKHIpLHRbc109ITB9KSx0aGlzfWNvbmNhdCguLi5lKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi5lKX10b0pTT04oZSl7bGV0IEk9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gYS5mb3JFYWNoKHRoaXMsKHQscik9Pnt0IT1udWxsJiZ0IT09ITEmJihJW3JdPWUmJmEuaXNBcnJheSh0KT90LmpvaW4oIiwgIik6dCl9KSxJfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKX10b1N0cmluZygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFtlLEldKT0+ZSsiOiAiK0kpLmpvaW4oYApgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHRoaXM/ZTpuZXcgdGhpcyhlKX1zdGF0aWMgY29uY2F0KGUsLi4uSSl7bGV0IHQ9bmV3IHRoaXMoZSk7cmV0dXJuIEkuZm9yRWFjaChyPT50LnNldChyKSksdH1zdGF0aWMgYWNjZXNzb3IoZSl7bGV0IHQ9KHRoaXNbbXRdPXRoaXNbbXRdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBpKGcpe2xldCBzPUVBKGcpO3Rbc118fChMcihyLGcpLHRbc109ITApfXJldHVybiBhLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKGkpOmkoZSksdGhpc319O3RBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTthLnJlZHVjZURlc2NyaXB0b3JzKHRBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LGUpPT57bGV0IEk9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQodCl7dGhpc1tJXT10fX19KTthLmZyZWV6ZU1ldGhvZHModEEpO3ZhciBTPXRBO2Z1bmN0aW9uIGNBKEEsZSl7bGV0IEk9dGhpc3x8ZUEsdD1lfHxJLHI9Uy5mcm9tKHQuaGVhZGVycyksaT10LmRhdGE7cmV0dXJuIGEuZm9yRWFjaChBLGZ1bmN0aW9uKHMpe2k9cy5jYWxsKEksaSxyLm5vcm1hbGl6ZSgpLGU/ZS5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksaX1mdW5jdGlvbiBsQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIFN0KEEsZSxJKXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELGUsSSksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1hLmluaGVyaXRzKFN0LHUse19fQ0FOQ0VMX186ITB9KTt2YXIgcT1TdDtmdW5jdGlvbiBmQShBLGUsSSl7bGV0IHQ9SS5jb25maWcudmFsaWRhdGVTdGF0dXM7IUkuc3RhdHVzfHwhdHx8dChJLnN0YXR1cyk/QShJKTplKG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrSS5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihJLnN0YXR1cy8xMDApLTRdLEkuY29uZmlnLEkucmVxdWVzdCxJKSl9ZnVuY3Rpb24geWUoQSl7bGV0IGU9L14oWy0rXHddezEsMjV9KSg6P1wvXC98OikvLmV4ZWMoQSk7cmV0dXJuIGUmJmVbMV18fCIifWZ1bmN0aW9uIEpyKEEsZSl7QT1BfHwxMDtsZXQgST1uZXcgQXJyYXkoQSksdD1uZXcgQXJyYXkoQSkscj0wLGk9MCxnO3JldHVybiBlPWUhPT12b2lkIDA/ZToxZTMsZnVuY3Rpb24oRSl7bGV0IEM9RGF0ZS5ub3coKSxvPXRbaV07Z3x8KGc9QyksSVtyXT1FLHRbcl09QztsZXQgbj1pLGY9MDtmb3IoO24hPT1yOylmKz1JW24rK10sbj1uJUE7aWYocj0ocisxKSVBLHI9PT1pJiYoaT0oaSsxKSVBKSxDLWc8ZSlyZXR1cm47bGV0IEI9byYmQy1vO3JldHVybiBCP01hdGgucm91bmQoZioxZTMvQik6dm9pZCAwfX12YXIgRnQ9SnI7ZnVuY3Rpb24gTXIoQSxlKXtsZXQgST0wLHQ9MWUzL2UscixpLGc9KEMsbz1EYXRlLm5vdygpKT0+e0k9byxyPW51bGwsaSYmKGNsZWFyVGltZW91dChpKSxpPW51bGwpLEEoLi4uQyl9O3JldHVyblsoLi4uQyk9PntsZXQgbz1EYXRlLm5vdygpLG49by1JO24+PXQ/ZyhDLG8pOihyPUMsaXx8KGk9c2V0VGltZW91dCgoKT0+e2k9bnVsbCxnKHIpfSx0LW4pKSl9LCgpPT5yJiZnKHIpXX12YXIgUnQ9TXI7dmFyIElBPShBLGUsST0zKT0+e2xldCB0PTAscj1GdCg1MCwyNTApO3JldHVybiBSdChpPT57bGV0IGc9aS5sb2FkZWQscz1pLmxlbmd0aENvbXB1dGFibGU/aS50b3RhbDp2b2lkIDAsRT1nLXQsQz1yKEUpLG89Zzw9czt0PWc7bGV0IG49e2xvYWRlZDpnLHRvdGFsOnMscHJvZ3Jlc3M6cz9nL3M6dm9pZCAwLGJ5dGVzOkUscmF0ZTpDfHx2b2lkIDAsZXN0aW1hdGVkOkMmJnMmJm8/KHMtZykvQzp2b2lkIDAsZXZlbnQ6aSxsZW5ndGhDb21wdXRhYmxlOnMhPW51bGwsW2U/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0Eobil9LEkpfSxEZT0oQSxlKT0+e2xldCBJPUEhPW51bGw7cmV0dXJuW3Q9PmVbMF0oe2xlbmd0aENvbXB1dGFibGU6SSx0b3RhbDpBLGxvYWRlZDp0fSksZVsxXV19LHBlPUE9PiguLi5lKT0+YS5hc2FwKCgpPT5BKC4uLmUpKTt2YXIgVXQ9RC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLGUpPT5JPT4oST1uZXcgVVJMKEksRC5vcmlnaW4pLEEucHJvdG9jb2w9PT1JLnByb3RvY29sJiZBLmhvc3Q9PT1JLmhvc3QmJihlfHxBLnBvcnQ9PT1JLnBvcnQpKSkobmV3IFVSTChELm9yaWdpbiksRC5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoRC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBOdD1ELmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSxlLEksdCxyLGkpe2xldCBnPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQoZSldO2EuaXNOdW1iZXIoSSkmJmcucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKEkpLnRvR01UU3RyaW5nKCkpLGEuaXNTdHJpbmcodCkmJmcucHVzaCgicGF0aD0iK3QpLGEuaXNTdHJpbmcocikmJmcucHVzaCgiZG9tYWluPSIrciksaT09PSEwJiZnLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1nLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IGU9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMqKSgiK0ErIik9KFteO10qKSIpKTtyZXR1cm4gZT9kZWNvZGVVUklDb21wb25lbnQoZVszXSk6bnVsbH0scmVtb3ZlKEEpe3RoaXMud3JpdGUoQSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiB3ZShBKXtyZXR1cm4vXihbYS16XVthLXpcZCtcLS5dKjopP1wvXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIG1lKEEsZSl7cmV0dXJuIGU/QS5yZXBsYWNlKC9cLz9cLyQvLCIiKSsiLyIrZS5yZXBsYWNlKC9eXC8rLywiIik6QX1mdW5jdGlvbiB1QShBLGUsSSl7bGV0IHQ9IXdlKGUpO3JldHVybiBBJiYodHx8ST09ITEpP21lKEEsZSk6ZX12YXIga3Q9QT0+QSBpbnN0YW5jZW9mIFM/ey4uLkF9OkE7ZnVuY3Rpb24gTShBLGUpe2U9ZXx8e307bGV0IEk9e307ZnVuY3Rpb24gdChDLG8sbixmKXtyZXR1cm4gYS5pc1BsYWluT2JqZWN0KEMpJiZhLmlzUGxhaW5PYmplY3Qobyk/YS5tZXJnZS5jYWxsKHtjYXNlbGVzczpmfSxDLG8pOmEuaXNQbGFpbk9iamVjdChvKT9hLm1lcmdlKHt9LG8pOmEuaXNBcnJheShvKT9vLnNsaWNlKCk6b31mdW5jdGlvbiByKEMsbyxuLGYpe2lmKGEuaXNVbmRlZmluZWQobykpe2lmKCFhLmlzVW5kZWZpbmVkKEMpKXJldHVybiB0KHZvaWQgMCxDLG4sZil9ZWxzZSByZXR1cm4gdChDLG8sbixmKX1mdW5jdGlvbiBpKEMsbyl7aWYoIWEuaXNVbmRlZmluZWQobykpcmV0dXJuIHQodm9pZCAwLG8pfWZ1bmN0aW9uIGcoQyxvKXtpZihhLmlzVW5kZWZpbmVkKG8pKXtpZighYS5pc1VuZGVmaW5lZChDKSlyZXR1cm4gdCh2b2lkIDAsQyl9ZWxzZSByZXR1cm4gdCh2b2lkIDAsbyl9ZnVuY3Rpb24gcyhDLG8sbil7aWYobiBpbiBlKXJldHVybiB0KEMsbyk7aWYobiBpbiBBKXJldHVybiB0KHZvaWQgMCxDKX1sZXQgRT17dXJsOmksbWV0aG9kOmksZGF0YTppLGJhc2VVUkw6Zyx0cmFuc2Zvcm1SZXF1ZXN0OmcsdHJhbnNmb3JtUmVzcG9uc2U6ZyxwYXJhbXNTZXJpYWxpemVyOmcsdGltZW91dDpnLHRpbWVvdXRNZXNzYWdlOmcsd2l0aENyZWRlbnRpYWxzOmcsd2l0aFhTUkZUb2tlbjpnLGFkYXB0ZXI6ZyxyZXNwb25zZVR5cGU6Zyx4c3JmQ29va2llTmFtZTpnLHhzcmZIZWFkZXJOYW1lOmcsb25VcGxvYWRQcm9ncmVzczpnLG9uRG93bmxvYWRQcm9ncmVzczpnLGRlY29tcHJlc3M6ZyxtYXhDb250ZW50TGVuZ3RoOmcsbWF4Qm9keUxlbmd0aDpnLGJlZm9yZVJlZGlyZWN0OmcsdHJhbnNwb3J0OmcsaHR0cEFnZW50OmcsaHR0cHNBZ2VudDpnLGNhbmNlbFRva2VuOmcsc29ja2V0UGF0aDpnLHJlc3BvbnNlRW5jb2Rpbmc6Zyx2YWxpZGF0ZVN0YXR1czpzLGhlYWRlcnM6KEMsbyxuKT0+cihrdChDKSxrdChvKSxuLCEwKX07cmV0dXJuIGEuZm9yRWFjaChPYmplY3Qua2V5cyh7Li4uQSwuLi5lfSksZnVuY3Rpb24obyl7bGV0IG49RVtvXXx8cixmPW4oQVtvXSxlW29dLG8pO2EuaXNVbmRlZmluZWQoZikmJm4hPT1zfHwoSVtvXT1mKX0pLEl9dmFyIEtBPUE9PntsZXQgZT1NKHt9LEEpLHtkYXRhOkksd2l0aFhTUkZUb2tlbjp0LHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6aSxoZWFkZXJzOmcsYXV0aDpzfT1lO2lmKGUuaGVhZGVycz1nPVMuZnJvbShnKSxlLnVybD1RQSh1QShlLmJhc2VVUkwsZS51cmwsZS5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxzJiZnLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgocy51c2VybmFtZXx8IiIpKyI6Iisocy5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQocy5wYXNzd29yZCkpOiIiKSkpLGEuaXNGb3JtRGF0YShJKSl7aWYoRC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fEQuaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KWcuc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKGEuaXNGdW5jdGlvbihJLmdldEhlYWRlcnMpKXtsZXQgRT1JLmdldEhlYWRlcnMoKSxDPVsiY29udGVudC10eXBlIiwiY29udGVudC1sZW5ndGgiXTtPYmplY3QuZW50cmllcyhFKS5mb3JFYWNoKChbbyxuXSk9PntDLmluY2x1ZGVzKG8udG9Mb3dlckNhc2UoKSkmJmcuc2V0KG8sbil9KX19aWYoRC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJih0JiZhLmlzRnVuY3Rpb24odCkmJih0PXQoZSkpLHR8fHQhPT0hMSYmVXQoZS51cmwpKSl7bGV0IEU9ciYmaSYmTnQucmVhZChpKTtFJiZnLnNldChyLEUpfXJldHVybiBlfTt2YXIgWXI9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixHdD1ZciYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEksdCl7bGV0IHI9S0EoQSksaT1yLmRhdGEsZz1TLmZyb20oci5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOnMsb25VcGxvYWRQcm9ncmVzczpFLG9uRG93bmxvYWRQcm9ncmVzczpDfT1yLG8sbixmLEIsUTtmdW5jdGlvbiBsKCl7QiYmQigpLFEmJlEoKSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKG8pLHIuc2lnbmFsJiZyLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsbyl9bGV0IGM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Mub3BlbihyLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHIudXJsLCEwKSxjLnRpbWVvdXQ9ci50aW1lb3V0O2Z1bmN0aW9uIHkoKXtpZighYylyZXR1cm47bGV0IHA9Uy5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gYyYmYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksTD17ZGF0YTohc3x8cz09PSJ0ZXh0Inx8cz09PSJqc29uIj9jLnJlc3BvbnNlVGV4dDpjLnJlc3BvbnNlLHN0YXR1czpjLnN0YXR1cyxzdGF0dXNUZXh0OmMuc3RhdHVzVGV4dCxoZWFkZXJzOnAsY29uZmlnOkEscmVxdWVzdDpjfTtmQShmdW5jdGlvbihiKXtJKGIpLGwoKX0sZnVuY3Rpb24oYil7dChiKSxsKCl9LEwpLGM9bnVsbH0ib25sb2FkZW5kImluIGM/Yy5vbmxvYWRlbmQ9eTpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFjfHxjLnJlYWR5U3RhdGUhPT00fHxjLnN0YXR1cz09PTAmJiEoYy5yZXNwb25zZVVSTCYmYy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoeSl9LGMub25hYm9ydD1mdW5jdGlvbigpe2MmJih0KG5ldyB1KCJSZXF1ZXN0IGFib3J0ZWQiLHUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbCl9LGMub25lcnJvcj1mdW5jdGlvbihOKXtsZXQgTD1OJiZOLm1lc3NhZ2U/Ti5tZXNzYWdlOiJOZXR3b3JrIEVycm9yIixqPW5ldyB1KEwsdS5FUlJfTkVUV09SSyxBLGMpO2ouZXZlbnQ9Tnx8bnVsbCx0KGopLGM9bnVsbH0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgTj1yLnRpbWVvdXQ/InRpbWVvdXQgb2YgIityLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsTD1yLnRyYW5zaXRpb25hbHx8VEE7ci50aW1lb3V0RXJyb3JNZXNzYWdlJiYoTj1yLnRpbWVvdXRFcnJvck1lc3NhZ2UpLHQobmV3IHUoTixMLmNsYXJpZnlUaW1lb3V0RXJyb3I/dS5FVElNRURPVVQ6dS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsfSxpPT09dm9pZCAwJiZnLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGMmJmEuZm9yRWFjaChnLnRvSlNPTigpLGZ1bmN0aW9uKE4sTCl7Yy5zZXRSZXF1ZXN0SGVhZGVyKEwsTil9KSxhLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGMud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLHMmJnMhPT0ianNvbiImJihjLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksQyYmKFtmLFFdPUlBKEMsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGYpKSxFJiZjLnVwbG9hZCYmKFtuLEJdPUlBKEUpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixuKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixCKSksKHIuY2FuY2VsVG9rZW58fHIuc2lnbmFsKSYmKG89cD0+e2MmJih0KCFwfHxwLnR5cGU/bmV3IHEobnVsbCxBLGMpOnApLGMuYWJvcnQoKSxjPW51bGwpfSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnN1YnNjcmliZShvKSxyLnNpZ25hbCYmKHIuc2lnbmFsLmFib3J0ZWQ/bygpOnIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvKSkpO2xldCBVPXllKHIudXJsKTtpZihVJiZELnByb3RvY29scy5pbmRleE9mKFUpPT09LTEpe3QobmV3IHUoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrVSsiOiIsdS5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1jLnNlbmQoaXx8bnVsbCl9KX07dmFyIEhyPShBLGUpPT57bGV0e2xlbmd0aDpJfT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYoZXx8SSl7bGV0IHQ9bmV3IEFib3J0Q29udHJvbGxlcixyLGk9ZnVuY3Rpb24oQyl7aWYoIXIpe3I9ITAscygpO2xldCBvPUMgaW5zdGFuY2VvZiBFcnJvcj9DOnRoaXMucmVhc29uO3QuYWJvcnQobyBpbnN0YW5jZW9mIHU/bzpuZXcgcShvIGluc3RhbmNlb2YgRXJyb3I/by5tZXNzYWdlOm8pKX19LGc9ZSYmc2V0VGltZW91dCgoKT0+e2c9bnVsbCxpKG5ldyB1KGB0aW1lb3V0ICR7ZX0gb2YgbXMgZXhjZWVkZWRgLHUuRVRJTUVET1VUKSl9LGUpLHM9KCk9PntBJiYoZyYmY2xlYXJUaW1lb3V0KGcpLGc9bnVsbCxBLmZvckVhY2goQz0+e0MudW5zdWJzY3JpYmU/Qy51bnN1YnNjcmliZShpKTpDLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixpKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChDPT5DLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixpKSk7bGV0e3NpZ25hbDpFfT10O3JldHVybiBFLnVuc3Vic2NyaWJlPSgpPT5hLmFzYXAocyksRX19LGJ0PUhyO3ZhciBxcj1mdW5jdGlvbiooQSxlKXtsZXQgST1BLmJ5dGVMZW5ndGg7aWYoIWV8fEk8ZSl7eWllbGQgQTtyZXR1cm59bGV0IHQ9MCxyO2Zvcig7dDxJOylyPXQrZSx5aWVsZCBBLnNsaWNlKHQsciksdD1yfSxUcj1hc3luYyBmdW5jdGlvbiooQSxlKXtmb3IgYXdhaXQobGV0IEkgb2YgeHIoQSkpeWllbGQqcXIoSSxlKX0seHI9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgZT1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOkksdmFsdWU6dH09YXdhaXQgZS5yZWFkKCk7aWYoSSlicmVhazt5aWVsZCB0fX1maW5hbGx5e2F3YWl0IGUuY2FuY2VsKCl9fSxTZT0oQSxlLEksdCk9PntsZXQgcj1UcihBLGUpLGk9MCxnLHM9RT0+e2d8fChnPSEwLHQmJnQoRSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKEUpe3RyeXtsZXR7ZG9uZTpDLHZhbHVlOm99PWF3YWl0IHIubmV4dCgpO2lmKEMpe3MoKSxFLmNsb3NlKCk7cmV0dXJufWxldCBuPW8uYnl0ZUxlbmd0aDtpZihJKXtsZXQgZj1pKz1uO0koZil9RS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KG8pKX1jYXRjaChDKXt0aHJvdyBzKEMpLEN9fSxjYW5jZWwoRSl7cmV0dXJuIHMoRSksci5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIEx0PTY0KjEwMjQse2lzRnVuY3Rpb246UEF9PWEsSHQ9KCh7ZmV0Y2g6QSxSZXF1ZXN0OmUsUmVzcG9uc2U6SX0pPT4oe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOkl9KSkoYS5nbG9iYWwpLHtSZWFkYWJsZVN0cmVhbTpKdCxUZXh0RW5jb2RlcjpNdH09YS5nbG9iYWwsWXQ9KEEsLi4uZSk9Pnt0cnl7cmV0dXJuISFBKC4uLmUpfWNhdGNoe3JldHVybiExfX0sT3I9QT0+e2xldHtmZXRjaDplLFJlcXVlc3Q6SSxSZXNwb25zZTp0fT1PYmplY3QuYXNzaWduKHt9LEh0LEEpLHI9UEEoZSksaT1QQShJKSxnPVBBKHQpO2lmKCFyKXJldHVybiExO2xldCBzPXImJlBBKEp0KSxFPXImJih0eXBlb2YgTXQ9PSJmdW5jdGlvbiI/KFE9Pmw9PlEuZW5jb2RlKGwpKShuZXcgTXQpOmFzeW5jIFE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBJKFEpLmFycmF5QnVmZmVyKCkpKSxDPWkmJnMmJll0KCgpPT57bGV0IFE9ITEsbD1uZXcgSShELm9yaWdpbix7Ym9keTpuZXcgSnQsbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIFE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gUSYmIWx9KSxvPWcmJnMmJll0KCgpPT5hLmlzUmVhZGFibGVTdHJlYW0obmV3IHQoIiIpLmJvZHkpKSxuPXtzdHJlYW06byYmKFE9PlEuYm9keSl9O3ImJlsidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChRPT57IW5bUV0mJihuW1FdPShsLGMpPT57bGV0IHk9bCYmbFtRXTtpZih5KXJldHVybiB5LmNhbGwobCk7dGhyb3cgbmV3IHUoYFJlc3BvbnNlIHR5cGUgJyR7UX0nIGlzIG5vdCBzdXBwb3J0ZWRgLHUuRVJSX05PVF9TVVBQT1JULGMpfSl9KTtsZXQgZj1hc3luYyBRPT57aWYoUT09bnVsbClyZXR1cm4gMDtpZihhLmlzQmxvYihRKSlyZXR1cm4gUS5zaXplO2lmKGEuaXNTcGVjQ29tcGxpYW50Rm9ybShRKSlyZXR1cm4oYXdhaXQgbmV3IEkoRC5vcmlnaW4se21ldGhvZDoiUE9TVCIsYm9keTpRfSkuYXJyYXlCdWZmZXIoKSkuYnl0ZUxlbmd0aDtpZihhLmlzQXJyYXlCdWZmZXJWaWV3KFEpfHxhLmlzQXJyYXlCdWZmZXIoUSkpcmV0dXJuIFEuYnl0ZUxlbmd0aDtpZihhLmlzVVJMU2VhcmNoUGFyYW1zKFEpJiYoUT1RKyIiKSxhLmlzU3RyaW5nKFEpKXJldHVybihhd2FpdCBFKFEpKS5ieXRlTGVuZ3RofSxCPWFzeW5jKFEsbCk9PntsZXQgYz1hLnRvRmluaXRlTnVtYmVyKFEuZ2V0Q29udGVudExlbmd0aCgpKTtyZXR1cm4gYz8/ZihsKX07cmV0dXJuIGFzeW5jIFE9PntsZXR7dXJsOmwsbWV0aG9kOmMsZGF0YTp5LHNpZ25hbDpVLGNhbmNlbFRva2VuOnAsdGltZW91dDpOLG9uRG93bmxvYWRQcm9ncmVzczpMLG9uVXBsb2FkUHJvZ3Jlc3M6aixyZXNwb25zZVR5cGU6YixoZWFkZXJzOkFlLHdpdGhDcmVkZW50aWFsczptQT0ic2FtZS1vcmlnaW4iLGZldGNoT3B0aW9uczpPZX09S0EoUSk7Yj1iPyhiKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgU0E9YnQoW1UscCYmcC50b0Fib3J0U2lnbmFsKCldLE4pLGFBPW51bGwsdj1TQSYmU0EudW5zdWJzY3JpYmUmJigoKT0+e1NBLnVuc3Vic2NyaWJlKCl9KSxLZTt0cnl7aWYoaiYmQyYmYyE9PSJnZXQiJiZjIT09ImhlYWQiJiYoS2U9YXdhaXQgQihBZSx5KSkhPT0wKXtsZXQgSz1uZXcgSShsLHttZXRob2Q6IlBPU1QiLGJvZHk6eSxkdXBsZXg6ImhhbGYifSksWDtpZihhLmlzRm9ybURhdGEoeSkmJihYPUsuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmQWUuc2V0Q29udGVudFR5cGUoWCksSy5ib2R5KXtsZXRbZWUsRkFdPURlKEtlLElBKHBlKGopKSk7eT1TZShLLmJvZHksTHQsZWUsRkEpfX1hLmlzU3RyaW5nKG1BKXx8KG1BPW1BPyJpbmNsdWRlIjoib21pdCIpO2xldCBZPWkmJiJjcmVkZW50aWFscyJpbiBJLnByb3RvdHlwZSxQZT17Li4uT2Usc2lnbmFsOlNBLG1ldGhvZDpjLnRvVXBwZXJDYXNlKCksaGVhZGVyczpBZS5ub3JtYWxpemUoKS50b0pTT04oKSxib2R5OnksZHVwbGV4OiJoYWxmIixjcmVkZW50aWFsczpZP21BOnZvaWQgMH07YUE9aSYmbmV3IEkobCxQZSk7bGV0IE89YXdhaXQoaT9lKGFBLE9lKTplKGwsUGUpKSxXZT1vJiYoYj09PSJzdHJlYW0ifHxiPT09InJlc3BvbnNlIik7aWYobyYmKEx8fFdlJiZ2KSl7bGV0IEs9e307WyJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyJdLmZvckVhY2goamU9PntLW2plXT1PW2plXX0pO2xldCBYPWEudG9GaW5pdGVOdW1iZXIoTy5oZWFkZXJzLmdldCgiY29udGVudC1sZW5ndGgiKSksW2VlLEZBXT1MJiZEZShYLElBKHBlKEwpLCEwKSl8fFtdO089bmV3IHQoU2UoTy5ib2R5LEx0LGVlLCgpPT57RkEmJkZBKCksdiYmdigpfSksSyl9Yj1ifHwidGV4dCI7bGV0IFFJPWF3YWl0IG5bYS5maW5kS2V5KG4sYil8fCJ0ZXh0Il0oTyxRKTtyZXR1cm4hV2UmJnYmJnYoKSxhd2FpdCBuZXcgUHJvbWlzZSgoSyxYKT0+e2ZBKEssWCx7ZGF0YTpRSSxoZWFkZXJzOlMuZnJvbShPLmhlYWRlcnMpLHN0YXR1czpPLnN0YXR1cyxzdGF0dXNUZXh0Ok8uc3RhdHVzVGV4dCxjb25maWc6USxyZXF1ZXN0OmFBfSl9KX1jYXRjaChZKXt0aHJvdyB2JiZ2KCksWSYmWS5uYW1lPT09IlR5cGVFcnJvciImJi9Mb2FkIGZhaWxlZHxmZXRjaC9pLnRlc3QoWS5tZXNzYWdlKT9PYmplY3QuYXNzaWduKG5ldyB1KCJOZXR3b3JrIEVycm9yIix1LkVSUl9ORVRXT1JLLFEsYUEpLHtjYXVzZTpZLmNhdXNlfHxZfSk6dS5mcm9tKFksWSYmWS5jb2RlLFEsYUEpfX19LEtyPW5ldyBNYXAsRmU9QT0+e2xldCBlPWEubWVyZ2UuY2FsbCh7c2tpcFVuZGVmaW5lZDohMH0sSHQsQT9BLmVudjpudWxsKSx7ZmV0Y2g6SSxSZXF1ZXN0OnQsUmVzcG9uc2U6cn09ZSxpPVt0LHIsSV0sZz1pLmxlbmd0aCxzPWcsRSxDLG89S3I7Zm9yKDtzLS07KUU9aVtzXSxDPW8uZ2V0KEUpLEM9PT12b2lkIDAmJm8uc2V0KEUsQz1zP25ldyBNYXA6T3IoZSkpLG89QztyZXR1cm4gQ30sZWE9RmUoKTt2YXIgUmU9e2h0dHA6SEEseGhyOkd0LGZldGNoOntnZXQ6RmV9fTthLmZvckVhY2goUmUsKEEsZSk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHt2YWx1ZTplfSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse3ZhbHVlOmV9KX19KTt2YXIgcXQ9QT0+YC0gJHtBfWAsV3I9QT0+YS5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExLFdBPXtnZXRBZGFwdGVyOihBLGUpPT57QT1hLmlzQXJyYXkoQSk/QTpbQV07bGV0e2xlbmd0aDpJfT1BLHQscixpPXt9O2ZvcihsZXQgZz0wO2c8STtnKyspe3Q9QVtnXTtsZXQgcztpZihyPXQsIVdyKHQpJiYocj1SZVsocz1TdHJpbmcodCkpLnRvTG93ZXJDYXNlKCldLHI9PT12b2lkIDApKXRocm93IG5ldyB1KGBVbmtub3duIGFkYXB0ZXIgJyR7c30nYCk7aWYociYmKGEuaXNGdW5jdGlvbihyKXx8KHI9ci5nZXQoZSkpKSlicmVhaztpW3N8fCIjIitnXT1yfWlmKCFyKXtsZXQgZz1PYmplY3QuZW50cmllcyhpKS5tYXAoKFtFLENdKT0+YGFkYXB0ZXIgJHtFfSBgKyhDPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSkscz1JP2cubGVuZ3RoPjE/YHNpbmNlIDoKYCtnLm1hcChxdCkuam9pbihgCmApOiIgIitxdChnWzBdKToiYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQiO3Rocm93IG5ldyB1KCJUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIrcywiRVJSX05PVF9TVVBQT1JUIil9cmV0dXJuIHJ9LGFkYXB0ZXJzOlJlfTtmdW5jdGlvbiBVZShBKXtpZihBLmNhbmNlbFRva2VuJiZBLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxBLnNpZ25hbCYmQS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgcShudWxsLEEpfWZ1bmN0aW9uIGpBKEEpe3JldHVybiBVZShBKSxBLmhlYWRlcnM9Uy5mcm9tKEEuaGVhZGVycyksQS5kYXRhPWNBLmNhbGwoQSxBLnRyYW5zZm9ybVJlcXVlc3QpLFsicG9zdCIsInB1dCIsInBhdGNoIl0uaW5kZXhPZihBLm1ldGhvZCkhPT0tMSYmQS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCExKSxXQS5nZXRBZGFwdGVyKEEuYWRhcHRlcnx8ZUEuYWRhcHRlcixBKShBKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBVZShBKSx0LmRhdGE9Y0EuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsdCksdC5oZWFkZXJzPVMuZnJvbSh0LmhlYWRlcnMpLHR9LGZ1bmN0aW9uKHQpe3JldHVybiBsQSh0KXx8KFVlKEEpLHQmJnQucmVzcG9uc2UmJih0LnJlc3BvbnNlLmRhdGE9Y0EuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsdC5yZXNwb25zZSksdC5yZXNwb25zZS5oZWFkZXJzPVMuZnJvbSh0LnJlc3BvbnNlLmhlYWRlcnMpKSksUHJvbWlzZS5yZWplY3QodCl9KX12YXIgdkE9IjEuMTIuMCI7dmFyIFpBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSxlKT0+e1pBW0FdPWZ1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdD09PUF8fCJhIisoZTwxPyJuICI6IiAiKStBfX0pO3ZhciBUdD17fTtaQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSxJLHQpe2Z1bmN0aW9uIHIoaSxnKXtyZXR1cm4iW0F4aW9zIHYiK3ZBKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIraSsiJyIrZysodD8iLiAiK3Q6IiIpfXJldHVybihpLGcscyk9PntpZihlPT09ITEpdGhyb3cgbmV3IHUocihnLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKEk/IiBpbiAiK0k6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gSSYmIVR0W2ddJiYoVHRbZ109ITAsY29uc29sZS53YXJuKHIoZywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrSSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSxlP2UoaSxnLHMpOiEwfX07WkEuc3BlbGxpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuKEksdCk9Pihjb25zb2xlLndhcm4oYCR7dH0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHtlfWApLCEwKX07ZnVuY3Rpb24ganIoQSxlLEkpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IHQ9T2JqZWN0LmtleXMoQSkscj10Lmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBpPXRbcl0sZz1lW2ldO2lmKGcpe2xldCBzPUFbaV0sRT1zPT09dm9pZCAwfHxnKHMsaSxBKTtpZihFIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK2krIiBtdXN0IGJlICIrRSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZihJIT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIraSx1LkVSUl9CQURfT1BUSU9OKX19dmFyIGRBPXthc3NlcnRPcHRpb25zOmpyLHZhbGlkYXRvcnM6WkF9O3ZhciBUPWRBLnZhbGlkYXRvcnMsckE9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5kZWZhdWx0cz1lfHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgRWUscmVzcG9uc2U6bmV3IEVlfX1hc3luYyByZXF1ZXN0KGUsSSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KGUsSSl9Y2F0Y2godCl7aWYodCBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgaT1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXG4vLCIiKToiIjt0cnl7dC5zdGFjaz9pJiYhU3RyaW5nKHQuc3RhY2spLmVuZHNXaXRoKGkucmVwbGFjZSgvXi4rXG4uK1xuLywiIikpJiYodC5zdGFjays9YApgK2kpOnQuc3RhY2s9aX1jYXRjaHt9fXRocm93IHR9fV9yZXF1ZXN0KGUsSSl7dHlwZW9mIGU9PSJzdHJpbmciPyhJPUl8fHt9LEkudXJsPWUpOkk9ZXx8e30sST1NKHRoaXMuZGVmYXVsdHMsSSk7bGV0e3RyYW5zaXRpb25hbDp0LHBhcmFtc1NlcmlhbGl6ZXI6cixoZWFkZXJzOml9PUk7dCE9PXZvaWQgMCYmZEEuYXNzZXJ0T3B0aW9ucyh0LHtzaWxlbnRKU09OUGFyc2luZzpULnRyYW5zaXRpb25hbChULmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOlQudHJhbnNpdGlvbmFsKFQuYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpULnRyYW5zaXRpb25hbChULmJvb2xlYW4pfSwhMSksciE9bnVsbCYmKGEuaXNGdW5jdGlvbihyKT9JLnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpyfTpkQS5hc3NlcnRPcHRpb25zKHIse2VuY29kZTpULmZ1bmN0aW9uLHNlcmlhbGl6ZTpULmZ1bmN0aW9ufSwhMCkpLEkuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDB8fCh0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwP0kuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsczpJLmFsbG93QWJzb2x1dGVVcmxzPSEwKSxkQS5hc3NlcnRPcHRpb25zKEkse2Jhc2VVcmw6VC5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46VC5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksSS5tZXRob2Q9KEkubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IGc9aSYmYS5tZXJnZShpLmNvbW1vbixpW0kubWV0aG9kXSk7aSYmYS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLFE9PntkZWxldGUgaVtRXX0pLEkuaGVhZGVycz1TLmNvbmNhdChnLGkpO2xldCBzPVtdLEU9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGwpe3R5cGVvZiBsLnJ1bldoZW49PSJmdW5jdGlvbiImJmwucnVuV2hlbihJKT09PSExfHwoRT1FJiZsLnN5bmNocm9ub3VzLHMudW5zaGlmdChsLmZ1bGZpbGxlZCxsLnJlamVjdGVkKSl9KTtsZXQgQz1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGwpe0MucHVzaChsLmZ1bGZpbGxlZCxsLnJlamVjdGVkKX0pO2xldCBvLG49MCxmO2lmKCFFKXtsZXQgUT1bakEuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihRLnVuc2hpZnQoLi4ucyksUS5wdXNoKC4uLkMpLGY9US5sZW5ndGgsbz1Qcm9taXNlLnJlc29sdmUoSSk7bjxmOylvPW8udGhlbihRW24rK10sUVtuKytdKTtyZXR1cm4gb31mPXMubGVuZ3RoO2xldCBCPUk7Zm9yKG49MDtuPGY7KXtsZXQgUT1zW24rK10sbD1zW24rK107dHJ5e0I9UShCKX1jYXRjaChjKXtsLmNhbGwodGhpcyxjKTticmVha319dHJ5e289akEuY2FsbCh0aGlzLEIpfWNhdGNoKFEpe3JldHVybiBQcm9taXNlLnJlamVjdChRKX1mb3Iobj0wLGY9Qy5sZW5ndGg7bjxmOylvPW8udGhlbihDW24rK10sQ1tuKytdKTtyZXR1cm4gb31nZXRVcmkoZSl7ZT1NKHRoaXMuZGVmYXVsdHMsZSk7bGV0IEk9dUEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiBRQShJLGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcil9fTthLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKGUpe3JBLnByb3RvdHlwZVtlXT1mdW5jdGlvbihJLHQpe3JldHVybiB0aGlzLnJlcXVlc3QoTSh0fHx7fSx7bWV0aG9kOmUsdXJsOkksZGF0YToodHx8e30pLmRhdGF9KSl9fSk7YS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oZSl7ZnVuY3Rpb24gSSh0KXtyZXR1cm4gZnVuY3Rpb24oaSxnLHMpe3JldHVybiB0aGlzLnJlcXVlc3QoTShzfHx7fSx7bWV0aG9kOmUsaGVhZGVyczp0P3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDppLGRhdGE6Z30pKX19ckEucHJvdG90eXBlW2VdPUkoKSxyQS5wcm90b3R5cGVbZSsiRm9ybSJdPUkoITApfSk7dmFyIGhBPXJBO3ZhciBOZT1jbGFzcyBBe2NvbnN0cnVjdG9yKGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtsZXQgSTt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oaSl7ST1pfSk7bGV0IHQ9dGhpczt0aGlzLnByb21pc2UudGhlbihyPT57aWYoIXQuX2xpc3RlbmVycylyZXR1cm47bGV0IGk9dC5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO2ktLSA+MDspdC5fbGlzdGVuZXJzW2ldKHIpO3QuX2xpc3RlbmVycz1udWxsfSksdGhpcy5wcm9taXNlLnRoZW49cj0+e2xldCBpLGc9bmV3IFByb21pc2Uocz0+e3Quc3Vic2NyaWJlKHMpLGk9c30pLnRoZW4ocik7cmV0dXJuIGcuY2FuY2VsPWZ1bmN0aW9uKCl7dC51bnN1YnNjcmliZShpKX0sZ30sZShmdW5jdGlvbihpLGcscyl7dC5yZWFzb258fCh0LnJlYXNvbj1uZXcgcShpLGcscyksSSh0LnJlYXNvbikpfSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZShlKXtpZih0aGlzLnJlYXNvbil7ZSh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaChlKTp0aGlzLl9saXN0ZW5lcnM9W2VdfXVuc3Vic2NyaWJlKGUpe2lmKCF0aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBJPXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKGUpO0khPT0tMSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZShJLDEpfXRvQWJvcnRTaWduYWwoKXtsZXQgZT1uZXcgQWJvcnRDb250cm9sbGVyLEk9dD0+e2UuYWJvcnQodCl9O3JldHVybiB0aGlzLnN1YnNjcmliZShJKSxlLnNpZ25hbC51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZShJKSxlLnNpZ25hbH1zdGF0aWMgc291cmNlKCl7bGV0IGU7cmV0dXJue3Rva2VuOm5ldyBBKGZ1bmN0aW9uKHIpe2U9cn0pLGNhbmNlbDplfX19LHh0PU5lO2Z1bmN0aW9uIGtlKEEpe3JldHVybiBmdW5jdGlvbihJKXtyZXR1cm4gQS5hcHBseShudWxsLEkpfX1mdW5jdGlvbiBHZShBKXtyZXR1cm4gYS5pc09iamVjdChBKSYmQS5pc0F4aW9zRXJyb3I9PT0hMH12YXIgYmU9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKGJlKS5mb3JFYWNoKChbQSxlXSk9PntiZVtlXT1BfSk7dmFyIE90PWJlO2Z1bmN0aW9uIEt0KEEpe2xldCBlPW5ldyBoQShBKSxJPW5BKGhBLnByb3RvdHlwZS5yZXF1ZXN0LGUpO3JldHVybiBhLmV4dGVuZChJLGhBLnByb3RvdHlwZSxlLHthbGxPd25LZXlzOiEwfSksYS5leHRlbmQoSSxlLG51bGwse2FsbE93bktleXM6ITB9KSxJLmNyZWF0ZT1mdW5jdGlvbihyKXtyZXR1cm4gS3QoTShBLHIpKX0sSX12YXIgdz1LdChlQSk7dy5BeGlvcz1oQTt3LkNhbmNlbGVkRXJyb3I9cTt3LkNhbmNlbFRva2VuPXh0O3cuaXNDYW5jZWw9bEE7dy5WRVJTSU9OPXZBO3cudG9Gb3JtRGF0YT1QO3cuQXhpb3NFcnJvcj11O3cuQ2FuY2VsPXcuQ2FuY2VsZWRFcnJvcjt3LmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9O3cuc3ByZWFkPWtlO3cuaXNBeGlvc0Vycm9yPUdlO3cubWVyZ2VDb25maWc9TTt3LkF4aW9zSGVhZGVycz1TO3cuZm9ybVRvSlNPTj1BPT54QShhLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO3cuZ2V0QWRhcHRlcj1XQS5nZXRBZGFwdGVyO3cuSHR0cFN0YXR1c0NvZGU9T3Q7dy5kZWZhdWx0PXc7dmFyIGdBPXc7dmFye0F4aW9zOl9hLEF4aW9zRXJyb3I6JGEsQ2FuY2VsZWRFcnJvcjpBbixpc0NhbmNlbDplbixDYW5jZWxUb2tlbjp0bixWRVJTSU9OOkluLGFsbDpybixDYW5jZWw6Z24saXNBeGlvc0Vycm9yOm9uLHNwcmVhZDphbix0b0Zvcm1EYXRhOm5uLEF4aW9zSGVhZGVyczpzbixIdHRwU3RhdHVzQ29kZTpDbixmb3JtVG9KU09OOkJuLGdldEFkYXB0ZXI6UW4sbWVyZ2VDb25maWc6RW59PWdBO2FzeW5jIGZ1bmN0aW9uIHZyKEEsZSl7bGV0IEk9QSx0PW51bGw7aWYoST09bnVsbCl0PW5ldyBXb3JrZXIobmV3IFVSTCgiLi93ZWItd29ya2Vycy9pdGstd2FzbS1waXBlbGluZS53b3JrZXIuanMiLGltcG9ydC5tZXRhLnVybCkse3R5cGU6Im1vZHVsZSJ9KTtlbHNlIGlmKEkuc3RhcnRzV2l0aCgiaHR0cCIpKXtsZXQgcj1hd2FpdCBnQS5nZXQoSSx7cmVzcG9uc2VUeXBlOiJibG9iIixwYXJhbXM6ZX0pLGk9VVJMLmNyZWF0ZU9iamVjdFVSTChyLmRhdGEpO3Q9bmV3IFdvcmtlcihpLHt0eXBlOiJtb2R1bGUifSl9ZWxzZSB0PW5ldyBXb3JrZXIoSSx7dHlwZToibW9kdWxlIn0pO3JldHVybiB0fXZhciB5QT12cjtmdW5jdGlvbiBQdChBKXtsZXQgZT1hZShBKSxJPUE7cmV0dXJuIEkudGVybWluYXRlZD0hMSxJLndvcmtlclByb3h5PWUsSS5vcmlnaW5hbFRlcm1pbmF0ZT1JLnRlcm1pbmF0ZSxJLnRlcm1pbmF0ZT0oKT0+e0kudGVybWluYXRlZD0hMCxJLndvcmtlclByb3h5W29lXSgpLEkub3JpZ2luYWxUZXJtaW5hdGUoKX0se3dvcmtlclByb3h5OmUsd29ya2VyOkl9fWFzeW5jIGZ1bmN0aW9uIFpyKEEsZSxJKXtsZXQgdDtpZihBIT1udWxsKXtsZXQgaT1BO3JldHVybiBpLndvcmtlclByb3h5IT09dm9pZCAwPyh0PWkud29ya2VyUHJveHkse3dvcmtlclByb3h5OnQsd29ya2VyOml9KTpQdChBKX1sZXQgcj1hd2FpdCB5QShlLEkpO3JldHVybiBQdChyKX12YXIgV3Q9WnI7dmFyIERBLHgsSmUsTGU9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXtKZT1uZXcgVWludDhBcnJheSh4LmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sVkE9Y2xhc3N7aW5pdCgpe3JldHVybiBEQXx8KHR5cGVvZiBmZXRjaDwidSI/REE9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitqdCkudGhlbihlPT5lLmFycmF5QnVmZmVyKCkpLnRoZW4oZT0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoZSxMZSkpLnRoZW4odGhpcy5faW5pdCk6REE9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oanQsImJhc2U2NCIpLExlKS50aGVuKHRoaXMuX2luaXQpLERBKX1faW5pdChlKXt4PWUuaW5zdGFuY2UsTGUuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKGUsST0wKXtpZigheCl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgdD1lLmJ5dGVMZW5ndGgscj14LmV4cG9ydHMubWFsbG9jKHQpO0plLnNldChlLHIpLEk9SXx8TnVtYmVyKHguZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKHIsdCkpO2xldCBpPXguZXhwb3J0cy5tYWxsb2MoSSksZz14LmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKGksSSxyLHQpLHM9SmUuc2xpY2UoaSxpK2cpO3JldHVybiB4LmV4cG9ydHMuZnJlZShyKSx4LmV4cG9ydHMuZnJlZShpKSxzfX0sanQ9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgdnQ9bmV3IFZBLFp0PSExO2FzeW5jIGZ1bmN0aW9uIFZyKEEsZSxJKXtsZXQgdD0idW5rbm93biI7dHlwZW9mIEEhPSJzdHJpbmciP3Q9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP3Q9QTp0PXR5cGVvZiBlPCJ1Ij9gJHtlfS8ke0F9YDpBLHQuZW5kc1dpdGgoIi5qcyIpJiYodD10LnN1YnN0cmluZygwLHQubGVuZ3RoLTMpKSx0LmVuZHNXaXRoKCIud2FzbSIpJiYodD10LnN1YnN0cmluZygwLHQubGVuZ3RoLTUpKSx0LmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKHQ9dC5zdWJzdHJpbmcoMCx0Lmxlbmd0aC05KSk7bGV0IHI9YCR7dH0ud2FzbWAsaT1hd2FpdCBnQS5nZXQoYCR7cn0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOkl9KTtadHx8KGF3YWl0IHZ0LmluaXQoKSxadD0hMCk7bGV0IHM9dnQuZGVjb2RlKG5ldyBVaW50OEFycmF5KGkuZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke3R9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6c30pfXZhciBWdD1Wcjt2YXIgWHQ9YXN5bmMoKT0+V2ViQXNzZW1ibHkudmFsaWRhdGUobmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwLDEsNSwxLDk2LDAsMSwxMjMsMywyLDEsMCwxMCwxMCwxLDgsMCw2NSwwLDI1MywxNSwyNTMsOTgsMTFdKSk7dmFyICR0PXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLHp0PW5ldyBUZXh0RW5jb2RlcixfdD1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gWHIoQSxlKXtsZXQgST17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSx0PUEuZnNfb3BlbihlLEkuZmxhZ3MpLGk9QS5mc19zdGF0KGUpLnNpemUsZz1udWxsOyR0P2c9bmV3IFNoYXJlZEFycmF5QnVmZmVyKGkpOmc9bmV3IEFycmF5QnVmZmVyKGkpO2xldCBzPW5ldyBVaW50OEFycmF5KGcpO3JldHVybiBBLmZzX3JlYWQodCxzLDAsaSwwKSxBLmZzX2Nsb3NlKHQpLHN9ZnVuY3Rpb24gQUkoQSxlLEkpe2xldCB0PW51bGw7JHQ/dD1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoSSk6dD1uZXcgQXJyYXlCdWZmZXIoSSk7bGV0IHI9bmV3IFVpbnQ4QXJyYXkodCksaT1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsZSxJKTtyZXR1cm4gci5zZXQoaSkscn1mdW5jdGlvbiBtKEEsZSxJLHQpe2xldCByPTA7cmV0dXJuIGUhPT1udWxsJiYocj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxJLHQsZS5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheShlLmJ1ZmZlcikscikpLHJ9ZnVuY3Rpb24gVyhBLGUsSSl7bGV0IHQ9SlNPTi5zdHJpbmdpZnkoZSkscj1BLmxlbmd0aEJ5dGVzVVRGOCh0KSsxLGk9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxJLHJdKTtBLnN0cmluZ1RvVVRGOCh0LGkscil9ZnVuY3Rpb24gUihBLGUsSSx0KXtsZXQgcj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLEldKSxpPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsSV0pLGc9QUkoQSxyLGkpO3JldHVybiBIKHQsZy5idWZmZXIpfWZ1bmN0aW9uIHBBKEEsZSl7bGV0IEk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCxlXSksdD1BLlVURjhUb1N0cmluZyhJKTtyZXR1cm4gSlNPTi5wYXJzZSh0KX1mdW5jdGlvbiB6cihBLGUsSSx0KXt0IT1udWxsJiZ0Lmxlbmd0aD4wJiZ0LmZvckVhY2goZnVuY3Rpb24oQyxvKXtzd2l0Y2goQy50eXBlKXtjYXNlIGguVGV4dFN0cmVhbTp7bGV0IG49enQuZW5jb2RlKEMuZGF0YS5kYXRhKSxmPW0oQSxuLG8sMCksQj17c2l6ZTpuLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O1coQSxCLG8pO2JyZWFrfWNhc2UgaC5Kc29uQ29tcGF0aWJsZTp7bGV0IG49enQuZW5jb2RlKEpTT04uc3RyaW5naWZ5KEMuZGF0YSkpLGY9bShBLG4sbywwKSxCPXtzaXplOm4uYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07VyhBLEIsbyk7YnJlYWt9Y2FzZSBoLkJpbmFyeVN0cmVhbTp7bGV0IG49Qy5kYXRhLmRhdGEsZj1tKEEsbixvLDApLEI9e3NpemU6bi5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtXKEEsQixvKTticmVha31jYXNlIGguVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKEMuZGF0YS5wYXRoLEMuZGF0YS5kYXRhKTticmVha31jYXNlIGguQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoQy5kYXRhLnBhdGgsQy5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgaC5JbWFnZTp7bGV0IG49Qy5kYXRhLGY9bShBLG4uZGF0YSxvLDApLEI9bShBLG4uZGlyZWN0aW9uLG8sMSksUT10eXBlb2Ygbi5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShuLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sbD17aW1hZ2VUeXBlOm4uaW1hZ2VUeXBlLG5hbWU6bi5uYW1lLG9yaWdpbjpuLm9yaWdpbixzcGFjaW5nOm4uc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsc2l6ZTpuLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCxtZXRhZGF0YTpRfTtXKEEsbCxvKTticmVha31jYXNlIGguTWVzaDp7bGV0IG49Qy5kYXRhLGY9bShBLG4ucG9pbnRzLG8sMCksQj1tKEEsbi5jZWxscyxvLDEpLFE9bShBLG4ucG9pbnREYXRhLG8sMiksbD1tKEEsbi5jZWxsRGF0YSxvLDMpLGM9e21lc2hUeXBlOm4ubWVzaFR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsbnVtYmVyT2ZDZWxsczpuLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsY2VsbEJ1ZmZlclNpemU6bi5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOm4ubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOm4ubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTtXKEEsYyxvKTticmVha31jYXNlIGguUG9pbnRTZXQ6e2xldCBuPUMuZGF0YSxmPW0oQSxuLnBvaW50cyxvLDApLEI9bShBLG4ucG9pbnREYXRhLG8sMSksUT17cG9pbnRTZXRUeXBlOm4ucG9pbnRTZXRUeXBlLG5hbWU6bi5uYW1lLG51bWJlck9mUG9pbnRzOm4ubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YH07VyhBLFEsbyk7YnJlYWt9Y2FzZSBoLlRyYW5zZm9ybUxpc3Q6e2xldCBuPUMuZGF0YSxmPVtdLEI9MDtuLmZvckVhY2goUT0+e2xldCBsPSIiLGM9IiI7US50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGw9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHttKEEsUS5maXhlZFBhcmFtZXRlcnMsbyxCKX1gLEIrPTEsYz1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke20oQSxRLnBhcmFtZXRlcnMsbyxCKX1gLEIrPTEpO2xldCB5PXt0cmFuc2Zvcm1UeXBlOlEudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpRLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpRLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOlEubmFtZSxpbnB1dFNwYWNlTmFtZTpRLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpRLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmMsZml4ZWRQYXJhbWV0ZXJzOmx9O2YucHVzaCh5KX0pLFcoQSxmLG8pO2JyZWFrfWNhc2UgaC5Qb2x5RGF0YTp7bGV0IG49Qy5kYXRhLGY9bShBLG4ucG9pbnRzLG8sMCksQj1tKEEsbi52ZXJ0aWNlcyxvLDEpLFE9bShBLG4ubGluZXMsbywyKSxsPW0oQSxuLnBvbHlnb25zLG8sMyksYz1tKEEsbi50cmlhbmdsZVN0cmlwcyxvLDQpLHk9bShBLG4ucG9pbnREYXRhLG8sNSksVT1tKEEsbi5wb2ludERhdGEsbyw2KSxwPXtwb2x5RGF0YVR5cGU6bi5wb2x5RGF0YVR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdmVydGljZXNCdWZmZXJTaXplOm4udmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLGxpbmVzQnVmZmVyU2l6ZTpuLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxwb2x5Z29uc0J1ZmZlclNpemU6bi5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOm4udHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3l9YCxudW1iZXJPZkNlbGxQaXhlbHM6bi5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtVfWB9O1coQSxwLG8pO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCByPUEuc3RhY2tTYXZlKCksaT0wO3RyeXtpPUEuY2FsbE1haW4oZS5zbGljZSgpKX1jYXRjaChDKXt0aHJvdyB0eXBlb2YgQz09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShDKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxDfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUocil9bGV0IGc9QS5nZXRNb2R1bGVTdGRvdXQoKSxzPUEuZ2V0TW9kdWxlU3RkZXJyKCksRT1bXTtyZXR1cm4gSSE9bnVsbCYmSS5sZW5ndGg+MCYmaT09PTAmJkkuZm9yRWFjaChmdW5jdGlvbihDLG8pe2xldCBuPW51bGw7c3dpdGNoKEMudHlwZSl7Y2FzZSBoLlRleHRTdHJlYW06e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG8sMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbywwXSksbD1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQixRKTtuPXtkYXRhOl90LmRlY29kZShsKX07YnJlYWt9Y2FzZSBoLkpzb25Db21wYXRpYmxlOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxvLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG8sMF0pLGw9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEIsUSk7bj1KU09OLnBhcnNlKF90LmRlY29kZShsKSk7YnJlYWt9Y2FzZSBoLkJpbmFyeVN0cmVhbTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxvLDBdKTtuPXtkYXRhOkFJKEEsQixRKX07YnJlYWt9Y2FzZSBoLlRleHRGaWxlOntuPXtwYXRoOkMuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShDLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgaC5CaW5hcnlGaWxlOntuPXtwYXRoOkMuZGF0YS5wYXRoLGRhdGE6WHIoQSxDLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgaC5JbWFnZTp7bGV0IEI9cEEoQSxvKTtCLmRhdGE9UihBLG8sMCxCLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxCLmRpcmVjdGlvbj1SKEEsbywxLEYuRmxvYXQ2NCksQi5tZXRhZGF0YT1uZXcgTWFwKEIubWV0YWRhdGEpLG49QjticmVha31jYXNlIGguTWVzaDp7bGV0IEI9cEEoQSxvKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9UihBLG8sMCxCLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qi5wb2ludHM9SChCLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxscz4wP0IuY2VsbHM9UihBLG8sMSxCLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTpCLmNlbGxzPUgoQi5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPVIoQSxvLDIsQi5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SChCLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxQaXhlbHM+MD9CLmNlbGxEYXRhPVIoQSxvLDMsQi5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpCLmNlbGxEYXRhPUgoQi5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksbj1CO2JyZWFrfWNhc2UgaC5Qb2ludFNldDp7bGV0IEI9cEEoQSxvKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9UihBLG8sMCxCLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkIucG9pbnRzPUgoQi5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9UihBLG8sMSxCLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SChCLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLG49QjticmVha31jYXNlIGguVHJhbnNmb3JtTGlzdDp7bGV0IEI9cEEoQSxvKSxRPTA7Qi5mb3JFYWNoKChsLGMpPT57bC50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGwubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKEJbY10uZml4ZWRQYXJhbWV0ZXJzPVIoQSxvLFEsRi5GbG9hdDY0KSksUSs9MSxsLm51bWJlck9mUGFyYW1ldGVycz4wJiYoQltjXS5wYXJhbWV0ZXJzPVIoQSxvLFEsbC50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxRKz0xKX0pLG49QjticmVha31jYXNlIGguUG9seURhdGE6e2xldCBCPXBBKEEsbyk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPVIoQSxvLDAsRi5GbG9hdDMyKTpCLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LEIudmVydGljZXNCdWZmZXJTaXplPjA/Qi52ZXJ0aWNlcz1SKEEsbywxLGQuVUludDMyKTpCLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxCLmxpbmVzQnVmZmVyU2l6ZT4wP0IubGluZXM9UihBLG8sMixkLlVJbnQzMik6Qi5saW5lcz1uZXcgVWludDMyQXJyYXksQi5wb2x5Z29uc0J1ZmZlclNpemU+MD9CLnBvbHlnb25zPVIoQSxvLDMsZC5VSW50MzIpOkIucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LEIudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/Qi50cmlhbmdsZVN0cmlwcz1SKEEsbyw0LGQuVUludDMyKTpCLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1SKEEsbyw1LEIucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1IKEIucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxQaXhlbHM+MD9CLmNlbGxEYXRhPVIoQSxvLDYsQi5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5jZWxsRGF0YT1IKEIucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuPUI7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgZj17dHlwZTpDLnR5cGUsZGF0YTpufTtFLnB1c2goZil9KSx7cmV0dXJuVmFsdWU6aSxzdGRvdXQ6ZyxzdGRlcnI6cyxvdXRwdXRzOkV9fXZhciBlST16cjt2YXIgX3I9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uICRyKEEsZSl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgST1bXTtmb3IobGV0IHQ9MDt0PEEubGVuZ3RoO3QrKyl7bGV0IHI9QWcoQVt0XSxlKTtyIT09bnVsbCYmSS5wdXNoKHIpfXJldHVybiBJfWZ1bmN0aW9uIEFnKEEsZSl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgST1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD9JPUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKEk9QSksX3ImJkkgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOmU/STpJLnNsaWNlKDApfXZhciB0ST0kcjtmdW5jdGlvbiBlZyhBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIgSUk9ZWc7ZnVuY3Rpb24gdGcoQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIHJJPXRnO2Z1bmN0aW9uIElnKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBnST1JZzt2YXIgcmc7ZnVuY3Rpb24gWEEoKXtyZXR1cm4gcmd9dmFyIGdnO2Z1bmN0aW9uIGlJKCl7cmV0dXJuIGdnfXZhciBpZztmdW5jdGlvbiB6QSgpe3JldHVybiBpZ312YXIgTWU9bmV3IE1hcDtmdW5jdGlvbiBvZygpe2xldCBBPXpBKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bnVsbCksQX1mdW5jdGlvbiBvSSgpe2xldCBBPVhBKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bmV3IFVSTCgiL3BpcGVsaW5lcyIsZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luKS5ocmVmKSxBfWZ1bmN0aW9uIF9BKCl7bGV0IEE9aUkoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT17fSksQX1hc3luYyBmdW5jdGlvbiBhZyhBLGUsSSl7bGV0IHQ9QSxyPUE7aWYodHlwZW9mIEEhPSJzdHJpbmciJiYodD1uZXcgVVJMKEEuaHJlZikscj10LmhyZWYpLE1lLmhhcyhyKSlyZXR1cm4gTWUuZ2V0KHIpO3tsZXQgaT1hd2FpdCBWdChBLGU/LnRvU3RyaW5nKCk/P29JKCksST8/X0EoKSk7cmV0dXJuIE1lLnNldChyLGkpLGl9fWFzeW5jIGZ1bmN0aW9uIG5nKEEsZSxJLHQscil7aWYoIWF3YWl0IFh0KCkpe2xldCBjPSJXZWJBc3NlbWJseSBTSU1EIHN1cHBvcnQgaXMgcmVxdWlyZWQgLS0gcGxlYXNlIHVwZGF0ZSB5b3VyIGJyb3dzZXIuIjt0aHJvdyBhbGVydChjKSxuZXcgRXJyb3IoYyl9bGV0IGk9cj8ud2ViV29ya2VyPz9udWxsO2lmKGk9PT0hMSl7bGV0IGM9YXdhaXQgYWcoQS50b1N0cmluZygpLHI/LnBpcGVsaW5lQmFzZVVybCxyPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9fQSgpKTtyZXR1cm4gZUkoYyxlLEksdCl9bGV0IGc9aSxzPXI/LnBpcGVsaW5lV29ya2VyVXJsPz9vZygpLEU9dHlwZW9mIHMhPSJzdHJpbmciJiZ0eXBlb2Ygcz8uaHJlZjwidSI/cy5ocmVmOnMse3dvcmtlclByb3h5OkMsd29ya2VyOm99PWF3YWl0IFd0KGcsRSxyPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9fQSgpKTtnPW87bGV0IG49W107dCE9bnVsbCYmdC5sZW5ndGg+MCYmdC5mb3JFYWNoKGZ1bmN0aW9uKGMpe2lmKGMudHlwZT09PWguQmluYXJ5U3RyZWFtKXtsZXQgeT1jLmRhdGEuZGF0YTtuLnB1c2goeSl9ZWxzZSBpZihjLnR5cGU9PT1oLkJpbmFyeUZpbGUpe2xldCB5PWMuZGF0YS5kYXRhO24ucHVzaCh5KX1lbHNlIGlmKGMudHlwZT09PWguSW1hZ2Upe2xldCB5PWMuZGF0YTt5LmRhdGEhPT1udWxsJiZuLnB1c2goLi4uSUkoeSkpfWVsc2UgaWYoYy50eXBlPT09aC5NZXNoKXtsZXQgeT1jLmRhdGE7bi5wdXNoKC4uLnJJKHkpKX1lbHNlIGlmKGMudHlwZT09PWguUG9seURhdGEpe2xldCB5PWMuZGF0YTtuLnB1c2goLi4uZ0koeSkpfX0pO2xldCBmPXI/LnBpcGVsaW5lQmFzZVVybD8/b0koKSxCPXR5cGVvZiBmIT0ic3RyaW5nIiYmdHlwZW9mIGY/LmhyZWY8InUiP2YuaHJlZjpmLFE9dCE9bnVsbD9uZSh0LHRJKG4scj8ubm9Db3B5KSk6bnVsbCxsPWF3YWl0IEMucnVuUGlwZWxpbmUoQS50b1N0cmluZygpLEIsZSxJLFEscj8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7cmV0dXJue3JldHVyblZhbHVlOmwucmV0dXJuVmFsdWUsc3Rkb3V0Omwuc3Rkb3V0LHN0ZGVycjpsLnN0ZGVycixvdXRwdXRzOmwub3V0cHV0cyx3ZWJXb3JrZXI6Z319dmFyIHdBPW5nO3ZhciBzZz1udWxsO2Z1bmN0aW9uIGFJKCl7cmV0dXJuIHNnfXZhciBZZSxDZz1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AaXRrLXdhc20vY29tcGFyZS1pbWFnZXNAJHt0ZX0vZGlzdC9waXBlbGluZXNgO2Z1bmN0aW9uIGlzKEEpe1llPUF9ZnVuY3Rpb24gJEEoKXtpZih0eXBlb2YgWWU8InUiKXJldHVybiBZZTtsZXQgQT1YQSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpDZ312YXIgSGUsQmc9bnVsbDtmdW5jdGlvbiBuSShBKXtIZT1BfWZ1bmN0aW9uIGlBKCl7aWYodHlwZW9mIEhlPCJ1IilyZXR1cm4gSGU7bGV0IEE9ekEoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6Qmd9dmFyIG9BPW51bGw7YXN5bmMgZnVuY3Rpb24gc0koKXtsZXQgQT1pQSgpLGU9dHlwZW9mIEEhPSJzdHJpbmciJiZ0eXBlb2YgQT8uaHJlZjwidSI/QS5ocmVmOkE7b0E9YXdhaXQgeUEoZSl9ZnVuY3Rpb24gUXMoQSl7b0E9QX1hc3luYyBmdW5jdGlvbiBDSSgpe2lmKG9BIT09bnVsbClyZXR1cm4gb0EudGVybWluYXRlZCYmYXdhaXQgc0koKSxvQTtsZXQgQT1hSSgpO3JldHVybiBBIT09bnVsbD9BOihhd2FpdCBzSSgpLG9BKX1hc3luYyBmdW5jdGlvbiBRZyhBLGU9e2Jhc2VsaW5lSW1hZ2VzOltdfSl7bGV0IEk9W3t0eXBlOmguSnNvbkNvbXBhdGlibGV9LHt0eXBlOmguSW1hZ2V9LHt0eXBlOmguSW1hZ2V9XSx0PVt7dHlwZTpoLkltYWdlLGRhdGE6QX1dLHI9W107aWYoci5wdXNoKCIwIiksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCIyIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBlLmJhc2VsaW5lSW1hZ2VzPCJ1Iil7aWYoZS5iYXNlbGluZUltYWdlcy5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJiYXNlbGluZS1pbWFnZXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7ci5wdXNoKCItLWJhc2VsaW5lLWltYWdlcyIpLGF3YWl0IFByb21pc2UuYWxsKGUuYmFzZWxpbmVJbWFnZXMubWFwKGFzeW5jIGw9PntsZXQgYz10Lmxlbmd0aC50b1N0cmluZygpO3QucHVzaCh7dHlwZTpoLkltYWdlLGRhdGE6bH0pLHIucHVzaChjKX0pKX10eXBlb2YgZS5kaWZmZXJlbmNlVGhyZXNob2xkPCJ1IiYmci5wdXNoKCItLWRpZmZlcmVuY2UtdGhyZXNob2xkIixlLmRpZmZlcmVuY2VUaHJlc2hvbGQudG9TdHJpbmcoKSksdHlwZW9mIGUucmFkaXVzVG9sZXJhbmNlPCJ1IiYmci5wdXNoKCItLXJhZGl1cy10b2xlcmFuY2UiLGUucmFkaXVzVG9sZXJhbmNlLnRvU3RyaW5nKCkpLHR5cGVvZiBlLnNwYXRpYWxUb2xlcmFuY2U8InUiJiZyLnB1c2goIi0tc3BhdGlhbC10b2xlcmFuY2UiLGUuc3BhdGlhbFRvbGVyYW5jZS50b1N0cmluZygpKSx0eXBlb2YgZS5udW1iZXJPZlBpeGVsc1RvbGVyYW5jZTwidSImJnIucHVzaCgiLS1udW1iZXItb2YtcGl4ZWxzLXRvbGVyYW5jZSIsZS5udW1iZXJPZlBpeGVsc1RvbGVyYW5jZS50b1N0cmluZygpKSx0eXBlb2YgZS5pZ25vcmVCb3VuZGFyeVBpeGVsczwidSImJmUuaWdub3JlQm91bmRhcnlQaXhlbHMmJnIucHVzaCgiLS1pZ25vcmUtYm91bmRhcnktcGl4ZWxzIik7bGV0IEM9ImNvbXBhcmUtZG91YmxlLWltYWdlcyIse3dlYldvcmtlcjpvLHJldHVyblZhbHVlOm4sc3RkZXJyOmYsb3V0cHV0czpCfT1hd2FpdCB3QShDLHIsSSx0LHtwaXBlbGluZUJhc2VVcmw6JEEoKSxwaXBlbGluZVdvcmtlclVybDppQSgpLHdlYldvcmtlcjplPy53ZWJXb3JrZXI/P251bGx9KTtpZihuIT09MCl0aHJvdyBuZXcgRXJyb3IoZik7cmV0dXJue3dlYldvcmtlcjpvLG1ldHJpY3M6QlswXS5kYXRhLGRpZmZlcmVuY2VJbWFnZTpCWzFdLmRhdGEsZGlmZmVyZW5jZVVjaGFyMmRJbWFnZTpCWzJdLmRhdGF9fXZhciBxZT1RZzthc3luYyBmdW5jdGlvbiBFZyhBLGUpe2xldCBJPWU7aWYoSS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSE9PUYuRmxvYXQ2NCl7bGV0IHQ7ZS5pbWFnZVR5cGUucGl4ZWxUeXBlIT09Ry5TY2FsYXImJmUuaW1hZ2VUeXBlLnBpeGVsVHlwZSE9PUcuVmFyaWFibGVMZW5ndGhWZWN0b3ImJih0PUcuVmFyaWFibGVMZW5ndGhWZWN0b3IpLEk9UkEoZSx7Y29tcG9uZW50VHlwZTpGLkZsb2F0NjQscGl4ZWxUeXBlOnR9KX1lbHNlIGlmKGUuaW1hZ2VUeXBlLnBpeGVsVHlwZSE9PUcuU2NhbGFyJiZlLmltYWdlVHlwZS5waXhlbFR5cGUhPT1HLlZhcmlhYmxlTGVuZ3RoVmVjdG9yKXtsZXQgdD1HLlZhcmlhYmxlTGVuZ3RoVmVjdG9yO0k9UkEoZSx7cGl4ZWxUeXBlOnR9KX1yZXR1cm4gSS5pbWFnZVR5cGUucGl4ZWxUeXBlPT09Ry5WYXJpYWJsZUxlbmd0aFZlY3RvciYmKEk9KGF3YWl0IEEoSSkpLm1hZ25pdHVkZUltYWdlKSxJfXZhciBUZT1FZzthc3luYyBmdW5jdGlvbiBjZyhBLGU9e30pe2xldCBJPVt7dHlwZTpoLkltYWdlfV0sdD1be3R5cGU6aC5JbWFnZSxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpLHIucHVzaCgiLS1tZW1vcnktaW8iKTtsZXQgcz0idmVjdG9yLW1hZ25pdHVkZSIsRT1lPy53ZWJXb3JrZXI7RT09PXZvaWQgMCYmKEU9YXdhaXQgQ0koKSk7bGV0e3dlYldvcmtlcjpDLHJldHVyblZhbHVlOm8sc3RkZXJyOm4sb3V0cHV0czpmfT1hd2FpdCB3QShzLHIsSSx0LHtwaXBlbGluZUJhc2VVcmw6JEEoKSxwaXBlbGluZVdvcmtlclVybDppQSgpLHdlYldvcmtlcjpFLG5vQ29weTplPy5ub0NvcHl9KTtpZihvIT09MCYmbiE9PSIiKXRocm93IG5ldyBFcnJvcihuKTtyZXR1cm57d2ViV29ya2VyOkMsbWFnbml0dWRlSW1hZ2U6ZlswXT8uZGF0YX19dmFyIHhlPWNnO2FzeW5jIGZ1bmN0aW9uIGxnKEEsZT17YmFzZWxpbmVJbWFnZXM6W119KXthc3luYyBmdW5jdGlvbiBJKGcpe2xldHt3ZWJXb3JrZXI6cyxtYWduaXR1ZGVJbWFnZTpFfT1hd2FpdCB4ZShnKTtyZXR1cm4gcz8udGVybWluYXRlKCkse21hZ25pdHVkZUltYWdlOkV9fWxldCB0PWF3YWl0IFRlKEksQSkscj1hd2FpdCBQcm9taXNlLmFsbChlLmJhc2VsaW5lSW1hZ2VzLm1hcChhc3luYyBnPT5hd2FpdCBUZShJLGcpKSksaT17Li4uZX07cmV0dXJuIGkuYmFzZWxpbmVJbWFnZXM9cixxZSh0LGkpfXZhciBmZz1sZzt2YXIgQkk9J2RhdGE6dGV4dC9qYXZhc2NyaXB0O2NoYXJzZXQ9dXRmLTgsdmFyIFllPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgcWU9KEEsdCk9Pntmb3IodmFyIGUgaW4gdClZZShBLGUse2dldDp0W2VdLGVudW1lcmFibGU6ITB9KX07dmFyIE50PVN5bWJvbCgiQ29tbGluay5wcm94eSIpLE1lPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLEtlPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxWQT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksbUE9U3ltYm9sKCJDb21saW5rLnRocm93biIpLFV0PUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLE9lPXtjYW5IYW5kbGU6QT0+VXQoQSkmJkFbTnRdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6dCxwb3J0MjplfT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIEZBKEEsdCksW2UsW2VdXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxqZShBKX19LFRlPXtjYW5IYW5kbGU6QT0+VXQoQSkmJm1BIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IHQ7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj90PXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06dD17aXNFcnJvcjohMSx2YWx1ZTpBfSxbdCxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSxHdD1uZXcgTWFwKFtbInByb3h5IixPZV0sWyJ0aHJvdyIsVGVdXSk7ZnVuY3Rpb24geGUoQSx0KXtmb3IobGV0IGUgb2YgQSlpZih0PT09ZXx8ZT09PSIqInx8ZSBpbnN0YW5jZW9mIFJlZ0V4cCYmZS50ZXN0KHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEZBKEEsdD1nbG9iYWxUaGlzLGU9WyIqIl0pe3QuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gSShyKXtpZighcnx8IXIuZGF0YSlyZXR1cm47aWYoIXhlKGUsci5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luIFwnJHtyLm9yaWdpbn1cJyBmb3IgY29tbGluayBwcm94eWApO3JldHVybn1sZXR7aWQ6Zyx0eXBlOm8scGF0aDpufT1PYmplY3QuYXNzaWduKHtwYXRoOltdfSxyLmRhdGEpLEU9KHIuZGF0YS5hcmd1bWVudExpc3R8fFtdKS5tYXAoVyksQjt0cnl7bGV0IHM9bi5zbGljZSgwLC0xKS5yZWR1Y2UoKGwsYSk9PmxbYV0sQSksQz1uLnJlZHVjZSgobCxhKT0+bFthXSxBKTtzd2l0Y2gobyl7Y2FzZSJHRVQiOkI9QzticmVhaztjYXNlIlNFVCI6c1tuLnNsaWNlKC0xKVswXV09VyhyLmRhdGEudmFsdWUpLEI9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6Qj1DLmFwcGx5KHMsRSk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgbD1uZXcgQyguLi5FKTtCPVhlKGwpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6bCxwb3J0MjphfT1uZXcgTWVzc2FnZUNoYW5uZWw7RkEoQSxhKSxCPV9BKGwsW2xdKX1icmVhaztjYXNlIlJFTEVBU0UiOkI9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChzKXtCPXt2YWx1ZTpzLFttQV06MH19UHJvbWlzZS5yZXNvbHZlKEIpLmNhdGNoKHM9Pih7dmFsdWU6cyxbbUFdOjB9KSkudGhlbihzPT57bGV0W0MsbF09U0Eocyk7dC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQykse2lkOmd9KSxsKSxvPT09IlJFTEVBU0UiJiYodC5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixJKSxrdCh0KSxWQSBpbiBBJiZ0eXBlb2YgQVtWQV09PSJmdW5jdGlvbiImJkFbVkFdKCkpfSkuY2F0Y2gocz0+e2xldFtDLGxdPVNBKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxbbUFdOjB9KTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxDKSx7aWQ6Z30pLGwpfSl9KSx0LnN0YXJ0JiZ0LnN0YXJ0KCl9ZnVuY3Rpb24gUGUoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24ga3QoQSl7UGUoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBqZShBLHQpe3JldHVybiBYQShBLFtdLHQpfWZ1bmN0aW9uIHlBKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiBMdChBKXtyZXR1cm4gXyhBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9PntrdChBKX0pfXZhciB3QT1uZXcgV2Vha01hcCxwQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgdD0od0EuZ2V0KEEpfHwwKS0xO3dBLnNldChBLHQpLHQ9PT0wJiZMdChBKX0pO2Z1bmN0aW9uIFdlKEEsdCl7bGV0IGU9KHdBLmdldCh0KXx8MCkrMTt3QS5zZXQodCxlKSxwQSYmcEEucmVnaXN0ZXIoQSx0LEEpfWZ1bmN0aW9uIFplKEEpe3BBJiZwQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIFhBKEEsdD1bXSxlPWZ1bmN0aW9uKCl7fSl7bGV0IEk9ITEscj1uZXcgUHJveHkoZSx7Z2V0KGcsbyl7aWYoeUEoSSksbz09PUtlKXJldHVybigpPT57WmUociksTHQoQSksST0hMH07aWYobz09PSJ0aGVuIil7aWYodC5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5yfTtsZXQgbj1fKEEse3R5cGU6IkdFVCIscGF0aDp0Lm1hcChFPT5FLnRvU3RyaW5nKCkpfSkudGhlbihXKTtyZXR1cm4gbi50aGVuLmJpbmQobil9cmV0dXJuIFhBKEEsWy4uLnQsb10pfSxzZXQoZyxvLG4pe3lBKEkpO2xldFtFLEJdPVNBKG4pO3JldHVybiBfKEEse3R5cGU6IlNFVCIscGF0aDpbLi4udCxvXS5tYXAocz0+cy50b1N0cmluZygpKSx2YWx1ZTpFfSxCKS50aGVuKFcpfSxhcHBseShnLG8sbil7eUEoSSk7bGV0IEU9dFt0Lmxlbmd0aC0xXTtpZihFPT09TWUpcmV0dXJuIF8oQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbihXKTtpZihFPT09ImJpbmQiKXJldHVybiBYQShBLHQuc2xpY2UoMCwtMSkpO2xldFtCLHNdPVJ0KG4pO3JldHVybiBfKEEse3R5cGU6IkFQUExZIixwYXRoOnQubWFwKEM9PkMudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OkJ9LHMpLnRoZW4oVyl9LGNvbnN0cnVjdChnLG8pe3lBKEkpO2xldFtuLEVdPVJ0KG8pO3JldHVybiBfKEEse3R5cGU6IkNPTlNUUlVDVCIscGF0aDp0Lm1hcChCPT5CLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpufSxFKS50aGVuKFcpfX0pO3JldHVybiBXZShyLEEpLHJ9ZnVuY3Rpb24gVmUoQSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sQSl9ZnVuY3Rpb24gUnQoQSl7bGV0IHQ9QS5tYXAoU0EpO3JldHVyblt0Lm1hcChlPT5lWzBdKSxWZSh0Lm1hcChlPT5lWzFdKSldfXZhciBidD1uZXcgV2Vha01hcDtmdW5jdGlvbiBfQShBLHQpe3JldHVybiBidC5zZXQoQSx0KSxBfWZ1bmN0aW9uIFhlKEEpe3JldHVybiBPYmplY3QuYXNzaWduKEEse1tOdF06ITB9KX1mdW5jdGlvbiBTQShBKXtmb3IobGV0W3QsZV1vZiBHdClpZihlLmNhbkhhbmRsZShBKSl7bGV0W0kscl09ZS5zZXJpYWxpemUoQSk7cmV0dXJuW3t0eXBlOiJIQU5ETEVSIixuYW1lOnQsdmFsdWU6SX0scl19cmV0dXJuW3t0eXBlOiJSQVciLHZhbHVlOkF9LGJ0LmdldChBKXx8W11dfWZ1bmN0aW9uIFcoQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4gR3QuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiBfKEEsdCxlKXtyZXR1cm4gbmV3IFByb21pc2UoST0+e2xldCByPV9lKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBnKG8peyFvLmRhdGF8fCFvLmRhdGEuaWR8fG8uZGF0YS5pZCE9PXJ8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGcpLEkoby5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpyfSx0KSxlKX0pfWZ1bmN0aW9uIF9lKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiBvQShBLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KHQsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOnplfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjp2QX09T2JqZWN0LHtpdGVyYXRvcjpOQSx0b1N0cmluZ1RhZzpZdH09U3ltYm9sLFVBPShBPT50PT57bGV0IGU9emUuY2FsbCh0KTtyZXR1cm4gQVtlXXx8KEFbZV09ZS5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLEw9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLHQ9PlVBKHQpPT09QSksR0E9QT0+dD0+dHlwZW9mIHQ9PT1BLHtpc0FycmF5OnZ9PUFycmF5LHo9R0EoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIGdBKEEpe3JldHVybiBBIT09bnVsbCYmIXooQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYheihBLmNvbnN0cnVjdG9yKSYmTihBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKSYmQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihBKX12YXIgcXQ9TCgiQXJyYXlCdWZmZXIiKTtmdW5jdGlvbiB2ZShBKXtsZXQgdDtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmQXJyYXlCdWZmZXIuaXNWaWV3P3Q9QXJyYXlCdWZmZXIuaXNWaWV3KEEpOnQ9QSYmQS5idWZmZXImJnF0KEEuYnVmZmVyKSx0fXZhciAkZT1HQSgic3RyaW5nIiksTj1HQSgiZnVuY3Rpb24iKSxNdD1HQSgibnVtYmVyIiksaUE9QT0+QSE9PW51bGwmJnR5cGVvZiBBPT0ib2JqZWN0IixBST1BPT5BPT09ITB8fEE9PT0hMSxSQT1BPT57aWYoVUEoQSkhPT0ib2JqZWN0IilyZXR1cm4hMTtsZXQgdD12QShBKTtyZXR1cm4odD09PW51bGx8fHQ9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk9PT1udWxsKSYmIShZdCBpbiBBKSYmIShOQSBpbiBBKX0sdEk9QT0+e2lmKCFpQShBKXx8Z0EoQSkpcmV0dXJuITE7dHJ5e3JldHVybiBPYmplY3Qua2V5cyhBKS5sZW5ndGg9PT0wJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoQSk9PT1PYmplY3QucHJvdG90eXBlfWNhdGNoe3JldHVybiExfX0sZUk9TCgiRGF0ZSIpLElJPUwoIkZpbGUiKSxyST1MKCJCbG9iIiksb0k9TCgiRmlsZUxpc3QiKSxnST1BPT5pQShBKSYmTihBLnBpcGUpLGlJPUE9PntsZXQgdDtyZXR1cm4gQSYmKHR5cGVvZiBGb3JtRGF0YT09ImZ1bmN0aW9uIiYmQSBpbnN0YW5jZW9mIEZvcm1EYXRhfHxOKEEuYXBwZW5kKSYmKCh0PVVBKEEpKT09PSJmb3JtZGF0YSJ8fHQ9PT0ib2JqZWN0IiYmTihBLnRvU3RyaW5nKSYmQS50b1N0cmluZygpPT09IltvYmplY3QgRm9ybURhdGFdIikpfSxzST1MKCJVUkxTZWFyY2hQYXJhbXMiKSxbbkksQ0ksQkksYUldPVsiUmVhZGFibGVTdHJlYW0iLCJSZXF1ZXN0IiwiUmVzcG9uc2UiLCJIZWFkZXJzIl0ubWFwKEwpLFFJPUE9PkEudHJpbT9BLnRyaW0oKTpBLnJlcGxhY2UoL15bXFxzXFx1RkVGRlxceEEwXSt8W1xcc1xcdUZFRkZcXHhBMF0rJC9nLCIiKTtmdW5jdGlvbiBzQShBLHQse2FsbE93bktleXM6ZT0hMX09e30pe2lmKEE9PT1udWxsfHx0eXBlb2YgQT4idSIpcmV0dXJuO2xldCBJLHI7aWYodHlwZW9mIEEhPSJvYmplY3QiJiYoQT1bQV0pLHYoQSkpZm9yKEk9MCxyPUEubGVuZ3RoO0k8cjtJKyspdC5jYWxsKG51bGwsQVtJXSxJLEEpO2Vsc2V7aWYoZ0EoQSkpcmV0dXJuO2xldCBnPWU/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSk6T2JqZWN0LmtleXMoQSksbz1nLmxlbmd0aCxuO2ZvcihJPTA7STxvO0krKyluPWdbSV0sdC5jYWxsKG51bGwsQVtuXSxuLEEpfX1mdW5jdGlvbiBLdChBLHQpe2lmKGdBKEEpKXJldHVybiBudWxsO3Q9dC50b0xvd2VyQ2FzZSgpO2xldCBlPU9iamVjdC5rZXlzKEEpLEk9ZS5sZW5ndGgscjtmb3IoO0ktLSA+MDspaWYocj1lW0ldLHQ9PT1yLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHI7cmV0dXJuIG51bGx9dmFyIFo9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Omdsb2JhbCxPdD1BPT4heihBKSYmQSE9PVo7ZnVuY3Rpb24gekEoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOnR9PU90KHRoaXMpJiZ0aGlzfHx7fSxlPXt9LEk9KHIsZyk9PntsZXQgbz1BJiZLdChlLGcpfHxnO1JBKGVbb10pJiZSQShyKT9lW29dPXpBKGVbb10scik6UkEocik/ZVtvXT16QSh7fSxyKTp2KHIpP2Vbb109ci5zbGljZSgpOighdHx8IXoocikpJiYoZVtvXT1yKX07Zm9yKGxldCByPTAsZz1hcmd1bWVudHMubGVuZ3RoO3I8ZztyKyspYXJndW1lbnRzW3JdJiZzQShhcmd1bWVudHNbcl0sSSk7cmV0dXJuIGV9dmFyIEVJPShBLHQsZSx7YWxsT3duS2V5czpJfT17fSk9PihzQSh0LChyLGcpPT57ZSYmTihyKT9BW2ddPW9BKHIsZSk6QVtnXT1yfSx7YWxsT3duS2V5czpJfSksQSksY0k9QT0+KEEuY2hhckNvZGVBdCgwKT09PTY1Mjc5JiYoQT1BLnNsaWNlKDEpKSxBKSxmST0oQSx0LGUsSSk9PntBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlLEkpLEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPUEsT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInN1cGVyIix7dmFsdWU6dC5wcm90b3R5cGV9KSxlJiZPYmplY3QuYXNzaWduKEEucHJvdG90eXBlLGUpfSxsST0oQSx0LGUsSSk9PntsZXQgcixnLG8sbj17fTtpZih0PXR8fHt9LEE9PW51bGwpcmV0dXJuIHQ7ZG97Zm9yKHI9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSksZz1yLmxlbmd0aDtnLS0gPjA7KW89cltnXSwoIUl8fEkobyxBLHQpKSYmIW5bb10mJih0W29dPUFbb10sbltvXT0hMCk7QT1lIT09ITEmJnZBKEEpfXdoaWxlKEEmJighZXx8ZShBLHQpKSYmQSE9PU9iamVjdC5wcm90b3R5cGUpO3JldHVybiB0fSx1ST0oQSx0LGUpPT57QT1TdHJpbmcoQSksKGU9PT12b2lkIDB8fGU+QS5sZW5ndGgpJiYoZT1BLmxlbmd0aCksZS09dC5sZW5ndGg7bGV0IEk9QS5pbmRleE9mKHQsZSk7cmV0dXJuIEkhPT0tMSYmST09PWV9LGRJPUE9PntpZighQSlyZXR1cm4gbnVsbDtpZih2KEEpKXJldHVybiBBO2xldCB0PUEubGVuZ3RoO2lmKCFNdCh0KSlyZXR1cm4gbnVsbDtsZXQgZT1uZXcgQXJyYXkodCk7Zm9yKDt0LS0gPjA7KWVbdF09QVt0XTtyZXR1cm4gZX0sREk9KEE9PnQ9PkEmJnQgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJnZBKFVpbnQ4QXJyYXkpKSxoST0oQSx0KT0+e2xldCBJPShBJiZBW05BXSkuY2FsbChBKSxyO2Zvcig7KHI9SS5uZXh0KCkpJiYhci5kb25lOyl7bGV0IGc9ci52YWx1ZTt0LmNhbGwoQSxnWzBdLGdbMV0pfX0seUk9KEEsdCk9PntsZXQgZSxJPVtdO2Zvcig7KGU9QS5leGVjKHQpKSE9PW51bGw7KUkucHVzaChlKTtyZXR1cm4gSX0sbUk9TCgiSFRNTEZvcm1FbGVtZW50Iiksd0k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xcc10oW2EtelxcZF0pKFxcdyopL2csZnVuY3Rpb24oZSxJLHIpe3JldHVybiBJLnRvVXBwZXJDYXNlKCkrcn0pLEh0PSgoe2hhc093blByb3BlcnR5OkF9KT0+KHQsZSk9PkEuY2FsbCh0LGUpKShPYmplY3QucHJvdG90eXBlKSxwST1MKCJSZWdFeHAiKSxUdD0oQSx0KT0+e2xldCBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLEk9e307c0EoZSwocixnKT0+e2xldCBvOyhvPXQocixnLEEpKSE9PSExJiYoSVtnXT1vfHxyKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsSSl9LFNJPUE9PntUdChBLCh0LGUpPT57aWYoTihBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKGUpIT09LTEpcmV0dXJuITE7bGV0IEk9QVtlXTtpZihOKEkpKXtpZih0LmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIHQpe3Qud3JpdGFibGU9ITE7cmV0dXJufXQuc2V0fHwodC5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgXCciK2UrIlwnIil9KX19KX0sRkk9KEEsdCk9PntsZXQgZT17fSxJPXI9PntyLmZvckVhY2goZz0+e2VbZ109ITB9KX07cmV0dXJuIHYoQSk/SShBKTpJKFN0cmluZyhBKS5zcGxpdCh0KSksZX0sUkk9KCk9Pnt9LE5JPShBLHQpPT5BIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoQT0rQSk/QTp0O2Z1bmN0aW9uIFVJKEEpe3JldHVybiEhKEEmJk4oQS5hcHBlbmQpJiZBW1l0XT09PSJGb3JtRGF0YSImJkFbTkFdKX12YXIgR0k9QT0+e2xldCB0PW5ldyBBcnJheSgxMCksZT0oSSxyKT0+e2lmKGlBKEkpKXtpZih0LmluZGV4T2YoSSk+PTApcmV0dXJuO2lmKGdBKEkpKXJldHVybiBJO2lmKCEoInRvSlNPTiJpbiBJKSl7dFtyXT1JO2xldCBnPXYoSSk/W106e307cmV0dXJuIHNBKEksKG8sbik9PntsZXQgRT1lKG8scisxKTsheihFKSYmKGdbbl09RSl9KSx0W3JdPXZvaWQgMCxnfX1yZXR1cm4gSX07cmV0dXJuIGUoQSwwKX0sa0k9TCgiQXN5bmNGdW5jdGlvbiIpLExJPUE9PkEmJihpQShBKXx8TihBKSkmJk4oQS50aGVuKSYmTihBLmNhdGNoKSx4dD0oKEEsdCk9PkE/c2V0SW1tZWRpYXRlOnQ/KChlLEkpPT4oWi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoe3NvdXJjZTpyLGRhdGE6Z30pPT57cj09PVomJmc9PT1lJiZJLmxlbmd0aCYmSS5zaGlmdCgpKCl9LCExKSxyPT57SS5wdXNoKHIpLFoucG9zdE1lc3NhZ2UoZSwiKiIpfSkpKGBheGlvc0Ake01hdGgucmFuZG9tKCl9YCxbXSk6ZT0+c2V0VGltZW91dChlKSkodHlwZW9mIHNldEltbWVkaWF0ZT09ImZ1bmN0aW9uIixOKFoucG9zdE1lc3NhZ2UpKSxiST10eXBlb2YgcXVldWVNaWNyb3Rhc2s8InUiP3F1ZXVlTWljcm90YXNrLmJpbmQoWik6dHlwZW9mIHByb2Nlc3M8InUiJiZwcm9jZXNzLm5leHRUaWNrfHx4dCxKST1BPT5BIT1udWxsJiZOKEFbTkFdKSxpPXtpc0FycmF5OnYsaXNBcnJheUJ1ZmZlcjpxdCxpc0J1ZmZlcjpnQSxpc0Zvcm1EYXRhOmlJLGlzQXJyYXlCdWZmZXJWaWV3OnZlLGlzU3RyaW5nOiRlLGlzTnVtYmVyOk10LGlzQm9vbGVhbjpBSSxpc09iamVjdDppQSxpc1BsYWluT2JqZWN0OlJBLGlzRW1wdHlPYmplY3Q6dEksaXNSZWFkYWJsZVN0cmVhbTpuSSxpc1JlcXVlc3Q6Q0ksaXNSZXNwb25zZTpCSSxpc0hlYWRlcnM6YUksaXNVbmRlZmluZWQ6eixpc0RhdGU6ZUksaXNGaWxlOklJLGlzQmxvYjpySSxpc1JlZ0V4cDpwSSxpc0Z1bmN0aW9uOk4saXNTdHJlYW06Z0ksaXNVUkxTZWFyY2hQYXJhbXM6c0ksaXNUeXBlZEFycmF5OkRJLGlzRmlsZUxpc3Q6b0ksZm9yRWFjaDpzQSxtZXJnZTp6QSxleHRlbmQ6RUksdHJpbTpRSSxzdHJpcEJPTTpjSSxpbmhlcml0czpmSSx0b0ZsYXRPYmplY3Q6bEksa2luZE9mOlVBLGtpbmRPZlRlc3Q6TCxlbmRzV2l0aDp1SSx0b0FycmF5OmRJLGZvckVhY2hFbnRyeTpoSSxtYXRjaEFsbDp5SSxpc0hUTUxGb3JtOm1JLGhhc093blByb3BlcnR5Okh0LGhhc093blByb3A6SHQscmVkdWNlRGVzY3JpcHRvcnM6VHQsZnJlZXplTWV0aG9kczpTSSx0b09iamVjdFNldDpGSSx0b0NhbWVsQ2FzZTp3SSxub29wOlJJLHRvRmluaXRlTnVtYmVyOk5JLGZpbmRLZXk6S3QsZ2xvYmFsOlosaXNDb250ZXh0RGVmaW5lZDpPdCxpc1NwZWNDb21wbGlhbnRGb3JtOlVJLHRvSlNPTk9iamVjdDpHSSxpc0FzeW5jRm46a0ksaXNUaGVuYWJsZTpMSSxzZXRJbW1lZGlhdGU6eHQsYXNhcDpiSSxpc0l0ZXJhYmxlOkpJfTtmdW5jdGlvbiAkKEEsdCxlLEkscil7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2ssdGhpcy5tZXNzYWdlPUEsdGhpcy5uYW1lPSJBeGlvc0Vycm9yIix0JiYodGhpcy5jb2RlPXQpLGUmJih0aGlzLmNvbmZpZz1lKSxJJiYodGhpcy5yZXF1ZXN0PUkpLHImJih0aGlzLnJlc3BvbnNlPXIsdGhpcy5zdGF0dXM9ci5zdGF0dXM/ci5zdGF0dXM6bnVsbCl9aS5pbmhlcml0cygkLEVycm9yLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6aS50b0pTT05PYmplY3QodGhpcy5jb25maWcpLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnN0YXR1c319fSk7dmFyIFB0PSQucHJvdG90eXBlLGp0PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e2p0W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKCQsanQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShQdCwiaXNBeGlvc0Vycm9yIix7dmFsdWU6ITB9KTskLmZyb209KEEsdCxlLEkscixnKT0+e2xldCBvPU9iamVjdC5jcmVhdGUoUHQpO2kudG9GbGF0T2JqZWN0KEEsbyxmdW5jdGlvbihzKXtyZXR1cm4gcyE9PUVycm9yLnByb3RvdHlwZX0sQj0+QiE9PSJpc0F4aW9zRXJyb3IiKTtsZXQgbj1BJiZBLm1lc3NhZ2U/QS5tZXNzYWdlOiJFcnJvciIsRT10PT1udWxsJiZBP0EuY29kZTp0O3JldHVybiAkLmNhbGwobyxuLEUsZSxJLHIpLEEmJm8uY2F1c2U9PW51bGwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJjYXVzZSIse3ZhbHVlOkEsY29uZmlndXJhYmxlOiEwfSksby5uYW1lPUEmJkEubmFtZXx8IkVycm9yIixnJiZPYmplY3QuYXNzaWduKG8sZyksb307dmFyIHU9JDt2YXIga0E9bnVsbDtmdW5jdGlvbiAkQShBKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KEEpfHxpLmlzQXJyYXkoQSl9ZnVuY3Rpb24gWnQoQSl7cmV0dXJuIGkuZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gV3QoQSx0LGUpe3JldHVybiBBP0EuY29uY2F0KHQpLm1hcChmdW5jdGlvbihyLGcpe3JldHVybiByPVp0KHIpLCFlJiZnPyJbIityKyJdIjpyfSkuam9pbihlPyIuIjoiIik6dH1mdW5jdGlvbiBISShBKXtyZXR1cm4gaS5pc0FycmF5KEEpJiYhQS5zb21lKCRBKX12YXIgWUk9aS50b0ZsYXRPYmplY3QoaSx7fSxudWxsLGZ1bmN0aW9uKHQpe3JldHVybi9eaXNbQS1aXS8udGVzdCh0KX0pO2Z1bmN0aW9uIHFJKEEsdCxlKXtpZighaS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTt0PXR8fG5ldyhrQXx8Rm9ybURhdGEpLGU9aS50b0ZsYXRPYmplY3QoZSx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGYsYyl7cmV0dXJuIWkuaXNVbmRlZmluZWQoY1tmXSl9KTtsZXQgST1lLm1ldGFUb2tlbnMscj1lLnZpc2l0b3J8fHMsZz1lLmRvdHMsbz1lLmluZGV4ZXMsRT0oZS5CbG9ifHx0eXBlb2YgQmxvYjwidSImJkJsb2IpJiZpLmlzU3BlY0NvbXBsaWFudEZvcm0odCk7aWYoIWkuaXNGdW5jdGlvbihyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIEIoUSl7aWYoUT09PW51bGwpcmV0dXJuIiI7aWYoaS5pc0RhdGUoUSkpcmV0dXJuIFEudG9JU09TdHJpbmcoKTtpZihpLmlzQm9vbGVhbihRKSlyZXR1cm4gUS50b1N0cmluZygpO2lmKCFFJiZpLmlzQmxvYihRKSl0aHJvdyBuZXcgdSgiQmxvYiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYSBCdWZmZXIgaW5zdGVhZC4iKTtyZXR1cm4gaS5pc0FycmF5QnVmZmVyKFEpfHxpLmlzVHlwZWRBcnJheShRKT9FJiZ0eXBlb2YgQmxvYj09ImZ1bmN0aW9uIj9uZXcgQmxvYihbUV0pOkJ1ZmZlci5mcm9tKFEpOlF9ZnVuY3Rpb24gcyhRLGYsYyl7bGV0IEQ9UTtpZihRJiYhYyYmdHlwZW9mIFE9PSJvYmplY3QiKXtpZihpLmVuZHNXaXRoKGYsInt9IikpZj1JP2Y6Zi5zbGljZSgwLC0yKSxRPUpTT04uc3RyaW5naWZ5KFEpO2Vsc2UgaWYoaS5pc0FycmF5KFEpJiZISShRKXx8KGkuaXNGaWxlTGlzdChRKXx8aS5lbmRzV2l0aChmLCJbXSIpKSYmKEQ9aS50b0FycmF5KFEpKSlyZXR1cm4gZj1adChmKSxELmZvckVhY2goZnVuY3Rpb24oeSxSKXshKGkuaXNVbmRlZmluZWQoeSl8fHk9PT1udWxsKSYmdC5hcHBlbmQobz09PSEwP1d0KFtmXSxSLGcpOm89PT1udWxsP2Y6ZisiW10iLEIoeSkpfSksITF9cmV0dXJuICRBKFEpPyEwOih0LmFwcGVuZChXdChjLGYsZyksQihRKSksITEpfWxldCBDPVtdLGw9T2JqZWN0LmFzc2lnbihZSSx7ZGVmYXVsdFZpc2l0b3I6cyxjb252ZXJ0VmFsdWU6Qixpc1Zpc2l0YWJsZTokQX0pO2Z1bmN0aW9uIGEoUSxmKXtpZighaS5pc1VuZGVmaW5lZChRKSl7aWYoQy5pbmRleE9mKFEpIT09LTEpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAiK2Yuam9pbigiLiIpKTtDLnB1c2goUSksaS5mb3JFYWNoKFEsZnVuY3Rpb24oRCxGKXsoIShpLmlzVW5kZWZpbmVkKEQpfHxEPT09bnVsbCkmJnIuY2FsbCh0LEQsaS5pc1N0cmluZyhGKT9GLnRyaW0oKTpGLGYsbCkpPT09ITAmJmEoRCxmP2YuY29uY2F0KEYpOltGXSl9KSxDLnBvcCgpfX1pZighaS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJkYXRhIG11c3QgYmUgYW4gb2JqZWN0Iik7cmV0dXJuIGEoQSksdH12YXIgVD1xSTtmdW5jdGlvbiBWdChBKXtsZXQgdD17IiEiOiIlMjUyMSIsIlwnIjoiJTI1MjciLCIoIjoiJTI1MjgiLCIpIjoiJTI1MjkiLCJ+IjoiJTI1N0UiLCIlMjUyMCI6IisiLCIlMjUwMCI6IlxcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyFcJygpfl18JTI1MjB8JTI1MDAvZyxmdW5jdGlvbihJKXtyZXR1cm4gdFtJXX0pfWZ1bmN0aW9uIFh0KEEsdCl7dGhpcy5fcGFpcnM9W10sQSYmVChBLHRoaXMsdCl9dmFyIF90PVh0LnByb3RvdHlwZTtfdC5hcHBlbmQ9ZnVuY3Rpb24odCxlKXt0aGlzLl9wYWlycy5wdXNoKFt0LGVdKX07X3QudG9TdHJpbmc9ZnVuY3Rpb24odCl7bGV0IGU9dD9mdW5jdGlvbihJKXtyZXR1cm4gdC5jYWxsKHRoaXMsSSxWdCl9OlZ0O3JldHVybiB0aGlzLl9wYWlycy5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIGUoclswXSkrIj0iK2UoclsxXSl9LCIiKS5qb2luKCImIil9O3ZhciBMQT1YdDtmdW5jdGlvbiBNSShBKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoLyUyNTNBL2dpLCI6IikucmVwbGFjZSgvJTI1MjQvZywiJCIpLnJlcGxhY2UoLyUyNTJDL2dpLCIsIikucmVwbGFjZSgvJTI1MjAvZywiKyIpfWZ1bmN0aW9uIG5BKEEsdCxlKXtpZighdClyZXR1cm4gQTtsZXQgST1lJiZlLmVuY29kZXx8TUk7aS5pc0Z1bmN0aW9uKGUpJiYoZT17c2VyaWFsaXplOmV9KTtsZXQgcj1lJiZlLnNlcmlhbGl6ZSxnO2lmKHI/Zz1yKHQsZSk6Zz1pLmlzVVJMU2VhcmNoUGFyYW1zKHQpP3QudG9TdHJpbmcoKTpuZXcgTEEodCxlKS50b1N0cmluZyhJKSxnKXtsZXQgbz1BLmluZGV4T2YoIiUyMyIpO28hPT0tMSYmKEE9QS5zbGljZSgwLG8pKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStnfXJldHVybiBBfXZhciBBdD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKHQsZSxJKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6dCxyZWplY3RlZDplLHN5bmNocm9ub3VzOkk/SS5zeW5jaHJvbm91czohMSxydW5XaGVuOkk/SS5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KHQpe3RoaXMuaGFuZGxlcnNbdF0mJih0aGlzLmhhbmRsZXJzW3RdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2godCl7aS5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24oSSl7SSE9PW51bGwmJnQoSSl9KX19LHR0PUF0O3ZhciBiQT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIHp0PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpMQTt2YXIgdnQ9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciAkdD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBBZT17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczp6dCxGb3JtRGF0YTp2dCxCbG9iOiR0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIHJ0PXt9O3FlKHJ0LHtoYXNCcm93c2VyRW52OigpPT5JdCxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PktJLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+T0ksbmF2aWdhdG9yOigpPT5ldCxvcmlnaW46KCk9PlRJfSk7dmFyIEl0PXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLGV0PXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCxLST1JdCYmKCFldHx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZihldC5wcm9kdWN0KTwwKSxPST10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsVEk9SXQmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIGg9ey4uLnJ0LC4uLkFlfTtmdW5jdGlvbiBvdChBLHQpe3JldHVybiBUKEEsbmV3IGguY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMse3Zpc2l0b3I6ZnVuY3Rpb24oZSxJLHIsZyl7cmV0dXJuIGguaXNOb2RlJiZpLmlzQnVmZmVyKGUpPyh0aGlzLmFwcGVuZChJLGUudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6Zy5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LC4uLnR9KX1mdW5jdGlvbiB4SShBKXtyZXR1cm4gaS5tYXRjaEFsbCgvXFx3K3xcXFsoXFx3KildL2csQSkubWFwKHQ9PnRbMF09PT0iW10iPyIiOnRbMV18fHRbMF0pfWZ1bmN0aW9uIFBJKEEpe2xldCB0PXt9LGU9T2JqZWN0LmtleXMoQSksSSxyPWUubGVuZ3RoLGc7Zm9yKEk9MDtJPHI7SSsrKWc9ZVtJXSx0W2ddPUFbZ107cmV0dXJuIHR9ZnVuY3Rpb24gakkoQSl7ZnVuY3Rpb24gdChlLEkscixnKXtsZXQgbz1lW2crK107aWYobz09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBuPU51bWJlci5pc0Zpbml0ZSgrbyksRT1nPj1lLmxlbmd0aDtyZXR1cm4gbz0hbyYmaS5pc0FycmF5KHIpP3IubGVuZ3RoOm8sRT8oaS5oYXNPd25Qcm9wKHIsbyk/cltvXT1bcltvXSxJXTpyW29dPUksIW4pOigoIXJbb118fCFpLmlzT2JqZWN0KHJbb10pKSYmKHJbb109W10pLHQoZSxJLHJbb10sZykmJmkuaXNBcnJheShyW29dKSYmKHJbb109UEkocltvXSkpLCFuKX1pZihpLmlzRm9ybURhdGEoQSkmJmkuaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgZT17fTtyZXR1cm4gaS5mb3JFYWNoRW50cnkoQSwoSSxyKT0+e3QoeEkoSSkscixlLDApfSksZX1yZXR1cm4gbnVsbH12YXIgSkE9akk7ZnVuY3Rpb24gV0koQSx0LGUpe2lmKGkuaXNTdHJpbmcoQSkpdHJ5e3JldHVybih0fHxKU09OLnBhcnNlKShBKSxpLnRyaW0oQSl9Y2F0Y2goSSl7aWYoSS5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyBJfXJldHVybihlfHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIGd0PXt0cmFuc2l0aW9uYWw6YkEsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKHQsZSl7bGV0IEk9ZS5nZXRDb250ZW50VHlwZSgpfHwiIixyPUkuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLGc9aS5pc09iamVjdCh0KTtpZihnJiZpLmlzSFRNTEZvcm0odCkmJih0PW5ldyBGb3JtRGF0YSh0KSksaS5pc0Zvcm1EYXRhKHQpKXJldHVybiByP0pTT04uc3RyaW5naWZ5KEpBKHQpKTp0O2lmKGkuaXNBcnJheUJ1ZmZlcih0KXx8aS5pc0J1ZmZlcih0KXx8aS5pc1N0cmVhbSh0KXx8aS5pc0ZpbGUodCl8fGkuaXNCbG9iKHQpfHxpLmlzUmVhZGFibGVTdHJlYW0odCkpcmV0dXJuIHQ7aWYoaS5pc0FycmF5QnVmZmVyVmlldyh0KSlyZXR1cm4gdC5idWZmZXI7aWYoaS5pc1VSTFNlYXJjaFBhcmFtcyh0KSlyZXR1cm4gZS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSx0LnRvU3RyaW5nKCk7bGV0IG47aWYoZyl7aWYoSS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gb3QodCx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChuPWkuaXNGaWxlTGlzdCh0KSl8fEkuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgRT10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIFQobj97ImZpbGVzW10iOnR9OnQsRSYmbmV3IEUsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiBnfHxyPyhlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksV0kodCkpOnR9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24odCl7bGV0IGU9dGhpcy50cmFuc2l0aW9uYWx8fGd0LnRyYW5zaXRpb25hbCxJPWUmJmUuZm9yY2VkSlNPTlBhcnNpbmcscj10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihpLmlzUmVzcG9uc2UodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZih0JiZpLmlzU3RyaW5nKHQpJiYoSSYmIXRoaXMucmVzcG9uc2VUeXBlfHxyKSl7bGV0IG89IShlJiZlLnNpbGVudEpTT05QYXJzaW5nKSYmcjt0cnl7cmV0dXJuIEpTT04ucGFyc2UodCx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2gobil7aWYobyl0aHJvdyBuLm5hbWU9PT0iU3ludGF4RXJyb3IiP3UuZnJvbShuLHUuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6bn19cmV0dXJuIHR9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOmguY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOmguY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbih0KXtyZXR1cm4gdD49MjAwJiZ0PDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O2kuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57Z3QuaGVhZGVyc1tBXT17fX0pO3ZhciBBQT1ndDt2YXIgWkk9aS50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSx0ZT1BPT57bGV0IHQ9e30sZSxJLHI7cmV0dXJuIEEmJkEuc3BsaXQoYCUwQWApLmZvckVhY2goZnVuY3Rpb24obyl7cj1vLmluZGV4T2YoIjoiKSxlPW8uc3Vic3RyaW5nKDAscikudHJpbSgpLnRvTG93ZXJDYXNlKCksST1vLnN1YnN0cmluZyhyKzEpLnRyaW0oKSwhKCFlfHx0W2VdJiZaSVtlXSkmJihlPT09InNldC1jb29raWUiP3RbZV0/dFtlXS5wdXNoKEkpOnRbZV09W0ldOnRbZV09dFtlXT90W2VdKyIsICIrSTpJKX0pLHR9O3ZhciBlZT1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIENBKEEpe3JldHVybiBBJiZTdHJpbmcoQSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gSEEoQSl7cmV0dXJuIEE9PT0hMXx8QT09bnVsbD9BOmkuaXNBcnJheShBKT9BLm1hcChIQSk6U3RyaW5nKEEpfWZ1bmN0aW9uIFZJKEEpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCksZT0vKFteXFxzLDs9XSspXFxzKig/Oj1cXHMqKFteLDtdKykpPy9nLEk7Zm9yKDtJPWUuZXhlYyhBKTspdFtJWzFdXT1JWzJdO3JldHVybiB0fXZhciBYST1BPT4vXlstX2EtekEtWjAtOV5gfH4sISUyMyQlJlwnKisuXSskLy50ZXN0KEEudHJpbSgpKTtmdW5jdGlvbiBpdChBLHQsZSxJLHIpe2lmKGkuaXNGdW5jdGlvbihJKSlyZXR1cm4gSS5jYWxsKHRoaXMsdCxlKTtpZihyJiYodD1lKSwhIWkuaXNTdHJpbmcodCkpe2lmKGkuaXNTdHJpbmcoSSkpcmV0dXJuIHQuaW5kZXhPZihJKSE9PS0xO2lmKGkuaXNSZWdFeHAoSSkpcmV0dXJuIEkudGVzdCh0KX19ZnVuY3Rpb24gX0koQSl7cmV0dXJuIEEudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcXGRdKShcXHcqKS9nLCh0LGUsSSk9PmUudG9VcHBlckNhc2UoKStJKX1mdW5jdGlvbiB6SShBLHQpe2xldCBlPWkudG9DYW1lbENhc2UoIiAiK3QpO1siZ2V0Iiwic2V0IiwiaGFzIl0uZm9yRWFjaChJPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsSStlLHt2YWx1ZTpmdW5jdGlvbihyLGcsbyl7cmV0dXJuIHRoaXNbSV0uY2FsbCh0aGlzLHQscixnLG8pfSxjb25maWd1cmFibGU6ITB9KX0pfXZhciB0QT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0JiZ0aGlzLnNldCh0KX1zZXQodCxlLEkpe2xldCByPXRoaXM7ZnVuY3Rpb24gZyhuLEUsQil7bGV0IHM9Q0EoRSk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2xldCBDPWkuZmluZEtleShyLHMpOyghQ3x8cltDXT09PXZvaWQgMHx8Qj09PSEwfHxCPT09dm9pZCAwJiZyW0NdIT09ITEpJiYocltDfHxFXT1IQShuKSl9bGV0IG89KG4sRSk9PmkuZm9yRWFjaChuLChCLHMpPT5nKEIscyxFKSk7aWYoaS5pc1BsYWluT2JqZWN0KHQpfHx0IGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3RvcilvKHQsZSk7ZWxzZSBpZihpLmlzU3RyaW5nKHQpJiYodD10LnRyaW0oKSkmJiFYSSh0KSlvKHRlKHQpLGUpO2Vsc2UgaWYoaS5pc09iamVjdCh0KSYmaS5pc0l0ZXJhYmxlKHQpKXtsZXQgbj17fSxFLEI7Zm9yKGxldCBzIG9mIHQpe2lmKCFpLmlzQXJyYXkocykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QgaXRlcmF0b3IgbXVzdCByZXR1cm4gYSBrZXktdmFsdWUgcGFpciIpO25bQj1zWzBdXT0oRT1uW0JdKT9pLmlzQXJyYXkoRSk/Wy4uLkUsc1sxXV06W0Usc1sxXV06c1sxXX1vKG4sZSl9ZWxzZSB0IT1udWxsJiZnKGUsdCxJKTtyZXR1cm4gdGhpc31nZXQodCxlKXtpZih0PUNBKHQpLHQpe2xldCBJPWkuZmluZEtleSh0aGlzLHQpO2lmKEkpe2xldCByPXRoaXNbSV07aWYoIWUpcmV0dXJuIHI7aWYoZT09PSEwKXJldHVybiBWSShyKTtpZihpLmlzRnVuY3Rpb24oZSkpcmV0dXJuIGUuY2FsbCh0aGlzLHIsSSk7aWYoaS5pc1JlZ0V4cChlKSlyZXR1cm4gZS5leGVjKHIpO3Rocm93IG5ldyBUeXBlRXJyb3IoInBhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uIil9fX1oYXModCxlKXtpZih0PUNBKHQpLHQpe2xldCBJPWkuZmluZEtleSh0aGlzLHQpO3JldHVybiEhKEkmJnRoaXNbSV0hPT12b2lkIDAmJighZXx8aXQodGhpcyx0aGlzW0ldLEksZSkpKX1yZXR1cm4hMX1kZWxldGUodCxlKXtsZXQgST10aGlzLHI9ITE7ZnVuY3Rpb24gZyhvKXtpZihvPUNBKG8pLG8pe2xldCBuPWkuZmluZEtleShJLG8pO24mJighZXx8aXQoSSxJW25dLG4sZSkpJiYoZGVsZXRlIElbbl0scj0hMCl9fXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKGcpOmcodCkscn1jbGVhcih0KXtsZXQgZT1PYmplY3Qua2V5cyh0aGlzKSxJPWUubGVuZ3RoLHI9ITE7Zm9yKDtJLS07KXtsZXQgZz1lW0ldOyghdHx8aXQodGhpcyx0aGlzW2ddLGcsdCwhMCkpJiYoZGVsZXRlIHRoaXNbZ10scj0hMCl9cmV0dXJuIHJ9bm9ybWFsaXplKHQpe2xldCBlPXRoaXMsST17fTtyZXR1cm4gaS5mb3JFYWNoKHRoaXMsKHIsZyk9PntsZXQgbz1pLmZpbmRLZXkoSSxnKTtpZihvKXtlW29dPUhBKHIpLGRlbGV0ZSBlW2ddO3JldHVybn1sZXQgbj10P19JKGcpOlN0cmluZyhnKS50cmltKCk7biE9PWcmJmRlbGV0ZSBlW2ddLGVbbl09SEEociksSVtuXT0hMH0pLHRoaXN9Y29uY2F0KC4uLnQpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLmNvbmNhdCh0aGlzLC4uLnQpfXRvSlNPTih0KXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBpLmZvckVhY2godGhpcywoSSxyKT0+e0khPW51bGwmJkkhPT0hMSYmKGVbcl09dCYmaS5pc0FycmF5KEkpP0kuam9pbigiLCAiKTpJKX0pLGV9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSlbU3ltYm9sLml0ZXJhdG9yXSgpfXRvU3RyaW5nKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpLm1hcCgoW3QsZV0pPT50KyI6ICIrZSkuam9pbihgJTBBYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB0aGlzP3Q6bmV3IHRoaXModCl9c3RhdGljIGNvbmNhdCh0LC4uLmUpe2xldCBJPW5ldyB0aGlzKHQpO3JldHVybiBlLmZvckVhY2gocj0+SS5zZXQocikpLEl9c3RhdGljIGFjY2Vzc29yKHQpe2xldCBJPSh0aGlzW2VlXT10aGlzW2VlXT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLHI9dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gZyhvKXtsZXQgbj1DQShvKTtJW25dfHwoekkocixvKSxJW25dPSEwKX1yZXR1cm4gaS5pc0FycmF5KHQpP3QuZm9yRWFjaChnKTpnKHQpLHRoaXN9fTt0QS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7aS5yZWR1Y2VEZXNjcmlwdG9ycyh0QS5wcm90b3R5cGUsKHt2YWx1ZTpBfSx0KT0+e2xldCBlPXRbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KEkpe3RoaXNbZV09SX19fSk7aS5mcmVlemVNZXRob2RzKHRBKTt2YXIgcD10QTtmdW5jdGlvbiBCQShBLHQpe2xldCBlPXRoaXN8fEFBLEk9dHx8ZSxyPXAuZnJvbShJLmhlYWRlcnMpLGc9SS5kYXRhO3JldHVybiBpLmZvckVhY2goQSxmdW5jdGlvbihuKXtnPW4uY2FsbChlLGcsci5ub3JtYWxpemUoKSx0P3Quc3RhdHVzOnZvaWQgMCl9KSxyLm5vcm1hbGl6ZSgpLGd9ZnVuY3Rpb24gYUEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBJZShBLHQsZSl7dS5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIix1LkVSUl9DQU5DRUxFRCx0LGUpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9aS5pbmhlcml0cyhJZSx1LHtfX0NBTkNFTF9fOiEwfSk7dmFyIEg9SWU7ZnVuY3Rpb24gUUEoQSx0LGUpe2xldCBJPWUuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyFlLnN0YXR1c3x8IUl8fEkoZS5zdGF0dXMpP0EoZSk6dChuZXcgdSgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK2Uuc3RhdHVzLFt1LkVSUl9CQURfUkVRVUVTVCx1LkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IoZS5zdGF0dXMvMTAwKS00XSxlLmNvbmZpZyxlLnJlcXVlc3QsZSkpfWZ1bmN0aW9uIHN0KEEpe2xldCB0PS9eKFstK1xcd117MSwyNX0pKDo/XFwvXFwvfDopLy5leGVjKEEpO3JldHVybiB0JiZ0WzFdfHwiIn1mdW5jdGlvbiB2SShBLHQpe0E9QXx8MTA7bGV0IGU9bmV3IEFycmF5KEEpLEk9bmV3IEFycmF5KEEpLHI9MCxnPTAsbztyZXR1cm4gdD10IT09dm9pZCAwP3Q6MWUzLGZ1bmN0aW9uKEUpe2xldCBCPURhdGUubm93KCkscz1JW2ddO298fChvPUIpLGVbcl09RSxJW3JdPUI7bGV0IEM9ZyxsPTA7Zm9yKDtDIT09cjspbCs9ZVtDKytdLEM9QyVBO2lmKHI9KHIrMSklQSxyPT09ZyYmKGc9KGcrMSklQSksQi1vPHQpcmV0dXJuO2xldCBhPXMmJkItcztyZXR1cm4gYT9NYXRoLnJvdW5kKGwqMWUzL2EpOnZvaWQgMH19dmFyIHJlPXZJO2Z1bmN0aW9uICRJKEEsdCl7bGV0IGU9MCxJPTFlMy90LHIsZyxvPShCLHM9RGF0ZS5ub3coKSk9PntlPXMscj1udWxsLGcmJihjbGVhclRpbWVvdXQoZyksZz1udWxsKSxBKC4uLkIpfTtyZXR1cm5bKC4uLkIpPT57bGV0IHM9RGF0ZS5ub3coKSxDPXMtZTtDPj1JP28oQixzKToocj1CLGd8fChnPXNldFRpbWVvdXQoKCk9PntnPW51bGwsbyhyKX0sSS1DKSkpfSwoKT0+ciYmbyhyKV19dmFyIG9lPSRJO3ZhciBlQT0oQSx0LGU9Myk9PntsZXQgST0wLHI9cmUoNTAsMjUwKTtyZXR1cm4gb2UoZz0+e2xldCBvPWcubG9hZGVkLG49Zy5sZW5ndGhDb21wdXRhYmxlP2cudG90YWw6dm9pZCAwLEU9by1JLEI9cihFKSxzPW88PW47ST1vO2xldCBDPXtsb2FkZWQ6byx0b3RhbDpuLHByb2dyZXNzOm4/by9uOnZvaWQgMCxieXRlczpFLHJhdGU6Qnx8dm9pZCAwLGVzdGltYXRlZDpCJiZuJiZzPyhuLW8pL0I6dm9pZCAwLGV2ZW50OmcsbGVuZ3RoQ29tcHV0YWJsZTpuIT1udWxsLFt0PyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKEMpfSxlKX0sbnQ9KEEsdCk9PntsZXQgZT1BIT1udWxsO3JldHVybltJPT50WzBdKHtsZW5ndGhDb21wdXRhYmxlOmUsdG90YWw6QSxsb2FkZWQ6SX0pLHRbMV1dfSxDdD1BPT4oLi4udCk9PmkuYXNhcCgoKT0+QSguLi50KSk7dmFyIGdlPWguaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSx0KT0+ZT0+KGU9bmV3IFVSTChlLGgub3JpZ2luKSxBLnByb3RvY29sPT09ZS5wcm90b2NvbCYmQS5ob3N0PT09ZS5ob3N0JiYodHx8QS5wb3J0PT09ZS5wb3J0KSkpKG5ldyBVUkwoaC5vcmlnaW4pLGgubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KGgubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgaWU9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsdCxlLEkscixnKXtsZXQgbz1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpXTtpLmlzTnVtYmVyKGUpJiZvLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZShlKS50b0dNVFN0cmluZygpKSxpLmlzU3RyaW5nKEkpJiZvLnB1c2goInBhdGg9IitJKSxpLmlzU3RyaW5nKHIpJiZvLnB1c2goImRvbWFpbj0iK3IpLGc9PT0hMCYmby5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9by5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCB0PWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxcXHMqKSgiK0ErIik9KFteO10qKSIpKTtyZXR1cm4gdD9kZWNvZGVVUklDb21wb25lbnQodFszXSk6bnVsbH0scmVtb3ZlKEEpe3RoaXMud3JpdGUoQSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiBCdChBKXtyZXR1cm4vXihbYS16XVthLXpcXGQrXFwtLl0qOik/XFwvXFwvL2kudGVzdChBKX1mdW5jdGlvbiBhdChBLHQpe3JldHVybiB0P0EucmVwbGFjZSgvXFwvP1xcLyQvLCIiKSsiLyIrdC5yZXBsYWNlKC9eXFwvKy8sIiIpOkF9ZnVuY3Rpb24gRUEoQSx0LGUpe2xldCBJPSFCdCh0KTtyZXR1cm4gQSYmKEl8fGU9PSExKT9hdChBLHQpOnR9dmFyIHNlPUE9PkEgaW5zdGFuY2VvZiBwP3suLi5BfTpBO2Z1bmN0aW9uIGIoQSx0KXt0PXR8fHt9O2xldCBlPXt9O2Z1bmN0aW9uIEkoQixzLEMsbCl7cmV0dXJuIGkuaXNQbGFpbk9iamVjdChCKSYmaS5pc1BsYWluT2JqZWN0KHMpP2kubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6bH0sQixzKTppLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZSh7fSxzKTppLmlzQXJyYXkocyk/cy5zbGljZSgpOnN9ZnVuY3Rpb24gcihCLHMsQyxsKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gSSh2b2lkIDAsQixDLGwpfWVsc2UgcmV0dXJuIEkoQixzLEMsbCl9ZnVuY3Rpb24gZyhCLHMpe2lmKCFpLmlzVW5kZWZpbmVkKHMpKXJldHVybiBJKHZvaWQgMCxzKX1mdW5jdGlvbiBvKEIscyl7aWYoaS5pc1VuZGVmaW5lZChzKSl7aWYoIWkuaXNVbmRlZmluZWQoQikpcmV0dXJuIEkodm9pZCAwLEIpfWVsc2UgcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIG4oQixzLEMpe2lmKEMgaW4gdClyZXR1cm4gSShCLHMpO2lmKEMgaW4gQSlyZXR1cm4gSSh2b2lkIDAsQil9bGV0IEU9e3VybDpnLG1ldGhvZDpnLGRhdGE6ZyxiYXNlVVJMOm8sdHJhbnNmb3JtUmVxdWVzdDpvLHRyYW5zZm9ybVJlc3BvbnNlOm8scGFyYW1zU2VyaWFsaXplcjpvLHRpbWVvdXQ6byx0aW1lb3V0TWVzc2FnZTpvLHdpdGhDcmVkZW50aWFsczpvLHdpdGhYU1JGVG9rZW46byxhZGFwdGVyOm8scmVzcG9uc2VUeXBlOm8seHNyZkNvb2tpZU5hbWU6byx4c3JmSGVhZGVyTmFtZTpvLG9uVXBsb2FkUHJvZ3Jlc3M6byxvbkRvd25sb2FkUHJvZ3Jlc3M6byxkZWNvbXByZXNzOm8sbWF4Q29udGVudExlbmd0aDpvLG1heEJvZHlMZW5ndGg6byxiZWZvcmVSZWRpcmVjdDpvLHRyYW5zcG9ydDpvLGh0dHBBZ2VudDpvLGh0dHBzQWdlbnQ6byxjYW5jZWxUb2tlbjpvLHNvY2tldFBhdGg6byxyZXNwb25zZUVuY29kaW5nOm8sdmFsaWRhdGVTdGF0dXM6bixoZWFkZXJzOihCLHMsQyk9PnIoc2UoQiksc2UocyksQywhMCl9O3JldHVybiBpLmZvckVhY2goT2JqZWN0LmtleXMoey4uLkEsLi4udH0pLGZ1bmN0aW9uKHMpe2xldCBDPUVbc118fHIsbD1DKEFbc10sdFtzXSxzKTtpLmlzVW5kZWZpbmVkKGwpJiZDIT09bnx8KGVbc109bCl9KSxlfXZhciBZQT1BPT57bGV0IHQ9Yih7fSxBKSx7ZGF0YTplLHdpdGhYU1JGVG9rZW46SSx4c3JmSGVhZGVyTmFtZTpyLHhzcmZDb29raWVOYW1lOmcsaGVhZGVyczpvLGF1dGg6bn09dDtpZih0LmhlYWRlcnM9bz1wLmZyb20obyksdC51cmw9bkEoRUEodC5iYXNlVVJMLHQudXJsLHQuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplciksbiYmby5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKG4udXNlcm5hbWV8fCIiKSsiOiIrKG4ucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KG4ucGFzc3dvcmQpKToiIikpKSxpLmlzRm9ybURhdGEoZSkpe2lmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52fHxoLmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilvLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZihpLmlzRnVuY3Rpb24oZS5nZXRIZWFkZXJzKSl7bGV0IEU9ZS5nZXRIZWFkZXJzKCksQj1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07T2JqZWN0LmVudHJpZXMoRSkuZm9yRWFjaCgoW3MsQ10pPT57Qi5pbmNsdWRlcyhzLnRvTG93ZXJDYXNlKCkpJiZvLnNldChzLEMpfSl9fWlmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52JiYoSSYmaS5pc0Z1bmN0aW9uKEkpJiYoST1JKHQpKSxJfHxJIT09ITEmJmdlKHQudXJsKSkpe2xldCBFPXImJmcmJmllLnJlYWQoZyk7RSYmby5zZXQocixFKX1yZXR1cm4gdH07dmFyIEFyPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsbmU9QXImJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLEkpe2xldCByPVlBKEEpLGc9ci5kYXRhLG89cC5mcm9tKHIuaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpuLG9uVXBsb2FkUHJvZ3Jlc3M6RSxvbkRvd25sb2FkUHJvZ3Jlc3M6Qn09cixzLEMsbCxhLFE7ZnVuY3Rpb24gZigpe2EmJmEoKSxRJiZRKCksci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShzKSxyLnNpZ25hbCYmci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpfWxldCBjPW5ldyBYTUxIdHRwUmVxdWVzdDtjLm9wZW4oci5tZXRob2QudG9VcHBlckNhc2UoKSxyLnVybCwhMCksYy50aW1lb3V0PXIudGltZW91dDtmdW5jdGlvbiBEKCl7aWYoIWMpcmV0dXJuO2xldCB5PXAuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGMmJmMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLGs9e2RhdGE6IW58fG49PT0idGV4dCJ8fG49PT0ianNvbiI/Yy5yZXNwb25zZVRleHQ6Yy5yZXNwb25zZSxzdGF0dXM6Yy5zdGF0dXMsc3RhdHVzVGV4dDpjLnN0YXR1c1RleHQsaGVhZGVyczp5LGNvbmZpZzpBLHJlcXVlc3Q6Y307UUEoZnVuY3Rpb24oRyl7ZShHKSxmKCl9LGZ1bmN0aW9uKEcpe0koRyksZigpfSxrKSxjPW51bGx9Im9ubG9hZGVuZCJpbiBjP2Mub25sb2FkZW5kPUQ6Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshY3x8Yy5yZWFkeVN0YXRlIT09NHx8Yy5zdGF0dXM9PT0wJiYhKGMucmVzcG9uc2VVUkwmJmMucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KEQpfSxjLm9uYWJvcnQ9ZnVuY3Rpb24oKXtjJiYoSShuZXcgdSgiUmVxdWVzdCBhYm9ydGVkIix1LkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGwpfSxjLm9uZXJyb3I9ZnVuY3Rpb24oUil7bGV0IGs9UiYmUi5tZXNzYWdlP1IubWVzc2FnZToiTmV0d29yayBFcnJvciIsUD1uZXcgdShrLHUuRVJSX05FVFdPUkssQSxjKTtQLmV2ZW50PVJ8fG51bGwsSShQKSxjPW51bGx9LGMub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IFI9ci50aW1lb3V0PyJ0aW1lb3V0IG9mICIrci50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLGs9ci50cmFuc2l0aW9uYWx8fGJBO3IudGltZW91dEVycm9yTWVzc2FnZSYmKFI9ci50aW1lb3V0RXJyb3JNZXNzYWdlKSxJKG5ldyB1KFIsay5jbGFyaWZ5VGltZW91dEVycm9yP3UuRVRJTUVET1VUOnUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbH0sZz09PXZvaWQgMCYmby5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBjJiZpLmZvckVhY2goby50b0pTT04oKSxmdW5jdGlvbihSLGspe2Muc2V0UmVxdWVzdEhlYWRlcihrLFIpfSksaS5pc1VuZGVmaW5lZChyLndpdGhDcmVkZW50aWFscyl8fChjLndpdGhDcmVkZW50aWFscz0hIXIud2l0aENyZWRlbnRpYWxzKSxuJiZuIT09Impzb24iJiYoYy5yZXNwb25zZVR5cGU9ci5yZXNwb25zZVR5cGUpLEImJihbbCxRXT1lQShCLCEwKSxjLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixsKSksRSYmYy51cGxvYWQmJihbQyxhXT1lQShFKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsQyksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsYSkpLChyLmNhbmNlbFRva2VufHxyLnNpZ25hbCkmJihzPXk9PntjJiYoSSgheXx8eS50eXBlP25ldyBIKG51bGwsQSxjKTp5KSxjLmFib3J0KCksYz1udWxsKX0sci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi5zdWJzY3JpYmUocyksci5zaWduYWwmJihyLnNpZ25hbC5hYm9ydGVkP3MoKTpyLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIscykpKTtsZXQgRj1zdChyLnVybCk7aWYoRiYmaC5wcm90b2NvbHMuaW5kZXhPZihGKT09PS0xKXtJKG5ldyB1KCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK0YrIjoiLHUuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59Yy5zZW5kKGd8fG51bGwpfSl9O3ZhciB0cj0oQSx0KT0+e2xldHtsZW5ndGg6ZX09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKHR8fGUpe2xldCBJPW5ldyBBYm9ydENvbnRyb2xsZXIscixnPWZ1bmN0aW9uKEIpe2lmKCFyKXtyPSEwLG4oKTtsZXQgcz1CIGluc3RhbmNlb2YgRXJyb3I/Qjp0aGlzLnJlYXNvbjtJLmFib3J0KHMgaW5zdGFuY2VvZiB1P3M6bmV3IEgocyBpbnN0YW5jZW9mIEVycm9yP3MubWVzc2FnZTpzKSl9fSxvPXQmJnNldFRpbWVvdXQoKCk9PntvPW51bGwsZyhuZXcgdShgdGltZW91dCAke3R9IG9mIG1zIGV4Y2VlZGVkYCx1LkVUSU1FRE9VVCkpfSx0KSxuPSgpPT57QSYmKG8mJmNsZWFyVGltZW91dChvKSxvPW51bGwsQS5mb3JFYWNoKEI9PntCLnVuc3Vic2NyaWJlP0IudW5zdWJzY3JpYmUoZyk6Qi5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsZyl9KSxBPW51bGwpfTtBLmZvckVhY2goQj0+Qi5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsZykpO2xldHtzaWduYWw6RX09STtyZXR1cm4gRS51bnN1YnNjcmliZT0oKT0+aS5hc2FwKG4pLEV9fSxDZT10cjt2YXIgZXI9ZnVuY3Rpb24qKEEsdCl7bGV0IGU9QS5ieXRlTGVuZ3RoO2lmKCF0fHxlPHQpe3lpZWxkIEE7cmV0dXJufWxldCBJPTAscjtmb3IoO0k8ZTspcj1JK3QseWllbGQgQS5zbGljZShJLHIpLEk9cn0sSXI9YXN5bmMgZnVuY3Rpb24qKEEsdCl7Zm9yIGF3YWl0KGxldCBlIG9mIHJyKEEpKXlpZWxkKmVyKGUsdCl9LHJyPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IHQ9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTplLHZhbHVlOkl9PWF3YWl0IHQucmVhZCgpO2lmKGUpYnJlYWs7eWllbGQgSX19ZmluYWxseXthd2FpdCB0LmNhbmNlbCgpfX0sUXQ9KEEsdCxlLEkpPT57bGV0IHI9SXIoQSx0KSxnPTAsbyxuPUU9PntvfHwobz0hMCxJJiZJKEUpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChFKXt0cnl7bGV0e2RvbmU6Qix2YWx1ZTpzfT1hd2FpdCByLm5leHQoKTtpZihCKXtuKCksRS5jbG9zZSgpO3JldHVybn1sZXQgQz1zLmJ5dGVMZW5ndGg7aWYoZSl7bGV0IGw9Zys9QztlKGwpfUUuZW5xdWV1ZShuZXcgVWludDhBcnJheShzKSl9Y2F0Y2goQil7dGhyb3cgbihCKSxCfX0sY2FuY2VsKEUpe3JldHVybiBuKEUpLHIucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBCZT02NCoxMDI0LHtpc0Z1bmN0aW9uOnFBfT1pLGNlPSgoe2ZldGNoOkEsUmVxdWVzdDp0LFJlc3BvbnNlOmV9KT0+KHtmZXRjaDpBLFJlcXVlc3Q6dCxSZXNwb25zZTplfSkpKGkuZ2xvYmFsKSx7UmVhZGFibGVTdHJlYW06YWUsVGV4dEVuY29kZXI6UWV9PWkuZ2xvYmFsLEVlPShBLC4uLnQpPT57dHJ5e3JldHVybiEhQSguLi50KX1jYXRjaHtyZXR1cm4hMX19LG9yPUE9PntsZXR7ZmV0Y2g6dCxSZXF1ZXN0OmUsUmVzcG9uc2U6SX09T2JqZWN0LmFzc2lnbih7fSxjZSxBKSxyPXFBKHQpLGc9cUEoZSksbz1xQShJKTtpZighcilyZXR1cm4hMTtsZXQgbj1yJiZxQShhZSksRT1yJiYodHlwZW9mIFFlPT0iZnVuY3Rpb24iPyhRPT5mPT5RLmVuY29kZShmKSkobmV3IFFlKTphc3luYyBRPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgZShRKS5hcnJheUJ1ZmZlcigpKSksQj1nJiZuJiZFZSgoKT0+e2xldCBRPSExLGY9bmV3IGUoaC5vcmlnaW4se2JvZHk6bmV3IGFlLG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBRPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIFEmJiFmfSkscz1vJiZuJiZFZSgoKT0+aS5pc1JlYWRhYmxlU3RyZWFtKG5ldyBJKCIiKS5ib2R5KSksQz17c3RyZWFtOnMmJihRPT5RLmJvZHkpfTtyJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goUT0+eyFDW1FdJiYoQ1tRXT0oZixjKT0+e2xldCBEPWYmJmZbUV07aWYoRClyZXR1cm4gRC5jYWxsKGYpO3Rocm93IG5ldyB1KGBSZXNwb25zZSB0eXBlIFwnJHtRfVwnIGlzIG5vdCBzdXBwb3J0ZWRgLHUuRVJSX05PVF9TVVBQT1JULGMpfSl9KTtsZXQgbD1hc3luYyBRPT57aWYoUT09bnVsbClyZXR1cm4gMDtpZihpLmlzQmxvYihRKSlyZXR1cm4gUS5zaXplO2lmKGkuaXNTcGVjQ29tcGxpYW50Rm9ybShRKSlyZXR1cm4oYXdhaXQgbmV3IGUoaC5vcmlnaW4se21ldGhvZDoiUE9TVCIsYm9keTpRfSkuYXJyYXlCdWZmZXIoKSkuYnl0ZUxlbmd0aDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KFEpfHxpLmlzQXJyYXlCdWZmZXIoUSkpcmV0dXJuIFEuYnl0ZUxlbmd0aDtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKFEpJiYoUT1RKyIiKSxpLmlzU3RyaW5nKFEpKXJldHVybihhd2FpdCBFKFEpKS5ieXRlTGVuZ3RofSxhPWFzeW5jKFEsZik9PntsZXQgYz1pLnRvRmluaXRlTnVtYmVyKFEuZ2V0Q29udGVudExlbmd0aCgpKTtyZXR1cm4gYz8/bChmKX07cmV0dXJuIGFzeW5jIFE9PntsZXR7dXJsOmYsbWV0aG9kOmMsZGF0YTpELHNpZ25hbDpGLGNhbmNlbFRva2VuOnksdGltZW91dDpSLG9uRG93bmxvYWRQcm9ncmVzczprLG9uVXBsb2FkUHJvZ3Jlc3M6UCxyZXNwb25zZVR5cGU6RyxoZWFkZXJzOldBLHdpdGhDcmVkZW50aWFsczpkQT0ic2FtZS1vcmlnaW4iLGZldGNoT3B0aW9uczptdH09WUEoUSk7Rz1HPyhHKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgREE9Q2UoW0YseSYmeS50b0Fib3J0U2lnbmFsKCldLFIpLHJBPW51bGwsaj1EQSYmREEudW5zdWJzY3JpYmUmJigoKT0+e0RBLnVuc3Vic2NyaWJlKCl9KSx3dDt0cnl7aWYoUCYmQiYmYyE9PSJnZXQiJiZjIT09ImhlYWQiJiYod3Q9YXdhaXQgYShXQSxEKSkhPT0wKXtsZXQgTz1uZXcgZShmLHttZXRob2Q6IlBPU1QiLGJvZHk6RCxkdXBsZXg6ImhhbGYifSksWDtpZihpLmlzRm9ybURhdGEoRCkmJihYPU8uaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmV0Euc2V0Q29udGVudFR5cGUoWCksTy5ib2R5KXtsZXRbWkEsaEFdPW50KHd0LGVBKEN0KFApKSk7RD1RdChPLmJvZHksQmUsWkEsaEEpfX1pLmlzU3RyaW5nKGRBKXx8KGRBPWRBPyJpbmNsdWRlIjoib21pdCIpO2xldCBKPWcmJiJjcmVkZW50aWFscyJpbiBlLnByb3RvdHlwZSxwdD17Li4ubXQsc2lnbmFsOkRBLG1ldGhvZDpjLnRvVXBwZXJDYXNlKCksaGVhZGVyczpXQS5ub3JtYWxpemUoKS50b0pTT04oKSxib2R5OkQsZHVwbGV4OiJoYWxmIixjcmVkZW50aWFsczpKP2RBOnZvaWQgMH07ckE9ZyYmbmV3IGUoZixwdCk7bGV0IEs9YXdhaXQoZz90KHJBLG10KTp0KGYscHQpKSxTdD1zJiYoRz09PSJzdHJlYW0ifHxHPT09InJlc3BvbnNlIik7aWYocyYmKGt8fFN0JiZqKSl7bGV0IE89e307WyJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyJdLmZvckVhY2goRnQ9PntPW0Z0XT1LW0Z0XX0pO2xldCBYPWkudG9GaW5pdGVOdW1iZXIoSy5oZWFkZXJzLmdldCgiY29udGVudC1sZW5ndGgiKSksW1pBLGhBXT1rJiZudChYLGVBKEN0KGspLCEwKSl8fFtdO0s9bmV3IEkoUXQoSy5ib2R5LEJlLFpBLCgpPT57aEEmJmhBKCksaiYmaigpfSksTyl9Rz1HfHwidGV4dCI7bGV0IEhlPWF3YWl0IENbaS5maW5kS2V5KEMsRyl8fCJ0ZXh0Il0oSyxRKTtyZXR1cm4hU3QmJmomJmooKSxhd2FpdCBuZXcgUHJvbWlzZSgoTyxYKT0+e1FBKE8sWCx7ZGF0YTpIZSxoZWFkZXJzOnAuZnJvbShLLmhlYWRlcnMpLHN0YXR1czpLLnN0YXR1cyxzdGF0dXNUZXh0Oksuc3RhdHVzVGV4dCxjb25maWc6USxyZXF1ZXN0OnJBfSl9KX1jYXRjaChKKXt0aHJvdyBqJiZqKCksSiYmSi5uYW1lPT09IlR5cGVFcnJvciImJi9Mb2FkIGZhaWxlZHxmZXRjaC9pLnRlc3QoSi5tZXNzYWdlKT9PYmplY3QuYXNzaWduKG5ldyB1KCJOZXR3b3JrIEVycm9yIix1LkVSUl9ORVRXT1JLLFEsckEpLHtjYXVzZTpKLmNhdXNlfHxKfSk6dS5mcm9tKEosSiYmSi5jb2RlLFEsckEpfX19LGdyPW5ldyBNYXAsRXQ9QT0+e2xldCB0PWkubWVyZ2UuY2FsbCh7c2tpcFVuZGVmaW5lZDohMH0sY2UsQT9BLmVudjpudWxsKSx7ZmV0Y2g6ZSxSZXF1ZXN0OkksUmVzcG9uc2U6cn09dCxnPVtJLHIsZV0sbz1nLmxlbmd0aCxuPW8sRSxCLHM9Z3I7Zm9yKDtuLS07KUU9Z1tuXSxCPXMuZ2V0KEUpLEI9PT12b2lkIDAmJnMuc2V0KEUsQj1uP25ldyBNYXA6b3IodCkpLHM9QjtyZXR1cm4gQn0sR2c9RXQoKTt2YXIgY3Q9e2h0dHA6a0EseGhyOm5lLGZldGNoOntnZXQ6RXR9fTtpLmZvckVhY2goY3QsKEEsdCk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHt2YWx1ZTp0fSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse3ZhbHVlOnR9KX19KTt2YXIgZmU9QT0+YC0gJHtBfWAsc3I9QT0+aS5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExLE1BPXtnZXRBZGFwdGVyOihBLHQpPT57QT1pLmlzQXJyYXkoQSk/QTpbQV07bGV0e2xlbmd0aDplfT1BLEkscixnPXt9O2ZvcihsZXQgbz0wO288ZTtvKyspe0k9QVtvXTtsZXQgbjtpZihyPUksIXNyKEkpJiYocj1jdFsobj1TdHJpbmcoSSkpLnRvTG93ZXJDYXNlKCldLHI9PT12b2lkIDApKXRocm93IG5ldyB1KGBVbmtub3duIGFkYXB0ZXIgXCcke259XCdgKTtpZihyJiYoaS5pc0Z1bmN0aW9uKHIpfHwocj1yLmdldCh0KSkpKWJyZWFrO2dbbnx8IiUyMyIrb109cn1pZighcil7bGV0IG89T2JqZWN0LmVudHJpZXMoZykubWFwKChbRSxCXSk9PmBhZGFwdGVyICR7RX0gYCsoQj09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLG49ZT9vLmxlbmd0aD4xP2BzaW5jZSA6JTBBYCtvLm1hcChmZSkuam9pbihgJTBBYCk6IiAiK2ZlKG9bMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IHUoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIituLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gcn0sYWRhcHRlcnM6Y3R9O2Z1bmN0aW9uIGZ0KEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBIKG51bGwsQSl9ZnVuY3Rpb24gS0EoQSl7cmV0dXJuIGZ0KEEpLEEuaGVhZGVycz1wLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9QkEuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLE1BLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxBQS5hZGFwdGVyLEEpKEEpLnRoZW4oZnVuY3Rpb24oSSl7cmV0dXJuIGZ0KEEpLEkuZGF0YT1CQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJKSxJLmhlYWRlcnM9cC5mcm9tKEkuaGVhZGVycyksSX0sZnVuY3Rpb24oSSl7cmV0dXJuIGFBKEkpfHwoZnQoQSksSSYmSS5yZXNwb25zZSYmKEkucmVzcG9uc2UuZGF0YT1CQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJLnJlc3BvbnNlKSxJLnJlc3BvbnNlLmhlYWRlcnM9cC5mcm9tKEkucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChJKX0pfXZhciBPQT0iMS4xMi4wIjt2YXIgVEE9e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChBLHQpPT57VEFbQV09ZnVuY3Rpb24oSSl7cmV0dXJuIHR5cGVvZiBJPT09QXx8ImEiKyh0PDE/Im4gIjoiICIpK0F9fSk7dmFyIGxlPXt9O1RBLnRyYW5zaXRpb25hbD1mdW5jdGlvbih0LGUsSSl7ZnVuY3Rpb24gcihnLG8pe3JldHVybiJbQXhpb3MgdiIrT0ErIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiBcJyIrZysiXCciK28rKEk/Ii4gIitJOiIiKX1yZXR1cm4oZyxvLG4pPT57aWYodD09PSExKXRocm93IG5ldyB1KHIobywiIGhhcyBiZWVuIHJlbW92ZWQiKyhlPyIgaW4gIitlOiIiKSksdS5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIGUmJiFsZVtvXSYmKGxlW29dPSEwLGNvbnNvbGUud2FybihyKG8sIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK2UrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksdD90KGcsbyxuKTohMH19O1RBLnNwZWxsaW5nPWZ1bmN0aW9uKHQpe3JldHVybihlLEkpPT4oY29uc29sZS53YXJuKGAke0l9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7dH1gKSwhMCl9O2Z1bmN0aW9uIG5yKEEsdCxlKXtpZih0eXBlb2YgQSE9Im9iamVjdCIpdGhyb3cgbmV3IHUoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCBJPU9iamVjdC5rZXlzKEEpLHI9SS5sZW5ndGg7Zm9yKDtyLS0gPjA7KXtsZXQgZz1JW3JdLG89dFtnXTtpZihvKXtsZXQgbj1BW2ddLEU9bj09PXZvaWQgMHx8byhuLGcsQSk7aWYoRSE9PSEwKXRocm93IG5ldyB1KCJvcHRpb24gIitnKyIgbXVzdCBiZSAiK0UsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYoZSE9PSEwKXRocm93IG5ldyB1KCJVbmtub3duIG9wdGlvbiAiK2csdS5FUlJfQkFEX09QVElPTil9fXZhciBjQT17YXNzZXJ0T3B0aW9uczpucix2YWxpZGF0b3JzOlRBfTt2YXIgWT1jQS52YWxpZGF0b3JzLElBPWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuZGVmYXVsdHM9dHx8e30sdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IHR0LHJlc3BvbnNlOm5ldyB0dH19YXN5bmMgcmVxdWVzdCh0LGUpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdCh0LGUpfWNhdGNoKEkpe2lmKEkgaW5zdGFuY2VvZiBFcnJvcil7bGV0IHI9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uocik6cj1uZXcgRXJyb3I7bGV0IGc9ci5zdGFjaz9yLnN0YWNrLnJlcGxhY2UoL14uK1xcbi8sIiIpOiIiO3RyeXtJLnN0YWNrP2cmJiFTdHJpbmcoSS5zdGFjaykuZW5kc1dpdGgoZy5yZXBsYWNlKC9eLitcXG4uK1xcbi8sIiIpKSYmKEkuc3RhY2srPWAlMEFgK2cpOkkuc3RhY2s9Z31jYXRjaHt9fXRocm93IEl9fV9yZXF1ZXN0KHQsZSl7dHlwZW9mIHQ9PSJzdHJpbmciPyhlPWV8fHt9LGUudXJsPXQpOmU9dHx8e30sZT1iKHRoaXMuZGVmYXVsdHMsZSk7bGV0e3RyYW5zaXRpb25hbDpJLHBhcmFtc1NlcmlhbGl6ZXI6cixoZWFkZXJzOmd9PWU7SSE9PXZvaWQgMCYmY0EuYXNzZXJ0T3B0aW9ucyhJLHtzaWxlbnRKU09OUGFyc2luZzpZLnRyYW5zaXRpb25hbChZLmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpZLnRyYW5zaXRpb25hbChZLmJvb2xlYW4pfSwhMSksciE9bnVsbCYmKGkuaXNGdW5jdGlvbihyKT9lLnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpyfTpjQS5hc3NlcnRPcHRpb25zKHIse2VuY29kZTpZLmZ1bmN0aW9uLHNlcmlhbGl6ZTpZLmZ1bmN0aW9ufSwhMCkpLGUuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDB8fCh0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwP2UuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsczplLmFsbG93QWJzb2x1dGVVcmxzPSEwKSxjQS5hc3NlcnRPcHRpb25zKGUse2Jhc2VVcmw6WS5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46WS5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksZS5tZXRob2Q9KGUubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IG89ZyYmaS5tZXJnZShnLmNvbW1vbixnW2UubWV0aG9kXSk7ZyYmaS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLFE9PntkZWxldGUgZ1tRXX0pLGUuaGVhZGVycz1wLmNvbmNhdChvLGcpO2xldCBuPVtdLEU9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGYpe3R5cGVvZiBmLnJ1bldoZW49PSJmdW5jdGlvbiImJmYucnVuV2hlbihlKT09PSExfHwoRT1FJiZmLnN5bmNocm9ub3VzLG4udW5zaGlmdChmLmZ1bGZpbGxlZCxmLnJlamVjdGVkKSl9KTtsZXQgQj1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGYpe0IucHVzaChmLmZ1bGZpbGxlZCxmLnJlamVjdGVkKX0pO2xldCBzLEM9MCxsO2lmKCFFKXtsZXQgUT1bS0EuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihRLnVuc2hpZnQoLi4ubiksUS5wdXNoKC4uLkIpLGw9US5sZW5ndGgscz1Qcm9taXNlLnJlc29sdmUoZSk7QzxsOylzPXMudGhlbihRW0MrK10sUVtDKytdKTtyZXR1cm4gc31sPW4ubGVuZ3RoO2xldCBhPWU7Zm9yKEM9MDtDPGw7KXtsZXQgUT1uW0MrK10sZj1uW0MrK107dHJ5e2E9UShhKX1jYXRjaChjKXtmLmNhbGwodGhpcyxjKTticmVha319dHJ5e3M9S0EuY2FsbCh0aGlzLGEpfWNhdGNoKFEpe3JldHVybiBQcm9taXNlLnJlamVjdChRKX1mb3IoQz0wLGw9Qi5sZW5ndGg7QzxsOylzPXMudGhlbihCW0MrK10sQltDKytdKTtyZXR1cm4gc31nZXRVcmkodCl7dD1iKHRoaXMuZGVmYXVsdHMsdCk7bGV0IGU9RUEodC5iYXNlVVJMLHQudXJsLHQuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiBuQShlLHQucGFyYW1zLHQucGFyYW1zU2VyaWFsaXplcil9fTtpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKHQpe0lBLnByb3RvdHlwZVt0XT1mdW5jdGlvbihlLEkpe3JldHVybiB0aGlzLnJlcXVlc3QoYihJfHx7fSx7bWV0aG9kOnQsdXJsOmUsZGF0YTooSXx8e30pLmRhdGF9KSl9fSk7aS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShJKXtyZXR1cm4gZnVuY3Rpb24oZyxvLG4pe3JldHVybiB0aGlzLnJlcXVlc3QoYihufHx7fSx7bWV0aG9kOnQsaGVhZGVyczpJP3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDpnLGRhdGE6b30pKX19SUEucHJvdG90eXBlW3RdPWUoKSxJQS5wcm90b3R5cGVbdCsiRm9ybSJdPWUoITApfSk7dmFyIGZBPUlBO3ZhciBsdD1jbGFzcyBBe2NvbnN0cnVjdG9yKHQpe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtsZXQgZTt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oZyl7ZT1nfSk7bGV0IEk9dGhpczt0aGlzLnByb21pc2UudGhlbihyPT57aWYoIUkuX2xpc3RlbmVycylyZXR1cm47bGV0IGc9SS5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO2ctLSA+MDspSS5fbGlzdGVuZXJzW2ddKHIpO0kuX2xpc3RlbmVycz1udWxsfSksdGhpcy5wcm9taXNlLnRoZW49cj0+e2xldCBnLG89bmV3IFByb21pc2Uobj0+e0kuc3Vic2NyaWJlKG4pLGc9bn0pLnRoZW4ocik7cmV0dXJuIG8uY2FuY2VsPWZ1bmN0aW9uKCl7SS51bnN1YnNjcmliZShnKX0sb30sdChmdW5jdGlvbihnLG8sbil7SS5yZWFzb258fChJLnJlYXNvbj1uZXcgSChnLG8sbiksZShJLnJlYXNvbikpfSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZSh0KXtpZih0aGlzLnJlYXNvbil7dCh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaCh0KTp0aGlzLl9saXN0ZW5lcnM9W3RdfXVuc3Vic2NyaWJlKHQpe2lmKCF0aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBlPXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKHQpO2UhPT0tMSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZShlLDEpfXRvQWJvcnRTaWduYWwoKXtsZXQgdD1uZXcgQWJvcnRDb250cm9sbGVyLGU9ST0+e3QuYWJvcnQoSSl9O3JldHVybiB0aGlzLnN1YnNjcmliZShlKSx0LnNpZ25hbC51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZShlKSx0LnNpZ25hbH1zdGF0aWMgc291cmNlKCl7bGV0IHQ7cmV0dXJue3Rva2VuOm5ldyBBKGZ1bmN0aW9uKHIpe3Q9cn0pLGNhbmNlbDp0fX19LHVlPWx0O2Z1bmN0aW9uIHV0KEEpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gQS5hcHBseShudWxsLGUpfX1mdW5jdGlvbiBkdChBKXtyZXR1cm4gaS5pc09iamVjdChBKSYmQS5pc0F4aW9zRXJyb3I9PT0hMH12YXIgRHQ9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKER0KS5mb3JFYWNoKChbQSx0XSk9PntEdFt0XT1BfSk7dmFyIGRlPUR0O2Z1bmN0aW9uIERlKEEpe2xldCB0PW5ldyBmQShBKSxlPW9BKGZBLnByb3RvdHlwZS5yZXF1ZXN0LHQpO3JldHVybiBpLmV4dGVuZChlLGZBLnByb3RvdHlwZSx0LHthbGxPd25LZXlzOiEwfSksaS5leHRlbmQoZSx0LG51bGwse2FsbE93bktleXM6ITB9KSxlLmNyZWF0ZT1mdW5jdGlvbihyKXtyZXR1cm4gRGUoYihBLHIpKX0sZX12YXIgbT1EZShBQSk7bS5BeGlvcz1mQTttLkNhbmNlbGVkRXJyb3I9SDttLkNhbmNlbFRva2VuPXVlO20uaXNDYW5jZWw9YUE7bS5WRVJTSU9OPU9BO20udG9Gb3JtRGF0YT1UO20uQXhpb3NFcnJvcj11O20uQ2FuY2VsPW0uQ2FuY2VsZWRFcnJvcjttLmFsbD1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5hbGwodCl9O20uc3ByZWFkPXV0O20uaXNBeGlvc0Vycm9yPWR0O20ubWVyZ2VDb25maWc9YjttLkF4aW9zSGVhZGVycz1wO20uZm9ybVRvSlNPTj1BPT5KQShpLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO20uZ2V0QWRhcHRlcj1NQS5nZXRBZGFwdGVyO20uSHR0cFN0YXR1c0NvZGU9ZGU7bS5kZWZhdWx0PW07dmFyIHhBPW07dmFye0F4aW9zOlJpLEF4aW9zRXJyb3I6TmksQ2FuY2VsZWRFcnJvcjpVaSxpc0NhbmNlbDpHaSxDYW5jZWxUb2tlbjpraSxWRVJTSU9OOkxpLGFsbDpiaSxDYW5jZWw6SmksaXNBeGlvc0Vycm9yOkhpLHNwcmVhZDpZaSx0b0Zvcm1EYXRhOnFpLEF4aW9zSGVhZGVyczpNaSxIdHRwU3RhdHVzQ29kZTpLaSxmb3JtVG9KU09OOk9pLGdldEFkYXB0ZXI6VGksbWVyZ2VDb25maWc6eGl9PXhBO3ZhciBsQSxNLHl0LGh0PXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7eXQ9bmV3IFVpbnQ4QXJyYXkoTS5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LFBBPWNsYXNze2luaXQoKXtyZXR1cm4gbEF8fCh0eXBlb2YgZmV0Y2g8InUiP2xBPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIraGUpLnRoZW4odD0+dC5hcnJheUJ1ZmZlcigpKS50aGVuKHQ9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKHQsaHQpKS50aGVuKHRoaXMuX2luaXQpOmxBPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKGhlLCJiYXNlNjQiKSxodCkudGhlbih0aGlzLl9pbml0KSxsQSl9X2luaXQodCl7TT10Lmluc3RhbmNlLGh0LmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZSh0LGU9MCl7aWYoIU0pdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IEk9dC5ieXRlTGVuZ3RoLHI9TS5leHBvcnRzLm1hbGxvYyhJKTt5dC5zZXQodCxyKSxlPWV8fE51bWJlcihNLmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShyLEkpKTtsZXQgZz1NLmV4cG9ydHMubWFsbG9jKGUpLG89TS5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhnLGUscixJKSxuPXl0LnNsaWNlKGcsZytvKTtyZXR1cm4gTS5leHBvcnRzLmZyZWUociksTS5leHBvcnRzLmZyZWUoZyksbn19LGhlPSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIHllPW5ldyBQQSxtZT0hMTthc3luYyBmdW5jdGlvbiBDcihBLHQsZSl7bGV0IEk9bnVsbDt0eXBlb2YgQSE9InN0cmluZyI/ST1BLmhyZWY6QS5zdGFydHNXaXRoKCJodHRwIik/ST1BOkk9YCR7dH0vJHtBfWAsSS5lbmRzV2l0aCgiLmpzIikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtMykpLEkuZW5kc1dpdGgoIi53YXNtIikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtNSkpLEkuZW5kc1dpdGgoIi53YXNtLnpzdCIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTkpKTtsZXQgcj1gJHtJfS53YXNtYCxnPWF3YWl0IHhBLmdldChgJHtyfS56c3RgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIixwYXJhbXM6ZX0pO21lfHwoYXdhaXQgeWUuaW5pdCgpLG1lPSEwKTtsZXQgbj15ZS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoZy5kYXRhKSkuYnVmZmVyO3JldHVybihhd2FpdCBpbXBvcnQoYCR7SX0uanNgKSkuZGVmYXVsdCh7d2FzbUJpbmFyeTpufSl9dmFyIHdlPUNyO3ZhciBqQT1uZXcgTWFwO2FzeW5jIGZ1bmN0aW9uIEJyKEEsdCxlKXtsZXQgST1BLHI9QSxnPW51bGw7cmV0dXJuIHR5cGVvZiBBIT0ic3RyaW5nIiYmKEk9bmV3IFVSTChBLmhyZWYpLHI9SS5ocmVmKSxqQS5oYXMocik/Zz1hd2FpdCBqQS5nZXQocik6KGpBLnNldChyLHdlKEksdCxlKSksZz1hd2FpdCBqQS5nZXQocikpLGd9dmFyIHBlPUJyO3ZhciBhcj17VGV4dEZpbGU6IlRleHRGaWxlIixCaW5hcnlGaWxlOiJCaW5hcnlGaWxlIixUZXh0U3RyZWFtOiJUZXh0U3RyZWFtIixCaW5hcnlTdHJlYW06IkJpbmFyeVN0cmVhbSIsSW1hZ2U6IkltYWdlIixQb2ludFNldDoiUG9pbnRTZXQiLE1lc2g6Ik1lc2giLFBvbHlEYXRhOiJQb2x5RGF0YSIsVHJhbnNmb3JtTGlzdDoiVHJhbnNmb3JtTGlzdCIsSnNvbkNvbXBhdGlibGU6Ikpzb25Db21wYXRpYmxlIn0sZD1hcjt2YXIgUXI9e0ludDg6ImludDgiLFVJbnQ4OiJ1aW50OCIsSW50MTY6ImludDE2IixVSW50MTY6InVpbnQxNiIsSW50MzI6ImludDMyIixVSW50MzI6InVpbnQzMiIsSW50NjQ6ImludDY0IixVSW50NjQ6InVpbnQ2NCIsU2l6ZVZhbHVlVHlwZToidWludDY0IixJZGVudGlmaWVyVHlwZToidWludDY0IixJbmRleFZhbHVlVHlwZToiaW50NjQiLE9mZnNldFZhbHVlVHlwZToiaW50NjQifSxVPVFyO3ZhciBFcj17RmxvYXQzMjoiZmxvYXQzMiIsRmxvYXQ2NDoiZmxvYXQ2NCIsU3BhY2VQcmVjaXNpb25UeXBlOiJmbG9hdDY0In0sVj1FcjtmdW5jdGlvbiBjcihBLHQpe2xldCBlPW51bGw7c3dpdGNoKEEpe2Nhc2UgVS5VSW50ODp7ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIFUuSW50ODp7ZT1uZXcgSW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50MTY6e2U9bmV3IFVpbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQxNjp7ZT1uZXcgSW50MTZBcnJheSh0KTticmVha31jYXNlIFUuVUludDMyOntlPW5ldyBVaW50MzJBcnJheSh0KTticmVha31jYXNlIFUuSW50MzI6e2U9bmV3IEludDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnVWludDY0QXJyYXk9PSJmdW5jdGlvbiI/ZT1uZXcgQmlnVWludDY0QXJyYXkodCk6ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIFUuSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ0ludDY0QXJyYXk9PSJmdW5jdGlvbiI/ZT1uZXcgQmlnSW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVi5GbG9hdDMyOntlPW5ldyBGbG9hdDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBWLkZsb2F0NjQ6e2U9bmV3IEZsb2F0NjRBcnJheSh0KTticmVha31jYXNlIm51bGwiOntlPW51bGw7YnJlYWt9Y2FzZSBudWxsOntlPW51bGw7YnJlYWt9ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlR5cGUgaXMgbm90IHN1cHBvcnRlZCBhcyBhIFR5cGVkQXJyYXkiKX1yZXR1cm4gZX12YXIgcT1jcjt2YXIgUmU9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI9PSJmdW5jdGlvbiIsU2U9bmV3IFRleHRFbmNvZGVyLEZlPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKTtmdW5jdGlvbiBmcihBLHQpe2xldCBlPXtmbGFnczoiciIsZW5jb2Rpbmc6ImJpbmFyeSJ9LEk9QS5mc19vcGVuKHQsZS5mbGFncyksZz1BLmZzX3N0YXQodCkuc2l6ZSxvPW51bGw7UmU/bz1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoZyk6bz1uZXcgQXJyYXlCdWZmZXIoZyk7bGV0IG49bmV3IFVpbnQ4QXJyYXkobyk7cmV0dXJuIEEuZnNfcmVhZChJLG4sMCxnLDApLEEuZnNfY2xvc2UoSSksbn1mdW5jdGlvbiBOZShBLHQsZSl7bGV0IEk9bnVsbDtSZT9JPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihlKTpJPW5ldyBBcnJheUJ1ZmZlcihlKTtsZXQgcj1uZXcgVWludDhBcnJheShJKSxnPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcix0LGUpO3JldHVybiByLnNldChnKSxyfWZ1bmN0aW9uIHcoQSx0LGUsSSl7bGV0IHI9MDtyZXR1cm4gdCE9PW51bGwmJihyPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2FycmF5X2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsSSx0LmJ1ZmZlci5ieXRlTGVuZ3RoXSksQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KHQuYnVmZmVyKSxyKSkscn1mdW5jdGlvbiB4KEEsdCxlKXtsZXQgST1KU09OLnN0cmluZ2lmeSh0KSxyPUEubGVuZ3RoQnl0ZXNVVEY4KEkpKzEsZz1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUscl0pO0Euc3RyaW5nVG9VVEY4KEksZyxyKX1mdW5jdGlvbiBTKEEsdCxlLEkpe2xldCByPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsZV0pLGc9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksbz1OZShBLHIsZyk7cmV0dXJuIHEoSSxvLmJ1ZmZlcil9ZnVuY3Rpb24gdUEoQSx0KXtsZXQgZT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLHRdKSxJPUEuVVRGOFRvU3RyaW5nKGUpO3JldHVybiBKU09OLnBhcnNlKEkpfWZ1bmN0aW9uIGxyKEEsdCxlLEkpe0khPW51bGwmJkkubGVuZ3RoPjAmJkkuZm9yRWFjaChmdW5jdGlvbihCLHMpe3N3aXRjaChCLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgQz1TZS5lbmNvZGUoQi5kYXRhLmRhdGEpLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLkpzb25Db21wYXRpYmxlOntsZXQgQz1TZS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoQi5kYXRhKSksbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuQmluYXJ5U3RyZWFtOntsZXQgQz1CLmRhdGEuZGF0YSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgZC5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkltYWdlOntsZXQgQz1CLmRhdGEsbD13KEEsQy5kYXRhLHMsMCksYT13KEEsQy5kaXJlY3Rpb24scywxKSxRPXR5cGVvZiBDLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKEMubWV0YWRhdGEuZW50cmllcygpKTpbXSxmPXtpbWFnZVR5cGU6Qy5pbWFnZVR5cGUsbmFtZTpDLm5hbWUsb3JpZ2luOkMub3JpZ2luLHNwYWNpbmc6Qy5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YCxzaXplOkMuc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG1ldGFkYXRhOlF9O3goQSxmLHMpO2JyZWFrfWNhc2UgZC5NZXNoOntsZXQgQz1CLmRhdGEsbD13KEEsQy5wb2ludHMscywwKSxhPXcoQSxDLmNlbGxzLHMsMSksUT13KEEsQy5wb2ludERhdGEscywyKSxmPXcoQSxDLmNlbGxEYXRhLHMsMyksYz17bWVzaFR5cGU6Qy5tZXNoVHlwZSxuYW1lOkMubmFtZSxudW1iZXJPZlBvaW50czpDLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZkNlbGxzOkMubnVtYmVyT2ZDZWxscyxjZWxsczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YCxjZWxsQnVmZmVyU2l6ZTpDLmNlbGxCdWZmZXJTaXplLG51bWJlck9mUG9pbnRQaXhlbHM6Qy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxudW1iZXJPZkNlbGxQaXhlbHM6Qy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O3goQSxjLHMpO2JyZWFrfWNhc2UgZC5Qb2ludFNldDp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMucG9pbnRzLHMsMCksYT13KEEsQy5wb2ludERhdGEscywxKSxRPXtwb2ludFNldFR5cGU6Qy5wb2ludFNldFR5cGUsbmFtZTpDLm5hbWUsbnVtYmVyT2ZQb2ludHM6Qy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpDLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gfTt4KEEsUSxzKTticmVha31jYXNlIGQuVHJhbnNmb3JtTGlzdDp7bGV0IEM9Qi5kYXRhLGw9W10sYT0wO0MuZm9yRWFjaChRPT57bGV0IGY9IiIsYz0iIjtRLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoZj1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3coQSxRLmZpeGVkUGFyYW1ldGVycyxzLGEpfWAsYSs9MSxjPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEucGFyYW1ldGVycyxzLGEpfWAsYSs9MSk7bGV0IEQ9e3RyYW5zZm9ybVR5cGU6US50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOlEubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOlEubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6US5uYW1lLGlucHV0U3BhY2VOYW1lOlEuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOlEub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6YyxmaXhlZFBhcmFtZXRlcnM6Zn07bC5wdXNoKEQpfSkseChBLGwscyk7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgQz1CLmRhdGEsbD13KEEsQy5wb2ludHMscywwKSxhPXcoQSxDLnZlcnRpY2VzLHMsMSksUT13KEEsQy5saW5lcyxzLDIpLGY9dyhBLEMucG9seWdvbnMscywzKSxjPXcoQSxDLnRyaWFuZ2xlU3RyaXBzLHMsNCksRD13KEEsQy5wb2ludERhdGEscyw1KSxGPXcoQSxDLnBvaW50RGF0YSxzLDYpLHk9e3BvbHlEYXRhVHlwZTpDLnBvbHlEYXRhVHlwZSxuYW1lOkMubmFtZSxudW1iZXJPZlBvaW50czpDLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCx2ZXJ0aWNlc0J1ZmZlclNpemU6Qy52ZXJ0aWNlc0J1ZmZlclNpemUsdmVydGljZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWAsbGluZXNCdWZmZXJTaXplOkMubGluZXNCdWZmZXJTaXplLGxpbmVzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLHBvbHlnb25zQnVmZmVyU2l6ZTpDLnBvbHlnb25zQnVmZmVyU2l6ZSxwb2x5Z29uczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCx0cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU6Qy50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemUsdHJpYW5nbGVTdHJpcHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpDLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7RH1gLG51bWJlck9mQ2VsbFBpeGVsczpDLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0Z9YH07eChBLHkscyk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IHI9QS5zdGFja1NhdmUoKSxnPTA7dHJ5e2c9QS5jYWxsTWFpbih0LnNsaWNlKCkpfWNhdGNoKEIpe3Rocm93IHR5cGVvZiBCPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKEIpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLEJ9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShyKX1sZXQgbz1BLmdldE1vZHVsZVN0ZG91dCgpLG49QS5nZXRNb2R1bGVTdGRlcnIoKSxFPVtdO3JldHVybiBlIT1udWxsJiZlLmxlbmd0aD4wJiZnPT09MCYmZS5mb3JFYWNoKGZ1bmN0aW9uKEIscyl7bGV0IEM9bnVsbDtzd2l0Y2goQi50eXBlKXtjYXNlIGQuVGV4dFN0cmVhbTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixhLFEpO0M9e2RhdGE6RmUuZGVjb2RlKGYpfTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsYSxRKTtDPUpTT04ucGFyc2UoRmUuZGVjb2RlKGYpKTticmVha31jYXNlIGQuQmluYXJ5U3RyZWFtOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pO0M9e2RhdGE6TmUoQSxhLFEpfTticmVha31jYXNlIGQuVGV4dEZpbGU6e0M9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKEIuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e0M9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpmcihBLEIuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSBkLkltYWdlOntsZXQgYT11QShBLHMpO2EuZGF0YT1TKEEscywwLGEuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLGEuZGlyZWN0aW9uPVMoQSxzLDEsVi5GbG9hdDY0KSxhLm1ldGFkYXRhPW5ldyBNYXAoYS5tZXRhZGF0YSksQz1hO2JyZWFrfWNhc2UgZC5NZXNoOntsZXQgYT11QShBLHMpO2EubnVtYmVyT2ZQb2ludHM+MD9hLnBvaW50cz1TKEEscywwLGEubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTphLnBvaW50cz1xKGEubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZkNlbGxzPjA/YS5jZWxscz1TKEEscywxLGEubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOmEuY2VsbHM9cShhLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsMixhLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTphLnBvaW50RGF0YT1xKGEubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mQ2VsbFBpeGVscz4wP2EuY2VsbERhdGE9UyhBLHMsMyxhLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOmEuY2VsbERhdGE9cShhLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgYT11QShBLHMpO2EubnVtYmVyT2ZQb2ludHM+MD9hLnBvaW50cz1TKEEscywwLGEucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6YS5wb2ludHM9cShhLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscywxLGEucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTphLnBvaW50RGF0YT1xKGEucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgYT11QShBLHMpLFE9MDthLmZvckVhY2goKGYsYyk9PntmLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoZi5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYoYVtjXS5maXhlZFBhcmFtZXRlcnM9UyhBLHMsUSxWLkZsb2F0NjQpKSxRKz0xLGYubnVtYmVyT2ZQYXJhbWV0ZXJzPjAmJihhW2NdLnBhcmFtZXRlcnM9UyhBLHMsUSxmLnRyYW5zZm9ybVR5cGUucGFyYW1ldGVyc1ZhbHVlVHlwZSkpLFErPTEpfSksQz1hO2JyZWFrfWNhc2UgZC5Qb2x5RGF0YTp7bGV0IGE9dUEoQSxzKTthLm51bWJlck9mUG9pbnRzPjA/YS5wb2ludHM9UyhBLHMsMCxWLkZsb2F0MzIpOmEucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXksYS52ZXJ0aWNlc0J1ZmZlclNpemU+MD9hLnZlcnRpY2VzPVMoQSxzLDEsVS5VSW50MzIpOmEudmVydGljZXM9bmV3IFVpbnQzMkFycmF5LGEubGluZXNCdWZmZXJTaXplPjA/YS5saW5lcz1TKEEscywyLFUuVUludDMyKTphLmxpbmVzPW5ldyBVaW50MzJBcnJheSxhLnBvbHlnb25zQnVmZmVyU2l6ZT4wP2EucG9seWdvbnM9UyhBLHMsMyxVLlVJbnQzMik6YS5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXksYS50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9hLnRyaWFuZ2xlU3RyaXBzPVMoQSxzLDQsVS5VSW50MzIpOmEudHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDUsYS5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mQ2VsbFBpeGVscz4wP2EuY2VsbERhdGE9UyhBLHMsNixhLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTphLmNlbGxEYXRhPXEoYS5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBsPXt0eXBlOkIudHlwZSxkYXRhOkN9O0UucHVzaChsKX0pLHtyZXR1cm5WYWx1ZTpnLHN0ZG91dDpvLHN0ZGVycjpuLG91dHB1dHM6RX19dmFyIFVlPWxyO3ZhciB1cj10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gZHIoQSx0KXtpZihBPT1udWxsKXJldHVybltdO2xldCBlPVtdO2ZvcihsZXQgST0wO0k8QS5sZW5ndGg7SSsrKXtsZXQgcj1EcihBW0ldLHQpO3IhPT1udWxsJiZlLnB1c2gocil9cmV0dXJuIGV9ZnVuY3Rpb24gRHIoQSx0KXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCBlPW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP2U9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYoZT1BKSx1ciYmZSBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6dD9lOmUuc2xpY2UoMCl9dmFyIEdlPWRyO2Z1bmN0aW9uIGhyKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciBrZT1ocjtmdW5jdGlvbiB5cihBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgTGU9eXI7ZnVuY3Rpb24gbXIoQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIGJlPW1yO2FzeW5jIGZ1bmN0aW9uIHdyKEEsdCxlLEkpe2xldCByPVVlKEEsdCxlLEkpLGc9W107cmV0dXJuIHIub3V0cHV0cy5mb3JFYWNoKGZ1bmN0aW9uKG8pe2lmKG8udHlwZT09PWQuQmluYXJ5U3RyZWFtfHxvLnR5cGU9PT1kLkJpbmFyeUZpbGUpe2xldCBuPW8uZGF0YTtnLnB1c2gobil9ZWxzZSBpZihvLnR5cGU9PT1kLkltYWdlKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKC4uLmtlKG4pKX1lbHNlIGlmKG8udHlwZT09PWQuTWVzaCl7bGV0IG49by5kYXRhO2cucHVzaCguLi5MZShuKSl9ZWxzZSBpZihvLnR5cGU9PT1kLlBvbHlEYXRhKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKC4uLmJlKG4pKX19KSxfQShyLEdlKGcsITApKX12YXIgSmU9d3I7dmFyIHByPXtydW5QaXBlbGluZTphc3luYyBmdW5jdGlvbihBLHQsZSxJLHIsZyl7bGV0IG89YXdhaXQgcGUoQSx0LGcpO3JldHVybiBhd2FpdCBKZShvLGUsSSxyKX19O0ZBKHByKTslMEEvKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOiUwQSUwQWNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6JTBBICAoKiolMEEgICAqIEBsaWNlbnNlJTBBICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDJTBBICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCUwQSAgICopJTBBKi8lMEEnO25JKEJJKTtleHBvcnR7cWUgYXMgY29tcGFyZURvdWJsZUltYWdlcyxmZyBhcyBjb21wYXJlSW1hZ2VzLENJIGFzIGdldERlZmF1bHRXZWJXb3JrZXIsaUEgYXMgZ2V0UGlwZWxpbmVXb3JrZXJVcmwsJEEgYXMgZ2V0UGlwZWxpbmVzQmFzZVVybCxRcyBhcyBzZXREZWZhdWx0V2ViV29ya2VyLG5JIGFzIHNldFBpcGVsaW5lV29ya2VyVXJsLGlzIGFzIHNldFBpcGVsaW5lc0Jhc2VVcmwseGUgYXMgdmVjdG9yTWFnbml0dWRlLHRlIGFzIHZlcnNpb259OwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAogICAqKQoqLwo=""" default_config = JsPackageConfig(default_js_module) js_package = JsPackage(default_config) diff --git a/packages/compress-stringify/python/itkwasm-compress-stringify-emscripten/itkwasm_compress_stringify_emscripten/js_package.py b/packages/compress-stringify/python/itkwasm-compress-stringify-emscripten/itkwasm_compress_stringify_emscripten/js_package.py index 8dec2b9e8..ac37dc433 100644 --- a/packages/compress-stringify/python/itkwasm-compress-stringify-emscripten/itkwasm_compress_stringify_emscripten/js_package.py +++ b/packages/compress-stringify/python/itkwasm-compress-stringify-emscripten/itkwasm_compress_stringify_emscripten/js_package.py @@ -3,6 +3,6 @@ from itkwasm.pyodide import JsPackageConfig, JsPackage from ._version import __version__ -default_js_module = """data:text/javascript;base64,dmFyIHRJPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgSUk9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSl0SShBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIHJJPSIzLjUuMCIsdkE9ckk7dmFyIG9JPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sRj1vSTt2YXIgaUk9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LE49aUk7ZnVuY3Rpb24gZ0koQSxlKXtsZXQgdD1udWxsO3N3aXRjaChBKXtjYXNlIEYuVUludDg6e3Q9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBGLkludDg6e3Q9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIEYuVUludDE2Ont0PW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIEYuSW50MTY6e3Q9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBGLlVJbnQzMjp7dD1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBGLkludDMyOnt0PW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgRi5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBGLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ0ludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIE4uRmxvYXQzMjp7dD1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2UgTi5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIGs9Z0k7dmFyIG5JPXtVbmtub3duOiJVbmtub3duIixTY2FsYXI6IlNjYWxhciIsUkdCOiJSR0IiLFJHQkE6IlJHQkEiLE9mZnNldDoiT2Zmc2V0IixWZWN0b3I6IlZlY3RvciIsUG9pbnQ6IlBvaW50IixDb3ZhcmlhbnRWZWN0b3I6IkNvdmFyaWFudFZlY3RvciIsU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvcjoiU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvciIsRGlmZnVzaW9uVGVuc29yM0Q6IkRpZmZ1c2lvblRlbnNvcjNEIixDb21wbGV4OiJDb21wbGV4IixGaXhlZEFycmF5OiJGaXhlZEFycmF5IixBcnJheToiQXJyYXkiLE1hdHJpeDoiTWF0cml4IixWYXJpYWJsZUxlbmd0aFZlY3RvcjoiVmFyaWFibGVMZW5ndGhWZWN0b3IiLFZhcmlhYmxlU2l6ZU1hdHJpeDoiVmFyaWFibGVTaXplTWF0cml4In0scT1uSTt2YXIgWkE9Y2xhc3N7ZGltZW5zaW9uO2NvbXBvbmVudFR5cGU7cGl4ZWxUeXBlO2NvbXBvbmVudHM7Y29uc3RydWN0b3IoZT0yLHQ9Ri5VSW50OCxJPXEuU2NhbGFyLHI9MSl7dGhpcy5kaW1lbnNpb249ZSx0aGlzLmNvbXBvbmVudFR5cGU9dCx0aGlzLnBpeGVsVHlwZT1JLHRoaXMuY29tcG9uZW50cz1yfX0sSGU9WkE7ZnVuY3Rpb24gc0koQSxlLHQsSSxyKXtBW0krdCplXT1yfXZhciBUZT1zSTt2YXIgVkE9Y2xhc3N7aW1hZ2VUeXBlO25hbWU9IkltYWdlIjtvcmlnaW47c3BhY2luZztkaXJlY3Rpb247c2l6ZTttZXRhZGF0YTtkYXRhO2NvbnN0cnVjdG9yKGU9bmV3IEhlKXt0aGlzLmltYWdlVHlwZT1lO2xldCB0PWUuZGltZW5zaW9uO3RoaXMub3JpZ2luPW5ldyBBcnJheSh0KSx0aGlzLm9yaWdpbi5maWxsKDApLHRoaXMuc3BhY2luZz1uZXcgQXJyYXkodCksdGhpcy5zcGFjaW5nLmZpbGwoMSksdGhpcy5kaXJlY3Rpb249bmV3IEZsb2F0NjRBcnJheSh0KnQpLHRoaXMuZGlyZWN0aW9uLmZpbGwoMCk7Zm9yKGxldCBJPTA7STx0O0krKylUZSh0aGlzLmRpcmVjdGlvbix0LEksSSwxKTt0aGlzLnNpemU9bmV3IEFycmF5KHQpLHRoaXMuc2l6ZS5maWxsKDApLHRoaXMubWV0YWRhdGE9bmV3IE1hcCx0aGlzLmRhdGE9bnVsbH19LHpBPVZBO3ZhciBYQT1jbGFzc3tkaW1lbnNpb247cG9pbnRDb21wb25lbnRUeXBlO3BvaW50UGl4ZWxDb21wb25lbnRUeXBlO3BvaW50UGl4ZWxUeXBlO3BvaW50UGl4ZWxDb21wb25lbnRzO2NlbGxDb21wb25lbnRUeXBlO2NlbGxQaXhlbENvbXBvbmVudFR5cGU7Y2VsbFBpeGVsVHlwZTtjZWxsUGl4ZWxDb21wb25lbnRzO2NvbnN0cnVjdG9yKGU9Mix0PU4uRmxvYXQzMixJPU4uRmxvYXQzMixyPXEuU2NhbGFyLG89MSxpPUYuSW50MzIsYT1OLkZsb2F0MzIsUT1xLlNjYWxhcixDPTEpe3RoaXMuZGltZW5zaW9uPWUsdGhpcy5wb2ludENvbXBvbmVudFR5cGU9dCx0aGlzLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlPUksdGhpcy5wb2ludFBpeGVsVHlwZT1yLHRoaXMucG9pbnRQaXhlbENvbXBvbmVudHM9byx0aGlzLmNlbGxDb21wb25lbnRUeXBlPWksdGhpcy5jZWxsUGl4ZWxDb21wb25lbnRUeXBlPWEsdGhpcy5jZWxsUGl4ZWxUeXBlPVEsdGhpcy5jZWxsUGl4ZWxDb21wb25lbnRzPUN9fSxxZT1YQTt2YXIgX0E9Y2xhc3N7bWVzaFR5cGU7bmFtZT0iTWVzaCI7bnVtYmVyT2ZQb2ludHM7cG9pbnRzO251bWJlck9mUG9pbnRQaXhlbHM7cG9pbnREYXRhO251bWJlck9mQ2VsbHM7Y2VsbHM7Y2VsbEJ1ZmZlclNpemU7bnVtYmVyT2ZDZWxsUGl4ZWxzO2NlbGxEYXRhO2NvbnN0cnVjdG9yKGU9bmV3IHFlKXt0aGlzLm1lc2hUeXBlPWUsdGhpcy5uYW1lPSJNZXNoIix0aGlzLm51bWJlck9mUG9pbnRzPTAsdGhpcy5wb2ludHM9bnVsbCx0aGlzLm51bWJlck9mUG9pbnRQaXhlbHM9MCx0aGlzLnBvaW50RGF0YT1udWxsLHRoaXMubnVtYmVyT2ZDZWxscz0wLHRoaXMuY2VsbEJ1ZmZlclNpemU9MCx0aGlzLmNlbGxzPW51bGwsdGhpcy5udW1iZXJPZkNlbGxQaXhlbHM9MCx0aGlzLmNlbGxEYXRhPW51bGx9fSwkQT1fQTt2YXIgQWU9Y2xhc3N7cG9pbnRQaXhlbENvbXBvbmVudFR5cGU7cG9pbnRQaXhlbFR5cGU7cG9pbnRQaXhlbENvbXBvbmVudHM7Y2VsbFBpeGVsQ29tcG9uZW50VHlwZTtjZWxsUGl4ZWxUeXBlO2NlbGxQaXhlbENvbXBvbmVudHM7Y29uc3RydWN0b3IoZT1OLkZsb2F0MzIsdD1xLlNjYWxhcixJPTEscj1OLkZsb2F0MzIsbz1xLlNjYWxhcixpPTEpe3RoaXMucG9pbnRQaXhlbENvbXBvbmVudFR5cGU9ZSx0aGlzLnBvaW50UGl4ZWxUeXBlPXQsdGhpcy5wb2ludFBpeGVsQ29tcG9uZW50cz1JLHRoaXMuY2VsbFBpeGVsQ29tcG9uZW50VHlwZT1yLHRoaXMuY2VsbFBpeGVsVHlwZT1vLHRoaXMuY2VsbFBpeGVsQ29tcG9uZW50cz1pfX0seGU9QWU7dmFyIGVlPWNsYXNze3BvbHlEYXRhVHlwZTtuYW1lPSJQb2x5RGF0YSI7bnVtYmVyT2ZQb2ludHM7cG9pbnRzO3ZlcnRpY2VzQnVmZmVyU2l6ZTt2ZXJ0aWNlcztsaW5lc0J1ZmZlclNpemU7bGluZXM7cG9seWdvbnNCdWZmZXJTaXplO3BvbHlnb25zO3RyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTt0cmlhbmdsZVN0cmlwcztudW1iZXJPZlBvaW50UGl4ZWxzO3BvaW50RGF0YTtudW1iZXJPZkNlbGxQaXhlbHM7Y2VsbERhdGE7bWV0YWRhdGE7Y29uc3RydWN0b3IoZT1uZXcgeGUpe3RoaXMucG9seURhdGFUeXBlPWUsdGhpcy5wb2x5RGF0YVR5cGU9ZSx0aGlzLm5hbWU9IlBvbHlEYXRhIix0aGlzLm51bWJlck9mUG9pbnRzPTAsdGhpcy5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSx0aGlzLnZlcnRpY2VzQnVmZmVyU2l6ZT0wLHRoaXMudmVydGljZXM9bnVsbCx0aGlzLmxpbmVzQnVmZmVyU2l6ZT0wLHRoaXMubGluZXM9bnVsbCx0aGlzLnBvbHlnb25zQnVmZmVyU2l6ZT0wLHRoaXMucG9seWdvbnM9bnVsbCx0aGlzLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT0wLHRoaXMudHJpYW5nbGVTdHJpcHM9bnVsbCx0aGlzLm51bWJlck9mUG9pbnRQaXhlbHM9MCx0aGlzLnBvaW50RGF0YT1udWxsLHRoaXMubnVtYmVyT2ZDZWxsUGl4ZWxzPTAsdGhpcy5jZWxsRGF0YT1udWxsLHRoaXMubWV0YWRhdGE9bmV3IE1hcH19LHRlPWVlO3ZhciBhST17VGV4dEZpbGU6IlRleHRGaWxlIixCaW5hcnlGaWxlOiJCaW5hcnlGaWxlIixUZXh0U3RyZWFtOiJUZXh0U3RyZWFtIixCaW5hcnlTdHJlYW06IkJpbmFyeVN0cmVhbSIsSW1hZ2U6IkltYWdlIixQb2ludFNldDoiUG9pbnRTZXQiLE1lc2g6Ik1lc2giLFBvbHlEYXRhOiJQb2x5RGF0YSIsVHJhbnNmb3JtTGlzdDoiVHJhbnNmb3JtTGlzdCIsSnNvbkNvbXBhdGlibGU6Ikpzb25Db21wYXRpYmxlIn0sZD1hSTt2YXIgT2U9U3ltYm9sKCJDb21saW5rLnByb3h5IiksQ0k9U3ltYm9sKCJDb21saW5rLmVuZHBvaW50Iiksb2U9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLEllPVN5bWJvbCgiQ29tbGluay5maW5hbGl6ZXIiKSx5QT1TeW1ib2woIkNvbWxpbmsudGhyb3duIiksS2U9QT0+dHlwZW9mIEE9PSJvYmplY3QiJiZBIT09bnVsbHx8dHlwZW9mIEE9PSJmdW5jdGlvbiIsQkk9e2NhbkhhbmRsZTpBPT5LZShBKSYmQVtPZV0sc2VyaWFsaXplKEEpe2xldHtwb3J0MTplLHBvcnQyOnR9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gamUoQSxlKSxbdCxbdF1dfSxkZXNlcmlhbGl6ZShBKXtyZXR1cm4gQS5zdGFydCgpLGllKEEpfX0sUUk9e2NhbkhhbmRsZTpBPT5LZShBKSYmeUEgaW4gQSxzZXJpYWxpemUoe3ZhbHVlOkF9KXtsZXQgZTtyZXR1cm4gQSBpbnN0YW5jZW9mIEVycm9yP2U9e2lzRXJyb3I6ITAsdmFsdWU6e21lc3NhZ2U6QS5tZXNzYWdlLG5hbWU6QS5uYW1lLHN0YWNrOkEuc3RhY2t9fTplPXtpc0Vycm9yOiExLHZhbHVlOkF9LFtlLFtdXX0sZGVzZXJpYWxpemUoQSl7dGhyb3cgQS5pc0Vycm9yP09iamVjdC5hc3NpZ24obmV3IEVycm9yKEEudmFsdWUubWVzc2FnZSksQS52YWx1ZSk6QS52YWx1ZX19LFdlPW5ldyBNYXAoW1sicHJveHkiLEJJXSxbInRocm93IixRSV1dKTtmdW5jdGlvbiBFSShBLGUpe2ZvcihsZXQgdCBvZiBBKWlmKGU9PT10fHx0PT09IioifHx0IGluc3RhbmNlb2YgUmVnRXhwJiZ0LnRlc3QoZSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gamUoQSxlPWdsb2JhbFRoaXMsdD1bIioiXSl7ZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKHIpe2lmKCFyfHwhci5kYXRhKXJldHVybjtpZighRUkodCxyLm9yaWdpbikpe2NvbnNvbGUud2FybihgSW52YWxpZCBvcmlnaW4gJyR7ci5vcmlnaW59JyBmb3IgY29tbGluayBwcm94eWApO3JldHVybn1sZXR7aWQ6byx0eXBlOmkscGF0aDphfT1PYmplY3QuYXNzaWduKHtwYXRoOltdfSxyLmRhdGEpLFE9KHIuZGF0YS5hcmd1bWVudExpc3R8fFtdKS5tYXAoSyksQzt0cnl7bGV0IGc9YS5zbGljZSgwLC0xKS5yZWR1Y2UoKGMsQik9PmNbQl0sQSkscz1hLnJlZHVjZSgoYyxCKT0+Y1tCXSxBKTtzd2l0Y2goaSl7Y2FzZSJHRVQiOkM9czticmVhaztjYXNlIlNFVCI6Z1thLnNsaWNlKC0xKVswXV09SyhyLmRhdGEudmFsdWUpLEM9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6Qz1zLmFwcGx5KGcsUSk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgYz1uZXcgcyguLi5RKTtDPXBJKGMpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6Yyxwb3J0MjpCfT1uZXcgTWVzc2FnZUNoYW5uZWw7amUoQSxCKSxDPWdlKGMsW2NdKX1icmVhaztjYXNlIlJFTEVBU0UiOkM9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChnKXtDPXt2YWx1ZTpnLFt5QV06MH19UHJvbWlzZS5yZXNvbHZlKEMpLmNhdGNoKGc9Pih7dmFsdWU6ZyxbeUFdOjB9KSkudGhlbihnPT57bGV0W3MsY109d0EoZyk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scykse2lkOm99KSxjKSxpPT09IlJFTEVBU0UiJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixJKSx2ZShlKSxJZSBpbiBBJiZ0eXBlb2YgQVtJZV09PSJmdW5jdGlvbiImJkFbSWVdKCkpfSkuY2F0Y2goZz0+e2xldFtzLGNdPXdBKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxbeUFdOjB9KTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzKSx7aWQ6b30pLGMpfSl9KSxlLnN0YXJ0JiZlLnN0YXJ0KCl9ZnVuY3Rpb24gbEkoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gdmUoQSl7bEkoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBpZShBLGUpe3JldHVybiByZShBLFtdLGUpfWZ1bmN0aW9uIGRBKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiBaZShBKXtyZXR1cm4gaihBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9Pnt2ZShBKX0pfXZhciBEQT1uZXcgV2Vha01hcCxoQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgZT0oREEuZ2V0KEEpfHwwKS0xO0RBLnNldChBLGUpLGU9PT0wJiZaZShBKX0pO2Z1bmN0aW9uIGNJKEEsZSl7bGV0IHQ9KERBLmdldChlKXx8MCkrMTtEQS5zZXQoZSx0KSxoQSYmaEEucmVnaXN0ZXIoQSxlLEEpfWZ1bmN0aW9uIGZJKEEpe2hBJiZoQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIHJlKEEsZT1bXSx0PWZ1bmN0aW9uKCl7fSl7bGV0IEk9ITEscj1uZXcgUHJveHkodCx7Z2V0KG8saSl7aWYoZEEoSSksaT09PW9lKXJldHVybigpPT57ZkkociksWmUoQSksST0hMH07aWYoaT09PSJ0aGVuIil7aWYoZS5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5yfTtsZXQgYT1qKEEse3R5cGU6IkdFVCIscGF0aDplLm1hcChRPT5RLnRvU3RyaW5nKCkpfSkudGhlbihLKTtyZXR1cm4gYS50aGVuLmJpbmQoYSl9cmV0dXJuIHJlKEEsWy4uLmUsaV0pfSxzZXQobyxpLGEpe2RBKEkpO2xldFtRLENdPXdBKGEpO3JldHVybiBqKEEse3R5cGU6IlNFVCIscGF0aDpbLi4uZSxpXS5tYXAoZz0+Zy50b1N0cmluZygpKSx2YWx1ZTpRfSxDKS50aGVuKEspfSxhcHBseShvLGksYSl7ZEEoSSk7bGV0IFE9ZVtlLmxlbmd0aC0xXTtpZihRPT09Q0kpcmV0dXJuIGooQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbihLKTtpZihRPT09ImJpbmQiKXJldHVybiByZShBLGUuc2xpY2UoMCwtMSkpO2xldFtDLGddPVBlKGEpO3JldHVybiBqKEEse3R5cGU6IkFQUExZIixwYXRoOmUubWFwKHM9PnMudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OkN9LGcpLnRoZW4oSyl9LGNvbnN0cnVjdChvLGkpe2RBKEkpO2xldFthLFFdPVBlKGkpO3JldHVybiBqKEEse3R5cGU6IkNPTlNUUlVDVCIscGF0aDplLm1hcChDPT5DLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDphfSxRKS50aGVuKEspfX0pO3JldHVybiBjSShyLEEpLHJ9ZnVuY3Rpb24gdUkoQSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sQSl9ZnVuY3Rpb24gUGUoQSl7bGV0IGU9QS5tYXAod0EpO3JldHVybltlLm1hcCh0PT50WzBdKSx1SShlLm1hcCh0PT50WzFdKSldfXZhciBWZT1uZXcgV2Vha01hcDtmdW5jdGlvbiBnZShBLGUpe3JldHVybiBWZS5zZXQoQSxlKSxBfWZ1bmN0aW9uIHBJKEEpe3JldHVybiBPYmplY3QuYXNzaWduKEEse1tPZV06ITB9KX1mdW5jdGlvbiB3QShBKXtmb3IobGV0W2UsdF1vZiBXZSlpZih0LmNhbkhhbmRsZShBKSl7bGV0W0kscl09dC5zZXJpYWxpemUoQSk7cmV0dXJuW3t0eXBlOiJIQU5ETEVSIixuYW1lOmUsdmFsdWU6SX0scl19cmV0dXJuW3t0eXBlOiJSQVciLHZhbHVlOkF9LFZlLmdldChBKXx8W11dfWZ1bmN0aW9uIEsoQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4gV2UuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiBqKEEsZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoST0+e2xldCByPWRJKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBvKGkpeyFpLmRhdGF8fCFpLmRhdGEuaWR8fGkuZGF0YS5pZCE9PXJ8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG8pLEkoaS5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpyfSxlKSx0KX0pfWZ1bmN0aW9uIGRJKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiByQShBLGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KGUsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOnlJfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpzZX09T2JqZWN0LFNBPShBPT5lPT57bGV0IHQ9eUkuY2FsbChlKTtyZXR1cm4gQVt0XXx8KEFbdF09dC5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLGI9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLGU9PlNBKGUpPT09QSksRkE9QT0+ZT0+dHlwZW9mIGU9PT1BLHtpc0FycmF5OnZ9PUFycmF5LG9BPUZBKCJ1bmRlZmluZWQiKTtmdW5jdGlvbiBESShBKXtyZXR1cm4gQSE9PW51bGwmJiFvQShBKSYmQS5jb25zdHJ1Y3RvciE9PW51bGwmJiFvQShBLmNvbnN0cnVjdG9yKSYmRyhBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKSYmQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihBKX12YXIgX2U9YigiQXJyYXlCdWZmZXIiKTtmdW5jdGlvbiBoSShBKXtsZXQgZTtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmQXJyYXlCdWZmZXIuaXNWaWV3P2U9QXJyYXlCdWZmZXIuaXNWaWV3KEEpOmU9QSYmQS5idWZmZXImJl9lKEEuYnVmZmVyKSxlfXZhciB3ST1GQSgic3RyaW5nIiksRz1GQSgiZnVuY3Rpb24iKSwkZT1GQSgibnVtYmVyIiksUkE9QT0+QSE9PW51bGwmJnR5cGVvZiBBPT0ib2JqZWN0IixtST1BPT5BPT09ITB8fEE9PT0hMSxtQT1BPT57aWYoU0EoQSkhPT0ib2JqZWN0IilyZXR1cm4hMTtsZXQgZT1zZShBKTtyZXR1cm4oZT09PW51bGx8fGU9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1udWxsKSYmIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gQSkmJiEoU3ltYm9sLml0ZXJhdG9yIGluIEEpfSxTST1iKCJEYXRlIiksRkk9YigiRmlsZSIpLFJJPWIoIkJsb2IiKSxrST1iKCJGaWxlTGlzdCIpLFVJPUE9PlJBKEEpJiZHKEEucGlwZSksTkk9QT0+e2xldCBlO3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fEcoQS5hcHBlbmQpJiYoKGU9U0EoQSkpPT09ImZvcm1kYXRhInx8ZT09PSJvYmplY3QiJiZHKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LEdJPWIoIlVSTFNlYXJjaFBhcmFtcyIpLFtiSSxMSSxKSSxNSV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoYiksWUk9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2csIiIpO2Z1bmN0aW9uIGlBKEEsZSx7YWxsT3duS2V5czp0PSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IEkscjtpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksdihBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyllLmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtsZXQgbz10P09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLGk9by5sZW5ndGgsYTtmb3IoST0wO0k8aTtJKyspYT1vW0ldLGUuY2FsbChudWxsLEFbYV0sYSxBKX19ZnVuY3Rpb24gQXQoQSxlKXtlPWUudG9Mb3dlckNhc2UoKTtsZXQgdD1PYmplY3Qua2V5cyhBKSxJPXQubGVuZ3RoLHI7Zm9yKDtJLS0gPjA7KWlmKHI9dFtJXSxlPT09ci50b0xvd2VyQ2FzZSgpKXJldHVybiByO3JldHVybiBudWxsfXZhciBXPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsZXQ9QT0+IW9BKEEpJiZBIT09VztmdW5jdGlvbiBuZSgpe2xldHtjYXNlbGVzczpBfT1ldCh0aGlzKSYmdGhpc3x8e30sZT17fSx0PShJLHIpPT57bGV0IG89QSYmQXQoZSxyKXx8cjttQShlW29dKSYmbUEoSSk/ZVtvXT1uZShlW29dLEkpOm1BKEkpP2Vbb109bmUoe30sSSk6dihJKT9lW29dPUkuc2xpY2UoKTplW29dPUl9O2ZvcihsZXQgST0wLHI9YXJndW1lbnRzLmxlbmd0aDtJPHI7SSsrKWFyZ3VtZW50c1tJXSYmaUEoYXJndW1lbnRzW0ldLHQpO3JldHVybiBlfXZhciBIST0oQSxlLHQse2FsbE93bktleXM6SX09e30pPT4oaUEoZSwocixvKT0+e3QmJkcocik/QVtvXT1yQShyLHQpOkFbb109cn0se2FsbE93bktleXM6SX0pLEEpLFRJPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSkscUk9KEEsZSx0LEkpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSxJKSxBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse3ZhbHVlOmUucHJvdG90eXBlfSksdCYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSx0KX0seEk9KEEsZSx0LEkpPT57bGV0IHIsbyxpLGE9e307aWYoZT1lfHx7fSxBPT1udWxsKXJldHVybiBlO2Rve2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLG89ci5sZW5ndGg7by0tID4wOylpPXJbb10sKCFJfHxJKGksQSxlKSkmJiFhW2ldJiYoZVtpXT1BW2ldLGFbaV09ITApO0E9dCE9PSExJiZzZShBKX13aGlsZShBJiYoIXR8fHQoQSxlKSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gZX0sUEk9KEEsZSx0KT0+e0E9U3RyaW5nKEEpLCh0PT09dm9pZCAwfHx0PkEubGVuZ3RoKSYmKHQ9QS5sZW5ndGgpLHQtPWUubGVuZ3RoO2xldCBJPUEuaW5kZXhPZihlLHQpO3JldHVybiBJIT09LTEmJkk9PT10fSxPST1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYodihBKSlyZXR1cm4gQTtsZXQgZT1BLmxlbmd0aDtpZighJGUoZSkpcmV0dXJuIG51bGw7bGV0IHQ9bmV3IEFycmF5KGUpO2Zvcig7ZS0tID4wOyl0W2VdPUFbZV07cmV0dXJuIHR9LEtJPShBPT5lPT5BJiZlIGluc3RhbmNlb2YgQSkodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZzZShVaW50OEFycmF5KSksV0k9KEEsZSk9PntsZXQgST0oQSYmQVtTeW1ib2wuaXRlcmF0b3JdKS5jYWxsKEEpLHI7Zm9yKDsocj1JLm5leHQoKSkmJiFyLmRvbmU7KXtsZXQgbz1yLnZhbHVlO2UuY2FsbChBLG9bMF0sb1sxXSl9fSxqST0oQSxlKT0+e2xldCB0LEk9W107Zm9yKDsodD1BLmV4ZWMoZSkpIT09bnVsbDspSS5wdXNoKHQpO3JldHVybiBJfSx2ST1iKCJIVE1MRm9ybUVsZW1lbnQiKSxaST1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXHNdKFthLXpcZF0pKFx3KikvZyxmdW5jdGlvbih0LEkscil7cmV0dXJuIEkudG9VcHBlckNhc2UoKStyfSksWGU9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4oZSx0KT0+QS5jYWxsKGUsdCkpKE9iamVjdC5wcm90b3R5cGUpLFZJPWIoIlJlZ0V4cCIpLHR0PShBLGUpPT57bGV0IHQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSksST17fTtpQSh0LChyLG8pPT57bGV0IGk7KGk9ZShyLG8sQSkpIT09ITEmJihJW29dPWl8fHIpfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxJKX0sekk9QT0+e3R0KEEsKGUsdCk9PntpZihHKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YodCkhPT0tMSlyZXR1cm4hMTtsZXQgST1BW3RdO2lmKEcoSSkpe2lmKGUuZW51bWVyYWJsZT0hMSwid3JpdGFibGUiaW4gZSl7ZS53cml0YWJsZT0hMTtyZXR1cm59ZS5zZXR8fChlLnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCAnIit0KyInIil9KX19KX0sWEk9KEEsZSk9PntsZXQgdD17fSxJPXI9PntyLmZvckVhY2gobz0+e3Rbb109ITB9KX07cmV0dXJuIHYoQSk/SShBKTpJKFN0cmluZyhBKS5zcGxpdChlKSksdH0sX0k9KCk9Pnt9LCRJPShBLGUpPT5BIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoQT0rQSk/QTplO2Z1bmN0aW9uIEFyKEEpe3JldHVybiEhKEEmJkcoQS5hcHBlbmQpJiZBW1N5bWJvbC50b1N0cmluZ1RhZ109PT0iRm9ybURhdGEiJiZBW1N5bWJvbC5pdGVyYXRvcl0pfXZhciBlcj1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSx0PShJLHIpPT57aWYoUkEoSSkpe2lmKGUuaW5kZXhPZihJKT49MClyZXR1cm47aWYoISgidG9KU09OImluIEkpKXtlW3JdPUk7bGV0IG89dihJKT9bXTp7fTtyZXR1cm4gaUEoSSwoaSxhKT0+e2xldCBRPXQoaSxyKzEpOyFvQShRKSYmKG9bYV09USl9KSxlW3JdPXZvaWQgMCxvfX1yZXR1cm4gSX07cmV0dXJuIHQoQSwwKX0sdHI9YigiQXN5bmNGdW5jdGlvbiIpLElyPUE9PkEmJihSQShBKXx8RyhBKSkmJkcoQS50aGVuKSYmRyhBLmNhdGNoKSxJdD0oKEEsZSk9PkE/c2V0SW1tZWRpYXRlOmU/KCh0LEkpPT4oVy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoe3NvdXJjZTpyLGRhdGE6b30pPT57cj09PVcmJm89PT10JiZJLmxlbmd0aCYmSS5zaGlmdCgpKCl9LCExKSxyPT57SS5wdXNoKHIpLFcucG9zdE1lc3NhZ2UodCwiKiIpfSkpKGBheGlvc0Ake01hdGgucmFuZG9tKCl9YCxbXSk6dD0+c2V0VGltZW91dCh0KSkodHlwZW9mIHNldEltbWVkaWF0ZT09ImZ1bmN0aW9uIixHKFcucG9zdE1lc3NhZ2UpKSxycj10eXBlb2YgcXVldWVNaWNyb3Rhc2s8InUiP3F1ZXVlTWljcm90YXNrLmJpbmQoVyk6dHlwZW9mIHByb2Nlc3M8InUiJiZwcm9jZXNzLm5leHRUaWNrfHxJdCxuPXtpc0FycmF5OnYsaXNBcnJheUJ1ZmZlcjpfZSxpc0J1ZmZlcjpESSxpc0Zvcm1EYXRhOk5JLGlzQXJyYXlCdWZmZXJWaWV3OmhJLGlzU3RyaW5nOndJLGlzTnVtYmVyOiRlLGlzQm9vbGVhbjptSSxpc09iamVjdDpSQSxpc1BsYWluT2JqZWN0Om1BLGlzUmVhZGFibGVTdHJlYW06YkksaXNSZXF1ZXN0OkxJLGlzUmVzcG9uc2U6SkksaXNIZWFkZXJzOk1JLGlzVW5kZWZpbmVkOm9BLGlzRGF0ZTpTSSxpc0ZpbGU6RkksaXNCbG9iOlJJLGlzUmVnRXhwOlZJLGlzRnVuY3Rpb246Ryxpc1N0cmVhbTpVSSxpc1VSTFNlYXJjaFBhcmFtczpHSSxpc1R5cGVkQXJyYXk6S0ksaXNGaWxlTGlzdDprSSxmb3JFYWNoOmlBLG1lcmdlOm5lLGV4dGVuZDpISSx0cmltOllJLHN0cmlwQk9NOlRJLGluaGVyaXRzOnFJLHRvRmxhdE9iamVjdDp4SSxraW5kT2Y6U0Esa2luZE9mVGVzdDpiLGVuZHNXaXRoOlBJLHRvQXJyYXk6T0ksZm9yRWFjaEVudHJ5OldJLG1hdGNoQWxsOmpJLGlzSFRNTEZvcm06dkksaGFzT3duUHJvcGVydHk6WGUsaGFzT3duUHJvcDpYZSxyZWR1Y2VEZXNjcmlwdG9yczp0dCxmcmVlemVNZXRob2RzOnpJLHRvT2JqZWN0U2V0OlhJLHRvQ2FtZWxDYXNlOlpJLG5vb3A6X0ksdG9GaW5pdGVOdW1iZXI6JEksZmluZEtleTpBdCxnbG9iYWw6Vyxpc0NvbnRleHREZWZpbmVkOmV0LGlzU3BlY0NvbXBsaWFudEZvcm06QXIsdG9KU09OT2JqZWN0OmVyLGlzQXN5bmNGbjp0cixpc1RoZW5hYmxlOklyLHNldEltbWVkaWF0ZTpJdCxhc2FwOnJyfTtmdW5jdGlvbiBaKEEsZSx0LEkscil7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2ssdGhpcy5tZXNzYWdlPUEsdGhpcy5uYW1lPSJBeGlvc0Vycm9yIixlJiYodGhpcy5jb2RlPWUpLHQmJih0aGlzLmNvbmZpZz10KSxJJiYodGhpcy5yZXF1ZXN0PUkpLHImJih0aGlzLnJlc3BvbnNlPXIsdGhpcy5zdGF0dXM9ci5zdGF0dXM/ci5zdGF0dXM6bnVsbCl9bi5pbmhlcml0cyhaLEVycm9yLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6bi50b0pTT05PYmplY3QodGhpcy5jb25maWcpLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnN0YXR1c319fSk7dmFyIHJ0PVoucHJvdG90eXBlLG90PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e290W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFosb3QpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShydCwiaXNBeGlvc0Vycm9yIix7dmFsdWU6ITB9KTtaLmZyb209KEEsZSx0LEkscixvKT0+e2xldCBpPU9iamVjdC5jcmVhdGUocnQpO3JldHVybiBuLnRvRmxhdE9iamVjdChBLGksZnVuY3Rpb24oUSl7cmV0dXJuIFEhPT1FcnJvci5wcm90b3R5cGV9LGE9PmEhPT0iaXNBeGlvc0Vycm9yIiksWi5jYWxsKGksQS5tZXNzYWdlLGUsdCxJLHIpLGkuY2F1c2U9QSxpLm5hbWU9QS5uYW1lLG8mJk9iamVjdC5hc3NpZ24oaSxvKSxpfTt2YXIgdT1aO3ZhciBrQT1udWxsO2Z1bmN0aW9uIGFlKEEpe3JldHVybiBuLmlzUGxhaW5PYmplY3QoQSl8fG4uaXNBcnJheShBKX1mdW5jdGlvbiBndChBKXtyZXR1cm4gbi5lbmRzV2l0aChBLCJbXSIpP0Euc2xpY2UoMCwtMik6QX1mdW5jdGlvbiBpdChBLGUsdCl7cmV0dXJuIEE/QS5jb25jYXQoZSkubWFwKGZ1bmN0aW9uKHIsbyl7cmV0dXJuIHI9Z3QociksIXQmJm8/IlsiK3IrIl0iOnJ9KS5qb2luKHQ/Ii4iOiIiKTplfWZ1bmN0aW9uIG9yKEEpe3JldHVybiBuLmlzQXJyYXkoQSkmJiFBLnNvbWUoYWUpfXZhciBpcj1uLnRvRmxhdE9iamVjdChuLHt9LG51bGwsZnVuY3Rpb24oZSl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KGUpfSk7ZnVuY3Rpb24gZ3IoQSxlLHQpe2lmKCFuLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdCIpO2U9ZXx8bmV3KGtBfHxGb3JtRGF0YSksdD1uLnRvRmxhdE9iamVjdCh0LHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsZnVuY3Rpb24oZixsKXtyZXR1cm4hbi5pc1VuZGVmaW5lZChsW2ZdKX0pO2xldCBJPXQubWV0YVRva2VucyxyPXQudmlzaXRvcnx8ZyxvPXQuZG90cyxpPXQuaW5kZXhlcyxRPSh0LkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYikmJm4uaXNTcGVjQ29tcGxpYW50Rm9ybShlKTtpZighbi5pc0Z1bmN0aW9uKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gQyhFKXtpZihFPT09bnVsbClyZXR1cm4iIjtpZihuLmlzRGF0ZShFKSlyZXR1cm4gRS50b0lTT1N0cmluZygpO2lmKCFRJiZuLmlzQmxvYihFKSl0aHJvdyBuZXcgdSgiQmxvYiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYSBCdWZmZXIgaW5zdGVhZC4iKTtyZXR1cm4gbi5pc0FycmF5QnVmZmVyKEUpfHxuLmlzVHlwZWRBcnJheShFKT9RJiZ0eXBlb2YgQmxvYj09ImZ1bmN0aW9uIj9uZXcgQmxvYihbRV0pOkJ1ZmZlci5mcm9tKEUpOkV9ZnVuY3Rpb24gZyhFLGYsbCl7bGV0IHA9RTtpZihFJiYhbCYmdHlwZW9mIEU9PSJvYmplY3QiKXtpZihuLmVuZHNXaXRoKGYsInt9IikpZj1JP2Y6Zi5zbGljZSgwLC0yKSxFPUpTT04uc3RyaW5naWZ5KEUpO2Vsc2UgaWYobi5pc0FycmF5KEUpJiZvcihFKXx8KG4uaXNGaWxlTGlzdChFKXx8bi5lbmRzV2l0aChmLCJbXSIpKSYmKHA9bi50b0FycmF5KEUpKSlyZXR1cm4gZj1ndChmKSxwLmZvckVhY2goZnVuY3Rpb24oaCxZKXshKG4uaXNVbmRlZmluZWQoaCl8fGg9PT1udWxsKSYmZS5hcHBlbmQoaT09PSEwP2l0KFtmXSxZLG8pOmk9PT1udWxsP2Y6ZisiW10iLEMoaCkpfSksITF9cmV0dXJuIGFlKEUpPyEwOihlLmFwcGVuZChpdChsLGYsbyksQyhFKSksITEpfWxldCBzPVtdLGM9T2JqZWN0LmFzc2lnbihpcix7ZGVmYXVsdFZpc2l0b3I6Zyxjb252ZXJ0VmFsdWU6Qyxpc1Zpc2l0YWJsZTphZX0pO2Z1bmN0aW9uIEIoRSxmKXtpZighbi5pc1VuZGVmaW5lZChFKSl7aWYocy5pbmRleE9mKEUpIT09LTEpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAiK2Yuam9pbigiLiIpKTtzLnB1c2goRSksbi5mb3JFYWNoKEUsZnVuY3Rpb24ocCxEKXsoIShuLmlzVW5kZWZpbmVkKHApfHxwPT09bnVsbCkmJnIuY2FsbChlLHAsbi5pc1N0cmluZyhEKT9ELnRyaW0oKTpELGYsYykpPT09ITAmJkIocCxmP2YuY29uY2F0KEQpOltEXSl9KSxzLnBvcCgpfX1pZighbi5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJkYXRhIG11c3QgYmUgYW4gb2JqZWN0Iik7cmV0dXJuIEIoQSksZX12YXIgeD1ncjtmdW5jdGlvbiBudChBKXtsZXQgZT17IiEiOiIlMjEiLCInIjoiJTI3IiwiKCI6IiUyOCIsIikiOiIlMjkiLCJ+IjoiJTdFIiwiJTIwIjoiKyIsIiUwMCI6IlwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC9bIScoKX5dfCUyMHwlMDAvZyxmdW5jdGlvbihJKXtyZXR1cm4gZVtJXX0pfWZ1bmN0aW9uIHN0KEEsZSl7dGhpcy5fcGFpcnM9W10sQSYmeChBLHRoaXMsZSl9dmFyIGF0PXN0LnByb3RvdHlwZTthdC5hcHBlbmQ9ZnVuY3Rpb24oZSx0KXt0aGlzLl9wYWlycy5wdXNoKFtlLHRdKX07YXQudG9TdHJpbmc9ZnVuY3Rpb24oZSl7bGV0IHQ9ZT9mdW5jdGlvbihJKXtyZXR1cm4gZS5jYWxsKHRoaXMsSSxudCl9Om50O3JldHVybiB0aGlzLl9wYWlycy5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIHQoclswXSkrIj0iK3QoclsxXSl9LCIiKS5qb2luKCImIil9O3ZhciBVQT1zdDtmdW5jdGlvbiBucihBKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoLyUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNC9nLCIkIikucmVwbGFjZSgvJTJDL2dpLCIsIikucmVwbGFjZSgvJTIwL2csIisiKS5yZXBsYWNlKC8lNUIvZ2ksIlsiKS5yZXBsYWNlKC8lNUQvZ2ksIl0iKX1mdW5jdGlvbiBnQShBLGUsdCl7aWYoIWUpcmV0dXJuIEE7bGV0IEk9dCYmdC5lbmNvZGV8fG5yO24uaXNGdW5jdGlvbih0KSYmKHQ9e3NlcmlhbGl6ZTp0fSk7bGV0IHI9dCYmdC5zZXJpYWxpemUsbztpZihyP289cihlLHQpOm89bi5pc1VSTFNlYXJjaFBhcmFtcyhlKT9lLnRvU3RyaW5nKCk6bmV3IFVBKGUsdCkudG9TdHJpbmcoSSksbyl7bGV0IGk9QS5pbmRleE9mKCIjIik7aSE9PS0xJiYoQT1BLnNsaWNlKDAsaSkpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK299cmV0dXJuIEF9dmFyIENlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UoZSx0LEkpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDplLHJlamVjdGVkOnQsc3luY2hyb25vdXM6ST9JLnN5bmNocm9ub3VzOiExLHJ1bldoZW46ST9JLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QoZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaChlKXtuLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihJKXtJIT09bnVsbCYmZShJKX0pfX0sQmU9Q2U7dmFyIE5BPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgQ3Q9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOlVBO3ZhciBCdD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyIFF0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIEV0PXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOkN0LEZvcm1EYXRhOkJ0LEJsb2I6UXR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgbGU9e307SUkobGUse2hhc0Jyb3dzZXJFbnY6KCk9PkVlLGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+c3IsaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT5hcixuYXZpZ2F0b3I6KCk9PlFlLG9yaWdpbjooKT0+Q3J9KTt2YXIgRWU9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsUWU9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLHNyPUVlJiYoIVFlfHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKFFlLnByb2R1Y3QpPDApLGFyPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixDcj1FZSYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgeT17Li4ubGUsLi4uRXR9O2Z1bmN0aW9uIGNlKEEsZSl7cmV0dXJuIHgoQSxuZXcgeS5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyxPYmplY3QuYXNzaWduKHt2aXNpdG9yOmZ1bmN0aW9uKHQsSSxyLG8pe3JldHVybiB5LmlzTm9kZSYmbi5pc0J1ZmZlcih0KT8odGhpcy5hcHBlbmQoSSx0LnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOm8uZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sZSkpfWZ1bmN0aW9uIEJyKEEpe3JldHVybiBuLm1hdGNoQWxsKC9cdyt8XFsoXHcqKV0vZyxBKS5tYXAoZT0+ZVswXT09PSJbXSI/IiI6ZVsxXXx8ZVswXSl9ZnVuY3Rpb24gUXIoQSl7bGV0IGU9e30sdD1PYmplY3Qua2V5cyhBKSxJLHI9dC5sZW5ndGgsbztmb3IoST0wO0k8cjtJKyspbz10W0ldLGVbb109QVtvXTtyZXR1cm4gZX1mdW5jdGlvbiBFcihBKXtmdW5jdGlvbiBlKHQsSSxyLG8pe2xldCBpPXRbbysrXTtpZihpPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IGE9TnVtYmVyLmlzRmluaXRlKCtpKSxRPW8+PXQubGVuZ3RoO3JldHVybiBpPSFpJiZuLmlzQXJyYXkocik/ci5sZW5ndGg6aSxRPyhuLmhhc093blByb3AocixpKT9yW2ldPVtyW2ldLEldOnJbaV09SSwhYSk6KCghcltpXXx8IW4uaXNPYmplY3QocltpXSkpJiYocltpXT1bXSksZSh0LEkscltpXSxvKSYmbi5pc0FycmF5KHJbaV0pJiYocltpXT1RcihyW2ldKSksIWEpfWlmKG4uaXNGb3JtRGF0YShBKSYmbi5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCB0PXt9O3JldHVybiBuLmZvckVhY2hFbnRyeShBLChJLHIpPT57ZShCcihJKSxyLHQsMCl9KSx0fXJldHVybiBudWxsfXZhciBHQT1FcjtmdW5jdGlvbiBscihBLGUsdCl7aWYobi5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKGV8fEpTT04ucGFyc2UpKEEpLG4udHJpbShBKX1jYXRjaChJKXtpZihJLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IEl9cmV0dXJuKHR8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgZmU9e3RyYW5zaXRpb25hbDpOQSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24oZSx0KXtsZXQgST10LmdldENvbnRlbnRUeXBlKCl8fCIiLHI9SS5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsbz1uLmlzT2JqZWN0KGUpO2lmKG8mJm4uaXNIVE1MRm9ybShlKSYmKGU9bmV3IEZvcm1EYXRhKGUpKSxuLmlzRm9ybURhdGEoZSkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkoR0EoZSkpOmU7aWYobi5pc0FycmF5QnVmZmVyKGUpfHxuLmlzQnVmZmVyKGUpfHxuLmlzU3RyZWFtKGUpfHxuLmlzRmlsZShlKXx8bi5pc0Jsb2IoZSl8fG4uaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihuLmlzQXJyYXlCdWZmZXJWaWV3KGUpKXJldHVybiBlLmJ1ZmZlcjtpZihuLmlzVVJMU2VhcmNoUGFyYW1zKGUpKXJldHVybiB0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLGUudG9TdHJpbmcoKTtsZXQgYTtpZihvKXtpZihJLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBjZShlLHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKGE9bi5pc0ZpbGVMaXN0KGUpKXx8SS5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBRPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4geChhP3siZmlsZXNbXSI6ZX06ZSxRJiZuZXcgUSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIG98fHI/KHQuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxscihlKSk6ZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihlKXtsZXQgdD10aGlzLnRyYW5zaXRpb25hbHx8ZmUudHJhbnNpdGlvbmFsLEk9dCYmdC5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKG4uaXNSZXNwb25zZShlKXx8bi5pc1JlYWRhYmxlU3RyZWFtKGUpKXJldHVybiBlO2lmKGUmJm4uaXNTdHJpbmcoZSkmJihJJiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgaT0hKHQmJnQuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaChhKXtpZihpKXRocm93IGEubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKGEsdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTphfX1yZXR1cm4gZX1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6eS5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6eS5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKGUpe3JldHVybiBlPj0yMDAmJmU8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07bi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntmZS5oZWFkZXJzW0FdPXt9fSk7dmFyIFY9ZmU7dmFyIGNyPW4udG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksbHQ9QT0+e2xldCBlPXt9LHQsSSxyO3JldHVybiBBJiZBLnNwbGl0KGAKYCkuZm9yRWFjaChmdW5jdGlvbihpKXtyPWkuaW5kZXhPZigiOiIpLHQ9aS5zdWJzdHJpbmcoMCxyKS50cmltKCkudG9Mb3dlckNhc2UoKSxJPWkuc3Vic3RyaW5nKHIrMSkudHJpbSgpLCEoIXR8fGVbdF0mJmNyW3RdKSYmKHQ9PT0ic2V0LWNvb2tpZSI/ZVt0XT9lW3RdLnB1c2goSSk6ZVt0XT1bSV06ZVt0XT1lW3RdP2VbdF0rIiwgIitJOkkpfSksZX07dmFyIGN0PVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gbkEoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBiQShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6bi5pc0FycmF5KEEpP0EubWFwKGJBKTpTdHJpbmcoQSl9ZnVuY3Rpb24gZnIoQSl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKSx0PS8oW15ccyw7PV0rKVxzKig/Oj1ccyooW14sO10rKSk/L2csSTtmb3IoO0k9dC5leGVjKEEpOyllW0lbMV1dPUlbMl07cmV0dXJuIGV9dmFyIHVyPUE9Pi9eWy1fYS16QS1aMC05XmB8fiwhIyQlJicqKy5dKyQvLnRlc3QoQS50cmltKCkpO2Z1bmN0aW9uIHVlKEEsZSx0LEkscil7aWYobi5pc0Z1bmN0aW9uKEkpKXJldHVybiBJLmNhbGwodGhpcyxlLHQpO2lmKHImJihlPXQpLCEhbi5pc1N0cmluZyhlKSl7aWYobi5pc1N0cmluZyhJKSlyZXR1cm4gZS5pbmRleE9mKEkpIT09LTE7aWYobi5pc1JlZ0V4cChJKSlyZXR1cm4gSS50ZXN0KGUpfX1mdW5jdGlvbiBwcihBKXtyZXR1cm4gQS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxkXSkoXHcqKS9nLChlLHQsSSk9PnQudG9VcHBlckNhc2UoKStJKX1mdW5jdGlvbiBkcihBLGUpe2xldCB0PW4udG9DYW1lbENhc2UoIiAiK2UpO1siZ2V0Iiwic2V0IiwiaGFzIl0uZm9yRWFjaChJPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsSSt0LHt2YWx1ZTpmdW5jdGlvbihyLG8saSl7cmV0dXJuIHRoaXNbSV0uY2FsbCh0aGlzLGUscixvLGkpfSxjb25maWd1cmFibGU6ITB9KX0pfXZhciB6PWNsYXNze2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBvKGEsUSxDKXtsZXQgZz1uQShRKTtpZighZyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IHM9bi5maW5kS2V5KHIsZyk7KCFzfHxyW3NdPT09dm9pZCAwfHxDPT09ITB8fEM9PT12b2lkIDAmJnJbc10hPT0hMSkmJihyW3N8fFFdPWJBKGEpKX1sZXQgaT0oYSxRKT0+bi5mb3JFYWNoKGEsKEMsZyk9Pm8oQyxnLFEpKTtpZihuLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKWkoZSx0KTtlbHNlIGlmKG4uaXNTdHJpbmcoZSkmJihlPWUudHJpbSgpKSYmIXVyKGUpKWkobHQoZSksdCk7ZWxzZSBpZihuLmlzSGVhZGVycyhlKSlmb3IobGV0W2EsUV1vZiBlLmVudHJpZXMoKSlvKFEsYSxJKTtlbHNlIGUhPW51bGwmJm8odCxlLEkpO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9bkEoZSksZSl7bGV0IEk9bi5maW5kS2V5KHRoaXMsZSk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighdClyZXR1cm4gcjtpZih0PT09ITApcmV0dXJuIGZyKHIpO2lmKG4uaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMscixJKTtpZihuLmlzUmVnRXhwKHQpKXJldHVybiB0LmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhlLHQpe2lmKGU9bkEoZSksZSl7bGV0IEk9bi5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCF0fHx1ZSh0aGlzLHRoaXNbSV0sSSx0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBvKGkpe2lmKGk9bkEoaSksaSl7bGV0IGE9bi5maW5kS2V5KEksaSk7YSYmKCF0fHx1ZShJLElbYV0sYSx0KSkmJihkZWxldGUgSVthXSxyPSEwKX19cmV0dXJuIG4uaXNBcnJheShlKT9lLmZvckVhY2gobyk6byhlKSxyfWNsZWFyKGUpe2xldCB0PU9iamVjdC5rZXlzKHRoaXMpLEk9dC5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBvPXRbSV07KCFlfHx1ZSh0aGlzLHRoaXNbb10sbyxlLCEwKSkmJihkZWxldGUgdGhpc1tvXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUoZSl7bGV0IHQ9dGhpcyxJPXt9O3JldHVybiBuLmZvckVhY2godGhpcywocixvKT0+e2xldCBpPW4uZmluZEtleShJLG8pO2lmKGkpe3RbaV09YkEociksZGVsZXRlIHRbb107cmV0dXJufWxldCBhPWU/cHIobyk6U3RyaW5nKG8pLnRyaW0oKTthIT09byYmZGVsZXRlIHRbb10sdFthXT1iQShyKSxJW2FdPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIG4uZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYodFtyXT1lJiZuLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrIjogIit0KS5qb2luKGAKYCl9Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHRoaXM/ZTpuZXcgdGhpcyhlKX1zdGF0aWMgY29uY2F0KGUsLi4udCl7bGV0IEk9bmV3IHRoaXMoZSk7cmV0dXJuIHQuZm9yRWFjaChyPT5JLnNldChyKSksSX1zdGF0aWMgYWNjZXNzb3IoZSl7bGV0IEk9KHRoaXNbY3RdPXRoaXNbY3RdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBvKGkpe2xldCBhPW5BKGkpO0lbYV18fChkcihyLGkpLElbYV09ITApfXJldHVybiBuLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKG8pOm8oZSksdGhpc319O3ouYWNjZXNzb3IoWyJDb250ZW50LVR5cGUiLCJDb250ZW50LUxlbmd0aCIsIkFjY2VwdCIsIkFjY2VwdC1FbmNvZGluZyIsIlVzZXItQWdlbnQiLCJBdXRob3JpemF0aW9uIl0pO24ucmVkdWNlRGVzY3JpcHRvcnMoei5wcm90b3R5cGUsKHt2YWx1ZTpBfSxlKT0+e2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KEkpe3RoaXNbdF09SX19fSk7bi5mcmVlemVNZXRob2RzKHopO3ZhciBTPXo7ZnVuY3Rpb24gc0EoQSxlKXtsZXQgdD10aGlzfHxWLEk9ZXx8dCxyPVMuZnJvbShJLmhlYWRlcnMpLG89SS5kYXRhO3JldHVybiBuLmZvckVhY2goQSxmdW5jdGlvbihhKXtvPWEuY2FsbCh0LG8sci5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxyLm5vcm1hbGl6ZSgpLG99ZnVuY3Rpb24gYUEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBmdChBLGUsdCl7dS5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIix1LkVSUl9DQU5DRUxFRCxlLHQpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9bi5pbmhlcml0cyhmdCx1LHtfX0NBTkNFTF9fOiEwfSk7dmFyIEo9ZnQ7ZnVuY3Rpb24gQ0EoQSxlLHQpe2xldCBJPXQuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyF0LnN0YXR1c3x8IUl8fEkodC5zdGF0dXMpP0EodCk6ZShuZXcgdSgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Quc3RhdHVzLFt1LkVSUl9CQURfUkVRVUVTVCx1LkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IodC5zdGF0dXMvMTAwKS00XSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIHBlKEEpe2xldCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiB5cihBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLEk9bmV3IEFycmF5KEEpLHI9MCxvPTAsaTtyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKFEpe2xldCBDPURhdGUubm93KCksZz1JW29dO2l8fChpPUMpLHRbcl09USxJW3JdPUM7bGV0IHM9byxjPTA7Zm9yKDtzIT09cjspYys9dFtzKytdLHM9cyVBO2lmKHI9KHIrMSklQSxyPT09byYmKG89KG8rMSklQSksQy1pPGUpcmV0dXJuO2xldCBCPWcmJkMtZztyZXR1cm4gQj9NYXRoLnJvdW5kKGMqMWUzL0IpOnZvaWQgMH19dmFyIHV0PXlyO2Z1bmN0aW9uIERyKEEsZSl7bGV0IHQ9MCxJPTFlMy9lLHIsbyxpPShDLGc9RGF0ZS5ub3coKSk9Pnt0PWcscj1udWxsLG8mJihjbGVhclRpbWVvdXQobyksbz1udWxsKSxBLmFwcGx5KG51bGwsQyl9O3JldHVyblsoLi4uQyk9PntsZXQgZz1EYXRlLm5vdygpLHM9Zy10O3M+PUk/aShDLGcpOihyPUMsb3x8KG89c2V0VGltZW91dCgoKT0+e289bnVsbCxpKHIpfSxJLXMpKSl9LCgpPT5yJiZpKHIpXX12YXIgcHQ9RHI7dmFyIFg9KEEsZSx0PTMpPT57bGV0IEk9MCxyPXV0KDUwLDI1MCk7cmV0dXJuIHB0KG89PntsZXQgaT1vLmxvYWRlZCxhPW8ubGVuZ3RoQ29tcHV0YWJsZT9vLnRvdGFsOnZvaWQgMCxRPWktSSxDPXIoUSksZz1pPD1hO0k9aTtsZXQgcz17bG9hZGVkOmksdG90YWw6YSxwcm9ncmVzczphP2kvYTp2b2lkIDAsYnl0ZXM6USxyYXRlOkN8fHZvaWQgMCxlc3RpbWF0ZWQ6QyYmYSYmZz8oYS1pKS9DOnZvaWQgMCxldmVudDpvLGxlbmd0aENvbXB1dGFibGU6YSE9bnVsbCxbZT8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH07QShzKX0sdCl9LGRlPShBLGUpPT57bGV0IHQ9QSE9bnVsbDtyZXR1cm5bST0+ZVswXSh7bGVuZ3RoQ29tcHV0YWJsZTp0LHRvdGFsOkEsbG9hZGVkOkl9KSxlWzFdXX0seWU9QT0+KC4uLmUpPT5uLmFzYXAoKCk9PkEoLi4uZSkpO3ZhciBkdD15Lmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKEEsZSk9PnQ9Pih0PW5ldyBVUkwodCx5Lm9yaWdpbiksQS5wcm90b2NvbD09PXQucHJvdG9jb2wmJkEuaG9zdD09PXQuaG9zdCYmKGV8fEEucG9ydD09PXQucG9ydCkpKShuZXcgVVJMKHkub3JpZ2luKSx5Lm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdCh5Lm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITA7dmFyIHl0PXkuaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShBLGUsdCxJLHIsbyl7bGV0IGk9W0ErIj0iK2VuY29kZVVSSUNvbXBvbmVudChlKV07bi5pc051bWJlcih0KSYmaS5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUodCkudG9HTVRTdHJpbmcoKSksbi5pc1N0cmluZyhJKSYmaS5wdXNoKCJwYXRoPSIrSSksbi5pc1N0cmluZyhyKSYmaS5wdXNoKCJkb21haW49IityKSxvPT09ITAmJmkucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPWkuam9pbigiOyAiKX0scmVhZChBKXtsZXQgZT1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xccyopKCIrQSsiKT0oW147XSopIikpO3JldHVybiBlP2RlY29kZVVSSUNvbXBvbmVudChlWzNdKTpudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIERlKEEpe3JldHVybi9eKFthLXpdW2EtelxkK1wtLl0qOik/XC9cLy9pLnRlc3QoQSl9ZnVuY3Rpb24gaGUoQSxlKXtyZXR1cm4gZT9BLnJlcGxhY2UoL1wvP1wvJC8sIiIpKyIvIitlLnJlcGxhY2UoL15cLysvLCIiKTpBfWZ1bmN0aW9uIEJBKEEsZSx0KXtsZXQgST0hRGUoZSk7cmV0dXJuIEEmJihJfHx0PT0hMSk/aGUoQSxlKTplfXZhciBEdD1BPT5BIGluc3RhbmNlb2YgUz97Li4uQX06QTtmdW5jdGlvbiBMKEEsZSl7ZT1lfHx7fTtsZXQgdD17fTtmdW5jdGlvbiBJKEMsZyxzLGMpe3JldHVybiBuLmlzUGxhaW5PYmplY3QoQykmJm4uaXNQbGFpbk9iamVjdChnKT9uLm1lcmdlLmNhbGwoe2Nhc2VsZXNzOmN9LEMsZyk6bi5pc1BsYWluT2JqZWN0KGcpP24ubWVyZ2Uoe30sZyk6bi5pc0FycmF5KGcpP2cuc2xpY2UoKTpnfWZ1bmN0aW9uIHIoQyxnLHMsYyl7aWYobi5pc1VuZGVmaW5lZChnKSl7aWYoIW4uaXNVbmRlZmluZWQoQykpcmV0dXJuIEkodm9pZCAwLEMscyxjKX1lbHNlIHJldHVybiBJKEMsZyxzLGMpfWZ1bmN0aW9uIG8oQyxnKXtpZighbi5pc1VuZGVmaW5lZChnKSlyZXR1cm4gSSh2b2lkIDAsZyl9ZnVuY3Rpb24gaShDLGcpe2lmKG4uaXNVbmRlZmluZWQoZykpe2lmKCFuLmlzVW5kZWZpbmVkKEMpKXJldHVybiBJKHZvaWQgMCxDKX1lbHNlIHJldHVybiBJKHZvaWQgMCxnKX1mdW5jdGlvbiBhKEMsZyxzKXtpZihzIGluIGUpcmV0dXJuIEkoQyxnKTtpZihzIGluIEEpcmV0dXJuIEkodm9pZCAwLEMpfWxldCBRPXt1cmw6byxtZXRob2Q6byxkYXRhOm8sYmFzZVVSTDppLHRyYW5zZm9ybVJlcXVlc3Q6aSx0cmFuc2Zvcm1SZXNwb25zZTppLHBhcmFtc1NlcmlhbGl6ZXI6aSx0aW1lb3V0OmksdGltZW91dE1lc3NhZ2U6aSx3aXRoQ3JlZGVudGlhbHM6aSx3aXRoWFNSRlRva2VuOmksYWRhcHRlcjppLHJlc3BvbnNlVHlwZTppLHhzcmZDb29raWVOYW1lOmkseHNyZkhlYWRlck5hbWU6aSxvblVwbG9hZFByb2dyZXNzOmksb25Eb3dubG9hZFByb2dyZXNzOmksZGVjb21wcmVzczppLG1heENvbnRlbnRMZW5ndGg6aSxtYXhCb2R5TGVuZ3RoOmksYmVmb3JlUmVkaXJlY3Q6aSx0cmFuc3BvcnQ6aSxodHRwQWdlbnQ6aSxodHRwc0FnZW50OmksY2FuY2VsVG9rZW46aSxzb2NrZXRQYXRoOmkscmVzcG9uc2VFbmNvZGluZzppLHZhbGlkYXRlU3RhdHVzOmEsaGVhZGVyczooQyxnLHMpPT5yKER0KEMpLER0KGcpLHMsITApfTtyZXR1cm4gbi5mb3JFYWNoKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sQSxlKSksZnVuY3Rpb24oZyl7bGV0IHM9UVtnXXx8cixjPXMoQVtnXSxlW2ddLGcpO24uaXNVbmRlZmluZWQoYykmJnMhPT1hfHwodFtnXT1jKX0pLHR9dmFyIExBPUE9PntsZXQgZT1MKHt9LEEpLHtkYXRhOnQsd2l0aFhTUkZUb2tlbjpJLHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6byxoZWFkZXJzOmksYXV0aDphfT1lO2UuaGVhZGVycz1pPVMuZnJvbShpKSxlLnVybD1nQShCQShlLmJhc2VVUkwsZS51cmwsZS5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxhJiZpLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgoYS51c2VybmFtZXx8IiIpKyI6IisoYS5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoYS5wYXNzd29yZCkpOiIiKSkpO2xldCBRO2lmKG4uaXNGb3JtRGF0YSh0KSl7aWYoeS5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fHkuaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KWkuc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKChRPWkuZ2V0Q29udGVudFR5cGUoKSkhPT0hMSl7bGV0W0MsLi4uZ109UT9RLnNwbGl0KCI7IikubWFwKHM9PnMudHJpbSgpKS5maWx0ZXIoQm9vbGVhbik6W107aS5zZXRDb250ZW50VHlwZShbQ3x8Im11bHRpcGFydC9mb3JtLWRhdGEiLC4uLmddLmpvaW4oIjsgIikpfX1pZih5Lmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKEkmJm4uaXNGdW5jdGlvbihJKSYmKEk9SShlKSksSXx8SSE9PSExJiZkdChlLnVybCkpKXtsZXQgQz1yJiZvJiZ5dC5yZWFkKG8pO0MmJmkuc2V0KHIsQyl9cmV0dXJuIGV9O3ZhciBocj10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUiLGh0PWhyJiZmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxJKXtsZXQgcj1MQShBKSxvPXIuZGF0YSxpPVMuZnJvbShyLmhlYWRlcnMpLm5vcm1hbGl6ZSgpLHtyZXNwb25zZVR5cGU6YSxvblVwbG9hZFByb2dyZXNzOlEsb25Eb3dubG9hZFByb2dyZXNzOkN9PXIsZyxzLGMsQixFO2Z1bmN0aW9uIGYoKXtCJiZCKCksRSYmRSgpLHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUoZyksci5zaWduYWwmJnIuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixnKX1sZXQgbD1uZXcgWE1MSHR0cFJlcXVlc3Q7bC5vcGVuKHIubWV0aG9kLnRvVXBwZXJDYXNlKCksci51cmwsITApLGwudGltZW91dD1yLnRpbWVvdXQ7ZnVuY3Rpb24gcCgpe2lmKCFsKXJldHVybjtsZXQgaD1TLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBsJiZsLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxVPXtkYXRhOiFhfHxhPT09InRleHQifHxhPT09Impzb24iP2wucmVzcG9uc2VUZXh0OmwucmVzcG9uc2Usc3RhdHVzOmwuc3RhdHVzLHN0YXR1c1RleHQ6bC5zdGF0dXNUZXh0LGhlYWRlcnM6aCxjb25maWc6QSxyZXF1ZXN0Omx9O0NBKGZ1bmN0aW9uKE8pe3QoTyksZigpfSxmdW5jdGlvbihPKXtJKE8pLGYoKX0sVSksbD1udWxsfSJvbmxvYWRlbmQiaW4gbD9sLm9ubG9hZGVuZD1wOmwub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IWx8fGwucmVhZHlTdGF0ZSE9PTR8fGwuc3RhdHVzPT09MCYmIShsLnJlc3BvbnNlVVJMJiZsLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6Iik9PT0wKXx8c2V0VGltZW91dChwKX0sbC5vbmFib3J0PWZ1bmN0aW9uKCl7bCYmKEkobmV3IHUoIlJlcXVlc3QgYWJvcnRlZCIsdS5FQ09OTkFCT1JURUQsQSxsKSksbD1udWxsKX0sbC5vbmVycm9yPWZ1bmN0aW9uKCl7SShuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxBLGwpKSxsPW51bGx9LGwub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IFk9ci50aW1lb3V0PyJ0aW1lb3V0IG9mICIrci50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLFU9ci50cmFuc2l0aW9uYWx8fE5BO3IudGltZW91dEVycm9yTWVzc2FnZSYmKFk9ci50aW1lb3V0RXJyb3JNZXNzYWdlKSxJKG5ldyB1KFksVS5jbGFyaWZ5VGltZW91dEVycm9yP3UuRVRJTUVET1VUOnUuRUNPTk5BQk9SVEVELEEsbCkpLGw9bnVsbH0sbz09PXZvaWQgMCYmaS5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBsJiZuLmZvckVhY2goaS50b0pTT04oKSxmdW5jdGlvbihZLFUpe2wuc2V0UmVxdWVzdEhlYWRlcihVLFkpfSksbi5pc1VuZGVmaW5lZChyLndpdGhDcmVkZW50aWFscyl8fChsLndpdGhDcmVkZW50aWFscz0hIXIud2l0aENyZWRlbnRpYWxzKSxhJiZhIT09Impzb24iJiYobC5yZXNwb25zZVR5cGU9ci5yZXNwb25zZVR5cGUpLEMmJihbYyxFXT1YKEMsITApLGwuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGMpKSxRJiZsLnVwbG9hZCYmKFtzLEJdPVgoUSksbC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLHMpLGwudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLEIpKSwoci5jYW5jZWxUb2tlbnx8ci5zaWduYWwpJiYoZz1oPT57bCYmKEkoIWh8fGgudHlwZT9uZXcgSihudWxsLEEsbCk6aCksbC5hYm9ydCgpLGw9bnVsbCl9LHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKGcpLHIuc2lnbmFsJiYoci5zaWduYWwuYWJvcnRlZD9nKCk6ci5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGcpKSk7bGV0IEQ9cGUoci51cmwpO2lmKEQmJnkucHJvdG9jb2xzLmluZGV4T2YoRCk9PT0tMSl7SShuZXcgdSgiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIitEKyI6Iix1LkVSUl9CQURfUkVRVUVTVCxBKSk7cmV0dXJufWwuc2VuZChvfHxudWxsKX0pfTt2YXIgd3I9KEEsZSk9PntsZXR7bGVuZ3RoOnR9PUE9QT9BLmZpbHRlcihCb29sZWFuKTpbXTtpZihlfHx0KXtsZXQgST1uZXcgQWJvcnRDb250cm9sbGVyLHIsbz1mdW5jdGlvbihDKXtpZighcil7cj0hMCxhKCk7bGV0IGc9QyBpbnN0YW5jZW9mIEVycm9yP0M6dGhpcy5yZWFzb247SS5hYm9ydChnIGluc3RhbmNlb2YgdT9nOm5ldyBKKGcgaW5zdGFuY2VvZiBFcnJvcj9nLm1lc3NhZ2U6ZykpfX0saT1lJiZzZXRUaW1lb3V0KCgpPT57aT1udWxsLG8obmV3IHUoYHRpbWVvdXQgJHtlfSBvZiBtcyBleGNlZWRlZGAsdS5FVElNRURPVVQpKX0sZSksYT0oKT0+e0EmJihpJiZjbGVhclRpbWVvdXQoaSksaT1udWxsLEEuZm9yRWFjaChDPT57Qy51bnN1YnNjcmliZT9DLnVuc3Vic2NyaWJlKG8pOkMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfSksQT1udWxsKX07QS5mb3JFYWNoKEM9PkMuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pKTtsZXR7c2lnbmFsOlF9PUk7cmV0dXJuIFEudW5zdWJzY3JpYmU9KCk9Pm4uYXNhcChhKSxRfX0sd3Q9d3I7dmFyIG1yPWZ1bmN0aW9uKihBLGUpe2xldCB0PUEuYnl0ZUxlbmd0aDtpZighZXx8dDxlKXt5aWVsZCBBO3JldHVybn1sZXQgST0wLHI7Zm9yKDtJPHQ7KXI9SStlLHlpZWxkIEEuc2xpY2UoSSxyKSxJPXJ9LFNyPWFzeW5jIGZ1bmN0aW9uKihBLGUpe2ZvciBhd2FpdChsZXQgdCBvZiBGcihBKSl5aWVsZCptcih0LGUpfSxGcj1hc3luYyBmdW5jdGlvbiooQSl7aWYoQVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pe3lpZWxkKkE7cmV0dXJufWxldCBlPUEuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6dCx2YWx1ZTpJfT1hd2FpdCBlLnJlYWQoKTtpZih0KWJyZWFrO3lpZWxkIEl9fWZpbmFsbHl7YXdhaXQgZS5jYW5jZWwoKX19LHdlPShBLGUsdCxJKT0+e2xldCByPVNyKEEsZSksbz0wLGksYT1RPT57aXx8KGk9ITAsSSYmSShRKSl9O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwoUSl7dHJ5e2xldHtkb25lOkMsdmFsdWU6Z309YXdhaXQgci5uZXh0KCk7aWYoQyl7YSgpLFEuY2xvc2UoKTtyZXR1cm59bGV0IHM9Zy5ieXRlTGVuZ3RoO2lmKHQpe2xldCBjPW8rPXM7dChjKX1RLmVucXVldWUobmV3IFVpbnQ4QXJyYXkoZykpfWNhdGNoKEMpe3Rocm93IGEoQyksQ319LGNhbmNlbChRKXtyZXR1cm4gYShRKSxyLnJldHVybigpfX0se2hpZ2hXYXRlck1hcms6Mn0pfTt2YXIgTUE9dHlwZW9mIGZldGNoPT0iZnVuY3Rpb24iJiZ0eXBlb2YgUmVxdWVzdD09ImZ1bmN0aW9uIiYmdHlwZW9mIFJlc3BvbnNlPT0iZnVuY3Rpb24iLFN0PU1BJiZ0eXBlb2YgUmVhZGFibGVTdHJlYW09PSJmdW5jdGlvbiIsUnI9TUEmJih0eXBlb2YgVGV4dEVuY29kZXI9PSJmdW5jdGlvbiI/KEE9PmU9PkEuZW5jb2RlKGUpKShuZXcgVGV4dEVuY29kZXIpOmFzeW5jIEE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBSZXNwb25zZShBKS5hcnJheUJ1ZmZlcigpKSksRnQ9KEEsLi4uZSk9Pnt0cnl7cmV0dXJuISFBKC4uLmUpfWNhdGNoe3JldHVybiExfX0sa3I9U3QmJkZ0KCgpPT57bGV0IEE9ITEsZT1uZXcgUmVxdWVzdCh5Lm9yaWdpbix7Ym9keTpuZXcgUmVhZGFibGVTdHJlYW0sbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIEE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gQSYmIWV9KSxtdD02NCoxMDI0LG1lPVN0JiZGdCgoKT0+bi5pc1JlYWRhYmxlU3RyZWFtKG5ldyBSZXNwb25zZSgiIikuYm9keSkpLEpBPXtzdHJlYW06bWUmJihBPT5BLmJvZHkpfTtNQSYmKEE9PntbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goZT0+eyFKQVtlXSYmKEpBW2VdPW4uaXNGdW5jdGlvbihBW2VdKT90PT50W2VdKCk6KHQsSSk9Pnt0aHJvdyBuZXcgdShgUmVzcG9uc2UgdHlwZSAnJHtlfScgaXMgbm90IHN1cHBvcnRlZGAsdS5FUlJfTk9UX1NVUFBPUlQsSSl9KX0pfSkobmV3IFJlc3BvbnNlKTt2YXIgVXI9YXN5bmMgQT0+e2lmKEE9PW51bGwpcmV0dXJuIDA7aWYobi5pc0Jsb2IoQSkpcmV0dXJuIEEuc2l6ZTtpZihuLmlzU3BlY0NvbXBsaWFudEZvcm0oQSkpcmV0dXJuKGF3YWl0IG5ldyBSZXF1ZXN0KHkub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6QX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYobi5pc0FycmF5QnVmZmVyVmlldyhBKXx8bi5pc0FycmF5QnVmZmVyKEEpKXJldHVybiBBLmJ5dGVMZW5ndGg7aWYobi5pc1VSTFNlYXJjaFBhcmFtcyhBKSYmKEE9QSsiIiksbi5pc1N0cmluZyhBKSlyZXR1cm4oYXdhaXQgUnIoQSkpLmJ5dGVMZW5ndGh9LE5yPWFzeW5jKEEsZSk9PntsZXQgdD1uLnRvRmluaXRlTnVtYmVyKEEuZ2V0Q29udGVudExlbmd0aCgpKTtyZXR1cm4gdD8/VXIoZSl9LFJ0PU1BJiYoYXN5bmMgQT0+e2xldHt1cmw6ZSxtZXRob2Q6dCxkYXRhOkksc2lnbmFsOnIsY2FuY2VsVG9rZW46byx0aW1lb3V0Omksb25Eb3dubG9hZFByb2dyZXNzOmEsb25VcGxvYWRQcm9ncmVzczpRLHJlc3BvbnNlVHlwZTpDLGhlYWRlcnM6Zyx3aXRoQ3JlZGVudGlhbHM6cz0ic2FtZS1vcmlnaW4iLGZldGNoT3B0aW9uczpjfT1MQShBKTtDPUM/KEMrIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBCPXd0KFtyLG8mJm8udG9BYm9ydFNpZ25hbCgpXSxpKSxFLGY9QiYmQi51bnN1YnNjcmliZSYmKCgpPT57Qi51bnN1YnNjcmliZSgpfSksbDt0cnl7aWYoUSYma3ImJnQhPT0iZ2V0IiYmdCE9PSJoZWFkIiYmKGw9YXdhaXQgTnIoZyxJKSkhPT0wKXtsZXQgVT1uZXcgUmVxdWVzdChlLHttZXRob2Q6IlBPU1QiLGJvZHk6SSxkdXBsZXg6ImhhbGYifSksVDtpZihuLmlzRm9ybURhdGEoSSkmJihUPVUuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmZy5zZXRDb250ZW50VHlwZShUKSxVLmJvZHkpe2xldFtPLHBBXT1kZShsLFgoeWUoUSkpKTtJPXdlKFUuYm9keSxtdCxPLHBBKX19bi5pc1N0cmluZyhzKXx8KHM9cz8iaW5jbHVkZSI6Im9taXQiKTtsZXQgcD0iY3JlZGVudGlhbHMiaW4gUmVxdWVzdC5wcm90b3R5cGU7RT1uZXcgUmVxdWVzdChlLHsuLi5jLHNpZ25hbDpCLG1ldGhvZDp0LnRvVXBwZXJDYXNlKCksaGVhZGVyczpnLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6SSxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOnA/czp2b2lkIDB9KTtsZXQgRD1hd2FpdCBmZXRjaChFKSxoPW1lJiYoQz09PSJzdHJlYW0ifHxDPT09InJlc3BvbnNlIik7aWYobWUmJihhfHxoJiZmKSl7bGV0IFU9e307WyJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyJdLmZvckVhY2goWWU9PntVW1llXT1EW1llXX0pO2xldCBUPW4udG9GaW5pdGVOdW1iZXIoRC5oZWFkZXJzLmdldCgiY29udGVudC1sZW5ndGgiKSksW08scEFdPWEmJmRlKFQsWCh5ZShhKSwhMCkpfHxbXTtEPW5ldyBSZXNwb25zZSh3ZShELmJvZHksbXQsTywoKT0+e3BBJiZwQSgpLGYmJmYoKX0pLFUpfUM9Q3x8InRleHQiO2xldCBZPWF3YWl0IEpBW24uZmluZEtleShKQSxDKXx8InRleHQiXShELEEpO3JldHVybiFoJiZmJiZmKCksYXdhaXQgbmV3IFByb21pc2UoKFUsVCk9PntDQShVLFQse2RhdGE6WSxoZWFkZXJzOlMuZnJvbShELmhlYWRlcnMpLHN0YXR1czpELnN0YXR1cyxzdGF0dXNUZXh0OkQuc3RhdHVzVGV4dCxjb25maWc6QSxyZXF1ZXN0OkV9KX0pfWNhdGNoKHApe3Rocm93IGYmJmYoKSxwJiZwLm5hbWU9PT0iVHlwZUVycm9yIiYmL2ZldGNoL2kudGVzdChwLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IHUoIk5ldHdvcmsgRXJyb3IiLHUuRVJSX05FVFdPUkssQSxFKSx7Y2F1c2U6cC5jYXVzZXx8cH0pOnUuZnJvbShwLHAmJnAuY29kZSxBLEUpfX0pO3ZhciBTZT17aHR0cDprQSx4aHI6aHQsZmV0Y2g6UnR9O24uZm9yRWFjaChTZSwoQSxlKT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOmV9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6ZX0pfX0pO3ZhciBrdD1BPT5gLSAke0F9YCxHcj1BPT5uLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsWUE9e2dldEFkYXB0ZXI6QT0+e0E9bi5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6ZX09QSx0LEkscj17fTtmb3IobGV0IG89MDtvPGU7bysrKXt0PUFbb107bGV0IGk7aWYoST10LCFHcih0KSYmKEk9U2VbKGk9U3RyaW5nKHQpKS50b0xvd2VyQ2FzZSgpXSxJPT09dm9pZCAwKSl0aHJvdyBuZXcgdShgVW5rbm93biBhZGFwdGVyICcke2l9J2ApO2lmKEkpYnJlYWs7cltpfHwiIyIrb109SX1pZighSSl7bGV0IG89T2JqZWN0LmVudHJpZXMocikubWFwKChbYSxRXSk9PmBhZGFwdGVyICR7YX0gYCsoUT09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLGk9ZT9vLmxlbmd0aD4xP2BzaW5jZSA6CmArby5tYXAoa3QpLmpvaW4oYApgKToiICIra3Qob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK2ksIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiBJfSxhZGFwdGVyczpTZX07ZnVuY3Rpb24gRmUoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEoobnVsbCxBKX1mdW5jdGlvbiBIQShBKXtyZXR1cm4gRmUoQSksQS5oZWFkZXJzPVMuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1zQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksWUEuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fFYuYWRhcHRlcikoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gRmUoQSksSS5kYXRhPXNBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1TLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gYUEoSSl8fChGZShBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPXNBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1TLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIFRBPSIxLjguNCI7dmFyIHFBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSxlKT0+e3FBW0FdPWZ1bmN0aW9uKEkpe3JldHVybiB0eXBlb2YgST09PUF8fCJhIisoZTwxPyJuICI6IiAiKStBfX0pO3ZhciBVdD17fTtxQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSx0LEkpe2Z1bmN0aW9uIHIobyxpKXtyZXR1cm4iW0F4aW9zIHYiK1RBKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIrbysiJyIraSsoST8iLiAiK0k6IiIpfXJldHVybihvLGksYSk9PntpZihlPT09ITEpdGhyb3cgbmV3IHUocihpLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKHQ/IiBpbiAiK3Q6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gdCYmIVV0W2ldJiYoVXRbaV09ITAsY29uc29sZS53YXJuKHIoaSwiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrdCsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSxlP2UobyxpLGEpOiEwfX07cUEuc3BlbGxpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuKHQsSSk9Pihjb25zb2xlLndhcm4oYCR7SX0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHtlfWApLCEwKX07ZnVuY3Rpb24gYnIoQSxlLHQpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IEk9T2JqZWN0LmtleXMoQSkscj1JLmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBvPUlbcl0saT1lW29dO2lmKGkpe2xldCBhPUFbb10sUT1hPT09dm9pZCAwfHxpKGEsbyxBKTtpZihRIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK28rIiBtdXN0IGJlICIrUSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZih0IT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIrbyx1LkVSUl9CQURfT1BUSU9OKX19dmFyIFFBPXthc3NlcnRPcHRpb25zOmJyLHZhbGlkYXRvcnM6cUF9O3ZhciBNPVFBLnZhbGlkYXRvcnMsXz1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmRlZmF1bHRzPWUsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IEJlLHJlc3BvbnNlOm5ldyBCZX19YXN5bmMgcmVxdWVzdChlLHQpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdChlLHQpfWNhdGNoKEkpe2lmKEkgaW5zdGFuY2VvZiBFcnJvcil7bGV0IHI9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uocik6cj1uZXcgRXJyb3I7bGV0IG89ci5zdGFjaz9yLnN0YWNrLnJlcGxhY2UoL14uK1xuLywiIik6IiI7dHJ5e0kuc3RhY2s/byYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChvLnJlcGxhY2UoL14uK1xuLitcbi8sIiIpKSYmKEkuc3RhY2srPWAKYCtvKTpJLnN0YWNrPW99Y2F0Y2h7fX10aHJvdyBJfX1fcmVxdWVzdChlLHQpe3R5cGVvZiBlPT0ic3RyaW5nIj8odD10fHx7fSx0LnVybD1lKTp0PWV8fHt9LHQ9TCh0aGlzLmRlZmF1bHRzLHQpO2xldHt0cmFuc2l0aW9uYWw6SSxwYXJhbXNTZXJpYWxpemVyOnIsaGVhZGVyczpvfT10O0khPT12b2lkIDAmJlFBLmFzc2VydE9wdGlvbnMoSSx7c2lsZW50SlNPTlBhcnNpbmc6TS50cmFuc2l0aW9uYWwoTS5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpNLnRyYW5zaXRpb25hbChNLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6TS50cmFuc2l0aW9uYWwoTS5ib29sZWFuKX0sITEpLHIhPW51bGwmJihuLmlzRnVuY3Rpb24ocik/dC5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6cn06UUEuYXNzZXJ0T3B0aW9ucyhyLHtlbmNvZGU6TS5mdW5jdGlvbixzZXJpYWxpemU6TS5mdW5jdGlvbn0sITApKSx0LmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD90LmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6dC5hbGxvd0Fic29sdXRlVXJscz0hMCksUUEuYXNzZXJ0T3B0aW9ucyh0LHtiYXNlVXJsOk0uc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOk0uc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLHQubWV0aG9kPSh0Lm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBpPW8mJm4ubWVyZ2Uoby5jb21tb24sb1t0Lm1ldGhvZF0pO28mJm4uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxFPT57ZGVsZXRlIG9bRV19KSx0LmhlYWRlcnM9Uy5jb25jYXQoaSxvKTtsZXQgYT1bXSxRPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihmKXt0eXBlb2YgZi5ydW5XaGVuPT0iZnVuY3Rpb24iJiZmLnJ1bldoZW4odCk9PT0hMXx8KFE9USYmZi5zeW5jaHJvbm91cyxhLnVuc2hpZnQoZi5mdWxmaWxsZWQsZi5yZWplY3RlZCkpfSk7bGV0IEM9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihmKXtDLnB1c2goZi5mdWxmaWxsZWQsZi5yZWplY3RlZCl9KTtsZXQgZyxzPTAsYztpZighUSl7bGV0IEU9W0hBLmJpbmQodGhpcyksdm9pZCAwXTtmb3IoRS51bnNoaWZ0LmFwcGx5KEUsYSksRS5wdXNoLmFwcGx5KEUsQyksYz1FLmxlbmd0aCxnPVByb21pc2UucmVzb2x2ZSh0KTtzPGM7KWc9Zy50aGVuKEVbcysrXSxFW3MrK10pO3JldHVybiBnfWM9YS5sZW5ndGg7bGV0IEI9dDtmb3Iocz0wO3M8Yzspe2xldCBFPWFbcysrXSxmPWFbcysrXTt0cnl7Qj1FKEIpfWNhdGNoKGwpe2YuY2FsbCh0aGlzLGwpO2JyZWFrfX10cnl7Zz1IQS5jYWxsKHRoaXMsQil9Y2F0Y2goRSl7cmV0dXJuIFByb21pc2UucmVqZWN0KEUpfWZvcihzPTAsYz1DLmxlbmd0aDtzPGM7KWc9Zy50aGVuKENbcysrXSxDW3MrK10pO3JldHVybiBnfWdldFVyaShlKXtlPUwodGhpcy5kZWZhdWx0cyxlKTtsZXQgdD1CQShlLmJhc2VVUkwsZS51cmwsZS5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIGdBKHQsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKX19O24uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24oZSl7Xy5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxJKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KEwoSXx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KEl8fHt9KS5kYXRhfSkpfX0pO24uZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoSSl7cmV0dXJuIGZ1bmN0aW9uKG8saSxhKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KEwoYXx8e30se21ldGhvZDplLGhlYWRlcnM6ST97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6byxkYXRhOml9KSl9fV8ucHJvdG90eXBlW2VdPXQoKSxfLnByb3RvdHlwZVtlKyJGb3JtIl09dCghMCl9KTt2YXIgRUE9Xzt2YXIgUmU9Y2xhc3MgQXtjb25zdHJ1Y3RvcihlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG8pe3Q9b30pO2xldCBJPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4ocj0+e2lmKCFJLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBvPUkuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtvLS0gPjA7KUkuX2xpc3RlbmVyc1tvXShyKTtJLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPXI9PntsZXQgbyxpPW5ldyBQcm9taXNlKGE9PntJLnN1YnNjcmliZShhKSxvPWF9KS50aGVuKHIpO3JldHVybiBpLmNhbmNlbD1mdW5jdGlvbigpe0kudW5zdWJzY3JpYmUobyl9LGl9LGUoZnVuY3Rpb24obyxpLGEpe0kucmVhc29ufHwoSS5yZWFzb249bmV3IEoobyxpLGEpLHQoSS5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUoZSl7aWYodGhpcy5yZWFzb24pe2UodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX11bnN1YnNjcmliZShlKXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcix0PUk9PntlLmFib3J0KEkpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUodCksZS5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUodCksZS5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCBlO3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihyKXtlPXJ9KSxjYW5jZWw6ZX19fSxOdD1SZTtmdW5jdGlvbiBrZShBKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEEuYXBwbHkobnVsbCx0KX19ZnVuY3Rpb24gVWUoQSl7cmV0dXJuIG4uaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIE5lPXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhOZSkuZm9yRWFjaCgoW0EsZV0pPT57TmVbZV09QX0pO3ZhciBHdD1OZTtmdW5jdGlvbiBidChBKXtsZXQgZT1uZXcgRUEoQSksdD1yQShFQS5wcm90b3R5cGUucmVxdWVzdCxlKTtyZXR1cm4gbi5leHRlbmQodCxFQS5wcm90b3R5cGUsZSx7YWxsT3duS2V5czohMH0pLG4uZXh0ZW5kKHQsZSxudWxsLHthbGxPd25LZXlzOiEwfSksdC5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIGJ0KEwoQSxyKSl9LHR9dmFyIHc9YnQoVik7dy5BeGlvcz1FQTt3LkNhbmNlbGVkRXJyb3I9Sjt3LkNhbmNlbFRva2VuPU50O3cuaXNDYW5jZWw9YUE7dy5WRVJTSU9OPVRBO3cudG9Gb3JtRGF0YT14O3cuQXhpb3NFcnJvcj11O3cuQ2FuY2VsPXcuQ2FuY2VsZWRFcnJvcjt3LmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9O3cuc3ByZWFkPWtlO3cuaXNBeGlvc0Vycm9yPVVlO3cubWVyZ2VDb25maWc9TDt3LkF4aW9zSGVhZGVycz1TO3cuZm9ybVRvSlNPTj1BPT5HQShuLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO3cuZ2V0QWRhcHRlcj1ZQS5nZXRBZGFwdGVyO3cuSHR0cFN0YXR1c0NvZGU9R3Q7dy5kZWZhdWx0PXc7dmFyICQ9dzt2YXJ7QXhpb3M6WG4sQXhpb3NFcnJvcjpfbixDYW5jZWxlZEVycm9yOiRuLGlzQ2FuY2VsOkFzLENhbmNlbFRva2VuOmVzLFZFUlNJT046dHMsYWxsOklzLENhbmNlbDpycyxpc0F4aW9zRXJyb3I6b3Msc3ByZWFkOmlzLHRvRm9ybURhdGE6Z3MsQXhpb3NIZWFkZXJzOm5zLEh0dHBTdGF0dXNDb2RlOnNzLGZvcm1Ub0pTT046YXMsZ2V0QWRhcHRlcjpDcyxtZXJnZUNvbmZpZzpCc309JDthc3luYyBmdW5jdGlvbiBMcihBLGUpe2xldCB0PUEsST1udWxsO2lmKHQ9PW51bGwpST1uZXcgV29ya2VyKG5ldyBVUkwoIi4vd2ViLXdvcmtlcnMvaXRrLXdhc20tcGlwZWxpbmUud29ya2VyLmpzIixpbXBvcnQubWV0YS51cmwpLHt0eXBlOiJtb2R1bGUifSk7ZWxzZSBpZih0LnN0YXJ0c1dpdGgoImh0dHAiKSl7bGV0IHI9YXdhaXQgJC5nZXQodCx7cmVzcG9uc2VUeXBlOiJibG9iIixwYXJhbXM6ZX0pLG89VVJMLmNyZWF0ZU9iamVjdFVSTChyLmRhdGEpO0k9bmV3IFdvcmtlcihvLHt0eXBlOiJtb2R1bGUifSl9ZWxzZSBJPW5ldyBXb3JrZXIodCx7dHlwZToibW9kdWxlIn0pO3JldHVybiBJfXZhciBsQT1McjtmdW5jdGlvbiBMdChBKXtsZXQgZT1pZShBKSx0PUE7cmV0dXJuIHQudGVybWluYXRlZD0hMSx0LndvcmtlclByb3h5PWUsdC5vcmlnaW5hbFRlcm1pbmF0ZT10LnRlcm1pbmF0ZSx0LnRlcm1pbmF0ZT0oKT0+e3QudGVybWluYXRlZD0hMCx0LndvcmtlclByb3h5W29lXSgpLHQub3JpZ2luYWxUZXJtaW5hdGUoKX0se3dvcmtlclByb3h5OmUsd29ya2VyOnR9fWFzeW5jIGZ1bmN0aW9uIEpyKEEsZSx0KXtsZXQgSTtpZihBIT1udWxsKXtsZXQgbz1BO3JldHVybiBvLndvcmtlclByb3h5IT09dm9pZCAwPyhJPW8ud29ya2VyUHJveHkse3dvcmtlclByb3h5Okksd29ya2VyOm99KTpMdChBKX1sZXQgcj1hd2FpdCBsQShlLHQpO3JldHVybiBMdChyKX12YXIgSnQ9SnI7dmFyIGNBLEgsYmUsR2U9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXtiZT1uZXcgVWludDhBcnJheShILmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0seEE9Y2xhc3N7aW5pdCgpe3JldHVybiBjQXx8KHR5cGVvZiBmZXRjaDwidSI/Y0E9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitNdCkudGhlbihlPT5lLmFycmF5QnVmZmVyKCkpLnRoZW4oZT0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoZSxHZSkpLnRoZW4odGhpcy5faW5pdCk6Y0E9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oTXQsImJhc2U2NCIpLEdlKS50aGVuKHRoaXMuX2luaXQpLGNBKX1faW5pdChlKXtIPWUuaW5zdGFuY2UsR2UuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKGUsdD0wKXtpZighSCl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgST1lLmJ5dGVMZW5ndGgscj1ILmV4cG9ydHMubWFsbG9jKEkpO2JlLnNldChlLHIpLHQ9dHx8TnVtYmVyKEguZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKHIsSSkpO2xldCBvPUguZXhwb3J0cy5tYWxsb2ModCksaT1ILmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKG8sdCxyLEkpLGE9YmUuc2xpY2UobyxvK2kpO3JldHVybiBILmV4cG9ydHMuZnJlZShyKSxILmV4cG9ydHMuZnJlZShvKSxhfX0sTXQ9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgWXQ9bmV3IHhBLEh0PSExO2FzeW5jIGZ1bmN0aW9uIE1yKEEsZSx0KXtsZXQgST0idW5rbm93biI7dHlwZW9mIEEhPSJzdHJpbmciP0k9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP0k9QTpJPXR5cGVvZiBlPCJ1Ij9gJHtlfS8ke0F9YDpBLEkuZW5kc1dpdGgoIi5qcyIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTMpKSxJLmVuZHNXaXRoKCIud2FzbSIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTUpKSxJLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC05KSk7bGV0IHI9YCR7SX0ud2FzbWAsbz1hd2FpdCAkLmdldChgJHtyfS56c3RgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIixwYXJhbXM6dH0pO0h0fHwoYXdhaXQgWXQuaW5pdCgpLEh0PSEwKTtsZXQgYT1ZdC5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoby5kYXRhKSkuYnVmZmVyO3JldHVybihhd2FpdCBpbXBvcnQoYCR7SX0uanNgKSkuZGVmYXVsdCh7d2FzbUJpbmFyeTphfSl9dmFyIFR0PU1yO3ZhciBxdD1hc3luYygpPT5XZWJBc3NlbWJseS52YWxpZGF0ZShuZXcgVWludDhBcnJheShbMCw5NywxMTUsMTA5LDEsMCwwLDAsMSw1LDEsOTYsMCwxLDEyMywzLDIsMSwwLDEwLDEwLDEsOCwwLDY1LDAsMjUzLDE1LDI1Myw5OCwxMV0pKTt2YXIgT3Q9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI9PSJmdW5jdGlvbiIseHQ9bmV3IFRleHRFbmNvZGVyLFB0PW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKTtmdW5jdGlvbiBZcihBLGUpe2xldCB0PXtmbGFnczoiciIsZW5jb2Rpbmc6ImJpbmFyeSJ9LEk9QS5mc19vcGVuKGUsdC5mbGFncyksbz1BLmZzX3N0YXQoZSkuc2l6ZSxpPW51bGw7T3Q/aT1uZXcgU2hhcmVkQXJyYXlCdWZmZXIobyk6aT1uZXcgQXJyYXlCdWZmZXIobyk7bGV0IGE9bmV3IFVpbnQ4QXJyYXkoaSk7cmV0dXJuIEEuZnNfcmVhZChJLGEsMCxvLDApLEEuZnNfY2xvc2UoSSksYX1mdW5jdGlvbiBLdChBLGUsdCl7bGV0IEk9bnVsbDtPdD9JPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcih0KTpJPW5ldyBBcnJheUJ1ZmZlcih0KTtsZXQgcj1uZXcgVWludDhBcnJheShJKSxvPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixlLHQpO3JldHVybiByLnNldChvKSxyfWZ1bmN0aW9uIG0oQSxlLHQsSSl7bGV0IHI9MDtyZXR1cm4gZSE9PW51bGwmJihyPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2FycmF5X2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsSSxlLmJ1ZmZlci5ieXRlTGVuZ3RoXSksQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KGUuYnVmZmVyKSxyKSkscn1mdW5jdGlvbiBQKEEsZSx0KXtsZXQgST1KU09OLnN0cmluZ2lmeShlKSxyPUEubGVuZ3RoQnl0ZXNVVEY4KEkpKzEsbz1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQscl0pO0Euc3RyaW5nVG9VVEY4KEksbyxyKX1mdW5jdGlvbiBSKEEsZSx0LEkpe2xldCByPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsdF0pLG89QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksaT1LdChBLHIsbyk7cmV0dXJuIGsoSSxpLmJ1ZmZlcil9ZnVuY3Rpb24gZkEoQSxlKXtsZXQgdD1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLGVdKSxJPUEuVVRGOFRvU3RyaW5nKHQpO3JldHVybiBKU09OLnBhcnNlKEkpfWZ1bmN0aW9uIEhyKEEsZSx0LEkpe0khPW51bGwmJkkubGVuZ3RoPjAmJkkuZm9yRWFjaChmdW5jdGlvbihDLGcpe3N3aXRjaChDLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgcz14dC5lbmNvZGUoQy5kYXRhLmRhdGEpLGM9bShBLHMsZywwKSxCPXtzaXplOnMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YH07UChBLEIsZyk7YnJlYWt9Y2FzZSBkLkpzb25Db21wYXRpYmxlOntsZXQgcz14dC5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoQy5kYXRhKSksYz1tKEEscyxnLDApLEI9e3NpemU6cy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gfTtQKEEsQixnKTticmVha31jYXNlIGQuQmluYXJ5U3RyZWFtOntsZXQgcz1DLmRhdGEuZGF0YSxjPW0oQSxzLGcsMCksQj17c2l6ZTpzLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWB9O1AoQSxCLGcpO2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoQy5kYXRhLnBhdGgsQy5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgZC5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShDLmRhdGEucGF0aCxDLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkltYWdlOntsZXQgcz1DLmRhdGEsYz1tKEEscy5kYXRhLGcsMCksQj1tKEEscy5kaXJlY3Rpb24sZywxKSxFPXR5cGVvZiBzLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKHMubWV0YWRhdGEuZW50cmllcygpKTpbXSxmPXtpbWFnZVR5cGU6cy5pbWFnZVR5cGUsbmFtZTpzLm5hbWUsb3JpZ2luOnMub3JpZ2luLHNwYWNpbmc6cy5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxzaXplOnMuc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG1ldGFkYXRhOkV9O1AoQSxmLGcpO2JyZWFrfWNhc2UgZC5NZXNoOntsZXQgcz1DLmRhdGEsYz1tKEEscy5wb2ludHMsZywwKSxCPW0oQSxzLmNlbGxzLGcsMSksRT1tKEEscy5wb2ludERhdGEsZywyKSxmPW0oQSxzLmNlbGxEYXRhLGcsMyksbD17bWVzaFR5cGU6cy5tZXNoVHlwZSxuYW1lOnMubmFtZSxudW1iZXJPZlBvaW50czpzLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZkNlbGxzOnMubnVtYmVyT2ZDZWxscyxjZWxsczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxjZWxsQnVmZmVyU2l6ZTpzLmNlbGxCdWZmZXJTaXplLG51bWJlck9mUG9pbnRQaXhlbHM6cy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0V9YCxudW1iZXJPZkNlbGxQaXhlbHM6cy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O1AoQSxsLGcpO2JyZWFrfWNhc2UgZC5Qb2ludFNldDp7bGV0IHM9Qy5kYXRhLGM9bShBLHMucG9pbnRzLGcsMCksQj1tKEEscy5wb2ludERhdGEsZywxKSxFPXtwb2ludFNldFR5cGU6cy5wb2ludFNldFR5cGUsbmFtZTpzLm5hbWUsbnVtYmVyT2ZQb2ludHM6cy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpzLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gfTtQKEEsRSxnKTticmVha31jYXNlIGQuVHJhbnNmb3JtTGlzdDp7bGV0IHM9Qy5kYXRhLGM9W10sQj0wO3MuZm9yRWFjaChFPT57bGV0IGY9IiIsbD0iIjtFLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoZj1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke20oQSxFLmZpeGVkUGFyYW1ldGVycyxnLEIpfWAsQis9MSxsPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bShBLEUucGFyYW1ldGVycyxnLEIpfWAsQis9MSk7bGV0IHA9e3RyYW5zZm9ybVR5cGU6RS50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOkUubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOkUubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6RS5uYW1lLGlucHV0U3BhY2VOYW1lOkUuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOkUub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6bCxmaXhlZFBhcmFtZXRlcnM6Zn07Yy5wdXNoKHApfSksUChBLGMsZyk7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgcz1DLmRhdGEsYz1tKEEscy5wb2ludHMsZywwKSxCPW0oQSxzLnZlcnRpY2VzLGcsMSksRT1tKEEscy5saW5lcyxnLDIpLGY9bShBLHMucG9seWdvbnMsZywzKSxsPW0oQSxzLnRyaWFuZ2xlU3RyaXBzLGcsNCkscD1tKEEscy5wb2ludERhdGEsZyw1KSxEPW0oQSxzLnBvaW50RGF0YSxnLDYpLGg9e3BvbHlEYXRhVHlwZTpzLnBvbHlEYXRhVHlwZSxuYW1lOnMubmFtZSxudW1iZXJPZlBvaW50czpzLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCx2ZXJ0aWNlc0J1ZmZlclNpemU6cy52ZXJ0aWNlc0J1ZmZlclNpemUsdmVydGljZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsbGluZXNCdWZmZXJTaXplOnMubGluZXNCdWZmZXJTaXplLGxpbmVzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7RX1gLHBvbHlnb25zQnVmZmVyU2l6ZTpzLnBvbHlnb25zQnVmZmVyU2l6ZSxwb2x5Z29uczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCx0cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU6cy50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemUsdHJpYW5nbGVTdHJpcHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpzLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7cH1gLG51bWJlck9mQ2VsbFBpeGVsczpzLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0R9YH07UChBLGgsZyk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IHI9QS5zdGFja1NhdmUoKSxvPTA7dHJ5e289QS5jYWxsTWFpbihlLnNsaWNlKCkpfWNhdGNoKEMpe3Rocm93IHR5cGVvZiBDPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKEMpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLEN9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShyKX1sZXQgaT1BLmdldE1vZHVsZVN0ZG91dCgpLGE9QS5nZXRNb2R1bGVTdGRlcnIoKSxRPVtdO3JldHVybiB0IT1udWxsJiZ0Lmxlbmd0aD4wJiZvPT09MCYmdC5mb3JFYWNoKGZ1bmN0aW9uKEMsZyl7bGV0IHM9bnVsbDtzd2l0Y2goQy50eXBlKXtjYXNlIGQuVGV4dFN0cmVhbTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZywwXSksRT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxnLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixCLEUpO3M9e2RhdGE6UHQuZGVjb2RlKGYpfTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGcsMF0pLEU9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZywwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQixFKTtzPUpTT04ucGFyc2UoUHQuZGVjb2RlKGYpKTticmVha31jYXNlIGQuQmluYXJ5U3RyZWFtOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxnLDBdKSxFPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGcsMF0pO3M9e2RhdGE6S3QoQSxCLEUpfTticmVha31jYXNlIGQuVGV4dEZpbGU6e3M9e3BhdGg6Qy5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKEMuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e3M9e3BhdGg6Qy5kYXRhLnBhdGgsZGF0YTpZcihBLEMuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSBkLkltYWdlOntsZXQgQj1mQShBLGcpO0IuZGF0YT1SKEEsZywwLEIuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLEIuZGlyZWN0aW9uPVIoQSxnLDEsTi5GbG9hdDY0KSxCLm1ldGFkYXRhPW5ldyBNYXAoQi5tZXRhZGF0YSkscz1CO2JyZWFrfWNhc2UgZC5NZXNoOntsZXQgQj1mQShBLGcpO0IubnVtYmVyT2ZQb2ludHM+MD9CLnBvaW50cz1SKEEsZywwLEIubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpCLnBvaW50cz1rKEIubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxzPjA/Qi5jZWxscz1SKEEsZywxLEIubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOkIuY2VsbHM9ayhCLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9UihBLGcsMixCLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1rKEIubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mQ2VsbFBpeGVscz4wP0IuY2VsbERhdGE9UihBLGcsMyxCLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkIuY2VsbERhdGE9ayhCLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxzPUI7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgQj1mQShBLGcpO0IubnVtYmVyT2ZQb2ludHM+MD9CLnBvaW50cz1SKEEsZywwLEIucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qi5wb2ludHM9ayhCLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1SKEEsZywxLEIucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1rKEIucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSkscz1CO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgQj1mQShBLGcpLEU9MDtCLmZvckVhY2goKGYsbCk9PntmLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoZi5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYoQltsXS5maXhlZFBhcmFtZXRlcnM9UihBLGcsRSxOLkZsb2F0NjQpKSxFKz0xLGYubnVtYmVyT2ZQYXJhbWV0ZXJzPjAmJihCW2xdLnBhcmFtZXRlcnM9UihBLGcsRSxmLnRyYW5zZm9ybVR5cGUucGFyYW1ldGVyc1ZhbHVlVHlwZSkpLEUrPTEpfSkscz1CO2JyZWFrfWNhc2UgZC5Qb2x5RGF0YTp7bGV0IEI9ZkEoQSxnKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9UihBLGcsMCxOLkZsb2F0MzIpOkIucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXksQi52ZXJ0aWNlc0J1ZmZlclNpemU+MD9CLnZlcnRpY2VzPVIoQSxnLDEsRi5VSW50MzIpOkIudmVydGljZXM9bmV3IFVpbnQzMkFycmF5LEIubGluZXNCdWZmZXJTaXplPjA/Qi5saW5lcz1SKEEsZywyLEYuVUludDMyKTpCLmxpbmVzPW5ldyBVaW50MzJBcnJheSxCLnBvbHlnb25zQnVmZmVyU2l6ZT4wP0IucG9seWdvbnM9UihBLGcsMyxGLlVJbnQzMik6Qi5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXksQi50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9CLnRyaWFuZ2xlU3RyaXBzPVIoQSxnLDQsRi5VSW50MzIpOkIudHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPVIoQSxnLDUsQi5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkIucG9pbnREYXRhPWsoQi5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mQ2VsbFBpeGVscz4wP0IuY2VsbERhdGE9UihBLGcsNixCLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpCLmNlbGxEYXRhPWsoQi5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLHM9QjticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBjPXt0eXBlOkMudHlwZSxkYXRhOnN9O1EucHVzaChjKX0pLHtyZXR1cm5WYWx1ZTpvLHN0ZG91dDppLHN0ZGVycjphLG91dHB1dHM6UX19dmFyIFd0PUhyO3ZhciBUcj10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gcXIoQSxlKXtpZihBPT1udWxsKXJldHVybltdO2xldCB0PVtdO2ZvcihsZXQgST0wO0k8QS5sZW5ndGg7SSsrKXtsZXQgcj14cihBW0ldLGUpO3IhPT1udWxsJiZ0LnB1c2gocil9cmV0dXJuIHR9ZnVuY3Rpb24geHIoQSxlKXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCB0PW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP3Q9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYodD1BKSxUciYmdCBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6ZT90OnQuc2xpY2UoMCl9dmFyIGp0PXFyO2Z1bmN0aW9uIFByKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciB2dD1QcjtmdW5jdGlvbiBPcihBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgWnQ9T3I7ZnVuY3Rpb24gS3IoQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIFZ0PUtyO3ZhciBXcjtmdW5jdGlvbiBQQSgpe3JldHVybiBXcn12YXIganI7ZnVuY3Rpb24genQoKXtyZXR1cm4ganJ9dmFyIHZyO2Z1bmN0aW9uIE9BKCl7cmV0dXJuIHZyfXZhciBMZT1uZXcgTWFwO2Z1bmN0aW9uIFpyKCl7bGV0IEE9T0EoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1udWxsKSxBfWZ1bmN0aW9uIFh0KCl7bGV0IEE9UEEoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1uZXcgVVJMKCIvcGlwZWxpbmVzIixkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pLmhyZWYpLEF9ZnVuY3Rpb24gS0EoKXtsZXQgQT16dCgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPXt9KSxBfWFzeW5jIGZ1bmN0aW9uIFZyKEEsZSx0KXtsZXQgST1BLHI9QTtpZih0eXBlb2YgQSE9InN0cmluZyImJihJPW5ldyBVUkwoQS5ocmVmKSxyPUkuaHJlZiksTGUuaGFzKHIpKXJldHVybiBMZS5nZXQocik7e2xldCBvPWF3YWl0IFR0KEEsZT8udG9TdHJpbmcoKT8/WHQoKSx0Pz9LQSgpKTtyZXR1cm4gTGUuc2V0KHIsbyksb319YXN5bmMgZnVuY3Rpb24genIoQSxlLHQsSSxyKXtpZighYXdhaXQgcXQoKSl7bGV0IGw9IldlYkFzc2VtYmx5IFNJTUQgc3VwcG9ydCBpcyByZXF1aXJlZCAtLSBwbGVhc2UgdXBkYXRlIHlvdXIgYnJvd3Nlci4iO3Rocm93IGFsZXJ0KGwpLG5ldyBFcnJvcihsKX1sZXQgbz1yPy53ZWJXb3JrZXI/P251bGw7aWYobz09PSExKXtsZXQgbD1hd2FpdCBWcihBLnRvU3RyaW5nKCkscj8ucGlwZWxpbmVCYXNlVXJsLHI/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P0tBKCkpO3JldHVybiBXdChsLGUsdCxJKX1sZXQgaT1vLGE9cj8ucGlwZWxpbmVXb3JrZXJVcmw/P1pyKCksUT10eXBlb2YgYSE9InN0cmluZyImJnR5cGVvZiBhPy5ocmVmPCJ1Ij9hLmhyZWY6YSx7d29ya2VyUHJveHk6Qyx3b3JrZXI6Z309YXdhaXQgSnQoaSxRLHI/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P0tBKCkpO2k9ZztsZXQgcz1bXTtJIT1udWxsJiZJLmxlbmd0aD4wJiZJLmZvckVhY2goZnVuY3Rpb24obCl7aWYobC50eXBlPT09ZC5CaW5hcnlTdHJlYW0pe2xldCBwPWwuZGF0YS5kYXRhO3MucHVzaChwKX1lbHNlIGlmKGwudHlwZT09PWQuQmluYXJ5RmlsZSl7bGV0IHA9bC5kYXRhLmRhdGE7cy5wdXNoKHApfWVsc2UgaWYobC50eXBlPT09ZC5JbWFnZSl7bGV0IHA9bC5kYXRhO3AuZGF0YSE9PW51bGwmJnMucHVzaCguLi52dChwKSl9ZWxzZSBpZihsLnR5cGU9PT1kLk1lc2gpe2xldCBwPWwuZGF0YTtzLnB1c2goLi4uWnQocCkpfWVsc2UgaWYobC50eXBlPT09ZC5Qb2x5RGF0YSl7bGV0IHA9bC5kYXRhO3MucHVzaCguLi5WdChwKSl9fSk7bGV0IGM9cj8ucGlwZWxpbmVCYXNlVXJsPz9YdCgpLEI9dHlwZW9mIGMhPSJzdHJpbmciJiZ0eXBlb2YgYz8uaHJlZjwidSI/Yy5ocmVmOmMsRT1JIT1udWxsP2dlKEksanQocyxyPy5ub0NvcHkpKTpudWxsLGY9YXdhaXQgQy5ydW5QaXBlbGluZShBLnRvU3RyaW5nKCksQixlLHQsRSxyPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9LQSgpKTtyZXR1cm57cmV0dXJuVmFsdWU6Zi5yZXR1cm5WYWx1ZSxzdGRvdXQ6Zi5zdGRvdXQsc3RkZXJyOmYuc3RkZXJyLG91dHB1dHM6Zi5vdXRwdXRzLHdlYldvcmtlcjppfX12YXIgdUE9enI7dmFyIFhyPW51bGw7ZnVuY3Rpb24gX3QoKXtyZXR1cm4gWHJ9dmFyIEplLF9yPWBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL0BpdGstd2FzbS9jb21wcmVzcy1zdHJpbmdpZnlAJHt2QX0vZGlzdC9waXBlbGluZXNgO2Z1bmN0aW9uIHJhKEEpe0plPUF9ZnVuY3Rpb24gV0EoKXtpZih0eXBlb2YgSmU8InUiKXJldHVybiBKZTtsZXQgQT1QQSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpfcn12YXIgTWUsJHI9bnVsbDtmdW5jdGlvbiAkdChBKXtNZT1BfWZ1bmN0aW9uIEFBKCl7aWYodHlwZW9mIE1lPCJ1IilyZXR1cm4gTWU7bGV0IEE9T0EoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6JHJ9dmFyIGVBPW51bGw7YXN5bmMgZnVuY3Rpb24gQUkoKXtsZXQgQT1BQSgpLGU9dHlwZW9mIEEhPSJzdHJpbmciJiZ0eXBlb2YgQT8uaHJlZjwidSI/QS5ocmVmOkE7ZUE9YXdhaXQgbEEoZSl9ZnVuY3Rpb24gQ2EoQSl7ZUE9QX1hc3luYyBmdW5jdGlvbiBqQSgpe2lmKGVBIT09bnVsbClyZXR1cm4gZUEudGVybWluYXRlZCYmYXdhaXQgQUkoKSxlQTtsZXQgQT1fdCgpO3JldHVybiBBIT09bnVsbD9BOihhd2FpdCBBSSgpLGVBKX1hc3luYyBmdW5jdGlvbiBBbyhBLGU9e30pe2xldCB0PVt7dHlwZTpkLkJpbmFyeVN0cmVhbX1dLEk9W3t0eXBlOmQuQmluYXJ5U3RyZWFtLGRhdGE6e2RhdGE6QX19XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLnN0cmluZ2lmeSYmZS5zdHJpbmdpZnkmJnIucHVzaCgiLS1zdHJpbmdpZnkiKSxlLmNvbXByZXNzaW9uTGV2ZWwmJnIucHVzaCgiLS1jb21wcmVzc2lvbi1sZXZlbCIsZS5jb21wcmVzc2lvbkxldmVsLnRvU3RyaW5nKCkpLGUuZGF0YVVybFByZWZpeCYmci5wdXNoKCItLWRhdGEtdXJsLXByZWZpeCIsZS5kYXRhVXJsUHJlZml4LnRvU3RyaW5nKCkpO2xldCBhPSJjb21wcmVzcy1zdHJpbmdpZnkiLFE9ZT8ud2ViV29ya2VyO1E9PT12b2lkIDAmJihRPWF3YWl0IGpBKCkpO2xldHt3ZWJXb3JrZXI6QyxyZXR1cm5WYWx1ZTpnLHN0ZGVycjpzLG91dHB1dHM6Y309YXdhaXQgdUEoYSxyLHQsSSx7cGlwZWxpbmVCYXNlVXJsOldBKCkscGlwZWxpbmVXb3JrZXJVcmw6QUEoKSx3ZWJXb3JrZXI6USxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoZyE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpDLG91dHB1dDooY1swXT8uZGF0YSkuZGF0YX19dmFyIHRBPUFvO2FzeW5jIGZ1bmN0aW9uIGVvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOmQuQmluYXJ5U3RyZWFtfV0sST1be3R5cGU6ZC5CaW5hcnlTdHJlYW0sZGF0YTp7ZGF0YTpBfX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUucGFyc2VTdHJpbmcmJmUucGFyc2VTdHJpbmcmJnIucHVzaCgiLS1wYXJzZS1zdHJpbmciKTtsZXQgYT0icGFyc2Utc3RyaW5nLWRlY29tcHJlc3MiLFE9ZT8ud2ViV29ya2VyO1E9PT12b2lkIDAmJihRPWF3YWl0IGpBKCkpO2xldHt3ZWJXb3JrZXI6QyxyZXR1cm5WYWx1ZTpnLHN0ZGVycjpzLG91dHB1dHM6Y309YXdhaXQgdUEoYSxyLHQsSSx7cGlwZWxpbmVCYXNlVXJsOldBKCkscGlwZWxpbmVXb3JrZXJVcmw6QUEoKSx3ZWJXb3JrZXI6USxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoZyE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpDLG91dHB1dDooY1swXT8uZGF0YSkuZGF0YX19dmFyIElBPWVvO2FzeW5jIGZ1bmN0aW9uIHRvKEEsZT17fSl7bGV0IEk9bmV3IHpBKEEuaW1hZ2VUeXBlKTtJLm9yaWdpbj1BLm9yaWdpbixJLnNwYWNpbmc9QS5zcGFjaW5nLEkuc2l6ZT1BLnNpemUsSS5tZXRhZGF0YT1BLm1ldGFkYXRhO2xldCByPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKSxvPW5ldyBVaW50OEFycmF5KEEuZGlyZWN0aW9uLmJ1ZmZlciksaT1hd2FpdCB0QShvLHtjb21wcmVzc2lvbkxldmVsOjUsc3RyaW5naWZ5OiEwLHdlYldvcmtlcjplLndlYldvcmtlcixub0NvcHk6ZS5ub0NvcHl9KSxhPWkud2ViV29ya2VyLFE9aS5vdXRwdXQuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/aS5vdXRwdXQuYnVmZmVyOmkub3V0cHV0O2lmKEkuZGlyZWN0aW9uPXIuZGVjb2RlKFEpLEEuZGF0YT09PW51bGwpSS5kYXRhPW51bGw7ZWxzZXtsZXQgQz1uZXcgVWludDhBcnJheShBLmRhdGEuYnVmZmVyKSxnPWF3YWl0IHRBKEMse2NvbXByZXNzaW9uTGV2ZWw6NSxzdHJpbmdpZnk6ITAsd2ViV29ya2VyOmEsbm9Db3B5OmUubm9Db3B5fSkscz1nLm91dHB1dC5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9nLm91dHB1dC5idWZmZXI6Zy5vdXRwdXQ7SS5kYXRhPXIuZGVjb2RlKHMpfXJldHVybntlbmNvZGVkOkksd2ViV29ya2VyOmF9fWFzeW5jIGZ1bmN0aW9uIElvKEEsZT17fSl7bGV0IHQ9QSxJPW5ldyBUZXh0RW5jb2RlcixyPW5ldyBVaW50OEFycmF5KEkuZW5jb2RlKEEuZGlyZWN0aW9uKSksbz1hd2FpdCBJQShyLHtwYXJzZVN0cmluZzohMCx3ZWJXb3JrZXI6ZS53ZWJXb3JrZXIsbm9Db3B5OiEwfSksaT1vLndlYldvcmtlcjtpZih0LmRpcmVjdGlvbj1uZXcgRmxvYXQ2NEFycmF5KG8ub3V0cHV0LmJ1ZmZlciksIXQuZGF0YSl0LmRhdGE9bnVsbDtlbHNle2xldCBhPW5ldyBVaW50OEFycmF5KEkuZW5jb2RlKEEuZGF0YSkpLFE9YXdhaXQgSUEoYSx7cGFyc2VTdHJpbmc6ITAsd2ViV29ya2VyOmksbm9Db3B5OiEwfSk7dC5kYXRhPWsodC5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSxRLm91dHB1dC5idWZmZXIpfXJldHVybntkZWNvZGVkOnQsd2ViV29ya2VyOml9fWFzeW5jIGZ1bmN0aW9uIHJvKEEsZT17fSl7bGV0IEk9bmV3ICRBKEEubWVzaFR5cGUpO0kubmFtZT1BLm5hbWUsSS5udW1iZXJPZlBvaW50cz1BLm51bWJlck9mUG9pbnRzLEkubnVtYmVyT2ZDZWxscz1BLm51bWJlck9mQ2VsbHMsSS5udW1iZXJPZlBvaW50UGl4ZWxzPUEubnVtYmVyT2ZQb2ludFBpeGVscyxJLm51bWJlck9mQ2VsbFBpeGVscz1BLm51bWJlck9mQ2VsbFBpeGVscyxJLmNlbGxCdWZmZXJTaXplPUEuY2VsbEJ1ZmZlclNpemU7bGV0IHI9ZS53ZWJXb3JrZXIsbz1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7Zm9yKGxldCBpIG9mWyJwb2ludHMiLCJwb2ludERhdGEiLCJjZWxscyIsImNlbGxEYXRhIl0paWYoQVtpXT09PW51bGwpSVtpXT1udWxsO2Vsc2V7bGV0IGE9bmV3IFVpbnQ4QXJyYXkoQVtpXS5idWZmZXIpLFE9YXdhaXQgdEEoYSx7Y29tcHJlc3Npb25MZXZlbDo1LHN0cmluZ2lmeTohMCx3ZWJXb3JrZXI6cixub0NvcHk6ZS5ub0NvcHl9KTtyPVEud2ViV29ya2VyLElbaV09by5kZWNvZGUoUS5vdXRwdXQuYnVmZmVyKX1yZXR1cm57ZW5jb2RlZDpJLHdlYldvcmtlcjpyfX1hc3luYyBmdW5jdGlvbiBvbyhBLGU9e30pe2xldCB0PUEsST1uZXcgTWFwKFtbInBvaW50cyIsInBvaW50Q29tcG9uZW50VHlwZSJdLFsicG9pbnREYXRhIiwicG9pbnRQaXhlbENvbXBvbmVudFR5cGUiXSxbImNlbGxzIiwiY2VsbENvbXBvbmVudFR5cGUiXSxbImNlbGxEYXRhIiwiY2VsbFBpeGVsQ29tcG9uZW50VHlwZSJdXSkscj1uZXcgVGV4dEVuY29kZXIsbz1lLndlYldvcmtlcjtmb3IobGV0IGkgb2ZbInBvaW50cyIsInBvaW50RGF0YSIsImNlbGxzIiwiY2VsbERhdGEiXSlpZih0W2ldPT09bnVsbCl0W2ldPW51bGw7ZWxzZXtsZXQgYT1uZXcgVWludDhBcnJheShyLmVuY29kZSh0W2ldKSksUT1hd2FpdCBJQShhLHtwYXJzZVN0cmluZzohMCx3ZWJXb3JrZXI6byxub0NvcHk6ITB9KTtvPVEud2ViV29ya2VyLHRbaV09ayh0Lm1lc2hUeXBlW0kuZ2V0KGkpXSxRLm91dHB1dC5idWZmZXIpfXJldHVybntkZWNvZGVkOnQsd2ViV29ya2VyOm99fWFzeW5jIGZ1bmN0aW9uIGlvKEEsZT17fSl7bGV0IEk9bmV3IHRlKEEucG9seURhdGFUeXBlKTtJLm5hbWU9QS5uYW1lLEkubnVtYmVyT2ZQb2ludHM9QS5udW1iZXJPZlBvaW50cyxJLnZlcnRpY2VzQnVmZmVyU2l6ZT1BLnZlcnRpY2VzQnVmZmVyU2l6ZSxJLmxpbmVzQnVmZmVyU2l6ZT1BLmxpbmVzQnVmZmVyU2l6ZSxJLnBvbHlnb25zQnVmZmVyU2l6ZT1BLnBvbHlnb25zQnVmZmVyU2l6ZSxJLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT1BLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSxJLm51bWJlck9mUG9pbnRQaXhlbHM9QS5udW1iZXJPZlBvaW50UGl4ZWxzLEkubnVtYmVyT2ZDZWxsUGl4ZWxzPUEubnVtYmVyT2ZDZWxsUGl4ZWxzO2xldCByPWUud2ViV29ya2VyLG89bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2ZvcihsZXQgaSBvZlsicG9pbnRzIiwidmVydGljZXMiLCJsaW5lcyIsInBvbHlnb25zIiwidHJpYW5nbGVTdHJpcHMiLCJwb2ludERhdGEiLCJjZWxsRGF0YSJdKWlmKEFbaV09PT1udWxsKUlbaV09bnVsbDtlbHNle2xldCBhPW5ldyBVaW50OEFycmF5KEFbaV0uYnVmZmVyKSxRPWF3YWl0IHRBKGEse2NvbXByZXNzaW9uTGV2ZWw6NSxzdHJpbmdpZnk6ITAsd2ViV29ya2VyOnIsbm9Db3B5OmUubm9Db3B5fSk7cj1RLndlYldvcmtlcixJW2ldPW8uZGVjb2RlKFEub3V0cHV0LmJ1ZmZlcil9cmV0dXJue2VuY29kZWQ6SSx3ZWJXb3JrZXI6cn19YXN5bmMgZnVuY3Rpb24gZ28oQSxlPXt9KXtsZXQgdD1BLEk9bmV3IE1hcChbWyJwb2ludHMiLCJmbG9hdDMyIl0sWyJ2ZXJ0aWNlcyIsInVpbnQzMiJdLFsibGluZXMiLCJ1aW50MzIiXSxbInBvbHlnb25zIiwidWludDMyIl0sWyJ0cmlhbmdsZVN0cmlwcyIsInVpbnQzMiJdLFsicG9pbnREYXRhIix0LnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZV0sWyJjZWxsRGF0YSIsdC5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZV1dKSxyPW5ldyBUZXh0RW5jb2RlcixvPWUud2ViV29ya2VyO2ZvcihsZXQgaSBvZlsicG9pbnRzIiwidmVydGljZXMiLCJsaW5lcyIsInBvbHlnb25zIiwidHJpYW5nbGVTdHJpcHMiLCJwb2ludERhdGEiLCJjZWxsRGF0YSJdKWlmKHRbaV09PT1udWxsKXRbaV09bnVsbDtlbHNle2xldCBhPW5ldyBVaW50OEFycmF5KHIuZW5jb2RlKHRbaV0pKSxRPWF3YWl0IElBKGEse3BhcnNlU3RyaW5nOiEwLHdlYldvcmtlcjpvLG5vQ29weTohMH0pO289US53ZWJXb3JrZXIsdFtpXT1rKEkuZ2V0KGkpLFEub3V0cHV0LmJ1ZmZlcil9cmV0dXJue2RlY29kZWQ6dCx3ZWJXb3JrZXI6b319dmFyIGVJPSdkYXRhOnRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0Zi04LHZhciBEZT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIGRlPShBLHQpPT57Zm9yKHZhciBlIGluIHQpRGUoQSxlLHtnZXQ6dFtlXSxlbnVtZXJhYmxlOiEwfSl9O3ZhciBFdD1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxoZT1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSx5ZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksWUE9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLFFBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxjdD1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixtZT17Y2FuSGFuZGxlOkE9PmN0KEEpJiZBW0V0XSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOnQscG9ydDI6ZX09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBsQShBLHQpLFtlLFtlXV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksRmUoQSl9fSx3ZT17Y2FuSGFuZGxlOkE9PmN0KEEpJiZRQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCB0O3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/dD17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OnQ9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW3QsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sZnQ9bmV3IE1hcChbWyJwcm94eSIsbWVdLFsidGhyb3ciLHdlXV0pO2Z1bmN0aW9uIHBlKEEsdCl7Zm9yKGxldCBlIG9mIEEpaWYodD09PWV8fGU9PT0iKiJ8fGUgaW5zdGFuY2VvZiBSZWdFeHAmJmUudGVzdCh0KSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBsQShBLHQ9Z2xvYmFsVGhpcyxlPVsiKiJdKXt0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIEkocil7aWYoIXJ8fCFyLmRhdGEpcmV0dXJuO2lmKCFwZShlLHIub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiBcJyR7ci5vcmlnaW59XCcgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOm8sdHlwZTpnLHBhdGg6Q309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sci5kYXRhKSxFPShyLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKE8pLGE7dHJ5e2xldCBzPUMuc2xpY2UoMCwtMSkucmVkdWNlKChmLEIpPT5mW0JdLEEpLG49Qy5yZWR1Y2UoKGYsQik9PmZbQl0sQSk7c3dpdGNoKGcpe2Nhc2UiR0VUIjphPW47YnJlYWs7Y2FzZSJTRVQiOnNbQy5zbGljZSgtMSlbMF1dPU8oci5kYXRhLnZhbHVlKSxhPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOmE9bi5hcHBseShzLEUpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGY9bmV3IG4oLi4uRSk7YT1HZShmKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmYscG9ydDI6Qn09bmV3IE1lc3NhZ2VDaGFubmVsO2xBKEEsQiksYT1NQShmLFtmXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjphPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2gocyl7YT17dmFsdWU6cyxbUUFdOjB9fVByb21pc2UucmVzb2x2ZShhKS5jYXRjaChzPT4oe3ZhbHVlOnMsW1FBXTowfSkpLnRoZW4ocz0+e2xldFtuLGZdPWZBKHMpO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtpZDpvfSksZiksZz09PSJSRUxFQVNFIiYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsSSksbHQodCksWUEgaW4gQSYmdHlwZW9mIEFbWUFdPT0iZnVuY3Rpb24iJiZBW1lBXSgpKX0pLmNhdGNoKHM9PntsZXRbbixmXT1mQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW1FBXTowfSk7dC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2lkOm99KSxmKX0pfSksdC5zdGFydCYmdC5zdGFydCgpfWZ1bmN0aW9uIFNlKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGx0KEEpe1NlKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gRmUoQSx0KXtyZXR1cm4gcUEoQSxbXSx0KX1mdW5jdGlvbiBhQShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gdXQoQSl7cmV0dXJuIFcoQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57bHQoQSl9KX12YXIgRUE9bmV3IFdlYWtNYXAsY0E9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IHQ9KEVBLmdldChBKXx8MCktMTtFQS5zZXQoQSx0KSx0PT09MCYmdXQoQSl9KTtmdW5jdGlvbiBSZShBLHQpe2xldCBlPShFQS5nZXQodCl8fDApKzE7RUEuc2V0KHQsZSksY0EmJmNBLnJlZ2lzdGVyKEEsdCxBKX1mdW5jdGlvbiBOZShBKXtjQSYmY0EudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBxQShBLHQ9W10sZT1mdW5jdGlvbigpe30pe2xldCBJPSExLHI9bmV3IFByb3h5KGUse2dldChvLGcpe2lmKGFBKEkpLGc9PT15ZSlyZXR1cm4oKT0+e05lKHIpLHV0KEEpLEk9ITB9O2lmKGc9PT0idGhlbiIpe2lmKHQubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+cn07bGV0IEM9VyhBLHt0eXBlOiJHRVQiLHBhdGg6dC5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oTyk7cmV0dXJuIEMudGhlbi5iaW5kKEMpfXJldHVybiBxQShBLFsuLi50LGddKX0sc2V0KG8sZyxDKXthQShJKTtsZXRbRSxhXT1mQShDKTtyZXR1cm4gVyhBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLnQsZ10ubWFwKHM9PnMudG9TdHJpbmcoKSksdmFsdWU6RX0sYSkudGhlbihPKX0sYXBwbHkobyxnLEMpe2FBKEkpO2xldCBFPXRbdC5sZW5ndGgtMV07aWYoRT09PWhlKXJldHVybiBXKEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oTyk7aWYoRT09PSJiaW5kIilyZXR1cm4gcUEoQSx0LnNsaWNlKDAsLTEpKTtsZXRbYSxzXT1RdChDKTtyZXR1cm4gVyhBLHt0eXBlOiJBUFBMWSIscGF0aDp0Lm1hcChuPT5uLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDphfSxzKS50aGVuKE8pfSxjb25zdHJ1Y3QobyxnKXthQShJKTtsZXRbQyxFXT1RdChnKTtyZXR1cm4gVyhBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6dC5tYXAoYT0+YS50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Q30sRSkudGhlbihPKX19KTtyZXR1cm4gUmUocixBKSxyfWZ1bmN0aW9uIFVlKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIFF0KEEpe2xldCB0PUEubWFwKGZBKTtyZXR1cm5bdC5tYXAoZT0+ZVswXSksVWUodC5tYXAoZT0+ZVsxXSkpXX12YXIgRHQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gTUEoQSx0KXtyZXR1cm4gRHQuc2V0KEEsdCksQX1mdW5jdGlvbiBHZShBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbRXRdOiEwfSl9ZnVuY3Rpb24gZkEoQSl7Zm9yKGxldFt0LGVdb2YgZnQpaWYoZS5jYW5IYW5kbGUoQSkpe2xldFtJLHJdPWUuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTp0LHZhbHVlOkl9LHJdfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxEdC5nZXQoQSl8fFtdXX1mdW5jdGlvbiBPKEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuIGZ0LmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24gVyhBLHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKEk9PntsZXQgcj1rZSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gbyhnKXshZy5kYXRhfHwhZy5kYXRhLmlkfHxnLmRhdGEuaWQhPT1yfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixvKSxJKGcuZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6cn0sdCksZSl9KX1mdW5jdGlvbiBrZSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gdihBLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KHQsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOkxlfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpUQX09T2JqZWN0LERBPShBPT50PT57bGV0IGU9TGUuY2FsbCh0KTtyZXR1cm4gQVtlXXx8KEFbZV09ZS5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLEc9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLHQ9PkRBKHQpPT09QSksZEE9QT0+dD0+dHlwZW9mIHQ9PT1BLHtpc0FycmF5Omp9PUFycmF5LCQ9ZEEoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIGJlKEEpe3JldHVybiBBIT09bnVsbCYmISQoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhJChBLmNvbnN0cnVjdG9yKSYmVShBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKSYmQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihBKX12YXIgeXQ9RygiQXJyYXlCdWZmZXIiKTtmdW5jdGlvbiBKZShBKXtsZXQgdDtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmQXJyYXlCdWZmZXIuaXNWaWV3P3Q9QXJyYXlCdWZmZXIuaXNWaWV3KEEpOnQ9QSYmQS5idWZmZXImJnl0KEEuYnVmZmVyKSx0fXZhciBIZT1kQSgic3RyaW5nIiksVT1kQSgiZnVuY3Rpb24iKSxtdD1kQSgibnVtYmVyIiksaEE9QT0+QSE9PW51bGwmJnR5cGVvZiBBPT0ib2JqZWN0IixZZT1BPT5BPT09ITB8fEE9PT0hMSx1QT1BPT57aWYoREEoQSkhPT0ib2JqZWN0IilyZXR1cm4hMTtsZXQgdD1UQShBKTtyZXR1cm4odD09PW51bGx8fHQ9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk9PT1udWxsKSYmIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gQSkmJiEoU3ltYm9sLml0ZXJhdG9yIGluIEEpfSxxZT1HKCJEYXRlIiksTWU9RygiRmlsZSIpLEtlPUcoIkJsb2IiKSxUZT1HKCJGaWxlTGlzdCIpLE9lPUE9PmhBKEEpJiZVKEEucGlwZSkseGU9QT0+e2xldCB0O3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fFUoQS5hcHBlbmQpJiYoKHQ9REEoQSkpPT09ImZvcm1kYXRhInx8dD09PSJvYmplY3QiJiZVKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LFBlPUcoIlVSTFNlYXJjaFBhcmFtcyIpLFtXZSxqZSxaZSxWZV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoRyksWGU9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2csIiIpO2Z1bmN0aW9uIEFBKEEsdCx7YWxsT3duS2V5czplPSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IEkscjtpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksaihBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyl0LmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtsZXQgbz1lP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLGc9by5sZW5ndGgsQztmb3IoST0wO0k8ZztJKyspQz1vW0ldLHQuY2FsbChudWxsLEFbQ10sQyxBKX19ZnVuY3Rpb24gd3QoQSx0KXt0PXQudG9Mb3dlckNhc2UoKTtsZXQgZT1PYmplY3Qua2V5cyhBKSxJPWUubGVuZ3RoLHI7Zm9yKDtJLS0gPjA7KWlmKHI9ZVtJXSx0PT09ci50b0xvd2VyQ2FzZSgpKXJldHVybiByO3JldHVybiBudWxsfXZhciB4PXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwscHQ9QT0+ISQoQSkmJkEhPT14O2Z1bmN0aW9uIEtBKCl7bGV0e2Nhc2VsZXNzOkF9PXB0KHRoaXMpJiZ0aGlzfHx7fSx0PXt9LGU9KEkscik9PntsZXQgbz1BJiZ3dCh0LHIpfHxyO3VBKHRbb10pJiZ1QShJKT90W29dPUtBKHRbb10sSSk6dUEoSSk/dFtvXT1LQSh7fSxJKTpqKEkpP3Rbb109SS5zbGljZSgpOnRbb109SX07Zm9yKGxldCBJPTAscj1hcmd1bWVudHMubGVuZ3RoO0k8cjtJKyspYXJndW1lbnRzW0ldJiZBQShhcmd1bWVudHNbSV0sZSk7cmV0dXJuIHR9dmFyIF9lPShBLHQsZSx7YWxsT3duS2V5czpJfT17fSk9PihBQSh0LChyLG8pPT57ZSYmVShyKT9BW29dPXYocixlKTpBW29dPXJ9LHthbGxPd25LZXlzOkl9KSxBKSx6ZT1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLHZlPShBLHQsZSxJKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsSSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTp0LnByb3RvdHlwZX0pLGUmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsZSl9LCRlPShBLHQsZSxJKT0+e2xldCByLG8sZyxDPXt9O2lmKHQ9dHx8e30sQT09bnVsbClyZXR1cm4gdDtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxvPXIubGVuZ3RoO28tLSA+MDspZz1yW29dLCghSXx8SShnLEEsdCkpJiYhQ1tnXSYmKHRbZ109QVtnXSxDW2ddPSEwKTtBPWUhPT0hMSYmVEEoQSl9d2hpbGUoQSYmKCFlfHxlKEEsdCkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIHR9LEFJPShBLHQsZSk9PntBPVN0cmluZyhBKSwoZT09PXZvaWQgMHx8ZT5BLmxlbmd0aCkmJihlPUEubGVuZ3RoKSxlLT10Lmxlbmd0aDtsZXQgST1BLmluZGV4T2YodCxlKTtyZXR1cm4gSSE9PS0xJiZJPT09ZX0sdEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKGooQSkpcmV0dXJuIEE7bGV0IHQ9QS5sZW5ndGg7aWYoIW10KHQpKXJldHVybiBudWxsO2xldCBlPW5ldyBBcnJheSh0KTtmb3IoO3QtLSA+MDspZVt0XT1BW3RdO3JldHVybiBlfSxlST0oQT0+dD0+QSYmdCBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmVEEoVWludDhBcnJheSkpLElJPShBLHQpPT57bGV0IEk9KEEmJkFbU3ltYm9sLml0ZXJhdG9yXSkuY2FsbChBKSxyO2Zvcig7KHI9SS5uZXh0KCkpJiYhci5kb25lOyl7bGV0IG89ci52YWx1ZTt0LmNhbGwoQSxvWzBdLG9bMV0pfX0sckk9KEEsdCk9PntsZXQgZSxJPVtdO2Zvcig7KGU9QS5leGVjKHQpKSE9PW51bGw7KUkucHVzaChlKTtyZXR1cm4gSX0sb0k9RygiSFRNTEZvcm1FbGVtZW50IiksZ0k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xcc10oW2EtelxcZF0pKFxcdyopL2csZnVuY3Rpb24oZSxJLHIpe3JldHVybiBJLnRvVXBwZXJDYXNlKCkrcn0pLGh0PSgoe2hhc093blByb3BlcnR5OkF9KT0+KHQsZSk9PkEuY2FsbCh0LGUpKShPYmplY3QucHJvdG90eXBlKSxpST1HKCJSZWdFeHAiKSxTdD0oQSx0KT0+e2xldCBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLEk9e307QUEoZSwocixvKT0+e2xldCBnOyhnPXQocixvLEEpKSE9PSExJiYoSVtvXT1nfHxyKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsSSl9LHNJPUE9PntTdChBLCh0LGUpPT57aWYoVShBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKGUpIT09LTEpcmV0dXJuITE7bGV0IEk9QVtlXTtpZihVKEkpKXtpZih0LmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIHQpe3Qud3JpdGFibGU9ITE7cmV0dXJufXQuc2V0fHwodC5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgXCciK2UrIlwnIil9KX19KX0sbkk9KEEsdCk9PntsZXQgZT17fSxJPXI9PntyLmZvckVhY2gobz0+e2Vbb109ITB9KX07cmV0dXJuIGooQSk/SShBKTpJKFN0cmluZyhBKS5zcGxpdCh0KSksZX0sQ0k9KCk9Pnt9LEJJPShBLHQpPT5BIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoQT0rQSk/QTp0O2Z1bmN0aW9uIGFJKEEpe3JldHVybiEhKEEmJlUoQS5hcHBlbmQpJiZBW1N5bWJvbC50b1N0cmluZ1RhZ109PT0iRm9ybURhdGEiJiZBW1N5bWJvbC5pdGVyYXRvcl0pfXZhciBRST1BPT57bGV0IHQ9bmV3IEFycmF5KDEwKSxlPShJLHIpPT57aWYoaEEoSSkpe2lmKHQuaW5kZXhPZihJKT49MClyZXR1cm47aWYoISgidG9KU09OImluIEkpKXt0W3JdPUk7bGV0IG89aihJKT9bXTp7fTtyZXR1cm4gQUEoSSwoZyxDKT0+e2xldCBFPWUoZyxyKzEpOyEkKEUpJiYob1tDXT1FKX0pLHRbcl09dm9pZCAwLG99fXJldHVybiBJfTtyZXR1cm4gZShBLDApfSxFST1HKCJBc3luY0Z1bmN0aW9uIiksY0k9QT0+QSYmKGhBKEEpfHxVKEEpKSYmVShBLnRoZW4pJiZVKEEuY2F0Y2gpLEZ0PSgoQSx0KT0+QT9zZXRJbW1lZGlhdGU6dD8oKGUsSSk9Pih4LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTpvfSk9PntyPT09eCYmbz09PWUmJkkubGVuZ3RoJiZJLnNoaWZ0KCkoKX0sITEpLHI9PntJLnB1c2gocikseC5wb3N0TWVzc2FnZShlLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTplPT5zZXRUaW1lb3V0KGUpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLFUoeC5wb3N0TWVzc2FnZSkpLGZJPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZCh4KTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fEZ0LGk9e2lzQXJyYXk6aixpc0FycmF5QnVmZmVyOnl0LGlzQnVmZmVyOmJlLGlzRm9ybURhdGE6eGUsaXNBcnJheUJ1ZmZlclZpZXc6SmUsaXNTdHJpbmc6SGUsaXNOdW1iZXI6bXQsaXNCb29sZWFuOlllLGlzT2JqZWN0OmhBLGlzUGxhaW5PYmplY3Q6dUEsaXNSZWFkYWJsZVN0cmVhbTpXZSxpc1JlcXVlc3Q6amUsaXNSZXNwb25zZTpaZSxpc0hlYWRlcnM6VmUsaXNVbmRlZmluZWQ6JCxpc0RhdGU6cWUsaXNGaWxlOk1lLGlzQmxvYjpLZSxpc1JlZ0V4cDppSSxpc0Z1bmN0aW9uOlUsaXNTdHJlYW06T2UsaXNVUkxTZWFyY2hQYXJhbXM6UGUsaXNUeXBlZEFycmF5OmVJLGlzRmlsZUxpc3Q6VGUsZm9yRWFjaDpBQSxtZXJnZTpLQSxleHRlbmQ6X2UsdHJpbTpYZSxzdHJpcEJPTTp6ZSxpbmhlcml0czp2ZSx0b0ZsYXRPYmplY3Q6JGUsa2luZE9mOkRBLGtpbmRPZlRlc3Q6RyxlbmRzV2l0aDpBSSx0b0FycmF5OnRJLGZvckVhY2hFbnRyeTpJSSxtYXRjaEFsbDpySSxpc0hUTUxGb3JtOm9JLGhhc093blByb3BlcnR5Omh0LGhhc093blByb3A6aHQscmVkdWNlRGVzY3JpcHRvcnM6U3QsZnJlZXplTWV0aG9kczpzSSx0b09iamVjdFNldDpuSSx0b0NhbWVsQ2FzZTpnSSxub29wOkNJLHRvRmluaXRlTnVtYmVyOkJJLGZpbmRLZXk6d3QsZ2xvYmFsOngsaXNDb250ZXh0RGVmaW5lZDpwdCxpc1NwZWNDb21wbGlhbnRGb3JtOmFJLHRvSlNPTk9iamVjdDpRSSxpc0FzeW5jRm46RUksaXNUaGVuYWJsZTpjSSxzZXRJbW1lZGlhdGU6RnQsYXNhcDpmSX07ZnVuY3Rpb24gWihBLHQsZSxJLHIpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsdCYmKHRoaXMuY29kZT10KSxlJiYodGhpcy5jb25maWc9ZSksSSYmKHRoaXMucmVxdWVzdD1JKSxyJiYodGhpcy5yZXNwb25zZT1yLHRoaXMuc3RhdHVzPXIuc3RhdHVzP3Iuc3RhdHVzOm51bGwpfWkuaW5oZXJpdHMoWixFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOmkudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX0pO3ZhciBSdD1aLnByb3RvdHlwZSxOdD17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiLCJFUlJfTk9UX1NVUFBPUlQiLCJFUlJfSU5WQUxJRF9VUkwiXS5mb3JFYWNoKEE9PntOdFtBXT17dmFsdWU6QX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhaLE50KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUnQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7Wi5mcm9tPShBLHQsZSxJLHIsbyk9PntsZXQgZz1PYmplY3QuY3JlYXRlKFJ0KTtyZXR1cm4gaS50b0ZsYXRPYmplY3QoQSxnLGZ1bmN0aW9uKEUpe3JldHVybiBFIT09RXJyb3IucHJvdG90eXBlfSxDPT5DIT09ImlzQXhpb3NFcnJvciIpLFouY2FsbChnLEEubWVzc2FnZSx0LGUsSSxyKSxnLmNhdXNlPUEsZy5uYW1lPUEubmFtZSxvJiZPYmplY3QuYXNzaWduKGcsbyksZ307dmFyIHU9Wjt2YXIgeUE9bnVsbDtmdW5jdGlvbiBPQShBKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KEEpfHxpLmlzQXJyYXkoQSl9ZnVuY3Rpb24gR3QoQSl7cmV0dXJuIGkuZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gVXQoQSx0LGUpe3JldHVybiBBP0EuY29uY2F0KHQpLm1hcChmdW5jdGlvbihyLG8pe3JldHVybiByPUd0KHIpLCFlJiZvPyJbIityKyJdIjpyfSkuam9pbihlPyIuIjoiIik6dH1mdW5jdGlvbiBsSShBKXtyZXR1cm4gaS5pc0FycmF5KEEpJiYhQS5zb21lKE9BKX12YXIgdUk9aS50b0ZsYXRPYmplY3QoaSx7fSxudWxsLGZ1bmN0aW9uKHQpe3JldHVybi9eaXNbQS1aXS8udGVzdCh0KX0pO2Z1bmN0aW9uIERJKEEsdCxlKXtpZighaS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTt0PXR8fG5ldyh5QXx8Rm9ybURhdGEpLGU9aS50b0ZsYXRPYmplY3QoZSx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGwsYyl7cmV0dXJuIWkuaXNVbmRlZmluZWQoY1tsXSl9KTtsZXQgST1lLm1ldGFUb2tlbnMscj1lLnZpc2l0b3J8fHMsbz1lLmRvdHMsZz1lLmluZGV4ZXMsRT0oZS5CbG9ifHx0eXBlb2YgQmxvYjwidSImJkJsb2IpJiZpLmlzU3BlY0NvbXBsaWFudEZvcm0odCk7aWYoIWkuaXNGdW5jdGlvbihyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIGEoUSl7aWYoUT09PW51bGwpcmV0dXJuIiI7aWYoaS5pc0RhdGUoUSkpcmV0dXJuIFEudG9JU09TdHJpbmcoKTtpZighRSYmaS5pc0Jsb2IoUSkpdGhyb3cgbmV3IHUoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIGkuaXNBcnJheUJ1ZmZlcihRKXx8aS5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIHMoUSxsLGMpe2xldCBkPVE7aWYoUSYmIWMmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYoaS5lbmRzV2l0aChsLCJ7fSIpKWw9ST9sOmwuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKGkuaXNBcnJheShRKSYmbEkoUSl8fChpLmlzRmlsZUxpc3QoUSl8fGkuZW5kc1dpdGgobCwiW10iKSkmJihkPWkudG9BcnJheShRKSkpcmV0dXJuIGw9R3QobCksZC5mb3JFYWNoKGZ1bmN0aW9uKG0sSCl7IShpLmlzVW5kZWZpbmVkKG0pfHxtPT09bnVsbCkmJnQuYXBwZW5kKGc9PT0hMD9VdChbbF0sSCxvKTpnPT09bnVsbD9sOmwrIltdIixhKG0pKX0pLCExfXJldHVybiBPQShRKT8hMDoodC5hcHBlbmQoVXQoYyxsLG8pLGEoUSkpLCExKX1sZXQgbj1bXSxmPU9iamVjdC5hc3NpZ24odUkse2RlZmF1bHRWaXNpdG9yOnMsY29udmVydFZhbHVlOmEsaXNWaXNpdGFibGU6T0F9KTtmdW5jdGlvbiBCKFEsbCl7aWYoIWkuaXNVbmRlZmluZWQoUSkpe2lmKG4uaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitsLmpvaW4oIi4iKSk7bi5wdXNoKFEpLGkuZm9yRWFjaChRLGZ1bmN0aW9uKGQseSl7KCEoaS5pc1VuZGVmaW5lZChkKXx8ZD09PW51bGwpJiZyLmNhbGwodCxkLGkuaXNTdHJpbmcoeSk/eS50cmltKCk6eSxsLGYpKT09PSEwJiZCKGQsbD9sLmNvbmNhdCh5KTpbeV0pfSksbi5wb3AoKX19aWYoIWkuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBCKEEpLHR9dmFyIE09REk7ZnVuY3Rpb24ga3QoQSl7bGV0IHQ9eyIhIjoiJTI1MjEiLCJcJyI6IiUyNTI3IiwiKCI6IiUyNTI4IiwiKSI6IiUyNTI5IiwifiI6IiUyNTdFIiwiJTI1MjAiOiIrIiwiJTI1MDAiOiJcXDAifTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoL1shXCcoKX5dfCUyNTIwfCUyNTAwL2csZnVuY3Rpb24oSSl7cmV0dXJuIHRbSV19KX1mdW5jdGlvbiBMdChBLHQpe3RoaXMuX3BhaXJzPVtdLEEmJk0oQSx0aGlzLHQpfXZhciBidD1MdC5wcm90b3R5cGU7YnQuYXBwZW5kPWZ1bmN0aW9uKHQsZSl7dGhpcy5fcGFpcnMucHVzaChbdCxlXSl9O2J0LnRvU3RyaW5nPWZ1bmN0aW9uKHQpe2xldCBlPXQ/ZnVuY3Rpb24oSSl7cmV0dXJuIHQuY2FsbCh0aGlzLEksa3QpfTprdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBlKHJbMF0pKyI9IitlKHJbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgbUE9THQ7ZnVuY3Rpb24gZEkoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lMjUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNTI0L2csIiQiKS5yZXBsYWNlKC8lMjUyQy9naSwiLCIpLnJlcGxhY2UoLyUyNTIwL2csIisiKS5yZXBsYWNlKC8lMjU1Qi9naSwiWyIpLnJlcGxhY2UoLyUyNTVEL2dpLCJdIil9ZnVuY3Rpb24gdEEoQSx0LGUpe2lmKCF0KXJldHVybiBBO2xldCBJPWUmJmUuZW5jb2RlfHxkSTtpLmlzRnVuY3Rpb24oZSkmJihlPXtzZXJpYWxpemU6ZX0pO2xldCByPWUmJmUuc2VyaWFsaXplLG87aWYocj9vPXIodCxlKTpvPWkuaXNVUkxTZWFyY2hQYXJhbXModCk/dC50b1N0cmluZygpOm5ldyBtQSh0LGUpLnRvU3RyaW5nKEkpLG8pe2xldCBnPUEuaW5kZXhPZigiJTIzIik7ZyE9PS0xJiYoQT1BLnNsaWNlKDAsZykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK299cmV0dXJuIEF9dmFyIHhBPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UodCxlLEkpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDp0LHJlamVjdGVkOmUsc3luY2hyb25vdXM6ST9JLnN5bmNocm9ub3VzOiExLHJ1bldoZW46ST9JLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QodCl7dGhpcy5oYW5kbGVyc1t0XSYmKHRoaXMuaGFuZGxlcnNbdF09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaCh0KXtpLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihJKXtJIT09bnVsbCYmdChJKX0pfX0sUEE9eEE7dmFyIHdBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgSnQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOm1BO3ZhciBIdD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyIFl0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIHF0PXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOkp0LEZvcm1EYXRhOkh0LEJsb2I6WXR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgWkE9e307ZGUoWkEse2hhc0Jyb3dzZXJFbnY6KCk9PmpBLGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+aEksaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT55SSxuYXZpZ2F0b3I6KCk9PldBLG9yaWdpbjooKT0+bUl9KTt2YXIgakE9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsV0E9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLGhJPWpBJiYoIVdBfHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKFdBLnByb2R1Y3QpPDApLHlJPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixtST1qQSYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgaD17Li4uWkEsLi4ucXR9O2Z1bmN0aW9uIFZBKEEsdCl7cmV0dXJuIE0oQSxuZXcgaC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyxPYmplY3QuYXNzaWduKHt2aXNpdG9yOmZ1bmN0aW9uKGUsSSxyLG8pe3JldHVybiBoLmlzTm9kZSYmaS5pc0J1ZmZlcihlKT8odGhpcy5hcHBlbmQoSSxlLnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOm8uZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sdCkpfWZ1bmN0aW9uIHdJKEEpe3JldHVybiBpLm1hdGNoQWxsKC9cXHcrfFxcWyhcXHcqKV0vZyxBKS5tYXAodD0+dFswXT09PSJbXSI/IiI6dFsxXXx8dFswXSl9ZnVuY3Rpb24gcEkoQSl7bGV0IHQ9e30sZT1PYmplY3Qua2V5cyhBKSxJLHI9ZS5sZW5ndGgsbztmb3IoST0wO0k8cjtJKyspbz1lW0ldLHRbb109QVtvXTtyZXR1cm4gdH1mdW5jdGlvbiBTSShBKXtmdW5jdGlvbiB0KGUsSSxyLG8pe2xldCBnPWVbbysrXTtpZihnPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IEM9TnVtYmVyLmlzRmluaXRlKCtnKSxFPW8+PWUubGVuZ3RoO3JldHVybiBnPSFnJiZpLmlzQXJyYXkocik/ci5sZW5ndGg6ZyxFPyhpLmhhc093blByb3AocixnKT9yW2ddPVtyW2ddLEldOnJbZ109SSwhQyk6KCghcltnXXx8IWkuaXNPYmplY3QocltnXSkpJiYocltnXT1bXSksdChlLEkscltnXSxvKSYmaS5pc0FycmF5KHJbZ10pJiYocltnXT1wSShyW2ddKSksIUMpfWlmKGkuaXNGb3JtRGF0YShBKSYmaS5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCBlPXt9O3JldHVybiBpLmZvckVhY2hFbnRyeShBLChJLHIpPT57dCh3SShJKSxyLGUsMCl9KSxlfXJldHVybiBudWxsfXZhciBwQT1TSTtmdW5jdGlvbiBGSShBLHQsZSl7aWYoaS5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKHR8fEpTT04ucGFyc2UpKEEpLGkudHJpbShBKX1jYXRjaChJKXtpZihJLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IEl9cmV0dXJuKGV8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgWEE9e3RyYW5zaXRpb25hbDp3QSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24odCxlKXtsZXQgST1lLmdldENvbnRlbnRUeXBlKCl8fCIiLHI9SS5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsbz1pLmlzT2JqZWN0KHQpO2lmKG8mJmkuaXNIVE1MRm9ybSh0KSYmKHQ9bmV3IEZvcm1EYXRhKHQpKSxpLmlzRm9ybURhdGEodCkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkocEEodCkpOnQ7aWYoaS5pc0FycmF5QnVmZmVyKHQpfHxpLmlzQnVmZmVyKHQpfHxpLmlzU3RyZWFtKHQpfHxpLmlzRmlsZSh0KXx8aS5pc0Jsb2IodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KHQpKXJldHVybiB0LmJ1ZmZlcjtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKHQpKXJldHVybiBlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLHQudG9TdHJpbmcoKTtsZXQgQztpZihvKXtpZihJLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBWQSh0LHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKEM9aS5pc0ZpbGVMaXN0KHQpKXx8SS5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gTShDP3siZmlsZXNbXSI6dH06dCxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIG98fHI/KGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxGSSh0KSk6dH1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbih0KXtsZXQgZT10aGlzLnRyYW5zaXRpb25hbHx8WEEudHJhbnNpdGlvbmFsLEk9ZSYmZS5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKGkuaXNSZXNwb25zZSh0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKHQmJmkuaXNTdHJpbmcodCkmJihJJiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgZz0hKGUmJmUuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaChDKXtpZihnKXRocm93IEMubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKEMsdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpDfX1yZXR1cm4gdH1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6aC5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6aC5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMDAmJnQ8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntYQS5oZWFkZXJzW0FdPXt9fSk7dmFyIFY9WEE7dmFyIFJJPWkudG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksTXQ9QT0+e2xldCB0PXt9LGUsSSxyO3JldHVybiBBJiZBLnNwbGl0KGAlMEFgKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe3I9Zy5pbmRleE9mKCI6IiksZT1nLnN1YnN0cmluZygwLHIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLEk9Zy5zdWJzdHJpbmcocisxKS50cmltKCksISghZXx8dFtlXSYmUklbZV0pJiYoZT09PSJzZXQtY29va2llIj90W2VdP3RbZV0ucHVzaChJKTp0W2VdPVtJXTp0W2VdPXRbZV0/dFtlXSsiLCAiK0k6SSl9KSx0fTt2YXIgS3Q9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBlQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFNBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTppLmlzQXJyYXkoQSk/QS5tYXAoU0EpOlN0cmluZyhBKX1mdW5jdGlvbiBOSShBKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpLGU9LyhbXlxccyw7PV0rKVxccyooPzo9XFxzKihbXiw7XSspKT8vZyxJO2Zvcig7ST1lLmV4ZWMoQSk7KXRbSVsxXV09SVsyXTtyZXR1cm4gdH12YXIgVUk9QT0+L15bLV9hLXpBLVowLTleYHx+LCElMjMkJSZcJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gX0EoQSx0LGUsSSxyKXtpZihpLmlzRnVuY3Rpb24oSSkpcmV0dXJuIEkuY2FsbCh0aGlzLHQsZSk7aWYociYmKHQ9ZSksISFpLmlzU3RyaW5nKHQpKXtpZihpLmlzU3RyaW5nKEkpKXJldHVybiB0LmluZGV4T2YoSSkhPT0tMTtpZihpLmlzUmVnRXhwKEkpKXJldHVybiBJLnRlc3QodCl9fWZ1bmN0aW9uIEdJKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XFxkXSkoXFx3KikvZywodCxlLEkpPT5lLnRvVXBwZXJDYXNlKCkrSSl9ZnVuY3Rpb24ga0koQSx0KXtsZXQgZT1pLnRvQ2FtZWxDYXNlKCIgIit0KTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2goST0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLEkrZSx7dmFsdWU6ZnVuY3Rpb24ocixvLGcpe3JldHVybiB0aGlzW0ldLmNhbGwodGhpcyx0LHIsbyxnKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgWD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0JiZ0aGlzLnNldCh0KX1zZXQodCxlLEkpe2xldCByPXRoaXM7ZnVuY3Rpb24gbyhDLEUsYSl7bGV0IHM9ZUEoRSk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2xldCBuPWkuZmluZEtleShyLHMpOyghbnx8cltuXT09PXZvaWQgMHx8YT09PSEwfHxhPT09dm9pZCAwJiZyW25dIT09ITEpJiYocltufHxFXT1TQShDKSl9bGV0IGc9KEMsRSk9PmkuZm9yRWFjaChDLChhLHMpPT5vKGEscyxFKSk7aWYoaS5pc1BsYWluT2JqZWN0KHQpfHx0IGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3RvcilnKHQsZSk7ZWxzZSBpZihpLmlzU3RyaW5nKHQpJiYodD10LnRyaW0oKSkmJiFVSSh0KSlnKE10KHQpLGUpO2Vsc2UgaWYoaS5pc0hlYWRlcnModCkpZm9yKGxldFtDLEVdb2YgdC5lbnRyaWVzKCkpbyhFLEMsSSk7ZWxzZSB0IT1udWxsJiZvKGUsdCxJKTtyZXR1cm4gdGhpc31nZXQodCxlKXtpZih0PWVBKHQpLHQpe2xldCBJPWkuZmluZEtleSh0aGlzLHQpO2lmKEkpe2xldCByPXRoaXNbSV07aWYoIWUpcmV0dXJuIHI7aWYoZT09PSEwKXJldHVybiBOSShyKTtpZihpLmlzRnVuY3Rpb24oZSkpcmV0dXJuIGUuY2FsbCh0aGlzLHIsSSk7aWYoaS5pc1JlZ0V4cChlKSlyZXR1cm4gZS5leGVjKHIpO3Rocm93IG5ldyBUeXBlRXJyb3IoInBhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uIil9fX1oYXModCxlKXtpZih0PWVBKHQpLHQpe2xldCBJPWkuZmluZEtleSh0aGlzLHQpO3JldHVybiEhKEkmJnRoaXNbSV0hPT12b2lkIDAmJighZXx8X0EodGhpcyx0aGlzW0ldLEksZSkpKX1yZXR1cm4hMX1kZWxldGUodCxlKXtsZXQgST10aGlzLHI9ITE7ZnVuY3Rpb24gbyhnKXtpZihnPWVBKGcpLGcpe2xldCBDPWkuZmluZEtleShJLGcpO0MmJighZXx8X0EoSSxJW0NdLEMsZSkpJiYoZGVsZXRlIElbQ10scj0hMCl9fXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKG8pOm8odCkscn1jbGVhcih0KXtsZXQgZT1PYmplY3Qua2V5cyh0aGlzKSxJPWUubGVuZ3RoLHI9ITE7Zm9yKDtJLS07KXtsZXQgbz1lW0ldOyghdHx8X0EodGhpcyx0aGlzW29dLG8sdCwhMCkpJiYoZGVsZXRlIHRoaXNbb10scj0hMCl9cmV0dXJuIHJ9bm9ybWFsaXplKHQpe2xldCBlPXRoaXMsST17fTtyZXR1cm4gaS5mb3JFYWNoKHRoaXMsKHIsbyk9PntsZXQgZz1pLmZpbmRLZXkoSSxvKTtpZihnKXtlW2ddPVNBKHIpLGRlbGV0ZSBlW29dO3JldHVybn1sZXQgQz10P0dJKG8pOlN0cmluZyhvKS50cmltKCk7QyE9PW8mJmRlbGV0ZSBlW29dLGVbQ109U0EociksSVtDXT0hMH0pLHRoaXN9Y29uY2F0KC4uLnQpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLmNvbmNhdCh0aGlzLC4uLnQpfXRvSlNPTih0KXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBpLmZvckVhY2godGhpcywoSSxyKT0+e0khPW51bGwmJkkhPT0hMSYmKGVbcl09dCYmaS5pc0FycmF5KEkpP0kuam9pbigiLCAiKTpJKX0pLGV9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSlbU3ltYm9sLml0ZXJhdG9yXSgpfXRvU3RyaW5nKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpLm1hcCgoW3QsZV0pPT50KyI6ICIrZSkuam9pbihgJTBBYCl9Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHRoaXM/dDpuZXcgdGhpcyh0KX1zdGF0aWMgY29uY2F0KHQsLi4uZSl7bGV0IEk9bmV3IHRoaXModCk7cmV0dXJuIGUuZm9yRWFjaChyPT5JLnNldChyKSksSX1zdGF0aWMgYWNjZXNzb3IodCl7bGV0IEk9KHRoaXNbS3RdPXRoaXNbS3RdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBvKGcpe2xldCBDPWVBKGcpO0lbQ118fChrSShyLGcpLElbQ109ITApfXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKG8pOm8odCksdGhpc319O1guYWNjZXNzb3IoWyJDb250ZW50LVR5cGUiLCJDb250ZW50LUxlbmd0aCIsIkFjY2VwdCIsIkFjY2VwdC1FbmNvZGluZyIsIlVzZXItQWdlbnQiLCJBdXRob3JpemF0aW9uIl0pO2kucmVkdWNlRGVzY3JpcHRvcnMoWC5wcm90b3R5cGUsKHt2YWx1ZTpBfSx0KT0+e2xldCBlPXRbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KEkpe3RoaXNbZV09SX19fSk7aS5mcmVlemVNZXRob2RzKFgpO3ZhciBTPVg7ZnVuY3Rpb24gSUEoQSx0KXtsZXQgZT10aGlzfHxWLEk9dHx8ZSxyPVMuZnJvbShJLmhlYWRlcnMpLG89SS5kYXRhO3JldHVybiBpLmZvckVhY2goQSxmdW5jdGlvbihDKXtvPUMuY2FsbChlLG8sci5ub3JtYWxpemUoKSx0P3Quc3RhdHVzOnZvaWQgMCl9KSxyLm5vcm1hbGl6ZSgpLG99ZnVuY3Rpb24gckEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBUdChBLHQsZSl7dS5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIix1LkVSUl9DQU5DRUxFRCx0LGUpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9aS5pbmhlcml0cyhUdCx1LHtfX0NBTkNFTF9fOiEwfSk7dmFyIEw9VHQ7ZnVuY3Rpb24gb0EoQSx0LGUpe2xldCBJPWUuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyFlLnN0YXR1c3x8IUl8fEkoZS5zdGF0dXMpP0EoZSk6dChuZXcgdSgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK2Uuc3RhdHVzLFt1LkVSUl9CQURfUkVRVUVTVCx1LkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IoZS5zdGF0dXMvMTAwKS00XSxlLmNvbmZpZyxlLnJlcXVlc3QsZSkpfWZ1bmN0aW9uIHpBKEEpe2xldCB0PS9eKFstK1xcd117MSwyNX0pKDo/XFwvXFwvfDopLy5leGVjKEEpO3JldHVybiB0JiZ0WzFdfHwiIn1mdW5jdGlvbiBMSShBLHQpe0E9QXx8MTA7bGV0IGU9bmV3IEFycmF5KEEpLEk9bmV3IEFycmF5KEEpLHI9MCxvPTAsZztyZXR1cm4gdD10IT09dm9pZCAwP3Q6MWUzLGZ1bmN0aW9uKEUpe2xldCBhPURhdGUubm93KCkscz1JW29dO2d8fChnPWEpLGVbcl09RSxJW3JdPWE7bGV0IG49byxmPTA7Zm9yKDtuIT09cjspZis9ZVtuKytdLG49biVBO2lmKHI9KHIrMSklQSxyPT09byYmKG89KG8rMSklQSksYS1nPHQpcmV0dXJuO2xldCBCPXMmJmEtcztyZXR1cm4gQj9NYXRoLnJvdW5kKGYqMWUzL0IpOnZvaWQgMH19dmFyIE90PUxJO2Z1bmN0aW9uIGJJKEEsdCl7bGV0IGU9MCxJPTFlMy90LHIsbyxnPShhLHM9RGF0ZS5ub3coKSk9PntlPXMscj1udWxsLG8mJihjbGVhclRpbWVvdXQobyksbz1udWxsKSxBLmFwcGx5KG51bGwsYSl9O3JldHVyblsoLi4uYSk9PntsZXQgcz1EYXRlLm5vdygpLG49cy1lO24+PUk/ZyhhLHMpOihyPWEsb3x8KG89c2V0VGltZW91dCgoKT0+e289bnVsbCxnKHIpfSxJLW4pKSl9LCgpPT5yJiZnKHIpXX12YXIgeHQ9Ykk7dmFyIF89KEEsdCxlPTMpPT57bGV0IEk9MCxyPU90KDUwLDI1MCk7cmV0dXJuIHh0KG89PntsZXQgZz1vLmxvYWRlZCxDPW8ubGVuZ3RoQ29tcHV0YWJsZT9vLnRvdGFsOnZvaWQgMCxFPWctSSxhPXIoRSkscz1nPD1DO0k9ZztsZXQgbj17bG9hZGVkOmcsdG90YWw6Qyxwcm9ncmVzczpDP2cvQzp2b2lkIDAsYnl0ZXM6RSxyYXRlOmF8fHZvaWQgMCxlc3RpbWF0ZWQ6YSYmQyYmcz8oQy1nKS9hOnZvaWQgMCxldmVudDpvLGxlbmd0aENvbXB1dGFibGU6QyE9bnVsbCxbdD8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH07QShuKX0sZSl9LHZBPShBLHQpPT57bGV0IGU9QSE9bnVsbDtyZXR1cm5bST0+dFswXSh7bGVuZ3RoQ29tcHV0YWJsZTplLHRvdGFsOkEsbG9hZGVkOkl9KSx0WzFdXX0sJEE9QT0+KC4uLnQpPT5pLmFzYXAoKCk9PkEoLi4udCkpO3ZhciBQdD1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKEEsdCk9PmU9PihlPW5ldyBVUkwoZSxoLm9yaWdpbiksQS5wcm90b2NvbD09PWUucHJvdG9jb2wmJkEuaG9zdD09PWUuaG9zdCYmKHR8fEEucG9ydD09PWUucG9ydCkpKShuZXcgVVJMKGgub3JpZ2luKSxoLm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChoLm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITA7dmFyIFd0PWguaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShBLHQsZSxJLHIsbyl7bGV0IGc9W0ErIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0KV07aS5pc051bWJlcihlKSYmZy5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUoZSkudG9HTVRTdHJpbmcoKSksaS5pc1N0cmluZyhJKSYmZy5wdXNoKCJwYXRoPSIrSSksaS5pc1N0cmluZyhyKSYmZy5wdXNoKCJkb21haW49IityKSxvPT09ITAmJmcucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPWcuam9pbigiOyAiKX0scmVhZChBKXtsZXQgdD1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xcXFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIHQ/ZGVjb2RlVVJJQ29tcG9uZW50KHRbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gQXQoQSl7cmV0dXJuL14oW2Etel1bYS16XFxkK1xcLS5dKjopP1xcL1xcLy9pLnRlc3QoQSl9ZnVuY3Rpb24gdHQoQSx0KXtyZXR1cm4gdD9BLnJlcGxhY2UoL1xcLz9cXC8kLywiIikrIi8iK3QucmVwbGFjZSgvXlxcLysvLCIiKTpBfWZ1bmN0aW9uIGdBKEEsdCxlKXtsZXQgST0hQXQodCk7cmV0dXJuIEEmJihJfHxlPT0hMSk/dHQoQSx0KTp0fXZhciBqdD1BPT5BIGluc3RhbmNlb2YgUz97Li4uQX06QTtmdW5jdGlvbiBrKEEsdCl7dD10fHx7fTtsZXQgZT17fTtmdW5jdGlvbiBJKGEscyxuLGYpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoYSkmJmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlLmNhbGwoe2Nhc2VsZXNzOmZ9LGEscyk6aS5pc1BsYWluT2JqZWN0KHMpP2kubWVyZ2Uoe30scyk6aS5pc0FycmF5KHMpP3Muc2xpY2UoKTpzfWZ1bmN0aW9uIHIoYSxzLG4sZil7aWYoaS5pc1VuZGVmaW5lZChzKSl7aWYoIWkuaXNVbmRlZmluZWQoYSkpcmV0dXJuIEkodm9pZCAwLGEsbixmKX1lbHNlIHJldHVybiBJKGEscyxuLGYpfWZ1bmN0aW9uIG8oYSxzKXtpZighaS5pc1VuZGVmaW5lZChzKSlyZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gZyhhLHMpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKGEpKXJldHVybiBJKHZvaWQgMCxhKX1lbHNlIHJldHVybiBJKHZvaWQgMCxzKX1mdW5jdGlvbiBDKGEscyxuKXtpZihuIGluIHQpcmV0dXJuIEkoYSxzKTtpZihuIGluIEEpcmV0dXJuIEkodm9pZCAwLGEpfWxldCBFPXt1cmw6byxtZXRob2Q6byxkYXRhOm8sYmFzZVVSTDpnLHRyYW5zZm9ybVJlcXVlc3Q6Zyx0cmFuc2Zvcm1SZXNwb25zZTpnLHBhcmFtc1NlcmlhbGl6ZXI6Zyx0aW1lb3V0OmcsdGltZW91dE1lc3NhZ2U6Zyx3aXRoQ3JlZGVudGlhbHM6Zyx3aXRoWFNSRlRva2VuOmcsYWRhcHRlcjpnLHJlc3BvbnNlVHlwZTpnLHhzcmZDb29raWVOYW1lOmcseHNyZkhlYWRlck5hbWU6ZyxvblVwbG9hZFByb2dyZXNzOmcsb25Eb3dubG9hZFByb2dyZXNzOmcsZGVjb21wcmVzczpnLG1heENvbnRlbnRMZW5ndGg6ZyxtYXhCb2R5TGVuZ3RoOmcsYmVmb3JlUmVkaXJlY3Q6Zyx0cmFuc3BvcnQ6ZyxodHRwQWdlbnQ6ZyxodHRwc0FnZW50OmcsY2FuY2VsVG9rZW46Zyxzb2NrZXRQYXRoOmcscmVzcG9uc2VFbmNvZGluZzpnLHZhbGlkYXRlU3RhdHVzOkMsaGVhZGVyczooYSxzLG4pPT5yKGp0KGEpLGp0KHMpLG4sITApfTtyZXR1cm4gaS5mb3JFYWNoKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sQSx0KSksZnVuY3Rpb24ocyl7bGV0IG49RVtzXXx8cixmPW4oQVtzXSx0W3NdLHMpO2kuaXNVbmRlZmluZWQoZikmJm4hPT1DfHwoZVtzXT1mKX0pLGV9dmFyIEZBPUE9PntsZXQgdD1rKHt9LEEpLHtkYXRhOmUsd2l0aFhTUkZUb2tlbjpJLHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6byxoZWFkZXJzOmcsYXV0aDpDfT10O3QuaGVhZGVycz1nPVMuZnJvbShnKSx0LnVybD10QShnQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxDJiZnLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgoQy51c2VybmFtZXx8IiIpKyI6IisoQy5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoQy5wYXNzd29yZCkpOiIiKSkpO2xldCBFO2lmKGkuaXNGb3JtRGF0YShlKSl7aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fGguaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KWcuc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKChFPWcuZ2V0Q29udGVudFR5cGUoKSkhPT0hMSl7bGV0W2EsLi4uc109RT9FLnNwbGl0KCI7IikubWFwKG49Pm4udHJpbSgpKS5maWx0ZXIoQm9vbGVhbik6W107Zy5zZXRDb250ZW50VHlwZShbYXx8Im11bHRpcGFydC9mb3JtLWRhdGEiLC4uLnNdLmpvaW4oIjsgIikpfX1pZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKEkmJmkuaXNGdW5jdGlvbihJKSYmKEk9SSh0KSksSXx8SSE9PSExJiZQdCh0LnVybCkpKXtsZXQgYT1yJiZvJiZXdC5yZWFkKG8pO2EmJmcuc2V0KHIsYSl9cmV0dXJuIHR9O3ZhciBKST10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUiLFp0PUpJJiZmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxJKXtsZXQgcj1GQShBKSxvPXIuZGF0YSxnPVMuZnJvbShyLmhlYWRlcnMpLm5vcm1hbGl6ZSgpLHtyZXNwb25zZVR5cGU6QyxvblVwbG9hZFByb2dyZXNzOkUsb25Eb3dubG9hZFByb2dyZXNzOmF9PXIscyxuLGYsQixRO2Z1bmN0aW9uIGwoKXtCJiZCKCksUSYmUSgpLHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUocyksci5zaWduYWwmJnIuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixzKX1sZXQgYz1uZXcgWE1MSHR0cFJlcXVlc3Q7Yy5vcGVuKHIubWV0aG9kLnRvVXBwZXJDYXNlKCksci51cmwsITApLGMudGltZW91dD1yLnRpbWVvdXQ7ZnVuY3Rpb24gZCgpe2lmKCFjKXJldHVybjtsZXQgbT1TLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBjJiZjLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxSPXtkYXRhOiFDfHxDPT09InRleHQifHxDPT09Impzb24iP2MucmVzcG9uc2VUZXh0OmMucmVzcG9uc2Usc3RhdHVzOmMuc3RhdHVzLHN0YXR1c1RleHQ6Yy5zdGF0dXNUZXh0LGhlYWRlcnM6bSxjb25maWc6QSxyZXF1ZXN0OmN9O29BKGZ1bmN0aW9uKFQpe2UoVCksbCgpfSxmdW5jdGlvbihUKXtJKFQpLGwoKX0sUiksYz1udWxsfSJvbmxvYWRlbmQiaW4gYz9jLm9ubG9hZGVuZD1kOmMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IWN8fGMucmVhZHlTdGF0ZSE9PTR8fGMuc3RhdHVzPT09MCYmIShjLnJlc3BvbnNlVVJMJiZjLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6Iik9PT0wKXx8c2V0VGltZW91dChkKX0sYy5vbmFib3J0PWZ1bmN0aW9uKCl7YyYmKEkobmV3IHUoIlJlcXVlc3QgYWJvcnRlZCIsdS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsKX0sYy5vbmVycm9yPWZ1bmN0aW9uKCl7SShuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxBLGMpKSxjPW51bGx9LGMub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IEg9ci50aW1lb3V0PyJ0aW1lb3V0IG9mICIrci50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLFI9ci50cmFuc2l0aW9uYWx8fHdBO3IudGltZW91dEVycm9yTWVzc2FnZSYmKEg9ci50aW1lb3V0RXJyb3JNZXNzYWdlKSxJKG5ldyB1KEgsUi5jbGFyaWZ5VGltZW91dEVycm9yP3UuRVRJTUVET1VUOnUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbH0sbz09PXZvaWQgMCYmZy5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBjJiZpLmZvckVhY2goZy50b0pTT04oKSxmdW5jdGlvbihILFIpe2Muc2V0UmVxdWVzdEhlYWRlcihSLEgpfSksaS5pc1VuZGVmaW5lZChyLndpdGhDcmVkZW50aWFscyl8fChjLndpdGhDcmVkZW50aWFscz0hIXIud2l0aENyZWRlbnRpYWxzKSxDJiZDIT09Impzb24iJiYoYy5yZXNwb25zZVR5cGU9ci5yZXNwb25zZVR5cGUpLGEmJihbZixRXT1fKGEsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGYpKSxFJiZjLnVwbG9hZCYmKFtuLEJdPV8oRSksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLG4pLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLEIpKSwoci5jYW5jZWxUb2tlbnx8ci5zaWduYWwpJiYocz1tPT57YyYmKEkoIW18fG0udHlwZT9uZXcgTChudWxsLEEsYyk6bSksYy5hYm9ydCgpLGM9bnVsbCl9LHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiYoci5zaWduYWwuYWJvcnRlZD9zKCk6ci5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpKSk7bGV0IHk9ekEoci51cmwpO2lmKHkmJmgucHJvdG9jb2xzLmluZGV4T2YoeSk9PT0tMSl7SShuZXcgdSgiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIit5KyI6Iix1LkVSUl9CQURfUkVRVUVTVCxBKSk7cmV0dXJufWMuc2VuZChvfHxudWxsKX0pfTt2YXIgSEk9KEEsdCk9PntsZXR7bGVuZ3RoOmV9PUE9QT9BLmZpbHRlcihCb29sZWFuKTpbXTtpZih0fHxlKXtsZXQgST1uZXcgQWJvcnRDb250cm9sbGVyLHIsbz1mdW5jdGlvbihhKXtpZighcil7cj0hMCxDKCk7bGV0IHM9YSBpbnN0YW5jZW9mIEVycm9yP2E6dGhpcy5yZWFzb247SS5hYm9ydChzIGluc3RhbmNlb2YgdT9zOm5ldyBMKHMgaW5zdGFuY2VvZiBFcnJvcj9zLm1lc3NhZ2U6cykpfX0sZz10JiZzZXRUaW1lb3V0KCgpPT57Zz1udWxsLG8obmV3IHUoYHRpbWVvdXQgJHt0fSBvZiBtcyBleGNlZWRlZGAsdS5FVElNRURPVVQpKX0sdCksQz0oKT0+e0EmJihnJiZjbGVhclRpbWVvdXQoZyksZz1udWxsLEEuZm9yRWFjaChhPT57YS51bnN1YnNjcmliZT9hLnVuc3Vic2NyaWJlKG8pOmEucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfSksQT1udWxsKX07QS5mb3JFYWNoKGE9PmEuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pKTtsZXR7c2lnbmFsOkV9PUk7cmV0dXJuIEUudW5zdWJzY3JpYmU9KCk9PmkuYXNhcChDKSxFfX0sVnQ9SEk7dmFyIFlJPWZ1bmN0aW9uKihBLHQpe2xldCBlPUEuYnl0ZUxlbmd0aDtpZighdHx8ZTx0KXt5aWVsZCBBO3JldHVybn1sZXQgST0wLHI7Zm9yKDtJPGU7KXI9SSt0LHlpZWxkIEEuc2xpY2UoSSxyKSxJPXJ9LHFJPWFzeW5jIGZ1bmN0aW9uKihBLHQpe2ZvciBhd2FpdChsZXQgZSBvZiBNSShBKSl5aWVsZCpZSShlLHQpfSxNST1hc3luYyBmdW5jdGlvbiooQSl7aWYoQVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pe3lpZWxkKkE7cmV0dXJufWxldCB0PUEuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6ZSx2YWx1ZTpJfT1hd2FpdCB0LnJlYWQoKTtpZihlKWJyZWFrO3lpZWxkIEl9fWZpbmFsbHl7YXdhaXQgdC5jYW5jZWwoKX19LGV0PShBLHQsZSxJKT0+e2xldCByPXFJKEEsdCksbz0wLGcsQz1FPT57Z3x8KGc9ITAsSSYmSShFKSl9O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwoRSl7dHJ5e2xldHtkb25lOmEsdmFsdWU6c309YXdhaXQgci5uZXh0KCk7aWYoYSl7QygpLEUuY2xvc2UoKTtyZXR1cm59bGV0IG49cy5ieXRlTGVuZ3RoO2lmKGUpe2xldCBmPW8rPW47ZShmKX1FLmVucXVldWUobmV3IFVpbnQ4QXJyYXkocykpfWNhdGNoKGEpe3Rocm93IEMoYSksYX19LGNhbmNlbChFKXtyZXR1cm4gQyhFKSxyLnJldHVybigpfX0se2hpZ2hXYXRlck1hcms6Mn0pfTt2YXIgTkE9dHlwZW9mIGZldGNoPT0iZnVuY3Rpb24iJiZ0eXBlb2YgUmVxdWVzdD09ImZ1bmN0aW9uIiYmdHlwZW9mIFJlc3BvbnNlPT0iZnVuY3Rpb24iLF90PU5BJiZ0eXBlb2YgUmVhZGFibGVTdHJlYW09PSJmdW5jdGlvbiIsS0k9TkEmJih0eXBlb2YgVGV4dEVuY29kZXI9PSJmdW5jdGlvbiI/KEE9PnQ9PkEuZW5jb2RlKHQpKShuZXcgVGV4dEVuY29kZXIpOmFzeW5jIEE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBSZXNwb25zZShBKS5hcnJheUJ1ZmZlcigpKSksenQ9KEEsLi4udCk9Pnt0cnl7cmV0dXJuISFBKC4uLnQpfWNhdGNoe3JldHVybiExfX0sVEk9X3QmJnp0KCgpPT57bGV0IEE9ITEsdD1uZXcgUmVxdWVzdChoLm9yaWdpbix7Ym9keTpuZXcgUmVhZGFibGVTdHJlYW0sbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIEE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gQSYmIXR9KSxYdD02NCoxMDI0LEl0PV90JiZ6dCgoKT0+aS5pc1JlYWRhYmxlU3RyZWFtKG5ldyBSZXNwb25zZSgiIikuYm9keSkpLFJBPXtzdHJlYW06SXQmJihBPT5BLmJvZHkpfTtOQSYmKEE9PntbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2godD0+eyFSQVt0XSYmKFJBW3RdPWkuaXNGdW5jdGlvbihBW3RdKT9lPT5lW3RdKCk6KGUsSSk9Pnt0aHJvdyBuZXcgdShgUmVzcG9uc2UgdHlwZSBcJyR7dH1cJyBpcyBub3Qgc3VwcG9ydGVkYCx1LkVSUl9OT1RfU1VQUE9SVCxJKX0pfSl9KShuZXcgUmVzcG9uc2UpO3ZhciBPST1hc3luYyBBPT57aWYoQT09bnVsbClyZXR1cm4gMDtpZihpLmlzQmxvYihBKSlyZXR1cm4gQS5zaXplO2lmKGkuaXNTcGVjQ29tcGxpYW50Rm9ybShBKSlyZXR1cm4oYXdhaXQgbmV3IFJlcXVlc3QoaC5vcmlnaW4se21ldGhvZDoiUE9TVCIsYm9keTpBfSkuYXJyYXlCdWZmZXIoKSkuYnl0ZUxlbmd0aDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KEEpfHxpLmlzQXJyYXlCdWZmZXIoQSkpcmV0dXJuIEEuYnl0ZUxlbmd0aDtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKEEpJiYoQT1BKyIiKSxpLmlzU3RyaW5nKEEpKXJldHVybihhd2FpdCBLSShBKSkuYnl0ZUxlbmd0aH0seEk9YXN5bmMoQSx0KT0+e2xldCBlPWkudG9GaW5pdGVOdW1iZXIoQS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiBlPz9PSSh0KX0sdnQ9TkEmJihhc3luYyBBPT57bGV0e3VybDp0LG1ldGhvZDplLGRhdGE6SSxzaWduYWw6cixjYW5jZWxUb2tlbjpvLHRpbWVvdXQ6ZyxvbkRvd25sb2FkUHJvZ3Jlc3M6QyxvblVwbG9hZFByb2dyZXNzOkUscmVzcG9uc2VUeXBlOmEsaGVhZGVyczpzLHdpdGhDcmVkZW50aWFsczpuPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOmZ9PUZBKEEpO2E9YT8oYSsiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IEI9VnQoW3IsbyYmby50b0Fib3J0U2lnbmFsKCldLGcpLFEsbD1CJiZCLnVuc3Vic2NyaWJlJiYoKCk9PntCLnVuc3Vic2NyaWJlKCl9KSxjO3RyeXtpZihFJiZUSSYmZSE9PSJnZXQiJiZlIT09ImhlYWQiJiYoYz1hd2FpdCB4SShzLEkpKSE9PTApe2xldCBSPW5ldyBSZXF1ZXN0KHQse21ldGhvZDoiUE9TVCIsYm9keTpJLGR1cGxleDoiaGFsZiJ9KSxxO2lmKGkuaXNGb3JtRGF0YShJKSYmKHE9Ui5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZzLnNldENvbnRlbnRUeXBlKHEpLFIuYm9keSl7bGV0W1QsQkFdPXZBKGMsXygkQShFKSkpO0k9ZXQoUi5ib2R5LFh0LFQsQkEpfX1pLmlzU3RyaW5nKG4pfHwobj1uPyJpbmNsdWRlIjoib21pdCIpO2xldCBkPSJjcmVkZW50aWFscyJpbiBSZXF1ZXN0LnByb3RvdHlwZTtRPW5ldyBSZXF1ZXN0KHQsey4uLmYsc2lnbmFsOkIsbWV0aG9kOmUudG9VcHBlckNhc2UoKSxoZWFkZXJzOnMubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpJLGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6ZD9uOnZvaWQgMH0pO2xldCB5PWF3YWl0IGZldGNoKFEpLG09SXQmJihhPT09InN0cmVhbSJ8fGE9PT0icmVzcG9uc2UiKTtpZihJdCYmKEN8fG0mJmwpKXtsZXQgUj17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChhdD0+e1JbYXRdPXlbYXRdfSk7bGV0IHE9aS50b0Zpbml0ZU51bWJlcih5LmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbVCxCQV09QyYmdkEocSxfKCRBKEMpLCEwKSl8fFtdO3k9bmV3IFJlc3BvbnNlKGV0KHkuYm9keSxYdCxULCgpPT57QkEmJkJBKCksbCYmbCgpfSksUil9YT1hfHwidGV4dCI7bGV0IEg9YXdhaXQgUkFbaS5maW5kS2V5KFJBLGEpfHwidGV4dCJdKHksQSk7cmV0dXJuIW0mJmwmJmwoKSxhd2FpdCBuZXcgUHJvbWlzZSgoUixxKT0+e29BKFIscSx7ZGF0YTpILGhlYWRlcnM6Uy5mcm9tKHkuaGVhZGVycyksc3RhdHVzOnkuc3RhdHVzLHN0YXR1c1RleHQ6eS5zdGF0dXNUZXh0LGNvbmZpZzpBLHJlcXVlc3Q6UX0pfSl9Y2F0Y2goZCl7dGhyb3cgbCYmbCgpLGQmJmQubmFtZT09PSJUeXBlRXJyb3IiJiYvZmV0Y2gvaS50ZXN0KGQubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxBLFEpLHtjYXVzZTpkLmNhdXNlfHxkfSk6dS5mcm9tKGQsZCYmZC5jb2RlLEEsUSl9fSk7dmFyIHJ0PXtodHRwOnlBLHhocjpadCxmZXRjaDp2dH07aS5mb3JFYWNoKHJ0LChBLHQpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6dH0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTp0fSl9fSk7dmFyICR0PUE9PmAtICR7QX1gLFBJPUE9PmkuaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxVQT17Z2V0QWRhcHRlcjpBPT57QT1pLmlzQXJyYXkoQSk/QTpbQV07bGV0e2xlbmd0aDp0fT1BLGUsSSxyPXt9O2ZvcihsZXQgbz0wO288dDtvKyspe2U9QVtvXTtsZXQgZztpZihJPWUsIVBJKGUpJiYoST1ydFsoZz1TdHJpbmcoZSkpLnRvTG93ZXJDYXNlKCldLEk9PT12b2lkIDApKXRocm93IG5ldyB1KGBVbmtub3duIGFkYXB0ZXIgXCcke2d9XCdgKTtpZihJKWJyZWFrO3JbZ3x8IiUyMyIrb109SX1pZighSSl7bGV0IG89T2JqZWN0LmVudHJpZXMocikubWFwKChbQyxFXSk9PmBhZGFwdGVyICR7Q30gYCsoRT09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLGc9dD9vLmxlbmd0aD4xP2BzaW5jZSA6JTBBYCtvLm1hcCgkdCkuam9pbihgJTBBYCk6IiAiKyR0KG9bMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IHUoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitnLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gSX0sYWRhcHRlcnM6cnR9O2Z1bmN0aW9uIG90KEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBMKG51bGwsQSl9ZnVuY3Rpb24gR0EoQSl7cmV0dXJuIG90KEEpLEEuaGVhZGVycz1TLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9SUEuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLFVBLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxWLmFkYXB0ZXIpKEEpLnRoZW4oZnVuY3Rpb24oSSl7cmV0dXJuIG90KEEpLEkuZGF0YT1JQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJKSxJLmhlYWRlcnM9Uy5mcm9tKEkuaGVhZGVycyksSX0sZnVuY3Rpb24oSSl7cmV0dXJuIHJBKEkpfHwob3QoQSksSSYmSS5yZXNwb25zZSYmKEkucmVzcG9uc2UuZGF0YT1JQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJLnJlc3BvbnNlKSxJLnJlc3BvbnNlLmhlYWRlcnM9Uy5mcm9tKEkucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChJKX0pfXZhciBrQT0iMS44LjQiO3ZhciBMQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsdCk9PntMQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKHQ8MT8ibiAiOiIgIikrQX19KTt2YXIgQWU9e307TEEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKHQsZSxJKXtmdW5jdGlvbiByKG8sZyl7cmV0dXJuIltBeGlvcyB2IitrQSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uIFwnIitvKyJcJyIrZysoST8iLiAiK0k6IiIpfXJldHVybihvLGcsQyk9PntpZih0PT09ITEpdGhyb3cgbmV3IHUocihnLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKGU/IiBpbiAiK2U6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gZSYmIUFlW2ddJiYoQWVbZ109ITAsY29uc29sZS53YXJuKHIoZywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrZSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSx0P3QobyxnLEMpOiEwfX07TEEuc3BlbGxpbmc9ZnVuY3Rpb24odCl7cmV0dXJuKGUsSSk9Pihjb25zb2xlLndhcm4oYCR7SX0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHt0fWApLCEwKX07ZnVuY3Rpb24gV0koQSx0LGUpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IEk9T2JqZWN0LmtleXMoQSkscj1JLmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBvPUlbcl0sZz10W29dO2lmKGcpe2xldCBDPUFbb10sRT1DPT09dm9pZCAwfHxnKEMsbyxBKTtpZihFIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK28rIiBtdXN0IGJlICIrRSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZihlIT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIrbyx1LkVSUl9CQURfT1BUSU9OKX19dmFyIGlBPXthc3NlcnRPcHRpb25zOldJLHZhbGlkYXRvcnM6TEF9O3ZhciBiPWlBLnZhbGlkYXRvcnMsej1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmRlZmF1bHRzPXQsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IFBBLHJlc3BvbnNlOm5ldyBQQX19YXN5bmMgcmVxdWVzdCh0LGUpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdCh0LGUpfWNhdGNoKEkpe2lmKEkgaW5zdGFuY2VvZiBFcnJvcil7bGV0IHI9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uocik6cj1uZXcgRXJyb3I7bGV0IG89ci5zdGFjaz9yLnN0YWNrLnJlcGxhY2UoL14uK1xcbi8sIiIpOiIiO3RyeXtJLnN0YWNrP28mJiFTdHJpbmcoSS5zdGFjaykuZW5kc1dpdGgoby5yZXBsYWNlKC9eLitcXG4uK1xcbi8sIiIpKSYmKEkuc3RhY2srPWAlMEFgK28pOkkuc3RhY2s9b31jYXRjaHt9fXRocm93IEl9fV9yZXF1ZXN0KHQsZSl7dHlwZW9mIHQ9PSJzdHJpbmciPyhlPWV8fHt9LGUudXJsPXQpOmU9dHx8e30sZT1rKHRoaXMuZGVmYXVsdHMsZSk7bGV0e3RyYW5zaXRpb25hbDpJLHBhcmFtc1NlcmlhbGl6ZXI6cixoZWFkZXJzOm99PWU7SSE9PXZvaWQgMCYmaUEuYXNzZXJ0T3B0aW9ucyhJLHtzaWxlbnRKU09OUGFyc2luZzpiLnRyYW5zaXRpb25hbChiLmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOmIudHJhbnNpdGlvbmFsKGIuYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpiLnRyYW5zaXRpb25hbChiLmJvb2xlYW4pfSwhMSksciE9bnVsbCYmKGkuaXNGdW5jdGlvbihyKT9lLnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpyfTppQS5hc3NlcnRPcHRpb25zKHIse2VuY29kZTpiLmZ1bmN0aW9uLHNlcmlhbGl6ZTpiLmZ1bmN0aW9ufSwhMCkpLGUuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDB8fCh0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwP2UuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsczplLmFsbG93QWJzb2x1dGVVcmxzPSEwKSxpQS5hc3NlcnRPcHRpb25zKGUse2Jhc2VVcmw6Yi5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46Yi5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksZS5tZXRob2Q9KGUubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IGc9byYmaS5tZXJnZShvLmNvbW1vbixvW2UubWV0aG9kXSk7byYmaS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLFE9PntkZWxldGUgb1tRXX0pLGUuaGVhZGVycz1TLmNvbmNhdChnLG8pO2xldCBDPVtdLEU9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGwpe3R5cGVvZiBsLnJ1bldoZW49PSJmdW5jdGlvbiImJmwucnVuV2hlbihlKT09PSExfHwoRT1FJiZsLnN5bmNocm9ub3VzLEMudW5zaGlmdChsLmZ1bGZpbGxlZCxsLnJlamVjdGVkKSl9KTtsZXQgYT1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGwpe2EucHVzaChsLmZ1bGZpbGxlZCxsLnJlamVjdGVkKX0pO2xldCBzLG49MCxmO2lmKCFFKXtsZXQgUT1bR0EuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihRLnVuc2hpZnQuYXBwbHkoUSxDKSxRLnB1c2guYXBwbHkoUSxhKSxmPVEubGVuZ3RoLHM9UHJvbWlzZS5yZXNvbHZlKGUpO248Zjspcz1zLnRoZW4oUVtuKytdLFFbbisrXSk7cmV0dXJuIHN9Zj1DLmxlbmd0aDtsZXQgQj1lO2ZvcihuPTA7bjxmOyl7bGV0IFE9Q1tuKytdLGw9Q1tuKytdO3RyeXtCPVEoQil9Y2F0Y2goYyl7bC5jYWxsKHRoaXMsYyk7YnJlYWt9fXRyeXtzPUdBLmNhbGwodGhpcyxCKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKG49MCxmPWEubGVuZ3RoO248Zjspcz1zLnRoZW4oYVtuKytdLGFbbisrXSk7cmV0dXJuIHN9Z2V0VXJpKHQpe3Q9ayh0aGlzLmRlZmF1bHRzLHQpO2xldCBlPWdBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gdEEoZSx0LnBhcmFtcyx0LnBhcmFtc1NlcmlhbGl6ZXIpfX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbih0KXt6LnByb3RvdHlwZVt0XT1mdW5jdGlvbihlLEkpe3JldHVybiB0aGlzLnJlcXVlc3QoayhJfHx7fSx7bWV0aG9kOnQsdXJsOmUsZGF0YTooSXx8e30pLmRhdGF9KSl9fSk7aS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShJKXtyZXR1cm4gZnVuY3Rpb24obyxnLEMpe3JldHVybiB0aGlzLnJlcXVlc3QoayhDfHx7fSx7bWV0aG9kOnQsaGVhZGVyczpJP3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDpvLGRhdGE6Z30pKX19ei5wcm90b3R5cGVbdF09ZSgpLHoucHJvdG90eXBlW3QrIkZvcm0iXT1lKCEwKX0pO3ZhciBzQT16O3ZhciBndD1jbGFzcyBBe2NvbnN0cnVjdG9yKHQpe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtsZXQgZTt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24obyl7ZT1vfSk7bGV0IEk9dGhpczt0aGlzLnByb21pc2UudGhlbihyPT57aWYoIUkuX2xpc3RlbmVycylyZXR1cm47bGV0IG89SS5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO28tLSA+MDspSS5fbGlzdGVuZXJzW29dKHIpO0kuX2xpc3RlbmVycz1udWxsfSksdGhpcy5wcm9taXNlLnRoZW49cj0+e2xldCBvLGc9bmV3IFByb21pc2UoQz0+e0kuc3Vic2NyaWJlKEMpLG89Q30pLnRoZW4ocik7cmV0dXJuIGcuY2FuY2VsPWZ1bmN0aW9uKCl7SS51bnN1YnNjcmliZShvKX0sZ30sdChmdW5jdGlvbihvLGcsQyl7SS5yZWFzb258fChJLnJlYXNvbj1uZXcgTChvLGcsQyksZShJLnJlYXNvbikpfSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZSh0KXtpZih0aGlzLnJlYXNvbil7dCh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaCh0KTp0aGlzLl9saXN0ZW5lcnM9W3RdfXVuc3Vic2NyaWJlKHQpe2lmKCF0aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBlPXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKHQpO2UhPT0tMSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZShlLDEpfXRvQWJvcnRTaWduYWwoKXtsZXQgdD1uZXcgQWJvcnRDb250cm9sbGVyLGU9ST0+e3QuYWJvcnQoSSl9O3JldHVybiB0aGlzLnN1YnNjcmliZShlKSx0LnNpZ25hbC51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZShlKSx0LnNpZ25hbH1zdGF0aWMgc291cmNlKCl7bGV0IHQ7cmV0dXJue3Rva2VuOm5ldyBBKGZ1bmN0aW9uKHIpe3Q9cn0pLGNhbmNlbDp0fX19LHRlPWd0O2Z1bmN0aW9uIGl0KEEpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gQS5hcHBseShudWxsLGUpfX1mdW5jdGlvbiBzdChBKXtyZXR1cm4gaS5pc09iamVjdChBKSYmQS5pc0F4aW9zRXJyb3I9PT0hMH12YXIgbnQ9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKG50KS5mb3JFYWNoKChbQSx0XSk9PntudFt0XT1BfSk7dmFyIGVlPW50O2Z1bmN0aW9uIEllKEEpe2xldCB0PW5ldyBzQShBKSxlPXYoc0EucHJvdG90eXBlLnJlcXVlc3QsdCk7cmV0dXJuIGkuZXh0ZW5kKGUsc0EucHJvdG90eXBlLHQse2FsbE93bktleXM6ITB9KSxpLmV4dGVuZChlLHQsbnVsbCx7YWxsT3duS2V5czohMH0pLGUuY3JlYXRlPWZ1bmN0aW9uKHIpe3JldHVybiBJZShrKEEscikpfSxlfXZhciB3PUllKFYpO3cuQXhpb3M9c0E7dy5DYW5jZWxlZEVycm9yPUw7dy5DYW5jZWxUb2tlbj10ZTt3LmlzQ2FuY2VsPXJBO3cuVkVSU0lPTj1rQTt3LnRvRm9ybURhdGE9TTt3LkF4aW9zRXJyb3I9dTt3LkNhbmNlbD13LkNhbmNlbGVkRXJyb3I7dy5hbGw9ZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UuYWxsKHQpfTt3LnNwcmVhZD1pdDt3LmlzQXhpb3NFcnJvcj1zdDt3Lm1lcmdlQ29uZmlnPWs7dy5BeGlvc0hlYWRlcnM9Uzt3LmZvcm1Ub0pTT049QT0+cEEoaS5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTt3LmdldEFkYXB0ZXI9VUEuZ2V0QWRhcHRlcjt3Lkh0dHBTdGF0dXNDb2RlPWVlO3cuZGVmYXVsdD13O3ZhciBiQT13O3ZhcntBeGlvczpCaSxBeGlvc0Vycm9yOmFpLENhbmNlbGVkRXJyb3I6UWksaXNDYW5jZWw6RWksQ2FuY2VsVG9rZW46Y2ksVkVSU0lPTjpmaSxhbGw6bGksQ2FuY2VsOnVpLGlzQXhpb3NFcnJvcjpEaSxzcHJlYWQ6ZGksdG9Gb3JtRGF0YTpoaSxBeGlvc0hlYWRlcnM6eWksSHR0cFN0YXR1c0NvZGU6bWksZm9ybVRvSlNPTjp3aSxnZXRBZGFwdGVyOnBpLG1lcmdlQ29uZmlnOlNpfT1iQTt2YXIgbkEsWSxCdCxDdD17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe0J0PW5ldyBVaW50OEFycmF5KFkuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSxKQT1jbGFzc3tpbml0KCl7cmV0dXJuIG5BfHwodHlwZW9mIGZldGNoPCJ1Ij9uQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK3JlKS50aGVuKHQ9PnQuYXJyYXlCdWZmZXIoKSkudGhlbih0PT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZSh0LEN0KSkudGhlbih0aGlzLl9pbml0KTpuQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShyZSwiYmFzZTY0IiksQ3QpLnRoZW4odGhpcy5faW5pdCksbkEpfV9pbml0KHQpe1k9dC5pbnN0YW5jZSxDdC5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUodCxlPTApe2lmKCFZKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCBJPXQuYnl0ZUxlbmd0aCxyPVkuZXhwb3J0cy5tYWxsb2MoSSk7QnQuc2V0KHQsciksZT1lfHxOdW1iZXIoWS5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUocixJKSk7bGV0IG89WS5leHBvcnRzLm1hbGxvYyhlKSxnPVkuZXhwb3J0cy5aU1REX2RlY29tcHJlc3MobyxlLHIsSSksQz1CdC5zbGljZShvLG8rZyk7cmV0dXJuIFkuZXhwb3J0cy5mcmVlKHIpLFkuZXhwb3J0cy5mcmVlKG8pLEN9fSxyZT0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciBvZT1uZXcgSkEsZ2U9ITE7YXN5bmMgZnVuY3Rpb24gakkoQSx0LGUpe2xldCBJPW51bGw7dHlwZW9mIEEhPSJzdHJpbmciP0k9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP0k9QTpJPWAke3R9LyR7QX1gLEkuZW5kc1dpdGgoIi5qcyIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTMpKSxJLmVuZHNXaXRoKCIud2FzbSIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTUpKSxJLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC05KSk7bGV0IHI9YCR7SX0ud2FzbWAsbz1hd2FpdCBiQS5nZXQoYCR7cn0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOmV9KTtnZXx8KGF3YWl0IG9lLmluaXQoKSxnZT0hMCk7bGV0IEM9b2UuZGVjb2RlKG5ldyBVaW50OEFycmF5KG8uZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke0l9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6Q30pfXZhciBpZT1qSTt2YXIgSEE9bmV3IE1hcDthc3luYyBmdW5jdGlvbiBaSShBLHQsZSl7bGV0IEk9QSxyPUEsbz1udWxsO3JldHVybiB0eXBlb2YgQSE9InN0cmluZyImJihJPW5ldyBVUkwoQS5ocmVmKSxyPUkuaHJlZiksSEEuaGFzKHIpP289YXdhaXQgSEEuZ2V0KHIpOihIQS5zZXQocixpZShJLHQsZSkpLG89YXdhaXQgSEEuZ2V0KHIpKSxvfXZhciBzZT1aSTt2YXIgVkk9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LEQ9Vkk7dmFyIFhJPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sTj1YSTt2YXIgX0k9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFA9X0k7ZnVuY3Rpb24gekkoQSx0KXtsZXQgZT1udWxsO3N3aXRjaChBKXtjYXNlIE4uVUludDg6e2U9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBOLkludDg6e2U9bmV3IEludDhBcnJheSh0KTticmVha31jYXNlIE4uVUludDE2OntlPW5ldyBVaW50MTZBcnJheSh0KTticmVha31jYXNlIE4uSW50MTY6e2U9bmV3IEludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBOLlVJbnQzMjp7ZT1uZXcgVWludDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBOLkludDMyOntlPW5ldyBJbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgTi5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ1VpbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBOLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ0ludDY0QXJyYXkodCk6ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIFAuRmxvYXQzMjp7ZT1uZXcgRmxvYXQzMkFycmF5KHQpO2JyZWFrfWNhc2UgUC5GbG9hdDY0OntlPW5ldyBGbG9hdDY0QXJyYXkodCk7YnJlYWt9Y2FzZSJudWxsIjp7ZT1udWxsO2JyZWFrfWNhc2UgbnVsbDp7ZT1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIGV9dmFyIEo9ekk7dmFyIEJlPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLG5lPW5ldyBUZXh0RW5jb2RlcixDZT1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gdkkoQSx0KXtsZXQgZT17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSxJPUEuZnNfb3Blbih0LGUuZmxhZ3MpLG89QS5mc19zdGF0KHQpLnNpemUsZz1udWxsO0JlP2c9bmV3IFNoYXJlZEFycmF5QnVmZmVyKG8pOmc9bmV3IEFycmF5QnVmZmVyKG8pO2xldCBDPW5ldyBVaW50OEFycmF5KGcpO3JldHVybiBBLmZzX3JlYWQoSSxDLDAsbywwKSxBLmZzX2Nsb3NlKEkpLEN9ZnVuY3Rpb24gYWUoQSx0LGUpe2xldCBJPW51bGw7QmU/ST1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoZSk6ST1uZXcgQXJyYXlCdWZmZXIoZSk7bGV0IHI9bmV3IFVpbnQ4QXJyYXkoSSksbz1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsdCxlKTtyZXR1cm4gci5zZXQobykscn1mdW5jdGlvbiBwKEEsdCxlLEkpe2xldCByPTA7cmV0dXJuIHQhPT1udWxsJiYocj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLEksdC5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheSh0LmJ1ZmZlcikscikpLHJ9ZnVuY3Rpb24gSyhBLHQsZSl7bGV0IEk9SlNPTi5zdHJpbmdpZnkodCkscj1BLmxlbmd0aEJ5dGVzVVRGOChJKSsxLG89QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHJdKTtBLnN0cmluZ1RvVVRGOChJLG8scil9ZnVuY3Rpb24gRihBLHQsZSxJKXtsZXQgcj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxvPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsZV0pLGc9YWUoQSxyLG8pO3JldHVybiBKKEksZy5idWZmZXIpfWZ1bmN0aW9uIENBKEEsdCl7bGV0IGU9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCx0XSksST1BLlVURjhUb1N0cmluZyhlKTtyZXR1cm4gSlNPTi5wYXJzZShJKX1mdW5jdGlvbiAkSShBLHQsZSxJKXtJIT1udWxsJiZJLmxlbmd0aD4wJiZJLmZvckVhY2goZnVuY3Rpb24oYSxzKXtzd2l0Y2goYS50eXBlKXtjYXNlIEQuVGV4dFN0cmVhbTp7bGV0IG49bmUuZW5jb2RlKGEuZGF0YS5kYXRhKSxmPXAoQSxuLHMsMCksQj17c2l6ZTpuLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O0soQSxCLHMpO2JyZWFrfWNhc2UgRC5Kc29uQ29tcGF0aWJsZTp7bGV0IG49bmUuZW5jb2RlKEpTT04uc3RyaW5naWZ5KGEuZGF0YSkpLGY9cChBLG4scywwKSxCPXtzaXplOm4uYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07SyhBLEIscyk7YnJlYWt9Y2FzZSBELkJpbmFyeVN0cmVhbTp7bGV0IG49YS5kYXRhLmRhdGEsZj1wKEEsbixzLDApLEI9e3NpemU6bi5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtLKEEsQixzKTticmVha31jYXNlIEQuVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKGEuZGF0YS5wYXRoLGEuZGF0YS5kYXRhKTticmVha31jYXNlIEQuQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoYS5kYXRhLnBhdGgsYS5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgRC5JbWFnZTp7bGV0IG49YS5kYXRhLGY9cChBLG4uZGF0YSxzLDApLEI9cChBLG4uZGlyZWN0aW9uLHMsMSksUT10eXBlb2Ygbi5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShuLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sbD17aW1hZ2VUeXBlOm4uaW1hZ2VUeXBlLG5hbWU6bi5uYW1lLG9yaWdpbjpuLm9yaWdpbixzcGFjaW5nOm4uc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsc2l6ZTpuLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCxtZXRhZGF0YTpRfTtLKEEsbCxzKTticmVha31jYXNlIEQuTWVzaDp7bGV0IG49YS5kYXRhLGY9cChBLG4ucG9pbnRzLHMsMCksQj1wKEEsbi5jZWxscyxzLDEpLFE9cChBLG4ucG9pbnREYXRhLHMsMiksbD1wKEEsbi5jZWxsRGF0YSxzLDMpLGM9e21lc2hUeXBlOm4ubWVzaFR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsbnVtYmVyT2ZDZWxsczpuLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsY2VsbEJ1ZmZlclNpemU6bi5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOm4ubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOm4ubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTtLKEEsYyxzKTticmVha31jYXNlIEQuUG9pbnRTZXQ6e2xldCBuPWEuZGF0YSxmPXAoQSxuLnBvaW50cyxzLDApLEI9cChBLG4ucG9pbnREYXRhLHMsMSksUT17cG9pbnRTZXRUeXBlOm4ucG9pbnRTZXRUeXBlLG5hbWU6bi5uYW1lLG51bWJlck9mUG9pbnRzOm4ubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YH07SyhBLFEscyk7YnJlYWt9Y2FzZSBELlRyYW5zZm9ybUxpc3Q6e2xldCBuPWEuZGF0YSxmPVtdLEI9MDtuLmZvckVhY2goUT0+e2xldCBsPSIiLGM9IiI7US50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGw9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtwKEEsUS5maXhlZFBhcmFtZXRlcnMscyxCKX1gLEIrPTEsYz1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3AoQSxRLnBhcmFtZXRlcnMscyxCKX1gLEIrPTEpO2xldCBkPXt0cmFuc2Zvcm1UeXBlOlEudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpRLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpRLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOlEubmFtZSxpbnB1dFNwYWNlTmFtZTpRLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpRLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmMsZml4ZWRQYXJhbWV0ZXJzOmx9O2YucHVzaChkKX0pLEsoQSxmLHMpO2JyZWFrfWNhc2UgRC5Qb2x5RGF0YTp7bGV0IG49YS5kYXRhLGY9cChBLG4ucG9pbnRzLHMsMCksQj1wKEEsbi52ZXJ0aWNlcyxzLDEpLFE9cChBLG4ubGluZXMscywyKSxsPXAoQSxuLnBvbHlnb25zLHMsMyksYz1wKEEsbi50cmlhbmdsZVN0cmlwcyxzLDQpLGQ9cChBLG4ucG9pbnREYXRhLHMsNSkseT1wKEEsbi5wb2ludERhdGEscyw2KSxtPXtwb2x5RGF0YVR5cGU6bi5wb2x5RGF0YVR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdmVydGljZXNCdWZmZXJTaXplOm4udmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLGxpbmVzQnVmZmVyU2l6ZTpuLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxwb2x5Z29uc0J1ZmZlclNpemU6bi5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOm4udHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2R9YCxudW1iZXJPZkNlbGxQaXhlbHM6bi5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt5fWB9O0soQSxtLHMpO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCByPUEuc3RhY2tTYXZlKCksbz0wO3RyeXtvPUEuY2FsbE1haW4odC5zbGljZSgpKX1jYXRjaChhKXt0aHJvdyB0eXBlb2YgYT09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShhKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxhfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUocil9bGV0IGc9QS5nZXRNb2R1bGVTdGRvdXQoKSxDPUEuZ2V0TW9kdWxlU3RkZXJyKCksRT1bXTtyZXR1cm4gZSE9bnVsbCYmZS5sZW5ndGg+MCYmbz09PTAmJmUuZm9yRWFjaChmdW5jdGlvbihhLHMpe2xldCBuPW51bGw7c3dpdGNoKGEudHlwZSl7Y2FzZSBELlRleHRTdHJlYW06e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksbD1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQixRKTtuPXtkYXRhOkNlLmRlY29kZShsKX07YnJlYWt9Y2FzZSBELkpzb25Db21wYXRpYmxlOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGw9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEIsUSk7bj1KU09OLnBhcnNlKENlLmRlY29kZShsKSk7YnJlYWt9Y2FzZSBELkJpbmFyeVN0cmVhbTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKTtuPXtkYXRhOmFlKEEsQixRKX07YnJlYWt9Y2FzZSBELlRleHRGaWxlOntuPXtwYXRoOmEuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShhLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgRC5CaW5hcnlGaWxlOntuPXtwYXRoOmEuZGF0YS5wYXRoLGRhdGE6dkkoQSxhLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgRC5JbWFnZTp7bGV0IEI9Q0EoQSxzKTtCLmRhdGE9RihBLHMsMCxCLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxCLmRpcmVjdGlvbj1GKEEscywxLFAuRmxvYXQ2NCksQi5tZXRhZGF0YT1uZXcgTWFwKEIubWV0YWRhdGEpLG49QjticmVha31jYXNlIEQuTWVzaDp7bGV0IEI9Q0EoQSxzKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9RihBLHMsMCxCLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qi5wb2ludHM9SihCLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxscz4wP0IuY2VsbHM9RihBLHMsMSxCLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTpCLmNlbGxzPUooQi5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPUYoQSxzLDIsQi5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SihCLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxQaXhlbHM+MD9CLmNlbGxEYXRhPUYoQSxzLDMsQi5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpCLmNlbGxEYXRhPUooQi5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksbj1CO2JyZWFrfWNhc2UgRC5Qb2ludFNldDp7bGV0IEI9Q0EoQSxzKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9RihBLHMsMCxCLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkIucG9pbnRzPUooQi5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9RihBLHMsMSxCLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SihCLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLG49QjticmVha31jYXNlIEQuVHJhbnNmb3JtTGlzdDp7bGV0IEI9Q0EoQSxzKSxRPTA7Qi5mb3JFYWNoKChsLGMpPT57bC50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGwubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKEJbY10uZml4ZWRQYXJhbWV0ZXJzPUYoQSxzLFEsUC5GbG9hdDY0KSksUSs9MSxsLm51bWJlck9mUGFyYW1ldGVycz4wJiYoQltjXS5wYXJhbWV0ZXJzPUYoQSxzLFEsbC50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxRKz0xKX0pLG49QjticmVha31jYXNlIEQuUG9seURhdGE6e2xldCBCPUNBKEEscyk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPUYoQSxzLDAsUC5GbG9hdDMyKTpCLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LEIudmVydGljZXNCdWZmZXJTaXplPjA/Qi52ZXJ0aWNlcz1GKEEscywxLE4uVUludDMyKTpCLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxCLmxpbmVzQnVmZmVyU2l6ZT4wP0IubGluZXM9RihBLHMsMixOLlVJbnQzMik6Qi5saW5lcz1uZXcgVWludDMyQXJyYXksQi5wb2x5Z29uc0J1ZmZlclNpemU+MD9CLnBvbHlnb25zPUYoQSxzLDMsTi5VSW50MzIpOkIucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LEIudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/Qi50cmlhbmdsZVN0cmlwcz1GKEEscyw0LE4uVUludDMyKTpCLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1GKEEscyw1LEIucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1KKEIucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxQaXhlbHM+MD9CLmNlbGxEYXRhPUYoQSxzLDYsQi5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5jZWxsRGF0YT1KKEIucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuPUI7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgZj17dHlwZTphLnR5cGUsZGF0YTpufTtFLnB1c2goZil9KSx7cmV0dXJuVmFsdWU6byxzdGRvdXQ6ZyxzdGRlcnI6QyxvdXRwdXRzOkV9fXZhciBRZT0kSTt2YXIgQXI9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uIHRyKEEsdCl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgZT1bXTtmb3IobGV0IEk9MDtJPEEubGVuZ3RoO0krKyl7bGV0IHI9ZXIoQVtJXSx0KTtyIT09bnVsbCYmZS5wdXNoKHIpfXJldHVybiBlfWZ1bmN0aW9uIGVyKEEsdCl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgZT1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD9lPUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKGU9QSksQXImJmUgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOnQ/ZTplLnNsaWNlKDApfXZhciBFZT10cjtmdW5jdGlvbiBJcihBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIgY2U9SXI7ZnVuY3Rpb24gcnIoQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIGZlPXJyO2Z1bmN0aW9uIG9yKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBsZT1vcjthc3luYyBmdW5jdGlvbiBncihBLHQsZSxJKXtsZXQgcj1RZShBLHQsZSxJKSxvPVtdO3JldHVybiByLm91dHB1dHMuZm9yRWFjaChmdW5jdGlvbihnKXtpZihnLnR5cGU9PT1ELkJpbmFyeVN0cmVhbXx8Zy50eXBlPT09RC5CaW5hcnlGaWxlKXtsZXQgQz1nLmRhdGE7by5wdXNoKEMpfWVsc2UgaWYoZy50eXBlPT09RC5JbWFnZSl7bGV0IEM9Zy5kYXRhO28ucHVzaCguLi5jZShDKSl9ZWxzZSBpZihnLnR5cGU9PT1ELk1lc2gpe2xldCBDPWcuZGF0YTtvLnB1c2goLi4uZmUoQykpfWVsc2UgaWYoZy50eXBlPT09RC5Qb2x5RGF0YSl7bGV0IEM9Zy5kYXRhO28ucHVzaCguLi5sZShDKSl9fSksTUEocixFZShvLCEwKSl9dmFyIHVlPWdyO3ZhciBpcj17cnVuUGlwZWxpbmU6YXN5bmMgZnVuY3Rpb24oQSx0LGUsSSxyLG8pe2xldCBnPWF3YWl0IHNlKEEsdCxvKTtyZXR1cm4gYXdhaXQgdWUoZyxlLEkscil9fTtsQShpcik7JTBBLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjolMEElMEFjb21saW5rL2Rpc3QvZXNtL2NvbWxpbmsubWpzOiUwQSAgKCoqJTBBICAgKiBAbGljZW5zZSUwQSAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQyUwQSAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAlMEEgICAqKSUwQSovJTBBJzskdChlSSk7ZXhwb3J0e3RBIGFzIGNvbXByZXNzU3RyaW5naWZ5LGpBIGFzIGdldERlZmF1bHRXZWJXb3JrZXIsQUEgYXMgZ2V0UGlwZWxpbmVXb3JrZXJVcmwsV0EgYXMgZ2V0UGlwZWxpbmVzQmFzZVVybCx0byBhcyBpbWFnZVRvSnNvbixJbyBhcyBqc29uVG9JbWFnZSxvbyBhcyBqc29uVG9NZXNoLGdvIGFzIGpzb25Ub1BvbHlEYXRhLHJvIGFzIG1lc2hUb0pzb24sSUEgYXMgcGFyc2VTdHJpbmdEZWNvbXByZXNzLGlvIGFzIHBvbHlEYXRhVG9Kc29uLENhIGFzIHNldERlZmF1bHRXZWJXb3JrZXIsJHQgYXMgc2V0UGlwZWxpbmVXb3JrZXJVcmwscmEgYXMgc2V0UGlwZWxpbmVzQmFzZVVybCx2QSBhcyB2ZXJzaW9ufTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCmNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKICAgKikKKi8K""" +default_js_module = """data:text/javascript;base64,dmFyIGRJPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgeUk9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlkSShBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIGhJPSIzLjUuMCIscmU9aEk7dmFyIERJPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sUz1ESTt2YXIgd0k9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LE49d0k7ZnVuY3Rpb24gbUkoQSxlKXtsZXQgdD1udWxsO3N3aXRjaChBKXtjYXNlIFMuVUludDg6e3Q9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBTLkludDg6e3Q9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIFMuVUludDE2Ont0PW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIFMuSW50MTY6e3Q9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBTLlVJbnQzMjp7dD1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBTLkludDMyOnt0PW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgUy5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBTLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ0ludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIE4uRmxvYXQzMjp7dD1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2UgTi5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIGs9bUk7dmFyIFNJPXtVbmtub3duOiJVbmtub3duIixTY2FsYXI6IlNjYWxhciIsUkdCOiJSR0IiLFJHQkE6IlJHQkEiLE9mZnNldDoiT2Zmc2V0IixWZWN0b3I6IlZlY3RvciIsUG9pbnQ6IlBvaW50IixDb3ZhcmlhbnRWZWN0b3I6IkNvdmFyaWFudFZlY3RvciIsU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvcjoiU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvciIsRGlmZnVzaW9uVGVuc29yM0Q6IkRpZmZ1c2lvblRlbnNvcjNEIixDb21wbGV4OiJDb21wbGV4IixGaXhlZEFycmF5OiJGaXhlZEFycmF5IixBcnJheToiQXJyYXkiLE1hdHJpeDoiTWF0cml4IixWYXJpYWJsZUxlbmd0aFZlY3RvcjoiVmFyaWFibGVMZW5ndGhWZWN0b3IiLFZhcmlhYmxlU2l6ZU1hdHJpeDoiVmFyaWFibGVTaXplTWF0cml4In0sUD1TSTt2YXIgb2U9Y2xhc3N7ZGltZW5zaW9uO2NvbXBvbmVudFR5cGU7cGl4ZWxUeXBlO2NvbXBvbmVudHM7Y29uc3RydWN0b3IoZT0yLHQ9Uy5VSW50OCxJPVAuU2NhbGFyLHI9MSl7dGhpcy5kaW1lbnNpb249ZSx0aGlzLmNvbXBvbmVudFR5cGU9dCx0aGlzLnBpeGVsVHlwZT1JLHRoaXMuY29tcG9uZW50cz1yfX0sJGU9b2U7ZnVuY3Rpb24gRkkoQSxlLHQsSSxyKXtBW0krdCplXT1yfXZhciBBdD1GSTt2YXIgaWU9Y2xhc3N7aW1hZ2VUeXBlO25hbWU9IkltYWdlIjtvcmlnaW47c3BhY2luZztkaXJlY3Rpb247c2l6ZTttZXRhZGF0YTtkYXRhO2NvbnN0cnVjdG9yKGU9bmV3ICRlKXt0aGlzLmltYWdlVHlwZT1lO2xldCB0PWUuZGltZW5zaW9uO3RoaXMub3JpZ2luPW5ldyBBcnJheSh0KSx0aGlzLm9yaWdpbi5maWxsKDApLHRoaXMuc3BhY2luZz1uZXcgQXJyYXkodCksdGhpcy5zcGFjaW5nLmZpbGwoMSksdGhpcy5kaXJlY3Rpb249bmV3IEZsb2F0NjRBcnJheSh0KnQpLHRoaXMuZGlyZWN0aW9uLmZpbGwoMCk7Zm9yKGxldCBJPTA7STx0O0krKylBdCh0aGlzLmRpcmVjdGlvbix0LEksSSwxKTt0aGlzLnNpemU9bmV3IEFycmF5KHQpLHRoaXMuc2l6ZS5maWxsKDApLHRoaXMubWV0YWRhdGE9bmV3IE1hcCx0aGlzLmRhdGE9bnVsbH19LGdlPWllO3ZhciBuZT1jbGFzc3tkaW1lbnNpb247cG9pbnRDb21wb25lbnRUeXBlO3BvaW50UGl4ZWxDb21wb25lbnRUeXBlO3BvaW50UGl4ZWxUeXBlO3BvaW50UGl4ZWxDb21wb25lbnRzO2NlbGxDb21wb25lbnRUeXBlO2NlbGxQaXhlbENvbXBvbmVudFR5cGU7Y2VsbFBpeGVsVHlwZTtjZWxsUGl4ZWxDb21wb25lbnRzO2NvbnN0cnVjdG9yKGU9Mix0PU4uRmxvYXQzMixJPU4uRmxvYXQzMixyPVAuU2NhbGFyLGk9MSxvPVMuSW50MzIscz1OLkZsb2F0MzIsRT1QLlNjYWxhcixDPTEpe3RoaXMuZGltZW5zaW9uPWUsdGhpcy5wb2ludENvbXBvbmVudFR5cGU9dCx0aGlzLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlPUksdGhpcy5wb2ludFBpeGVsVHlwZT1yLHRoaXMucG9pbnRQaXhlbENvbXBvbmVudHM9aSx0aGlzLmNlbGxDb21wb25lbnRUeXBlPW8sdGhpcy5jZWxsUGl4ZWxDb21wb25lbnRUeXBlPXMsdGhpcy5jZWxsUGl4ZWxUeXBlPUUsdGhpcy5jZWxsUGl4ZWxDb21wb25lbnRzPUN9fSxldD1uZTt2YXIgc2U9Y2xhc3N7bWVzaFR5cGU7bmFtZT0iTWVzaCI7bnVtYmVyT2ZQb2ludHM7cG9pbnRzO251bWJlck9mUG9pbnRQaXhlbHM7cG9pbnREYXRhO251bWJlck9mQ2VsbHM7Y2VsbHM7Y2VsbEJ1ZmZlclNpemU7bnVtYmVyT2ZDZWxsUGl4ZWxzO2NlbGxEYXRhO2NvbnN0cnVjdG9yKGU9bmV3IGV0KXt0aGlzLm1lc2hUeXBlPWUsdGhpcy5uYW1lPSJNZXNoIix0aGlzLm51bWJlck9mUG9pbnRzPTAsdGhpcy5wb2ludHM9bnVsbCx0aGlzLm51bWJlck9mUG9pbnRQaXhlbHM9MCx0aGlzLnBvaW50RGF0YT1udWxsLHRoaXMubnVtYmVyT2ZDZWxscz0wLHRoaXMuY2VsbEJ1ZmZlclNpemU9MCx0aGlzLmNlbGxzPW51bGwsdGhpcy5udW1iZXJPZkNlbGxQaXhlbHM9MCx0aGlzLmNlbGxEYXRhPW51bGx9fSxhZT1zZTt2YXIgQ2U9Y2xhc3N7cG9pbnRQaXhlbENvbXBvbmVudFR5cGU7cG9pbnRQaXhlbFR5cGU7cG9pbnRQaXhlbENvbXBvbmVudHM7Y2VsbFBpeGVsQ29tcG9uZW50VHlwZTtjZWxsUGl4ZWxUeXBlO2NlbGxQaXhlbENvbXBvbmVudHM7Y29uc3RydWN0b3IoZT1OLkZsb2F0MzIsdD1QLlNjYWxhcixJPTEscj1OLkZsb2F0MzIsaT1QLlNjYWxhcixvPTEpe3RoaXMucG9pbnRQaXhlbENvbXBvbmVudFR5cGU9ZSx0aGlzLnBvaW50UGl4ZWxUeXBlPXQsdGhpcy5wb2ludFBpeGVsQ29tcG9uZW50cz1JLHRoaXMuY2VsbFBpeGVsQ29tcG9uZW50VHlwZT1yLHRoaXMuY2VsbFBpeGVsVHlwZT1pLHRoaXMuY2VsbFBpeGVsQ29tcG9uZW50cz1vfX0sdHQ9Q2U7dmFyIEJlPWNsYXNze3BvbHlEYXRhVHlwZTtuYW1lPSJQb2x5RGF0YSI7bnVtYmVyT2ZQb2ludHM7cG9pbnRzO3ZlcnRpY2VzQnVmZmVyU2l6ZTt2ZXJ0aWNlcztsaW5lc0J1ZmZlclNpemU7bGluZXM7cG9seWdvbnNCdWZmZXJTaXplO3BvbHlnb25zO3RyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTt0cmlhbmdsZVN0cmlwcztudW1iZXJPZlBvaW50UGl4ZWxzO3BvaW50RGF0YTtudW1iZXJPZkNlbGxQaXhlbHM7Y2VsbERhdGE7bWV0YWRhdGE7Y29uc3RydWN0b3IoZT1uZXcgdHQpe3RoaXMucG9seURhdGFUeXBlPWUsdGhpcy5wb2x5RGF0YVR5cGU9ZSx0aGlzLm5hbWU9IlBvbHlEYXRhIix0aGlzLm51bWJlck9mUG9pbnRzPTAsdGhpcy5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSx0aGlzLnZlcnRpY2VzQnVmZmVyU2l6ZT0wLHRoaXMudmVydGljZXM9bnVsbCx0aGlzLmxpbmVzQnVmZmVyU2l6ZT0wLHRoaXMubGluZXM9bnVsbCx0aGlzLnBvbHlnb25zQnVmZmVyU2l6ZT0wLHRoaXMucG9seWdvbnM9bnVsbCx0aGlzLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT0wLHRoaXMudHJpYW5nbGVTdHJpcHM9bnVsbCx0aGlzLm51bWJlck9mUG9pbnRQaXhlbHM9MCx0aGlzLnBvaW50RGF0YT1udWxsLHRoaXMubnVtYmVyT2ZDZWxsUGl4ZWxzPTAsdGhpcy5jZWxsRGF0YT1udWxsLHRoaXMubWV0YWRhdGE9bmV3IE1hcH19LFFlPUJlO3ZhciBSST17VGV4dEZpbGU6IlRleHRGaWxlIixCaW5hcnlGaWxlOiJCaW5hcnlGaWxlIixUZXh0U3RyZWFtOiJUZXh0U3RyZWFtIixCaW5hcnlTdHJlYW06IkJpbmFyeVN0cmVhbSIsSW1hZ2U6IkltYWdlIixQb2ludFNldDoiUG9pbnRTZXQiLE1lc2g6Ik1lc2giLFBvbHlEYXRhOiJQb2x5RGF0YSIsVHJhbnNmb3JtTGlzdDoiVHJhbnNmb3JtTGlzdCIsSnNvbkNvbXBhdGlibGU6Ikpzb25Db21wYXRpYmxlIn0sZD1SSTt2YXIgcnQ9U3ltYm9sKCJDb21saW5rLnByb3h5Iiksa0k9U3ltYm9sKCJDb21saW5rLmVuZHBvaW50IiksY2U9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLEVlPVN5bWJvbCgiQ29tbGluay5maW5hbGl6ZXIiKSxOQT1TeW1ib2woIkNvbWxpbmsudGhyb3duIiksb3Q9QT0+dHlwZW9mIEE9PSJvYmplY3QiJiZBIT09bnVsbHx8dHlwZW9mIEE9PSJmdW5jdGlvbiIsVUk9e2NhbkhhbmRsZTpBPT5vdChBKSYmQVtydF0sc2VyaWFsaXplKEEpe2xldHtwb3J0MTplLHBvcnQyOnR9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gZ3QoQSxlKSxbdCxbdF1dfSxkZXNlcmlhbGl6ZShBKXtyZXR1cm4gQS5zdGFydCgpLGZlKEEpfX0sTkk9e2NhbkhhbmRsZTpBPT5vdChBKSYmTkEgaW4gQSxzZXJpYWxpemUoe3ZhbHVlOkF9KXtsZXQgZTtyZXR1cm4gQSBpbnN0YW5jZW9mIEVycm9yP2U9e2lzRXJyb3I6ITAsdmFsdWU6e21lc3NhZ2U6QS5tZXNzYWdlLG5hbWU6QS5uYW1lLHN0YWNrOkEuc3RhY2t9fTplPXtpc0Vycm9yOiExLHZhbHVlOkF9LFtlLFtdXX0sZGVzZXJpYWxpemUoQSl7dGhyb3cgQS5pc0Vycm9yP09iamVjdC5hc3NpZ24obmV3IEVycm9yKEEudmFsdWUubWVzc2FnZSksQS52YWx1ZSk6QS52YWx1ZX19LGl0PW5ldyBNYXAoW1sicHJveHkiLFVJXSxbInRocm93IixOSV1dKTtmdW5jdGlvbiBHSShBLGUpe2ZvcihsZXQgdCBvZiBBKWlmKGU9PT10fHx0PT09IioifHx0IGluc3RhbmNlb2YgUmVnRXhwJiZ0LnRlc3QoZSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gZ3QoQSxlPWdsb2JhbFRoaXMsdD1bIioiXSl7ZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKHIpe2lmKCFyfHwhci5kYXRhKXJldHVybjtpZighR0kodCxyLm9yaWdpbikpe2NvbnNvbGUud2FybihgSW52YWxpZCBvcmlnaW4gJyR7ci5vcmlnaW59JyBmb3IgY29tbGluayBwcm94eWApO3JldHVybn1sZXR7aWQ6aSx0eXBlOm8scGF0aDpzfT1PYmplY3QuYXNzaWduKHtwYXRoOltdfSxyLmRhdGEpLEU9KHIuZGF0YS5hcmd1bWVudExpc3R8fFtdKS5tYXAoWiksQzt0cnl7bGV0IGc9cy5zbGljZSgwLC0xKS5yZWR1Y2UoKGYsQik9PmZbQl0sQSksYT1zLnJlZHVjZSgoZixCKT0+ZltCXSxBKTtzd2l0Y2gobyl7Y2FzZSJHRVQiOkM9YTticmVhaztjYXNlIlNFVCI6Z1tzLnNsaWNlKC0xKVswXV09WihyLmRhdGEudmFsdWUpLEM9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6Qz1hLmFwcGx5KGcsRSk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgZj1uZXcgYSguLi5FKTtDPVlJKGYpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6Zixwb3J0MjpCfT1uZXcgTWVzc2FnZUNoYW5uZWw7Z3QoQSxCKSxDPXVlKGYsW2ZdKX1icmVhaztjYXNlIlJFTEVBU0UiOkM9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChnKXtDPXt2YWx1ZTpnLFtOQV06MH19UHJvbWlzZS5yZXNvbHZlKEMpLmNhdGNoKGc9Pih7dmFsdWU6ZyxbTkFdOjB9KSkudGhlbihnPT57bGV0W2EsZl09TEEoZyk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sYSkse2lkOml9KSxmKSxvPT09IlJFTEVBU0UiJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixJKSxudChlKSxFZSBpbiBBJiZ0eXBlb2YgQVtFZV09PSJmdW5jdGlvbiImJkFbRWVdKCkpfSkuY2F0Y2goZz0+e2xldFthLGZdPUxBKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxbTkFdOjB9KTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSx7aWQ6aX0pLGYpfSl9KSxlLnN0YXJ0JiZlLnN0YXJ0KCl9ZnVuY3Rpb24gYkkoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gbnQoQSl7YkkoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBmZShBLGUpe3JldHVybiBsZShBLFtdLGUpfWZ1bmN0aW9uIFVBKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiBzdChBKXtyZXR1cm4gWChBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9PntudChBKX0pfXZhciBHQT1uZXcgV2Vha01hcCxiQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgZT0oR0EuZ2V0KEEpfHwwKS0xO0dBLnNldChBLGUpLGU9PT0wJiZzdChBKX0pO2Z1bmN0aW9uIExJKEEsZSl7bGV0IHQ9KEdBLmdldChlKXx8MCkrMTtHQS5zZXQoZSx0KSxiQSYmYkEucmVnaXN0ZXIoQSxlLEEpfWZ1bmN0aW9uIEpJKEEpe2JBJiZiQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIGxlKEEsZT1bXSx0PWZ1bmN0aW9uKCl7fSl7bGV0IEk9ITEscj1uZXcgUHJveHkodCx7Z2V0KGksbyl7aWYoVUEoSSksbz09PWNlKXJldHVybigpPT57Skkociksc3QoQSksST0hMH07aWYobz09PSJ0aGVuIil7aWYoZS5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5yfTtsZXQgcz1YKEEse3R5cGU6IkdFVCIscGF0aDplLm1hcChFPT5FLnRvU3RyaW5nKCkpfSkudGhlbihaKTtyZXR1cm4gcy50aGVuLmJpbmQocyl9cmV0dXJuIGxlKEEsWy4uLmUsb10pfSxzZXQoaSxvLHMpe1VBKEkpO2xldFtFLENdPUxBKHMpO3JldHVybiBYKEEse3R5cGU6IlNFVCIscGF0aDpbLi4uZSxvXS5tYXAoZz0+Zy50b1N0cmluZygpKSx2YWx1ZTpFfSxDKS50aGVuKFopfSxhcHBseShpLG8scyl7VUEoSSk7bGV0IEU9ZVtlLmxlbmd0aC0xXTtpZihFPT09a0kpcmV0dXJuIFgoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbihaKTtpZihFPT09ImJpbmQiKXJldHVybiBsZShBLGUuc2xpY2UoMCwtMSkpO2xldFtDLGddPUl0KHMpO3JldHVybiBYKEEse3R5cGU6IkFQUExZIixwYXRoOmUubWFwKGE9PmEudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OkN9LGcpLnRoZW4oWil9LGNvbnN0cnVjdChpLG8pe1VBKEkpO2xldFtzLEVdPUl0KG8pO3JldHVybiBYKEEse3R5cGU6IkNPTlNUUlVDVCIscGF0aDplLm1hcChDPT5DLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpzfSxFKS50aGVuKFopfX0pO3JldHVybiBMSShyLEEpLHJ9ZnVuY3Rpb24gTUkoQSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sQSl9ZnVuY3Rpb24gSXQoQSl7bGV0IGU9QS5tYXAoTEEpO3JldHVybltlLm1hcCh0PT50WzBdKSxNSShlLm1hcCh0PT50WzFdKSldfXZhciBhdD1uZXcgV2Vha01hcDtmdW5jdGlvbiB1ZShBLGUpe3JldHVybiBhdC5zZXQoQSxlKSxBfWZ1bmN0aW9uIFlJKEEpe3JldHVybiBPYmplY3QuYXNzaWduKEEse1tydF06ITB9KX1mdW5jdGlvbiBMQShBKXtmb3IobGV0W2UsdF1vZiBpdClpZih0LmNhbkhhbmRsZShBKSl7bGV0W0kscl09dC5zZXJpYWxpemUoQSk7cmV0dXJuW3t0eXBlOiJIQU5ETEVSIixuYW1lOmUsdmFsdWU6SX0scl19cmV0dXJuW3t0eXBlOiJSQVciLHZhbHVlOkF9LGF0LmdldChBKXx8W11dfWZ1bmN0aW9uIFooQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4gaXQuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiBYKEEsZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoST0+e2xldCByPUhJKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBpKG8peyFvLmRhdGF8fCFvLmRhdGEuaWR8fG8uZGF0YS5pZCE9PXJ8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGkpLEkoby5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpyfSxlKSx0KX0pfWZ1bmN0aW9uIEhJKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiBDQShBLGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KGUsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOlRJfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpkZX09T2JqZWN0LHtpdGVyYXRvcjpNQSx0b1N0cmluZ1RhZzpRdH09U3ltYm9sLFlBPShBPT5lPT57bGV0IHQ9VEkuY2FsbChlKTtyZXR1cm4gQVt0XXx8KEFbdF09dC5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLEo9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLGU9PllBKGUpPT09QSksSEE9QT0+ZT0+dHlwZW9mIGU9PT1BLHtpc0FycmF5OiR9PUFycmF5LF89SEEoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIEJBKEEpe3JldHVybiBBIT09bnVsbCYmIV8oQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhXyhBLmNvbnN0cnVjdG9yKSYmRyhBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKSYmQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihBKX12YXIgRXQ9SigiQXJyYXlCdWZmZXIiKTtmdW5jdGlvbiBxSShBKXtsZXQgZTtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmQXJyYXlCdWZmZXIuaXNWaWV3P2U9QXJyYXlCdWZmZXIuaXNWaWV3KEEpOmU9QSYmQS5idWZmZXImJkV0KEEuYnVmZmVyKSxlfXZhciB4ST1IQSgic3RyaW5nIiksRz1IQSgiZnVuY3Rpb24iKSxsdD1IQSgibnVtYmVyIiksUUE9QT0+QSE9PW51bGwmJnR5cGVvZiBBPT0ib2JqZWN0IixPST1BPT5BPT09ITB8fEE9PT0hMSxKQT1BPT57aWYoWUEoQSkhPT0ib2JqZWN0IilyZXR1cm4hMTtsZXQgZT1kZShBKTtyZXR1cm4oZT09PW51bGx8fGU9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1udWxsKSYmIShRdCBpbiBBKSYmIShNQSBpbiBBKX0sUEk9QT0+e2lmKCFRQShBKXx8QkEoQSkpcmV0dXJuITE7dHJ5e3JldHVybiBPYmplY3Qua2V5cyhBKS5sZW5ndGg9PT0wJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoQSk9PT1PYmplY3QucHJvdG90eXBlfWNhdGNoe3JldHVybiExfX0sS0k9SigiRGF0ZSIpLFdJPUooIkZpbGUiKSxqST1KKCJCbG9iIiksdkk9SigiRmlsZUxpc3QiKSxaST1BPT5RQShBKSYmRyhBLnBpcGUpLFZJPUE9PntsZXQgZTtyZXR1cm4gQSYmKHR5cGVvZiBGb3JtRGF0YT09ImZ1bmN0aW9uIiYmQSBpbnN0YW5jZW9mIEZvcm1EYXRhfHxHKEEuYXBwZW5kKSYmKChlPVlBKEEpKT09PSJmb3JtZGF0YSJ8fGU9PT0ib2JqZWN0IiYmRyhBLnRvU3RyaW5nKSYmQS50b1N0cmluZygpPT09IltvYmplY3QgRm9ybURhdGFdIikpfSx6ST1KKCJVUkxTZWFyY2hQYXJhbXMiKSxbWEksX0ksJEksQXJdPVsiUmVhZGFibGVTdHJlYW0iLCJSZXF1ZXN0IiwiUmVzcG9uc2UiLCJIZWFkZXJzIl0ubWFwKEopLGVyPUE9PkEudHJpbT9BLnRyaW0oKTpBLnJlcGxhY2UoL15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLCIiKTtmdW5jdGlvbiBFQShBLGUse2FsbE93bktleXM6dD0hMX09e30pe2lmKEE9PT1udWxsfHx0eXBlb2YgQT4idSIpcmV0dXJuO2xldCBJLHI7aWYodHlwZW9mIEEhPSJvYmplY3QiJiYoQT1bQV0pLCQoQSkpZm9yKEk9MCxyPUEubGVuZ3RoO0k8cjtJKyspZS5jYWxsKG51bGwsQVtJXSxJLEEpO2Vsc2V7aWYoQkEoQSkpcmV0dXJuO2xldCBpPXQ/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSk6T2JqZWN0LmtleXMoQSksbz1pLmxlbmd0aCxzO2ZvcihJPTA7STxvO0krKylzPWlbSV0sZS5jYWxsKG51bGwsQVtzXSxzLEEpfX1mdW5jdGlvbiBjdChBLGUpe2lmKEJBKEEpKXJldHVybiBudWxsO2U9ZS50b0xvd2VyQ2FzZSgpO2xldCB0PU9iamVjdC5rZXlzKEEpLEk9dC5sZW5ndGgscjtmb3IoO0ktLSA+MDspaWYocj10W0ldLGU9PT1yLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHI7cmV0dXJuIG51bGx9dmFyIFY9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Omdsb2JhbCxmdD1BPT4hXyhBKSYmQSE9PVY7ZnVuY3Rpb24gcGUoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOmV9PWZ0KHRoaXMpJiZ0aGlzfHx7fSx0PXt9LEk9KHIsaSk9PntsZXQgbz1BJiZjdCh0LGkpfHxpO0pBKHRbb10pJiZKQShyKT90W29dPXBlKHRbb10scik6SkEocik/dFtvXT1wZSh7fSxyKTokKHIpP3Rbb109ci5zbGljZSgpOighZXx8IV8ocikpJiYodFtvXT1yKX07Zm9yKGxldCByPTAsaT1hcmd1bWVudHMubGVuZ3RoO3I8aTtyKyspYXJndW1lbnRzW3JdJiZFQShhcmd1bWVudHNbcl0sSSk7cmV0dXJuIHR9dmFyIHRyPShBLGUsdCx7YWxsT3duS2V5czpJfT17fSk9PihFQShlLChyLGkpPT57dCYmRyhyKT9BW2ldPUNBKHIsdCk6QVtpXT1yfSx7YWxsT3duS2V5czpJfSksQSksSXI9QT0+KEEuY2hhckNvZGVBdCgwKT09PTY1Mjc5JiYoQT1BLnNsaWNlKDEpKSxBKSxycj0oQSxlLHQsSSk9PntBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlLEkpLEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPUEsT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInN1cGVyIix7dmFsdWU6ZS5wcm90b3R5cGV9KSx0JiZPYmplY3QuYXNzaWduKEEucHJvdG90eXBlLHQpfSxvcj0oQSxlLHQsSSk9PntsZXQgcixpLG8scz17fTtpZihlPWV8fHt9LEE9PW51bGwpcmV0dXJuIGU7ZG97Zm9yKHI9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSksaT1yLmxlbmd0aDtpLS0gPjA7KW89cltpXSwoIUl8fEkobyxBLGUpKSYmIXNbb10mJihlW29dPUFbb10sc1tvXT0hMCk7QT10IT09ITEmJmRlKEEpfXdoaWxlKEEmJighdHx8dChBLGUpKSYmQSE9PU9iamVjdC5wcm90b3R5cGUpO3JldHVybiBlfSxpcj0oQSxlLHQpPT57QT1TdHJpbmcoQSksKHQ9PT12b2lkIDB8fHQ+QS5sZW5ndGgpJiYodD1BLmxlbmd0aCksdC09ZS5sZW5ndGg7bGV0IEk9QS5pbmRleE9mKGUsdCk7cmV0dXJuIEkhPT0tMSYmST09PXR9LGdyPUE9PntpZighQSlyZXR1cm4gbnVsbDtpZigkKEEpKXJldHVybiBBO2xldCBlPUEubGVuZ3RoO2lmKCFsdChlKSlyZXR1cm4gbnVsbDtsZXQgdD1uZXcgQXJyYXkoZSk7Zm9yKDtlLS0gPjA7KXRbZV09QVtlXTtyZXR1cm4gdH0sbnI9KEE9PmU9PkEmJmUgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJmRlKFVpbnQ4QXJyYXkpKSxzcj0oQSxlKT0+e2xldCBJPShBJiZBW01BXSkuY2FsbChBKSxyO2Zvcig7KHI9SS5uZXh0KCkpJiYhci5kb25lOyl7bGV0IGk9ci52YWx1ZTtlLmNhbGwoQSxpWzBdLGlbMV0pfX0sYXI9KEEsZSk9PntsZXQgdCxJPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KUkucHVzaCh0KTtyZXR1cm4gSX0sQ3I9SigiSFRNTEZvcm1FbGVtZW50IiksQnI9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxJLHIpe3JldHVybiBJLnRvVXBwZXJDYXNlKCkrcn0pLEJ0PSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxRcj1KKCJSZWdFeHAiKSx1dD0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLEk9e307RUEodCwocixpKT0+e2xldCBvOyhvPWUocixpLEEpKSE9PSExJiYoSVtpXT1vfHxyKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsSSl9LEVyPUE9Pnt1dChBLChlLHQpPT57aWYoRyhBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IEk9QVt0XTtpZihHKEkpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LGxyPShBLGUpPT57bGV0IHQ9e30sST1yPT57ci5mb3JFYWNoKGk9Pnt0W2ldPSEwfSl9O3JldHVybiAkKEEpP0koQSk6SShTdHJpbmcoQSkuc3BsaXQoZSkpLHR9LGNyPSgpPT57fSxmcj0oQSxlKT0+QSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKEE9K0EpP0E6ZTtmdW5jdGlvbiB1cihBKXtyZXR1cm4hIShBJiZHKEEuYXBwZW5kKSYmQVtRdF09PT0iRm9ybURhdGEiJiZBW01BXSl9dmFyIHByPUE9PntsZXQgZT1uZXcgQXJyYXkoMTApLHQ9KEkscik9PntpZihRQShJKSl7aWYoZS5pbmRleE9mKEkpPj0wKXJldHVybjtpZihCQShJKSlyZXR1cm4gSTtpZighKCJ0b0pTT04iaW4gSSkpe2Vbcl09STtsZXQgaT0kKEkpP1tdOnt9O3JldHVybiBFQShJLChvLHMpPT57bGV0IEU9dChvLHIrMSk7IV8oRSkmJihpW3NdPUUpfSksZVtyXT12b2lkIDAsaX19cmV0dXJuIEl9O3JldHVybiB0KEEsMCl9LGRyPUooIkFzeW5jRnVuY3Rpb24iKSx5cj1BPT5BJiYoUUEoQSl8fEcoQSkpJiZHKEEudGhlbikmJkcoQS5jYXRjaCkscHQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxJKT0+KFYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6cixkYXRhOml9KT0+e3I9PT1WJiZpPT09dCYmSS5sZW5ndGgmJkkuc2hpZnQoKSgpfSwhMSkscj0+e0kucHVzaChyKSxWLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsRyhWLnBvc3RNZXNzYWdlKSksaHI9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKFYpOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8cHQsRHI9QT0+QSE9bnVsbCYmRyhBW01BXSksbj17aXNBcnJheTokLGlzQXJyYXlCdWZmZXI6RXQsaXNCdWZmZXI6QkEsaXNGb3JtRGF0YTpWSSxpc0FycmF5QnVmZmVyVmlldzpxSSxpc1N0cmluZzp4SSxpc051bWJlcjpsdCxpc0Jvb2xlYW46T0ksaXNPYmplY3Q6UUEsaXNQbGFpbk9iamVjdDpKQSxpc0VtcHR5T2JqZWN0OlBJLGlzUmVhZGFibGVTdHJlYW06WEksaXNSZXF1ZXN0Ol9JLGlzUmVzcG9uc2U6JEksaXNIZWFkZXJzOkFyLGlzVW5kZWZpbmVkOl8saXNEYXRlOktJLGlzRmlsZTpXSSxpc0Jsb2I6akksaXNSZWdFeHA6UXIsaXNGdW5jdGlvbjpHLGlzU3RyZWFtOlpJLGlzVVJMU2VhcmNoUGFyYW1zOnpJLGlzVHlwZWRBcnJheTpucixpc0ZpbGVMaXN0OnZJLGZvckVhY2g6RUEsbWVyZ2U6cGUsZXh0ZW5kOnRyLHRyaW06ZXIsc3RyaXBCT006SXIsaW5oZXJpdHM6cnIsdG9GbGF0T2JqZWN0Om9yLGtpbmRPZjpZQSxraW5kT2ZUZXN0OkosZW5kc1dpdGg6aXIsdG9BcnJheTpncixmb3JFYWNoRW50cnk6c3IsbWF0Y2hBbGw6YXIsaXNIVE1MRm9ybTpDcixoYXNPd25Qcm9wZXJ0eTpCdCxoYXNPd25Qcm9wOkJ0LHJlZHVjZURlc2NyaXB0b3JzOnV0LGZyZWV6ZU1ldGhvZHM6RXIsdG9PYmplY3RTZXQ6bHIsdG9DYW1lbENhc2U6QnIsbm9vcDpjcix0b0Zpbml0ZU51bWJlcjpmcixmaW5kS2V5OmN0LGdsb2JhbDpWLGlzQ29udGV4dERlZmluZWQ6ZnQsaXNTcGVjQ29tcGxpYW50Rm9ybTp1cix0b0pTT05PYmplY3Q6cHIsaXNBc3luY0ZuOmRyLGlzVGhlbmFibGU6eXIsc2V0SW1tZWRpYXRlOnB0LGFzYXA6aHIsaXNJdGVyYWJsZTpEcn07ZnVuY3Rpb24gQUEoQSxlLHQsSSxyKXtFcnJvci5jYWxsKHRoaXMpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFjayx0aGlzLm1lc3NhZ2U9QSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLGUmJih0aGlzLmNvZGU9ZSksdCYmKHRoaXMuY29uZmlnPXQpLEkmJih0aGlzLnJlcXVlc3Q9SSksciYmKHRoaXMucmVzcG9uc2U9cix0aGlzLnN0YXR1cz1yLnN0YXR1cz9yLnN0YXR1czpudWxsKX1uLmluaGVyaXRzKEFBLEVycm9yLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6bi50b0pTT05PYmplY3QodGhpcy5jb25maWcpLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnN0YXR1c319fSk7dmFyIGR0PUFBLnByb3RvdHlwZSx5dD17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiLCJFUlJfTk9UX1NVUFBPUlQiLCJFUlJfSU5WQUxJRF9VUkwiXS5mb3JFYWNoKEE9Pnt5dFtBXT17dmFsdWU6QX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBQSx5dCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGR0LCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pO0FBLmZyb209KEEsZSx0LEkscixpKT0+e2xldCBvPU9iamVjdC5jcmVhdGUoZHQpO24udG9GbGF0T2JqZWN0KEEsbyxmdW5jdGlvbihnKXtyZXR1cm4gZyE9PUVycm9yLnByb3RvdHlwZX0sQz0+QyE9PSJpc0F4aW9zRXJyb3IiKTtsZXQgcz1BJiZBLm1lc3NhZ2U/QS5tZXNzYWdlOiJFcnJvciIsRT1lPT1udWxsJiZBP0EuY29kZTplO3JldHVybiBBQS5jYWxsKG8scyxFLHQsSSxyKSxBJiZvLmNhdXNlPT1udWxsJiZPYmplY3QuZGVmaW5lUHJvcGVydHkobywiY2F1c2UiLHt2YWx1ZTpBLGNvbmZpZ3VyYWJsZTohMH0pLG8ubmFtZT1BJiZBLm5hbWV8fCJFcnJvciIsaSYmT2JqZWN0LmFzc2lnbihvLGkpLG99O3ZhciB1PUFBO3ZhciBUQT1udWxsO2Z1bmN0aW9uIHllKEEpe3JldHVybiBuLmlzUGxhaW5PYmplY3QoQSl8fG4uaXNBcnJheShBKX1mdW5jdGlvbiBEdChBKXtyZXR1cm4gbi5lbmRzV2l0aChBLCJbXSIpP0Euc2xpY2UoMCwtMik6QX1mdW5jdGlvbiBodChBLGUsdCl7cmV0dXJuIEE/QS5jb25jYXQoZSkubWFwKGZ1bmN0aW9uKHIsaSl7cmV0dXJuIHI9RHQociksIXQmJmk/IlsiK3IrIl0iOnJ9KS5qb2luKHQ/Ii4iOiIiKTplfWZ1bmN0aW9uIHdyKEEpe3JldHVybiBuLmlzQXJyYXkoQSkmJiFBLnNvbWUoeWUpfXZhciBtcj1uLnRvRmxhdE9iamVjdChuLHt9LG51bGwsZnVuY3Rpb24oZSl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KGUpfSk7ZnVuY3Rpb24gU3IoQSxlLHQpe2lmKCFuLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdCIpO2U9ZXx8bmV3KFRBfHxGb3JtRGF0YSksdD1uLnRvRmxhdE9iamVjdCh0LHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsZnVuY3Rpb24oYyxsKXtyZXR1cm4hbi5pc1VuZGVmaW5lZChsW2NdKX0pO2xldCBJPXQubWV0YVRva2VucyxyPXQudmlzaXRvcnx8ZyxpPXQuZG90cyxvPXQuaW5kZXhlcyxFPSh0LkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYikmJm4uaXNTcGVjQ29tcGxpYW50Rm9ybShlKTtpZighbi5pc0Z1bmN0aW9uKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gQyhRKXtpZihRPT09bnVsbClyZXR1cm4iIjtpZihuLmlzRGF0ZShRKSlyZXR1cm4gUS50b0lTT1N0cmluZygpO2lmKG4uaXNCb29sZWFuKFEpKXJldHVybiBRLnRvU3RyaW5nKCk7aWYoIUUmJm4uaXNCbG9iKFEpKXRocm93IG5ldyB1KCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBuLmlzQXJyYXlCdWZmZXIoUSl8fG4uaXNUeXBlZEFycmF5KFEpP0UmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtRXSk6QnVmZmVyLmZyb20oUSk6UX1mdW5jdGlvbiBnKFEsYyxsKXtsZXQgcD1RO2lmKFEmJiFsJiZ0eXBlb2YgUT09Im9iamVjdCIpe2lmKG4uZW5kc1dpdGgoYywie30iKSljPUk/YzpjLnNsaWNlKDAsLTIpLFE9SlNPTi5zdHJpbmdpZnkoUSk7ZWxzZSBpZihuLmlzQXJyYXkoUSkmJndyKFEpfHwobi5pc0ZpbGVMaXN0KFEpfHxuLmVuZHNXaXRoKGMsIltdIikpJiYocD1uLnRvQXJyYXkoUSkpKXJldHVybiBjPUR0KGMpLHAuZm9yRWFjaChmdW5jdGlvbihoLFUpeyEobi5pc1VuZGVmaW5lZChoKXx8aD09PW51bGwpJiZlLmFwcGVuZChvPT09ITA/aHQoW2NdLFUsaSk6bz09PW51bGw/YzpjKyJbXSIsQyhoKSl9KSwhMX1yZXR1cm4geWUoUSk/ITA6KGUuYXBwZW5kKGh0KGwsYyxpKSxDKFEpKSwhMSl9bGV0IGE9W10sZj1PYmplY3QuYXNzaWduKG1yLHtkZWZhdWx0VmlzaXRvcjpnLGNvbnZlcnRWYWx1ZTpDLGlzVmlzaXRhYmxlOnllfSk7ZnVuY3Rpb24gQihRLGMpe2lmKCFuLmlzVW5kZWZpbmVkKFEpKXtpZihhLmluZGV4T2YoUSkhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrYy5qb2luKCIuIikpO2EucHVzaChRKSxuLmZvckVhY2goUSxmdW5jdGlvbihwLFIpeyghKG4uaXNVbmRlZmluZWQocCl8fHA9PT1udWxsKSYmci5jYWxsKGUscCxuLmlzU3RyaW5nKFIpP1IudHJpbSgpOlIsYyxmKSk9PT0hMCYmQihwLGM/Yy5jb25jYXQoUik6W1JdKX0pLGEucG9wKCl9fWlmKCFuLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gQihBKSxlfXZhciBLPVNyO2Z1bmN0aW9uIHd0KEEpe2xldCBlPXsiISI6IiUyMSIsIiciOiIlMjciLCIoIjoiJTI4IiwiKSI6IiUyOSIsIn4iOiIlN0UiLCIlMjAiOiIrIiwiJTAwIjoiXDAifTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoL1shJygpfl18JTIwfCUwMC9nLGZ1bmN0aW9uKEkpe3JldHVybiBlW0ldfSl9ZnVuY3Rpb24gbXQoQSxlKXt0aGlzLl9wYWlycz1bXSxBJiZLKEEsdGhpcyxlKX12YXIgU3Q9bXQucHJvdG90eXBlO1N0LmFwcGVuZD1mdW5jdGlvbihlLHQpe3RoaXMuX3BhaXJzLnB1c2goW2UsdF0pfTtTdC50b1N0cmluZz1mdW5jdGlvbihlKXtsZXQgdD1lP2Z1bmN0aW9uKEkpe3JldHVybiBlLmNhbGwodGhpcyxJLHd0KX06d3Q7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gdChyWzBdKSsiPSIrdChyWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIHFBPW10O2Z1bmN0aW9uIEZyKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpfWZ1bmN0aW9uIGxBKEEsZSx0KXtpZighZSlyZXR1cm4gQTtsZXQgST10JiZ0LmVuY29kZXx8RnI7bi5pc0Z1bmN0aW9uKHQpJiYodD17c2VyaWFsaXplOnR9KTtsZXQgcj10JiZ0LnNlcmlhbGl6ZSxpO2lmKHI/aT1yKGUsdCk6aT1uLmlzVVJMU2VhcmNoUGFyYW1zKGUpP2UudG9TdHJpbmcoKTpuZXcgcUEoZSx0KS50b1N0cmluZyhJKSxpKXtsZXQgbz1BLmluZGV4T2YoIiMiKTtvIT09LTEmJihBPUEuc2xpY2UoMCxvKSksQSs9KEEuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikraX1yZXR1cm4gQX12YXIgaGU9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmhhbmRsZXJzPVtdfXVzZShlLHQsSSl7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOmUscmVqZWN0ZWQ6dCxzeW5jaHJvbm91czpJP0kuc3luY2hyb25vdXM6ITEscnVuV2hlbjpJP0kucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX1lamVjdChlKXt0aGlzLmhhbmRsZXJzW2VdJiYodGhpcy5oYW5kbGVyc1tlXT1udWxsKX1jbGVhcigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX1mb3JFYWNoKGUpe24uZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKEkpe0khPT1udWxsJiZlKEkpfSl9fSxEZT1oZTt2YXIgeEE9e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9O3ZhciBGdD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6cUE7dmFyIFJ0PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIga3Q9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgVXQ9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6RnQsRm9ybURhdGE6UnQsQmxvYjprdH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBTZT17fTt5SShTZSx7aGFzQnJvd3NlckVudjooKT0+bWUsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5ScixoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9PmtyLG5hdmlnYXRvcjooKT0+d2Usb3JpZ2luOigpPT5Vcn0pO3ZhciBtZT10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1Iix3ZT10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsUnI9bWUmJighd2V8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2Yod2UucHJvZHVjdCk8MCksa3I9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLFVyPW1lJiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciB5PXsuLi5TZSwuLi5VdH07ZnVuY3Rpb24gRmUoQSxlKXtyZXR1cm4gSyhBLG5ldyB5LmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLHt2aXNpdG9yOmZ1bmN0aW9uKHQsSSxyLGkpe3JldHVybiB5LmlzTm9kZSYmbi5pc0J1ZmZlcih0KT8odGhpcy5hcHBlbmQoSSx0LnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOmkuZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwuLi5lfSl9ZnVuY3Rpb24gTnIoQSl7cmV0dXJuIG4ubWF0Y2hBbGwoL1x3K3xcWyhcdyopXS9nLEEpLm1hcChlPT5lWzBdPT09IltdIj8iIjplWzFdfHxlWzBdKX1mdW5jdGlvbiBHcihBKXtsZXQgZT17fSx0PU9iamVjdC5rZXlzKEEpLEkscj10Lmxlbmd0aCxpO2ZvcihJPTA7STxyO0krKylpPXRbSV0sZVtpXT1BW2ldO3JldHVybiBlfWZ1bmN0aW9uIGJyKEEpe2Z1bmN0aW9uIGUodCxJLHIsaSl7bGV0IG89dFtpKytdO2lmKG89PT0iX19wcm90b19fIilyZXR1cm4hMDtsZXQgcz1OdW1iZXIuaXNGaW5pdGUoK28pLEU9aT49dC5sZW5ndGg7cmV0dXJuIG89IW8mJm4uaXNBcnJheShyKT9yLmxlbmd0aDpvLEU/KG4uaGFzT3duUHJvcChyLG8pP3Jbb109W3Jbb10sSV06cltvXT1JLCFzKTooKCFyW29dfHwhbi5pc09iamVjdChyW29dKSkmJihyW29dPVtdKSxlKHQsSSxyW29dLGkpJiZuLmlzQXJyYXkocltvXSkmJihyW29dPUdyKHJbb10pKSwhcyl9aWYobi5pc0Zvcm1EYXRhKEEpJiZuLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IHQ9e307cmV0dXJuIG4uZm9yRWFjaEVudHJ5KEEsKEkscik9PntlKE5yKEkpLHIsdCwwKX0pLHR9cmV0dXJuIG51bGx9dmFyIE9BPWJyO2Z1bmN0aW9uIExyKEEsZSx0KXtpZihuLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4oZXx8SlNPTi5wYXJzZSkoQSksbi50cmltKEEpfWNhdGNoKEkpe2lmKEkubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgSX1yZXR1cm4odHx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBSZT17dHJhbnNpdGlvbmFsOnhBLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe2xldCBJPXQuZ2V0Q29udGVudFR5cGUoKXx8IiIscj1JLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxpPW4uaXNPYmplY3QoZSk7aWYoaSYmbi5pc0hUTUxGb3JtKGUpJiYoZT1uZXcgRm9ybURhdGEoZSkpLG4uaXNGb3JtRGF0YShlKSlyZXR1cm4gcj9KU09OLnN0cmluZ2lmeShPQShlKSk6ZTtpZihuLmlzQXJyYXlCdWZmZXIoZSl8fG4uaXNCdWZmZXIoZSl8fG4uaXNTdHJlYW0oZSl8fG4uaXNGaWxlKGUpfHxuLmlzQmxvYihlKXx8bi5pc1JlYWRhYmxlU3RyZWFtKGUpKXJldHVybiBlO2lmKG4uaXNBcnJheUJ1ZmZlclZpZXcoZSkpcmV0dXJuIGUuYnVmZmVyO2lmKG4uaXNVUkxTZWFyY2hQYXJhbXMoZSkpcmV0dXJuIHQuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksZS50b1N0cmluZygpO2xldCBzO2lmKGkpe2lmKEkuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik+LTEpcmV0dXJuIEZlKGUsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigocz1uLmlzRmlsZUxpc3QoZSkpfHxJLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7bGV0IEU9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBLKHM/eyJmaWxlc1tdIjplfTplLEUmJm5ldyBFLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gaXx8cj8odC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLExyKGUpKTplfV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKGUpe2xldCB0PXRoaXMudHJhbnNpdGlvbmFsfHxSZS50cmFuc2l0aW9uYWwsST10JiZ0LmZvcmNlZEpTT05QYXJzaW5nLHI9dGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYobi5pc1Jlc3BvbnNlKGUpfHxuLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoZSYmbi5pc1N0cmluZyhlKSYmKEkmJiF0aGlzLnJlc3BvbnNlVHlwZXx8cikpe2xldCBvPSEodCYmdC5zaWxlbnRKU09OUGFyc2luZykmJnI7dHJ5e3JldHVybiBKU09OLnBhcnNlKGUsdGhpcy5wYXJzZVJldml2ZXIpfWNhdGNoKHMpe2lmKG8pdGhyb3cgcy5uYW1lPT09IlN5bnRheEVycm9yIj91LmZyb20ocyx1LkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpOnN9fXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTp5LmNsYXNzZXMuRm9ybURhdGEsQmxvYjp5LmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtuLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIl0sQT0+e1JlLmhlYWRlcnNbQV09e319KTt2YXIgZUE9UmU7dmFyIEpyPW4udG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksTnQ9QT0+e2xldCBlPXt9LHQsSSxyO3JldHVybiBBJiZBLnNwbGl0KGAKYCkuZm9yRWFjaChmdW5jdGlvbihvKXtyPW8uaW5kZXhPZigiOiIpLHQ9by5zdWJzdHJpbmcoMCxyKS50cmltKCkudG9Mb3dlckNhc2UoKSxJPW8uc3Vic3RyaW5nKHIrMSkudHJpbSgpLCEoIXR8fGVbdF0mJkpyW3RdKSYmKHQ9PT0ic2V0LWNvb2tpZSI/ZVt0XT9lW3RdLnB1c2goSSk6ZVt0XT1bSV06ZVt0XT1lW3RdP2VbdF0rIiwgIitJOkkpfSksZX07dmFyIEd0PVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gY0EoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBQQShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6bi5pc0FycmF5KEEpP0EubWFwKFBBKTpTdHJpbmcoQSl9ZnVuY3Rpb24gTXIoQSl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKSx0PS8oW15ccyw7PV0rKVxzKig/Oj1ccyooW14sO10rKSk/L2csSTtmb3IoO0k9dC5leGVjKEEpOyllW0lbMV1dPUlbMl07cmV0dXJuIGV9dmFyIFlyPUE9Pi9eWy1fYS16QS1aMC05XmB8fiwhIyQlJicqKy5dKyQvLnRlc3QoQS50cmltKCkpO2Z1bmN0aW9uIGtlKEEsZSx0LEkscil7aWYobi5pc0Z1bmN0aW9uKEkpKXJldHVybiBJLmNhbGwodGhpcyxlLHQpO2lmKHImJihlPXQpLCEhbi5pc1N0cmluZyhlKSl7aWYobi5pc1N0cmluZyhJKSlyZXR1cm4gZS5pbmRleE9mKEkpIT09LTE7aWYobi5pc1JlZ0V4cChJKSlyZXR1cm4gSS50ZXN0KGUpfX1mdW5jdGlvbiBIcihBKXtyZXR1cm4gQS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxkXSkoXHcqKS9nLChlLHQsSSk9PnQudG9VcHBlckNhc2UoKStJKX1mdW5jdGlvbiBUcihBLGUpe2xldCB0PW4udG9DYW1lbENhc2UoIiAiK2UpO1siZ2V0Iiwic2V0IiwiaGFzIl0uZm9yRWFjaChJPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsSSt0LHt2YWx1ZTpmdW5jdGlvbihyLGksbyl7cmV0dXJuIHRoaXNbSV0uY2FsbCh0aGlzLGUscixpLG8pfSxjb25maWd1cmFibGU6ITB9KX0pfXZhciB0QT1jbGFzc3tjb25zdHJ1Y3RvcihlKXtlJiZ0aGlzLnNldChlKX1zZXQoZSx0LEkpe2xldCByPXRoaXM7ZnVuY3Rpb24gaShzLEUsQyl7bGV0IGc9Y0EoRSk7aWYoIWcpdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2xldCBhPW4uZmluZEtleShyLGcpOyghYXx8clthXT09PXZvaWQgMHx8Qz09PSEwfHxDPT09dm9pZCAwJiZyW2FdIT09ITEpJiYoclthfHxFXT1QQShzKSl9bGV0IG89KHMsRSk9Pm4uZm9yRWFjaChzLChDLGcpPT5pKEMsZyxFKSk7aWYobi5pc1BsYWluT2JqZWN0KGUpfHxlIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3RvcilvKGUsdCk7ZWxzZSBpZihuLmlzU3RyaW5nKGUpJiYoZT1lLnRyaW0oKSkmJiFZcihlKSlvKE50KGUpLHQpO2Vsc2UgaWYobi5pc09iamVjdChlKSYmbi5pc0l0ZXJhYmxlKGUpKXtsZXQgcz17fSxFLEM7Zm9yKGxldCBnIG9mIGUpe2lmKCFuLmlzQXJyYXkoZykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QgaXRlcmF0b3IgbXVzdCByZXR1cm4gYSBrZXktdmFsdWUgcGFpciIpO3NbQz1nWzBdXT0oRT1zW0NdKT9uLmlzQXJyYXkoRSk/Wy4uLkUsZ1sxXV06W0UsZ1sxXV06Z1sxXX1vKHMsdCl9ZWxzZSBlIT1udWxsJiZpKHQsZSxJKTtyZXR1cm4gdGhpc31nZXQoZSx0KXtpZihlPWNBKGUpLGUpe2xldCBJPW4uZmluZEtleSh0aGlzLGUpO2lmKEkpe2xldCByPXRoaXNbSV07aWYoIXQpcmV0dXJuIHI7aWYodD09PSEwKXJldHVybiBNcihyKTtpZihuLmlzRnVuY3Rpb24odCkpcmV0dXJuIHQuY2FsbCh0aGlzLHIsSSk7aWYobi5pc1JlZ0V4cCh0KSlyZXR1cm4gdC5leGVjKHIpO3Rocm93IG5ldyBUeXBlRXJyb3IoInBhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uIil9fX1oYXMoZSx0KXtpZihlPWNBKGUpLGUpe2xldCBJPW4uZmluZEtleSh0aGlzLGUpO3JldHVybiEhKEkmJnRoaXNbSV0hPT12b2lkIDAmJighdHx8a2UodGhpcyx0aGlzW0ldLEksdCkpKX1yZXR1cm4hMX1kZWxldGUoZSx0KXtsZXQgST10aGlzLHI9ITE7ZnVuY3Rpb24gaShvKXtpZihvPWNBKG8pLG8pe2xldCBzPW4uZmluZEtleShJLG8pO3MmJighdHx8a2UoSSxJW3NdLHMsdCkpJiYoZGVsZXRlIElbc10scj0hMCl9fXJldHVybiBuLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKGkpOmkoZSkscn1jbGVhcihlKXtsZXQgdD1PYmplY3Qua2V5cyh0aGlzKSxJPXQubGVuZ3RoLHI9ITE7Zm9yKDtJLS07KXtsZXQgaT10W0ldOyghZXx8a2UodGhpcyx0aGlzW2ldLGksZSwhMCkpJiYoZGVsZXRlIHRoaXNbaV0scj0hMCl9cmV0dXJuIHJ9bm9ybWFsaXplKGUpe2xldCB0PXRoaXMsST17fTtyZXR1cm4gbi5mb3JFYWNoKHRoaXMsKHIsaSk9PntsZXQgbz1uLmZpbmRLZXkoSSxpKTtpZihvKXt0W29dPVBBKHIpLGRlbGV0ZSB0W2ldO3JldHVybn1sZXQgcz1lP0hyKGkpOlN0cmluZyhpKS50cmltKCk7cyE9PWkmJmRlbGV0ZSB0W2ldLHRbc109UEEociksSVtzXT0hMH0pLHRoaXN9Y29uY2F0KC4uLmUpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLmNvbmNhdCh0aGlzLC4uLmUpfXRvSlNPTihlKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBuLmZvckVhY2godGhpcywoSSxyKT0+e0khPW51bGwmJkkhPT0hMSYmKHRbcl09ZSYmbi5pc0FycmF5KEkpP0kuam9pbigiLCAiKTpJKX0pLHR9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSlbU3ltYm9sLml0ZXJhdG9yXSgpfXRvU3RyaW5nKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpLm1hcCgoW2UsdF0pPT5lKyI6ICIrdCkuam9pbihgCmApfWdldFNldENvb2tpZSgpe3JldHVybiB0aGlzLmdldCgic2V0LWNvb2tpZSIpfHxbXX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJBeGlvc0hlYWRlcnMifXN0YXRpYyBmcm9tKGUpe3JldHVybiBlIGluc3RhbmNlb2YgdGhpcz9lOm5ldyB0aGlzKGUpfXN0YXRpYyBjb25jYXQoZSwuLi50KXtsZXQgST1uZXcgdGhpcyhlKTtyZXR1cm4gdC5mb3JFYWNoKHI9Pkkuc2V0KHIpKSxJfXN0YXRpYyBhY2Nlc3NvcihlKXtsZXQgST0odGhpc1tHdF09dGhpc1tHdF09e2FjY2Vzc29yczp7fX0pLmFjY2Vzc29ycyxyPXRoaXMucHJvdG90eXBlO2Z1bmN0aW9uIGkobyl7bGV0IHM9Y0Eobyk7SVtzXXx8KFRyKHIsbyksSVtzXT0hMCl9cmV0dXJuIG4uaXNBcnJheShlKT9lLmZvckVhY2goaSk6aShlKSx0aGlzfX07dEEuYWNjZXNzb3IoWyJDb250ZW50LVR5cGUiLCJDb250ZW50LUxlbmd0aCIsIkFjY2VwdCIsIkFjY2VwdC1FbmNvZGluZyIsIlVzZXItQWdlbnQiLCJBdXRob3JpemF0aW9uIl0pO24ucmVkdWNlRGVzY3JpcHRvcnModEEucHJvdG90eXBlLCh7dmFsdWU6QX0sZSk9PntsZXQgdD1lWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKTtyZXR1cm57Z2V0OigpPT5BLHNldChJKXt0aGlzW3RdPUl9fX0pO24uZnJlZXplTWV0aG9kcyh0QSk7dmFyIG09dEE7ZnVuY3Rpb24gZkEoQSxlKXtsZXQgdD10aGlzfHxlQSxJPWV8fHQscj1tLmZyb20oSS5oZWFkZXJzKSxpPUkuZGF0YTtyZXR1cm4gbi5mb3JFYWNoKEEsZnVuY3Rpb24ocyl7aT1zLmNhbGwodCxpLHIubm9ybWFsaXplKCksZT9lLnN0YXR1czp2b2lkIDApfSksci5ub3JtYWxpemUoKSxpfWZ1bmN0aW9uIHVBKEEpe3JldHVybiEhKEEmJkEuX19DQU5DRUxfXyl9ZnVuY3Rpb24gYnQoQSxlLHQpe3UuY2FsbCh0aGlzLEE/PyJjYW5jZWxlZCIsdS5FUlJfQ0FOQ0VMRUQsZSx0KSx0aGlzLm5hbWU9IkNhbmNlbGVkRXJyb3IifW4uaW5oZXJpdHMoYnQsdSx7X19DQU5DRUxfXzohMH0pO3ZhciBIPWJ0O2Z1bmN0aW9uIHBBKEEsZSx0KXtsZXQgST10LmNvbmZpZy52YWxpZGF0ZVN0YXR1czshdC5zdGF0dXN8fCFJfHxJKHQuc3RhdHVzKT9BKHQpOmUobmV3IHUoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIit0LnN0YXR1cyxbdS5FUlJfQkFEX1JFUVVFU1QsdS5FUlJfQkFEX1JFU1BPTlNFXVtNYXRoLmZsb29yKHQuc3RhdHVzLzEwMCktNF0sdC5jb25maWcsdC5yZXF1ZXN0LHQpKX1mdW5jdGlvbiBVZShBKXtsZXQgZT0vXihbLStcd117MSwyNX0pKDo/XC9cL3w6KS8uZXhlYyhBKTtyZXR1cm4gZSYmZVsxXXx8IiJ9ZnVuY3Rpb24gcXIoQSxlKXtBPUF8fDEwO2xldCB0PW5ldyBBcnJheShBKSxJPW5ldyBBcnJheShBKSxyPTAsaT0wLG87cmV0dXJuIGU9ZSE9PXZvaWQgMD9lOjFlMyxmdW5jdGlvbihFKXtsZXQgQz1EYXRlLm5vdygpLGc9SVtpXTtvfHwobz1DKSx0W3JdPUUsSVtyXT1DO2xldCBhPWksZj0wO2Zvcig7YSE9PXI7KWYrPXRbYSsrXSxhPWElQTtpZihyPShyKzEpJUEscj09PWkmJihpPShpKzEpJUEpLEMtbzxlKXJldHVybjtsZXQgQj1nJiZDLWc7cmV0dXJuIEI/TWF0aC5yb3VuZChmKjFlMy9CKTp2b2lkIDB9fXZhciBMdD1xcjtmdW5jdGlvbiB4cihBLGUpe2xldCB0PTAsST0xZTMvZSxyLGksbz0oQyxnPURhdGUubm93KCkpPT57dD1nLHI9bnVsbCxpJiYoY2xlYXJUaW1lb3V0KGkpLGk9bnVsbCksQSguLi5DKX07cmV0dXJuWyguLi5DKT0+e2xldCBnPURhdGUubm93KCksYT1nLXQ7YT49ST9vKEMsZyk6KHI9QyxpfHwoaT1zZXRUaW1lb3V0KCgpPT57aT1udWxsLG8ocil9LEktYSkpKX0sKCk9PnImJm8ocildfXZhciBKdD14cjt2YXIgSUE9KEEsZSx0PTMpPT57bGV0IEk9MCxyPUx0KDUwLDI1MCk7cmV0dXJuIEp0KGk9PntsZXQgbz1pLmxvYWRlZCxzPWkubGVuZ3RoQ29tcHV0YWJsZT9pLnRvdGFsOnZvaWQgMCxFPW8tSSxDPXIoRSksZz1vPD1zO0k9bztsZXQgYT17bG9hZGVkOm8sdG90YWw6cyxwcm9ncmVzczpzP28vczp2b2lkIDAsYnl0ZXM6RSxyYXRlOkN8fHZvaWQgMCxlc3RpbWF0ZWQ6QyYmcyYmZz8ocy1vKS9DOnZvaWQgMCxldmVudDppLGxlbmd0aENvbXB1dGFibGU6cyE9bnVsbCxbZT8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH07QShhKX0sdCl9LE5lPShBLGUpPT57bGV0IHQ9QSE9bnVsbDtyZXR1cm5bST0+ZVswXSh7bGVuZ3RoQ29tcHV0YWJsZTp0LHRvdGFsOkEsbG9hZGVkOkl9KSxlWzFdXX0sR2U9QT0+KC4uLmUpPT5uLmFzYXAoKCk9PkEoLi4uZSkpO3ZhciBNdD15Lmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKEEsZSk9PnQ9Pih0PW5ldyBVUkwodCx5Lm9yaWdpbiksQS5wcm90b2NvbD09PXQucHJvdG9jb2wmJkEuaG9zdD09PXQuaG9zdCYmKGV8fEEucG9ydD09PXQucG9ydCkpKShuZXcgVVJMKHkub3JpZ2luKSx5Lm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdCh5Lm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITA7dmFyIFl0PXkuaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShBLGUsdCxJLHIsaSl7bGV0IG89W0ErIj0iK2VuY29kZVVSSUNvbXBvbmVudChlKV07bi5pc051bWJlcih0KSYmby5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUodCkudG9HTVRTdHJpbmcoKSksbi5pc1N0cmluZyhJKSYmby5wdXNoKCJwYXRoPSIrSSksbi5pc1N0cmluZyhyKSYmby5wdXNoKCJkb21haW49IityKSxpPT09ITAmJm8ucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPW8uam9pbigiOyAiKX0scmVhZChBKXtsZXQgZT1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xccyopKCIrQSsiKT0oW147XSopIikpO3JldHVybiBlP2RlY29kZVVSSUNvbXBvbmVudChlWzNdKTpudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIGJlKEEpe3JldHVybi9eKFthLXpdW2EtelxkK1wtLl0qOik/XC9cLy9pLnRlc3QoQSl9ZnVuY3Rpb24gTGUoQSxlKXtyZXR1cm4gZT9BLnJlcGxhY2UoL1wvP1wvJC8sIiIpKyIvIitlLnJlcGxhY2UoL15cLysvLCIiKTpBfWZ1bmN0aW9uIGRBKEEsZSx0KXtsZXQgST0hYmUoZSk7cmV0dXJuIEEmJihJfHx0PT0hMSk/TGUoQSxlKTplfXZhciBIdD1BPT5BIGluc3RhbmNlb2YgbT97Li4uQX06QTtmdW5jdGlvbiBNKEEsZSl7ZT1lfHx7fTtsZXQgdD17fTtmdW5jdGlvbiBJKEMsZyxhLGYpe3JldHVybiBuLmlzUGxhaW5PYmplY3QoQykmJm4uaXNQbGFpbk9iamVjdChnKT9uLm1lcmdlLmNhbGwoe2Nhc2VsZXNzOmZ9LEMsZyk6bi5pc1BsYWluT2JqZWN0KGcpP24ubWVyZ2Uoe30sZyk6bi5pc0FycmF5KGcpP2cuc2xpY2UoKTpnfWZ1bmN0aW9uIHIoQyxnLGEsZil7aWYobi5pc1VuZGVmaW5lZChnKSl7aWYoIW4uaXNVbmRlZmluZWQoQykpcmV0dXJuIEkodm9pZCAwLEMsYSxmKX1lbHNlIHJldHVybiBJKEMsZyxhLGYpfWZ1bmN0aW9uIGkoQyxnKXtpZighbi5pc1VuZGVmaW5lZChnKSlyZXR1cm4gSSh2b2lkIDAsZyl9ZnVuY3Rpb24gbyhDLGcpe2lmKG4uaXNVbmRlZmluZWQoZykpe2lmKCFuLmlzVW5kZWZpbmVkKEMpKXJldHVybiBJKHZvaWQgMCxDKX1lbHNlIHJldHVybiBJKHZvaWQgMCxnKX1mdW5jdGlvbiBzKEMsZyxhKXtpZihhIGluIGUpcmV0dXJuIEkoQyxnKTtpZihhIGluIEEpcmV0dXJuIEkodm9pZCAwLEMpfWxldCBFPXt1cmw6aSxtZXRob2Q6aSxkYXRhOmksYmFzZVVSTDpvLHRyYW5zZm9ybVJlcXVlc3Q6byx0cmFuc2Zvcm1SZXNwb25zZTpvLHBhcmFtc1NlcmlhbGl6ZXI6byx0aW1lb3V0Om8sdGltZW91dE1lc3NhZ2U6byx3aXRoQ3JlZGVudGlhbHM6byx3aXRoWFNSRlRva2VuOm8sYWRhcHRlcjpvLHJlc3BvbnNlVHlwZTpvLHhzcmZDb29raWVOYW1lOm8seHNyZkhlYWRlck5hbWU6byxvblVwbG9hZFByb2dyZXNzOm8sb25Eb3dubG9hZFByb2dyZXNzOm8sZGVjb21wcmVzczpvLG1heENvbnRlbnRMZW5ndGg6byxtYXhCb2R5TGVuZ3RoOm8sYmVmb3JlUmVkaXJlY3Q6byx0cmFuc3BvcnQ6byxodHRwQWdlbnQ6byxodHRwc0FnZW50Om8sY2FuY2VsVG9rZW46byxzb2NrZXRQYXRoOm8scmVzcG9uc2VFbmNvZGluZzpvLHZhbGlkYXRlU3RhdHVzOnMsaGVhZGVyczooQyxnLGEpPT5yKEh0KEMpLEh0KGcpLGEsITApfTtyZXR1cm4gbi5mb3JFYWNoKE9iamVjdC5rZXlzKHsuLi5BLC4uLmV9KSxmdW5jdGlvbihnKXtsZXQgYT1FW2ddfHxyLGY9YShBW2ddLGVbZ10sZyk7bi5pc1VuZGVmaW5lZChmKSYmYSE9PXN8fCh0W2ddPWYpfSksdH12YXIgS0E9QT0+e2xldCBlPU0oe30sQSkse2RhdGE6dCx3aXRoWFNSRlRva2VuOkkseHNyZkhlYWRlck5hbWU6cix4c3JmQ29va2llTmFtZTppLGhlYWRlcnM6byxhdXRoOnN9PWU7aWYoZS5oZWFkZXJzPW89bS5mcm9tKG8pLGUudXJsPWxBKGRBKGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzKSxBLnBhcmFtcyxBLnBhcmFtc1NlcmlhbGl6ZXIpLHMmJm8uc2V0KCJBdXRob3JpemF0aW9uIiwiQmFzaWMgIitidG9hKChzLnVzZXJuYW1lfHwiIikrIjoiKyhzLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChzLnBhc3N3b3JkKSk6IiIpKSksbi5pc0Zvcm1EYXRhKHQpKXtpZih5Lmhhc1N0YW5kYXJkQnJvd3NlckVudnx8eS5oYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYpby5zZXRDb250ZW50VHlwZSh2b2lkIDApO2Vsc2UgaWYobi5pc0Z1bmN0aW9uKHQuZ2V0SGVhZGVycykpe2xldCBFPXQuZ2V0SGVhZGVycygpLEM9WyJjb250ZW50LXR5cGUiLCJjb250ZW50LWxlbmd0aCJdO09iamVjdC5lbnRyaWVzKEUpLmZvckVhY2goKFtnLGFdKT0+e0MuaW5jbHVkZXMoZy50b0xvd2VyQ2FzZSgpKSYmby5zZXQoZyxhKX0pfX1pZih5Lmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKEkmJm4uaXNGdW5jdGlvbihJKSYmKEk9SShlKSksSXx8SSE9PSExJiZNdChlLnVybCkpKXtsZXQgRT1yJiZpJiZZdC5yZWFkKGkpO0UmJm8uc2V0KHIsRSl9cmV0dXJuIGV9O3ZhciBPcj10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUiLFR0PU9yJiZmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxJKXtsZXQgcj1LQShBKSxpPXIuZGF0YSxvPW0uZnJvbShyLmhlYWRlcnMpLm5vcm1hbGl6ZSgpLHtyZXNwb25zZVR5cGU6cyxvblVwbG9hZFByb2dyZXNzOkUsb25Eb3dubG9hZFByb2dyZXNzOkN9PXIsZyxhLGYsQixRO2Z1bmN0aW9uIGMoKXtCJiZCKCksUSYmUSgpLHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUoZyksci5zaWduYWwmJnIuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixnKX1sZXQgbD1uZXcgWE1MSHR0cFJlcXVlc3Q7bC5vcGVuKHIubWV0aG9kLnRvVXBwZXJDYXNlKCksci51cmwsITApLGwudGltZW91dD1yLnRpbWVvdXQ7ZnVuY3Rpb24gcCgpe2lmKCFsKXJldHVybjtsZXQgaD1tLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBsJiZsLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxMPXtkYXRhOiFzfHxzPT09InRleHQifHxzPT09Impzb24iP2wucmVzcG9uc2VUZXh0OmwucmVzcG9uc2Usc3RhdHVzOmwuc3RhdHVzLHN0YXR1c1RleHQ6bC5zdGF0dXNUZXh0LGhlYWRlcnM6aCxjb25maWc6QSxyZXF1ZXN0Omx9O3BBKGZ1bmN0aW9uKGIpe3QoYiksYygpfSxmdW5jdGlvbihiKXtJKGIpLGMoKX0sTCksbD1udWxsfSJvbmxvYWRlbmQiaW4gbD9sLm9ubG9hZGVuZD1wOmwub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IWx8fGwucmVhZHlTdGF0ZSE9PTR8fGwuc3RhdHVzPT09MCYmIShsLnJlc3BvbnNlVVJMJiZsLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6Iik9PT0wKXx8c2V0VGltZW91dChwKX0sbC5vbmFib3J0PWZ1bmN0aW9uKCl7bCYmKEkobmV3IHUoIlJlcXVlc3QgYWJvcnRlZCIsdS5FQ09OTkFCT1JURUQsQSxsKSksbD1udWxsKX0sbC5vbmVycm9yPWZ1bmN0aW9uKFUpe2xldCBMPVUmJlUubWVzc2FnZT9VLm1lc3NhZ2U6Ik5ldHdvcmsgRXJyb3IiLGo9bmV3IHUoTCx1LkVSUl9ORVRXT1JLLEEsbCk7ai5ldmVudD1VfHxudWxsLEkoaiksbD1udWxsfSxsLm9udGltZW91dD1mdW5jdGlvbigpe2xldCBVPXIudGltZW91dD8idGltZW91dCBvZiAiK3IudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixMPXIudHJhbnNpdGlvbmFsfHx4QTtyLnRpbWVvdXRFcnJvck1lc3NhZ2UmJihVPXIudGltZW91dEVycm9yTWVzc2FnZSksSShuZXcgdShVLEwuY2xhcmlmeVRpbWVvdXRFcnJvcj91LkVUSU1FRE9VVDp1LkVDT05OQUJPUlRFRCxBLGwpKSxsPW51bGx9LGk9PT12b2lkIDAmJm8uc2V0Q29udGVudFR5cGUobnVsbCksInNldFJlcXVlc3RIZWFkZXIiaW4gbCYmbi5mb3JFYWNoKG8udG9KU09OKCksZnVuY3Rpb24oVSxMKXtsLnNldFJlcXVlc3RIZWFkZXIoTCxVKX0pLG4uaXNVbmRlZmluZWQoci53aXRoQ3JlZGVudGlhbHMpfHwobC53aXRoQ3JlZGVudGlhbHM9ISFyLndpdGhDcmVkZW50aWFscykscyYmcyE9PSJqc29uIiYmKGwucmVzcG9uc2VUeXBlPXIucmVzcG9uc2VUeXBlKSxDJiYoW2YsUV09SUEoQywhMCksbC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZikpLEUmJmwudXBsb2FkJiYoW2EsQl09SUEoRSksbC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGEpLGwudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLEIpKSwoci5jYW5jZWxUb2tlbnx8ci5zaWduYWwpJiYoZz1oPT57bCYmKEkoIWh8fGgudHlwZT9uZXcgSChudWxsLEEsbCk6aCksbC5hYm9ydCgpLGw9bnVsbCl9LHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKGcpLHIuc2lnbmFsJiYoci5zaWduYWwuYWJvcnRlZD9nKCk6ci5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGcpKSk7bGV0IFI9VWUoci51cmwpO2lmKFImJnkucHJvdG9jb2xzLmluZGV4T2YoUik9PT0tMSl7SShuZXcgdSgiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIitSKyI6Iix1LkVSUl9CQURfUkVRVUVTVCxBKSk7cmV0dXJufWwuc2VuZChpfHxudWxsKX0pfTt2YXIgUHI9KEEsZSk9PntsZXR7bGVuZ3RoOnR9PUE9QT9BLmZpbHRlcihCb29sZWFuKTpbXTtpZihlfHx0KXtsZXQgST1uZXcgQWJvcnRDb250cm9sbGVyLHIsaT1mdW5jdGlvbihDKXtpZighcil7cj0hMCxzKCk7bGV0IGc9QyBpbnN0YW5jZW9mIEVycm9yP0M6dGhpcy5yZWFzb247SS5hYm9ydChnIGluc3RhbmNlb2YgdT9nOm5ldyBIKGcgaW5zdGFuY2VvZiBFcnJvcj9nLm1lc3NhZ2U6ZykpfX0sbz1lJiZzZXRUaW1lb3V0KCgpPT57bz1udWxsLGkobmV3IHUoYHRpbWVvdXQgJHtlfSBvZiBtcyBleGNlZWRlZGAsdS5FVElNRURPVVQpKX0sZSkscz0oKT0+e0EmJihvJiZjbGVhclRpbWVvdXQobyksbz1udWxsLEEuZm9yRWFjaChDPT57Qy51bnN1YnNjcmliZT9DLnVuc3Vic2NyaWJlKGkpOkMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGkpfSksQT1udWxsKX07QS5mb3JFYWNoKEM9PkMuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGkpKTtsZXR7c2lnbmFsOkV9PUk7cmV0dXJuIEUudW5zdWJzY3JpYmU9KCk9Pm4uYXNhcChzKSxFfX0scXQ9UHI7dmFyIEtyPWZ1bmN0aW9uKihBLGUpe2xldCB0PUEuYnl0ZUxlbmd0aDtpZighZXx8dDxlKXt5aWVsZCBBO3JldHVybn1sZXQgST0wLHI7Zm9yKDtJPHQ7KXI9SStlLHlpZWxkIEEuc2xpY2UoSSxyKSxJPXJ9LFdyPWFzeW5jIGZ1bmN0aW9uKihBLGUpe2ZvciBhd2FpdChsZXQgdCBvZiBqcihBKSl5aWVsZCpLcih0LGUpfSxqcj1hc3luYyBmdW5jdGlvbiooQSl7aWYoQVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pe3lpZWxkKkE7cmV0dXJufWxldCBlPUEuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6dCx2YWx1ZTpJfT1hd2FpdCBlLnJlYWQoKTtpZih0KWJyZWFrO3lpZWxkIEl9fWZpbmFsbHl7YXdhaXQgZS5jYW5jZWwoKX19LEplPShBLGUsdCxJKT0+e2xldCByPVdyKEEsZSksaT0wLG8scz1FPT57b3x8KG89ITAsSSYmSShFKSl9O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwoRSl7dHJ5e2xldHtkb25lOkMsdmFsdWU6Z309YXdhaXQgci5uZXh0KCk7aWYoQyl7cygpLEUuY2xvc2UoKTtyZXR1cm59bGV0IGE9Zy5ieXRlTGVuZ3RoO2lmKHQpe2xldCBmPWkrPWE7dChmKX1FLmVucXVldWUobmV3IFVpbnQ4QXJyYXkoZykpfWNhdGNoKEMpe3Rocm93IHMoQyksQ319LGNhbmNlbChFKXtyZXR1cm4gcyhFKSxyLnJldHVybigpfX0se2hpZ2hXYXRlck1hcms6Mn0pfTt2YXIgeHQ9NjQqMTAyNCx7aXNGdW5jdGlvbjpXQX09bixXdD0oKHtmZXRjaDpBLFJlcXVlc3Q6ZSxSZXNwb25zZTp0fSk9Pih7ZmV0Y2g6QSxSZXF1ZXN0OmUsUmVzcG9uc2U6dH0pKShuLmdsb2JhbCkse1JlYWRhYmxlU3RyZWFtOk90LFRleHRFbmNvZGVyOlB0fT1uLmdsb2JhbCxLdD0oQSwuLi5lKT0+e3RyeXtyZXR1cm4hIUEoLi4uZSl9Y2F0Y2h7cmV0dXJuITF9fSx2cj1BPT57bGV0e2ZldGNoOmUsUmVxdWVzdDp0LFJlc3BvbnNlOkl9PU9iamVjdC5hc3NpZ24oe30sV3QsQSkscj1XQShlKSxpPVdBKHQpLG89V0EoSSk7aWYoIXIpcmV0dXJuITE7bGV0IHM9ciYmV0EoT3QpLEU9ciYmKHR5cGVvZiBQdD09ImZ1bmN0aW9uIj8oUT0+Yz0+US5lbmNvZGUoYykpKG5ldyBQdCk6YXN5bmMgUT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IHQoUSkuYXJyYXlCdWZmZXIoKSkpLEM9aSYmcyYmS3QoKCk9PntsZXQgUT0hMSxjPW5ldyB0KHkub3JpZ2luLHtib2R5Om5ldyBPdCxtZXRob2Q6IlBPU1QiLGdldCBkdXBsZXgoKXtyZXR1cm4gUT0hMCwiaGFsZiJ9fSkuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpO3JldHVybiBRJiYhY30pLGc9byYmcyYmS3QoKCk9Pm4uaXNSZWFkYWJsZVN0cmVhbShuZXcgSSgiIikuYm9keSkpLGE9e3N0cmVhbTpnJiYoUT0+US5ib2R5KX07ciYmWyJ0ZXh0IiwiYXJyYXlCdWZmZXIiLCJibG9iIiwiZm9ybURhdGEiLCJzdHJlYW0iXS5mb3JFYWNoKFE9PnshYVtRXSYmKGFbUV09KGMsbCk9PntsZXQgcD1jJiZjW1FdO2lmKHApcmV0dXJuIHAuY2FsbChjKTt0aHJvdyBuZXcgdShgUmVzcG9uc2UgdHlwZSAnJHtRfScgaXMgbm90IHN1cHBvcnRlZGAsdS5FUlJfTk9UX1NVUFBPUlQsbCl9KX0pO2xldCBmPWFzeW5jIFE9PntpZihRPT1udWxsKXJldHVybiAwO2lmKG4uaXNCbG9iKFEpKXJldHVybiBRLnNpemU7aWYobi5pc1NwZWNDb21wbGlhbnRGb3JtKFEpKXJldHVybihhd2FpdCBuZXcgdCh5Lm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OlF9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKG4uaXNBcnJheUJ1ZmZlclZpZXcoUSl8fG4uaXNBcnJheUJ1ZmZlcihRKSlyZXR1cm4gUS5ieXRlTGVuZ3RoO2lmKG4uaXNVUkxTZWFyY2hQYXJhbXMoUSkmJihRPVErIiIpLG4uaXNTdHJpbmcoUSkpcmV0dXJuKGF3YWl0IEUoUSkpLmJ5dGVMZW5ndGh9LEI9YXN5bmMoUSxjKT0+e2xldCBsPW4udG9GaW5pdGVOdW1iZXIoUS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiBsPz9mKGMpfTtyZXR1cm4gYXN5bmMgUT0+e2xldHt1cmw6YyxtZXRob2Q6bCxkYXRhOnAsc2lnbmFsOlIsY2FuY2VsVG9rZW46aCx0aW1lb3V0OlUsb25Eb3dubG9hZFByb2dyZXNzOkwsb25VcGxvYWRQcm9ncmVzczpqLHJlc3BvbnNlVHlwZTpiLGhlYWRlcnM6dGUsd2l0aENyZWRlbnRpYWxzOkZBPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOlplfT1LQShRKTtiPWI/KGIrIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBSQT1xdChbUixoJiZoLnRvQWJvcnRTaWduYWwoKV0sVSksYUE9bnVsbCx2PVJBJiZSQS51bnN1YnNjcmliZSYmKCgpPT57UkEudW5zdWJzY3JpYmUoKX0pLFZlO3RyeXtpZihqJiZDJiZsIT09ImdldCImJmwhPT0iaGVhZCImJihWZT1hd2FpdCBCKHRlLHApKSE9PTApe2xldCBPPW5ldyB0KGMse21ldGhvZDoiUE9TVCIsYm9keTpwLGR1cGxleDoiaGFsZiJ9KSx6O2lmKG4uaXNGb3JtRGF0YShwKSYmKHo9Ty5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZ0ZS5zZXRDb250ZW50VHlwZSh6KSxPLmJvZHkpe2xldFtJZSxrQV09TmUoVmUsSUEoR2UoaikpKTtwPUplKE8uYm9keSx4dCxJZSxrQSl9fW4uaXNTdHJpbmcoRkEpfHwoRkE9RkE/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IFk9aSYmImNyZWRlbnRpYWxzImluIHQucHJvdG90eXBlLHplPXsuLi5aZSxzaWduYWw6UkEsbWV0aG9kOmwudG9VcHBlckNhc2UoKSxoZWFkZXJzOnRlLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6cCxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOlk/RkE6dm9pZCAwfTthQT1pJiZuZXcgdChjLHplKTtsZXQgeD1hd2FpdChpP2UoYUEsWmUpOmUoYyx6ZSkpLFhlPWcmJihiPT09InN0cmVhbSJ8fGI9PT0icmVzcG9uc2UiKTtpZihnJiYoTHx8WGUmJnYpKXtsZXQgTz17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChfZT0+e09bX2VdPXhbX2VdfSk7bGV0IHo9bi50b0Zpbml0ZU51bWJlcih4LmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbSWUsa0FdPUwmJk5lKHosSUEoR2UoTCksITApKXx8W107eD1uZXcgSShKZSh4LmJvZHkseHQsSWUsKCk9PntrQSYma0EoKSx2JiZ2KCl9KSxPKX1iPWJ8fCJ0ZXh0IjtsZXQgcEk9YXdhaXQgYVtuLmZpbmRLZXkoYSxiKXx8InRleHQiXSh4LFEpO3JldHVybiFYZSYmdiYmdigpLGF3YWl0IG5ldyBQcm9taXNlKChPLHopPT57cEEoTyx6LHtkYXRhOnBJLGhlYWRlcnM6bS5mcm9tKHguaGVhZGVycyksc3RhdHVzOnguc3RhdHVzLHN0YXR1c1RleHQ6eC5zdGF0dXNUZXh0LGNvbmZpZzpRLHJlcXVlc3Q6YUF9KX0pfWNhdGNoKFkpe3Rocm93IHYmJnYoKSxZJiZZLm5hbWU9PT0iVHlwZUVycm9yIiYmL0xvYWQgZmFpbGVkfGZldGNoL2kudGVzdChZLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IHUoIk5ldHdvcmsgRXJyb3IiLHUuRVJSX05FVFdPUkssUSxhQSkse2NhdXNlOlkuY2F1c2V8fFl9KTp1LmZyb20oWSxZJiZZLmNvZGUsUSxhQSl9fX0sWnI9bmV3IE1hcCxNZT1BPT57bGV0IGU9bi5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSxXdCxBP0EuZW52Om51bGwpLHtmZXRjaDp0LFJlcXVlc3Q6SSxSZXNwb25zZTpyfT1lLGk9W0kscix0XSxvPWkubGVuZ3RoLHM9byxFLEMsZz1acjtmb3IoO3MtLTspRT1pW3NdLEM9Zy5nZXQoRSksQz09PXZvaWQgMCYmZy5zZXQoRSxDPXM/bmV3IE1hcDp2cihlKSksZz1DO3JldHVybiBDfSxmbj1NZSgpO3ZhciBZZT17aHR0cDpUQSx4aHI6VHQsZmV0Y2g6e2dldDpNZX19O24uZm9yRWFjaChZZSwoQSxlKT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOmV9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6ZX0pfX0pO3ZhciBqdD1BPT5gLSAke0F9YCx6cj1BPT5uLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsakE9e2dldEFkYXB0ZXI6KEEsZSk9PntBPW4uaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOnR9PUEsSSxyLGk9e307Zm9yKGxldCBvPTA7bzx0O28rKyl7ST1BW29dO2xldCBzO2lmKHI9SSwhenIoSSkmJihyPVllWyhzPVN0cmluZyhJKSkudG9Mb3dlckNhc2UoKV0scj09PXZvaWQgMCkpdGhyb3cgbmV3IHUoYFVua25vd24gYWRhcHRlciAnJHtzfSdgKTtpZihyJiYobi5pc0Z1bmN0aW9uKHIpfHwocj1yLmdldChlKSkpKWJyZWFrO2lbc3x8IiMiK29dPXJ9aWYoIXIpe2xldCBvPU9iamVjdC5lbnRyaWVzKGkpLm1hcCgoW0UsQ10pPT5gYWRhcHRlciAke0V9IGArKEM9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxzPXQ/by5sZW5ndGg+MT9gc2luY2UgOgpgK28ubWFwKGp0KS5qb2luKGAKYCk6IiAiK2p0KG9bMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IHUoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitzLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gcn0sYWRhcHRlcnM6WWV9O2Z1bmN0aW9uIEhlKEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBIKG51bGwsQSl9ZnVuY3Rpb24gdkEoQSl7cmV0dXJuIEhlKEEpLEEuaGVhZGVycz1tLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9ZkEuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLGpBLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxlQS5hZGFwdGVyLEEpKEEpLnRoZW4oZnVuY3Rpb24oSSl7cmV0dXJuIEhlKEEpLEkuZGF0YT1mQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJKSxJLmhlYWRlcnM9bS5mcm9tKEkuaGVhZGVycyksSX0sZnVuY3Rpb24oSSl7cmV0dXJuIHVBKEkpfHwoSGUoQSksSSYmSS5yZXNwb25zZSYmKEkucmVzcG9uc2UuZGF0YT1mQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJLnJlc3BvbnNlKSxJLnJlc3BvbnNlLmhlYWRlcnM9bS5mcm9tKEkucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChJKX0pfXZhciBaQT0iMS4xMi4wIjt2YXIgVkE9e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChBLGUpPT57VkFbQV09ZnVuY3Rpb24oSSl7cmV0dXJuIHR5cGVvZiBJPT09QXx8ImEiKyhlPDE/Im4gIjoiICIpK0F9fSk7dmFyIHZ0PXt9O1ZBLnRyYW5zaXRpb25hbD1mdW5jdGlvbihlLHQsSSl7ZnVuY3Rpb24gcihpLG8pe3JldHVybiJbQXhpb3MgdiIrWkErIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiAnIitpKyInIitvKyhJPyIuICIrSToiIil9cmV0dXJuKGksbyxzKT0+e2lmKGU9PT0hMSl0aHJvdyBuZXcgdShyKG8sIiBoYXMgYmVlbiByZW1vdmVkIisodD8iIGluICIrdDoiIikpLHUuRVJSX0RFUFJFQ0FURUQpO3JldHVybiB0JiYhdnRbb10mJih2dFtvXT0hMCxjb25zb2xlLndhcm4ocihvLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2Iit0KyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLGU/ZShpLG8scyk6ITB9fTtWQS5zcGVsbGluZz1mdW5jdGlvbihlKXtyZXR1cm4odCxJKT0+KGNvbnNvbGUud2FybihgJHtJfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke2V9YCksITApfTtmdW5jdGlvbiBYcihBLGUsdCl7aWYodHlwZW9mIEEhPSJvYmplY3QiKXRocm93IG5ldyB1KCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iix1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgST1PYmplY3Qua2V5cyhBKSxyPUkubGVuZ3RoO2Zvcig7ci0tID4wOyl7bGV0IGk9SVtyXSxvPWVbaV07aWYobyl7bGV0IHM9QVtpXSxFPXM9PT12b2lkIDB8fG8ocyxpLEEpO2lmKEUhPT0hMCl0aHJvdyBuZXcgdSgib3B0aW9uICIraSsiIG11c3QgYmUgIitFLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnRpbnVlfWlmKHQhPT0hMCl0aHJvdyBuZXcgdSgiVW5rbm93biBvcHRpb24gIitpLHUuRVJSX0JBRF9PUFRJT04pfX12YXIgeUE9e2Fzc2VydE9wdGlvbnM6WHIsdmFsaWRhdG9yczpWQX07dmFyIFQ9eUEudmFsaWRhdG9ycyxyQT1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmRlZmF1bHRzPWV8fHt9LHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBEZSxyZXNwb25zZTpuZXcgRGV9fWFzeW5jIHJlcXVlc3QoZSx0KXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QoZSx0KX1jYXRjaChJKXtpZihJIGluc3RhbmNlb2YgRXJyb3Ipe2xldCByPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHIpOnI9bmV3IEVycm9yO2xldCBpPXIuc3RhY2s/ci5zdGFjay5yZXBsYWNlKC9eLitcbi8sIiIpOiIiO3RyeXtJLnN0YWNrP2kmJiFTdHJpbmcoSS5zdGFjaykuZW5kc1dpdGgoaS5yZXBsYWNlKC9eLitcbi4rXG4vLCIiKSkmJihJLnN0YWNrKz1gCmAraSk6SS5zdGFjaz1pfWNhdGNoe319dGhyb3cgSX19X3JlcXVlc3QoZSx0KXt0eXBlb2YgZT09InN0cmluZyI/KHQ9dHx8e30sdC51cmw9ZSk6dD1lfHx7fSx0PU0odGhpcy5kZWZhdWx0cyx0KTtsZXR7dHJhbnNpdGlvbmFsOkkscGFyYW1zU2VyaWFsaXplcjpyLGhlYWRlcnM6aX09dDtJIT09dm9pZCAwJiZ5QS5hc3NlcnRPcHRpb25zKEkse3NpbGVudEpTT05QYXJzaW5nOlQudHJhbnNpdGlvbmFsKFQuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6VC50cmFuc2l0aW9uYWwoVC5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOlQudHJhbnNpdGlvbmFsKFQuYm9vbGVhbil9LCExKSxyIT1udWxsJiYobi5pc0Z1bmN0aW9uKHIpP3QucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOnJ9OnlBLmFzc2VydE9wdGlvbnMocix7ZW5jb2RlOlQuZnVuY3Rpb24sc2VyaWFsaXplOlQuZnVuY3Rpb259LCEwKSksdC5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/dC5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOnQuYWxsb3dBYnNvbHV0ZVVybHM9ITApLHlBLmFzc2VydE9wdGlvbnModCx7YmFzZVVybDpULnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpULnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSx0Lm1ldGhvZD0odC5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgbz1pJiZuLm1lcmdlKGkuY29tbW9uLGlbdC5tZXRob2RdKTtpJiZuLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sUT0+e2RlbGV0ZSBpW1FdfSksdC5oZWFkZXJzPW0uY29uY2F0KG8saSk7bGV0IHM9W10sRT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oYyl7dHlwZW9mIGMucnVuV2hlbj09ImZ1bmN0aW9uIiYmYy5ydW5XaGVuKHQpPT09ITF8fChFPUUmJmMuc3luY2hyb25vdXMscy51bnNoaWZ0KGMuZnVsZmlsbGVkLGMucmVqZWN0ZWQpKX0pO2xldCBDPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oYyl7Qy5wdXNoKGMuZnVsZmlsbGVkLGMucmVqZWN0ZWQpfSk7bGV0IGcsYT0wLGY7aWYoIUUpe2xldCBRPVt2QS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKFEudW5zaGlmdCguLi5zKSxRLnB1c2goLi4uQyksZj1RLmxlbmd0aCxnPVByb21pc2UucmVzb2x2ZSh0KTthPGY7KWc9Zy50aGVuKFFbYSsrXSxRW2ErK10pO3JldHVybiBnfWY9cy5sZW5ndGg7bGV0IEI9dDtmb3IoYT0wO2E8Zjspe2xldCBRPXNbYSsrXSxjPXNbYSsrXTt0cnl7Qj1RKEIpfWNhdGNoKGwpe2MuY2FsbCh0aGlzLGwpO2JyZWFrfX10cnl7Zz12QS5jYWxsKHRoaXMsQil9Y2F0Y2goUSl7cmV0dXJuIFByb21pc2UucmVqZWN0KFEpfWZvcihhPTAsZj1DLmxlbmd0aDthPGY7KWc9Zy50aGVuKENbYSsrXSxDW2ErK10pO3JldHVybiBnfWdldFVyaShlKXtlPU0odGhpcy5kZWZhdWx0cyxlKTtsZXQgdD1kQShlLmJhc2VVUkwsZS51cmwsZS5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIGxBKHQsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKX19O24uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24oZSl7ckEucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQsSSl7cmV0dXJuIHRoaXMucmVxdWVzdChNKEl8fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOihJfHx7fSkuZGF0YX0pKX19KTtuLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KEkpe3JldHVybiBmdW5jdGlvbihpLG8scyl7cmV0dXJuIHRoaXMucmVxdWVzdChNKHN8fHt9LHttZXRob2Q6ZSxoZWFkZXJzOkk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOmksZGF0YTpvfSkpfX1yQS5wcm90b3R5cGVbZV09dCgpLHJBLnByb3RvdHlwZVtlKyJGb3JtIl09dCghMCl9KTt2YXIgaEE9ckE7dmFyIFRlPWNsYXNzIEF7Y29uc3RydWN0b3IoZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCB0O3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihpKXt0PWl9KTtsZXQgST10aGlzO3RoaXMucHJvbWlzZS50aGVuKHI9PntpZighSS5fbGlzdGVuZXJzKXJldHVybjtsZXQgaT1JLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7aS0tID4wOylJLl9saXN0ZW5lcnNbaV0ocik7SS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1yPT57bGV0IGksbz1uZXcgUHJvbWlzZShzPT57SS5zdWJzY3JpYmUocyksaT1zfSkudGhlbihyKTtyZXR1cm4gby5jYW5jZWw9ZnVuY3Rpb24oKXtJLnVuc3Vic2NyaWJlKGkpfSxvfSxlKGZ1bmN0aW9uKGksbyxzKXtJLnJlYXNvbnx8KEkucmVhc29uPW5ldyBIKGksbyxzKSx0KEkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKGUpe2lmKHRoaXMucmVhc29uKXtlKHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19dW5zdWJzY3JpYmUoZSl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IHQ9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoZSk7dCE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKHQsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCBlPW5ldyBBYm9ydENvbnRyb2xsZXIsdD1JPT57ZS5hYm9ydChJKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKHQpLGUuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKHQpLGUuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgZTtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24ocil7ZT1yfSksY2FuY2VsOmV9fX0sWnQ9VGU7ZnVuY3Rpb24gcWUoQSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBBLmFwcGx5KG51bGwsdCl9fWZ1bmN0aW9uIHhlKEEpe3JldHVybiBuLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBPZT17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoT2UpLmZvckVhY2goKFtBLGVdKT0+e09lW2VdPUF9KTt2YXIgVnQ9T2U7ZnVuY3Rpb24genQoQSl7bGV0IGU9bmV3IGhBKEEpLHQ9Q0EoaEEucHJvdG90eXBlLnJlcXVlc3QsZSk7cmV0dXJuIG4uZXh0ZW5kKHQsaEEucHJvdG90eXBlLGUse2FsbE93bktleXM6ITB9KSxuLmV4dGVuZCh0LGUsbnVsbCx7YWxsT3duS2V5czohMH0pLHQuY3JlYXRlPWZ1bmN0aW9uKHIpe3JldHVybiB6dChNKEEscikpfSx0fXZhciBEPXp0KGVBKTtELkF4aW9zPWhBO0QuQ2FuY2VsZWRFcnJvcj1IO0QuQ2FuY2VsVG9rZW49WnQ7RC5pc0NhbmNlbD11QTtELlZFUlNJT049WkE7RC50b0Zvcm1EYXRhPUs7RC5BeGlvc0Vycm9yPXU7RC5DYW5jZWw9RC5DYW5jZWxlZEVycm9yO0QuYWxsPWZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChlKX07RC5zcHJlYWQ9cWU7RC5pc0F4aW9zRXJyb3I9eGU7RC5tZXJnZUNvbmZpZz1NO0QuQXhpb3NIZWFkZXJzPW07RC5mb3JtVG9KU09OPUE9Pk9BKG4uaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7RC5nZXRBZGFwdGVyPWpBLmdldEFkYXB0ZXI7RC5IdHRwU3RhdHVzQ29kZT1WdDtELmRlZmF1bHQ9RDt2YXIgb0E9RDt2YXJ7QXhpb3M6RXMsQXhpb3NFcnJvcjpscyxDYW5jZWxlZEVycm9yOmNzLGlzQ2FuY2VsOmZzLENhbmNlbFRva2VuOnVzLFZFUlNJT046cHMsYWxsOmRzLENhbmNlbDp5cyxpc0F4aW9zRXJyb3I6aHMsc3ByZWFkOkRzLHRvRm9ybURhdGE6d3MsQXhpb3NIZWFkZXJzOm1zLEh0dHBTdGF0dXNDb2RlOlNzLGZvcm1Ub0pTT046RnMsZ2V0QWRhcHRlcjpScyxtZXJnZUNvbmZpZzprc309b0E7YXN5bmMgZnVuY3Rpb24gX3IoQSxlKXtsZXQgdD1BLEk9bnVsbDtpZih0PT1udWxsKUk9bmV3IFdvcmtlcihuZXcgVVJMKCIuL3dlYi13b3JrZXJzL2l0ay13YXNtLXBpcGVsaW5lLndvcmtlci5qcyIsaW1wb3J0Lm1ldGEudXJsKSx7dHlwZToibW9kdWxlIn0pO2Vsc2UgaWYodC5zdGFydHNXaXRoKCJodHRwIikpe2xldCByPWF3YWl0IG9BLmdldCh0LHtyZXNwb25zZVR5cGU6ImJsb2IiLHBhcmFtczplfSksaT1VUkwuY3JlYXRlT2JqZWN0VVJMKHIuZGF0YSk7ST1uZXcgV29ya2VyKGkse3R5cGU6Im1vZHVsZSJ9KX1lbHNlIEk9bmV3IFdvcmtlcih0LHt0eXBlOiJtb2R1bGUifSk7cmV0dXJuIEl9dmFyIERBPV9yO2Z1bmN0aW9uIFh0KEEpe2xldCBlPWZlKEEpLHQ9QTtyZXR1cm4gdC50ZXJtaW5hdGVkPSExLHQud29ya2VyUHJveHk9ZSx0Lm9yaWdpbmFsVGVybWluYXRlPXQudGVybWluYXRlLHQudGVybWluYXRlPSgpPT57dC50ZXJtaW5hdGVkPSEwLHQud29ya2VyUHJveHlbY2VdKCksdC5vcmlnaW5hbFRlcm1pbmF0ZSgpfSx7d29ya2VyUHJveHk6ZSx3b3JrZXI6dH19YXN5bmMgZnVuY3Rpb24gJHIoQSxlLHQpe2xldCBJO2lmKEEhPW51bGwpe2xldCBpPUE7cmV0dXJuIGkud29ya2VyUHJveHkhPT12b2lkIDA/KEk9aS53b3JrZXJQcm94eSx7d29ya2VyUHJveHk6SSx3b3JrZXI6aX0pOlh0KEEpfWxldCByPWF3YWl0IERBKGUsdCk7cmV0dXJuIFh0KHIpfXZhciBfdD0kcjt2YXIgd0EscSxLZSxQZT17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe0tlPW5ldyBVaW50OEFycmF5KHEuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSx6QT1jbGFzc3tpbml0KCl7cmV0dXJuIHdBfHwodHlwZW9mIGZldGNoPCJ1Ij93QT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiKyR0KS50aGVuKGU9PmUuYXJyYXlCdWZmZXIoKSkudGhlbihlPT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShlLFBlKSkudGhlbih0aGlzLl9pbml0KTp3QT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbSgkdCwiYmFzZTY0IiksUGUpLnRoZW4odGhpcy5faW5pdCksd0EpfV9pbml0KGUpe3E9ZS5pbnN0YW5jZSxQZS5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUoZSx0PTApe2lmKCFxKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCBJPWUuYnl0ZUxlbmd0aCxyPXEuZXhwb3J0cy5tYWxsb2MoSSk7S2Uuc2V0KGUsciksdD10fHxOdW1iZXIocS5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUocixJKSk7bGV0IGk9cS5leHBvcnRzLm1hbGxvYyh0KSxvPXEuZXhwb3J0cy5aU1REX2RlY29tcHJlc3MoaSx0LHIsSSkscz1LZS5zbGljZShpLGkrbyk7cmV0dXJuIHEuZXhwb3J0cy5mcmVlKHIpLHEuZXhwb3J0cy5mcmVlKGkpLHN9fSwkdD0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciBBST1uZXcgekEsZUk9ITE7YXN5bmMgZnVuY3Rpb24gQW8oQSxlLHQpe2xldCBJPSJ1bmtub3duIjt0eXBlb2YgQSE9InN0cmluZyI/ST1BLmhyZWY6QS5zdGFydHNXaXRoKCJodHRwIik/ST1BOkk9dHlwZW9mIGU8InUiP2Ake2V9LyR7QX1gOkEsSS5lbmRzV2l0aCgiLmpzIikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtMykpLEkuZW5kc1dpdGgoIi53YXNtIikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtNSkpLEkuZW5kc1dpdGgoIi53YXNtLnpzdCIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTkpKTtsZXQgcj1gJHtJfS53YXNtYCxpPWF3YWl0IG9BLmdldChgJHtyfS56c3RgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIixwYXJhbXM6dH0pO2VJfHwoYXdhaXQgQUkuaW5pdCgpLGVJPSEwKTtsZXQgcz1BSS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoaS5kYXRhKSkuYnVmZmVyO3JldHVybihhd2FpdCBpbXBvcnQoYCR7SX0uanNgKSkuZGVmYXVsdCh7d2FzbUJpbmFyeTpzfSl9dmFyIHRJPUFvO3ZhciBJST1hc3luYygpPT5XZWJBc3NlbWJseS52YWxpZGF0ZShuZXcgVWludDhBcnJheShbMCw5NywxMTUsMTA5LDEsMCwwLDAsMSw1LDEsOTYsMCwxLDEyMywzLDIsMSwwLDEwLDEwLDEsOCwwLDY1LDAsMjUzLDE1LDI1Myw5OCwxMV0pKTt2YXIgaUk9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI9PSJmdW5jdGlvbiIsckk9bmV3IFRleHRFbmNvZGVyLG9JPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKTtmdW5jdGlvbiBlbyhBLGUpe2xldCB0PXtmbGFnczoiciIsZW5jb2Rpbmc6ImJpbmFyeSJ9LEk9QS5mc19vcGVuKGUsdC5mbGFncyksaT1BLmZzX3N0YXQoZSkuc2l6ZSxvPW51bGw7aUk/bz1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoaSk6bz1uZXcgQXJyYXlCdWZmZXIoaSk7bGV0IHM9bmV3IFVpbnQ4QXJyYXkobyk7cmV0dXJuIEEuZnNfcmVhZChJLHMsMCxpLDApLEEuZnNfY2xvc2UoSSksc31mdW5jdGlvbiBnSShBLGUsdCl7bGV0IEk9bnVsbDtpST9JPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcih0KTpJPW5ldyBBcnJheUJ1ZmZlcih0KTtsZXQgcj1uZXcgVWludDhBcnJheShJKSxpPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixlLHQpO3JldHVybiByLnNldChpKSxyfWZ1bmN0aW9uIHcoQSxlLHQsSSl7bGV0IHI9MDtyZXR1cm4gZSE9PW51bGwmJihyPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2FycmF5X2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsSSxlLmJ1ZmZlci5ieXRlTGVuZ3RoXSksQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KGUuYnVmZmVyKSxyKSkscn1mdW5jdGlvbiBXKEEsZSx0KXtsZXQgST1KU09OLnN0cmluZ2lmeShlKSxyPUEubGVuZ3RoQnl0ZXNVVEY4KEkpKzEsaT1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQscl0pO0Euc3RyaW5nVG9VVEY4KEksaSxyKX1mdW5jdGlvbiBGKEEsZSx0LEkpe2xldCByPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsdF0pLGk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksbz1nSShBLHIsaSk7cmV0dXJuIGsoSSxvLmJ1ZmZlcil9ZnVuY3Rpb24gbUEoQSxlKXtsZXQgdD1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLGVdKSxJPUEuVVRGOFRvU3RyaW5nKHQpO3JldHVybiBKU09OLnBhcnNlKEkpfWZ1bmN0aW9uIHRvKEEsZSx0LEkpe0khPW51bGwmJkkubGVuZ3RoPjAmJkkuZm9yRWFjaChmdW5jdGlvbihDLGcpe3N3aXRjaChDLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgYT1ySS5lbmNvZGUoQy5kYXRhLmRhdGEpLGY9dyhBLGEsZywwKSxCPXtzaXplOmEuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07VyhBLEIsZyk7YnJlYWt9Y2FzZSBkLkpzb25Db21wYXRpYmxlOntsZXQgYT1ySS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoQy5kYXRhKSksZj13KEEsYSxnLDApLEI9e3NpemU6YS5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtXKEEsQixnKTticmVha31jYXNlIGQuQmluYXJ5U3RyZWFtOntsZXQgYT1DLmRhdGEuZGF0YSxmPXcoQSxhLGcsMCksQj17c2l6ZTphLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O1coQSxCLGcpO2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoQy5kYXRhLnBhdGgsQy5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgZC5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShDLmRhdGEucGF0aCxDLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkltYWdlOntsZXQgYT1DLmRhdGEsZj13KEEsYS5kYXRhLGcsMCksQj13KEEsYS5kaXJlY3Rpb24sZywxKSxRPXR5cGVvZiBhLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKGEubWV0YWRhdGEuZW50cmllcygpKTpbXSxjPXtpbWFnZVR5cGU6YS5pbWFnZVR5cGUsbmFtZTphLm5hbWUsb3JpZ2luOmEub3JpZ2luLHNwYWNpbmc6YS5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxzaXplOmEuc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLG1ldGFkYXRhOlF9O1coQSxjLGcpO2JyZWFrfWNhc2UgZC5NZXNoOntsZXQgYT1DLmRhdGEsZj13KEEsYS5wb2ludHMsZywwKSxCPXcoQSxhLmNlbGxzLGcsMSksUT13KEEsYS5wb2ludERhdGEsZywyKSxjPXcoQSxhLmNlbGxEYXRhLGcsMyksbD17bWVzaFR5cGU6YS5tZXNoVHlwZSxuYW1lOmEubmFtZSxudW1iZXJPZlBvaW50czphLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCxudW1iZXJPZkNlbGxzOmEubnVtYmVyT2ZDZWxscyxjZWxsczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxjZWxsQnVmZmVyU2l6ZTphLmNlbGxCdWZmZXJTaXplLG51bWJlck9mUG9pbnRQaXhlbHM6YS5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxudW1iZXJPZkNlbGxQaXhlbHM6YS5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWB9O1coQSxsLGcpO2JyZWFrfWNhc2UgZC5Qb2ludFNldDp7bGV0IGE9Qy5kYXRhLGY9dyhBLGEucG9pbnRzLGcsMCksQj13KEEsYS5wb2ludERhdGEsZywxKSxRPXtwb2ludFNldFR5cGU6YS5wb2ludFNldFR5cGUsbmFtZTphLm5hbWUsbnVtYmVyT2ZQb2ludHM6YS5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsbnVtYmVyT2ZQb2ludFBpeGVsczphLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gfTtXKEEsUSxnKTticmVha31jYXNlIGQuVHJhbnNmb3JtTGlzdDp7bGV0IGE9Qy5kYXRhLGY9W10sQj0wO2EuZm9yRWFjaChRPT57bGV0IGM9IiIsbD0iIjtRLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoYz1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3coQSxRLmZpeGVkUGFyYW1ldGVycyxnLEIpfWAsQis9MSxsPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEucGFyYW1ldGVycyxnLEIpfWAsQis9MSk7bGV0IHA9e3RyYW5zZm9ybVR5cGU6US50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOlEubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOlEubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6US5uYW1lLGlucHV0U3BhY2VOYW1lOlEuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOlEub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6bCxmaXhlZFBhcmFtZXRlcnM6Y307Zi5wdXNoKHApfSksVyhBLGYsZyk7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgYT1DLmRhdGEsZj13KEEsYS5wb2ludHMsZywwKSxCPXcoQSxhLnZlcnRpY2VzLGcsMSksUT13KEEsYS5saW5lcyxnLDIpLGM9dyhBLGEucG9seWdvbnMsZywzKSxsPXcoQSxhLnRyaWFuZ2xlU3RyaXBzLGcsNCkscD13KEEsYS5wb2ludERhdGEsZyw1KSxSPXcoQSxhLnBvaW50RGF0YSxnLDYpLGg9e3BvbHlEYXRhVHlwZTphLnBvbHlEYXRhVHlwZSxuYW1lOmEubmFtZSxudW1iZXJPZlBvaW50czphLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCx2ZXJ0aWNlc0J1ZmZlclNpemU6YS52ZXJ0aWNlc0J1ZmZlclNpemUsdmVydGljZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsbGluZXNCdWZmZXJTaXplOmEubGluZXNCdWZmZXJTaXplLGxpbmVzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLHBvbHlnb25zQnVmZmVyU2l6ZTphLnBvbHlnb25zQnVmZmVyU2l6ZSxwb2x5Z29uczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCx0cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU6YS50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemUsdHJpYW5nbGVTdHJpcHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZQb2ludFBpeGVsczphLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7cH1gLG51bWJlck9mQ2VsbFBpeGVsczphLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1J9YH07VyhBLGgsZyk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IHI9QS5zdGFja1NhdmUoKSxpPTA7dHJ5e2k9QS5jYWxsTWFpbihlLnNsaWNlKCkpfWNhdGNoKEMpe3Rocm93IHR5cGVvZiBDPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKEMpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLEN9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShyKX1sZXQgbz1BLmdldE1vZHVsZVN0ZG91dCgpLHM9QS5nZXRNb2R1bGVTdGRlcnIoKSxFPVtdO3JldHVybiB0IT1udWxsJiZ0Lmxlbmd0aD4wJiZpPT09MCYmdC5mb3JFYWNoKGZ1bmN0aW9uKEMsZyl7bGV0IGE9bnVsbDtzd2l0Y2goQy50eXBlKXtjYXNlIGQuVGV4dFN0cmVhbTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxnLDBdKSxjPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixCLFEpO2E9e2RhdGE6b0kuZGVjb2RlKGMpfTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGcsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZywwXSksYz1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQixRKTthPUpTT04ucGFyc2Uob0kuZGVjb2RlKGMpKTticmVha31jYXNlIGQuQmluYXJ5U3RyZWFtOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxnLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGcsMF0pO2E9e2RhdGE6Z0koQSxCLFEpfTticmVha31jYXNlIGQuVGV4dEZpbGU6e2E9e3BhdGg6Qy5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKEMuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e2E9e3BhdGg6Qy5kYXRhLnBhdGgsZGF0YTplbyhBLEMuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSBkLkltYWdlOntsZXQgQj1tQShBLGcpO0IuZGF0YT1GKEEsZywwLEIuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLEIuZGlyZWN0aW9uPUYoQSxnLDEsTi5GbG9hdDY0KSxCLm1ldGFkYXRhPW5ldyBNYXAoQi5tZXRhZGF0YSksYT1CO2JyZWFrfWNhc2UgZC5NZXNoOntsZXQgQj1tQShBLGcpO0IubnVtYmVyT2ZQb2ludHM+MD9CLnBvaW50cz1GKEEsZywwLEIubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpCLnBvaW50cz1rKEIubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxzPjA/Qi5jZWxscz1GKEEsZywxLEIubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOkIuY2VsbHM9ayhCLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9RihBLGcsMixCLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1rKEIubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mQ2VsbFBpeGVscz4wP0IuY2VsbERhdGE9RihBLGcsMyxCLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkIuY2VsbERhdGE9ayhCLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhPUI7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgQj1tQShBLGcpO0IubnVtYmVyT2ZQb2ludHM+MD9CLnBvaW50cz1GKEEsZywwLEIucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qi5wb2ludHM9ayhCLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1GKEEsZywxLEIucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1rKEIucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYT1CO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgQj1tQShBLGcpLFE9MDtCLmZvckVhY2goKGMsbCk9PntjLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoYy5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYoQltsXS5maXhlZFBhcmFtZXRlcnM9RihBLGcsUSxOLkZsb2F0NjQpKSxRKz0xLGMubnVtYmVyT2ZQYXJhbWV0ZXJzPjAmJihCW2xdLnBhcmFtZXRlcnM9RihBLGcsUSxjLnRyYW5zZm9ybVR5cGUucGFyYW1ldGVyc1ZhbHVlVHlwZSkpLFErPTEpfSksYT1CO2JyZWFrfWNhc2UgZC5Qb2x5RGF0YTp7bGV0IEI9bUEoQSxnKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9RihBLGcsMCxOLkZsb2F0MzIpOkIucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXksQi52ZXJ0aWNlc0J1ZmZlclNpemU+MD9CLnZlcnRpY2VzPUYoQSxnLDEsUy5VSW50MzIpOkIudmVydGljZXM9bmV3IFVpbnQzMkFycmF5LEIubGluZXNCdWZmZXJTaXplPjA/Qi5saW5lcz1GKEEsZywyLFMuVUludDMyKTpCLmxpbmVzPW5ldyBVaW50MzJBcnJheSxCLnBvbHlnb25zQnVmZmVyU2l6ZT4wP0IucG9seWdvbnM9RihBLGcsMyxTLlVJbnQzMik6Qi5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXksQi50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9CLnRyaWFuZ2xlU3RyaXBzPUYoQSxnLDQsUy5VSW50MzIpOkIudHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPUYoQSxnLDUsQi5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkIucG9pbnREYXRhPWsoQi5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mQ2VsbFBpeGVscz4wP0IuY2VsbERhdGE9RihBLGcsNixCLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpCLmNlbGxEYXRhPWsoQi5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGE9QjticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBmPXt0eXBlOkMudHlwZSxkYXRhOmF9O0UucHVzaChmKX0pLHtyZXR1cm5WYWx1ZTppLHN0ZG91dDpvLHN0ZGVycjpzLG91dHB1dHM6RX19dmFyIG5JPXRvO3ZhciBJbz10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gcm8oQSxlKXtpZihBPT1udWxsKXJldHVybltdO2xldCB0PVtdO2ZvcihsZXQgST0wO0k8QS5sZW5ndGg7SSsrKXtsZXQgcj1vbyhBW0ldLGUpO3IhPT1udWxsJiZ0LnB1c2gocil9cmV0dXJuIHR9ZnVuY3Rpb24gb28oQSxlKXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCB0PW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP3Q9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYodD1BKSxJbyYmdCBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6ZT90OnQuc2xpY2UoMCl9dmFyIHNJPXJvO2Z1bmN0aW9uIGlvKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciBhST1pbztmdW5jdGlvbiBnbyhBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgQ0k9Z287ZnVuY3Rpb24gbm8oQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIEJJPW5vO3ZhciBzbztmdW5jdGlvbiBYQSgpe3JldHVybiBzb312YXIgYW87ZnVuY3Rpb24gUUkoKXtyZXR1cm4gYW99dmFyIENvO2Z1bmN0aW9uIF9BKCl7cmV0dXJuIENvfXZhciBXZT1uZXcgTWFwO2Z1bmN0aW9uIEJvKCl7bGV0IEE9X0EoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1udWxsKSxBfWZ1bmN0aW9uIEVJKCl7bGV0IEE9WEEoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1uZXcgVVJMKCIvcGlwZWxpbmVzIixkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pLmhyZWYpLEF9ZnVuY3Rpb24gJEEoKXtsZXQgQT1RSSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPXt9KSxBfWFzeW5jIGZ1bmN0aW9uIFFvKEEsZSx0KXtsZXQgST1BLHI9QTtpZih0eXBlb2YgQSE9InN0cmluZyImJihJPW5ldyBVUkwoQS5ocmVmKSxyPUkuaHJlZiksV2UuaGFzKHIpKXJldHVybiBXZS5nZXQocik7e2xldCBpPWF3YWl0IHRJKEEsZT8udG9TdHJpbmcoKT8/RUkoKSx0Pz8kQSgpKTtyZXR1cm4gV2Uuc2V0KHIsaSksaX19YXN5bmMgZnVuY3Rpb24gRW8oQSxlLHQsSSxyKXtpZighYXdhaXQgSUkoKSl7bGV0IGw9IldlYkFzc2VtYmx5IFNJTUQgc3VwcG9ydCBpcyByZXF1aXJlZCAtLSBwbGVhc2UgdXBkYXRlIHlvdXIgYnJvd3Nlci4iO3Rocm93IGFsZXJ0KGwpLG5ldyBFcnJvcihsKX1sZXQgaT1yPy53ZWJXb3JrZXI/P251bGw7aWYoaT09PSExKXtsZXQgbD1hd2FpdCBRbyhBLnRvU3RyaW5nKCkscj8ucGlwZWxpbmVCYXNlVXJsLHI/LnBpcGVsaW5lUXVlcnlQYXJhbXM/PyRBKCkpO3JldHVybiBuSShsLGUsdCxJKX1sZXQgbz1pLHM9cj8ucGlwZWxpbmVXb3JrZXJVcmw/P0JvKCksRT10eXBlb2YgcyE9InN0cmluZyImJnR5cGVvZiBzPy5ocmVmPCJ1Ij9zLmhyZWY6cyx7d29ya2VyUHJveHk6Qyx3b3JrZXI6Z309YXdhaXQgX3QobyxFLHI/LnBpcGVsaW5lUXVlcnlQYXJhbXM/PyRBKCkpO289ZztsZXQgYT1bXTtJIT1udWxsJiZJLmxlbmd0aD4wJiZJLmZvckVhY2goZnVuY3Rpb24obCl7aWYobC50eXBlPT09ZC5CaW5hcnlTdHJlYW0pe2xldCBwPWwuZGF0YS5kYXRhO2EucHVzaChwKX1lbHNlIGlmKGwudHlwZT09PWQuQmluYXJ5RmlsZSl7bGV0IHA9bC5kYXRhLmRhdGE7YS5wdXNoKHApfWVsc2UgaWYobC50eXBlPT09ZC5JbWFnZSl7bGV0IHA9bC5kYXRhO3AuZGF0YSE9PW51bGwmJmEucHVzaCguLi5hSShwKSl9ZWxzZSBpZihsLnR5cGU9PT1kLk1lc2gpe2xldCBwPWwuZGF0YTthLnB1c2goLi4uQ0kocCkpfWVsc2UgaWYobC50eXBlPT09ZC5Qb2x5RGF0YSl7bGV0IHA9bC5kYXRhO2EucHVzaCguLi5CSShwKSl9fSk7bGV0IGY9cj8ucGlwZWxpbmVCYXNlVXJsPz9FSSgpLEI9dHlwZW9mIGYhPSJzdHJpbmciJiZ0eXBlb2YgZj8uaHJlZjwidSI/Zi5ocmVmOmYsUT1JIT1udWxsP3VlKEksc0koYSxyPy5ub0NvcHkpKTpudWxsLGM9YXdhaXQgQy5ydW5QaXBlbGluZShBLnRvU3RyaW5nKCksQixlLHQsUSxyPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz8kQSgpKTtyZXR1cm57cmV0dXJuVmFsdWU6Yy5yZXR1cm5WYWx1ZSxzdGRvdXQ6Yy5zdGRvdXQsc3RkZXJyOmMuc3RkZXJyLG91dHB1dHM6Yy5vdXRwdXRzLHdlYldvcmtlcjpvfX12YXIgU0E9RW87dmFyIGxvPW51bGw7ZnVuY3Rpb24gbEkoKXtyZXR1cm4gbG99dmFyIGplLGNvPWBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL0BpdGstd2FzbS9jb21wcmVzcy1zdHJpbmdpZnlAJHtyZX0vZGlzdC9waXBlbGluZXNgO2Z1bmN0aW9uIHlhKEEpe2plPUF9ZnVuY3Rpb24gQWUoKXtpZih0eXBlb2YgamU8InUiKXJldHVybiBqZTtsZXQgQT1YQSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpjb312YXIgdmUsZm89bnVsbDtmdW5jdGlvbiBjSShBKXt2ZT1BfWZ1bmN0aW9uIGlBKCl7aWYodHlwZW9mIHZlPCJ1IilyZXR1cm4gdmU7bGV0IEE9X0EoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6Zm99dmFyIGdBPW51bGw7YXN5bmMgZnVuY3Rpb24gZkkoKXtsZXQgQT1pQSgpLGU9dHlwZW9mIEEhPSJzdHJpbmciJiZ0eXBlb2YgQT8uaHJlZjwidSI/QS5ocmVmOkE7Z0E9YXdhaXQgREEoZSl9ZnVuY3Rpb24gUmEoQSl7Z0E9QX1hc3luYyBmdW5jdGlvbiBlZSgpe2lmKGdBIT09bnVsbClyZXR1cm4gZ0EudGVybWluYXRlZCYmYXdhaXQgZkkoKSxnQTtsZXQgQT1sSSgpO3JldHVybiBBIT09bnVsbD9BOihhd2FpdCBmSSgpLGdBKX1hc3luYyBmdW5jdGlvbiB1byhBLGU9e30pe2xldCB0PVt7dHlwZTpkLkJpbmFyeVN0cmVhbX1dLEk9W3t0eXBlOmQuQmluYXJ5U3RyZWFtLGRhdGE6e2RhdGE6QX19XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLnN0cmluZ2lmeSYmZS5zdHJpbmdpZnkmJnIucHVzaCgiLS1zdHJpbmdpZnkiKSxlLmNvbXByZXNzaW9uTGV2ZWwmJnIucHVzaCgiLS1jb21wcmVzc2lvbi1sZXZlbCIsZS5jb21wcmVzc2lvbkxldmVsLnRvU3RyaW5nKCkpLGUuZGF0YVVybFByZWZpeCYmci5wdXNoKCItLWRhdGEtdXJsLXByZWZpeCIsZS5kYXRhVXJsUHJlZml4LnRvU3RyaW5nKCkpO2xldCBzPSJjb21wcmVzcy1zdHJpbmdpZnkiLEU9ZT8ud2ViV29ya2VyO0U9PT12b2lkIDAmJihFPWF3YWl0IGVlKCkpO2xldHt3ZWJXb3JrZXI6QyxyZXR1cm5WYWx1ZTpnLHN0ZGVycjphLG91dHB1dHM6Zn09YXdhaXQgU0EocyxyLHQsSSx7cGlwZWxpbmVCYXNlVXJsOkFlKCkscGlwZWxpbmVXb3JrZXJVcmw6aUEoKSx3ZWJXb3JrZXI6RSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoZyE9PTAmJmEhPT0iIil0aHJvdyBuZXcgRXJyb3IoYSk7cmV0dXJue3dlYldvcmtlcjpDLG91dHB1dDooZlswXT8uZGF0YSkuZGF0YX19dmFyIG5BPXVvO2FzeW5jIGZ1bmN0aW9uIHBvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOmQuQmluYXJ5U3RyZWFtfV0sST1be3R5cGU6ZC5CaW5hcnlTdHJlYW0sZGF0YTp7ZGF0YTpBfX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUucGFyc2VTdHJpbmcmJmUucGFyc2VTdHJpbmcmJnIucHVzaCgiLS1wYXJzZS1zdHJpbmciKTtsZXQgcz0icGFyc2Utc3RyaW5nLWRlY29tcHJlc3MiLEU9ZT8ud2ViV29ya2VyO0U9PT12b2lkIDAmJihFPWF3YWl0IGVlKCkpO2xldHt3ZWJXb3JrZXI6QyxyZXR1cm5WYWx1ZTpnLHN0ZGVycjphLG91dHB1dHM6Zn09YXdhaXQgU0EocyxyLHQsSSx7cGlwZWxpbmVCYXNlVXJsOkFlKCkscGlwZWxpbmVXb3JrZXJVcmw6aUEoKSx3ZWJXb3JrZXI6RSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoZyE9PTAmJmEhPT0iIil0aHJvdyBuZXcgRXJyb3IoYSk7cmV0dXJue3dlYldvcmtlcjpDLG91dHB1dDooZlswXT8uZGF0YSkuZGF0YX19dmFyIHNBPXBvO2FzeW5jIGZ1bmN0aW9uIHlvKEEsZT17fSl7bGV0IEk9bmV3IGdlKEEuaW1hZ2VUeXBlKTtJLm9yaWdpbj1BLm9yaWdpbixJLnNwYWNpbmc9QS5zcGFjaW5nLEkuc2l6ZT1BLnNpemUsSS5tZXRhZGF0YT1BLm1ldGFkYXRhO2xldCByPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKSxpPW5ldyBVaW50OEFycmF5KEEuZGlyZWN0aW9uLmJ1ZmZlciksbz1hd2FpdCBuQShpLHtjb21wcmVzc2lvbkxldmVsOjUsc3RyaW5naWZ5OiEwLHdlYldvcmtlcjplLndlYldvcmtlcixub0NvcHk6ZS5ub0NvcHl9KSxzPW8ud2ViV29ya2VyLEU9by5vdXRwdXQuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/by5vdXRwdXQuYnVmZmVyOm8ub3V0cHV0O2lmKEkuZGlyZWN0aW9uPXIuZGVjb2RlKEUpLEEuZGF0YT09PW51bGwpSS5kYXRhPW51bGw7ZWxzZXtsZXQgQz1uZXcgVWludDhBcnJheShBLmRhdGEuYnVmZmVyKSxnPWF3YWl0IG5BKEMse2NvbXByZXNzaW9uTGV2ZWw6NSxzdHJpbmdpZnk6ITAsd2ViV29ya2VyOnMsbm9Db3B5OmUubm9Db3B5fSksYT1nLm91dHB1dC5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9nLm91dHB1dC5idWZmZXI6Zy5vdXRwdXQ7SS5kYXRhPXIuZGVjb2RlKGEpfXJldHVybntlbmNvZGVkOkksd2ViV29ya2VyOnN9fWFzeW5jIGZ1bmN0aW9uIGhvKEEsZT17fSl7bGV0IHQ9QSxJPW5ldyBUZXh0RW5jb2RlcixyPW5ldyBVaW50OEFycmF5KEkuZW5jb2RlKEEuZGlyZWN0aW9uKSksaT1hd2FpdCBzQShyLHtwYXJzZVN0cmluZzohMCx3ZWJXb3JrZXI6ZS53ZWJXb3JrZXIsbm9Db3B5OiEwfSksbz1pLndlYldvcmtlcjtpZih0LmRpcmVjdGlvbj1uZXcgRmxvYXQ2NEFycmF5KGkub3V0cHV0LmJ1ZmZlciksIXQuZGF0YSl0LmRhdGE9bnVsbDtlbHNle2xldCBzPW5ldyBVaW50OEFycmF5KEkuZW5jb2RlKEEuZGF0YSkpLEU9YXdhaXQgc0Eocyx7cGFyc2VTdHJpbmc6ITAsd2ViV29ya2VyOm8sbm9Db3B5OiEwfSk7dC5kYXRhPWsodC5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSxFLm91dHB1dC5idWZmZXIpfXJldHVybntkZWNvZGVkOnQsd2ViV29ya2VyOm99fWFzeW5jIGZ1bmN0aW9uIERvKEEsZT17fSl7bGV0IEk9bmV3IGFlKEEubWVzaFR5cGUpO0kubmFtZT1BLm5hbWUsSS5udW1iZXJPZlBvaW50cz1BLm51bWJlck9mUG9pbnRzLEkubnVtYmVyT2ZDZWxscz1BLm51bWJlck9mQ2VsbHMsSS5udW1iZXJPZlBvaW50UGl4ZWxzPUEubnVtYmVyT2ZQb2ludFBpeGVscyxJLm51bWJlck9mQ2VsbFBpeGVscz1BLm51bWJlck9mQ2VsbFBpeGVscyxJLmNlbGxCdWZmZXJTaXplPUEuY2VsbEJ1ZmZlclNpemU7bGV0IHI9ZS53ZWJXb3JrZXIsaT1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7Zm9yKGxldCBvIG9mWyJwb2ludHMiLCJwb2ludERhdGEiLCJjZWxscyIsImNlbGxEYXRhIl0paWYoQVtvXT09PW51bGwpSVtvXT1udWxsO2Vsc2V7bGV0IHM9bmV3IFVpbnQ4QXJyYXkoQVtvXS5idWZmZXIpLEU9YXdhaXQgbkEocyx7Y29tcHJlc3Npb25MZXZlbDo1LHN0cmluZ2lmeTohMCx3ZWJXb3JrZXI6cixub0NvcHk6ZS5ub0NvcHl9KTtyPUUud2ViV29ya2VyLElbb109aS5kZWNvZGUoRS5vdXRwdXQuYnVmZmVyKX1yZXR1cm57ZW5jb2RlZDpJLHdlYldvcmtlcjpyfX1hc3luYyBmdW5jdGlvbiB3byhBLGU9e30pe2xldCB0PUEsST1uZXcgTWFwKFtbInBvaW50cyIsInBvaW50Q29tcG9uZW50VHlwZSJdLFsicG9pbnREYXRhIiwicG9pbnRQaXhlbENvbXBvbmVudFR5cGUiXSxbImNlbGxzIiwiY2VsbENvbXBvbmVudFR5cGUiXSxbImNlbGxEYXRhIiwiY2VsbFBpeGVsQ29tcG9uZW50VHlwZSJdXSkscj1uZXcgVGV4dEVuY29kZXIsaT1lLndlYldvcmtlcjtmb3IobGV0IG8gb2ZbInBvaW50cyIsInBvaW50RGF0YSIsImNlbGxzIiwiY2VsbERhdGEiXSlpZih0W29dPT09bnVsbCl0W29dPW51bGw7ZWxzZXtsZXQgcz1uZXcgVWludDhBcnJheShyLmVuY29kZSh0W29dKSksRT1hd2FpdCBzQShzLHtwYXJzZVN0cmluZzohMCx3ZWJXb3JrZXI6aSxub0NvcHk6ITB9KTtpPUUud2ViV29ya2VyLHRbb109ayh0Lm1lc2hUeXBlW0kuZ2V0KG8pXSxFLm91dHB1dC5idWZmZXIpfXJldHVybntkZWNvZGVkOnQsd2ViV29ya2VyOml9fWFzeW5jIGZ1bmN0aW9uIG1vKEEsZT17fSl7bGV0IEk9bmV3IFFlKEEucG9seURhdGFUeXBlKTtJLm5hbWU9QS5uYW1lLEkubnVtYmVyT2ZQb2ludHM9QS5udW1iZXJPZlBvaW50cyxJLnZlcnRpY2VzQnVmZmVyU2l6ZT1BLnZlcnRpY2VzQnVmZmVyU2l6ZSxJLmxpbmVzQnVmZmVyU2l6ZT1BLmxpbmVzQnVmZmVyU2l6ZSxJLnBvbHlnb25zQnVmZmVyU2l6ZT1BLnBvbHlnb25zQnVmZmVyU2l6ZSxJLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT1BLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSxJLm51bWJlck9mUG9pbnRQaXhlbHM9QS5udW1iZXJPZlBvaW50UGl4ZWxzLEkubnVtYmVyT2ZDZWxsUGl4ZWxzPUEubnVtYmVyT2ZDZWxsUGl4ZWxzO2xldCByPWUud2ViV29ya2VyLGk9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2ZvcihsZXQgbyBvZlsicG9pbnRzIiwidmVydGljZXMiLCJsaW5lcyIsInBvbHlnb25zIiwidHJpYW5nbGVTdHJpcHMiLCJwb2ludERhdGEiLCJjZWxsRGF0YSJdKWlmKEFbb109PT1udWxsKUlbb109bnVsbDtlbHNle2xldCBzPW5ldyBVaW50OEFycmF5KEFbb10uYnVmZmVyKSxFPWF3YWl0IG5BKHMse2NvbXByZXNzaW9uTGV2ZWw6NSxzdHJpbmdpZnk6ITAsd2ViV29ya2VyOnIsbm9Db3B5OmUubm9Db3B5fSk7cj1FLndlYldvcmtlcixJW29dPWkuZGVjb2RlKEUub3V0cHV0LmJ1ZmZlcil9cmV0dXJue2VuY29kZWQ6SSx3ZWJXb3JrZXI6cn19YXN5bmMgZnVuY3Rpb24gU28oQSxlPXt9KXtsZXQgdD1BLEk9bmV3IE1hcChbWyJwb2ludHMiLCJmbG9hdDMyIl0sWyJ2ZXJ0aWNlcyIsInVpbnQzMiJdLFsibGluZXMiLCJ1aW50MzIiXSxbInBvbHlnb25zIiwidWludDMyIl0sWyJ0cmlhbmdsZVN0cmlwcyIsInVpbnQzMiJdLFsicG9pbnREYXRhIix0LnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZV0sWyJjZWxsRGF0YSIsdC5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZV1dKSxyPW5ldyBUZXh0RW5jb2RlcixpPWUud2ViV29ya2VyO2ZvcihsZXQgbyBvZlsicG9pbnRzIiwidmVydGljZXMiLCJsaW5lcyIsInBvbHlnb25zIiwidHJpYW5nbGVTdHJpcHMiLCJwb2ludERhdGEiLCJjZWxsRGF0YSJdKWlmKHRbb109PT1udWxsKXRbb109bnVsbDtlbHNle2xldCBzPW5ldyBVaW50OEFycmF5KHIuZW5jb2RlKHRbb10pKSxFPWF3YWl0IHNBKHMse3BhcnNlU3RyaW5nOiEwLHdlYldvcmtlcjppLG5vQ29weTohMH0pO2k9RS53ZWJXb3JrZXIsdFtvXT1rKEkuZ2V0KG8pLEUub3V0cHV0LmJ1ZmZlcil9cmV0dXJue2RlY29kZWQ6dCx3ZWJXb3JrZXI6aX19dmFyIHVJPSdkYXRhOnRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0Zi04LHZhciBZZT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIHFlPShBLHQpPT57Zm9yKHZhciBlIGluIHQpWWUoQSxlLHtnZXQ6dFtlXSxlbnVtZXJhYmxlOiEwfSl9O3ZhciBOdD1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxNZT1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxLZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksVkE9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLG1BPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxVdD1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixPZT17Y2FuSGFuZGxlOkE9PlV0KEEpJiZBW050XSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOnQscG9ydDI6ZX09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBGQShBLHQpLFtlLFtlXV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksamUoQSl9fSxUZT17Y2FuSGFuZGxlOkE9PlV0KEEpJiZtQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCB0O3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/dD17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OnQ9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW3QsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sR3Q9bmV3IE1hcChbWyJwcm94eSIsT2VdLFsidGhyb3ciLFRlXV0pO2Z1bmN0aW9uIHhlKEEsdCl7Zm9yKGxldCBlIG9mIEEpaWYodD09PWV8fGU9PT0iKiJ8fGUgaW5zdGFuY2VvZiBSZWdFeHAmJmUudGVzdCh0KSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBGQShBLHQ9Z2xvYmFsVGhpcyxlPVsiKiJdKXt0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIEkocil7aWYoIXJ8fCFyLmRhdGEpcmV0dXJuO2lmKCF4ZShlLHIub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiBcJyR7ci5vcmlnaW59XCcgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOmcsdHlwZTpvLHBhdGg6bn09T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sci5kYXRhKSxFPShyLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKFcpLEI7dHJ5e2xldCBzPW4uc2xpY2UoMCwtMSkucmVkdWNlKChsLGEpPT5sW2FdLEEpLEM9bi5yZWR1Y2UoKGwsYSk9PmxbYV0sQSk7c3dpdGNoKG8pe2Nhc2UiR0VUIjpCPUM7YnJlYWs7Y2FzZSJTRVQiOnNbbi5zbGljZSgtMSlbMF1dPVcoci5kYXRhLnZhbHVlKSxCPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOkI9Qy5hcHBseShzLEUpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGw9bmV3IEMoLi4uRSk7Qj1YZShsKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmwscG9ydDI6YX09bmV3IE1lc3NhZ2VDaGFubmVsO0ZBKEEsYSksQj1fQShsLFtsXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjpCPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2gocyl7Qj17dmFsdWU6cyxbbUFdOjB9fVByb21pc2UucmVzb2x2ZShCKS5jYXRjaChzPT4oe3ZhbHVlOnMsW21BXTowfSkpLnRoZW4ocz0+e2xldFtDLGxdPVNBKHMpO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEMpLHtpZDpnfSksbCksbz09PSJSRUxFQVNFIiYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsSSksa3QodCksVkEgaW4gQSYmdHlwZW9mIEFbVkFdPT0iZnVuY3Rpb24iJiZBW1ZBXSgpKX0pLmNhdGNoKHM9PntsZXRbQyxsXT1TQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW21BXTowfSk7dC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQykse2lkOmd9KSxsKX0pfSksdC5zdGFydCYmdC5zdGFydCgpfWZ1bmN0aW9uIFBlKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGt0KEEpe1BlKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gamUoQSx0KXtyZXR1cm4gWEEoQSxbXSx0KX1mdW5jdGlvbiB5QShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gTHQoQSl7cmV0dXJuIF8oQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57a3QoQSl9KX12YXIgd0E9bmV3IFdlYWtNYXAscEE9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IHQ9KHdBLmdldChBKXx8MCktMTt3QS5zZXQoQSx0KSx0PT09MCYmTHQoQSl9KTtmdW5jdGlvbiBXZShBLHQpe2xldCBlPSh3QS5nZXQodCl8fDApKzE7d0Euc2V0KHQsZSkscEEmJnBBLnJlZ2lzdGVyKEEsdCxBKX1mdW5jdGlvbiBaZShBKXtwQSYmcEEudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBYQShBLHQ9W10sZT1mdW5jdGlvbigpe30pe2xldCBJPSExLHI9bmV3IFByb3h5KGUse2dldChnLG8pe2lmKHlBKEkpLG89PT1LZSlyZXR1cm4oKT0+e1plKHIpLEx0KEEpLEk9ITB9O2lmKG89PT0idGhlbiIpe2lmKHQubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+cn07bGV0IG49XyhBLHt0eXBlOiJHRVQiLHBhdGg6dC5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oVyk7cmV0dXJuIG4udGhlbi5iaW5kKG4pfXJldHVybiBYQShBLFsuLi50LG9dKX0sc2V0KGcsbyxuKXt5QShJKTtsZXRbRSxCXT1TQShuKTtyZXR1cm4gXyhBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLnQsb10ubWFwKHM9PnMudG9TdHJpbmcoKSksdmFsdWU6RX0sQikudGhlbihXKX0sYXBwbHkoZyxvLG4pe3lBKEkpO2xldCBFPXRbdC5sZW5ndGgtMV07aWYoRT09PU1lKXJldHVybiBfKEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oVyk7aWYoRT09PSJiaW5kIilyZXR1cm4gWEEoQSx0LnNsaWNlKDAsLTEpKTtsZXRbQixzXT1SdChuKTtyZXR1cm4gXyhBLHt0eXBlOiJBUFBMWSIscGF0aDp0Lm1hcChDPT5DLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpCfSxzKS50aGVuKFcpfSxjb25zdHJ1Y3QoZyxvKXt5QShJKTtsZXRbbixFXT1SdChvKTtyZXR1cm4gXyhBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6dC5tYXAoQj0+Qi50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6bn0sRSkudGhlbihXKX19KTtyZXR1cm4gV2UocixBKSxyfWZ1bmN0aW9uIFZlKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIFJ0KEEpe2xldCB0PUEubWFwKFNBKTtyZXR1cm5bdC5tYXAoZT0+ZVswXSksVmUodC5tYXAoZT0+ZVsxXSkpXX12YXIgYnQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gX0EoQSx0KXtyZXR1cm4gYnQuc2V0KEEsdCksQX1mdW5jdGlvbiBYZShBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbTnRdOiEwfSl9ZnVuY3Rpb24gU0EoQSl7Zm9yKGxldFt0LGVdb2YgR3QpaWYoZS5jYW5IYW5kbGUoQSkpe2xldFtJLHJdPWUuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTp0LHZhbHVlOkl9LHJdfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxidC5nZXQoQSl8fFtdXX1mdW5jdGlvbiBXKEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuIEd0LmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24gXyhBLHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKEk9PntsZXQgcj1fZSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gZyhvKXshby5kYXRhfHwhby5kYXRhLmlkfHxvLmRhdGEuaWQhPT1yfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixnKSxJKG8uZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6cn0sdCksZSl9KX1mdW5jdGlvbiBfZSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gb0EoQSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseSh0LGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzp6ZX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6dkF9PU9iamVjdCx7aXRlcmF0b3I6TkEsdG9TdHJpbmdUYWc6WXR9PVN5bWJvbCxVQT0oQT0+dD0+e2xldCBlPXplLmNhbGwodCk7cmV0dXJuIEFbZV18fChBW2VdPWUuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxMPUE9PihBPUEudG9Mb3dlckNhc2UoKSx0PT5VQSh0KT09PUEpLEdBPUE9PnQ9PnR5cGVvZiB0PT09QSx7aXNBcnJheTp2fT1BcnJheSx6PUdBKCJ1bmRlZmluZWQiKTtmdW5jdGlvbiBnQShBKXtyZXR1cm4gQSE9PW51bGwmJiF6KEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIXooQS5jb25zdHJ1Y3RvcikmJk4oQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIHF0PUwoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gdmUoQSl7bGV0IHQ7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz90PUFycmF5QnVmZmVyLmlzVmlldyhBKTp0PUEmJkEuYnVmZmVyJiZxdChBLmJ1ZmZlciksdH12YXIgJGU9R0EoInN0cmluZyIpLE49R0EoImZ1bmN0aW9uIiksTXQ9R0EoIm51bWJlciIpLGlBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsQUk9QT0+QT09PSEwfHxBPT09ITEsUkE9QT0+e2lmKFVBKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IHQ9dkEoQSk7cmV0dXJuKHQ9PT1udWxsfHx0PT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpPT09bnVsbCkmJiEoWXQgaW4gQSkmJiEoTkEgaW4gQSl9LHRJPUE9PntpZighaUEoQSl8fGdBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LGVJPUwoIkRhdGUiKSxJST1MKCJGaWxlIiksckk9TCgiQmxvYiIpLG9JPUwoIkZpbGVMaXN0IiksZ0k9QT0+aUEoQSkmJk4oQS5waXBlKSxpST1BPT57bGV0IHQ7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8TihBLmFwcGVuZCkmJigodD1VQShBKSk9PT0iZm9ybWRhdGEifHx0PT09Im9iamVjdCImJk4oQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sc0k9TCgiVVJMU2VhcmNoUGFyYW1zIiksW25JLENJLEJJLGFJXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChMKSxRST1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZywiIik7ZnVuY3Rpb24gc0EoQSx0LHthbGxPd25LZXlzOmU9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgSSxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSx2KEEpKWZvcihJPTAscj1BLmxlbmd0aDtJPHI7SSsrKXQuY2FsbChudWxsLEFbSV0sSSxBKTtlbHNle2lmKGdBKEEpKXJldHVybjtsZXQgZz1lP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLG89Zy5sZW5ndGgsbjtmb3IoST0wO0k8bztJKyspbj1nW0ldLHQuY2FsbChudWxsLEFbbl0sbixBKX19ZnVuY3Rpb24gS3QoQSx0KXtpZihnQShBKSlyZXR1cm4gbnVsbDt0PXQudG9Mb3dlckNhc2UoKTtsZXQgZT1PYmplY3Qua2V5cyhBKSxJPWUubGVuZ3RoLHI7Zm9yKDtJLS0gPjA7KWlmKHI9ZVtJXSx0PT09ci50b0xvd2VyQ2FzZSgpKXJldHVybiByO3JldHVybiBudWxsfXZhciBaPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsT3Q9QT0+IXooQSkmJkEhPT1aO2Z1bmN0aW9uIHpBKCl7bGV0e2Nhc2VsZXNzOkEsc2tpcFVuZGVmaW5lZDp0fT1PdCh0aGlzKSYmdGhpc3x8e30sZT17fSxJPShyLGcpPT57bGV0IG89QSYmS3QoZSxnKXx8ZztSQShlW29dKSYmUkEocik/ZVtvXT16QShlW29dLHIpOlJBKHIpP2Vbb109ekEoe30scik6dihyKT9lW29dPXIuc2xpY2UoKTooIXR8fCF6KHIpKSYmKGVbb109cil9O2ZvcihsZXQgcj0wLGc9YXJndW1lbnRzLmxlbmd0aDtyPGc7cisrKWFyZ3VtZW50c1tyXSYmc0EoYXJndW1lbnRzW3JdLEkpO3JldHVybiBlfXZhciBFST0oQSx0LGUse2FsbE93bktleXM6SX09e30pPT4oc0EodCwocixnKT0+e2UmJk4ocik/QVtnXT1vQShyLGUpOkFbZ109cn0se2FsbE93bktleXM6SX0pLEEpLGNJPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksZkk9KEEsdCxlLEkpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSxJKSxBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse3ZhbHVlOnQucHJvdG90eXBlfSksZSYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSxlKX0sbEk9KEEsdCxlLEkpPT57bGV0IHIsZyxvLG49e307aWYodD10fHx7fSxBPT1udWxsKXJldHVybiB0O2Rve2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLGc9ci5sZW5ndGg7Zy0tID4wOylvPXJbZ10sKCFJfHxJKG8sQSx0KSkmJiFuW29dJiYodFtvXT1BW29dLG5bb109ITApO0E9ZSE9PSExJiZ2QShBKX13aGlsZShBJiYoIWV8fGUoQSx0KSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gdH0sdUk9KEEsdCxlKT0+e0E9U3RyaW5nKEEpLChlPT09dm9pZCAwfHxlPkEubGVuZ3RoKSYmKGU9QS5sZW5ndGgpLGUtPXQubGVuZ3RoO2xldCBJPUEuaW5kZXhPZih0LGUpO3JldHVybiBJIT09LTEmJkk9PT1lfSxkST1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYodihBKSlyZXR1cm4gQTtsZXQgdD1BLmxlbmd0aDtpZighTXQodCkpcmV0dXJuIG51bGw7bGV0IGU9bmV3IEFycmF5KHQpO2Zvcig7dC0tID4wOyllW3RdPUFbdF07cmV0dXJuIGV9LERJPShBPT50PT5BJiZ0IGluc3RhbmNlb2YgQSkodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZ2QShVaW50OEFycmF5KSksaEk9KEEsdCk9PntsZXQgST0oQSYmQVtOQV0pLmNhbGwoQSkscjtmb3IoOyhyPUkubmV4dCgpKSYmIXIuZG9uZTspe2xldCBnPXIudmFsdWU7dC5jYWxsKEEsZ1swXSxnWzFdKX19LHlJPShBLHQpPT57bGV0IGUsST1bXTtmb3IoOyhlPUEuZXhlYyh0KSkhPT1udWxsOylJLnB1c2goZSk7cmV0dXJuIEl9LG1JPUwoIkhUTUxGb3JtRWxlbWVudCIpLHdJPUE9PkEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9cXHNdKFthLXpcXGRdKShcXHcqKS9nLGZ1bmN0aW9uKGUsSSxyKXtyZXR1cm4gSS50b1VwcGVyQ2FzZSgpK3J9KSxIdD0oKHtoYXNPd25Qcm9wZXJ0eTpBfSk9Pih0LGUpPT5BLmNhbGwodCxlKSkoT2JqZWN0LnByb3RvdHlwZSkscEk9TCgiUmVnRXhwIiksVHQ9KEEsdCk9PntsZXQgZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhBKSxJPXt9O3NBKGUsKHIsZyk9PntsZXQgbzsobz10KHIsZyxBKSkhPT0hMSYmKElbZ109b3x8cil9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBLEkpfSxTST1BPT57VHQoQSwodCxlKT0+e2lmKE4oQSkmJlsiYXJndW1lbnRzIiwiY2FsbGVyIiwiY2FsbGVlIl0uaW5kZXhPZihlKSE9PS0xKXJldHVybiExO2xldCBJPUFbZV07aWYoTihJKSl7aWYodC5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiB0KXt0LndyaXRhYmxlPSExO3JldHVybn10LnNldHx8KHQuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kIFwnIitlKyJcJyIpfSl9fSl9LEZJPShBLHQpPT57bGV0IGU9e30sST1yPT57ci5mb3JFYWNoKGc9PntlW2ddPSEwfSl9O3JldHVybiB2KEEpP0koQSk6SShTdHJpbmcoQSkuc3BsaXQodCkpLGV9LFJJPSgpPT57fSxOST0oQSx0KT0+QSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKEE9K0EpP0E6dDtmdW5jdGlvbiBVSShBKXtyZXR1cm4hIShBJiZOKEEuYXBwZW5kKSYmQVtZdF09PT0iRm9ybURhdGEiJiZBW05BXSl9dmFyIEdJPUE9PntsZXQgdD1uZXcgQXJyYXkoMTApLGU9KEkscik9PntpZihpQShJKSl7aWYodC5pbmRleE9mKEkpPj0wKXJldHVybjtpZihnQShJKSlyZXR1cm4gSTtpZighKCJ0b0pTT04iaW4gSSkpe3Rbcl09STtsZXQgZz12KEkpP1tdOnt9O3JldHVybiBzQShJLChvLG4pPT57bGV0IEU9ZShvLHIrMSk7IXooRSkmJihnW25dPUUpfSksdFtyXT12b2lkIDAsZ319cmV0dXJuIEl9O3JldHVybiBlKEEsMCl9LGtJPUwoIkFzeW5jRnVuY3Rpb24iKSxMST1BPT5BJiYoaUEoQSl8fE4oQSkpJiZOKEEudGhlbikmJk4oQS5jYXRjaCkseHQ9KChBLHQpPT5BP3NldEltbWVkaWF0ZTp0PygoZSxJKT0+KFouYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6cixkYXRhOmd9KT0+e3I9PT1aJiZnPT09ZSYmSS5sZW5ndGgmJkkuc2hpZnQoKSgpfSwhMSkscj0+e0kucHVzaChyKSxaLnBvc3RNZXNzYWdlKGUsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOmU9PnNldFRpbWVvdXQoZSkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTihaLnBvc3RNZXNzYWdlKSksYkk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKFopOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8eHQsSkk9QT0+QSE9bnVsbCYmTihBW05BXSksaT17aXNBcnJheTp2LGlzQXJyYXlCdWZmZXI6cXQsaXNCdWZmZXI6Z0EsaXNGb3JtRGF0YTppSSxpc0FycmF5QnVmZmVyVmlldzp2ZSxpc1N0cmluZzokZSxpc051bWJlcjpNdCxpc0Jvb2xlYW46QUksaXNPYmplY3Q6aUEsaXNQbGFpbk9iamVjdDpSQSxpc0VtcHR5T2JqZWN0OnRJLGlzUmVhZGFibGVTdHJlYW06bkksaXNSZXF1ZXN0OkNJLGlzUmVzcG9uc2U6QkksaXNIZWFkZXJzOmFJLGlzVW5kZWZpbmVkOnosaXNEYXRlOmVJLGlzRmlsZTpJSSxpc0Jsb2I6ckksaXNSZWdFeHA6cEksaXNGdW5jdGlvbjpOLGlzU3RyZWFtOmdJLGlzVVJMU2VhcmNoUGFyYW1zOnNJLGlzVHlwZWRBcnJheTpESSxpc0ZpbGVMaXN0Om9JLGZvckVhY2g6c0EsbWVyZ2U6ekEsZXh0ZW5kOkVJLHRyaW06UUksc3RyaXBCT006Y0ksaW5oZXJpdHM6ZkksdG9GbGF0T2JqZWN0OmxJLGtpbmRPZjpVQSxraW5kT2ZUZXN0OkwsZW5kc1dpdGg6dUksdG9BcnJheTpkSSxmb3JFYWNoRW50cnk6aEksbWF0Y2hBbGw6eUksaXNIVE1MRm9ybTptSSxoYXNPd25Qcm9wZXJ0eTpIdCxoYXNPd25Qcm9wOkh0LHJlZHVjZURlc2NyaXB0b3JzOlR0LGZyZWV6ZU1ldGhvZHM6U0ksdG9PYmplY3RTZXQ6RkksdG9DYW1lbENhc2U6d0ksbm9vcDpSSSx0b0Zpbml0ZU51bWJlcjpOSSxmaW5kS2V5Okt0LGdsb2JhbDpaLGlzQ29udGV4dERlZmluZWQ6T3QsaXNTcGVjQ29tcGxpYW50Rm9ybTpVSSx0b0pTT05PYmplY3Q6R0ksaXNBc3luY0ZuOmtJLGlzVGhlbmFibGU6TEksc2V0SW1tZWRpYXRlOnh0LGFzYXA6YkksaXNJdGVyYWJsZTpKSX07ZnVuY3Rpb24gJChBLHQsZSxJLHIpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsdCYmKHRoaXMuY29kZT10KSxlJiYodGhpcy5jb25maWc9ZSksSSYmKHRoaXMucmVxdWVzdD1JKSxyJiYodGhpcy5yZXNwb25zZT1yLHRoaXMuc3RhdHVzPXIuc3RhdHVzP3Iuc3RhdHVzOm51bGwpfWkuaW5oZXJpdHMoJCxFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOmkudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX0pO3ZhciBQdD0kLnByb3RvdHlwZSxqdD17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiLCJFUlJfTk9UX1NVUFBPUlQiLCJFUlJfSU5WQUxJRF9VUkwiXS5mb3JFYWNoKEE9PntqdFtBXT17dmFsdWU6QX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcygkLGp0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUHQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7JC5mcm9tPShBLHQsZSxJLHIsZyk9PntsZXQgbz1PYmplY3QuY3JlYXRlKFB0KTtpLnRvRmxhdE9iamVjdChBLG8sZnVuY3Rpb24ocyl7cmV0dXJuIHMhPT1FcnJvci5wcm90b3R5cGV9LEI9PkIhPT0iaXNBeGlvc0Vycm9yIik7bGV0IG49QSYmQS5tZXNzYWdlP0EubWVzc2FnZToiRXJyb3IiLEU9dD09bnVsbCYmQT9BLmNvZGU6dDtyZXR1cm4gJC5jYWxsKG8sbixFLGUsSSxyKSxBJiZvLmNhdXNlPT1udWxsJiZPYmplY3QuZGVmaW5lUHJvcGVydHkobywiY2F1c2UiLHt2YWx1ZTpBLGNvbmZpZ3VyYWJsZTohMH0pLG8ubmFtZT1BJiZBLm5hbWV8fCJFcnJvciIsZyYmT2JqZWN0LmFzc2lnbihvLGcpLG99O3ZhciB1PSQ7dmFyIGtBPW51bGw7ZnVuY3Rpb24gJEEoQSl7cmV0dXJuIGkuaXNQbGFpbk9iamVjdChBKXx8aS5pc0FycmF5KEEpfWZ1bmN0aW9uIFp0KEEpe3JldHVybiBpLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIFd0KEEsdCxlKXtyZXR1cm4gQT9BLmNvbmNhdCh0KS5tYXAoZnVuY3Rpb24ocixnKXtyZXR1cm4gcj1adChyKSwhZSYmZz8iWyIrcisiXSI6cn0pLmpvaW4oZT8iLiI6IiIpOnR9ZnVuY3Rpb24gSEkoQSl7cmV0dXJuIGkuaXNBcnJheShBKSYmIUEuc29tZSgkQSl9dmFyIFlJPWkudG9GbGF0T2JqZWN0KGkse30sbnVsbCxmdW5jdGlvbih0KXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QodCl9KTtmdW5jdGlvbiBxSShBLHQsZSl7aWYoIWkuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7dD10fHxuZXcoa0F8fEZvcm1EYXRhKSxlPWkudG9GbGF0T2JqZWN0KGUse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihmLGMpe3JldHVybiFpLmlzVW5kZWZpbmVkKGNbZl0pfSk7bGV0IEk9ZS5tZXRhVG9rZW5zLHI9ZS52aXNpdG9yfHxzLGc9ZS5kb3RzLG89ZS5pbmRleGVzLEU9KGUuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmaS5pc1NwZWNDb21wbGlhbnRGb3JtKHQpO2lmKCFpLmlzRnVuY3Rpb24ocikpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBCKFEpe2lmKFE9PT1udWxsKXJldHVybiIiO2lmKGkuaXNEYXRlKFEpKXJldHVybiBRLnRvSVNPU3RyaW5nKCk7aWYoaS5pc0Jvb2xlYW4oUSkpcmV0dXJuIFEudG9TdHJpbmcoKTtpZighRSYmaS5pc0Jsb2IoUSkpdGhyb3cgbmV3IHUoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIGkuaXNBcnJheUJ1ZmZlcihRKXx8aS5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIHMoUSxmLGMpe2xldCBEPVE7aWYoUSYmIWMmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYoaS5lbmRzV2l0aChmLCJ7fSIpKWY9ST9mOmYuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKGkuaXNBcnJheShRKSYmSEkoUSl8fChpLmlzRmlsZUxpc3QoUSl8fGkuZW5kc1dpdGgoZiwiW10iKSkmJihEPWkudG9BcnJheShRKSkpcmV0dXJuIGY9WnQoZiksRC5mb3JFYWNoKGZ1bmN0aW9uKHksUil7IShpLmlzVW5kZWZpbmVkKHkpfHx5PT09bnVsbCkmJnQuYXBwZW5kKG89PT0hMD9XdChbZl0sUixnKTpvPT09bnVsbD9mOmYrIltdIixCKHkpKX0pLCExfXJldHVybiAkQShRKT8hMDoodC5hcHBlbmQoV3QoYyxmLGcpLEIoUSkpLCExKX1sZXQgQz1bXSxsPU9iamVjdC5hc3NpZ24oWUkse2RlZmF1bHRWaXNpdG9yOnMsY29udmVydFZhbHVlOkIsaXNWaXNpdGFibGU6JEF9KTtmdW5jdGlvbiBhKFEsZil7aWYoIWkuaXNVbmRlZmluZWQoUSkpe2lmKEMuaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitmLmpvaW4oIi4iKSk7Qy5wdXNoKFEpLGkuZm9yRWFjaChRLGZ1bmN0aW9uKEQsRil7KCEoaS5pc1VuZGVmaW5lZChEKXx8RD09PW51bGwpJiZyLmNhbGwodCxELGkuaXNTdHJpbmcoRik/Ri50cmltKCk6RixmLGwpKT09PSEwJiZhKEQsZj9mLmNvbmNhdChGKTpbRl0pfSksQy5wb3AoKX19aWYoIWkuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBhKEEpLHR9dmFyIFQ9cUk7ZnVuY3Rpb24gVnQoQSl7bGV0IHQ9eyIhIjoiJTI1MjEiLCJcJyI6IiUyNTI3IiwiKCI6IiUyNTI4IiwiKSI6IiUyNTI5IiwifiI6IiUyNTdFIiwiJTI1MjAiOiIrIiwiJTI1MDAiOiJcXDAifTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoL1shXCcoKX5dfCUyNTIwfCUyNTAwL2csZnVuY3Rpb24oSSl7cmV0dXJuIHRbSV19KX1mdW5jdGlvbiBYdChBLHQpe3RoaXMuX3BhaXJzPVtdLEEmJlQoQSx0aGlzLHQpfXZhciBfdD1YdC5wcm90b3R5cGU7X3QuYXBwZW5kPWZ1bmN0aW9uKHQsZSl7dGhpcy5fcGFpcnMucHVzaChbdCxlXSl9O190LnRvU3RyaW5nPWZ1bmN0aW9uKHQpe2xldCBlPXQ/ZnVuY3Rpb24oSSl7cmV0dXJuIHQuY2FsbCh0aGlzLEksVnQpfTpWdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBlKHJbMF0pKyI9IitlKHJbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgTEE9WHQ7ZnVuY3Rpb24gTUkoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lMjUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNTI0L2csIiQiKS5yZXBsYWNlKC8lMjUyQy9naSwiLCIpLnJlcGxhY2UoLyUyNTIwL2csIisiKX1mdW5jdGlvbiBuQShBLHQsZSl7aWYoIXQpcmV0dXJuIEE7bGV0IEk9ZSYmZS5lbmNvZGV8fE1JO2kuaXNGdW5jdGlvbihlKSYmKGU9e3NlcmlhbGl6ZTplfSk7bGV0IHI9ZSYmZS5zZXJpYWxpemUsZztpZihyP2c9cih0LGUpOmc9aS5pc1VSTFNlYXJjaFBhcmFtcyh0KT90LnRvU3RyaW5nKCk6bmV3IExBKHQsZSkudG9TdHJpbmcoSSksZyl7bGV0IG89QS5pbmRleE9mKCIlMjMiKTtvIT09LTEmJihBPUEuc2xpY2UoMCxvKSksQSs9KEEuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikrZ31yZXR1cm4gQX12YXIgQXQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmhhbmRsZXJzPVtdfXVzZSh0LGUsSSl7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOnQscmVqZWN0ZWQ6ZSxzeW5jaHJvbm91czpJP0kuc3luY2hyb25vdXM6ITEscnVuV2hlbjpJP0kucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX1lamVjdCh0KXt0aGlzLmhhbmRsZXJzW3RdJiYodGhpcy5oYW5kbGVyc1t0XT1udWxsKX1jbGVhcigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX1mb3JFYWNoKHQpe2kuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKEkpe0khPT1udWxsJiZ0KEkpfSl9fSx0dD1BdDt2YXIgYkE9e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9O3ZhciB6dD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6TEE7dmFyIHZ0PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgJHQ9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgQWU9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6enQsRm9ybURhdGE6dnQsQmxvYjokdH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBydD17fTtxZShydCx7aGFzQnJvd3NlckVudjooKT0+SXQsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5LSSxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9Pk9JLG5hdmlnYXRvcjooKT0+ZXQsb3JpZ2luOigpPT5USX0pO3ZhciBJdD10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1IixldD10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsS0k9SXQmJighZXR8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2YoZXQucHJvZHVjdCk8MCksT0k9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLFRJPUl0JiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBoPXsuLi5ydCwuLi5BZX07ZnVuY3Rpb24gb3QoQSx0KXtyZXR1cm4gVChBLG5ldyBoLmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLHt2aXNpdG9yOmZ1bmN0aW9uKGUsSSxyLGcpe3JldHVybiBoLmlzTm9kZSYmaS5pc0J1ZmZlcihlKT8odGhpcy5hcHBlbmQoSSxlLnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOmcuZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwuLi50fSl9ZnVuY3Rpb24geEkoQSl7cmV0dXJuIGkubWF0Y2hBbGwoL1xcdyt8XFxbKFxcdyopXS9nLEEpLm1hcCh0PT50WzBdPT09IltdIj8iIjp0WzFdfHx0WzBdKX1mdW5jdGlvbiBQSShBKXtsZXQgdD17fSxlPU9iamVjdC5rZXlzKEEpLEkscj1lLmxlbmd0aCxnO2ZvcihJPTA7STxyO0krKylnPWVbSV0sdFtnXT1BW2ddO3JldHVybiB0fWZ1bmN0aW9uIGpJKEEpe2Z1bmN0aW9uIHQoZSxJLHIsZyl7bGV0IG89ZVtnKytdO2lmKG89PT0iX19wcm90b19fIilyZXR1cm4hMDtsZXQgbj1OdW1iZXIuaXNGaW5pdGUoK28pLEU9Zz49ZS5sZW5ndGg7cmV0dXJuIG89IW8mJmkuaXNBcnJheShyKT9yLmxlbmd0aDpvLEU/KGkuaGFzT3duUHJvcChyLG8pP3Jbb109W3Jbb10sSV06cltvXT1JLCFuKTooKCFyW29dfHwhaS5pc09iamVjdChyW29dKSkmJihyW29dPVtdKSx0KGUsSSxyW29dLGcpJiZpLmlzQXJyYXkocltvXSkmJihyW29dPVBJKHJbb10pKSwhbil9aWYoaS5pc0Zvcm1EYXRhKEEpJiZpLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IGU9e307cmV0dXJuIGkuZm9yRWFjaEVudHJ5KEEsKEkscik9Pnt0KHhJKEkpLHIsZSwwKX0pLGV9cmV0dXJuIG51bGx9dmFyIEpBPWpJO2Z1bmN0aW9uIFdJKEEsdCxlKXtpZihpLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4odHx8SlNPTi5wYXJzZSkoQSksaS50cmltKEEpfWNhdGNoKEkpe2lmKEkubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgSX1yZXR1cm4oZXx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBndD17dHJhbnNpdGlvbmFsOmJBLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbih0LGUpe2xldCBJPWUuZ2V0Q29udGVudFR5cGUoKXx8IiIscj1JLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxnPWkuaXNPYmplY3QodCk7aWYoZyYmaS5pc0hUTUxGb3JtKHQpJiYodD1uZXcgRm9ybURhdGEodCkpLGkuaXNGb3JtRGF0YSh0KSlyZXR1cm4gcj9KU09OLnN0cmluZ2lmeShKQSh0KSk6dDtpZihpLmlzQXJyYXlCdWZmZXIodCl8fGkuaXNCdWZmZXIodCl8fGkuaXNTdHJlYW0odCl8fGkuaXNGaWxlKHQpfHxpLmlzQmxvYih0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcodCkpcmV0dXJuIHQuYnVmZmVyO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXModCkpcmV0dXJuIGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksdC50b1N0cmluZygpO2xldCBuO2lmKGcpe2lmKEkuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik+LTEpcmV0dXJuIG90KHQsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigobj1pLmlzRmlsZUxpc3QodCkpfHxJLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7bGV0IEU9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBUKG4/eyJmaWxlc1tdIjp0fTp0LEUmJm5ldyBFLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gZ3x8cj8oZS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLFdJKHQpKTp0fV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKHQpe2xldCBlPXRoaXMudHJhbnNpdGlvbmFsfHxndC50cmFuc2l0aW9uYWwsST1lJiZlLmZvcmNlZEpTT05QYXJzaW5nLHI9dGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYoaS5pc1Jlc3BvbnNlKHQpfHxpLmlzUmVhZGFibGVTdHJlYW0odCkpcmV0dXJuIHQ7aWYodCYmaS5pc1N0cmluZyh0KSYmKEkmJiF0aGlzLnJlc3BvbnNlVHlwZXx8cikpe2xldCBvPSEoZSYmZS5zaWxlbnRKU09OUGFyc2luZykmJnI7dHJ5e3JldHVybiBKU09OLnBhcnNlKHQsdGhpcy5wYXJzZVJldml2ZXIpfWNhdGNoKG4pe2lmKG8pdGhyb3cgbi5uYW1lPT09IlN5bnRheEVycm9yIj91LmZyb20obix1LkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpOm59fXJldHVybiB0fV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpoLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpoLmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTIwMCYmdDwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIl0sQT0+e2d0LmhlYWRlcnNbQV09e319KTt2YXIgQUE9Z3Q7dmFyIFpJPWkudG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksdGU9QT0+e2xldCB0PXt9LGUsSSxyO3JldHVybiBBJiZBLnNwbGl0KGAlMEFgKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3I9by5pbmRleE9mKCI6IiksZT1vLnN1YnN0cmluZygwLHIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLEk9by5zdWJzdHJpbmcocisxKS50cmltKCksISghZXx8dFtlXSYmWklbZV0pJiYoZT09PSJzZXQtY29va2llIj90W2VdP3RbZV0ucHVzaChJKTp0W2VdPVtJXTp0W2VdPXRbZV0/dFtlXSsiLCAiK0k6SSl9KSx0fTt2YXIgZWU9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBDQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIEhBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTppLmlzQXJyYXkoQSk/QS5tYXAoSEEpOlN0cmluZyhBKX1mdW5jdGlvbiBWSShBKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpLGU9LyhbXlxccyw7PV0rKVxccyooPzo9XFxzKihbXiw7XSspKT8vZyxJO2Zvcig7ST1lLmV4ZWMoQSk7KXRbSVsxXV09SVsyXTtyZXR1cm4gdH12YXIgWEk9QT0+L15bLV9hLXpBLVowLTleYHx+LCElMjMkJSZcJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gaXQoQSx0LGUsSSxyKXtpZihpLmlzRnVuY3Rpb24oSSkpcmV0dXJuIEkuY2FsbCh0aGlzLHQsZSk7aWYociYmKHQ9ZSksISFpLmlzU3RyaW5nKHQpKXtpZihpLmlzU3RyaW5nKEkpKXJldHVybiB0LmluZGV4T2YoSSkhPT0tMTtpZihpLmlzUmVnRXhwKEkpKXJldHVybiBJLnRlc3QodCl9fWZ1bmN0aW9uIF9JKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XFxkXSkoXFx3KikvZywodCxlLEkpPT5lLnRvVXBwZXJDYXNlKCkrSSl9ZnVuY3Rpb24gekkoQSx0KXtsZXQgZT1pLnRvQ2FtZWxDYXNlKCIgIit0KTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2goST0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLEkrZSx7dmFsdWU6ZnVuY3Rpb24ocixnLG8pe3JldHVybiB0aGlzW0ldLmNhbGwodGhpcyx0LHIsZyxvKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgdEE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dCYmdGhpcy5zZXQodCl9c2V0KHQsZSxJKXtsZXQgcj10aGlzO2Z1bmN0aW9uIGcobixFLEIpe2xldCBzPUNBKEUpO2lmKCFzKXRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgQz1pLmZpbmRLZXkocixzKTsoIUN8fHJbQ109PT12b2lkIDB8fEI9PT0hMHx8Qj09PXZvaWQgMCYmcltDXSE9PSExKSYmKHJbQ3x8RV09SEEobikpfWxldCBvPShuLEUpPT5pLmZvckVhY2gobiwoQixzKT0+ZyhCLHMsRSkpO2lmKGkuaXNQbGFpbk9iamVjdCh0KXx8dCBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3Ipbyh0LGUpO2Vsc2UgaWYoaS5pc1N0cmluZyh0KSYmKHQ9dC50cmltKCkpJiYhWEkodCkpbyh0ZSh0KSxlKTtlbHNlIGlmKGkuaXNPYmplY3QodCkmJmkuaXNJdGVyYWJsZSh0KSl7bGV0IG49e30sRSxCO2ZvcihsZXQgcyBvZiB0KXtpZighaS5pc0FycmF5KHMpKXRocm93IFR5cGVFcnJvcigiT2JqZWN0IGl0ZXJhdG9yIG11c3QgcmV0dXJuIGEga2V5LXZhbHVlIHBhaXIiKTtuW0I9c1swXV09KEU9bltCXSk/aS5pc0FycmF5KEUpP1suLi5FLHNbMV1dOltFLHNbMV1dOnNbMV19byhuLGUpfWVsc2UgdCE9bnVsbCYmZyhlLHQsSSk7cmV0dXJuIHRoaXN9Z2V0KHQsZSl7aWYodD1DQSh0KSx0KXtsZXQgST1pLmZpbmRLZXkodGhpcyx0KTtpZihJKXtsZXQgcj10aGlzW0ldO2lmKCFlKXJldHVybiByO2lmKGU9PT0hMClyZXR1cm4gVkkocik7aWYoaS5pc0Z1bmN0aW9uKGUpKXJldHVybiBlLmNhbGwodGhpcyxyLEkpO2lmKGkuaXNSZWdFeHAoZSkpcmV0dXJuIGUuZXhlYyhyKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKHQsZSl7aWYodD1DQSh0KSx0KXtsZXQgST1pLmZpbmRLZXkodGhpcyx0KTtyZXR1cm4hIShJJiZ0aGlzW0ldIT09dm9pZCAwJiYoIWV8fGl0KHRoaXMsdGhpc1tJXSxJLGUpKSl9cmV0dXJuITF9ZGVsZXRlKHQsZSl7bGV0IEk9dGhpcyxyPSExO2Z1bmN0aW9uIGcobyl7aWYobz1DQShvKSxvKXtsZXQgbj1pLmZpbmRLZXkoSSxvKTtuJiYoIWV8fGl0KEksSVtuXSxuLGUpKSYmKGRlbGV0ZSBJW25dLHI9ITApfX1yZXR1cm4gaS5pc0FycmF5KHQpP3QuZm9yRWFjaChnKTpnKHQpLHJ9Y2xlYXIodCl7bGV0IGU9T2JqZWN0LmtleXModGhpcyksST1lLmxlbmd0aCxyPSExO2Zvcig7SS0tOyl7bGV0IGc9ZVtJXTsoIXR8fGl0KHRoaXMsdGhpc1tnXSxnLHQsITApKSYmKGRlbGV0ZSB0aGlzW2ddLHI9ITApfXJldHVybiByfW5vcm1hbGl6ZSh0KXtsZXQgZT10aGlzLEk9e307cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChyLGcpPT57bGV0IG89aS5maW5kS2V5KEksZyk7aWYobyl7ZVtvXT1IQShyKSxkZWxldGUgZVtnXTtyZXR1cm59bGV0IG49dD9fSShnKTpTdHJpbmcoZykudHJpbSgpO24hPT1nJiZkZWxldGUgZVtnXSxlW25dPUhBKHIpLElbbl09ITB9KSx0aGlzfWNvbmNhdCguLi50KXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi50KX10b0pTT04odCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gaS5mb3JFYWNoKHRoaXMsKEkscik9PntJIT1udWxsJiZJIT09ITEmJihlW3JdPXQmJmkuaXNBcnJheShJKT9JLmpvaW4oIiwgIik6SSl9KSxlfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKX10b1N0cmluZygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFt0LGVdKT0+dCsiOiAiK2UpLmpvaW4oYCUwQWApfWdldFNldENvb2tpZSgpe3JldHVybiB0aGlzLmdldCgic2V0LWNvb2tpZSIpfHxbXX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJBeGlvc0hlYWRlcnMifXN0YXRpYyBmcm9tKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpcz90Om5ldyB0aGlzKHQpfXN0YXRpYyBjb25jYXQodCwuLi5lKXtsZXQgST1uZXcgdGhpcyh0KTtyZXR1cm4gZS5mb3JFYWNoKHI9Pkkuc2V0KHIpKSxJfXN0YXRpYyBhY2Nlc3Nvcih0KXtsZXQgST0odGhpc1tlZV09dGhpc1tlZV09e2FjY2Vzc29yczp7fX0pLmFjY2Vzc29ycyxyPXRoaXMucHJvdG90eXBlO2Z1bmN0aW9uIGcobyl7bGV0IG49Q0Eobyk7SVtuXXx8KHpJKHIsbyksSVtuXT0hMCl9cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2goZyk6Zyh0KSx0aGlzfX07dEEuYWNjZXNzb3IoWyJDb250ZW50LVR5cGUiLCJDb250ZW50LUxlbmd0aCIsIkFjY2VwdCIsIkFjY2VwdC1FbmNvZGluZyIsIlVzZXItQWdlbnQiLCJBdXRob3JpemF0aW9uIl0pO2kucmVkdWNlRGVzY3JpcHRvcnModEEucHJvdG90eXBlLCh7dmFsdWU6QX0sdCk9PntsZXQgZT10WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKTtyZXR1cm57Z2V0OigpPT5BLHNldChJKXt0aGlzW2VdPUl9fX0pO2kuZnJlZXplTWV0aG9kcyh0QSk7dmFyIHA9dEE7ZnVuY3Rpb24gQkEoQSx0KXtsZXQgZT10aGlzfHxBQSxJPXR8fGUscj1wLmZyb20oSS5oZWFkZXJzKSxnPUkuZGF0YTtyZXR1cm4gaS5mb3JFYWNoKEEsZnVuY3Rpb24obil7Zz1uLmNhbGwoZSxnLHIubm9ybWFsaXplKCksdD90LnN0YXR1czp2b2lkIDApfSksci5ub3JtYWxpemUoKSxnfWZ1bmN0aW9uIGFBKEEpe3JldHVybiEhKEEmJkEuX19DQU5DRUxfXyl9ZnVuY3Rpb24gSWUoQSx0LGUpe3UuY2FsbCh0aGlzLEE/PyJjYW5jZWxlZCIsdS5FUlJfQ0FOQ0VMRUQsdCxlKSx0aGlzLm5hbWU9IkNhbmNlbGVkRXJyb3IifWkuaW5oZXJpdHMoSWUsdSx7X19DQU5DRUxfXzohMH0pO3ZhciBIPUllO2Z1bmN0aW9uIFFBKEEsdCxlKXtsZXQgST1lLmNvbmZpZy52YWxpZGF0ZVN0YXR1czshZS5zdGF0dXN8fCFJfHxJKGUuc3RhdHVzKT9BKGUpOnQobmV3IHUoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIitlLnN0YXR1cyxbdS5FUlJfQkFEX1JFUVVFU1QsdS5FUlJfQkFEX1JFU1BPTlNFXVtNYXRoLmZsb29yKGUuc3RhdHVzLzEwMCktNF0sZS5jb25maWcsZS5yZXF1ZXN0LGUpKX1mdW5jdGlvbiBzdChBKXtsZXQgdD0vXihbLStcXHddezEsMjV9KSg6P1xcL1xcL3w6KS8uZXhlYyhBKTtyZXR1cm4gdCYmdFsxXXx8IiJ9ZnVuY3Rpb24gdkkoQSx0KXtBPUF8fDEwO2xldCBlPW5ldyBBcnJheShBKSxJPW5ldyBBcnJheShBKSxyPTAsZz0wLG87cmV0dXJuIHQ9dCE9PXZvaWQgMD90OjFlMyxmdW5jdGlvbihFKXtsZXQgQj1EYXRlLm5vdygpLHM9SVtnXTtvfHwobz1CKSxlW3JdPUUsSVtyXT1CO2xldCBDPWcsbD0wO2Zvcig7QyE9PXI7KWwrPWVbQysrXSxDPUMlQTtpZihyPShyKzEpJUEscj09PWcmJihnPShnKzEpJUEpLEItbzx0KXJldHVybjtsZXQgYT1zJiZCLXM7cmV0dXJuIGE/TWF0aC5yb3VuZChsKjFlMy9hKTp2b2lkIDB9fXZhciByZT12STtmdW5jdGlvbiAkSShBLHQpe2xldCBlPTAsST0xZTMvdCxyLGcsbz0oQixzPURhdGUubm93KCkpPT57ZT1zLHI9bnVsbCxnJiYoY2xlYXJUaW1lb3V0KGcpLGc9bnVsbCksQSguLi5CKX07cmV0dXJuWyguLi5CKT0+e2xldCBzPURhdGUubm93KCksQz1zLWU7Qz49ST9vKEIscyk6KHI9QixnfHwoZz1zZXRUaW1lb3V0KCgpPT57Zz1udWxsLG8ocil9LEktQykpKX0sKCk9PnImJm8ocildfXZhciBvZT0kSTt2YXIgZUE9KEEsdCxlPTMpPT57bGV0IEk9MCxyPXJlKDUwLDI1MCk7cmV0dXJuIG9lKGc9PntsZXQgbz1nLmxvYWRlZCxuPWcubGVuZ3RoQ29tcHV0YWJsZT9nLnRvdGFsOnZvaWQgMCxFPW8tSSxCPXIoRSkscz1vPD1uO0k9bztsZXQgQz17bG9hZGVkOm8sdG90YWw6bixwcm9ncmVzczpuP28vbjp2b2lkIDAsYnl0ZXM6RSxyYXRlOkJ8fHZvaWQgMCxlc3RpbWF0ZWQ6QiYmbiYmcz8obi1vKS9COnZvaWQgMCxldmVudDpnLGxlbmd0aENvbXB1dGFibGU6biE9bnVsbCxbdD8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH07QShDKX0sZSl9LG50PShBLHQpPT57bGV0IGU9QSE9bnVsbDtyZXR1cm5bST0+dFswXSh7bGVuZ3RoQ29tcHV0YWJsZTplLHRvdGFsOkEsbG9hZGVkOkl9KSx0WzFdXX0sQ3Q9QT0+KC4uLnQpPT5pLmFzYXAoKCk9PkEoLi4udCkpO3ZhciBnZT1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKEEsdCk9PmU9PihlPW5ldyBVUkwoZSxoLm9yaWdpbiksQS5wcm90b2NvbD09PWUucHJvdG9jb2wmJkEuaG9zdD09PWUuaG9zdCYmKHR8fEEucG9ydD09PWUucG9ydCkpKShuZXcgVVJMKGgub3JpZ2luKSxoLm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChoLm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITA7dmFyIGllPWguaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShBLHQsZSxJLHIsZyl7bGV0IG89W0ErIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0KV07aS5pc051bWJlcihlKSYmby5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUoZSkudG9HTVRTdHJpbmcoKSksaS5pc1N0cmluZyhJKSYmby5wdXNoKCJwYXRoPSIrSSksaS5pc1N0cmluZyhyKSYmby5wdXNoKCJkb21haW49IityKSxnPT09ITAmJm8ucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPW8uam9pbigiOyAiKX0scmVhZChBKXtsZXQgdD1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xcXFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIHQ/ZGVjb2RlVVJJQ29tcG9uZW50KHRbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gQnQoQSl7cmV0dXJuL14oW2Etel1bYS16XFxkK1xcLS5dKjopP1xcL1xcLy9pLnRlc3QoQSl9ZnVuY3Rpb24gYXQoQSx0KXtyZXR1cm4gdD9BLnJlcGxhY2UoL1xcLz9cXC8kLywiIikrIi8iK3QucmVwbGFjZSgvXlxcLysvLCIiKTpBfWZ1bmN0aW9uIEVBKEEsdCxlKXtsZXQgST0hQnQodCk7cmV0dXJuIEEmJihJfHxlPT0hMSk/YXQoQSx0KTp0fXZhciBzZT1BPT5BIGluc3RhbmNlb2YgcD97Li4uQX06QTtmdW5jdGlvbiBiKEEsdCl7dD10fHx7fTtsZXQgZT17fTtmdW5jdGlvbiBJKEIscyxDLGwpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQikmJmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlLmNhbGwoe2Nhc2VsZXNzOmx9LEIscyk6aS5pc1BsYWluT2JqZWN0KHMpP2kubWVyZ2Uoe30scyk6aS5pc0FycmF5KHMpP3Muc2xpY2UoKTpzfWZ1bmN0aW9uIHIoQixzLEMsbCl7aWYoaS5pc1VuZGVmaW5lZChzKSl7aWYoIWkuaXNVbmRlZmluZWQoQikpcmV0dXJuIEkodm9pZCAwLEIsQyxsKX1lbHNlIHJldHVybiBJKEIscyxDLGwpfWZ1bmN0aW9uIGcoQixzKXtpZighaS5pc1VuZGVmaW5lZChzKSlyZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gbyhCLHMpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKEIpKXJldHVybiBJKHZvaWQgMCxCKX1lbHNlIHJldHVybiBJKHZvaWQgMCxzKX1mdW5jdGlvbiBuKEIscyxDKXtpZihDIGluIHQpcmV0dXJuIEkoQixzKTtpZihDIGluIEEpcmV0dXJuIEkodm9pZCAwLEIpfWxldCBFPXt1cmw6ZyxtZXRob2Q6ZyxkYXRhOmcsYmFzZVVSTDpvLHRyYW5zZm9ybVJlcXVlc3Q6byx0cmFuc2Zvcm1SZXNwb25zZTpvLHBhcmFtc1NlcmlhbGl6ZXI6byx0aW1lb3V0Om8sdGltZW91dE1lc3NhZ2U6byx3aXRoQ3JlZGVudGlhbHM6byx3aXRoWFNSRlRva2VuOm8sYWRhcHRlcjpvLHJlc3BvbnNlVHlwZTpvLHhzcmZDb29raWVOYW1lOm8seHNyZkhlYWRlck5hbWU6byxvblVwbG9hZFByb2dyZXNzOm8sb25Eb3dubG9hZFByb2dyZXNzOm8sZGVjb21wcmVzczpvLG1heENvbnRlbnRMZW5ndGg6byxtYXhCb2R5TGVuZ3RoOm8sYmVmb3JlUmVkaXJlY3Q6byx0cmFuc3BvcnQ6byxodHRwQWdlbnQ6byxodHRwc0FnZW50Om8sY2FuY2VsVG9rZW46byxzb2NrZXRQYXRoOm8scmVzcG9uc2VFbmNvZGluZzpvLHZhbGlkYXRlU3RhdHVzOm4saGVhZGVyczooQixzLEMpPT5yKHNlKEIpLHNlKHMpLEMsITApfTtyZXR1cm4gaS5mb3JFYWNoKE9iamVjdC5rZXlzKHsuLi5BLC4uLnR9KSxmdW5jdGlvbihzKXtsZXQgQz1FW3NdfHxyLGw9QyhBW3NdLHRbc10scyk7aS5pc1VuZGVmaW5lZChsKSYmQyE9PW58fChlW3NdPWwpfSksZX12YXIgWUE9QT0+e2xldCB0PWIoe30sQSkse2RhdGE6ZSx3aXRoWFNSRlRva2VuOkkseHNyZkhlYWRlck5hbWU6cix4c3JmQ29va2llTmFtZTpnLGhlYWRlcnM6byxhdXRoOm59PXQ7aWYodC5oZWFkZXJzPW89cC5mcm9tKG8pLHQudXJsPW5BKEVBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKSxBLnBhcmFtcyxBLnBhcmFtc1NlcmlhbGl6ZXIpLG4mJm8uc2V0KCJBdXRob3JpemF0aW9uIiwiQmFzaWMgIitidG9hKChuLnVzZXJuYW1lfHwiIikrIjoiKyhuLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChuLnBhc3N3b3JkKSk6IiIpKSksaS5pc0Zvcm1EYXRhKGUpKXtpZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudnx8aC5oYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYpby5zZXRDb250ZW50VHlwZSh2b2lkIDApO2Vsc2UgaWYoaS5pc0Z1bmN0aW9uKGUuZ2V0SGVhZGVycykpe2xldCBFPWUuZ2V0SGVhZGVycygpLEI9WyJjb250ZW50LXR5cGUiLCJjb250ZW50LWxlbmd0aCJdO09iamVjdC5lbnRyaWVzKEUpLmZvckVhY2goKFtzLENdKT0+e0IuaW5jbHVkZXMocy50b0xvd2VyQ2FzZSgpKSYmby5zZXQocyxDKX0pfX1pZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKEkmJmkuaXNGdW5jdGlvbihJKSYmKEk9SSh0KSksSXx8SSE9PSExJiZnZSh0LnVybCkpKXtsZXQgRT1yJiZnJiZpZS5yZWFkKGcpO0UmJm8uc2V0KHIsRSl9cmV0dXJuIHR9O3ZhciBBcj10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUiLG5lPUFyJiZmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxJKXtsZXQgcj1ZQShBKSxnPXIuZGF0YSxvPXAuZnJvbShyLmhlYWRlcnMpLm5vcm1hbGl6ZSgpLHtyZXNwb25zZVR5cGU6bixvblVwbG9hZFByb2dyZXNzOkUsb25Eb3dubG9hZFByb2dyZXNzOkJ9PXIscyxDLGwsYSxRO2Z1bmN0aW9uIGYoKXthJiZhKCksUSYmUSgpLHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUocyksci5zaWduYWwmJnIuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixzKX1sZXQgYz1uZXcgWE1MSHR0cFJlcXVlc3Q7Yy5vcGVuKHIubWV0aG9kLnRvVXBwZXJDYXNlKCksci51cmwsITApLGMudGltZW91dD1yLnRpbWVvdXQ7ZnVuY3Rpb24gRCgpe2lmKCFjKXJldHVybjtsZXQgeT1wLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBjJiZjLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxrPXtkYXRhOiFufHxuPT09InRleHQifHxuPT09Impzb24iP2MucmVzcG9uc2VUZXh0OmMucmVzcG9uc2Usc3RhdHVzOmMuc3RhdHVzLHN0YXR1c1RleHQ6Yy5zdGF0dXNUZXh0LGhlYWRlcnM6eSxjb25maWc6QSxyZXF1ZXN0OmN9O1FBKGZ1bmN0aW9uKEcpe2UoRyksZigpfSxmdW5jdGlvbihHKXtJKEcpLGYoKX0sayksYz1udWxsfSJvbmxvYWRlbmQiaW4gYz9jLm9ubG9hZGVuZD1EOmMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IWN8fGMucmVhZHlTdGF0ZSE9PTR8fGMuc3RhdHVzPT09MCYmIShjLnJlc3BvbnNlVVJMJiZjLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6Iik9PT0wKXx8c2V0VGltZW91dChEKX0sYy5vbmFib3J0PWZ1bmN0aW9uKCl7YyYmKEkobmV3IHUoIlJlcXVlc3QgYWJvcnRlZCIsdS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsKX0sYy5vbmVycm9yPWZ1bmN0aW9uKFIpe2xldCBrPVImJlIubWVzc2FnZT9SLm1lc3NhZ2U6Ik5ldHdvcmsgRXJyb3IiLFA9bmV3IHUoayx1LkVSUl9ORVRXT1JLLEEsYyk7UC5ldmVudD1SfHxudWxsLEkoUCksYz1udWxsfSxjLm9udGltZW91dD1mdW5jdGlvbigpe2xldCBSPXIudGltZW91dD8idGltZW91dCBvZiAiK3IudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixrPXIudHJhbnNpdGlvbmFsfHxiQTtyLnRpbWVvdXRFcnJvck1lc3NhZ2UmJihSPXIudGltZW91dEVycm9yTWVzc2FnZSksSShuZXcgdShSLGsuY2xhcmlmeVRpbWVvdXRFcnJvcj91LkVUSU1FRE9VVDp1LkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGx9LGc9PT12b2lkIDAmJm8uc2V0Q29udGVudFR5cGUobnVsbCksInNldFJlcXVlc3RIZWFkZXIiaW4gYyYmaS5mb3JFYWNoKG8udG9KU09OKCksZnVuY3Rpb24oUixrKXtjLnNldFJlcXVlc3RIZWFkZXIoayxSKX0pLGkuaXNVbmRlZmluZWQoci53aXRoQ3JlZGVudGlhbHMpfHwoYy53aXRoQ3JlZGVudGlhbHM9ISFyLndpdGhDcmVkZW50aWFscyksbiYmbiE9PSJqc29uIiYmKGMucmVzcG9uc2VUeXBlPXIucmVzcG9uc2VUeXBlKSxCJiYoW2wsUV09ZUEoQiwhMCksYy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsbCkpLEUmJmMudXBsb2FkJiYoW0MsYV09ZUEoRSksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLEMpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLGEpKSwoci5jYW5jZWxUb2tlbnx8ci5zaWduYWwpJiYocz15PT57YyYmKEkoIXl8fHkudHlwZT9uZXcgSChudWxsLEEsYyk6eSksYy5hYm9ydCgpLGM9bnVsbCl9LHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiYoci5zaWduYWwuYWJvcnRlZD9zKCk6ci5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpKSk7bGV0IEY9c3Qoci51cmwpO2lmKEYmJmgucHJvdG9jb2xzLmluZGV4T2YoRik9PT0tMSl7SShuZXcgdSgiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIitGKyI6Iix1LkVSUl9CQURfUkVRVUVTVCxBKSk7cmV0dXJufWMuc2VuZChnfHxudWxsKX0pfTt2YXIgdHI9KEEsdCk9PntsZXR7bGVuZ3RoOmV9PUE9QT9BLmZpbHRlcihCb29sZWFuKTpbXTtpZih0fHxlKXtsZXQgST1uZXcgQWJvcnRDb250cm9sbGVyLHIsZz1mdW5jdGlvbihCKXtpZighcil7cj0hMCxuKCk7bGV0IHM9QiBpbnN0YW5jZW9mIEVycm9yP0I6dGhpcy5yZWFzb247SS5hYm9ydChzIGluc3RhbmNlb2YgdT9zOm5ldyBIKHMgaW5zdGFuY2VvZiBFcnJvcj9zLm1lc3NhZ2U6cykpfX0sbz10JiZzZXRUaW1lb3V0KCgpPT57bz1udWxsLGcobmV3IHUoYHRpbWVvdXQgJHt0fSBvZiBtcyBleGNlZWRlZGAsdS5FVElNRURPVVQpKX0sdCksbj0oKT0+e0EmJihvJiZjbGVhclRpbWVvdXQobyksbz1udWxsLEEuZm9yRWFjaChCPT57Qi51bnN1YnNjcmliZT9CLnVuc3Vic2NyaWJlKGcpOkIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGcpfSksQT1udWxsKX07QS5mb3JFYWNoKEI9PkIuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGcpKTtsZXR7c2lnbmFsOkV9PUk7cmV0dXJuIEUudW5zdWJzY3JpYmU9KCk9PmkuYXNhcChuKSxFfX0sQ2U9dHI7dmFyIGVyPWZ1bmN0aW9uKihBLHQpe2xldCBlPUEuYnl0ZUxlbmd0aDtpZighdHx8ZTx0KXt5aWVsZCBBO3JldHVybn1sZXQgST0wLHI7Zm9yKDtJPGU7KXI9SSt0LHlpZWxkIEEuc2xpY2UoSSxyKSxJPXJ9LElyPWFzeW5jIGZ1bmN0aW9uKihBLHQpe2ZvciBhd2FpdChsZXQgZSBvZiBycihBKSl5aWVsZCplcihlLHQpfSxycj1hc3luYyBmdW5jdGlvbiooQSl7aWYoQVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pe3lpZWxkKkE7cmV0dXJufWxldCB0PUEuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6ZSx2YWx1ZTpJfT1hd2FpdCB0LnJlYWQoKTtpZihlKWJyZWFrO3lpZWxkIEl9fWZpbmFsbHl7YXdhaXQgdC5jYW5jZWwoKX19LFF0PShBLHQsZSxJKT0+e2xldCByPUlyKEEsdCksZz0wLG8sbj1FPT57b3x8KG89ITAsSSYmSShFKSl9O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwoRSl7dHJ5e2xldHtkb25lOkIsdmFsdWU6c309YXdhaXQgci5uZXh0KCk7aWYoQil7bigpLEUuY2xvc2UoKTtyZXR1cm59bGV0IEM9cy5ieXRlTGVuZ3RoO2lmKGUpe2xldCBsPWcrPUM7ZShsKX1FLmVucXVldWUobmV3IFVpbnQ4QXJyYXkocykpfWNhdGNoKEIpe3Rocm93IG4oQiksQn19LGNhbmNlbChFKXtyZXR1cm4gbihFKSxyLnJldHVybigpfX0se2hpZ2hXYXRlck1hcms6Mn0pfTt2YXIgQmU9NjQqMTAyNCx7aXNGdW5jdGlvbjpxQX09aSxjZT0oKHtmZXRjaDpBLFJlcXVlc3Q6dCxSZXNwb25zZTplfSk9Pih7ZmV0Y2g6QSxSZXF1ZXN0OnQsUmVzcG9uc2U6ZX0pKShpLmdsb2JhbCkse1JlYWRhYmxlU3RyZWFtOmFlLFRleHRFbmNvZGVyOlFlfT1pLmdsb2JhbCxFZT0oQSwuLi50KT0+e3RyeXtyZXR1cm4hIUEoLi4udCl9Y2F0Y2h7cmV0dXJuITF9fSxvcj1BPT57bGV0e2ZldGNoOnQsUmVxdWVzdDplLFJlc3BvbnNlOkl9PU9iamVjdC5hc3NpZ24oe30sY2UsQSkscj1xQSh0KSxnPXFBKGUpLG89cUEoSSk7aWYoIXIpcmV0dXJuITE7bGV0IG49ciYmcUEoYWUpLEU9ciYmKHR5cGVvZiBRZT09ImZ1bmN0aW9uIj8oUT0+Zj0+US5lbmNvZGUoZikpKG5ldyBRZSk6YXN5bmMgUT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IGUoUSkuYXJyYXlCdWZmZXIoKSkpLEI9ZyYmbiYmRWUoKCk9PntsZXQgUT0hMSxmPW5ldyBlKGgub3JpZ2luLHtib2R5Om5ldyBhZSxtZXRob2Q6IlBPU1QiLGdldCBkdXBsZXgoKXtyZXR1cm4gUT0hMCwiaGFsZiJ9fSkuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpO3JldHVybiBRJiYhZn0pLHM9byYmbiYmRWUoKCk9PmkuaXNSZWFkYWJsZVN0cmVhbShuZXcgSSgiIikuYm9keSkpLEM9e3N0cmVhbTpzJiYoUT0+US5ib2R5KX07ciYmWyJ0ZXh0IiwiYXJyYXlCdWZmZXIiLCJibG9iIiwiZm9ybURhdGEiLCJzdHJlYW0iXS5mb3JFYWNoKFE9PnshQ1tRXSYmKENbUV09KGYsYyk9PntsZXQgRD1mJiZmW1FdO2lmKEQpcmV0dXJuIEQuY2FsbChmKTt0aHJvdyBuZXcgdShgUmVzcG9uc2UgdHlwZSBcJyR7UX1cJyBpcyBub3Qgc3VwcG9ydGVkYCx1LkVSUl9OT1RfU1VQUE9SVCxjKX0pfSk7bGV0IGw9YXN5bmMgUT0+e2lmKFE9PW51bGwpcmV0dXJuIDA7aWYoaS5pc0Jsb2IoUSkpcmV0dXJuIFEuc2l6ZTtpZihpLmlzU3BlY0NvbXBsaWFudEZvcm0oUSkpcmV0dXJuKGF3YWl0IG5ldyBlKGgub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6UX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoaS5pc0FycmF5QnVmZmVyVmlldyhRKXx8aS5pc0FycmF5QnVmZmVyKFEpKXJldHVybiBRLmJ5dGVMZW5ndGg7aWYoaS5pc1VSTFNlYXJjaFBhcmFtcyhRKSYmKFE9USsiIiksaS5pc1N0cmluZyhRKSlyZXR1cm4oYXdhaXQgRShRKSkuYnl0ZUxlbmd0aH0sYT1hc3luYyhRLGYpPT57bGV0IGM9aS50b0Zpbml0ZU51bWJlcihRLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGM/P2woZil9O3JldHVybiBhc3luYyBRPT57bGV0e3VybDpmLG1ldGhvZDpjLGRhdGE6RCxzaWduYWw6RixjYW5jZWxUb2tlbjp5LHRpbWVvdXQ6UixvbkRvd25sb2FkUHJvZ3Jlc3M6ayxvblVwbG9hZFByb2dyZXNzOlAscmVzcG9uc2VUeXBlOkcsaGVhZGVyczpXQSx3aXRoQ3JlZGVudGlhbHM6ZEE9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6bXR9PVlBKFEpO0c9Rz8oRysiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IERBPUNlKFtGLHkmJnkudG9BYm9ydFNpZ25hbCgpXSxSKSxyQT1udWxsLGo9REEmJkRBLnVuc3Vic2NyaWJlJiYoKCk9PntEQS51bnN1YnNjcmliZSgpfSksd3Q7dHJ5e2lmKFAmJkImJmMhPT0iZ2V0IiYmYyE9PSJoZWFkIiYmKHd0PWF3YWl0IGEoV0EsRCkpIT09MCl7bGV0IE89bmV3IGUoZix7bWV0aG9kOiJQT1NUIixib2R5OkQsZHVwbGV4OiJoYWxmIn0pLFg7aWYoaS5pc0Zvcm1EYXRhKEQpJiYoWD1PLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJldBLnNldENvbnRlbnRUeXBlKFgpLE8uYm9keSl7bGV0W1pBLGhBXT1udCh3dCxlQShDdChQKSkpO0Q9UXQoTy5ib2R5LEJlLFpBLGhBKX19aS5pc1N0cmluZyhkQSl8fChkQT1kQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgSj1nJiYiY3JlZGVudGlhbHMiaW4gZS5wcm90b3R5cGUscHQ9ey4uLm10LHNpZ25hbDpEQSxtZXRob2Q6Yy50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6V0Eubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpELGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6Sj9kQTp2b2lkIDB9O3JBPWcmJm5ldyBlKGYscHQpO2xldCBLPWF3YWl0KGc/dChyQSxtdCk6dChmLHB0KSksU3Q9cyYmKEc9PT0ic3RyZWFtInx8Rz09PSJyZXNwb25zZSIpO2lmKHMmJihrfHxTdCYmaikpe2xldCBPPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKEZ0PT57T1tGdF09S1tGdF19KTtsZXQgWD1pLnRvRmluaXRlTnVtYmVyKEsuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtaQSxoQV09ayYmbnQoWCxlQShDdChrKSwhMCkpfHxbXTtLPW5ldyBJKFF0KEsuYm9keSxCZSxaQSwoKT0+e2hBJiZoQSgpLGomJmooKX0pLE8pfUc9R3x8InRleHQiO2xldCBIZT1hd2FpdCBDW2kuZmluZEtleShDLEcpfHwidGV4dCJdKEssUSk7cmV0dXJuIVN0JiZqJiZqKCksYXdhaXQgbmV3IFByb21pc2UoKE8sWCk9PntRQShPLFgse2RhdGE6SGUsaGVhZGVyczpwLmZyb20oSy5oZWFkZXJzKSxzdGF0dXM6Sy5zdGF0dXMsc3RhdHVzVGV4dDpLLnN0YXR1c1RleHQsY29uZmlnOlEscmVxdWVzdDpyQX0pfSl9Y2F0Y2goSil7dGhyb3cgaiYmaigpLEomJkoubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KEoubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxRLHJBKSx7Y2F1c2U6Si5jYXVzZXx8Sn0pOnUuZnJvbShKLEomJkouY29kZSxRLHJBKX19fSxncj1uZXcgTWFwLEV0PUE9PntsZXQgdD1pLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LGNlLEE/QS5lbnY6bnVsbCkse2ZldGNoOmUsUmVxdWVzdDpJLFJlc3BvbnNlOnJ9PXQsZz1bSSxyLGVdLG89Zy5sZW5ndGgsbj1vLEUsQixzPWdyO2Zvcig7bi0tOylFPWdbbl0sQj1zLmdldChFKSxCPT09dm9pZCAwJiZzLnNldChFLEI9bj9uZXcgTWFwOm9yKHQpKSxzPUI7cmV0dXJuIEJ9LEdnPUV0KCk7dmFyIGN0PXtodHRwOmtBLHhocjpuZSxmZXRjaDp7Z2V0OkV0fX07aS5mb3JFYWNoKGN0LChBLHQpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6dH0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTp0fSl9fSk7dmFyIGZlPUE9PmAtICR7QX1gLHNyPUE9PmkuaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxNQT17Z2V0QWRhcHRlcjooQSx0KT0+e0E9aS5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6ZX09QSxJLHIsZz17fTtmb3IobGV0IG89MDtvPGU7bysrKXtJPUFbb107bGV0IG47aWYocj1JLCFzcihJKSYmKHI9Y3RbKG49U3RyaW5nKEkpKS50b0xvd2VyQ2FzZSgpXSxyPT09dm9pZCAwKSl0aHJvdyBuZXcgdShgVW5rbm93biBhZGFwdGVyIFwnJHtufVwnYCk7aWYociYmKGkuaXNGdW5jdGlvbihyKXx8KHI9ci5nZXQodCkpKSlicmVhaztnW258fCIlMjMiK29dPXJ9aWYoIXIpe2xldCBvPU9iamVjdC5lbnRyaWVzKGcpLm1hcCgoW0UsQl0pPT5gYWRhcHRlciAke0V9IGArKEI9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxuPWU/by5sZW5ndGg+MT9gc2luY2UgOiUwQWArby5tYXAoZmUpLmpvaW4oYCUwQWApOiIgIitmZShvWzBdKToiYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQiO3Rocm93IG5ldyB1KCJUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIrbiwiRVJSX05PVF9TVVBQT1JUIil9cmV0dXJuIHJ9LGFkYXB0ZXJzOmN0fTtmdW5jdGlvbiBmdChBKXtpZihBLmNhbmNlbFRva2VuJiZBLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxBLnNpZ25hbCYmQS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgSChudWxsLEEpfWZ1bmN0aW9uIEtBKEEpe3JldHVybiBmdChBKSxBLmhlYWRlcnM9cC5mcm9tKEEuaGVhZGVycyksQS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlcXVlc3QpLFsicG9zdCIsInB1dCIsInBhdGNoIl0uaW5kZXhPZihBLm1ldGhvZCkhPT0tMSYmQS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCExKSxNQS5nZXRBZGFwdGVyKEEuYWRhcHRlcnx8QUEuYWRhcHRlcixBKShBKS50aGVuKGZ1bmN0aW9uKEkpe3JldHVybiBmdChBKSxJLmRhdGE9QkEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsSSksSS5oZWFkZXJzPXAuZnJvbShJLmhlYWRlcnMpLEl9LGZ1bmN0aW9uKEkpe3JldHVybiBhQShJKXx8KGZ0KEEpLEkmJkkucmVzcG9uc2UmJihJLnJlc3BvbnNlLmRhdGE9QkEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsSS5yZXNwb25zZSksSS5yZXNwb25zZS5oZWFkZXJzPXAuZnJvbShJLnJlc3BvbnNlLmhlYWRlcnMpKSksUHJvbWlzZS5yZWplY3QoSSl9KX12YXIgT0E9IjEuMTIuMCI7dmFyIFRBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSx0KT0+e1RBW0FdPWZ1bmN0aW9uKEkpe3JldHVybiB0eXBlb2YgST09PUF8fCJhIisodDwxPyJuICI6IiAiKStBfX0pO3ZhciBsZT17fTtUQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24odCxlLEkpe2Z1bmN0aW9uIHIoZyxvKXtyZXR1cm4iW0F4aW9zIHYiK09BKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gXCciK2crIlwnIitvKyhJPyIuICIrSToiIil9cmV0dXJuKGcsbyxuKT0+e2lmKHQ9PT0hMSl0aHJvdyBuZXcgdShyKG8sIiBoYXMgYmVlbiByZW1vdmVkIisoZT8iIGluICIrZToiIikpLHUuRVJSX0RFUFJFQ0FURUQpO3JldHVybiBlJiYhbGVbb10mJihsZVtvXT0hMCxjb25zb2xlLndhcm4ocihvLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2IitlKyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLHQ/dChnLG8sbik6ITB9fTtUQS5zcGVsbGluZz1mdW5jdGlvbih0KXtyZXR1cm4oZSxJKT0+KGNvbnNvbGUud2FybihgJHtJfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke3R9YCksITApfTtmdW5jdGlvbiBucihBLHQsZSl7aWYodHlwZW9mIEEhPSJvYmplY3QiKXRocm93IG5ldyB1KCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iix1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgST1PYmplY3Qua2V5cyhBKSxyPUkubGVuZ3RoO2Zvcig7ci0tID4wOyl7bGV0IGc9SVtyXSxvPXRbZ107aWYobyl7bGV0IG49QVtnXSxFPW49PT12b2lkIDB8fG8obixnLEEpO2lmKEUhPT0hMCl0aHJvdyBuZXcgdSgib3B0aW9uICIrZysiIG11c3QgYmUgIitFLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnRpbnVlfWlmKGUhPT0hMCl0aHJvdyBuZXcgdSgiVW5rbm93biBvcHRpb24gIitnLHUuRVJSX0JBRF9PUFRJT04pfX12YXIgY0E9e2Fzc2VydE9wdGlvbnM6bnIsdmFsaWRhdG9yczpUQX07dmFyIFk9Y0EudmFsaWRhdG9ycyxJQT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmRlZmF1bHRzPXR8fHt9LHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyB0dCxyZXNwb25zZTpuZXcgdHR9fWFzeW5jIHJlcXVlc3QodCxlKXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QodCxlKX1jYXRjaChJKXtpZihJIGluc3RhbmNlb2YgRXJyb3Ipe2xldCByPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHIpOnI9bmV3IEVycm9yO2xldCBnPXIuc3RhY2s/ci5zdGFjay5yZXBsYWNlKC9eLitcXG4vLCIiKToiIjt0cnl7SS5zdGFjaz9nJiYhU3RyaW5nKEkuc3RhY2spLmVuZHNXaXRoKGcucmVwbGFjZSgvXi4rXFxuLitcXG4vLCIiKSkmJihJLnN0YWNrKz1gJTBBYCtnKTpJLnN0YWNrPWd9Y2F0Y2h7fX10aHJvdyBJfX1fcmVxdWVzdCh0LGUpe3R5cGVvZiB0PT0ic3RyaW5nIj8oZT1lfHx7fSxlLnVybD10KTplPXR8fHt9LGU9Yih0aGlzLmRlZmF1bHRzLGUpO2xldHt0cmFuc2l0aW9uYWw6SSxwYXJhbXNTZXJpYWxpemVyOnIsaGVhZGVyczpnfT1lO0khPT12b2lkIDAmJmNBLmFzc2VydE9wdGlvbnMoSSx7c2lsZW50SlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpZLnRyYW5zaXRpb25hbChZLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKX0sITEpLHIhPW51bGwmJihpLmlzRnVuY3Rpb24ocik/ZS5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6cn06Y0EuYXNzZXJ0T3B0aW9ucyhyLHtlbmNvZGU6WS5mdW5jdGlvbixzZXJpYWxpemU6WS5mdW5jdGlvbn0sITApKSxlLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD9lLmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6ZS5hbGxvd0Fic29sdXRlVXJscz0hMCksY0EuYXNzZXJ0T3B0aW9ucyhlLHtiYXNlVXJsOlkuc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOlkuc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLGUubWV0aG9kPShlLm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBvPWcmJmkubWVyZ2UoZy5jb21tb24sZ1tlLm1ldGhvZF0pO2cmJmkuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxRPT57ZGVsZXRlIGdbUV19KSxlLmhlYWRlcnM9cC5jb25jYXQobyxnKTtsZXQgbj1bXSxFPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihmKXt0eXBlb2YgZi5ydW5XaGVuPT0iZnVuY3Rpb24iJiZmLnJ1bldoZW4oZSk9PT0hMXx8KEU9RSYmZi5zeW5jaHJvbm91cyxuLnVuc2hpZnQoZi5mdWxmaWxsZWQsZi5yZWplY3RlZCkpfSk7bGV0IEI9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihmKXtCLnB1c2goZi5mdWxmaWxsZWQsZi5yZWplY3RlZCl9KTtsZXQgcyxDPTAsbDtpZighRSl7bGV0IFE9W0tBLmJpbmQodGhpcyksdm9pZCAwXTtmb3IoUS51bnNoaWZ0KC4uLm4pLFEucHVzaCguLi5CKSxsPVEubGVuZ3RoLHM9UHJvbWlzZS5yZXNvbHZlKGUpO0M8bDspcz1zLnRoZW4oUVtDKytdLFFbQysrXSk7cmV0dXJuIHN9bD1uLmxlbmd0aDtsZXQgYT1lO2ZvcihDPTA7QzxsOyl7bGV0IFE9bltDKytdLGY9bltDKytdO3RyeXthPVEoYSl9Y2F0Y2goYyl7Zi5jYWxsKHRoaXMsYyk7YnJlYWt9fXRyeXtzPUtBLmNhbGwodGhpcyxhKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKEM9MCxsPUIubGVuZ3RoO0M8bDspcz1zLnRoZW4oQltDKytdLEJbQysrXSk7cmV0dXJuIHN9Z2V0VXJpKHQpe3Q9Yih0aGlzLmRlZmF1bHRzLHQpO2xldCBlPUVBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gbkEoZSx0LnBhcmFtcyx0LnBhcmFtc1NlcmlhbGl6ZXIpfX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbih0KXtJQS5wcm90b3R5cGVbdF09ZnVuY3Rpb24oZSxJKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGIoSXx8e30se21ldGhvZDp0LHVybDplLGRhdGE6KEl8fHt9KS5kYXRhfSkpfX0pO2kuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoSSl7cmV0dXJuIGZ1bmN0aW9uKGcsbyxuKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGIobnx8e30se21ldGhvZDp0LGhlYWRlcnM6ST97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6ZyxkYXRhOm99KSl9fUlBLnByb3RvdHlwZVt0XT1lKCksSUEucHJvdG90eXBlW3QrIkZvcm0iXT1lKCEwKX0pO3ZhciBmQT1JQTt2YXIgbHQ9Y2xhc3MgQXtjb25zdHJ1Y3Rvcih0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IGU7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGcpe2U9Z30pO2xldCBJPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4ocj0+e2lmKCFJLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBnPUkuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtnLS0gPjA7KUkuX2xpc3RlbmVyc1tnXShyKTtJLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPXI9PntsZXQgZyxvPW5ldyBQcm9taXNlKG49PntJLnN1YnNjcmliZShuKSxnPW59KS50aGVuKHIpO3JldHVybiBvLmNhbmNlbD1mdW5jdGlvbigpe0kudW5zdWJzY3JpYmUoZyl9LG99LHQoZnVuY3Rpb24oZyxvLG4pe0kucmVhc29ufHwoSS5yZWFzb249bmV3IEgoZyxvLG4pLGUoSS5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUodCl7aWYodGhpcy5yZWFzb24pe3QodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2godCk6dGhpcy5fbGlzdGVuZXJzPVt0XX11bnN1YnNjcmliZSh0KXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgZT10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZih0KTtlIT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UoZSwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IHQ9bmV3IEFib3J0Q29udHJvbGxlcixlPUk9Pnt0LmFib3J0KEkpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUoZSksdC5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUoZSksdC5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCB0O3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihyKXt0PXJ9KSxjYW5jZWw6dH19fSx1ZT1sdDtmdW5jdGlvbiB1dChBKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIEEuYXBwbHkobnVsbCxlKX19ZnVuY3Rpb24gZHQoQSl7cmV0dXJuIGkuaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIER0PXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhEdCkuZm9yRWFjaCgoW0EsdF0pPT57RHRbdF09QX0pO3ZhciBkZT1EdDtmdW5jdGlvbiBEZShBKXtsZXQgdD1uZXcgZkEoQSksZT1vQShmQS5wcm90b3R5cGUucmVxdWVzdCx0KTtyZXR1cm4gaS5leHRlbmQoZSxmQS5wcm90b3R5cGUsdCx7YWxsT3duS2V5czohMH0pLGkuZXh0ZW5kKGUsdCxudWxsLHthbGxPd25LZXlzOiEwfSksZS5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIERlKGIoQSxyKSl9LGV9dmFyIG09RGUoQUEpO20uQXhpb3M9ZkE7bS5DYW5jZWxlZEVycm9yPUg7bS5DYW5jZWxUb2tlbj11ZTttLmlzQ2FuY2VsPWFBO20uVkVSU0lPTj1PQTttLnRvRm9ybURhdGE9VDttLkF4aW9zRXJyb3I9dTttLkNhbmNlbD1tLkNhbmNlbGVkRXJyb3I7bS5hbGw9ZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UuYWxsKHQpfTttLnNwcmVhZD11dDttLmlzQXhpb3NFcnJvcj1kdDttLm1lcmdlQ29uZmlnPWI7bS5BeGlvc0hlYWRlcnM9cDttLmZvcm1Ub0pTT049QT0+SkEoaS5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTttLmdldEFkYXB0ZXI9TUEuZ2V0QWRhcHRlcjttLkh0dHBTdGF0dXNDb2RlPWRlO20uZGVmYXVsdD1tO3ZhciB4QT1tO3ZhcntBeGlvczpSaSxBeGlvc0Vycm9yOk5pLENhbmNlbGVkRXJyb3I6VWksaXNDYW5jZWw6R2ksQ2FuY2VsVG9rZW46a2ksVkVSU0lPTjpMaSxhbGw6YmksQ2FuY2VsOkppLGlzQXhpb3NFcnJvcjpIaSxzcHJlYWQ6WWksdG9Gb3JtRGF0YTpxaSxBeGlvc0hlYWRlcnM6TWksSHR0cFN0YXR1c0NvZGU6S2ksZm9ybVRvSlNPTjpPaSxnZXRBZGFwdGVyOlRpLG1lcmdlQ29uZmlnOnhpfT14QTt2YXIgbEEsTSx5dCxodD17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe3l0PW5ldyBVaW50OEFycmF5KE0uZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSxQQT1jbGFzc3tpbml0KCl7cmV0dXJuIGxBfHwodHlwZW9mIGZldGNoPCJ1Ij9sQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK2hlKS50aGVuKHQ9PnQuYXJyYXlCdWZmZXIoKSkudGhlbih0PT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZSh0LGh0KSkudGhlbih0aGlzLl9pbml0KTpsQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShoZSwiYmFzZTY0IiksaHQpLnRoZW4odGhpcy5faW5pdCksbEEpfV9pbml0KHQpe009dC5pbnN0YW5jZSxodC5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUodCxlPTApe2lmKCFNKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCBJPXQuYnl0ZUxlbmd0aCxyPU0uZXhwb3J0cy5tYWxsb2MoSSk7eXQuc2V0KHQsciksZT1lfHxOdW1iZXIoTS5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUocixJKSk7bGV0IGc9TS5leHBvcnRzLm1hbGxvYyhlKSxvPU0uZXhwb3J0cy5aU1REX2RlY29tcHJlc3MoZyxlLHIsSSksbj15dC5zbGljZShnLGcrbyk7cmV0dXJuIE0uZXhwb3J0cy5mcmVlKHIpLE0uZXhwb3J0cy5mcmVlKGcpLG59fSxoZT0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciB5ZT1uZXcgUEEsbWU9ITE7YXN5bmMgZnVuY3Rpb24gQ3IoQSx0LGUpe2xldCBJPW51bGw7dHlwZW9mIEEhPSJzdHJpbmciP0k9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP0k9QTpJPWAke3R9LyR7QX1gLEkuZW5kc1dpdGgoIi5qcyIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTMpKSxJLmVuZHNXaXRoKCIud2FzbSIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTUpKSxJLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC05KSk7bGV0IHI9YCR7SX0ud2FzbWAsZz1hd2FpdCB4QS5nZXQoYCR7cn0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOmV9KTttZXx8KGF3YWl0IHllLmluaXQoKSxtZT0hMCk7bGV0IG49eWUuZGVjb2RlKG5ldyBVaW50OEFycmF5KGcuZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke0l9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6bn0pfXZhciB3ZT1Dcjt2YXIgakE9bmV3IE1hcDthc3luYyBmdW5jdGlvbiBCcihBLHQsZSl7bGV0IEk9QSxyPUEsZz1udWxsO3JldHVybiB0eXBlb2YgQSE9InN0cmluZyImJihJPW5ldyBVUkwoQS5ocmVmKSxyPUkuaHJlZiksakEuaGFzKHIpP2c9YXdhaXQgakEuZ2V0KHIpOihqQS5zZXQocix3ZShJLHQsZSkpLGc9YXdhaXQgakEuZ2V0KHIpKSxnfXZhciBwZT1Ccjt2YXIgYXI9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LGQ9YXI7dmFyIFFyPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sVT1Rcjt2YXIgRXI9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFY9RXI7ZnVuY3Rpb24gY3IoQSx0KXtsZXQgZT1udWxsO3N3aXRjaChBKXtjYXNlIFUuVUludDg6e2U9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDg6e2U9bmV3IEludDhBcnJheSh0KTticmVha31jYXNlIFUuVUludDE2OntlPW5ldyBVaW50MTZBcnJheSh0KTticmVha31jYXNlIFUuSW50MTY6e2U9bmV3IEludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQzMjp7ZT1uZXcgVWludDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDMyOntlPW5ldyBJbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ1VpbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ0ludDY0QXJyYXkodCk6ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIFYuRmxvYXQzMjp7ZT1uZXcgRmxvYXQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVi5GbG9hdDY0OntlPW5ldyBGbG9hdDY0QXJyYXkodCk7YnJlYWt9Y2FzZSJudWxsIjp7ZT1udWxsO2JyZWFrfWNhc2UgbnVsbDp7ZT1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIGV9dmFyIHE9Y3I7dmFyIFJlPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLFNlPW5ldyBUZXh0RW5jb2RlcixGZT1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gZnIoQSx0KXtsZXQgZT17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSxJPUEuZnNfb3Blbih0LGUuZmxhZ3MpLGc9QS5mc19zdGF0KHQpLnNpemUsbz1udWxsO1JlP289bmV3IFNoYXJlZEFycmF5QnVmZmVyKGcpOm89bmV3IEFycmF5QnVmZmVyKGcpO2xldCBuPW5ldyBVaW50OEFycmF5KG8pO3JldHVybiBBLmZzX3JlYWQoSSxuLDAsZywwKSxBLmZzX2Nsb3NlKEkpLG59ZnVuY3Rpb24gTmUoQSx0LGUpe2xldCBJPW51bGw7UmU/ST1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoZSk6ST1uZXcgQXJyYXlCdWZmZXIoZSk7bGV0IHI9bmV3IFVpbnQ4QXJyYXkoSSksZz1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsdCxlKTtyZXR1cm4gci5zZXQoZykscn1mdW5jdGlvbiB3KEEsdCxlLEkpe2xldCByPTA7cmV0dXJuIHQhPT1udWxsJiYocj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLEksdC5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheSh0LmJ1ZmZlcikscikpLHJ9ZnVuY3Rpb24geChBLHQsZSl7bGV0IEk9SlNPTi5zdHJpbmdpZnkodCkscj1BLmxlbmd0aEJ5dGVzVVRGOChJKSsxLGc9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHJdKTtBLnN0cmluZ1RvVVRGOChJLGcscil9ZnVuY3Rpb24gUyhBLHQsZSxJKXtsZXQgcj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxnPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsZV0pLG89TmUoQSxyLGcpO3JldHVybiBxKEksby5idWZmZXIpfWZ1bmN0aW9uIHVBKEEsdCl7bGV0IGU9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCx0XSksST1BLlVURjhUb1N0cmluZyhlKTtyZXR1cm4gSlNPTi5wYXJzZShJKX1mdW5jdGlvbiBscihBLHQsZSxJKXtJIT1udWxsJiZJLmxlbmd0aD4wJiZJLmZvckVhY2goZnVuY3Rpb24oQixzKXtzd2l0Y2goQi50eXBlKXtjYXNlIGQuVGV4dFN0cmVhbTp7bGV0IEM9U2UuZW5jb2RlKEIuZGF0YS5kYXRhKSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IEM9U2UuZW5jb2RlKEpTT04uc3RyaW5naWZ5KEIuZGF0YSkpLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLkJpbmFyeVN0cmVhbTp7bGV0IEM9Qi5kYXRhLmRhdGEsbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgZC5JbWFnZTp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMuZGF0YSxzLDApLGE9dyhBLEMuZGlyZWN0aW9uLHMsMSksUT10eXBlb2YgQy5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShDLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sZj17aW1hZ2VUeXBlOkMuaW1hZ2VUeXBlLG5hbWU6Qy5uYW1lLG9yaWdpbjpDLm9yaWdpbixzcGFjaW5nOkMuc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWAsc2l6ZTpDLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxtZXRhZGF0YTpRfTt4KEEsZixzKTticmVha31jYXNlIGQuTWVzaDp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMucG9pbnRzLHMsMCksYT13KEEsQy5jZWxscyxzLDEpLFE9dyhBLEMucG9pbnREYXRhLHMsMiksZj13KEEsQy5jZWxsRGF0YSxzLDMpLGM9e21lc2hUeXBlOkMubWVzaFR5cGUsbmFtZTpDLm5hbWUsbnVtYmVyT2ZQb2ludHM6Qy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZDZWxsczpDLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWAsY2VsbEJ1ZmZlclNpemU6Qy5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOkMubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTt4KEEsYyxzKTticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMucG9pbnREYXRhLHMsMSksUT17cG9pbnRTZXRUeXBlOkMucG9pbnRTZXRUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mUG9pbnRQaXhlbHM6Qy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YH07eChBLFEscyk7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBDPUIuZGF0YSxsPVtdLGE9MDtDLmZvckVhY2goUT0+e2xldCBmPSIiLGM9IiI7US50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGY9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5maXhlZFBhcmFtZXRlcnMscyxhKX1gLGErPTEsYz1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3coQSxRLnBhcmFtZXRlcnMscyxhKX1gLGErPTEpO2xldCBEPXt0cmFuc2Zvcm1UeXBlOlEudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpRLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpRLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOlEubmFtZSxpbnB1dFNwYWNlTmFtZTpRLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpRLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmMsZml4ZWRQYXJhbWV0ZXJzOmZ9O2wucHVzaChEKX0pLHgoQSxsLHMpO2JyZWFrfWNhc2UgZC5Qb2x5RGF0YTp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMucG9pbnRzLHMsMCksYT13KEEsQy52ZXJ0aWNlcyxzLDEpLFE9dyhBLEMubGluZXMscywyKSxmPXcoQSxDLnBvbHlnb25zLHMsMyksYz13KEEsQy50cmlhbmdsZVN0cmlwcyxzLDQpLEQ9dyhBLEMucG9pbnREYXRhLHMsNSksRj13KEEsQy5wb2ludERhdGEscyw2KSx5PXtwb2x5RGF0YVR5cGU6Qy5wb2x5RGF0YVR5cGUsbmFtZTpDLm5hbWUsbnVtYmVyT2ZQb2ludHM6Qy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsdmVydGljZXNCdWZmZXJTaXplOkMudmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLGxpbmVzQnVmZmVyU2l6ZTpDLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxwb2x5Z29uc0J1ZmZlclNpemU6Qy5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOkMudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mUG9pbnRQaXhlbHM6Qy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0R9YCxudW1iZXJPZkNlbGxQaXhlbHM6Qy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtGfWB9O3goQSx5LHMpO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCByPUEuc3RhY2tTYXZlKCksZz0wO3RyeXtnPUEuY2FsbE1haW4odC5zbGljZSgpKX1jYXRjaChCKXt0aHJvdyB0eXBlb2YgQj09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShCKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxCfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUocil9bGV0IG89QS5nZXRNb2R1bGVTdGRvdXQoKSxuPUEuZ2V0TW9kdWxlU3RkZXJyKCksRT1bXTtyZXR1cm4gZSE9bnVsbCYmZS5sZW5ndGg+MCYmZz09PTAmJmUuZm9yRWFjaChmdW5jdGlvbihCLHMpe2xldCBDPW51bGw7c3dpdGNoKEIudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsYSxRKTtDPXtkYXRhOkZlLmRlY29kZShmKX07YnJlYWt9Y2FzZSBkLkpzb25Db21wYXRpYmxlOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGEsUSk7Qz1KU09OLnBhcnNlKEZlLmRlY29kZShmKSk7YnJlYWt9Y2FzZSBkLkJpbmFyeVN0cmVhbTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKTtDPXtkYXRhOk5lKEEsYSxRKX07YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntDPXtwYXRoOkIuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShCLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgZC5CaW5hcnlGaWxlOntDPXtwYXRoOkIuZGF0YS5wYXRoLGRhdGE6ZnIoQSxCLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgZC5JbWFnZTp7bGV0IGE9dUEoQSxzKTthLmRhdGE9UyhBLHMsMCxhLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxhLmRpcmVjdGlvbj1TKEEscywxLFYuRmxvYXQ2NCksYS5tZXRhZGF0YT1uZXcgTWFwKGEubWV0YWRhdGEpLEM9YTticmVha31jYXNlIGQuTWVzaDp7bGV0IGE9dUEoQSxzKTthLm51bWJlck9mUG9pbnRzPjA/YS5wb2ludHM9UyhBLHMsMCxhLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6YS5wb2ludHM9cShhLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxscz4wP2EuY2VsbHM9UyhBLHMsMSxhLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTphLmNlbGxzPXEoYS5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDIsYS5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZkNlbGxQaXhlbHM+MD9hLmNlbGxEYXRhPVMoQSxzLDMsYS5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTphLmNlbGxEYXRhPXEoYS5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWNhc2UgZC5Qb2ludFNldDp7bGV0IGE9dUEoQSxzKTthLm51bWJlck9mUG9pbnRzPjA/YS5wb2ludHM9UyhBLHMsMCxhLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOmEucG9pbnRzPXEoYS5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsMSxhLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31jYXNlIGQuVHJhbnNmb3JtTGlzdDp7bGV0IGE9dUEoQSxzKSxRPTA7YS5mb3JFYWNoKChmLGMpPT57Zi50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGYubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKGFbY10uZml4ZWRQYXJhbWV0ZXJzPVMoQSxzLFEsVi5GbG9hdDY0KSksUSs9MSxmLm51bWJlck9mUGFyYW1ldGVycz4wJiYoYVtjXS5wYXJhbWV0ZXJzPVMoQSxzLFEsZi50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxRKz0xKX0pLEM9YTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsVi5GbG9hdDMyKTphLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LGEudmVydGljZXNCdWZmZXJTaXplPjA/YS52ZXJ0aWNlcz1TKEEscywxLFUuVUludDMyKTphLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxhLmxpbmVzQnVmZmVyU2l6ZT4wP2EubGluZXM9UyhBLHMsMixVLlVJbnQzMik6YS5saW5lcz1uZXcgVWludDMyQXJyYXksYS5wb2x5Z29uc0J1ZmZlclNpemU+MD9hLnBvbHlnb25zPVMoQSxzLDMsVS5VSW50MzIpOmEucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LGEudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/YS50cmlhbmdsZVN0cmlwcz1TKEEscyw0LFUuVUludDMyKTphLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscyw1LGEucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTphLnBvaW50RGF0YT1xKGEucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZkNlbGxQaXhlbHM+MD9hLmNlbGxEYXRhPVMoQSxzLDYsYS5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6YS5jZWxsRGF0YT1xKGEucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgbD17dHlwZTpCLnR5cGUsZGF0YTpDfTtFLnB1c2gobCl9KSx7cmV0dXJuVmFsdWU6ZyxzdGRvdXQ6byxzdGRlcnI6bixvdXRwdXRzOkV9fXZhciBVZT1scjt2YXIgdXI9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uIGRyKEEsdCl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgZT1bXTtmb3IobGV0IEk9MDtJPEEubGVuZ3RoO0krKyl7bGV0IHI9RHIoQVtJXSx0KTtyIT09bnVsbCYmZS5wdXNoKHIpfXJldHVybiBlfWZ1bmN0aW9uIERyKEEsdCl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgZT1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD9lPUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKGU9QSksdXImJmUgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOnQ/ZTplLnNsaWNlKDApfXZhciBHZT1kcjtmdW5jdGlvbiBocihBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIga2U9aHI7ZnVuY3Rpb24geXIoQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIExlPXlyO2Z1bmN0aW9uIG1yKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBiZT1tcjthc3luYyBmdW5jdGlvbiB3cihBLHQsZSxJKXtsZXQgcj1VZShBLHQsZSxJKSxnPVtdO3JldHVybiByLm91dHB1dHMuZm9yRWFjaChmdW5jdGlvbihvKXtpZihvLnR5cGU9PT1kLkJpbmFyeVN0cmVhbXx8by50eXBlPT09ZC5CaW5hcnlGaWxlKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKG4pfWVsc2UgaWYoby50eXBlPT09ZC5JbWFnZSl7bGV0IG49by5kYXRhO2cucHVzaCguLi5rZShuKSl9ZWxzZSBpZihvLnR5cGU9PT1kLk1lc2gpe2xldCBuPW8uZGF0YTtnLnB1c2goLi4uTGUobikpfWVsc2UgaWYoby50eXBlPT09ZC5Qb2x5RGF0YSl7bGV0IG49by5kYXRhO2cucHVzaCguLi5iZShuKSl9fSksX0EocixHZShnLCEwKSl9dmFyIEplPXdyO3ZhciBwcj17cnVuUGlwZWxpbmU6YXN5bmMgZnVuY3Rpb24oQSx0LGUsSSxyLGcpe2xldCBvPWF3YWl0IHBlKEEsdCxnKTtyZXR1cm4gYXdhaXQgSmUobyxlLEkscil9fTtGQShwcik7JTBBLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjolMEElMEFjb21saW5rL2Rpc3QvZXNtL2NvbWxpbmsubWpzOiUwQSAgKCoqJTBBICAgKiBAbGljZW5zZSUwQSAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQyUwQSAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAlMEEgICAqKSUwQSovJTBBJztjSSh1SSk7ZXhwb3J0e25BIGFzIGNvbXByZXNzU3RyaW5naWZ5LGVlIGFzIGdldERlZmF1bHRXZWJXb3JrZXIsaUEgYXMgZ2V0UGlwZWxpbmVXb3JrZXJVcmwsQWUgYXMgZ2V0UGlwZWxpbmVzQmFzZVVybCx5byBhcyBpbWFnZVRvSnNvbixobyBhcyBqc29uVG9JbWFnZSx3byBhcyBqc29uVG9NZXNoLFNvIGFzIGpzb25Ub1BvbHlEYXRhLERvIGFzIG1lc2hUb0pzb24sc0EgYXMgcGFyc2VTdHJpbmdEZWNvbXByZXNzLG1vIGFzIHBvbHlEYXRhVG9Kc29uLFJhIGFzIHNldERlZmF1bHRXZWJXb3JrZXIsY0kgYXMgc2V0UGlwZWxpbmVXb3JrZXJVcmwseWEgYXMgc2V0UGlwZWxpbmVzQmFzZVVybCxyZSBhcyB2ZXJzaW9ufTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCmNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKICAgKikKKi8K""" default_config = JsPackageConfig(default_js_module) js_package = JsPackage(default_config) diff --git a/packages/dicom/package.json b/packages/dicom/package.json index a1b88c312..f03295afd 100644 --- a/packages/dicom/package.json +++ b/packages/dicom/package.json @@ -7,6 +7,9 @@ "itk-wasm": { "test-data-hash": "bafybeibqq72bvmnjodjrsmbfk2nwj7sqxh5wazxegmfjdhlww4rwj3ul6e", "test-data-urls": [ + "https://itk.mypinata.cloud/ipfs/bafybeiaqy5uzmsxkssdwu66foicuodlrxueczmtouz254hgr2azx6xnjwa/data.tar.gz", + "https://gateway.lighthouse.storage/ipfs/bafybeihcaibp7l6cakgm6hwskyfcfal52udzh6zbdz75j23zmyxe772to4", + "https://bafybeiaqy5uzmsxkssdwu66foicuodlrxueczmtouz254hgr2azx6xnjwa.ipfs.w3s.link/data.tar.gz", "https://bafybeiaqy5uzmsxkssdwu66foicuodlrxueczmtouz254hgr2azx6xnjwa.ipfs.w3s.link/ipfs/bafybeiaqy5uzmsxkssdwu66foicuodlrxueczmtouz254hgr2azx6xnjwa/data.tar.gz" ], "emscripten-docker-image": "quay.io/itkwasm/emscripten:latest", @@ -28,7 +31,7 @@ "build:gen:typescript": "itk-wasm pnpm-script build:gen:typescript", "build:gen:python": "pnpm build:wasi && pnpm bindgen:python", "test": "pnpm test:data:download && pnpm build:gen:python && pnpm test:python", - "test:data:download": "dam download test/data test/data.tar.gz bafybeibqq72bvmnjodjrsmbfk2nwj7sqxh5wazxegmfjdhlww4rwj3ul6e https://bafybeiaqy5uzmsxkssdwu66foicuodlrxueczmtouz254hgr2azx6xnjwa.ipfs.w3s.link/ipfs/bafybeiaqy5uzmsxkssdwu66foicuodlrxueczmtouz254hgr2azx6xnjwa/data.tar.gz", + "test:data:download": "dam download test/data test/data.tar.gz bafybeibqq72bvmnjodjrsmbfk2nwj7sqxh5wazxegmfjdhlww4rwj3ul6e https://itk.mypinata.cloud/ipfs/bafybeiaqy5uzmsxkssdwu66foicuodlrxueczmtouz254hgr2azx6xnjwa/data.tar.gz https://gateway.lighthouse.storage/ipfs/bafybeihcaibp7l6cakgm6hwskyfcfal52udzh6zbdz75j23zmyxe772to4 https://bafybeiaqy5uzmsxkssdwu66foicuodlrxueczmtouz254hgr2azx6xnjwa.ipfs.w3s.link/data.tar.gz https://bafybeiaqy5uzmsxkssdwu66foicuodlrxueczmtouz254hgr2azx6xnjwa.ipfs.w3s.link/ipfs/bafybeiaqy5uzmsxkssdwu66foicuodlrxueczmtouz254hgr2azx6xnjwa/data.tar.gz", "test:data:pack": "dam pack test/data test/data.tar.gz", "test:python:wasi": "pnpm test:data:download && pixi run --manifest-path=./pixi.toml test-wasi", "test:python:emscripten": "pnpm test:data:download && pixi run --manifest-path=./pixi.toml test-emscripten", diff --git a/packages/dicom/python/itkwasm-dicom-emscripten/itkwasm_dicom_emscripten/js_package.py b/packages/dicom/python/itkwasm-dicom-emscripten/itkwasm_dicom_emscripten/js_package.py index cfe370783..735d98b06 100644 --- a/packages/dicom/python/itkwasm-dicom-emscripten/itkwasm_dicom_emscripten/js_package.py +++ b/packages/dicom/python/itkwasm-dicom-emscripten/itkwasm_dicom_emscripten/js_package.py @@ -3,6 +3,6 @@ from itkwasm.pyodide import JsPackageConfig, JsPackage from ._version import __version__ -default_js_module = """data:text/javascript;base64,dmFyIHp0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgX3Q9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSl6dChBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyICR0PSI3LjYuMiIsS0E9JHQ7dmFyIEFyPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sRz1Bcjt2YXIgZXI9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LGo9ZXI7ZnVuY3Rpb24gdHIoQSxlKXtsZXQgdD1udWxsO3N3aXRjaChBKXtjYXNlIEcuVUludDg6e3Q9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBHLkludDg6e3Q9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIEcuVUludDE2Ont0PW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIEcuSW50MTY6e3Q9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBHLlVJbnQzMjp7dD1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBHLkludDMyOnt0PW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgRy5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBHLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ0ludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIGouRmxvYXQzMjp7dD1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2Ugai5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIFk9dHI7dmFyIHJyPXtVbmtub3duOiJVbmtub3duIixTY2FsYXI6IlNjYWxhciIsUkdCOiJSR0IiLFJHQkE6IlJHQkEiLE9mZnNldDoiT2Zmc2V0IixWZWN0b3I6IlZlY3RvciIsUG9pbnQ6IlBvaW50IixDb3ZhcmlhbnRWZWN0b3I6IkNvdmFyaWFudFZlY3RvciIsU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvcjoiU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvciIsRGlmZnVzaW9uVGVuc29yM0Q6IkRpZmZ1c2lvblRlbnNvcjNEIixDb21wbGV4OiJDb21wbGV4IixGaXhlZEFycmF5OiJGaXhlZEFycmF5IixBcnJheToiQXJyYXkiLE1hdHJpeDoiTWF0cml4IixWYXJpYWJsZUxlbmd0aFZlY3RvcjoiVmFyaWFibGVMZW5ndGhWZWN0b3IiLFZhcmlhYmxlU2l6ZU1hdHJpeDoiVmFyaWFibGVTaXplTWF0cml4In0sR2U9cnI7dmFyIFdBPWNsYXNze2RpbWVuc2lvbjtjb21wb25lbnRUeXBlO3BpeGVsVHlwZTtjb21wb25lbnRzO2NvbnN0cnVjdG9yKGU9Mix0PUcuVUludDgscj1HZS5TY2FsYXIsST0xKXt0aGlzLmRpbWVuc2lvbj1lLHRoaXMuY29tcG9uZW50VHlwZT10LHRoaXMucGl4ZWxUeXBlPXIsdGhpcy5jb21wb25lbnRzPUl9fSxiZT1XQTtmdW5jdGlvbiBpcihBLGUsdCxyLEkpe0Fbcit0KmVdPUl9dmFyIExlPWlyO3ZhciBqQT1jbGFzc3tpbWFnZVR5cGU7bmFtZT0iSW1hZ2UiO29yaWdpbjtzcGFjaW5nO2RpcmVjdGlvbjtzaXplO21ldGFkYXRhO2RhdGE7Y29uc3RydWN0b3IoZT1uZXcgYmUpe3RoaXMuaW1hZ2VUeXBlPWU7bGV0IHQ9ZS5kaW1lbnNpb247dGhpcy5vcmlnaW49bmV3IEFycmF5KHQpLHRoaXMub3JpZ2luLmZpbGwoMCksdGhpcy5zcGFjaW5nPW5ldyBBcnJheSh0KSx0aGlzLnNwYWNpbmcuZmlsbCgxKSx0aGlzLmRpcmVjdGlvbj1uZXcgRmxvYXQ2NEFycmF5KHQqdCksdGhpcy5kaXJlY3Rpb24uZmlsbCgwKTtmb3IobGV0IHI9MDtyPHQ7cisrKUxlKHRoaXMuZGlyZWN0aW9uLHQscixyLDEpO3RoaXMuc2l6ZT1uZXcgQXJyYXkodCksdGhpcy5zaXplLmZpbGwoMCksdGhpcy5tZXRhZGF0YT1uZXcgTWFwLHRoaXMuZGF0YT1udWxsfX0sSmU9akE7ZnVuY3Rpb24gSXIoQSl7aWYoQS5sZW5ndGg8MSl0aHJvdyBFcnJvcigiQXQgbGVhc3Qgb25lIGltYWdlcyBpcyByZXF1aXJlZC4iKTtsZXQgZT1BWzBdO2lmKGUuZGF0YT09PW51bGwpdGhyb3cgRXJyb3IoIkltYWdlIGRhdGEgaXMgbnVsbC4iKTtsZXQgdD1uZXcgSmUoZS5pbWFnZVR5cGUpO3Qub3JpZ2luPUFycmF5LmZyb20oZS5vcmlnaW4pLHQuc3BhY2luZz1BcnJheS5mcm9tKGUuc3BhY2luZyk7bGV0IHI9dC5pbWFnZVR5cGUuZGltZW5zaW9uO3QuZGlyZWN0aW9uPWUuZGlyZWN0aW9uLnNsaWNlKCk7bGV0IEk9ci0xO3Quc2l6ZT1BcnJheS5mcm9tKGUuc2l6ZSk7bGV0IGk9QS5yZWR1Y2UoKG4sZyk9Pm4rZy5zaXplW0ldLDApO3Quc2l6ZVtJXT1pO2xldCBvPXQuc2l6ZS5yZWR1Y2UoKG4sZyk9Pm4qZywxKSp0LmltYWdlVHlwZS5jb21wb25lbnRzLHM9ZS5kYXRhLmNvbnN0cnVjdG9yO3QuZGF0YT1uZXcgcyhvKTtsZXQgUT10LmltYWdlVHlwZS5jb21wb25lbnRzO2ZvcihsZXQgbj0wO248dC5zaXplLmxlbmd0aC0xO24rKylRKj10LnNpemVbbl07bGV0IGE9MDtpZih0LmRhdGEhPW51bGwpZm9yKGxldCBuPTA7bjxBLmxlbmd0aDtuKyspdC5kYXRhLnNldChBW25dLmRhdGEsUSphKSxhKz1BW25dLnNpemVbSV07ZWxzZSB0aHJvdyBFcnJvcigiQ291bGQgbm90IGNyZWF0ZSByZXN1bHQgaW1hZ2UgZGF0YS4iKTtyZXR1cm4gdH12YXIgdkE9SXI7dmFyIFpBPWNsYXNze2Zjbjt3b3JrZXJRdWV1ZTtydW5JbmZvO2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5mY249dCx0aGlzLndvcmtlclF1ZXVlPW5ldyBBcnJheShlKSx0aGlzLndvcmtlclF1ZXVlLmZpbGwobnVsbCksdGhpcy5ydW5JbmZvPVtdfXJ1blRhc2tzKGUsdD1udWxsKXtsZXQgcj17dGFza1F1ZXVlOltdLHJlc3VsdHM6W10sYWRkaW5nVGFza3M6ITEscG9zdHBvbmVkOiExLHJ1bm5pbmdXb3JrZXJzOjAsaW5kZXg6MCxjb21wbGV0ZWRUYXNrczowLHByb2dyZXNzQ2FsbGJhY2s6dCxjYW5jZWxlZDohMX07cmV0dXJuIHRoaXMucnVuSW5mby5wdXNoKHIpLHIuaW5kZXg9dGhpcy5ydW5JbmZvLmxlbmd0aC0xLHtwcm9taXNlOm5ldyBQcm9taXNlKChJLGkpPT57ci5yZXNvbHZlPUksci5yZWplY3Q9aSxyLnJlc3VsdHM9bmV3IEFycmF5KGUubGVuZ3RoKSxyLmNvbXBsZXRlZFRhc2tzPTAsci5hZGRpbmdUYXNrcz0hMCxlLmZvckVhY2goKG8scyk9Pnt0aGlzLmFkZFRhc2soci5pbmRleCxzLG8pfSksci5hZGRpbmdUYXNrcz0hMX0pLHJ1bklkOnIuaW5kZXh9fXRlcm1pbmF0ZVdvcmtlcnMoKXtmb3IobGV0IGU9MDtlPHRoaXMud29ya2VyUXVldWUubGVuZ3RoO2UrKyl7bGV0IHQ9dGhpcy53b3JrZXJRdWV1ZVtlXTt0Py50ZXJtaW5hdGUoKSx0aGlzLndvcmtlclF1ZXVlW2VdPW51bGx9fWNhbmNlbChlKXtsZXQgdD10aGlzLnJ1bkluZm9bZV07dCE9bnVsbCYmKHQuY2FuY2VsZWQ9ITApfWFkZFRhc2soZSx0LHIpe2xldCBJPXRoaXMucnVuSW5mb1tlXTtpZihJPy5jYW5jZWxlZD09PSEwKXtJLnJlamVjdCgiUmVtYWluaW5nIHRhc2tzIGNhbmNlbGVkIiksdGhpcy5jbGVhclRhc2soSS5pbmRleCk7cmV0dXJufWlmKHRoaXMud29ya2VyUXVldWUubGVuZ3RoPjApe2xldCBpPXRoaXMud29ya2VyUXVldWUucG9wKCk7SS5ydW5uaW5nV29ya2VycysrLHJbci5sZW5ndGgtMV0ud2ViV29ya2VyPWksdGhpcy5mY24oLi4ucikudGhlbigoe3dlYldvcmtlcjpvLC4uLnN9KT0+e2lmKHRoaXMud29ya2VyUXVldWUucHVzaChvKSx0aGlzLnJ1bkluZm9bZV0hPT1udWxsKXtpZihJLnJ1bm5pbmdXb3JrZXJzLS0sSS5yZXN1bHRzW3RdPXMsSS5jb21wbGV0ZWRUYXNrcysrLEkucHJvZ3Jlc3NDYWxsYmFjayE9bnVsbCYmSS5wcm9ncmVzc0NhbGxiYWNrKEkuY29tcGxldGVkVGFza3MsSS5yZXN1bHRzLmxlbmd0aCksSS50YXNrUXVldWUubGVuZ3RoPjApe2xldCBRPUkudGFza1F1ZXVlLnNoaWZ0KCk7dGhpcy5hZGRUYXNrKGUsUVswXSxRWzFdKX1lbHNlIGlmKCFJLmFkZGluZ1Rhc2tzJiZJLnJ1bm5pbmdXb3JrZXJzPT09MCl7bGV0IFE9SS5yZXN1bHRzO0kucmVzb2x2ZShRKSx0aGlzLmNsZWFyVGFzayhJLmluZGV4KX19fSkuY2F0Y2gobz0+e0kucmVqZWN0KG8pLHRoaXMuY2xlYXJUYXNrKEkuaW5kZXgpfSl9ZWxzZSBJLnJ1bm5pbmdXb3JrZXJzIT09MHx8SS5wb3N0cG9uZWQ/SS50YXNrUXVldWUucHVzaChbdCxyXSk6KEkucG9zdHBvbmVkPSEwLHNldFRpbWVvdXQoKCk9PntJLnBvc3Rwb25lZD0hMSx0aGlzLmFkZFRhc2soSS5pbmRleCx0LHIpfSw1MCkpfWNsZWFyVGFzayhlKXt0aGlzLnJ1bkluZm9bZV0ucmVzdWx0cz1bXSx0aGlzLnJ1bkluZm9bZV0udGFza1F1ZXVlPVtdLHRoaXMucnVuSW5mb1tlXS5wcm9ncmVzc0NhbGxiYWNrPW51bGwsdGhpcy5ydW5JbmZvW2VdLmNhbmNlbGVkPW51bGwsdGhpcy5ydW5JbmZvW2VdLnJlamVjdD0oKT0+e30sdGhpcy5ydW5JbmZvW2VdLnJlc29sdmU9KCk9Pnt9fX0sVkE9WkE7dmFyIG9yPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxmPW9yO3ZhciBIZT1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxucj1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxfQT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksWEE9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLGRBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxZZT1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixncj17Y2FuSGFuZGxlOkE9PlllKEEpJiZBW0hlXSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBPZShBLGUpLFt0LFt0XV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksJEEoQSl9fSxhcj17Y2FuSGFuZGxlOkE9PlllKEEpJiZkQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCBlO3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW2UsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sVGU9bmV3IE1hcChbWyJwcm94eSIsZ3JdLFsidGhyb3ciLGFyXV0pO2Z1bmN0aW9uIHNyKEEsZSl7Zm9yKGxldCB0IG9mIEEpaWYoZT09PXR8fHQ9PT0iKiJ8fHQgaW5zdGFuY2VvZiBSZWdFeHAmJnQudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBPZShBLGU9Z2xvYmFsVGhpcyx0PVsiKiJdKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIHIoSSl7aWYoIUl8fCFJLmRhdGEpcmV0dXJuO2lmKCFzcih0LEkub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiAnJHtJLm9yaWdpbn0nIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDppLHR5cGU6byxwYXRoOnN9PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LEkuZGF0YSksUT0oSS5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcCh2KSxhO3RyeXtsZXQgbj1zLnNsaWNlKDAsLTEpLnJlZHVjZSgodSxDKT0+dVtDXSxBKSxnPXMucmVkdWNlKCh1LEMpPT51W0NdLEEpO3N3aXRjaChvKXtjYXNlIkdFVCI6YT1nO2JyZWFrO2Nhc2UiU0VUIjpuW3Muc2xpY2UoLTEpWzBdXT12KEkuZGF0YS52YWx1ZSksYT0hMDticmVhaztjYXNlIkFQUExZIjphPWcuYXBwbHkobixRKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCB1PW5ldyBnKC4uLlEpO2E9bHIodSl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTp1LHBvcnQyOkN9PW5ldyBNZXNzYWdlQ2hhbm5lbDtPZShBLEMpLGE9QWUodSxbdV0pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6YT12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKG4pe2E9e3ZhbHVlOm4sW2RBXTowfX1Qcm9taXNlLnJlc29sdmUoYSkuY2F0Y2gobj0+KHt2YWx1ZTpuLFtkQV06MH0pKS50aGVuKG49PntsZXRbZyx1XT15QShuKTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSx7aWQ6aX0pLHUpLG89PT0iUkVMRUFTRSImJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHIpLHhlKGUpLFhBIGluIEEmJnR5cGVvZiBBW1hBXT09ImZ1bmN0aW9uIiYmQVtYQV0oKSl9KS5jYXRjaChuPT57bGV0W2csdV09eUEoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFtkQV06MH0pO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcpLHtpZDppfSksdSl9KX0pLGUuc3RhcnQmJmUuc3RhcnQoKX1mdW5jdGlvbiBCcihBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiB4ZShBKXtCcihBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uICRBKEEsZSl7cmV0dXJuIHpBKEEsW10sZSl9ZnVuY3Rpb24gcEEoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIHFlKEEpe3JldHVybiBWKEEse3R5cGU6IlJFTEVBU0UifSkudGhlbigoKT0+e3hlKEEpfSl9dmFyIG1BPW5ldyBXZWFrTWFwLGhBPSJGaW5hbGl6YXRpb25SZWdpc3RyeSJpbiBnbG9iYWxUaGlzJiZuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoQT0+e2xldCBlPShtQS5nZXQoQSl8fDApLTE7bUEuc2V0KEEsZSksZT09PTAmJnFlKEEpfSk7ZnVuY3Rpb24gQ3IoQSxlKXtsZXQgdD0obUEuZ2V0KGUpfHwwKSsxO21BLnNldChlLHQpLGhBJiZoQS5yZWdpc3RlcihBLGUsQSl9ZnVuY3Rpb24gUXIoQSl7aEEmJmhBLnVucmVnaXN0ZXIoQSl9ZnVuY3Rpb24gekEoQSxlPVtdLHQ9ZnVuY3Rpb24oKXt9KXtsZXQgcj0hMSxJPW5ldyBQcm94eSh0LHtnZXQoaSxvKXtpZihwQShyKSxvPT09X0EpcmV0dXJuKCk9PntRcihJKSxxZShBKSxyPSEwfTtpZihvPT09InRoZW4iKXtpZihlLmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9Pkl9O2xldCBzPVYoQSx7dHlwZToiR0VUIixwYXRoOmUubWFwKFE9PlEudG9TdHJpbmcoKSl9KS50aGVuKHYpO3JldHVybiBzLnRoZW4uYmluZChzKX1yZXR1cm4gekEoQSxbLi4uZSxvXSl9LHNldChpLG8scyl7cEEocik7bGV0W1EsYV09eUEocyk7cmV0dXJuIFYoQSx7dHlwZToiU0VUIixwYXRoOlsuLi5lLG9dLm1hcChuPT5uLnRvU3RyaW5nKCkpLHZhbHVlOlF9LGEpLnRoZW4odil9LGFwcGx5KGksbyxzKXtwQShyKTtsZXQgUT1lW2UubGVuZ3RoLTFdO2lmKFE9PT1ucilyZXR1cm4gVihBLHt0eXBlOiJFTkRQT0lOVCJ9KS50aGVuKHYpO2lmKFE9PT0iYmluZCIpcmV0dXJuIHpBKEEsZS5zbGljZSgwLC0xKSk7bGV0W2Esbl09TWUocyk7cmV0dXJuIFYoQSx7dHlwZToiQVBQTFkiLHBhdGg6ZS5tYXAoZz0+Zy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6YX0sbikudGhlbih2KX0sY29uc3RydWN0KGksbyl7cEEocik7bGV0W3MsUV09TWUobyk7cmV0dXJuIFYoQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOmUubWFwKGE9PmEudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OnN9LFEpLnRoZW4odil9fSk7cmV0dXJuIENyKEksQSksSX1mdW5jdGlvbiBFcihBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBNZShBKXtsZXQgZT1BLm1hcCh5QSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLEVyKGUubWFwKHQ9PnRbMV0pKV19dmFyIFBlPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEFlKEEsZSl7cmV0dXJuIFBlLnNldChBLGUpLEF9ZnVuY3Rpb24gbHIoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W0hlXTohMH0pfWZ1bmN0aW9uIHlBKEEpe2ZvcihsZXRbZSx0XW9mIFRlKWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbcixJXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTpyfSxJXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sUGUuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gdihBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBUZS5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIFYoQSxlLHQpe3JldHVybiBuZXcgUHJvbWlzZShyPT57bGV0IEk9Y3IoKTtBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIGkobyl7IW8uZGF0YXx8IW8uZGF0YS5pZHx8by5kYXRhLmlkIT09SXx8KEEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsaSkscihvLmRhdGEpKX0pLEEuc3RhcnQmJkEuc3RhcnQoKSxBLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOkl9LGUpLHQpfSl9ZnVuY3Rpb24gY3IoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfWZ1bmN0aW9uIGlBKEEsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkoZSxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6dXJ9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOnRlfT1PYmplY3Qsd0E9KEE9PmU9PntsZXQgdD11ci5jYWxsKGUpO3JldHVybiBBW3RdfHwoQVt0XT10LnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksTT1BPT4oQT1BLnRvTG93ZXJDYXNlKCksZT0+d0EoZSk9PT1BKSxTQT1BPT5lPT50eXBlb2YgZT09PUEse2lzQXJyYXk6WH09QXJyYXksSUE9U0EoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIGZyKEEpe3JldHVybiBBIT09bnVsbCYmIUlBKEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIUlBKEEuY29uc3RydWN0b3IpJiZKKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciBqZT1NKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIHByKEEpe2xldCBlO3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/ZT1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6ZT1BJiZBLmJ1ZmZlciYmamUoQS5idWZmZXIpLGV9dmFyIGRyPVNBKCJzdHJpbmciKSxKPVNBKCJmdW5jdGlvbiIpLHZlPVNBKCJudW1iZXIiKSxGQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLG1yPUE9PkE9PT0hMHx8QT09PSExLERBPUE9PntpZih3QShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCBlPXRlKEEpO3JldHVybihlPT09bnVsbHx8ZT09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PW51bGwpJiYhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiBBKSYmIShTeW1ib2wuaXRlcmF0b3IgaW4gQSl9LGhyPU0oIkRhdGUiKSx5cj1NKCJGaWxlIiksRHI9TSgiQmxvYiIpLHdyPU0oIkZpbGVMaXN0IiksU3I9QT0+RkEoQSkmJkooQS5waXBlKSxGcj1BPT57bGV0IGU7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8SihBLmFwcGVuZCkmJigoZT13QShBKSk9PT0iZm9ybWRhdGEifHxlPT09Im9iamVjdCImJkooQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sUnI9TSgiVVJMU2VhcmNoUGFyYW1zIiksW2tyLFVyLE5yLEdyXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChNKSxicj1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gb0EoQSxlLHthbGxPd25LZXlzOnQ9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgcixJO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSxYKEEpKWZvcihyPTAsST1BLmxlbmd0aDtyPEk7cisrKWUuY2FsbChudWxsLEFbcl0scixBKTtlbHNle2xldCBpPXQ/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSk6T2JqZWN0LmtleXMoQSksbz1pLmxlbmd0aCxzO2ZvcihyPTA7cjxvO3IrKylzPWlbcl0sZS5jYWxsKG51bGwsQVtzXSxzLEEpfX1mdW5jdGlvbiBaZShBLGUpe2U9ZS50b0xvd2VyQ2FzZSgpO2xldCB0PU9iamVjdC5rZXlzKEEpLHI9dC5sZW5ndGgsSTtmb3IoO3ItLSA+MDspaWYoST10W3JdLGU9PT1JLnRvTG93ZXJDYXNlKCkpcmV0dXJuIEk7cmV0dXJuIG51bGx9dmFyIFo9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Omdsb2JhbCxWZT1BPT4hSUEoQSkmJkEhPT1aO2Z1bmN0aW9uIGVlKCl7bGV0e2Nhc2VsZXNzOkF9PVZlKHRoaXMpJiZ0aGlzfHx7fSxlPXt9LHQ9KHIsSSk9PntsZXQgaT1BJiZaZShlLEkpfHxJO0RBKGVbaV0pJiZEQShyKT9lW2ldPWVlKGVbaV0scik6REEocik/ZVtpXT1lZSh7fSxyKTpYKHIpP2VbaV09ci5zbGljZSgpOmVbaV09cn07Zm9yKGxldCByPTAsST1hcmd1bWVudHMubGVuZ3RoO3I8STtyKyspYXJndW1lbnRzW3JdJiZvQShhcmd1bWVudHNbcl0sdCk7cmV0dXJuIGV9dmFyIExyPShBLGUsdCx7YWxsT3duS2V5czpyfT17fSk9PihvQShlLChJLGkpPT57dCYmSihJKT9BW2ldPWlBKEksdCk6QVtpXT1JfSx7YWxsT3duS2V5czpyfSksQSksSnI9QT0+KEEuY2hhckNvZGVBdCgwKT09PTY1Mjc5JiYoQT1BLnNsaWNlKDEpKSxBKSxNcj0oQSxlLHQscik9PntBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlLHIpLEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPUEsT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInN1cGVyIix7dmFsdWU6ZS5wcm90b3R5cGV9KSx0JiZPYmplY3QuYXNzaWduKEEucHJvdG90eXBlLHQpfSxIcj0oQSxlLHQscik9PntsZXQgSSxpLG8scz17fTtpZihlPWV8fHt9LEE9PW51bGwpcmV0dXJuIGU7ZG97Zm9yKEk9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSksaT1JLmxlbmd0aDtpLS0gPjA7KW89SVtpXSwoIXJ8fHIobyxBLGUpKSYmIXNbb10mJihlW29dPUFbb10sc1tvXT0hMCk7QT10IT09ITEmJnRlKEEpfXdoaWxlKEEmJighdHx8dChBLGUpKSYmQSE9PU9iamVjdC5wcm90b3R5cGUpO3JldHVybiBlfSxZcj0oQSxlLHQpPT57QT1TdHJpbmcoQSksKHQ9PT12b2lkIDB8fHQ+QS5sZW5ndGgpJiYodD1BLmxlbmd0aCksdC09ZS5sZW5ndGg7bGV0IHI9QS5pbmRleE9mKGUsdCk7cmV0dXJuIHIhPT0tMSYmcj09PXR9LFRyPUE9PntpZighQSlyZXR1cm4gbnVsbDtpZihYKEEpKXJldHVybiBBO2xldCBlPUEubGVuZ3RoO2lmKCF2ZShlKSlyZXR1cm4gbnVsbDtsZXQgdD1uZXcgQXJyYXkoZSk7Zm9yKDtlLS0gPjA7KXRbZV09QVtlXTtyZXR1cm4gdH0sT3I9KEE9PmU9PkEmJmUgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJnRlKFVpbnQ4QXJyYXkpKSx4cj0oQSxlKT0+e2xldCByPShBJiZBW1N5bWJvbC5pdGVyYXRvcl0pLmNhbGwoQSksSTtmb3IoOyhJPXIubmV4dCgpKSYmIUkuZG9uZTspe2xldCBpPUkudmFsdWU7ZS5jYWxsKEEsaVswXSxpWzFdKX19LHFyPShBLGUpPT57bGV0IHQscj1bXTtmb3IoOyh0PUEuZXhlYyhlKSkhPT1udWxsOylyLnB1c2godCk7cmV0dXJuIHJ9LFByPU0oIkhUTUxGb3JtRWxlbWVudCIpLEtyPUE9PkEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9cc10oW2EtelxkXSkoXHcqKS9nLGZ1bmN0aW9uKHQscixJKXtyZXR1cm4gci50b1VwcGVyQ2FzZSgpK0l9KSxXZT0oKHtoYXNPd25Qcm9wZXJ0eTpBfSk9PihlLHQpPT5BLmNhbGwoZSx0KSkoT2JqZWN0LnByb3RvdHlwZSksV3I9TSgiUmVnRXhwIiksWGU9KEEsZSk9PntsZXQgdD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhBKSxyPXt9O29BKHQsKEksaSk9PntsZXQgbzsobz1lKEksaSxBKSkhPT0hMSYmKHJbaV09b3x8SSl9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBLHIpfSxqcj1BPT57WGUoQSwoZSx0KT0+e2lmKEooQSkmJlsiYXJndW1lbnRzIiwiY2FsbGVyIiwiY2FsbGVlIl0uaW5kZXhPZih0KSE9PS0xKXJldHVybiExO2xldCByPUFbdF07aWYoSihyKSl7aWYoZS5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiBlKXtlLndyaXRhYmxlPSExO3JldHVybn1lLnNldHx8KGUuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kICciK3QrIiciKX0pfX0pfSx2cj0oQSxlKT0+e2xldCB0PXt9LHI9ST0+e0kuZm9yRWFjaChpPT57dFtpXT0hMH0pfTtyZXR1cm4gWChBKT9yKEEpOnIoU3RyaW5nKEEpLnNwbGl0KGUpKSx0fSxacj0oKT0+e30sVnI9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gWHIoQSl7cmV0dXJuISEoQSYmSihBLmFwcGVuZCkmJkFbU3ltYm9sLnRvU3RyaW5nVGFnXT09PSJGb3JtRGF0YSImJkFbU3ltYm9sLml0ZXJhdG9yXSl9dmFyIHpyPUE9PntsZXQgZT1uZXcgQXJyYXkoMTApLHQ9KHIsSSk9PntpZihGQShyKSl7aWYoZS5pbmRleE9mKHIpPj0wKXJldHVybjtpZighKCJ0b0pTT04iaW4gcikpe2VbSV09cjtsZXQgaT1YKHIpP1tdOnt9O3JldHVybiBvQShyLChvLHMpPT57bGV0IFE9dChvLEkrMSk7IUlBKFEpJiYoaVtzXT1RKX0pLGVbSV09dm9pZCAwLGl9fXJldHVybiByfTtyZXR1cm4gdChBLDApfSxfcj1NKCJBc3luY0Z1bmN0aW9uIiksJHI9QT0+QSYmKEZBKEEpfHxKKEEpKSYmSihBLnRoZW4pJiZKKEEuY2F0Y2gpLHplPSgoQSxlKT0+QT9zZXRJbW1lZGlhdGU6ZT8oKHQscik9PihaLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOkksZGF0YTppfSk9PntJPT09WiYmaT09PXQmJnIubGVuZ3RoJiZyLnNoaWZ0KCkoKX0sITEpLEk9PntyLnB1c2goSSksWi5wb3N0TWVzc2FnZSh0LCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTp0PT5zZXRUaW1lb3V0KHQpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLEooWi5wb3N0TWVzc2FnZSkpLEFpPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChaKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fHplLEI9e2lzQXJyYXk6WCxpc0FycmF5QnVmZmVyOmplLGlzQnVmZmVyOmZyLGlzRm9ybURhdGE6RnIsaXNBcnJheUJ1ZmZlclZpZXc6cHIsaXNTdHJpbmc6ZHIsaXNOdW1iZXI6dmUsaXNCb29sZWFuOm1yLGlzT2JqZWN0OkZBLGlzUGxhaW5PYmplY3Q6REEsaXNSZWFkYWJsZVN0cmVhbTprcixpc1JlcXVlc3Q6VXIsaXNSZXNwb25zZTpOcixpc0hlYWRlcnM6R3IsaXNVbmRlZmluZWQ6SUEsaXNEYXRlOmhyLGlzRmlsZTp5cixpc0Jsb2I6RHIsaXNSZWdFeHA6V3IsaXNGdW5jdGlvbjpKLGlzU3RyZWFtOlNyLGlzVVJMU2VhcmNoUGFyYW1zOlJyLGlzVHlwZWRBcnJheTpPcixpc0ZpbGVMaXN0OndyLGZvckVhY2g6b0EsbWVyZ2U6ZWUsZXh0ZW5kOkxyLHRyaW06YnIsc3RyaXBCT006SnIsaW5oZXJpdHM6TXIsdG9GbGF0T2JqZWN0OkhyLGtpbmRPZjp3QSxraW5kT2ZUZXN0Ok0sZW5kc1dpdGg6WXIsdG9BcnJheTpUcixmb3JFYWNoRW50cnk6eHIsbWF0Y2hBbGw6cXIsaXNIVE1MRm9ybTpQcixoYXNPd25Qcm9wZXJ0eTpXZSxoYXNPd25Qcm9wOldlLHJlZHVjZURlc2NyaXB0b3JzOlhlLGZyZWV6ZU1ldGhvZHM6anIsdG9PYmplY3RTZXQ6dnIsdG9DYW1lbENhc2U6S3Isbm9vcDpacix0b0Zpbml0ZU51bWJlcjpWcixmaW5kS2V5OlplLGdsb2JhbDpaLGlzQ29udGV4dERlZmluZWQ6VmUsaXNTcGVjQ29tcGxpYW50Rm9ybTpYcix0b0pTT05PYmplY3Q6enIsaXNBc3luY0ZuOl9yLGlzVGhlbmFibGU6JHIsc2V0SW1tZWRpYXRlOnplLGFzYXA6QWl9O2Z1bmN0aW9uIHooQSxlLHQscixJKXtFcnJvci5jYWxsKHRoaXMpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFjayx0aGlzLm1lc3NhZ2U9QSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLGUmJih0aGlzLmNvZGU9ZSksdCYmKHRoaXMuY29uZmlnPXQpLHImJih0aGlzLnJlcXVlc3Q9ciksSSYmKHRoaXMucmVzcG9uc2U9SSx0aGlzLnN0YXR1cz1JLnN0YXR1cz9JLnN0YXR1czpudWxsKX1CLmluaGVyaXRzKHosRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzpCLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgX2U9ei5wcm90b3R5cGUsJGU9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57JGVbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoeiwkZSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KF9lLCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pO3ouZnJvbT0oQSxlLHQscixJLGkpPT57bGV0IG89T2JqZWN0LmNyZWF0ZShfZSk7cmV0dXJuIEIudG9GbGF0T2JqZWN0KEEsbyxmdW5jdGlvbihRKXtyZXR1cm4gUSE9PUVycm9yLnByb3RvdHlwZX0scz0+cyE9PSJpc0F4aW9zRXJyb3IiKSx6LmNhbGwobyxBLm1lc3NhZ2UsZSx0LHIsSSksby5jYXVzZT1BLG8ubmFtZT1BLm5hbWUsaSYmT2JqZWN0LmFzc2lnbihvLGkpLG99O3ZhciBkPXo7dmFyIFJBPW51bGw7ZnVuY3Rpb24gcmUoQSl7cmV0dXJuIEIuaXNQbGFpbk9iamVjdChBKXx8Qi5pc0FycmF5KEEpfWZ1bmN0aW9uIGV0KEEpe3JldHVybiBCLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIEF0KEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24oSSxpKXtyZXR1cm4gST1ldChJKSwhdCYmaT8iWyIrSSsiXSI6SX0pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gZWkoQSl7cmV0dXJuIEIuaXNBcnJheShBKSYmIUEuc29tZShyZSl9dmFyIHRpPUIudG9GbGF0T2JqZWN0KEIse30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiByaShBLGUsdCl7aWYoIUIuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoUkF8fEZvcm1EYXRhKSx0PUIudG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihjLGwpe3JldHVybiFCLmlzVW5kZWZpbmVkKGxbY10pfSk7bGV0IHI9dC5tZXRhVG9rZW5zLEk9dC52aXNpdG9yfHxuLGk9dC5kb3RzLG89dC5pbmRleGVzLFE9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmQi5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFCLmlzRnVuY3Rpb24oSSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBhKEUpe2lmKEU9PT1udWxsKXJldHVybiIiO2lmKEIuaXNEYXRlKEUpKXJldHVybiBFLnRvSVNPU3RyaW5nKCk7aWYoIVEmJkIuaXNCbG9iKEUpKXRocm93IG5ldyBkKCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBCLmlzQXJyYXlCdWZmZXIoRSl8fEIuaXNUeXBlZEFycmF5KEUpP1EmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtFXSk6QnVmZmVyLmZyb20oRSk6RX1mdW5jdGlvbiBuKEUsYyxsKXtsZXQgcD1FO2lmKEUmJiFsJiZ0eXBlb2YgRT09Im9iamVjdCIpe2lmKEIuZW5kc1dpdGgoYywie30iKSljPXI/YzpjLnNsaWNlKDAsLTIpLEU9SlNPTi5zdHJpbmdpZnkoRSk7ZWxzZSBpZihCLmlzQXJyYXkoRSkmJmVpKEUpfHwoQi5pc0ZpbGVMaXN0KEUpfHxCLmVuZHNXaXRoKGMsIltdIikpJiYocD1CLnRvQXJyYXkoRSkpKXJldHVybiBjPWV0KGMpLHAuZm9yRWFjaChmdW5jdGlvbihoLEwpeyEoQi5pc1VuZGVmaW5lZChoKXx8aD09PW51bGwpJiZlLmFwcGVuZChvPT09ITA/QXQoW2NdLEwsaSk6bz09PW51bGw/YzpjKyJbXSIsYShoKSl9KSwhMX1yZXR1cm4gcmUoRSk/ITA6KGUuYXBwZW5kKEF0KGwsYyxpKSxhKEUpKSwhMSl9bGV0IGc9W10sdT1PYmplY3QuYXNzaWduKHRpLHtkZWZhdWx0VmlzaXRvcjpuLGNvbnZlcnRWYWx1ZTphLGlzVmlzaXRhYmxlOnJlfSk7ZnVuY3Rpb24gQyhFLGMpe2lmKCFCLmlzVW5kZWZpbmVkKEUpKXtpZihnLmluZGV4T2YoRSkhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrYy5qb2luKCIuIikpO2cucHVzaChFKSxCLmZvckVhY2goRSxmdW5jdGlvbihwLG0peyghKEIuaXNVbmRlZmluZWQocCl8fHA9PT1udWxsKSYmSS5jYWxsKGUscCxCLmlzU3RyaW5nKG0pP20udHJpbSgpOm0sYyx1KSk9PT0hMCYmQyhwLGM/Yy5jb25jYXQobSk6W21dKX0pLGcucG9wKCl9fWlmKCFCLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gQyhBKSxlfXZhciBQPXJpO2Z1bmN0aW9uIHR0KEEpe2xldCBlPXsiISI6IiUyMSIsIiciOiIlMjciLCIoIjoiJTI4IiwiKSI6IiUyOSIsIn4iOiIlN0UiLCIlMjAiOiIrIiwiJTAwIjoiXDAifTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoL1shJygpfl18JTIwfCUwMC9nLGZ1bmN0aW9uKHIpe3JldHVybiBlW3JdfSl9ZnVuY3Rpb24gcnQoQSxlKXt0aGlzLl9wYWlycz1bXSxBJiZQKEEsdGhpcyxlKX12YXIgaXQ9cnQucHJvdG90eXBlO2l0LmFwcGVuZD1mdW5jdGlvbihlLHQpe3RoaXMuX3BhaXJzLnB1c2goW2UsdF0pfTtpdC50b1N0cmluZz1mdW5jdGlvbihlKXtsZXQgdD1lP2Z1bmN0aW9uKHIpe3JldHVybiBlLmNhbGwodGhpcyxyLHR0KX06dHQ7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihJKXtyZXR1cm4gdChJWzBdKSsiPSIrdChJWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIGtBPXJ0O2Z1bmN0aW9uIGlpKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpLnJlcGxhY2UoLyU1Qi9naSwiWyIpLnJlcGxhY2UoLyU1RC9naSwiXSIpfWZ1bmN0aW9uIG5BKEEsZSx0KXtpZighZSlyZXR1cm4gQTtsZXQgcj10JiZ0LmVuY29kZXx8aWk7Qi5pc0Z1bmN0aW9uKHQpJiYodD17c2VyaWFsaXplOnR9KTtsZXQgST10JiZ0LnNlcmlhbGl6ZSxpO2lmKEk/aT1JKGUsdCk6aT1CLmlzVVJMU2VhcmNoUGFyYW1zKGUpP2UudG9TdHJpbmcoKTpuZXcga0EoZSx0KS50b1N0cmluZyhyKSxpKXtsZXQgbz1BLmluZGV4T2YoIiMiKTtvIT09LTEmJihBPUEuc2xpY2UoMCxvKSksQSs9KEEuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikraX1yZXR1cm4gQX12YXIgaWU9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmhhbmRsZXJzPVtdfXVzZShlLHQscil7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOmUscmVqZWN0ZWQ6dCxzeW5jaHJvbm91czpyP3Iuc3luY2hyb25vdXM6ITEscnVuV2hlbjpyP3IucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX1lamVjdChlKXt0aGlzLmhhbmRsZXJzW2VdJiYodGhpcy5oYW5kbGVyc1tlXT1udWxsKX1jbGVhcigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX1mb3JFYWNoKGUpe0IuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKHIpe3IhPT1udWxsJiZlKHIpfSl9fSxJZT1pZTt2YXIgVUE9e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9O3ZhciBJdD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6a0E7dmFyIG90PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgbnQ9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgZ3Q9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6SXQsRm9ybURhdGE6b3QsQmxvYjpudH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBnZT17fTtfdChnZSx7aGFzQnJvd3NlckVudjooKT0+bmUsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5JaSxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9Pm9pLG5hdmlnYXRvcjooKT0+b2Usb3JpZ2luOigpPT5uaX0pO3ZhciBuZT10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1IixvZT10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsSWk9bmUmJighb2V8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2Yob2UucHJvZHVjdCk8MCksb2k9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLG5pPW5lJiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBTPXsuLi5nZSwuLi5ndH07ZnVuY3Rpb24gYWUoQSxlKXtyZXR1cm4gUChBLG5ldyBTLmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLE9iamVjdC5hc3NpZ24oe3Zpc2l0b3I6ZnVuY3Rpb24odCxyLEksaSl7cmV0dXJuIFMuaXNOb2RlJiZCLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChyLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6aS5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxlKSl9ZnVuY3Rpb24gZ2koQSl7cmV0dXJuIEIubWF0Y2hBbGwoL1x3K3xcWyhcdyopXS9nLEEpLm1hcChlPT5lWzBdPT09IltdIj8iIjplWzFdfHxlWzBdKX1mdW5jdGlvbiBhaShBKXtsZXQgZT17fSx0PU9iamVjdC5rZXlzKEEpLHIsST10Lmxlbmd0aCxpO2ZvcihyPTA7cjxJO3IrKylpPXRbcl0sZVtpXT1BW2ldO3JldHVybiBlfWZ1bmN0aW9uIHNpKEEpe2Z1bmN0aW9uIGUodCxyLEksaSl7bGV0IG89dFtpKytdO2lmKG89PT0iX19wcm90b19fIilyZXR1cm4hMDtsZXQgcz1OdW1iZXIuaXNGaW5pdGUoK28pLFE9aT49dC5sZW5ndGg7cmV0dXJuIG89IW8mJkIuaXNBcnJheShJKT9JLmxlbmd0aDpvLFE/KEIuaGFzT3duUHJvcChJLG8pP0lbb109W0lbb10scl06SVtvXT1yLCFzKTooKCFJW29dfHwhQi5pc09iamVjdChJW29dKSkmJihJW29dPVtdKSxlKHQscixJW29dLGkpJiZCLmlzQXJyYXkoSVtvXSkmJihJW29dPWFpKElbb10pKSwhcyl9aWYoQi5pc0Zvcm1EYXRhKEEpJiZCLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IHQ9e307cmV0dXJuIEIuZm9yRWFjaEVudHJ5KEEsKHIsSSk9PntlKGdpKHIpLEksdCwwKX0pLHR9cmV0dXJuIG51bGx9dmFyIE5BPXNpO2Z1bmN0aW9uIEJpKEEsZSx0KXtpZihCLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4oZXx8SlNPTi5wYXJzZSkoQSksQi50cmltKEEpfWNhdGNoKHIpe2lmKHIubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgcn1yZXR1cm4odHx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBzZT17dHJhbnNpdGlvbmFsOlVBLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe2xldCByPXQuZ2V0Q29udGVudFR5cGUoKXx8IiIsST1yLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxpPUIuaXNPYmplY3QoZSk7aWYoaSYmQi5pc0hUTUxGb3JtKGUpJiYoZT1uZXcgRm9ybURhdGEoZSkpLEIuaXNGb3JtRGF0YShlKSlyZXR1cm4gST9KU09OLnN0cmluZ2lmeShOQShlKSk6ZTtpZihCLmlzQXJyYXlCdWZmZXIoZSl8fEIuaXNCdWZmZXIoZSl8fEIuaXNTdHJlYW0oZSl8fEIuaXNGaWxlKGUpfHxCLmlzQmxvYihlKXx8Qi5pc1JlYWRhYmxlU3RyZWFtKGUpKXJldHVybiBlO2lmKEIuaXNBcnJheUJ1ZmZlclZpZXcoZSkpcmV0dXJuIGUuYnVmZmVyO2lmKEIuaXNVUkxTZWFyY2hQYXJhbXMoZSkpcmV0dXJuIHQuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksZS50b1N0cmluZygpO2xldCBzO2lmKGkpe2lmKHIuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik+LTEpcmV0dXJuIGFlKGUsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigocz1CLmlzRmlsZUxpc3QoZSkpfHxyLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7bGV0IFE9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBQKHM/eyJmaWxlc1tdIjplfTplLFEmJm5ldyBRLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gaXx8ST8odC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLEJpKGUpKTplfV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKGUpe2xldCB0PXRoaXMudHJhbnNpdGlvbmFsfHxzZS50cmFuc2l0aW9uYWwscj10JiZ0LmZvcmNlZEpTT05QYXJzaW5nLEk9dGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYoQi5pc1Jlc3BvbnNlKGUpfHxCLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoZSYmQi5pc1N0cmluZyhlKSYmKHImJiF0aGlzLnJlc3BvbnNlVHlwZXx8SSkpe2xldCBvPSEodCYmdC5zaWxlbnRKU09OUGFyc2luZykmJkk7dHJ5e3JldHVybiBKU09OLnBhcnNlKGUpfWNhdGNoKHMpe2lmKG8pdGhyb3cgcy5uYW1lPT09IlN5bnRheEVycm9yIj9kLmZyb20ocyxkLkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpOnN9fXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpTLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpTLmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtCLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIl0sQT0+e3NlLmhlYWRlcnNbQV09e319KTt2YXIgXz1zZTt2YXIgQ2k9Qi50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSxhdD1BPT57bGV0IGU9e30sdCxyLEk7cmV0dXJuIEEmJkEuc3BsaXQoYApgKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe0k9by5pbmRleE9mKCI6IiksdD1vLnN1YnN0cmluZygwLEkpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLHI9by5zdWJzdHJpbmcoSSsxKS50cmltKCksISghdHx8ZVt0XSYmQ2lbdF0pJiYodD09PSJzZXQtY29va2llIj9lW3RdP2VbdF0ucHVzaChyKTplW3RdPVtyXTplW3RdPWVbdF0/ZVt0XSsiLCAiK3I6cil9KSxlfTt2YXIgc3Q9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBnQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIEdBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTpCLmlzQXJyYXkoQSk/QS5tYXAoR0EpOlN0cmluZyhBKX1mdW5jdGlvbiBRaShBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxyO2Zvcig7cj10LmV4ZWMoQSk7KWVbclsxXV09clsyXTtyZXR1cm4gZX12YXIgRWk9QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gQmUoQSxlLHQscixJKXtpZihCLmlzRnVuY3Rpb24ocikpcmV0dXJuIHIuY2FsbCh0aGlzLGUsdCk7aWYoSSYmKGU9dCksISFCLmlzU3RyaW5nKGUpKXtpZihCLmlzU3RyaW5nKHIpKXJldHVybiBlLmluZGV4T2YocikhPT0tMTtpZihCLmlzUmVnRXhwKHIpKXJldHVybiByLnRlc3QoZSl9fWZ1bmN0aW9uIGxpKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxyKT0+dC50b1VwcGVyQ2FzZSgpK3IpfWZ1bmN0aW9uIGNpKEEsZSl7bGV0IHQ9Qi50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKHI9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxyK3Qse3ZhbHVlOmZ1bmN0aW9uKEksaSxvKXtyZXR1cm4gdGhpc1tyXS5jYWxsKHRoaXMsZSxJLGksbyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyICQ9Y2xhc3N7Y29uc3RydWN0b3IoZSl7ZSYmdGhpcy5zZXQoZSl9c2V0KGUsdCxyKXtsZXQgST10aGlzO2Z1bmN0aW9uIGkocyxRLGEpe2xldCBuPWdBKFEpO2lmKCFuKXRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgZz1CLmZpbmRLZXkoSSxuKTsoIWd8fElbZ109PT12b2lkIDB8fGE9PT0hMHx8YT09PXZvaWQgMCYmSVtnXSE9PSExKSYmKElbZ3x8UV09R0EocykpfWxldCBvPShzLFEpPT5CLmZvckVhY2gocywoYSxuKT0+aShhLG4sUSkpO2lmKEIuaXNQbGFpbk9iamVjdChlKXx8ZSBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpbyhlLHQpO2Vsc2UgaWYoQi5pc1N0cmluZyhlKSYmKGU9ZS50cmltKCkpJiYhRWkoZSkpbyhhdChlKSx0KTtlbHNlIGlmKEIuaXNIZWFkZXJzKGUpKWZvcihsZXRbcyxRXW9mIGUuZW50cmllcygpKWkoUSxzLHIpO2Vsc2UgZSE9bnVsbCYmaSh0LGUscik7cmV0dXJuIHRoaXN9Z2V0KGUsdCl7aWYoZT1nQShlKSxlKXtsZXQgcj1CLmZpbmRLZXkodGhpcyxlKTtpZihyKXtsZXQgST10aGlzW3JdO2lmKCF0KXJldHVybiBJO2lmKHQ9PT0hMClyZXR1cm4gUWkoSSk7aWYoQi5pc0Z1bmN0aW9uKHQpKXJldHVybiB0LmNhbGwodGhpcyxJLHIpO2lmKEIuaXNSZWdFeHAodCkpcmV0dXJuIHQuZXhlYyhJKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKGUsdCl7aWYoZT1nQShlKSxlKXtsZXQgcj1CLmZpbmRLZXkodGhpcyxlKTtyZXR1cm4hIShyJiZ0aGlzW3JdIT09dm9pZCAwJiYoIXR8fEJlKHRoaXMsdGhpc1tyXSxyLHQpKSl9cmV0dXJuITF9ZGVsZXRlKGUsdCl7bGV0IHI9dGhpcyxJPSExO2Z1bmN0aW9uIGkobyl7aWYobz1nQShvKSxvKXtsZXQgcz1CLmZpbmRLZXkocixvKTtzJiYoIXR8fEJlKHIscltzXSxzLHQpKSYmKGRlbGV0ZSByW3NdLEk9ITApfX1yZXR1cm4gQi5pc0FycmF5KGUpP2UuZm9yRWFjaChpKTppKGUpLEl9Y2xlYXIoZSl7bGV0IHQ9T2JqZWN0LmtleXModGhpcykscj10Lmxlbmd0aCxJPSExO2Zvcig7ci0tOyl7bGV0IGk9dFtyXTsoIWV8fEJlKHRoaXMsdGhpc1tpXSxpLGUsITApKSYmKGRlbGV0ZSB0aGlzW2ldLEk9ITApfXJldHVybiBJfW5vcm1hbGl6ZShlKXtsZXQgdD10aGlzLHI9e307cmV0dXJuIEIuZm9yRWFjaCh0aGlzLChJLGkpPT57bGV0IG89Qi5maW5kS2V5KHIsaSk7aWYobyl7dFtvXT1HQShJKSxkZWxldGUgdFtpXTtyZXR1cm59bGV0IHM9ZT9saShpKTpTdHJpbmcoaSkudHJpbSgpO3MhPT1pJiZkZWxldGUgdFtpXSx0W3NdPUdBKEkpLHJbc109ITB9KSx0aGlzfWNvbmNhdCguLi5lKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi5lKX10b0pTT04oZSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gQi5mb3JFYWNoKHRoaXMsKHIsSSk9PntyIT1udWxsJiZyIT09ITEmJih0W0ldPWUmJkIuaXNBcnJheShyKT9yLmpvaW4oIiwgIik6cil9KSx0fVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKX10b1N0cmluZygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFtlLHRdKT0+ZSsiOiAiK3QpLmpvaW4oYApgKX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJBeGlvc0hlYWRlcnMifXN0YXRpYyBmcm9tKGUpe3JldHVybiBlIGluc3RhbmNlb2YgdGhpcz9lOm5ldyB0aGlzKGUpfXN0YXRpYyBjb25jYXQoZSwuLi50KXtsZXQgcj1uZXcgdGhpcyhlKTtyZXR1cm4gdC5mb3JFYWNoKEk9PnIuc2V0KEkpKSxyfXN0YXRpYyBhY2Nlc3NvcihlKXtsZXQgcj0odGhpc1tzdF09dGhpc1tzdF09e2FjY2Vzc29yczp7fX0pLmFjY2Vzc29ycyxJPXRoaXMucHJvdG90eXBlO2Z1bmN0aW9uIGkobyl7bGV0IHM9Z0Eobyk7cltzXXx8KGNpKEksbykscltzXT0hMCl9cmV0dXJuIEIuaXNBcnJheShlKT9lLmZvckVhY2goaSk6aShlKSx0aGlzfX07JC5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7Qi5yZWR1Y2VEZXNjcmlwdG9ycygkLnByb3RvdHlwZSwoe3ZhbHVlOkF9LGUpPT57bGV0IHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQocil7dGhpc1t0XT1yfX19KTtCLmZyZWV6ZU1ldGhvZHMoJCk7dmFyIFU9JDtmdW5jdGlvbiBhQShBLGUpe2xldCB0PXRoaXN8fF8scj1lfHx0LEk9VS5mcm9tKHIuaGVhZGVycyksaT1yLmRhdGE7cmV0dXJuIEIuZm9yRWFjaChBLGZ1bmN0aW9uKHMpe2k9cy5jYWxsKHQsaSxJLm5vcm1hbGl6ZSgpLGU/ZS5zdGF0dXM6dm9pZCAwKX0pLEkubm9ybWFsaXplKCksaX1mdW5jdGlvbiBzQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIEJ0KEEsZSx0KXtkLmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLGQuRVJSX0NBTkNFTEVELGUsdCksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1CLmluaGVyaXRzKEJ0LGQse19fQ0FOQ0VMX186ITB9KTt2YXIgVD1CdDtmdW5jdGlvbiBCQShBLGUsdCl7bGV0IHI9dC5jb25maWcudmFsaWRhdGVTdGF0dXM7IXQuc3RhdHVzfHwhcnx8cih0LnN0YXR1cyk/QSh0KTplKG5ldyBkKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrdC5zdGF0dXMsW2QuRVJSX0JBRF9SRVFVRVNULGQuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcih0LnN0YXR1cy8xMDApLTRdLHQuY29uZmlnLHQucmVxdWVzdCx0KSl9ZnVuY3Rpb24gQ2UoQSl7bGV0IGU9L14oWy0rXHddezEsMjV9KSg6P1wvXC98OikvLmV4ZWMoQSk7cmV0dXJuIGUmJmVbMV18fCIifWZ1bmN0aW9uIHVpKEEsZSl7QT1BfHwxMDtsZXQgdD1uZXcgQXJyYXkoQSkscj1uZXcgQXJyYXkoQSksST0wLGk9MCxvO3JldHVybiBlPWUhPT12b2lkIDA/ZToxZTMsZnVuY3Rpb24oUSl7bGV0IGE9RGF0ZS5ub3coKSxuPXJbaV07b3x8KG89YSksdFtJXT1RLHJbSV09YTtsZXQgZz1pLHU9MDtmb3IoO2chPT1JOyl1Kz10W2crK10sZz1nJUE7aWYoST0oSSsxKSVBLEk9PT1pJiYoaT0oaSsxKSVBKSxhLW88ZSlyZXR1cm47bGV0IEM9biYmYS1uO3JldHVybiBDP01hdGgucm91bmQodSoxZTMvQyk6dm9pZCAwfX12YXIgQ3Q9dWk7ZnVuY3Rpb24gZmkoQSxlKXtsZXQgdD0wLHI9MWUzL2UsSSxpLG89KGEsbj1EYXRlLm5vdygpKT0+e3Q9bixJPW51bGwsaSYmKGNsZWFyVGltZW91dChpKSxpPW51bGwpLEEuYXBwbHkobnVsbCxhKX07cmV0dXJuWyguLi5hKT0+e2xldCBuPURhdGUubm93KCksZz1uLXQ7Zz49cj9vKGEsbik6KEk9YSxpfHwoaT1zZXRUaW1lb3V0KCgpPT57aT1udWxsLG8oSSl9LHItZykpKX0sKCk9PkkmJm8oSSldfXZhciBRdD1maTt2YXIgQUE9KEEsZSx0PTMpPT57bGV0IHI9MCxJPUN0KDUwLDI1MCk7cmV0dXJuIFF0KGk9PntsZXQgbz1pLmxvYWRlZCxzPWkubGVuZ3RoQ29tcHV0YWJsZT9pLnRvdGFsOnZvaWQgMCxRPW8tcixhPUkoUSksbj1vPD1zO3I9bztsZXQgZz17bG9hZGVkOm8sdG90YWw6cyxwcm9ncmVzczpzP28vczp2b2lkIDAsYnl0ZXM6USxyYXRlOmF8fHZvaWQgMCxlc3RpbWF0ZWQ6YSYmcyYmbj8ocy1vKS9hOnZvaWQgMCxldmVudDppLGxlbmd0aENvbXB1dGFibGU6cyE9bnVsbCxbZT8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH07QShnKX0sdCl9LFFlPShBLGUpPT57bGV0IHQ9QSE9bnVsbDtyZXR1cm5bcj0+ZVswXSh7bGVuZ3RoQ29tcHV0YWJsZTp0LHRvdGFsOkEsbG9hZGVkOnJ9KSxlWzFdXX0sRWU9QT0+KC4uLmUpPT5CLmFzYXAoKCk9PkEoLi4uZSkpO3ZhciBFdD1TLmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKEEsZSk9PnQ9Pih0PW5ldyBVUkwodCxTLm9yaWdpbiksQS5wcm90b2NvbD09PXQucHJvdG9jb2wmJkEuaG9zdD09PXQuaG9zdCYmKGV8fEEucG9ydD09PXQucG9ydCkpKShuZXcgVVJMKFMub3JpZ2luKSxTLm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChTLm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITA7dmFyIGx0PVMuaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShBLGUsdCxyLEksaSl7bGV0IG89W0ErIj0iK2VuY29kZVVSSUNvbXBvbmVudChlKV07Qi5pc051bWJlcih0KSYmby5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUodCkudG9HTVRTdHJpbmcoKSksQi5pc1N0cmluZyhyKSYmby5wdXNoKCJwYXRoPSIrciksQi5pc1N0cmluZyhJKSYmby5wdXNoKCJkb21haW49IitJKSxpPT09ITAmJm8ucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPW8uam9pbigiOyAiKX0scmVhZChBKXtsZXQgZT1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xccyopKCIrQSsiKT0oW147XSopIikpO3JldHVybiBlP2RlY29kZVVSSUNvbXBvbmVudChlWzNdKTpudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIGxlKEEpe3JldHVybi9eKFthLXpdW2EtelxkK1wtLl0qOik/XC9cLy9pLnRlc3QoQSl9ZnVuY3Rpb24gY2UoQSxlKXtyZXR1cm4gZT9BLnJlcGxhY2UoL1wvP1wvJC8sIiIpKyIvIitlLnJlcGxhY2UoL15cLysvLCIiKTpBfWZ1bmN0aW9uIENBKEEsZSx0KXtsZXQgcj0hbGUoZSk7cmV0dXJuIEEmJihyfHx0PT0hMSk/Y2UoQSxlKTplfXZhciBjdD1BPT5BIGluc3RhbmNlb2YgVT97Li4uQX06QTtmdW5jdGlvbiBIKEEsZSl7ZT1lfHx7fTtsZXQgdD17fTtmdW5jdGlvbiByKGEsbixnLHUpe3JldHVybiBCLmlzUGxhaW5PYmplY3QoYSkmJkIuaXNQbGFpbk9iamVjdChuKT9CLm1lcmdlLmNhbGwoe2Nhc2VsZXNzOnV9LGEsbik6Qi5pc1BsYWluT2JqZWN0KG4pP0IubWVyZ2Uoe30sbik6Qi5pc0FycmF5KG4pP24uc2xpY2UoKTpufWZ1bmN0aW9uIEkoYSxuLGcsdSl7aWYoQi5pc1VuZGVmaW5lZChuKSl7aWYoIUIuaXNVbmRlZmluZWQoYSkpcmV0dXJuIHIodm9pZCAwLGEsZyx1KX1lbHNlIHJldHVybiByKGEsbixnLHUpfWZ1bmN0aW9uIGkoYSxuKXtpZighQi5pc1VuZGVmaW5lZChuKSlyZXR1cm4gcih2b2lkIDAsbil9ZnVuY3Rpb24gbyhhLG4pe2lmKEIuaXNVbmRlZmluZWQobikpe2lmKCFCLmlzVW5kZWZpbmVkKGEpKXJldHVybiByKHZvaWQgMCxhKX1lbHNlIHJldHVybiByKHZvaWQgMCxuKX1mdW5jdGlvbiBzKGEsbixnKXtpZihnIGluIGUpcmV0dXJuIHIoYSxuKTtpZihnIGluIEEpcmV0dXJuIHIodm9pZCAwLGEpfWxldCBRPXt1cmw6aSxtZXRob2Q6aSxkYXRhOmksYmFzZVVSTDpvLHRyYW5zZm9ybVJlcXVlc3Q6byx0cmFuc2Zvcm1SZXNwb25zZTpvLHBhcmFtc1NlcmlhbGl6ZXI6byx0aW1lb3V0Om8sdGltZW91dE1lc3NhZ2U6byx3aXRoQ3JlZGVudGlhbHM6byx3aXRoWFNSRlRva2VuOm8sYWRhcHRlcjpvLHJlc3BvbnNlVHlwZTpvLHhzcmZDb29raWVOYW1lOm8seHNyZkhlYWRlck5hbWU6byxvblVwbG9hZFByb2dyZXNzOm8sb25Eb3dubG9hZFByb2dyZXNzOm8sZGVjb21wcmVzczpvLG1heENvbnRlbnRMZW5ndGg6byxtYXhCb2R5TGVuZ3RoOm8sYmVmb3JlUmVkaXJlY3Q6byx0cmFuc3BvcnQ6byxodHRwQWdlbnQ6byxodHRwc0FnZW50Om8sY2FuY2VsVG9rZW46byxzb2NrZXRQYXRoOm8scmVzcG9uc2VFbmNvZGluZzpvLHZhbGlkYXRlU3RhdHVzOnMsaGVhZGVyczooYSxuLGcpPT5JKGN0KGEpLGN0KG4pLGcsITApfTtyZXR1cm4gQi5mb3JFYWNoKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sQSxlKSksZnVuY3Rpb24obil7bGV0IGc9UVtuXXx8SSx1PWcoQVtuXSxlW25dLG4pO0IuaXNVbmRlZmluZWQodSkmJmchPT1zfHwodFtuXT11KX0pLHR9dmFyIGJBPUE9PntsZXQgZT1IKHt9LEEpLHtkYXRhOnQsd2l0aFhTUkZUb2tlbjpyLHhzcmZIZWFkZXJOYW1lOkkseHNyZkNvb2tpZU5hbWU6aSxoZWFkZXJzOm8sYXV0aDpzfT1lO2UuaGVhZGVycz1vPVUuZnJvbShvKSxlLnVybD1uQShDQShlLmJhc2VVUkwsZS51cmwsZS5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxzJiZvLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgocy51c2VybmFtZXx8IiIpKyI6Iisocy5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQocy5wYXNzd29yZCkpOiIiKSkpO2xldCBRO2lmKEIuaXNGb3JtRGF0YSh0KSl7aWYoUy5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fFMuaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KW8uc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKChRPW8uZ2V0Q29udGVudFR5cGUoKSkhPT0hMSl7bGV0W2EsLi4ubl09UT9RLnNwbGl0KCI7IikubWFwKGc9PmcudHJpbSgpKS5maWx0ZXIoQm9vbGVhbik6W107by5zZXRDb250ZW50VHlwZShbYXx8Im11bHRpcGFydC9mb3JtLWRhdGEiLC4uLm5dLmpvaW4oIjsgIikpfX1pZihTLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKHImJkIuaXNGdW5jdGlvbihyKSYmKHI9cihlKSkscnx8ciE9PSExJiZFdChlLnVybCkpKXtsZXQgYT1JJiZpJiZsdC5yZWFkKGkpO2EmJm8uc2V0KEksYSl9cmV0dXJuIGV9O3ZhciBwaT10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUiLHV0PXBpJiZmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxyKXtsZXQgST1iQShBKSxpPUkuZGF0YSxvPVUuZnJvbShJLmhlYWRlcnMpLm5vcm1hbGl6ZSgpLHtyZXNwb25zZVR5cGU6cyxvblVwbG9hZFByb2dyZXNzOlEsb25Eb3dubG9hZFByb2dyZXNzOmF9PUksbixnLHUsQyxFO2Z1bmN0aW9uIGMoKXtDJiZDKCksRSYmRSgpLEkuY2FuY2VsVG9rZW4mJkkuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUobiksSS5zaWduYWwmJkkuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixuKX1sZXQgbD1uZXcgWE1MSHR0cFJlcXVlc3Q7bC5vcGVuKEkubWV0aG9kLnRvVXBwZXJDYXNlKCksSS51cmwsITApLGwudGltZW91dD1JLnRpbWVvdXQ7ZnVuY3Rpb24gcCgpe2lmKCFsKXJldHVybjtsZXQgaD1VLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBsJiZsLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxiPXtkYXRhOiFzfHxzPT09InRleHQifHxzPT09Impzb24iP2wucmVzcG9uc2VUZXh0OmwucmVzcG9uc2Usc3RhdHVzOmwuc3RhdHVzLHN0YXR1c1RleHQ6bC5zdGF0dXNUZXh0LGhlYWRlcnM6aCxjb25maWc6QSxyZXF1ZXN0Omx9O0JBKGZ1bmN0aW9uKFcpe3QoVyksYygpfSxmdW5jdGlvbihXKXtyKFcpLGMoKX0sYiksbD1udWxsfSJvbmxvYWRlbmQiaW4gbD9sLm9ubG9hZGVuZD1wOmwub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IWx8fGwucmVhZHlTdGF0ZSE9PTR8fGwuc3RhdHVzPT09MCYmIShsLnJlc3BvbnNlVVJMJiZsLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6Iik9PT0wKXx8c2V0VGltZW91dChwKX0sbC5vbmFib3J0PWZ1bmN0aW9uKCl7bCYmKHIobmV3IGQoIlJlcXVlc3QgYWJvcnRlZCIsZC5FQ09OTkFCT1JURUQsQSxsKSksbD1udWxsKX0sbC5vbmVycm9yPWZ1bmN0aW9uKCl7cihuZXcgZCgiTmV0d29yayBFcnJvciIsZC5FUlJfTkVUV09SSyxBLGwpKSxsPW51bGx9LGwub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IEw9SS50aW1lb3V0PyJ0aW1lb3V0IG9mICIrSS50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLGI9SS50cmFuc2l0aW9uYWx8fFVBO0kudGltZW91dEVycm9yTWVzc2FnZSYmKEw9SS50aW1lb3V0RXJyb3JNZXNzYWdlKSxyKG5ldyBkKEwsYi5jbGFyaWZ5VGltZW91dEVycm9yP2QuRVRJTUVET1VUOmQuRUNPTk5BQk9SVEVELEEsbCkpLGw9bnVsbH0saT09PXZvaWQgMCYmby5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBsJiZCLmZvckVhY2goby50b0pTT04oKSxmdW5jdGlvbihMLGIpe2wuc2V0UmVxdWVzdEhlYWRlcihiLEwpfSksQi5pc1VuZGVmaW5lZChJLndpdGhDcmVkZW50aWFscyl8fChsLndpdGhDcmVkZW50aWFscz0hIUkud2l0aENyZWRlbnRpYWxzKSxzJiZzIT09Impzb24iJiYobC5yZXNwb25zZVR5cGU9SS5yZXNwb25zZVR5cGUpLGEmJihbdSxFXT1BQShhLCEwKSxsLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIix1KSksUSYmbC51cGxvYWQmJihbZyxDXT1BQShRKSxsLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZyksbC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsQykpLChJLmNhbmNlbFRva2VufHxJLnNpZ25hbCkmJihuPWg9PntsJiYocighaHx8aC50eXBlP25ldyBUKG51bGwsQSxsKTpoKSxsLmFib3J0KCksbD1udWxsKX0sSS5jYW5jZWxUb2tlbiYmSS5jYW5jZWxUb2tlbi5zdWJzY3JpYmUobiksSS5zaWduYWwmJihJLnNpZ25hbC5hYm9ydGVkP24oKTpJLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbikpKTtsZXQgbT1DZShJLnVybCk7aWYobSYmUy5wcm90b2NvbHMuaW5kZXhPZihtKT09PS0xKXtyKG5ldyBkKCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK20rIjoiLGQuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59bC5zZW5kKGl8fG51bGwpfSl9O3ZhciBkaT0oQSxlKT0+e2xldHtsZW5ndGg6dH09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKGV8fHQpe2xldCByPW5ldyBBYm9ydENvbnRyb2xsZXIsSSxpPWZ1bmN0aW9uKGEpe2lmKCFJKXtJPSEwLHMoKTtsZXQgbj1hIGluc3RhbmNlb2YgRXJyb3I/YTp0aGlzLnJlYXNvbjtyLmFib3J0KG4gaW5zdGFuY2VvZiBkP246bmV3IFQobiBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpuKSl9fSxvPWUmJnNldFRpbWVvdXQoKCk9PntvPW51bGwsaShuZXcgZChgdGltZW91dCAke2V9IG9mIG1zIGV4Y2VlZGVkYCxkLkVUSU1FRE9VVCkpfSxlKSxzPSgpPT57QSYmKG8mJmNsZWFyVGltZW91dChvKSxvPW51bGwsQS5mb3JFYWNoKGE9PnthLnVuc3Vic2NyaWJlP2EudW5zdWJzY3JpYmUoaSk6YS5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsaSl9KSxBPW51bGwpfTtBLmZvckVhY2goYT0+YS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsaSkpO2xldHtzaWduYWw6UX09cjtyZXR1cm4gUS51bnN1YnNjcmliZT0oKT0+Qi5hc2FwKHMpLFF9fSxmdD1kaTt2YXIgbWk9ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCByPTAsSTtmb3IoO3I8dDspST1yK2UseWllbGQgQS5zbGljZShyLEkpLHI9SX0saGk9YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mIHlpKEEpKXlpZWxkKm1pKHQsZSl9LHlpPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOnJ9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgcn19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0sdWU9KEEsZSx0LHIpPT57bGV0IEk9aGkoQSxlKSxpPTAsbyxzPVE9PntvfHwobz0hMCxyJiZyKFEpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChRKXt0cnl7bGV0e2RvbmU6YSx2YWx1ZTpufT1hd2FpdCBJLm5leHQoKTtpZihhKXtzKCksUS5jbG9zZSgpO3JldHVybn1sZXQgZz1uLmJ5dGVMZW5ndGg7aWYodCl7bGV0IHU9aSs9Zzt0KHUpfVEuZW5xdWV1ZShuZXcgVWludDhBcnJheShuKSl9Y2F0Y2goYSl7dGhyb3cgcyhhKSxhfX0sY2FuY2VsKFEpe3JldHVybiBzKFEpLEkucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBKQT10eXBlb2YgZmV0Y2g9PSJmdW5jdGlvbiImJnR5cGVvZiBSZXF1ZXN0PT0iZnVuY3Rpb24iJiZ0eXBlb2YgUmVzcG9uc2U9PSJmdW5jdGlvbiIsZHQ9SkEmJnR5cGVvZiBSZWFkYWJsZVN0cmVhbT09ImZ1bmN0aW9uIixEaT1KQSYmKHR5cGVvZiBUZXh0RW5jb2Rlcj09ImZ1bmN0aW9uIj8oQT0+ZT0+QS5lbmNvZGUoZSkpKG5ldyBUZXh0RW5jb2Rlcik6YXN5bmMgQT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IFJlc3BvbnNlKEEpLmFycmF5QnVmZmVyKCkpKSxtdD0oQSwuLi5lKT0+e3RyeXtyZXR1cm4hIUEoLi4uZSl9Y2F0Y2h7cmV0dXJuITF9fSx3aT1kdCYmbXQoKCk9PntsZXQgQT0hMSxlPW5ldyBSZXF1ZXN0KFMub3JpZ2luLHtib2R5Om5ldyBSZWFkYWJsZVN0cmVhbSxtZXRob2Q6IlBPU1QiLGdldCBkdXBsZXgoKXtyZXR1cm4gQT0hMCwiaGFsZiJ9fSkuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpO3JldHVybiBBJiYhZX0pLHB0PTY0KjEwMjQsZmU9ZHQmJm10KCgpPT5CLmlzUmVhZGFibGVTdHJlYW0obmV3IFJlc3BvbnNlKCIiKS5ib2R5KSksTEE9e3N0cmVhbTpmZSYmKEE9PkEuYm9keSl9O0pBJiYoQT0+e1sidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChlPT57IUxBW2VdJiYoTEFbZV09Qi5pc0Z1bmN0aW9uKEFbZV0pP3Q9PnRbZV0oKToodCxyKT0+e3Rocm93IG5ldyBkKGBSZXNwb25zZSB0eXBlICcke2V9JyBpcyBub3Qgc3VwcG9ydGVkYCxkLkVSUl9OT1RfU1VQUE9SVCxyKX0pfSl9KShuZXcgUmVzcG9uc2UpO3ZhciBTaT1hc3luYyBBPT57aWYoQT09bnVsbClyZXR1cm4gMDtpZihCLmlzQmxvYihBKSlyZXR1cm4gQS5zaXplO2lmKEIuaXNTcGVjQ29tcGxpYW50Rm9ybShBKSlyZXR1cm4oYXdhaXQgbmV3IFJlcXVlc3QoUy5vcmlnaW4se21ldGhvZDoiUE9TVCIsYm9keTpBfSkuYXJyYXlCdWZmZXIoKSkuYnl0ZUxlbmd0aDtpZihCLmlzQXJyYXlCdWZmZXJWaWV3KEEpfHxCLmlzQXJyYXlCdWZmZXIoQSkpcmV0dXJuIEEuYnl0ZUxlbmd0aDtpZihCLmlzVVJMU2VhcmNoUGFyYW1zKEEpJiYoQT1BKyIiKSxCLmlzU3RyaW5nKEEpKXJldHVybihhd2FpdCBEaShBKSkuYnl0ZUxlbmd0aH0sRmk9YXN5bmMoQSxlKT0+e2xldCB0PUIudG9GaW5pdGVOdW1iZXIoQS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiB0Pz9TaShlKX0saHQ9SkEmJihhc3luYyBBPT57bGV0e3VybDplLG1ldGhvZDp0LGRhdGE6cixzaWduYWw6SSxjYW5jZWxUb2tlbjppLHRpbWVvdXQ6byxvbkRvd25sb2FkUHJvZ3Jlc3M6cyxvblVwbG9hZFByb2dyZXNzOlEscmVzcG9uc2VUeXBlOmEsaGVhZGVyczpuLHdpdGhDcmVkZW50aWFsczpnPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOnV9PWJBKEEpO2E9YT8oYSsiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IEM9ZnQoW0ksaSYmaS50b0Fib3J0U2lnbmFsKCldLG8pLEUsYz1DJiZDLnVuc3Vic2NyaWJlJiYoKCk9PntDLnVuc3Vic2NyaWJlKCl9KSxsO3RyeXtpZihRJiZ3aSYmdCE9PSJnZXQiJiZ0IT09ImhlYWQiJiYobD1hd2FpdCBGaShuLHIpKSE9PTApe2xldCBiPW5ldyBSZXF1ZXN0KGUse21ldGhvZDoiUE9TVCIsYm9keTpyLGR1cGxleDoiaGFsZiJ9KSxxO2lmKEIuaXNGb3JtRGF0YShyKSYmKHE9Yi5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZuLnNldENvbnRlbnRUeXBlKHEpLGIuYm9keSl7bGV0W1csZkFdPVFlKGwsQUEoRWUoUSkpKTtyPXVlKGIuYm9keSxwdCxXLGZBKX19Qi5pc1N0cmluZyhnKXx8KGc9Zz8iaW5jbHVkZSI6Im9taXQiKTtsZXQgcD0iY3JlZGVudGlhbHMiaW4gUmVxdWVzdC5wcm90b3R5cGU7RT1uZXcgUmVxdWVzdChlLHsuLi51LHNpZ25hbDpDLG1ldGhvZDp0LnRvVXBwZXJDYXNlKCksaGVhZGVyczpuLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6cixkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOnA/Zzp2b2lkIDB9KTtsZXQgbT1hd2FpdCBmZXRjaChFKSxoPWZlJiYoYT09PSJzdHJlYW0ifHxhPT09InJlc3BvbnNlIik7aWYoZmUmJihzfHxoJiZjKSl7bGV0IGI9e307WyJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyJdLmZvckVhY2goTmU9PntiW05lXT1tW05lXX0pO2xldCBxPUIudG9GaW5pdGVOdW1iZXIobS5oZWFkZXJzLmdldCgiY29udGVudC1sZW5ndGgiKSksW1csZkFdPXMmJlFlKHEsQUEoRWUocyksITApKXx8W107bT1uZXcgUmVzcG9uc2UodWUobS5ib2R5LHB0LFcsKCk9PntmQSYmZkEoKSxjJiZjKCl9KSxiKX1hPWF8fCJ0ZXh0IjtsZXQgTD1hd2FpdCBMQVtCLmZpbmRLZXkoTEEsYSl8fCJ0ZXh0Il0obSxBKTtyZXR1cm4haCYmYyYmYygpLGF3YWl0IG5ldyBQcm9taXNlKChiLHEpPT57QkEoYixxLHtkYXRhOkwsaGVhZGVyczpVLmZyb20obS5oZWFkZXJzKSxzdGF0dXM6bS5zdGF0dXMsc3RhdHVzVGV4dDptLnN0YXR1c1RleHQsY29uZmlnOkEscmVxdWVzdDpFfSl9KX1jYXRjaChwKXt0aHJvdyBjJiZjKCkscCYmcC5uYW1lPT09IlR5cGVFcnJvciImJi9mZXRjaC9pLnRlc3QocC5tZXNzYWdlKT9PYmplY3QuYXNzaWduKG5ldyBkKCJOZXR3b3JrIEVycm9yIixkLkVSUl9ORVRXT1JLLEEsRSkse2NhdXNlOnAuY2F1c2V8fHB9KTpkLmZyb20ocCxwJiZwLmNvZGUsQSxFKX19KTt2YXIgcGU9e2h0dHA6UkEseGhyOnV0LGZldGNoOmh0fTtCLmZvckVhY2gocGUsKEEsZSk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHt2YWx1ZTplfSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse3ZhbHVlOmV9KX19KTt2YXIgeXQ9QT0+YC0gJHtBfWAsUmk9QT0+Qi5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExLE1BPXtnZXRBZGFwdGVyOkE9PntBPUIuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOmV9PUEsdCxyLEk9e307Zm9yKGxldCBpPTA7aTxlO2krKyl7dD1BW2ldO2xldCBvO2lmKHI9dCwhUmkodCkmJihyPXBlWyhvPVN0cmluZyh0KSkudG9Mb3dlckNhc2UoKV0scj09PXZvaWQgMCkpdGhyb3cgbmV3IGQoYFVua25vd24gYWRhcHRlciAnJHtvfSdgKTtpZihyKWJyZWFrO0lbb3x8IiMiK2ldPXJ9aWYoIXIpe2xldCBpPU9iamVjdC5lbnRyaWVzKEkpLm1hcCgoW3MsUV0pPT5gYWRhcHRlciAke3N9IGArKFE9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxvPWU/aS5sZW5ndGg+MT9gc2luY2UgOgpgK2kubWFwKHl0KS5qb2luKGAKYCk6IiAiK3l0KGlbMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IGQoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitvLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gcn0sYWRhcHRlcnM6cGV9O2Z1bmN0aW9uIGRlKEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBUKG51bGwsQSl9ZnVuY3Rpb24gSEEoQSl7cmV0dXJuIGRlKEEpLEEuaGVhZGVycz1VLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9YUEuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLE1BLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxfLmFkYXB0ZXIpKEEpLnRoZW4oZnVuY3Rpb24ocil7cmV0dXJuIGRlKEEpLHIuZGF0YT1hQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxyKSxyLmhlYWRlcnM9VS5mcm9tKHIuaGVhZGVycykscn0sZnVuY3Rpb24ocil7cmV0dXJuIHNBKHIpfHwoZGUoQSksciYmci5yZXNwb25zZSYmKHIucmVzcG9uc2UuZGF0YT1hQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxyLnJlc3BvbnNlKSxyLnJlc3BvbnNlLmhlYWRlcnM9VS5mcm9tKHIucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChyKX0pfXZhciBZQT0iMS44LjQiO3ZhciBUQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsZSk9PntUQVtBXT1mdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIHI9PT1BfHwiYSIrKGU8MT8ibiAiOiIgIikrQX19KTt2YXIgRHQ9e307VEEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxyKXtmdW5jdGlvbiBJKGksbyl7cmV0dXJuIltBeGlvcyB2IitZQSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK2krIiciK28rKHI/Ii4gIityOiIiKX1yZXR1cm4oaSxvLHMpPT57aWYoZT09PSExKXRocm93IG5ldyBkKEkobywiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSksZC5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIHQmJiFEdFtvXSYmKER0W29dPSEwLGNvbnNvbGUud2FybihJKG8sIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3QrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksZT9lKGksbyxzKTohMH19O1RBLnNwZWxsaW5nPWZ1bmN0aW9uKGUpe3JldHVybih0LHIpPT4oY29uc29sZS53YXJuKGAke3J9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7ZX1gKSwhMCl9O2Z1bmN0aW9uIGtpKEEsZSx0KXtpZih0eXBlb2YgQSE9Im9iamVjdCIpdGhyb3cgbmV3IGQoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLGQuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCByPU9iamVjdC5rZXlzKEEpLEk9ci5sZW5ndGg7Zm9yKDtJLS0gPjA7KXtsZXQgaT1yW0ldLG89ZVtpXTtpZihvKXtsZXQgcz1BW2ldLFE9cz09PXZvaWQgMHx8byhzLGksQSk7aWYoUSE9PSEwKXRocm93IG5ldyBkKCJvcHRpb24gIitpKyIgbXVzdCBiZSAiK1EsZC5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYodCE9PSEwKXRocm93IG5ldyBkKCJVbmtub3duIG9wdGlvbiAiK2ksZC5FUlJfQkFEX09QVElPTil9fXZhciBRQT17YXNzZXJ0T3B0aW9uczpraSx2YWxpZGF0b3JzOlRBfTt2YXIgTz1RQS52YWxpZGF0b3JzLGVBPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuZGVmYXVsdHM9ZSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgSWUscmVzcG9uc2U6bmV3IEllfX1hc3luYyByZXF1ZXN0KGUsdCl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KGUsdCl9Y2F0Y2gocil7aWYociBpbnN0YW5jZW9mIEVycm9yKXtsZXQgST17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShJKTpJPW5ldyBFcnJvcjtsZXQgaT1JLnN0YWNrP0kuc3RhY2sucmVwbGFjZSgvXi4rXG4vLCIiKToiIjt0cnl7ci5zdGFjaz9pJiYhU3RyaW5nKHIuc3RhY2spLmVuZHNXaXRoKGkucmVwbGFjZSgvXi4rXG4uK1xuLywiIikpJiYoci5zdGFjays9YApgK2kpOnIuc3RhY2s9aX1jYXRjaHt9fXRocm93IHJ9fV9yZXF1ZXN0KGUsdCl7dHlwZW9mIGU9PSJzdHJpbmciPyh0PXR8fHt9LHQudXJsPWUpOnQ9ZXx8e30sdD1IKHRoaXMuZGVmYXVsdHMsdCk7bGV0e3RyYW5zaXRpb25hbDpyLHBhcmFtc1NlcmlhbGl6ZXI6SSxoZWFkZXJzOml9PXQ7ciE9PXZvaWQgMCYmUUEuYXNzZXJ0T3B0aW9ucyhyLHtzaWxlbnRKU09OUGFyc2luZzpPLnRyYW5zaXRpb25hbChPLmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOk8udHJhbnNpdGlvbmFsKE8uYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpPLnRyYW5zaXRpb25hbChPLmJvb2xlYW4pfSwhMSksSSE9bnVsbCYmKEIuaXNGdW5jdGlvbihJKT90LnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpJfTpRQS5hc3NlcnRPcHRpb25zKEkse2VuY29kZTpPLmZ1bmN0aW9uLHNlcmlhbGl6ZTpPLmZ1bmN0aW9ufSwhMCkpLHQuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDB8fCh0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwP3QuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsczp0LmFsbG93QWJzb2x1dGVVcmxzPSEwKSxRQS5hc3NlcnRPcHRpb25zKHQse2Jhc2VVcmw6Ty5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46Ty5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksdC5tZXRob2Q9KHQubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IG89aSYmQi5tZXJnZShpLmNvbW1vbixpW3QubWV0aG9kXSk7aSYmQi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLEU9PntkZWxldGUgaVtFXX0pLHQuaGVhZGVycz1VLmNvbmNhdChvLGkpO2xldCBzPVtdLFE9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGMpe3R5cGVvZiBjLnJ1bldoZW49PSJmdW5jdGlvbiImJmMucnVuV2hlbih0KT09PSExfHwoUT1RJiZjLnN5bmNocm9ub3VzLHMudW5zaGlmdChjLmZ1bGZpbGxlZCxjLnJlamVjdGVkKSl9KTtsZXQgYT1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGMpe2EucHVzaChjLmZ1bGZpbGxlZCxjLnJlamVjdGVkKX0pO2xldCBuLGc9MCx1O2lmKCFRKXtsZXQgRT1bSEEuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihFLnVuc2hpZnQuYXBwbHkoRSxzKSxFLnB1c2guYXBwbHkoRSxhKSx1PUUubGVuZ3RoLG49UHJvbWlzZS5yZXNvbHZlKHQpO2c8dTspbj1uLnRoZW4oRVtnKytdLEVbZysrXSk7cmV0dXJuIG59dT1zLmxlbmd0aDtsZXQgQz10O2ZvcihnPTA7Zzx1Oyl7bGV0IEU9c1tnKytdLGM9c1tnKytdO3RyeXtDPUUoQyl9Y2F0Y2gobCl7Yy5jYWxsKHRoaXMsbCk7YnJlYWt9fXRyeXtuPUhBLmNhbGwodGhpcyxDKX1jYXRjaChFKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoRSl9Zm9yKGc9MCx1PWEubGVuZ3RoO2c8dTspbj1uLnRoZW4oYVtnKytdLGFbZysrXSk7cmV0dXJuIG59Z2V0VXJpKGUpe2U9SCh0aGlzLmRlZmF1bHRzLGUpO2xldCB0PUNBKGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gbkEodCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpfX07Qi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbihlKXtlQS5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KEgocnx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KHJ8fHt9KS5kYXRhfSkpfX0pO0IuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocil7cmV0dXJuIGZ1bmN0aW9uKGksbyxzKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KEgoc3x8e30se21ldGhvZDplLGhlYWRlcnM6cj97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6aSxkYXRhOm99KSl9fWVBLnByb3RvdHlwZVtlXT10KCksZUEucHJvdG90eXBlW2UrIkZvcm0iXT10KCEwKX0pO3ZhciBFQT1lQTt2YXIgbWU9Y2xhc3MgQXtjb25zdHJ1Y3RvcihlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkpe3Q9aX0pO2xldCByPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4oST0+e2lmKCFyLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBpPXIuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtpLS0gPjA7KXIuX2xpc3RlbmVyc1tpXShJKTtyLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPUk9PntsZXQgaSxvPW5ldyBQcm9taXNlKHM9PntyLnN1YnNjcmliZShzKSxpPXN9KS50aGVuKEkpO3JldHVybiBvLmNhbmNlbD1mdW5jdGlvbigpe3IudW5zdWJzY3JpYmUoaSl9LG99LGUoZnVuY3Rpb24oaSxvLHMpe3IucmVhc29ufHwoci5yZWFzb249bmV3IFQoaSxvLHMpLHQoci5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUoZSl7aWYodGhpcy5yZWFzb24pe2UodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX11bnN1YnNjcmliZShlKXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcix0PXI9PntlLmFib3J0KHIpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUodCksZS5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUodCksZS5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCBlO3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihJKXtlPUl9KSxjYW5jZWw6ZX19fSx3dD1tZTtmdW5jdGlvbiBoZShBKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEEuYXBwbHkobnVsbCx0KX19ZnVuY3Rpb24geWUoQSl7cmV0dXJuIEIuaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIERlPXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhEZSkuZm9yRWFjaCgoW0EsZV0pPT57RGVbZV09QX0pO3ZhciBTdD1EZTtmdW5jdGlvbiBGdChBKXtsZXQgZT1uZXcgRUEoQSksdD1pQShFQS5wcm90b3R5cGUucmVxdWVzdCxlKTtyZXR1cm4gQi5leHRlbmQodCxFQS5wcm90b3R5cGUsZSx7YWxsT3duS2V5czohMH0pLEIuZXh0ZW5kKHQsZSxudWxsLHthbGxPd25LZXlzOiEwfSksdC5jcmVhdGU9ZnVuY3Rpb24oSSl7cmV0dXJuIEZ0KEgoQSxJKSl9LHR9dmFyIEY9RnQoXyk7Ri5BeGlvcz1FQTtGLkNhbmNlbGVkRXJyb3I9VDtGLkNhbmNlbFRva2VuPXd0O0YuaXNDYW5jZWw9c0E7Ri5WRVJTSU9OPVlBO0YudG9Gb3JtRGF0YT1QO0YuQXhpb3NFcnJvcj1kO0YuQ2FuY2VsPUYuQ2FuY2VsZWRFcnJvcjtGLmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9O0Yuc3ByZWFkPWhlO0YuaXNBeGlvc0Vycm9yPXllO0YubWVyZ2VDb25maWc9SDtGLkF4aW9zSGVhZGVycz1VO0YuZm9ybVRvSlNPTj1BPT5OQShCLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO0YuZ2V0QWRhcHRlcj1NQS5nZXRBZGFwdGVyO0YuSHR0cFN0YXR1c0NvZGU9U3Q7Ri5kZWZhdWx0PUY7dmFyIHRBPUY7dmFye0F4aW9zOnRhLEF4aW9zRXJyb3I6cmEsQ2FuY2VsZWRFcnJvcjppYSxpc0NhbmNlbDpJYSxDYW5jZWxUb2tlbjpvYSxWRVJTSU9OOm5hLGFsbDpnYSxDYW5jZWw6YWEsaXNBeGlvc0Vycm9yOnNhLHNwcmVhZDpCYSx0b0Zvcm1EYXRhOkNhLEF4aW9zSGVhZGVyczpRYSxIdHRwU3RhdHVzQ29kZTpFYSxmb3JtVG9KU09OOmxhLGdldEFkYXB0ZXI6Y2EsbWVyZ2VDb25maWc6dWF9PXRBO2FzeW5jIGZ1bmN0aW9uIFVpKEEsZSl7bGV0IHQ9QSxyPW51bGw7aWYodD09bnVsbClyPW5ldyBXb3JrZXIobmV3IFVSTCgiLi93ZWItd29ya2Vycy9pdGstd2FzbS1waXBlbGluZS53b3JrZXIuanMiLGltcG9ydC5tZXRhLnVybCkse3R5cGU6Im1vZHVsZSJ9KTtlbHNlIGlmKHQuc3RhcnRzV2l0aCgiaHR0cCIpKXtsZXQgST1hd2FpdCB0QS5nZXQodCx7cmVzcG9uc2VUeXBlOiJibG9iIixwYXJhbXM6ZX0pLGk9VVJMLmNyZWF0ZU9iamVjdFVSTChJLmRhdGEpO3I9bmV3IFdvcmtlcihpLHt0eXBlOiJtb2R1bGUifSl9ZWxzZSByPW5ldyBXb3JrZXIodCx7dHlwZToibW9kdWxlIn0pO3JldHVybiByfXZhciBsQT1VaTtmdW5jdGlvbiBSdChBKXtsZXQgZT0kQShBKSx0PUE7cmV0dXJuIHQudGVybWluYXRlZD0hMSx0LndvcmtlclByb3h5PWUsdC5vcmlnaW5hbFRlcm1pbmF0ZT10LnRlcm1pbmF0ZSx0LnRlcm1pbmF0ZT0oKT0+e3QudGVybWluYXRlZD0hMCx0LndvcmtlclByb3h5W19BXSgpLHQub3JpZ2luYWxUZXJtaW5hdGUoKX0se3dvcmtlclByb3h5OmUsd29ya2VyOnR9fWFzeW5jIGZ1bmN0aW9uIE5pKEEsZSx0KXtsZXQgcjtpZihBIT1udWxsKXtsZXQgaT1BO3JldHVybiBpLndvcmtlclByb3h5IT09dm9pZCAwPyhyPWkud29ya2VyUHJveHkse3dvcmtlclByb3h5OnIsd29ya2VyOml9KTpSdChBKX1sZXQgST1hd2FpdCBsQShlLHQpO3JldHVybiBSdChJKX12YXIga3Q9Tmk7dmFyIGNBLHgsU2Usd2U9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXtTZT1uZXcgVWludDhBcnJheSh4LmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sT0E9Y2xhc3N7aW5pdCgpe3JldHVybiBjQXx8KHR5cGVvZiBmZXRjaDwidSI/Y0E9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitVdCkudGhlbihlPT5lLmFycmF5QnVmZmVyKCkpLnRoZW4oZT0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoZSx3ZSkpLnRoZW4odGhpcy5faW5pdCk6Y0E9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oVXQsImJhc2U2NCIpLHdlKS50aGVuKHRoaXMuX2luaXQpLGNBKX1faW5pdChlKXt4PWUuaW5zdGFuY2Usd2UuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKGUsdD0wKXtpZigheCl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgcj1lLmJ5dGVMZW5ndGgsST14LmV4cG9ydHMubWFsbG9jKHIpO1NlLnNldChlLEkpLHQ9dHx8TnVtYmVyKHguZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKEkscikpO2xldCBpPXguZXhwb3J0cy5tYWxsb2ModCksbz14LmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKGksdCxJLHIpLHM9U2Uuc2xpY2UoaSxpK28pO3JldHVybiB4LmV4cG9ydHMuZnJlZShJKSx4LmV4cG9ydHMuZnJlZShpKSxzfX0sVXQ9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgTnQ9bmV3IE9BLEd0PSExO2FzeW5jIGZ1bmN0aW9uIEdpKEEsZSx0KXtsZXQgcj0idW5rbm93biI7dHlwZW9mIEEhPSJzdHJpbmciP3I9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP3I9QTpyPXR5cGVvZiBlPCJ1Ij9gJHtlfS8ke0F9YDpBLHIuZW5kc1dpdGgoIi5qcyIpJiYocj1yLnN1YnN0cmluZygwLHIubGVuZ3RoLTMpKSxyLmVuZHNXaXRoKCIud2FzbSIpJiYocj1yLnN1YnN0cmluZygwLHIubGVuZ3RoLTUpKSxyLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC05KSk7bGV0IEk9YCR7cn0ud2FzbWAsaT1hd2FpdCB0QS5nZXQoYCR7SX0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOnR9KTtHdHx8KGF3YWl0IE50LmluaXQoKSxHdD0hMCk7bGV0IHM9TnQuZGVjb2RlKG5ldyBVaW50OEFycmF5KGkuZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke3J9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6c30pfXZhciBidD1HaTt2YXIgTHQ9YXN5bmMoKT0+V2ViQXNzZW1ibHkudmFsaWRhdGUobmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwLDEsNSwxLDk2LDAsMSwxMjMsMywyLDEsMCwxMCwxMCwxLDgsMCw2NSwwLDI1MywxNSwyNTMsOTgsMTFdKSk7dmFyIEh0PXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLEp0PW5ldyBUZXh0RW5jb2RlcixNdD1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gYmkoQSxlKXtsZXQgdD17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSxyPUEuZnNfb3BlbihlLHQuZmxhZ3MpLGk9QS5mc19zdGF0KGUpLnNpemUsbz1udWxsO0h0P289bmV3IFNoYXJlZEFycmF5QnVmZmVyKGkpOm89bmV3IEFycmF5QnVmZmVyKGkpO2xldCBzPW5ldyBVaW50OEFycmF5KG8pO3JldHVybiBBLmZzX3JlYWQocixzLDAsaSwwKSxBLmZzX2Nsb3NlKHIpLHN9ZnVuY3Rpb24gWXQoQSxlLHQpe2xldCByPW51bGw7SHQ/cj1uZXcgU2hhcmVkQXJyYXlCdWZmZXIodCk6cj1uZXcgQXJyYXlCdWZmZXIodCk7bGV0IEk9bmV3IFVpbnQ4QXJyYXkociksaT1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsZSx0KTtyZXR1cm4gSS5zZXQoaSksSX1mdW5jdGlvbiBSKEEsZSx0LHIpe2xldCBJPTA7cmV0dXJuIGUhPT1udWxsJiYoST1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LHIsZS5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheShlLmJ1ZmZlciksSSkpLEl9ZnVuY3Rpb24gSyhBLGUsdCl7bGV0IHI9SlNPTi5zdHJpbmdpZnkoZSksST1BLmxlbmd0aEJ5dGVzVVRGOChyKSsxLGk9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LEldKTtBLnN0cmluZ1RvVVRGOChyLGksSSl9ZnVuY3Rpb24gTihBLGUsdCxyKXtsZXQgST1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKSxpPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsdF0pLG89WXQoQSxJLGkpO3JldHVybiBZKHIsby5idWZmZXIpfWZ1bmN0aW9uIHVBKEEsZSl7bGV0IHQ9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCxlXSkscj1BLlVURjhUb1N0cmluZyh0KTtyZXR1cm4gSlNPTi5wYXJzZShyKX1mdW5jdGlvbiBMaShBLGUsdCxyKXtyIT1udWxsJiZyLmxlbmd0aD4wJiZyLmZvckVhY2goZnVuY3Rpb24oYSxuKXtzd2l0Y2goYS50eXBlKXtjYXNlIGYuVGV4dFN0cmVhbTp7bGV0IGc9SnQuZW5jb2RlKGEuZGF0YS5kYXRhKSx1PVIoQSxnLG4sMCksQz17c2l6ZTpnLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWB9O0soQSxDLG4pO2JyZWFrfWNhc2UgZi5Kc29uQ29tcGF0aWJsZTp7bGV0IGc9SnQuZW5jb2RlKEpTT04uc3RyaW5naWZ5KGEuZGF0YSkpLHU9UihBLGcsbiwwKSxDPXtzaXplOmcuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YH07SyhBLEMsbik7YnJlYWt9Y2FzZSBmLkJpbmFyeVN0cmVhbTp7bGV0IGc9YS5kYXRhLmRhdGEsdT1SKEEsZyxuLDApLEM9e3NpemU6Zy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gfTtLKEEsQyxuKTticmVha31jYXNlIGYuVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKGEuZGF0YS5wYXRoLGEuZGF0YS5kYXRhKTticmVha31jYXNlIGYuQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoYS5kYXRhLnBhdGgsYS5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgZi5JbWFnZTp7bGV0IGc9YS5kYXRhLHU9UihBLGcuZGF0YSxuLDApLEM9UihBLGcuZGlyZWN0aW9uLG4sMSksRT10eXBlb2YgZy5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShnLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sYz17aW1hZ2VUeXBlOmcuaW1hZ2VUeXBlLG5hbWU6Zy5uYW1lLG9yaWdpbjpnLm9yaWdpbixzcGFjaW5nOmcuc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtDfWAsc2l6ZTpnLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YCxtZXRhZGF0YTpFfTtLKEEsYyxuKTticmVha31jYXNlIGYuTWVzaDp7bGV0IGc9YS5kYXRhLHU9UihBLGcucG9pbnRzLG4sMCksQz1SKEEsZy5jZWxscyxuLDEpLEU9UihBLGcucG9pbnREYXRhLG4sMiksYz1SKEEsZy5jZWxsRGF0YSxuLDMpLGw9e21lc2hUeXBlOmcubWVzaFR5cGUsbmFtZTpnLm5hbWUsbnVtYmVyT2ZQb2ludHM6Zy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWAsbnVtYmVyT2ZDZWxsczpnLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtDfWAsY2VsbEJ1ZmZlclNpemU6Zy5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOmcubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtFfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOmcubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gfTtLKEEsbCxuKTticmVha31jYXNlIGYuUG9pbnRTZXQ6e2xldCBnPWEuZGF0YSx1PVIoQSxnLnBvaW50cyxuLDApLEM9UihBLGcucG9pbnREYXRhLG4sMSksRT17cG9pbnRTZXRUeXBlOmcucG9pbnRTZXRUeXBlLG5hbWU6Zy5uYW1lLG51bWJlck9mUG9pbnRzOmcubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gLG51bWJlck9mUG9pbnRQaXhlbHM6Zy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0N9YH07SyhBLEUsbik7YnJlYWt9Y2FzZSBmLlRyYW5zZm9ybUxpc3Q6e2xldCBnPWEuZGF0YSx1PVtdLEM9MDtnLmZvckVhY2goRT0+e2xldCBjPSIiLGw9IiI7RS50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGM9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtSKEEsRS5maXhlZFBhcmFtZXRlcnMsbixDKX1gLEMrPTEsbD1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1IoQSxFLnBhcmFtZXRlcnMsbixDKX1gLEMrPTEpO2xldCBwPXt0cmFuc2Zvcm1UeXBlOkUudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpFLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpFLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOkUubmFtZSxpbnB1dFNwYWNlTmFtZTpFLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpFLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmwsZml4ZWRQYXJhbWV0ZXJzOmN9O3UucHVzaChwKX0pLEsoQSx1LG4pO2JyZWFrfWNhc2UgZi5Qb2x5RGF0YTp7bGV0IGc9YS5kYXRhLHU9UihBLGcucG9pbnRzLG4sMCksQz1SKEEsZy52ZXJ0aWNlcyxuLDEpLEU9UihBLGcubGluZXMsbiwyKSxjPVIoQSxnLnBvbHlnb25zLG4sMyksbD1SKEEsZy50cmlhbmdsZVN0cmlwcyxuLDQpLHA9UihBLGcucG9pbnREYXRhLG4sNSksbT1SKEEsZy5wb2ludERhdGEsbiw2KSxoPXtwb2x5RGF0YVR5cGU6Zy5wb2x5RGF0YVR5cGUsbmFtZTpnLm5hbWUsbnVtYmVyT2ZQb2ludHM6Zy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWAsdmVydGljZXNCdWZmZXJTaXplOmcudmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gLGxpbmVzQnVmZmVyU2l6ZTpnLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0V9YCxwb2x5Z29uc0J1ZmZlclNpemU6Zy5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOmcudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mUG9pbnRQaXhlbHM6Zy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3B9YCxudW1iZXJPZkNlbGxQaXhlbHM6Zy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHttfWB9O0soQSxoLG4pO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCBJPUEuc3RhY2tTYXZlKCksaT0wO3RyeXtpPUEuY2FsbE1haW4oZS5zbGljZSgpKX1jYXRjaChhKXt0aHJvdyB0eXBlb2YgYT09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShhKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxhfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUoSSl9bGV0IG89QS5nZXRNb2R1bGVTdGRvdXQoKSxzPUEuZ2V0TW9kdWxlU3RkZXJyKCksUT1bXTtyZXR1cm4gdCE9bnVsbCYmdC5sZW5ndGg+MCYmaT09PTAmJnQuZm9yRWFjaChmdW5jdGlvbihhLG4pe2xldCBnPW51bGw7c3dpdGNoKGEudHlwZSl7Y2FzZSBmLlRleHRTdHJlYW06e2xldCBDPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLEU9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSksYz1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQyxFKTtnPXtkYXRhOk10LmRlY29kZShjKX07YnJlYWt9Y2FzZSBmLkpzb25Db21wYXRpYmxlOntsZXQgQz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxFPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLGM9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEMsRSk7Zz1KU09OLnBhcnNlKE10LmRlY29kZShjKSk7YnJlYWt9Y2FzZSBmLkJpbmFyeVN0cmVhbTp7bGV0IEM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSksRT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKTtnPXtkYXRhOll0KEEsQyxFKX07YnJlYWt9Y2FzZSBmLlRleHRGaWxlOntnPXtwYXRoOmEuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShhLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgZi5CaW5hcnlGaWxlOntnPXtwYXRoOmEuZGF0YS5wYXRoLGRhdGE6YmkoQSxhLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgZi5JbWFnZTp7bGV0IEM9dUEoQSxuKTtDLmRhdGE9TihBLG4sMCxDLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxDLmRpcmVjdGlvbj1OKEEsbiwxLGouRmxvYXQ2NCksQy5tZXRhZGF0YT1uZXcgTWFwKEMubWV0YWRhdGEpLGc9QzticmVha31jYXNlIGYuTWVzaDp7bGV0IEM9dUEoQSxuKTtDLm51bWJlck9mUG9pbnRzPjA/Qy5wb2ludHM9TihBLG4sMCxDLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qy5wb2ludHM9WShDLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZDZWxscz4wP0MuY2VsbHM9TihBLG4sMSxDLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTpDLmNlbGxzPVkoQy5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZQb2ludFBpeGVscz4wP0MucG9pbnREYXRhPU4oQSxuLDIsQy5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5wb2ludERhdGE9WShDLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQy5udW1iZXJPZkNlbGxQaXhlbHM+MD9DLmNlbGxEYXRhPU4oQSxuLDMsQy5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpDLmNlbGxEYXRhPVkoQy5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksZz1DO2JyZWFrfWNhc2UgZi5Qb2ludFNldDp7bGV0IEM9dUEoQSxuKTtDLm51bWJlck9mUG9pbnRzPjA/Qy5wb2ludHM9TihBLG4sMCxDLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkMucG9pbnRzPVkoQy5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qy5wb2ludERhdGE9TihBLG4sMSxDLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5wb2ludERhdGE9WShDLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGc9QzticmVha31jYXNlIGYuVHJhbnNmb3JtTGlzdDp7bGV0IEM9dUEoQSxuKSxFPTA7Qy5mb3JFYWNoKChjLGwpPT57Yy50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGMubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKENbbF0uZml4ZWRQYXJhbWV0ZXJzPU4oQSxuLEUsai5GbG9hdDY0KSksRSs9MSxjLm51bWJlck9mUGFyYW1ldGVycz4wJiYoQ1tsXS5wYXJhbWV0ZXJzPU4oQSxuLEUsYy50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxFKz0xKX0pLGc9QzticmVha31jYXNlIGYuUG9seURhdGE6e2xldCBDPXVBKEEsbik7Qy5udW1iZXJPZlBvaW50cz4wP0MucG9pbnRzPU4oQSxuLDAsai5GbG9hdDMyKTpDLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LEMudmVydGljZXNCdWZmZXJTaXplPjA/Qy52ZXJ0aWNlcz1OKEEsbiwxLEcuVUludDMyKTpDLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxDLmxpbmVzQnVmZmVyU2l6ZT4wP0MubGluZXM9TihBLG4sMixHLlVJbnQzMik6Qy5saW5lcz1uZXcgVWludDMyQXJyYXksQy5wb2x5Z29uc0J1ZmZlclNpemU+MD9DLnBvbHlnb25zPU4oQSxuLDMsRy5VSW50MzIpOkMucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LEMudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/Qy50cmlhbmdsZVN0cmlwcz1OKEEsbiw0LEcuVUludDMyKTpDLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxDLm51bWJlck9mUG9pbnRQaXhlbHM+MD9DLnBvaW50RGF0YT1OKEEsbiw1LEMucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpDLnBvaW50RGF0YT1ZKEMucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQy5udW1iZXJPZkNlbGxQaXhlbHM+MD9DLmNlbGxEYXRhPU4oQSxuLDYsQy5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5jZWxsRGF0YT1ZKEMucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxnPUM7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgdT17dHlwZTphLnR5cGUsZGF0YTpnfTtRLnB1c2godSl9KSx7cmV0dXJuVmFsdWU6aSxzdGRvdXQ6byxzdGRlcnI6cyxvdXRwdXRzOlF9fXZhciBUdD1MaTt2YXIgSmk9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uIE1pKEEsZSl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgdD1bXTtmb3IobGV0IHI9MDtyPEEubGVuZ3RoO3IrKyl7bGV0IEk9SGkoQVtyXSxlKTtJIT09bnVsbCYmdC5wdXNoKEkpfXJldHVybiB0fWZ1bmN0aW9uIEhpKEEsZSl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgdD1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD90PUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKHQ9QSksSmkmJnQgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOmU/dDp0LnNsaWNlKDApfXZhciBPdD1NaTtmdW5jdGlvbiBZaShBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIgeHQ9WWk7ZnVuY3Rpb24gVGkoQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIHF0PVRpO2Z1bmN0aW9uIE9pKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBQdD1PaTt2YXIgeGk7ZnVuY3Rpb24geEEoKXtyZXR1cm4geGl9dmFyIHFpO2Z1bmN0aW9uIEt0KCl7cmV0dXJuIHFpfXZhciBQaTtmdW5jdGlvbiBxQSgpe3JldHVybiBQaX12YXIgRmU9bmV3IE1hcDtmdW5jdGlvbiBLaSgpe2xldCBBPXFBKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bnVsbCksQX1mdW5jdGlvbiBXdCgpe2xldCBBPXhBKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bmV3IFVSTCgiL3BpcGVsaW5lcyIsZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luKS5ocmVmKSxBfWZ1bmN0aW9uIFBBKCl7bGV0IEE9S3QoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT17fSksQX1hc3luYyBmdW5jdGlvbiBXaShBLGUsdCl7bGV0IHI9QSxJPUE7aWYodHlwZW9mIEEhPSJzdHJpbmciJiYocj1uZXcgVVJMKEEuaHJlZiksST1yLmhyZWYpLEZlLmhhcyhJKSlyZXR1cm4gRmUuZ2V0KEkpO3tsZXQgaT1hd2FpdCBidChBLGU/LnRvU3RyaW5nKCk/P1d0KCksdD8/UEEoKSk7cmV0dXJuIEZlLnNldChJLGkpLGl9fWFzeW5jIGZ1bmN0aW9uIGppKEEsZSx0LHIsSSl7aWYoIWF3YWl0IEx0KCkpe2xldCBsPSJXZWJBc3NlbWJseSBTSU1EIHN1cHBvcnQgaXMgcmVxdWlyZWQgLS0gcGxlYXNlIHVwZGF0ZSB5b3VyIGJyb3dzZXIuIjt0aHJvdyBhbGVydChsKSxuZXcgRXJyb3IobCl9bGV0IGk9ST8ud2ViV29ya2VyPz9udWxsO2lmKGk9PT0hMSl7bGV0IGw9YXdhaXQgV2koQS50b1N0cmluZygpLEk/LnBpcGVsaW5lQmFzZVVybCxJPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9QQSgpKTtyZXR1cm4gVHQobCxlLHQscil9bGV0IG89aSxzPUk/LnBpcGVsaW5lV29ya2VyVXJsPz9LaSgpLFE9dHlwZW9mIHMhPSJzdHJpbmciJiZ0eXBlb2Ygcz8uaHJlZjwidSI/cy5ocmVmOnMse3dvcmtlclByb3h5OmEsd29ya2VyOm59PWF3YWl0IGt0KG8sUSxJPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9QQSgpKTtvPW47bGV0IGc9W107ciE9bnVsbCYmci5sZW5ndGg+MCYmci5mb3JFYWNoKGZ1bmN0aW9uKGwpe2lmKGwudHlwZT09PWYuQmluYXJ5U3RyZWFtKXtsZXQgcD1sLmRhdGEuZGF0YTtnLnB1c2gocCl9ZWxzZSBpZihsLnR5cGU9PT1mLkJpbmFyeUZpbGUpe2xldCBwPWwuZGF0YS5kYXRhO2cucHVzaChwKX1lbHNlIGlmKGwudHlwZT09PWYuSW1hZ2Upe2xldCBwPWwuZGF0YTtwLmRhdGEhPT1udWxsJiZnLnB1c2goLi4ueHQocCkpfWVsc2UgaWYobC50eXBlPT09Zi5NZXNoKXtsZXQgcD1sLmRhdGE7Zy5wdXNoKC4uLnF0KHApKX1lbHNlIGlmKGwudHlwZT09PWYuUG9seURhdGEpe2xldCBwPWwuZGF0YTtnLnB1c2goLi4uUHQocCkpfX0pO2xldCB1PUk/LnBpcGVsaW5lQmFzZVVybD8/V3QoKSxDPXR5cGVvZiB1IT0ic3RyaW5nIiYmdHlwZW9mIHU/LmhyZWY8InUiP3UuaHJlZjp1LEU9ciE9bnVsbD9BZShyLE90KGcsST8ubm9Db3B5KSk6bnVsbCxjPWF3YWl0IGEucnVuUGlwZWxpbmUoQS50b1N0cmluZygpLEMsZSx0LEUsST8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/UEEoKSk7cmV0dXJue3JldHVyblZhbHVlOmMucmV0dXJuVmFsdWUsc3Rkb3V0OmMuc3Rkb3V0LHN0ZGVycjpjLnN0ZGVycixvdXRwdXRzOmMub3V0cHV0cyx3ZWJXb3JrZXI6b319dmFyIEQ9amk7dmFyIHZpPW51bGw7ZnVuY3Rpb24ganQoKXtyZXR1cm4gdml9dmFyIFJlLFppPWBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL0BpdGstd2FzbS9kaWNvbUAke0tBfS9kaXN0L3BpcGVsaW5lc2A7ZnVuY3Rpb24gYXMoQSl7UmU9QX1mdW5jdGlvbiB3KCl7aWYodHlwZW9mIFJlPCJ1IilyZXR1cm4gUmU7bGV0IEE9eEEoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6Wml9dmFyIGtlLFZpPW51bGw7ZnVuY3Rpb24gdnQoQSl7a2U9QX1mdW5jdGlvbiB5KCl7aWYodHlwZW9mIGtlPCJ1IilyZXR1cm4ga2U7bGV0IEE9cUEoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6Vml9dmFyIHJBPW51bGw7YXN5bmMgZnVuY3Rpb24gWnQoKXtsZXQgQT15KCksZT10eXBlb2YgQSE9InN0cmluZyImJnR5cGVvZiBBPy5ocmVmPCJ1Ij9BLmhyZWY6QTtyQT1hd2FpdCBsQShlKX1mdW5jdGlvbiBjcyhBKXtyQT1BfWFzeW5jIGZ1bmN0aW9uIGsoKXtpZihyQSE9PW51bGwpcmV0dXJuIHJBLnRlcm1pbmF0ZWQmJmF3YWl0IFp0KCksckE7bGV0IEE9anQoKTtyZXR1cm4gQSE9PW51bGw/QTooYXdhaXQgWnQoKSxyQSl9YXN5bmMgZnVuY3Rpb24gWGkoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpmLkpzb25Db21wYXRpYmxlfSx7dHlwZTpmLkltYWdlfV0sST1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgaD1hd2FpdCBBLmFycmF5QnVmZmVyKCk7ST17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShoKX19bGV0IGk9ZTtpZihlIGluc3RhbmNlb2YgRmlsZSl7bGV0IGg9YXdhaXQgZS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6ZS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoaCl9fWxldCBvPVt7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTpJfSx7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTppfV0scz1bXSxRPUkucGF0aDtzLnB1c2goUSk7bGV0IGE9aS5wYXRoO3MucHVzaChhKSxzLnB1c2goIjAiKSxzLnB1c2goIjEiKSxzLnB1c2goIi0tbWVtb3J5LWlvIiksdC5jb2xvck91dHB1dCYmdC5jb2xvck91dHB1dCYmcy5wdXNoKCItLWNvbG9yLW91dHB1dCIpLHQuY29uZmlnRmlsZSYmcy5wdXNoKCItLWNvbmZpZy1maWxlIix0LmNvbmZpZ0ZpbGUudG9TdHJpbmcoKSksdC5mcmFtZSYmcy5wdXNoKCItLWZyYW1lIix0LmZyYW1lLnRvU3RyaW5nKCkpLHQubm9QcmVzZW50YXRpb25TdGF0ZU91dHB1dCYmdC5ub1ByZXNlbnRhdGlvblN0YXRlT3V0cHV0JiZzLnB1c2goIi0tbm8tcHJlc2VudGF0aW9uLXN0YXRlLW91dHB1dCIpLHQubm9CaXRtYXBPdXRwdXQmJnQubm9CaXRtYXBPdXRwdXQmJnMucHVzaCgiLS1uby1iaXRtYXAtb3V0cHV0Iik7bGV0IHU9ImFwcGx5LXByZXNlbnRhdGlvbi1zdGF0ZS10by1pbWFnZSIsQz10Py53ZWJXb3JrZXI7Qz09PXZvaWQgMCYmKEM9YXdhaXQgaygpKTtsZXR7d2ViV29ya2VyOkUscmV0dXJuVmFsdWU6YyxzdGRlcnI6bCxvdXRwdXRzOnB9PWF3YWl0IEQodSxzLHIsbyx7cGlwZWxpbmVCYXNlVXJsOncoKSxwaXBlbGluZVdvcmtlclVybDp5KCksd2ViV29ya2VyOkMsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGMhPT0wJiZsIT09IiIpdGhyb3cgbmV3IEVycm9yKGwpO3JldHVybnt3ZWJXb3JrZXI6RSxwcmVzZW50YXRpb25TdGF0ZU91dFN0cmVhbTpwWzBdPy5kYXRhLG91dHB1dEltYWdlOnBbMV0/LmRhdGF9fXZhciB6aT1YaTthc3luYyBmdW5jdGlvbiBfaShBLGU9e30pe2xldCB0PVt7dHlwZTpmLkJpbmFyeVN0cmVhbX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IGM9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoYyl9fWxldCBJPVt7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxvPXIucGF0aDtpLnB1c2gobyksaS5wdXNoKCIwIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUucmVhZEZpbGVPbmx5JiZlLnJlYWRGaWxlT25seSYmaS5wdXNoKCItLXJlYWQtZmlsZS1vbmx5IiksZS5yZWFkRGF0YXNldCYmZS5yZWFkRGF0YXNldCYmaS5wdXNoKCItLXJlYWQtZGF0YXNldCIpLGUucmVhZFhmZXJBdXRvJiZlLnJlYWRYZmVyQXV0byYmaS5wdXNoKCItLXJlYWQteGZlci1hdXRvIiksZS5yZWFkWGZlckRldGVjdCYmZS5yZWFkWGZlckRldGVjdCYmaS5wdXNoKCItLXJlYWQteGZlci1kZXRlY3QiKSxlLnJlYWRYZmVyTGl0dGxlJiZlLnJlYWRYZmVyTGl0dGxlJiZpLnB1c2goIi0tcmVhZC14ZmVyLWxpdHRsZSIpLGUucmVhZFhmZXJCaWcmJmUucmVhZFhmZXJCaWcmJmkucHVzaCgiLS1yZWFkLXhmZXItYmlnIiksZS5yZWFkWGZlckltcGxpY2l0JiZlLnJlYWRYZmVySW1wbGljaXQmJmkucHVzaCgiLS1yZWFkLXhmZXItaW1wbGljaXQiKSxlLmFjY2VwdE9kZExlbmd0aCYmZS5hY2NlcHRPZGRMZW5ndGgmJmkucHVzaCgiLS1hY2NlcHQtb2RkLWxlbmd0aCIpLGUuYXNzdW1lRXZlbkxlbmd0aCYmZS5hc3N1bWVFdmVuTGVuZ3RoJiZpLnB1c2goIi0tYXNzdW1lLWV2ZW4tbGVuZ3RoIiksZS5lbmFibGVDcDI0NiYmZS5lbmFibGVDcDI0NiYmaS5wdXNoKCItLWVuYWJsZS1jcDI0NiIpLGUuZGlzYWJsZUNwMjQ2JiZlLmRpc2FibGVDcDI0NiYmaS5wdXNoKCItLWRpc2FibGUtY3AyNDYiKSxlLnJldGFpblVuJiZlLnJldGFpblVuJiZpLnB1c2goIi0tcmV0YWluLXVuIiksZS5jb252ZXJ0VW4mJmUuY29udmVydFVuJiZpLnB1c2goIi0tY29udmVydC11biIpLGUuZW5hYmxlQ29ycmVjdGlvbiYmZS5lbmFibGVDb3JyZWN0aW9uJiZpLnB1c2goIi0tZW5hYmxlLWNvcnJlY3Rpb24iKSxlLmRpc2FibGVDb3JyZWN0aW9uJiZlLmRpc2FibGVDb3JyZWN0aW9uJiZpLnB1c2goIi0tZGlzYWJsZS1jb3JyZWN0aW9uIik7bGV0IFE9InJlYWQtZGljb20tZW5jYXBzdWxhdGVkLXBkZiIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgaygpKTtsZXR7d2ViV29ya2VyOm4scmV0dXJuVmFsdWU6ZyxzdGRlcnI6dSxvdXRwdXRzOkN9PWF3YWl0IEQoUSxpLHQsSSx7cGlwZWxpbmVCYXNlVXJsOncoKSxwaXBlbGluZVdvcmtlclVybDp5KCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGchPT0wJiZ1IT09IiIpdGhyb3cgbmV3IEVycm9yKHUpO3JldHVybnt3ZWJXb3JrZXI6bixwZGZCaW5hcnlPdXRwdXQ6KENbMF0/LmRhdGEpLmRhdGF9fXZhciAkaT1faTthc3luYyBmdW5jdGlvbiBBSShBLGU9e30pe2xldCB0PVt7dHlwZTpmLlRleHRTdHJlYW19XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBjPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGMpfX1sZXQgST1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbz1yLnBhdGg7aWYoaS5wdXNoKG8pLGkucHVzaCgiMCIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLnJlYWRGaWxlT25seSYmZS5yZWFkRmlsZU9ubHkmJmkucHVzaCgiLS1yZWFkLWZpbGUtb25seSIpLGUucmVhZERhdGFzZXQmJmUucmVhZERhdGFzZXQmJmkucHVzaCgiLS1yZWFkLWRhdGFzZXQiKSxlLnJlYWRYZmVyQXV0byYmZS5yZWFkWGZlckF1dG8mJmkucHVzaCgiLS1yZWFkLXhmZXItYXV0byIpLGUucmVhZFhmZXJEZXRlY3QmJmUucmVhZFhmZXJEZXRlY3QmJmkucHVzaCgiLS1yZWFkLXhmZXItZGV0ZWN0IiksZS5yZWFkWGZlckxpdHRsZSYmZS5yZWFkWGZlckxpdHRsZSYmaS5wdXNoKCItLXJlYWQteGZlci1saXR0bGUiKSxlLnJlYWRYZmVyQmlnJiZlLnJlYWRYZmVyQmlnJiZpLnB1c2goIi0tcmVhZC14ZmVyLWJpZyIpLGUucmVhZFhmZXJJbXBsaWNpdCYmZS5yZWFkWGZlckltcGxpY2l0JiZpLnB1c2goIi0tcmVhZC14ZmVyLWltcGxpY2l0IiksZS5wcm9jZXNzaW5nRGV0YWlscyYmZS5wcm9jZXNzaW5nRGV0YWlscyYmaS5wdXNoKCItLXByb2Nlc3NpbmctZGV0YWlscyIpLGUudW5rbm93blJlbGF0aW9uc2hpcCYmZS51bmtub3duUmVsYXRpb25zaGlwJiZpLnB1c2goIi0tdW5rbm93bi1yZWxhdGlvbnNoaXAiKSxlLmludmFsaWRJdGVtVmFsdWUmJmUuaW52YWxpZEl0ZW1WYWx1ZSYmaS5wdXNoKCItLWludmFsaWQtaXRlbS12YWx1ZSIpLGUuaWdub3JlQ29uc3RyYWludHMmJmUuaWdub3JlQ29uc3RyYWludHMmJmkucHVzaCgiLS1pZ25vcmUtY29uc3RyYWludHMiKSxlLmlnbm9yZUl0ZW1FcnJvcnMmJmUuaWdub3JlSXRlbUVycm9ycyYmaS5wdXNoKCItLWlnbm9yZS1pdGVtLWVycm9ycyIpLGUuc2tpcEludmFsaWRJdGVtcyYmZS5za2lwSW52YWxpZEl0ZW1zJiZpLnB1c2goIi0tc2tpcC1pbnZhbGlkLWl0ZW1zIiksZS5kaXNhYmxlVnJDaGVja2VyJiZlLmRpc2FibGVWckNoZWNrZXImJmkucHVzaCgiLS1kaXNhYmxlLXZyLWNoZWNrZXIiKSxlLmNoYXJzZXRSZXF1aXJlJiZlLmNoYXJzZXRSZXF1aXJlJiZpLnB1c2goIi0tY2hhcnNldC1yZXF1aXJlIiksZS5jaGFyc2V0QXNzdW1lJiZpLnB1c2goIi0tY2hhcnNldC1hc3N1bWUiLGUuY2hhcnNldEFzc3VtZS50b1N0cmluZygpKSxlLmNoYXJzZXRDaGVja0FsbCYmZS5jaGFyc2V0Q2hlY2tBbGwmJmkucHVzaCgiLS1jaGFyc2V0LWNoZWNrLWFsbCIpLGUuY29udmVydFRvVXRmOCYmZS5jb252ZXJ0VG9VdGY4JiZpLnB1c2goIi0tY29udmVydC10by11dGY4IiksZS51cmxQcmVmaXgmJmkucHVzaCgiLS11cmwtcHJlZml4IixlLnVybFByZWZpeC50b1N0cmluZygpKSxlLmh0bWwzMiYmZS5odG1sMzImJmkucHVzaCgiLS1odG1sLTMyIiksZS5odG1sNDAmJmUuaHRtbDQwJiZpLnB1c2goIi0taHRtbC00MCIpLGUueGh0bWwxMSYmZS54aHRtbDExJiZpLnB1c2goIi0teGh0bWwtMTEiKSxlLmFkZERvY3VtZW50VHlwZSYmZS5hZGREb2N1bWVudFR5cGUmJmkucHVzaCgiLS1hZGQtZG9jdW1lbnQtdHlwZSIpLGUuY3NzUmVmZXJlbmNlKXtsZXQgYz1JLmxlbmd0aC50b1N0cmluZygpO0kucHVzaCh7dHlwZTpmLlRleHRTdHJlYW0sZGF0YTp7ZGF0YTplLmNzc1JlZmVyZW5jZX19KSxpLnB1c2goIi0tY3NzLXJlZmVyZW5jZSIsYyl9aWYoZS5jc3NGaWxlKXtsZXQgYz1lLmNzc0ZpbGUsbD1jO2lmKGMgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBjLmFycmF5QnVmZmVyKCk7bD17cGF0aDpjLm5hbWUsZGF0YTpuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUobSl9fWkucHVzaCgiLS1jc3MtZmlsZSIpLEkucHVzaCh7dHlwZTpmLlRleHRGaWxlLGRhdGE6bH0pO2xldCBwPWMgaW5zdGFuY2VvZiBGaWxlP2MubmFtZTpjLnBhdGg7aS5wdXNoKHApfWUuZXhwYW5kSW5saW5lJiZlLmV4cGFuZElubGluZSYmaS5wdXNoKCItLWV4cGFuZC1pbmxpbmUiKSxlLm5ldmVyRXhwYW5kSW5saW5lJiZlLm5ldmVyRXhwYW5kSW5saW5lJiZpLnB1c2goIi0tbmV2ZXItZXhwYW5kLWlubGluZSIpLGUuYWx3YXlzRXhwYW5kSW5saW5lJiZlLmFsd2F5c0V4cGFuZElubGluZSYmaS5wdXNoKCItLWFsd2F5cy1leHBhbmQtaW5saW5lIiksZS5yZW5kZXJGdWxsRGF0YSYmZS5yZW5kZXJGdWxsRGF0YSYmaS5wdXNoKCItLXJlbmRlci1mdWxsLWRhdGEiKSxlLnNlY3Rpb25UaXRsZUlubGluZSYmZS5zZWN0aW9uVGl0bGVJbmxpbmUmJmkucHVzaCgiLS1zZWN0aW9uLXRpdGxlLWlubGluZSIpLGUuZG9jdW1lbnRUeXBlVGl0bGUmJmUuZG9jdW1lbnRUeXBlVGl0bGUmJmkucHVzaCgiLS1kb2N1bWVudC10eXBlLXRpdGxlIiksZS5wYXRpZW50SW5mb1RpdGxlJiZlLnBhdGllbnRJbmZvVGl0bGUmJmkucHVzaCgiLS1wYXRpZW50LWluZm8tdGl0bGUiKSxlLm5vRG9jdW1lbnRIZWFkZXImJmUubm9Eb2N1bWVudEhlYWRlciYmaS5wdXNoKCItLW5vLWRvY3VtZW50LWhlYWRlciIpLGUucmVuZGVySW5saW5lQ29kZXMmJmUucmVuZGVySW5saW5lQ29kZXMmJmkucHVzaCgiLS1yZW5kZXItaW5saW5lLWNvZGVzIiksZS5jb25jZXB0TmFtZUNvZGVzJiZlLmNvbmNlcHROYW1lQ29kZXMmJmkucHVzaCgiLS1jb25jZXB0LW5hbWUtY29kZXMiKSxlLm51bWVyaWNVbml0Q29kZXMmJmUubnVtZXJpY1VuaXRDb2RlcyYmaS5wdXNoKCItLW51bWVyaWMtdW5pdC1jb2RlcyIpLGUuY29kZVZhbHVlVW5pdCYmZS5jb2RlVmFsdWVVbml0JiZpLnB1c2goIi0tY29kZS12YWx1ZS11bml0IiksZS5jb2RlTWVhbmluZ1VuaXQmJmUuY29kZU1lYW5pbmdVbml0JiZpLnB1c2goIi0tY29kZS1tZWFuaW5nLXVuaXQiKSxlLnJlbmRlckFsbENvZGVzJiZlLnJlbmRlckFsbENvZGVzJiZpLnB1c2goIi0tcmVuZGVyLWFsbC1jb2RlcyIpLGUuY29kZURldGFpbHNUb29sdGlwJiZlLmNvZGVEZXRhaWxzVG9vbHRpcCYmaS5wdXNoKCItLWNvZGUtZGV0YWlscy10b29sdGlwIik7bGV0IFE9InN0cnVjdHVyZWQtcmVwb3J0LXRvLWh0bWwiLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpuLHJldHVyblZhbHVlOmcsc3RkZXJyOnUsb3V0cHV0czpDfT1hd2FpdCBEKFEsaSx0LEkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihnIT09MCYmdSE9PSIiKXRocm93IG5ldyBFcnJvcih1KTtyZXR1cm57d2ViV29ya2VyOm4sb3V0cHV0VGV4dDooQ1swXT8uZGF0YSkuZGF0YX19dmFyIGVJPUFJO2FzeW5jIGZ1bmN0aW9uIHRJKEEsZT17fSl7bGV0IHQ9W3t0eXBlOmYuVGV4dFN0cmVhbX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IGM9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoYyl9fWxldCBJPVt7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxvPXIucGF0aDtpLnB1c2gobyksaS5wdXNoKCIwIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUudW5rbm93blJlbGF0aW9uc2hpcCYmZS51bmtub3duUmVsYXRpb25zaGlwJiZpLnB1c2goIi0tdW5rbm93bi1yZWxhdGlvbnNoaXAiKSxlLmludmFsaWRJdGVtVmFsdWUmJmUuaW52YWxpZEl0ZW1WYWx1ZSYmaS5wdXNoKCItLWludmFsaWQtaXRlbS12YWx1ZSIpLGUuaWdub3JlQ29uc3RyYWludHMmJmUuaWdub3JlQ29uc3RyYWludHMmJmkucHVzaCgiLS1pZ25vcmUtY29uc3RyYWludHMiKSxlLmlnbm9yZUl0ZW1FcnJvcnMmJmUuaWdub3JlSXRlbUVycm9ycyYmaS5wdXNoKCItLWlnbm9yZS1pdGVtLWVycm9ycyIpLGUuc2tpcEludmFsaWRJdGVtcyYmZS5za2lwSW52YWxpZEl0ZW1zJiZpLnB1c2goIi0tc2tpcC1pbnZhbGlkLWl0ZW1zIiksZS5ub0RvY3VtZW50SGVhZGVyJiZlLm5vRG9jdW1lbnRIZWFkZXImJmkucHVzaCgiLS1uby1kb2N1bWVudC1oZWFkZXIiKSxlLm51bWJlck5lc3RlZEl0ZW1zJiZlLm51bWJlck5lc3RlZEl0ZW1zJiZpLnB1c2goIi0tbnVtYmVyLW5lc3RlZC1pdGVtcyIpLGUuc2hvcnRlbkxvbmdWYWx1ZXMmJmUuc2hvcnRlbkxvbmdWYWx1ZXMmJmkucHVzaCgiLS1zaG9ydGVuLWxvbmctdmFsdWVzIiksZS5wcmludEluc3RhbmNlVWlkJiZlLnByaW50SW5zdGFuY2VVaWQmJmkucHVzaCgiLS1wcmludC1pbnN0YW5jZS11aWQiKSxlLnByaW50U29wY2xhc3NTaG9ydCYmZS5wcmludFNvcGNsYXNzU2hvcnQmJmkucHVzaCgiLS1wcmludC1zb3BjbGFzcy1zaG9ydCIpLGUucHJpbnRTb3BjbGFzc0xvbmcmJmUucHJpbnRTb3BjbGFzc0xvbmcmJmkucHVzaCgiLS1wcmludC1zb3BjbGFzcy1sb25nIiksZS5wcmludFNvcGNsYXNzVWlkJiZlLnByaW50U29wY2xhc3NVaWQmJmkucHVzaCgiLS1wcmludC1zb3BjbGFzcy11aWQiKSxlLnByaW50QWxsQ29kZXMmJmUucHJpbnRBbGxDb2RlcyYmaS5wdXNoKCItLXByaW50LWFsbC1jb2RlcyIpLGUucHJpbnRJbnZhbGlkQ29kZXMmJmUucHJpbnRJbnZhbGlkQ29kZXMmJmkucHVzaCgiLS1wcmludC1pbnZhbGlkLWNvZGVzIiksZS5wcmludFRlbXBsYXRlSWQmJmUucHJpbnRUZW1wbGF0ZUlkJiZpLnB1c2goIi0tcHJpbnQtdGVtcGxhdGUtaWQiKSxlLmluZGljYXRlRW5oYW5jZWQmJmUuaW5kaWNhdGVFbmhhbmNlZCYmaS5wdXNoKCItLWluZGljYXRlLWVuaGFuY2VkIiksZS5wcmludENvbG9yJiZlLnByaW50Q29sb3ImJmkucHVzaCgiLS1wcmludC1jb2xvciIpO2xldCBRPSJzdHJ1Y3R1cmVkLXJlcG9ydC10by10ZXh0IixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpnLHN0ZGVycjp1LG91dHB1dHM6Q309YXdhaXQgRChRLGksdCxJLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoZyE9PTAmJnUhPT0iIil0aHJvdyBuZXcgRXJyb3IodSk7cmV0dXJue3dlYldvcmtlcjpuLG91dHB1dFRleHQ6KENbMF0/LmRhdGEpLmRhdGF9fXZhciByST10STthc3luYyBmdW5jdGlvbiBpSShBLGU9e30pe2xldCB0PVt7dHlwZTpmLkpzb25Db21wYXRpYmxlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgRT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShFKX19bGV0IEk9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG89ci5wYXRoO2lmKGkucHVzaChvKSxpLnB1c2goIjAiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdHlwZW9mIGUudGFnc1RvUmVhZDwidSIpe2xldCBFPUkubGVuZ3RoLnRvU3RyaW5nKCk7SS5wdXNoKHt0eXBlOmYuSnNvbkNvbXBhdGlibGUsZGF0YTplLnRhZ3NUb1JlYWR9KSxpLnB1c2goIi0tdGFncy10by1yZWFkIixFKX1sZXQgUT0icmVhZC1kaWNvbS10YWdzIix7d2ViV29ya2VyOmEscmV0dXJuVmFsdWU6bixzdGRlcnI6ZyxvdXRwdXRzOnV9PWF3YWl0IEQoUSxpLHQsSSx7cGlwZWxpbmVCYXNlVXJsOncoKSxwaXBlbGluZVdvcmtlclVybDp5KCksd2ViV29ya2VyOmU/LndlYldvcmtlcj8/bnVsbH0pO2lmKG4hPT0wKXRocm93IG5ldyBFcnJvcihnKTtyZXR1cm57d2ViV29ya2VyOmEsdGFnczp1WzBdLmRhdGF9fXZhciBJST1pSTthc3luYyBmdW5jdGlvbiBvSShBLGU9ITEsdD17fSl7bGV0IHI9W3t0eXBlOmYuSW1hZ2V9LHt0eXBlOmYuSnNvbkNvbXBhdGlibGV9XSxJPVtdLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGkucHVzaCgiLS1pbnB1dC1pbWFnZXMiKSxBLmZvckVhY2goRT0+e0kucHVzaCh7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTpFfSksaS5wdXNoKEUucGF0aCl9KSx0eXBlb2YgZTwidSImJmUmJmkucHVzaCgiLS1zaW5nbGUtc29ydGVkLXNlcmllcyIpO2xldCBRPSJyZWFkLWltYWdlLWRpY29tLWZpbGUtc2VyaWVzIix7d2ViV29ya2VyOmEscmV0dXJuVmFsdWU6bixzdGRlcnI6ZyxvdXRwdXRzOnV9PWF3YWl0IEQoUSxpLHIsSSx7cGlwZWxpbmVCYXNlVXJsOncoKSxwaXBlbGluZVdvcmtlclVybDp5KCksd2ViV29ya2VyOnQ/LndlYldvcmtlcj8/bnVsbH0pO2lmKG4hPT0wKXRocm93IG5ldyBFcnJvcihnKTtyZXR1cm57d2ViV29ya2VyOmEsb3V0cHV0SW1hZ2U6dVswXS5kYXRhLHNvcnRlZEZpbGVuYW1lczp1WzFdLmRhdGF9fXZhciBVZT1vSTt2YXIgbkk9dHlwZW9mIGdsb2JhbFRoaXMubmF2aWdhdG9yPy5oYXJkd2FyZUNvbmN1cnJlbmN5PT0ibnVtYmVyIj9nbG9iYWxUaGlzLm5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5OjQsVnQ9ODthc3luYyBmdW5jdGlvbiBnSShBPXtpbnB1dEltYWdlczpbXX0pe2xldCBlPUEud2ViV29ya2VyUG9vbD8/bnVsbDtpZihlPT09bnVsbCYmKGU9bmV3IFZBKG5JLFVlKSksQS5pbnB1dEltYWdlcy5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJpbnB1dC1pbWFnZXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7bGV0IHQ9YXdhaXQgUHJvbWlzZS5hbGwoQS5pbnB1dEltYWdlcy5tYXAoYXN5bmMgcj0+e2xldCBJPXI7aWYociBpbnN0YW5jZW9mIEZpbGUpe2xldCBpPWF3YWl0IHIuYXJyYXlCdWZmZXIoKTtJPXtwYXRoOnIubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGkpfX1yZXR1cm4gSX0pKTtpZihBLnNpbmdsZVNvcnRlZFNlcmllcyl7bGV0IHI9W107Zm9yKGxldCBRPTA7UTx0Lmxlbmd0aDtRKz1WdCl7bGV0IGE9dC5zbGljZShRLFErVnQpO3IucHVzaChbYSxBLnNpbmdsZVNvcnRlZFNlcmllcyx7fV0pfWxldCBJPWF3YWl0IGUucnVuVGFza3MocikucHJvbWlzZSxpPUkubWFwKFE9PlEub3V0cHV0SW1hZ2UpLG89SS5yZWR1Y2UoKFEsYSk9PlEuY29uY2F0KGEuc29ydGVkRmlsZW5hbWVzKSxbXSk7cmV0dXJue291dHB1dEltYWdlOnZBKGkpLHdlYldvcmtlclBvb2w6ZSxzb3J0ZWRGaWxlbmFtZXM6b319ZWxzZXtsZXQgcj1bW3QsQS5zaW5nbGVTb3J0ZWRTZXJpZXMse31dXSxJPWF3YWl0IGUucnVuVGFza3MocikucHJvbWlzZTtyZXR1cm57b3V0cHV0SW1hZ2U6SVswXS5vdXRwdXRJbWFnZSx3ZWJXb3JrZXJQb29sOmUsc29ydGVkRmlsZW5hbWVzOklbMF0uc29ydGVkRmlsZW5hbWVzfX19dmFyIGFJPWdJO2FzeW5jIGZ1bmN0aW9uIHNJKEEsZT17fSl7bGV0IHQ9W3t0eXBlOmYuSW1hZ2V9LHt0eXBlOmYuSnNvbkNvbXBhdGlibGV9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBsPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGwpfX1sZXQgST1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbz1yLnBhdGg7aS5wdXNoKG8pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKTtsZXQgYT0icmVhZC1zZWdtZW50YXRpb24iLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOnUsc3RkZXJyOkMsb3V0cHV0czpFfT1hd2FpdCBEKGEsaSx0LEkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZih1IT09MCYmQyE9PSIiKXRocm93IG5ldyBFcnJvcihDKTtyZXR1cm57d2ViV29ya2VyOmcsc2VnSW1hZ2U6RVswXT8uZGF0YSxtZXRhSW5mbzpFWzFdPy5kYXRhfX12YXIgQkk9c0k7YXN5bmMgZnVuY3Rpb24gQ0koQSxlPXt9KXtsZXQgdD1be3R5cGU6Zi5JbWFnZX0se3R5cGU6Zi5Kc29uQ29tcGF0aWJsZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IGw9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobCl9fWxldCBJPVt7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxvPXIucGF0aDtpLnB1c2gobyksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUubWVyZ2VTZWdtZW50cyYmZS5tZXJnZVNlZ21lbnRzJiZpLnB1c2goIi0tbWVyZ2Utc2VnbWVudHMiKTtsZXQgYT0icmVhZC1vdmVybGFwcGluZy1zZWdtZW50YXRpb24iLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOnUsc3RkZXJyOkMsb3V0cHV0czpFfT1hd2FpdCBEKGEsaSx0LEkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZih1IT09MCYmQyE9PSIiKXRocm93IG5ldyBFcnJvcihDKTtyZXR1cm57d2ViV29ya2VyOmcsc2VnSW1hZ2U6RVswXT8uZGF0YSxtZXRhSW5mbzpFWzFdPy5kYXRhfX12YXIgUUk9Q0k7YXN5bmMgZnVuY3Rpb24gRUkoQSxlLHQscj17cmVmRGljb21TZXJpZXM6W119KXtsZXQgST1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6dCxkYXRhOm5ldyBVaW50OEFycmF5fX1dLGk9W3t0eXBlOmYuSW1hZ2UsZGF0YTpBfSx7dHlwZTpmLkpzb25Db21wYXRpYmxlLGRhdGE6ZX1dLG89W107by5wdXNoKCIwIiksby5wdXNoKCIxIik7bGV0IGE9dDtpZihvLnB1c2goYSksby5wdXNoKCItLW1lbW9yeS1pbyIpLHIucmVmRGljb21TZXJpZXMpe2lmKHIucmVmRGljb21TZXJpZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcicmVmLWRpY29tLXNlcmllcyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtvLnB1c2goIi0tcmVmLWRpY29tLXNlcmllcyIpLGF3YWl0IFByb21pc2UuYWxsKHIucmVmRGljb21TZXJpZXMubWFwKGFzeW5jIHA9PntsZXQgbT1wO2lmKHAgaW5zdGFuY2VvZiBGaWxlKXtsZXQgTD1hd2FpdCBwLmFycmF5QnVmZmVyKCk7bT17cGF0aDpwLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShMKX19aS5wdXNoKHt0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOm19KTtsZXQgaD1wIGluc3RhbmNlb2YgRmlsZT9wLm5hbWU6bS5wYXRoO28ucHVzaChoKX0pKX1yLnNraXBFbXB0eVNsaWNlcyYmci5za2lwRW1wdHlTbGljZXMmJm8ucHVzaCgiLS1za2lwLWVtcHR5LXNsaWNlcyIpLHIudXNlTGFiZWxpZEFzU2VnbWVudG51bWJlciYmci51c2VMYWJlbGlkQXNTZWdtZW50bnVtYmVyJiZvLnB1c2goIi0tdXNlLWxhYmVsaWQtYXMtc2VnbWVudG51bWJlciIpO2xldCBuPSJ3cml0ZS1zZWdtZW50YXRpb24iLGc9cj8ud2ViV29ya2VyO2c9PT12b2lkIDAmJihnPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjp1LHJldHVyblZhbHVlOkMsc3RkZXJyOkUsb3V0cHV0czpjfT1hd2FpdCBEKG4sbyxJLGkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpnLG5vQ29weTpyPy5ub0NvcHl9KTtpZihDIT09MCYmRSE9PSIiKXRocm93IG5ldyBFcnJvcihFKTtyZXR1cm57d2ViV29ya2VyOnUsb3V0cHV0RGljb21GaWxlOmNbMF0/LmRhdGF9fXZhciBsST1FSTthc3luYyBmdW5jdGlvbiBjSShBLGUsdCxyPXtyZWZEaWNvbVNlcmllczpbXX0pe2xldCBJPVt7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDp0LGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0saT1be3R5cGU6Zi5JbWFnZSxkYXRhOkF9LHt0eXBlOmYuSnNvbkNvbXBhdGlibGUsZGF0YTplfV0sbz1bXTtvLnB1c2goIjAiKSxvLnB1c2goIjEiKTtsZXQgYT10O2lmKG8ucHVzaChhKSxvLnB1c2goIi0tbWVtb3J5LWlvIiksci5yZWZEaWNvbVNlcmllcyl7aWYoci5yZWZEaWNvbVNlcmllcy5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJyZWYtZGljb20tc2VyaWVzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMScpO28ucHVzaCgiLS1yZWYtZGljb20tc2VyaWVzIiksYXdhaXQgUHJvbWlzZS5hbGwoci5yZWZEaWNvbVNlcmllcy5tYXAoYXN5bmMgcD0+e2xldCBtPXA7aWYocCBpbnN0YW5jZW9mIEZpbGUpe2xldCBMPWF3YWl0IHAuYXJyYXlCdWZmZXIoKTttPXtwYXRoOnAubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KEwpfX1pLnB1c2goe3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6bX0pO2xldCBoPXAgaW5zdGFuY2VvZiBGaWxlP3AubmFtZTptLnBhdGg7by5wdXNoKGgpfSkpfXIuc2tpcEVtcHR5U2xpY2VzJiZyLnNraXBFbXB0eVNsaWNlcyYmby5wdXNoKCItLXNraXAtZW1wdHktc2xpY2VzIiksci51c2VMYWJlbGlkQXNTZWdtZW50bnVtYmVyJiZyLnVzZUxhYmVsaWRBc1NlZ21lbnRudW1iZXImJm8ucHVzaCgiLS11c2UtbGFiZWxpZC1hcy1zZWdtZW50bnVtYmVyIik7bGV0IG49IndyaXRlLW92ZXJsYXBwaW5nLXNlZ21lbnRhdGlvbiIsZz1yPy53ZWJXb3JrZXI7Zz09PXZvaWQgMCYmKGc9YXdhaXQgaygpKTtsZXR7d2ViV29ya2VyOnUscmV0dXJuVmFsdWU6QyxzdGRlcnI6RSxvdXRwdXRzOmN9PWF3YWl0IEQobixvLEksaSx7cGlwZWxpbmVCYXNlVXJsOncoKSxwaXBlbGluZVdvcmtlclVybDp5KCksd2ViV29ya2VyOmcsbm9Db3B5OnI/Lm5vQ29weX0pO2lmKEMhPT0wJiZFIT09IiIpdGhyb3cgbmV3IEVycm9yKEUpO3JldHVybnt3ZWJXb3JrZXI6dSxvdXRwdXREaWNvbUZpbGU6Y1swXT8uZGF0YX19dmFyIHVJPWNJO2FzeW5jIGZ1bmN0aW9uIGZJKEEsZSx0PXtyZWZEaWNvbVNlcmllczpbXSxzZWdJbWFnZXM6W119KXtsZXQgcj1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLEk9W3t0eXBlOmYuSnNvbkNvbXBhdGlibGUsZGF0YTpBfV0saT1bXTtpLnB1c2goIjAiKTtsZXQgcz1lO2lmKGkucHVzaChzKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdC5yZWZEaWNvbVNlcmllcyl7aWYodC5yZWZEaWNvbVNlcmllcy5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJyZWYtZGljb20tc2VyaWVzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMScpO2kucHVzaCgiLS1yZWYtZGljb20tc2VyaWVzIiksYXdhaXQgUHJvbWlzZS5hbGwodC5yZWZEaWNvbVNlcmllcy5tYXAoYXN5bmMgYz0+e2xldCBsPWM7aWYoYyBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IGMuYXJyYXlCdWZmZXIoKTtsPXtwYXRoOmMubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1JLnB1c2goe3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6bH0pO2xldCBwPWMgaW5zdGFuY2VvZiBGaWxlP2MubmFtZTpsLnBhdGg7aS5wdXNoKHApfSkpfWlmKHQuc2VnSW1hZ2VzKXtpZih0LnNlZ0ltYWdlcy5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJzZWctaW1hZ2VzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMScpO2kucHVzaCgiLS1zZWctaW1hZ2VzIiksYXdhaXQgUHJvbWlzZS5hbGwodC5zZWdJbWFnZXMubWFwKGFzeW5jIGM9PntsZXQgbD1jO2lmKGMgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBjLmFycmF5QnVmZmVyKCk7bD17cGF0aDpjLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19SS5wdXNoKHt0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOmx9KTtsZXQgcD1jIGluc3RhbmNlb2YgRmlsZT9jLm5hbWU6bC5wYXRoO2kucHVzaChwKX0pKX10LnNraXBFbXB0eVNsaWNlcyYmdC5za2lwRW1wdHlTbGljZXMmJmkucHVzaCgiLS1za2lwLWVtcHR5LXNsaWNlcyIpLHQudXNlTGFiZWxpZEFzU2VnbWVudG51bWJlciYmdC51c2VMYWJlbGlkQXNTZWdtZW50bnVtYmVyJiZpLnB1c2goIi0tdXNlLWxhYmVsaWQtYXMtc2VnbWVudG51bWJlciIpO2xldCBRPSJ3cml0ZS1tdWx0aS1zZWdtZW50YXRpb24iLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpuLHJldHVyblZhbHVlOmcsc3RkZXJyOnUsb3V0cHV0czpDfT1hd2FpdCBEKFEsaSxyLEkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihnIT09MCYmdSE9PSIiKXRocm93IG5ldyBFcnJvcih1KTtyZXR1cm57d2ViV29ya2VyOm4sb3V0cHV0RGljb21GaWxlOkNbMF0/LmRhdGF9fXZhciBwST1mSTthc3luYyBmdW5jdGlvbiBkSShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxJPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBsPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtJPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShsKX19bGV0IGk9W3t0eXBlOmYuVGV4dEZpbGUsZGF0YTpJfV0sbz1bXSxzPUkucGF0aDtvLnB1c2gocyk7bGV0IFE9ZTtpZihvLnB1c2goUSksby5wdXNoKCItLW1lbW9yeS1pbyIpLHQuZGljb21NZXRhZGF0YSl7bGV0IGw9aS5sZW5ndGgudG9TdHJpbmcoKTtpLnB1c2goe3R5cGU6Zi5Kc29uQ29tcGF0aWJsZSxkYXRhOnQuZGljb21NZXRhZGF0YX0pLG8ucHVzaCgiLS1kaWNvbS1tZXRhZGF0YSIsbCl9bGV0IGE9IndyaXRlLXJ0LXN0cnVjdCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgaygpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6dSxzdGRlcnI6QyxvdXRwdXRzOkV9PWF3YWl0IEQoYSxvLHIsaSx7cGlwZWxpbmVCYXNlVXJsOncoKSxwaXBlbGluZVdvcmtlclVybDp5KCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKHUhPT0wJiZDIT09IiIpdGhyb3cgbmV3IEVycm9yKEMpO3JldHVybnt3ZWJXb3JrZXI6ZyxvdXRwdXREaWNvbTpFWzBdPy5kYXRhfX12YXIgbUk9ZEk7dmFyIFh0PSdkYXRhOnRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0Zi04LHZhciBEZT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIGRlPShBLHQpPT57Zm9yKHZhciBlIGluIHQpRGUoQSxlLHtnZXQ6dFtlXSxlbnVtZXJhYmxlOiEwfSl9O3ZhciBFdD1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxoZT1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSx5ZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksWUE9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLFFBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxjdD1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixtZT17Y2FuSGFuZGxlOkE9PmN0KEEpJiZBW0V0XSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOnQscG9ydDI6ZX09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBsQShBLHQpLFtlLFtlXV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksRmUoQSl9fSx3ZT17Y2FuSGFuZGxlOkE9PmN0KEEpJiZRQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCB0O3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/dD17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OnQ9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW3QsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sZnQ9bmV3IE1hcChbWyJwcm94eSIsbWVdLFsidGhyb3ciLHdlXV0pO2Z1bmN0aW9uIHBlKEEsdCl7Zm9yKGxldCBlIG9mIEEpaWYodD09PWV8fGU9PT0iKiJ8fGUgaW5zdGFuY2VvZiBSZWdFeHAmJmUudGVzdCh0KSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBsQShBLHQ9Z2xvYmFsVGhpcyxlPVsiKiJdKXt0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIEkocil7aWYoIXJ8fCFyLmRhdGEpcmV0dXJuO2lmKCFwZShlLHIub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiBcJyR7ci5vcmlnaW59XCcgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOm8sdHlwZTpnLHBhdGg6Q309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sci5kYXRhKSxFPShyLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKE8pLGE7dHJ5e2xldCBzPUMuc2xpY2UoMCwtMSkucmVkdWNlKChmLEIpPT5mW0JdLEEpLG49Qy5yZWR1Y2UoKGYsQik9PmZbQl0sQSk7c3dpdGNoKGcpe2Nhc2UiR0VUIjphPW47YnJlYWs7Y2FzZSJTRVQiOnNbQy5zbGljZSgtMSlbMF1dPU8oci5kYXRhLnZhbHVlKSxhPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOmE9bi5hcHBseShzLEUpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGY9bmV3IG4oLi4uRSk7YT1HZShmKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmYscG9ydDI6Qn09bmV3IE1lc3NhZ2VDaGFubmVsO2xBKEEsQiksYT1NQShmLFtmXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjphPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2gocyl7YT17dmFsdWU6cyxbUUFdOjB9fVByb21pc2UucmVzb2x2ZShhKS5jYXRjaChzPT4oe3ZhbHVlOnMsW1FBXTowfSkpLnRoZW4ocz0+e2xldFtuLGZdPWZBKHMpO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtpZDpvfSksZiksZz09PSJSRUxFQVNFIiYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsSSksbHQodCksWUEgaW4gQSYmdHlwZW9mIEFbWUFdPT0iZnVuY3Rpb24iJiZBW1lBXSgpKX0pLmNhdGNoKHM9PntsZXRbbixmXT1mQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW1FBXTowfSk7dC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2lkOm99KSxmKX0pfSksdC5zdGFydCYmdC5zdGFydCgpfWZ1bmN0aW9uIFNlKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGx0KEEpe1NlKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gRmUoQSx0KXtyZXR1cm4gcUEoQSxbXSx0KX1mdW5jdGlvbiBhQShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gdXQoQSl7cmV0dXJuIFcoQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57bHQoQSl9KX12YXIgRUE9bmV3IFdlYWtNYXAsY0E9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IHQ9KEVBLmdldChBKXx8MCktMTtFQS5zZXQoQSx0KSx0PT09MCYmdXQoQSl9KTtmdW5jdGlvbiBSZShBLHQpe2xldCBlPShFQS5nZXQodCl8fDApKzE7RUEuc2V0KHQsZSksY0EmJmNBLnJlZ2lzdGVyKEEsdCxBKX1mdW5jdGlvbiBOZShBKXtjQSYmY0EudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBxQShBLHQ9W10sZT1mdW5jdGlvbigpe30pe2xldCBJPSExLHI9bmV3IFByb3h5KGUse2dldChvLGcpe2lmKGFBKEkpLGc9PT15ZSlyZXR1cm4oKT0+e05lKHIpLHV0KEEpLEk9ITB9O2lmKGc9PT0idGhlbiIpe2lmKHQubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+cn07bGV0IEM9VyhBLHt0eXBlOiJHRVQiLHBhdGg6dC5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oTyk7cmV0dXJuIEMudGhlbi5iaW5kKEMpfXJldHVybiBxQShBLFsuLi50LGddKX0sc2V0KG8sZyxDKXthQShJKTtsZXRbRSxhXT1mQShDKTtyZXR1cm4gVyhBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLnQsZ10ubWFwKHM9PnMudG9TdHJpbmcoKSksdmFsdWU6RX0sYSkudGhlbihPKX0sYXBwbHkobyxnLEMpe2FBKEkpO2xldCBFPXRbdC5sZW5ndGgtMV07aWYoRT09PWhlKXJldHVybiBXKEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oTyk7aWYoRT09PSJiaW5kIilyZXR1cm4gcUEoQSx0LnNsaWNlKDAsLTEpKTtsZXRbYSxzXT1RdChDKTtyZXR1cm4gVyhBLHt0eXBlOiJBUFBMWSIscGF0aDp0Lm1hcChuPT5uLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDphfSxzKS50aGVuKE8pfSxjb25zdHJ1Y3QobyxnKXthQShJKTtsZXRbQyxFXT1RdChnKTtyZXR1cm4gVyhBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6dC5tYXAoYT0+YS50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Q30sRSkudGhlbihPKX19KTtyZXR1cm4gUmUocixBKSxyfWZ1bmN0aW9uIFVlKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIFF0KEEpe2xldCB0PUEubWFwKGZBKTtyZXR1cm5bdC5tYXAoZT0+ZVswXSksVWUodC5tYXAoZT0+ZVsxXSkpXX12YXIgRHQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gTUEoQSx0KXtyZXR1cm4gRHQuc2V0KEEsdCksQX1mdW5jdGlvbiBHZShBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbRXRdOiEwfSl9ZnVuY3Rpb24gZkEoQSl7Zm9yKGxldFt0LGVdb2YgZnQpaWYoZS5jYW5IYW5kbGUoQSkpe2xldFtJLHJdPWUuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTp0LHZhbHVlOkl9LHJdfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxEdC5nZXQoQSl8fFtdXX1mdW5jdGlvbiBPKEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuIGZ0LmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24gVyhBLHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKEk9PntsZXQgcj1rZSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gbyhnKXshZy5kYXRhfHwhZy5kYXRhLmlkfHxnLmRhdGEuaWQhPT1yfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixvKSxJKGcuZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6cn0sdCksZSl9KX1mdW5jdGlvbiBrZSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gdihBLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KHQsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOkxlfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpUQX09T2JqZWN0LERBPShBPT50PT57bGV0IGU9TGUuY2FsbCh0KTtyZXR1cm4gQVtlXXx8KEFbZV09ZS5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLEc9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLHQ9PkRBKHQpPT09QSksZEE9QT0+dD0+dHlwZW9mIHQ9PT1BLHtpc0FycmF5Omp9PUFycmF5LCQ9ZEEoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIGJlKEEpe3JldHVybiBBIT09bnVsbCYmISQoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhJChBLmNvbnN0cnVjdG9yKSYmVShBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKSYmQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihBKX12YXIgeXQ9RygiQXJyYXlCdWZmZXIiKTtmdW5jdGlvbiBKZShBKXtsZXQgdDtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmQXJyYXlCdWZmZXIuaXNWaWV3P3Q9QXJyYXlCdWZmZXIuaXNWaWV3KEEpOnQ9QSYmQS5idWZmZXImJnl0KEEuYnVmZmVyKSx0fXZhciBIZT1kQSgic3RyaW5nIiksVT1kQSgiZnVuY3Rpb24iKSxtdD1kQSgibnVtYmVyIiksaEE9QT0+QSE9PW51bGwmJnR5cGVvZiBBPT0ib2JqZWN0IixZZT1BPT5BPT09ITB8fEE9PT0hMSx1QT1BPT57aWYoREEoQSkhPT0ib2JqZWN0IilyZXR1cm4hMTtsZXQgdD1UQShBKTtyZXR1cm4odD09PW51bGx8fHQ9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk9PT1udWxsKSYmIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gQSkmJiEoU3ltYm9sLml0ZXJhdG9yIGluIEEpfSxxZT1HKCJEYXRlIiksTWU9RygiRmlsZSIpLEtlPUcoIkJsb2IiKSxUZT1HKCJGaWxlTGlzdCIpLE9lPUE9PmhBKEEpJiZVKEEucGlwZSkseGU9QT0+e2xldCB0O3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fFUoQS5hcHBlbmQpJiYoKHQ9REEoQSkpPT09ImZvcm1kYXRhInx8dD09PSJvYmplY3QiJiZVKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LFBlPUcoIlVSTFNlYXJjaFBhcmFtcyIpLFtXZSxqZSxaZSxWZV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoRyksWGU9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2csIiIpO2Z1bmN0aW9uIEFBKEEsdCx7YWxsT3duS2V5czplPSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IEkscjtpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksaihBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyl0LmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtsZXQgbz1lP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLGc9by5sZW5ndGgsQztmb3IoST0wO0k8ZztJKyspQz1vW0ldLHQuY2FsbChudWxsLEFbQ10sQyxBKX19ZnVuY3Rpb24gd3QoQSx0KXt0PXQudG9Mb3dlckNhc2UoKTtsZXQgZT1PYmplY3Qua2V5cyhBKSxJPWUubGVuZ3RoLHI7Zm9yKDtJLS0gPjA7KWlmKHI9ZVtJXSx0PT09ci50b0xvd2VyQ2FzZSgpKXJldHVybiByO3JldHVybiBudWxsfXZhciB4PXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwscHQ9QT0+ISQoQSkmJkEhPT14O2Z1bmN0aW9uIEtBKCl7bGV0e2Nhc2VsZXNzOkF9PXB0KHRoaXMpJiZ0aGlzfHx7fSx0PXt9LGU9KEkscik9PntsZXQgbz1BJiZ3dCh0LHIpfHxyO3VBKHRbb10pJiZ1QShJKT90W29dPUtBKHRbb10sSSk6dUEoSSk/dFtvXT1LQSh7fSxJKTpqKEkpP3Rbb109SS5zbGljZSgpOnRbb109SX07Zm9yKGxldCBJPTAscj1hcmd1bWVudHMubGVuZ3RoO0k8cjtJKyspYXJndW1lbnRzW0ldJiZBQShhcmd1bWVudHNbSV0sZSk7cmV0dXJuIHR9dmFyIF9lPShBLHQsZSx7YWxsT3duS2V5czpJfT17fSk9PihBQSh0LChyLG8pPT57ZSYmVShyKT9BW29dPXYocixlKTpBW29dPXJ9LHthbGxPd25LZXlzOkl9KSxBKSx6ZT1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLHZlPShBLHQsZSxJKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsSSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTp0LnByb3RvdHlwZX0pLGUmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsZSl9LCRlPShBLHQsZSxJKT0+e2xldCByLG8sZyxDPXt9O2lmKHQ9dHx8e30sQT09bnVsbClyZXR1cm4gdDtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxvPXIubGVuZ3RoO28tLSA+MDspZz1yW29dLCghSXx8SShnLEEsdCkpJiYhQ1tnXSYmKHRbZ109QVtnXSxDW2ddPSEwKTtBPWUhPT0hMSYmVEEoQSl9d2hpbGUoQSYmKCFlfHxlKEEsdCkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIHR9LEFJPShBLHQsZSk9PntBPVN0cmluZyhBKSwoZT09PXZvaWQgMHx8ZT5BLmxlbmd0aCkmJihlPUEubGVuZ3RoKSxlLT10Lmxlbmd0aDtsZXQgST1BLmluZGV4T2YodCxlKTtyZXR1cm4gSSE9PS0xJiZJPT09ZX0sdEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKGooQSkpcmV0dXJuIEE7bGV0IHQ9QS5sZW5ndGg7aWYoIW10KHQpKXJldHVybiBudWxsO2xldCBlPW5ldyBBcnJheSh0KTtmb3IoO3QtLSA+MDspZVt0XT1BW3RdO3JldHVybiBlfSxlST0oQT0+dD0+QSYmdCBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmVEEoVWludDhBcnJheSkpLElJPShBLHQpPT57bGV0IEk9KEEmJkFbU3ltYm9sLml0ZXJhdG9yXSkuY2FsbChBKSxyO2Zvcig7KHI9SS5uZXh0KCkpJiYhci5kb25lOyl7bGV0IG89ci52YWx1ZTt0LmNhbGwoQSxvWzBdLG9bMV0pfX0sckk9KEEsdCk9PntsZXQgZSxJPVtdO2Zvcig7KGU9QS5leGVjKHQpKSE9PW51bGw7KUkucHVzaChlKTtyZXR1cm4gSX0sb0k9RygiSFRNTEZvcm1FbGVtZW50IiksZ0k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xcc10oW2EtelxcZF0pKFxcdyopL2csZnVuY3Rpb24oZSxJLHIpe3JldHVybiBJLnRvVXBwZXJDYXNlKCkrcn0pLGh0PSgoe2hhc093blByb3BlcnR5OkF9KT0+KHQsZSk9PkEuY2FsbCh0LGUpKShPYmplY3QucHJvdG90eXBlKSxpST1HKCJSZWdFeHAiKSxTdD0oQSx0KT0+e2xldCBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLEk9e307QUEoZSwocixvKT0+e2xldCBnOyhnPXQocixvLEEpKSE9PSExJiYoSVtvXT1nfHxyKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsSSl9LHNJPUE9PntTdChBLCh0LGUpPT57aWYoVShBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKGUpIT09LTEpcmV0dXJuITE7bGV0IEk9QVtlXTtpZihVKEkpKXtpZih0LmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIHQpe3Qud3JpdGFibGU9ITE7cmV0dXJufXQuc2V0fHwodC5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgXCciK2UrIlwnIil9KX19KX0sbkk9KEEsdCk9PntsZXQgZT17fSxJPXI9PntyLmZvckVhY2gobz0+e2Vbb109ITB9KX07cmV0dXJuIGooQSk/SShBKTpJKFN0cmluZyhBKS5zcGxpdCh0KSksZX0sQ0k9KCk9Pnt9LEJJPShBLHQpPT5BIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoQT0rQSk/QTp0O2Z1bmN0aW9uIGFJKEEpe3JldHVybiEhKEEmJlUoQS5hcHBlbmQpJiZBW1N5bWJvbC50b1N0cmluZ1RhZ109PT0iRm9ybURhdGEiJiZBW1N5bWJvbC5pdGVyYXRvcl0pfXZhciBRST1BPT57bGV0IHQ9bmV3IEFycmF5KDEwKSxlPShJLHIpPT57aWYoaEEoSSkpe2lmKHQuaW5kZXhPZihJKT49MClyZXR1cm47aWYoISgidG9KU09OImluIEkpKXt0W3JdPUk7bGV0IG89aihJKT9bXTp7fTtyZXR1cm4gQUEoSSwoZyxDKT0+e2xldCBFPWUoZyxyKzEpOyEkKEUpJiYob1tDXT1FKX0pLHRbcl09dm9pZCAwLG99fXJldHVybiBJfTtyZXR1cm4gZShBLDApfSxFST1HKCJBc3luY0Z1bmN0aW9uIiksY0k9QT0+QSYmKGhBKEEpfHxVKEEpKSYmVShBLnRoZW4pJiZVKEEuY2F0Y2gpLEZ0PSgoQSx0KT0+QT9zZXRJbW1lZGlhdGU6dD8oKGUsSSk9Pih4LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTpvfSk9PntyPT09eCYmbz09PWUmJkkubGVuZ3RoJiZJLnNoaWZ0KCkoKX0sITEpLHI9PntJLnB1c2gocikseC5wb3N0TWVzc2FnZShlLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTplPT5zZXRUaW1lb3V0KGUpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLFUoeC5wb3N0TWVzc2FnZSkpLGZJPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZCh4KTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fEZ0LGk9e2lzQXJyYXk6aixpc0FycmF5QnVmZmVyOnl0LGlzQnVmZmVyOmJlLGlzRm9ybURhdGE6eGUsaXNBcnJheUJ1ZmZlclZpZXc6SmUsaXNTdHJpbmc6SGUsaXNOdW1iZXI6bXQsaXNCb29sZWFuOlllLGlzT2JqZWN0OmhBLGlzUGxhaW5PYmplY3Q6dUEsaXNSZWFkYWJsZVN0cmVhbTpXZSxpc1JlcXVlc3Q6amUsaXNSZXNwb25zZTpaZSxpc0hlYWRlcnM6VmUsaXNVbmRlZmluZWQ6JCxpc0RhdGU6cWUsaXNGaWxlOk1lLGlzQmxvYjpLZSxpc1JlZ0V4cDppSSxpc0Z1bmN0aW9uOlUsaXNTdHJlYW06T2UsaXNVUkxTZWFyY2hQYXJhbXM6UGUsaXNUeXBlZEFycmF5OmVJLGlzRmlsZUxpc3Q6VGUsZm9yRWFjaDpBQSxtZXJnZTpLQSxleHRlbmQ6X2UsdHJpbTpYZSxzdHJpcEJPTTp6ZSxpbmhlcml0czp2ZSx0b0ZsYXRPYmplY3Q6JGUsa2luZE9mOkRBLGtpbmRPZlRlc3Q6RyxlbmRzV2l0aDpBSSx0b0FycmF5OnRJLGZvckVhY2hFbnRyeTpJSSxtYXRjaEFsbDpySSxpc0hUTUxGb3JtOm9JLGhhc093blByb3BlcnR5Omh0LGhhc093blByb3A6aHQscmVkdWNlRGVzY3JpcHRvcnM6U3QsZnJlZXplTWV0aG9kczpzSSx0b09iamVjdFNldDpuSSx0b0NhbWVsQ2FzZTpnSSxub29wOkNJLHRvRmluaXRlTnVtYmVyOkJJLGZpbmRLZXk6d3QsZ2xvYmFsOngsaXNDb250ZXh0RGVmaW5lZDpwdCxpc1NwZWNDb21wbGlhbnRGb3JtOmFJLHRvSlNPTk9iamVjdDpRSSxpc0FzeW5jRm46RUksaXNUaGVuYWJsZTpjSSxzZXRJbW1lZGlhdGU6RnQsYXNhcDpmSX07ZnVuY3Rpb24gWihBLHQsZSxJLHIpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsdCYmKHRoaXMuY29kZT10KSxlJiYodGhpcy5jb25maWc9ZSksSSYmKHRoaXMucmVxdWVzdD1JKSxyJiYodGhpcy5yZXNwb25zZT1yLHRoaXMuc3RhdHVzPXIuc3RhdHVzP3Iuc3RhdHVzOm51bGwpfWkuaW5oZXJpdHMoWixFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOmkudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX0pO3ZhciBSdD1aLnByb3RvdHlwZSxOdD17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiLCJFUlJfTk9UX1NVUFBPUlQiLCJFUlJfSU5WQUxJRF9VUkwiXS5mb3JFYWNoKEE9PntOdFtBXT17dmFsdWU6QX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhaLE50KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUnQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7Wi5mcm9tPShBLHQsZSxJLHIsbyk9PntsZXQgZz1PYmplY3QuY3JlYXRlKFJ0KTtyZXR1cm4gaS50b0ZsYXRPYmplY3QoQSxnLGZ1bmN0aW9uKEUpe3JldHVybiBFIT09RXJyb3IucHJvdG90eXBlfSxDPT5DIT09ImlzQXhpb3NFcnJvciIpLFouY2FsbChnLEEubWVzc2FnZSx0LGUsSSxyKSxnLmNhdXNlPUEsZy5uYW1lPUEubmFtZSxvJiZPYmplY3QuYXNzaWduKGcsbyksZ307dmFyIHU9Wjt2YXIgeUE9bnVsbDtmdW5jdGlvbiBPQShBKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KEEpfHxpLmlzQXJyYXkoQSl9ZnVuY3Rpb24gR3QoQSl7cmV0dXJuIGkuZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gVXQoQSx0LGUpe3JldHVybiBBP0EuY29uY2F0KHQpLm1hcChmdW5jdGlvbihyLG8pe3JldHVybiByPUd0KHIpLCFlJiZvPyJbIityKyJdIjpyfSkuam9pbihlPyIuIjoiIik6dH1mdW5jdGlvbiBsSShBKXtyZXR1cm4gaS5pc0FycmF5KEEpJiYhQS5zb21lKE9BKX12YXIgdUk9aS50b0ZsYXRPYmplY3QoaSx7fSxudWxsLGZ1bmN0aW9uKHQpe3JldHVybi9eaXNbQS1aXS8udGVzdCh0KX0pO2Z1bmN0aW9uIERJKEEsdCxlKXtpZighaS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTt0PXR8fG5ldyh5QXx8Rm9ybURhdGEpLGU9aS50b0ZsYXRPYmplY3QoZSx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGwsYyl7cmV0dXJuIWkuaXNVbmRlZmluZWQoY1tsXSl9KTtsZXQgST1lLm1ldGFUb2tlbnMscj1lLnZpc2l0b3J8fHMsbz1lLmRvdHMsZz1lLmluZGV4ZXMsRT0oZS5CbG9ifHx0eXBlb2YgQmxvYjwidSImJkJsb2IpJiZpLmlzU3BlY0NvbXBsaWFudEZvcm0odCk7aWYoIWkuaXNGdW5jdGlvbihyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIGEoUSl7aWYoUT09PW51bGwpcmV0dXJuIiI7aWYoaS5pc0RhdGUoUSkpcmV0dXJuIFEudG9JU09TdHJpbmcoKTtpZighRSYmaS5pc0Jsb2IoUSkpdGhyb3cgbmV3IHUoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIGkuaXNBcnJheUJ1ZmZlcihRKXx8aS5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIHMoUSxsLGMpe2xldCBkPVE7aWYoUSYmIWMmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYoaS5lbmRzV2l0aChsLCJ7fSIpKWw9ST9sOmwuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKGkuaXNBcnJheShRKSYmbEkoUSl8fChpLmlzRmlsZUxpc3QoUSl8fGkuZW5kc1dpdGgobCwiW10iKSkmJihkPWkudG9BcnJheShRKSkpcmV0dXJuIGw9R3QobCksZC5mb3JFYWNoKGZ1bmN0aW9uKG0sSCl7IShpLmlzVW5kZWZpbmVkKG0pfHxtPT09bnVsbCkmJnQuYXBwZW5kKGc9PT0hMD9VdChbbF0sSCxvKTpnPT09bnVsbD9sOmwrIltdIixhKG0pKX0pLCExfXJldHVybiBPQShRKT8hMDoodC5hcHBlbmQoVXQoYyxsLG8pLGEoUSkpLCExKX1sZXQgbj1bXSxmPU9iamVjdC5hc3NpZ24odUkse2RlZmF1bHRWaXNpdG9yOnMsY29udmVydFZhbHVlOmEsaXNWaXNpdGFibGU6T0F9KTtmdW5jdGlvbiBCKFEsbCl7aWYoIWkuaXNVbmRlZmluZWQoUSkpe2lmKG4uaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitsLmpvaW4oIi4iKSk7bi5wdXNoKFEpLGkuZm9yRWFjaChRLGZ1bmN0aW9uKGQseSl7KCEoaS5pc1VuZGVmaW5lZChkKXx8ZD09PW51bGwpJiZyLmNhbGwodCxkLGkuaXNTdHJpbmcoeSk/eS50cmltKCk6eSxsLGYpKT09PSEwJiZCKGQsbD9sLmNvbmNhdCh5KTpbeV0pfSksbi5wb3AoKX19aWYoIWkuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBCKEEpLHR9dmFyIE09REk7ZnVuY3Rpb24ga3QoQSl7bGV0IHQ9eyIhIjoiJTI1MjEiLCJcJyI6IiUyNTI3IiwiKCI6IiUyNTI4IiwiKSI6IiUyNTI5IiwifiI6IiUyNTdFIiwiJTI1MjAiOiIrIiwiJTI1MDAiOiJcXDAifTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoL1shXCcoKX5dfCUyNTIwfCUyNTAwL2csZnVuY3Rpb24oSSl7cmV0dXJuIHRbSV19KX1mdW5jdGlvbiBMdChBLHQpe3RoaXMuX3BhaXJzPVtdLEEmJk0oQSx0aGlzLHQpfXZhciBidD1MdC5wcm90b3R5cGU7YnQuYXBwZW5kPWZ1bmN0aW9uKHQsZSl7dGhpcy5fcGFpcnMucHVzaChbdCxlXSl9O2J0LnRvU3RyaW5nPWZ1bmN0aW9uKHQpe2xldCBlPXQ/ZnVuY3Rpb24oSSl7cmV0dXJuIHQuY2FsbCh0aGlzLEksa3QpfTprdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBlKHJbMF0pKyI9IitlKHJbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgbUE9THQ7ZnVuY3Rpb24gZEkoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lMjUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNTI0L2csIiQiKS5yZXBsYWNlKC8lMjUyQy9naSwiLCIpLnJlcGxhY2UoLyUyNTIwL2csIisiKS5yZXBsYWNlKC8lMjU1Qi9naSwiWyIpLnJlcGxhY2UoLyUyNTVEL2dpLCJdIil9ZnVuY3Rpb24gdEEoQSx0LGUpe2lmKCF0KXJldHVybiBBO2xldCBJPWUmJmUuZW5jb2RlfHxkSTtpLmlzRnVuY3Rpb24oZSkmJihlPXtzZXJpYWxpemU6ZX0pO2xldCByPWUmJmUuc2VyaWFsaXplLG87aWYocj9vPXIodCxlKTpvPWkuaXNVUkxTZWFyY2hQYXJhbXModCk/dC50b1N0cmluZygpOm5ldyBtQSh0LGUpLnRvU3RyaW5nKEkpLG8pe2xldCBnPUEuaW5kZXhPZigiJTIzIik7ZyE9PS0xJiYoQT1BLnNsaWNlKDAsZykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK299cmV0dXJuIEF9dmFyIHhBPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UodCxlLEkpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDp0LHJlamVjdGVkOmUsc3luY2hyb25vdXM6ST9JLnN5bmNocm9ub3VzOiExLHJ1bldoZW46ST9JLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QodCl7dGhpcy5oYW5kbGVyc1t0XSYmKHRoaXMuaGFuZGxlcnNbdF09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaCh0KXtpLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihJKXtJIT09bnVsbCYmdChJKX0pfX0sUEE9eEE7dmFyIHdBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgSnQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOm1BO3ZhciBIdD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyIFl0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIHF0PXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOkp0LEZvcm1EYXRhOkh0LEJsb2I6WXR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgWkE9e307ZGUoWkEse2hhc0Jyb3dzZXJFbnY6KCk9PmpBLGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+aEksaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT55SSxuYXZpZ2F0b3I6KCk9PldBLG9yaWdpbjooKT0+bUl9KTt2YXIgakE9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsV0E9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLGhJPWpBJiYoIVdBfHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKFdBLnByb2R1Y3QpPDApLHlJPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixtST1qQSYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgaD17Li4uWkEsLi4ucXR9O2Z1bmN0aW9uIFZBKEEsdCl7cmV0dXJuIE0oQSxuZXcgaC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyxPYmplY3QuYXNzaWduKHt2aXNpdG9yOmZ1bmN0aW9uKGUsSSxyLG8pe3JldHVybiBoLmlzTm9kZSYmaS5pc0J1ZmZlcihlKT8odGhpcy5hcHBlbmQoSSxlLnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOm8uZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sdCkpfWZ1bmN0aW9uIHdJKEEpe3JldHVybiBpLm1hdGNoQWxsKC9cXHcrfFxcWyhcXHcqKV0vZyxBKS5tYXAodD0+dFswXT09PSJbXSI/IiI6dFsxXXx8dFswXSl9ZnVuY3Rpb24gcEkoQSl7bGV0IHQ9e30sZT1PYmplY3Qua2V5cyhBKSxJLHI9ZS5sZW5ndGgsbztmb3IoST0wO0k8cjtJKyspbz1lW0ldLHRbb109QVtvXTtyZXR1cm4gdH1mdW5jdGlvbiBTSShBKXtmdW5jdGlvbiB0KGUsSSxyLG8pe2xldCBnPWVbbysrXTtpZihnPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IEM9TnVtYmVyLmlzRmluaXRlKCtnKSxFPW8+PWUubGVuZ3RoO3JldHVybiBnPSFnJiZpLmlzQXJyYXkocik/ci5sZW5ndGg6ZyxFPyhpLmhhc093blByb3AocixnKT9yW2ddPVtyW2ddLEldOnJbZ109SSwhQyk6KCghcltnXXx8IWkuaXNPYmplY3QocltnXSkpJiYocltnXT1bXSksdChlLEkscltnXSxvKSYmaS5pc0FycmF5KHJbZ10pJiYocltnXT1wSShyW2ddKSksIUMpfWlmKGkuaXNGb3JtRGF0YShBKSYmaS5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCBlPXt9O3JldHVybiBpLmZvckVhY2hFbnRyeShBLChJLHIpPT57dCh3SShJKSxyLGUsMCl9KSxlfXJldHVybiBudWxsfXZhciBwQT1TSTtmdW5jdGlvbiBGSShBLHQsZSl7aWYoaS5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKHR8fEpTT04ucGFyc2UpKEEpLGkudHJpbShBKX1jYXRjaChJKXtpZihJLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IEl9cmV0dXJuKGV8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgWEE9e3RyYW5zaXRpb25hbDp3QSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24odCxlKXtsZXQgST1lLmdldENvbnRlbnRUeXBlKCl8fCIiLHI9SS5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsbz1pLmlzT2JqZWN0KHQpO2lmKG8mJmkuaXNIVE1MRm9ybSh0KSYmKHQ9bmV3IEZvcm1EYXRhKHQpKSxpLmlzRm9ybURhdGEodCkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkocEEodCkpOnQ7aWYoaS5pc0FycmF5QnVmZmVyKHQpfHxpLmlzQnVmZmVyKHQpfHxpLmlzU3RyZWFtKHQpfHxpLmlzRmlsZSh0KXx8aS5pc0Jsb2IodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KHQpKXJldHVybiB0LmJ1ZmZlcjtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKHQpKXJldHVybiBlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLHQudG9TdHJpbmcoKTtsZXQgQztpZihvKXtpZihJLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBWQSh0LHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKEM9aS5pc0ZpbGVMaXN0KHQpKXx8SS5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gTShDP3siZmlsZXNbXSI6dH06dCxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIG98fHI/KGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxGSSh0KSk6dH1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbih0KXtsZXQgZT10aGlzLnRyYW5zaXRpb25hbHx8WEEudHJhbnNpdGlvbmFsLEk9ZSYmZS5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKGkuaXNSZXNwb25zZSh0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKHQmJmkuaXNTdHJpbmcodCkmJihJJiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgZz0hKGUmJmUuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaChDKXtpZihnKXRocm93IEMubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKEMsdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpDfX1yZXR1cm4gdH1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6aC5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6aC5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMDAmJnQ8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntYQS5oZWFkZXJzW0FdPXt9fSk7dmFyIFY9WEE7dmFyIFJJPWkudG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksTXQ9QT0+e2xldCB0PXt9LGUsSSxyO3JldHVybiBBJiZBLnNwbGl0KGAlMEFgKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe3I9Zy5pbmRleE9mKCI6IiksZT1nLnN1YnN0cmluZygwLHIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLEk9Zy5zdWJzdHJpbmcocisxKS50cmltKCksISghZXx8dFtlXSYmUklbZV0pJiYoZT09PSJzZXQtY29va2llIj90W2VdP3RbZV0ucHVzaChJKTp0W2VdPVtJXTp0W2VdPXRbZV0/dFtlXSsiLCAiK0k6SSl9KSx0fTt2YXIgS3Q9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBlQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFNBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTppLmlzQXJyYXkoQSk/QS5tYXAoU0EpOlN0cmluZyhBKX1mdW5jdGlvbiBOSShBKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpLGU9LyhbXlxccyw7PV0rKVxccyooPzo9XFxzKihbXiw7XSspKT8vZyxJO2Zvcig7ST1lLmV4ZWMoQSk7KXRbSVsxXV09SVsyXTtyZXR1cm4gdH12YXIgVUk9QT0+L15bLV9hLXpBLVowLTleYHx+LCElMjMkJSZcJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gX0EoQSx0LGUsSSxyKXtpZihpLmlzRnVuY3Rpb24oSSkpcmV0dXJuIEkuY2FsbCh0aGlzLHQsZSk7aWYociYmKHQ9ZSksISFpLmlzU3RyaW5nKHQpKXtpZihpLmlzU3RyaW5nKEkpKXJldHVybiB0LmluZGV4T2YoSSkhPT0tMTtpZihpLmlzUmVnRXhwKEkpKXJldHVybiBJLnRlc3QodCl9fWZ1bmN0aW9uIEdJKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XFxkXSkoXFx3KikvZywodCxlLEkpPT5lLnRvVXBwZXJDYXNlKCkrSSl9ZnVuY3Rpb24ga0koQSx0KXtsZXQgZT1pLnRvQ2FtZWxDYXNlKCIgIit0KTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2goST0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLEkrZSx7dmFsdWU6ZnVuY3Rpb24ocixvLGcpe3JldHVybiB0aGlzW0ldLmNhbGwodGhpcyx0LHIsbyxnKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgWD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0JiZ0aGlzLnNldCh0KX1zZXQodCxlLEkpe2xldCByPXRoaXM7ZnVuY3Rpb24gbyhDLEUsYSl7bGV0IHM9ZUEoRSk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2xldCBuPWkuZmluZEtleShyLHMpOyghbnx8cltuXT09PXZvaWQgMHx8YT09PSEwfHxhPT09dm9pZCAwJiZyW25dIT09ITEpJiYocltufHxFXT1TQShDKSl9bGV0IGc9KEMsRSk9PmkuZm9yRWFjaChDLChhLHMpPT5vKGEscyxFKSk7aWYoaS5pc1BsYWluT2JqZWN0KHQpfHx0IGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3RvcilnKHQsZSk7ZWxzZSBpZihpLmlzU3RyaW5nKHQpJiYodD10LnRyaW0oKSkmJiFVSSh0KSlnKE10KHQpLGUpO2Vsc2UgaWYoaS5pc0hlYWRlcnModCkpZm9yKGxldFtDLEVdb2YgdC5lbnRyaWVzKCkpbyhFLEMsSSk7ZWxzZSB0IT1udWxsJiZvKGUsdCxJKTtyZXR1cm4gdGhpc31nZXQodCxlKXtpZih0PWVBKHQpLHQpe2xldCBJPWkuZmluZEtleSh0aGlzLHQpO2lmKEkpe2xldCByPXRoaXNbSV07aWYoIWUpcmV0dXJuIHI7aWYoZT09PSEwKXJldHVybiBOSShyKTtpZihpLmlzRnVuY3Rpb24oZSkpcmV0dXJuIGUuY2FsbCh0aGlzLHIsSSk7aWYoaS5pc1JlZ0V4cChlKSlyZXR1cm4gZS5leGVjKHIpO3Rocm93IG5ldyBUeXBlRXJyb3IoInBhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uIil9fX1oYXModCxlKXtpZih0PWVBKHQpLHQpe2xldCBJPWkuZmluZEtleSh0aGlzLHQpO3JldHVybiEhKEkmJnRoaXNbSV0hPT12b2lkIDAmJighZXx8X0EodGhpcyx0aGlzW0ldLEksZSkpKX1yZXR1cm4hMX1kZWxldGUodCxlKXtsZXQgST10aGlzLHI9ITE7ZnVuY3Rpb24gbyhnKXtpZihnPWVBKGcpLGcpe2xldCBDPWkuZmluZEtleShJLGcpO0MmJighZXx8X0EoSSxJW0NdLEMsZSkpJiYoZGVsZXRlIElbQ10scj0hMCl9fXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKG8pOm8odCkscn1jbGVhcih0KXtsZXQgZT1PYmplY3Qua2V5cyh0aGlzKSxJPWUubGVuZ3RoLHI9ITE7Zm9yKDtJLS07KXtsZXQgbz1lW0ldOyghdHx8X0EodGhpcyx0aGlzW29dLG8sdCwhMCkpJiYoZGVsZXRlIHRoaXNbb10scj0hMCl9cmV0dXJuIHJ9bm9ybWFsaXplKHQpe2xldCBlPXRoaXMsST17fTtyZXR1cm4gaS5mb3JFYWNoKHRoaXMsKHIsbyk9PntsZXQgZz1pLmZpbmRLZXkoSSxvKTtpZihnKXtlW2ddPVNBKHIpLGRlbGV0ZSBlW29dO3JldHVybn1sZXQgQz10P0dJKG8pOlN0cmluZyhvKS50cmltKCk7QyE9PW8mJmRlbGV0ZSBlW29dLGVbQ109U0EociksSVtDXT0hMH0pLHRoaXN9Y29uY2F0KC4uLnQpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLmNvbmNhdCh0aGlzLC4uLnQpfXRvSlNPTih0KXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBpLmZvckVhY2godGhpcywoSSxyKT0+e0khPW51bGwmJkkhPT0hMSYmKGVbcl09dCYmaS5pc0FycmF5KEkpP0kuam9pbigiLCAiKTpJKX0pLGV9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSlbU3ltYm9sLml0ZXJhdG9yXSgpfXRvU3RyaW5nKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpLm1hcCgoW3QsZV0pPT50KyI6ICIrZSkuam9pbihgJTBBYCl9Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHRoaXM/dDpuZXcgdGhpcyh0KX1zdGF0aWMgY29uY2F0KHQsLi4uZSl7bGV0IEk9bmV3IHRoaXModCk7cmV0dXJuIGUuZm9yRWFjaChyPT5JLnNldChyKSksSX1zdGF0aWMgYWNjZXNzb3IodCl7bGV0IEk9KHRoaXNbS3RdPXRoaXNbS3RdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBvKGcpe2xldCBDPWVBKGcpO0lbQ118fChrSShyLGcpLElbQ109ITApfXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKG8pOm8odCksdGhpc319O1guYWNjZXNzb3IoWyJDb250ZW50LVR5cGUiLCJDb250ZW50LUxlbmd0aCIsIkFjY2VwdCIsIkFjY2VwdC1FbmNvZGluZyIsIlVzZXItQWdlbnQiLCJBdXRob3JpemF0aW9uIl0pO2kucmVkdWNlRGVzY3JpcHRvcnMoWC5wcm90b3R5cGUsKHt2YWx1ZTpBfSx0KT0+e2xldCBlPXRbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KEkpe3RoaXNbZV09SX19fSk7aS5mcmVlemVNZXRob2RzKFgpO3ZhciBTPVg7ZnVuY3Rpb24gSUEoQSx0KXtsZXQgZT10aGlzfHxWLEk9dHx8ZSxyPVMuZnJvbShJLmhlYWRlcnMpLG89SS5kYXRhO3JldHVybiBpLmZvckVhY2goQSxmdW5jdGlvbihDKXtvPUMuY2FsbChlLG8sci5ub3JtYWxpemUoKSx0P3Quc3RhdHVzOnZvaWQgMCl9KSxyLm5vcm1hbGl6ZSgpLG99ZnVuY3Rpb24gckEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBUdChBLHQsZSl7dS5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIix1LkVSUl9DQU5DRUxFRCx0LGUpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9aS5pbmhlcml0cyhUdCx1LHtfX0NBTkNFTF9fOiEwfSk7dmFyIEw9VHQ7ZnVuY3Rpb24gb0EoQSx0LGUpe2xldCBJPWUuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyFlLnN0YXR1c3x8IUl8fEkoZS5zdGF0dXMpP0EoZSk6dChuZXcgdSgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK2Uuc3RhdHVzLFt1LkVSUl9CQURfUkVRVUVTVCx1LkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IoZS5zdGF0dXMvMTAwKS00XSxlLmNvbmZpZyxlLnJlcXVlc3QsZSkpfWZ1bmN0aW9uIHpBKEEpe2xldCB0PS9eKFstK1xcd117MSwyNX0pKDo/XFwvXFwvfDopLy5leGVjKEEpO3JldHVybiB0JiZ0WzFdfHwiIn1mdW5jdGlvbiBMSShBLHQpe0E9QXx8MTA7bGV0IGU9bmV3IEFycmF5KEEpLEk9bmV3IEFycmF5KEEpLHI9MCxvPTAsZztyZXR1cm4gdD10IT09dm9pZCAwP3Q6MWUzLGZ1bmN0aW9uKEUpe2xldCBhPURhdGUubm93KCkscz1JW29dO2d8fChnPWEpLGVbcl09RSxJW3JdPWE7bGV0IG49byxmPTA7Zm9yKDtuIT09cjspZis9ZVtuKytdLG49biVBO2lmKHI9KHIrMSklQSxyPT09byYmKG89KG8rMSklQSksYS1nPHQpcmV0dXJuO2xldCBCPXMmJmEtcztyZXR1cm4gQj9NYXRoLnJvdW5kKGYqMWUzL0IpOnZvaWQgMH19dmFyIE90PUxJO2Z1bmN0aW9uIGJJKEEsdCl7bGV0IGU9MCxJPTFlMy90LHIsbyxnPShhLHM9RGF0ZS5ub3coKSk9PntlPXMscj1udWxsLG8mJihjbGVhclRpbWVvdXQobyksbz1udWxsKSxBLmFwcGx5KG51bGwsYSl9O3JldHVyblsoLi4uYSk9PntsZXQgcz1EYXRlLm5vdygpLG49cy1lO24+PUk/ZyhhLHMpOihyPWEsb3x8KG89c2V0VGltZW91dCgoKT0+e289bnVsbCxnKHIpfSxJLW4pKSl9LCgpPT5yJiZnKHIpXX12YXIgeHQ9Ykk7dmFyIF89KEEsdCxlPTMpPT57bGV0IEk9MCxyPU90KDUwLDI1MCk7cmV0dXJuIHh0KG89PntsZXQgZz1vLmxvYWRlZCxDPW8ubGVuZ3RoQ29tcHV0YWJsZT9vLnRvdGFsOnZvaWQgMCxFPWctSSxhPXIoRSkscz1nPD1DO0k9ZztsZXQgbj17bG9hZGVkOmcsdG90YWw6Qyxwcm9ncmVzczpDP2cvQzp2b2lkIDAsYnl0ZXM6RSxyYXRlOmF8fHZvaWQgMCxlc3RpbWF0ZWQ6YSYmQyYmcz8oQy1nKS9hOnZvaWQgMCxldmVudDpvLGxlbmd0aENvbXB1dGFibGU6QyE9bnVsbCxbdD8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH07QShuKX0sZSl9LHZBPShBLHQpPT57bGV0IGU9QSE9bnVsbDtyZXR1cm5bST0+dFswXSh7bGVuZ3RoQ29tcHV0YWJsZTplLHRvdGFsOkEsbG9hZGVkOkl9KSx0WzFdXX0sJEE9QT0+KC4uLnQpPT5pLmFzYXAoKCk9PkEoLi4udCkpO3ZhciBQdD1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKEEsdCk9PmU9PihlPW5ldyBVUkwoZSxoLm9yaWdpbiksQS5wcm90b2NvbD09PWUucHJvdG9jb2wmJkEuaG9zdD09PWUuaG9zdCYmKHR8fEEucG9ydD09PWUucG9ydCkpKShuZXcgVVJMKGgub3JpZ2luKSxoLm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChoLm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITA7dmFyIFd0PWguaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShBLHQsZSxJLHIsbyl7bGV0IGc9W0ErIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0KV07aS5pc051bWJlcihlKSYmZy5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUoZSkudG9HTVRTdHJpbmcoKSksaS5pc1N0cmluZyhJKSYmZy5wdXNoKCJwYXRoPSIrSSksaS5pc1N0cmluZyhyKSYmZy5wdXNoKCJkb21haW49IityKSxvPT09ITAmJmcucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPWcuam9pbigiOyAiKX0scmVhZChBKXtsZXQgdD1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xcXFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIHQ/ZGVjb2RlVVJJQ29tcG9uZW50KHRbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gQXQoQSl7cmV0dXJuL14oW2Etel1bYS16XFxkK1xcLS5dKjopP1xcL1xcLy9pLnRlc3QoQSl9ZnVuY3Rpb24gdHQoQSx0KXtyZXR1cm4gdD9BLnJlcGxhY2UoL1xcLz9cXC8kLywiIikrIi8iK3QucmVwbGFjZSgvXlxcLysvLCIiKTpBfWZ1bmN0aW9uIGdBKEEsdCxlKXtsZXQgST0hQXQodCk7cmV0dXJuIEEmJihJfHxlPT0hMSk/dHQoQSx0KTp0fXZhciBqdD1BPT5BIGluc3RhbmNlb2YgUz97Li4uQX06QTtmdW5jdGlvbiBrKEEsdCl7dD10fHx7fTtsZXQgZT17fTtmdW5jdGlvbiBJKGEscyxuLGYpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoYSkmJmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlLmNhbGwoe2Nhc2VsZXNzOmZ9LGEscyk6aS5pc1BsYWluT2JqZWN0KHMpP2kubWVyZ2Uoe30scyk6aS5pc0FycmF5KHMpP3Muc2xpY2UoKTpzfWZ1bmN0aW9uIHIoYSxzLG4sZil7aWYoaS5pc1VuZGVmaW5lZChzKSl7aWYoIWkuaXNVbmRlZmluZWQoYSkpcmV0dXJuIEkodm9pZCAwLGEsbixmKX1lbHNlIHJldHVybiBJKGEscyxuLGYpfWZ1bmN0aW9uIG8oYSxzKXtpZighaS5pc1VuZGVmaW5lZChzKSlyZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gZyhhLHMpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKGEpKXJldHVybiBJKHZvaWQgMCxhKX1lbHNlIHJldHVybiBJKHZvaWQgMCxzKX1mdW5jdGlvbiBDKGEscyxuKXtpZihuIGluIHQpcmV0dXJuIEkoYSxzKTtpZihuIGluIEEpcmV0dXJuIEkodm9pZCAwLGEpfWxldCBFPXt1cmw6byxtZXRob2Q6byxkYXRhOm8sYmFzZVVSTDpnLHRyYW5zZm9ybVJlcXVlc3Q6Zyx0cmFuc2Zvcm1SZXNwb25zZTpnLHBhcmFtc1NlcmlhbGl6ZXI6Zyx0aW1lb3V0OmcsdGltZW91dE1lc3NhZ2U6Zyx3aXRoQ3JlZGVudGlhbHM6Zyx3aXRoWFNSRlRva2VuOmcsYWRhcHRlcjpnLHJlc3BvbnNlVHlwZTpnLHhzcmZDb29raWVOYW1lOmcseHNyZkhlYWRlck5hbWU6ZyxvblVwbG9hZFByb2dyZXNzOmcsb25Eb3dubG9hZFByb2dyZXNzOmcsZGVjb21wcmVzczpnLG1heENvbnRlbnRMZW5ndGg6ZyxtYXhCb2R5TGVuZ3RoOmcsYmVmb3JlUmVkaXJlY3Q6Zyx0cmFuc3BvcnQ6ZyxodHRwQWdlbnQ6ZyxodHRwc0FnZW50OmcsY2FuY2VsVG9rZW46Zyxzb2NrZXRQYXRoOmcscmVzcG9uc2VFbmNvZGluZzpnLHZhbGlkYXRlU3RhdHVzOkMsaGVhZGVyczooYSxzLG4pPT5yKGp0KGEpLGp0KHMpLG4sITApfTtyZXR1cm4gaS5mb3JFYWNoKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sQSx0KSksZnVuY3Rpb24ocyl7bGV0IG49RVtzXXx8cixmPW4oQVtzXSx0W3NdLHMpO2kuaXNVbmRlZmluZWQoZikmJm4hPT1DfHwoZVtzXT1mKX0pLGV9dmFyIEZBPUE9PntsZXQgdD1rKHt9LEEpLHtkYXRhOmUsd2l0aFhTUkZUb2tlbjpJLHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6byxoZWFkZXJzOmcsYXV0aDpDfT10O3QuaGVhZGVycz1nPVMuZnJvbShnKSx0LnVybD10QShnQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxDJiZnLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgoQy51c2VybmFtZXx8IiIpKyI6IisoQy5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoQy5wYXNzd29yZCkpOiIiKSkpO2xldCBFO2lmKGkuaXNGb3JtRGF0YShlKSl7aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fGguaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KWcuc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKChFPWcuZ2V0Q29udGVudFR5cGUoKSkhPT0hMSl7bGV0W2EsLi4uc109RT9FLnNwbGl0KCI7IikubWFwKG49Pm4udHJpbSgpKS5maWx0ZXIoQm9vbGVhbik6W107Zy5zZXRDb250ZW50VHlwZShbYXx8Im11bHRpcGFydC9mb3JtLWRhdGEiLC4uLnNdLmpvaW4oIjsgIikpfX1pZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKEkmJmkuaXNGdW5jdGlvbihJKSYmKEk9SSh0KSksSXx8SSE9PSExJiZQdCh0LnVybCkpKXtsZXQgYT1yJiZvJiZXdC5yZWFkKG8pO2EmJmcuc2V0KHIsYSl9cmV0dXJuIHR9O3ZhciBKST10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUiLFp0PUpJJiZmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxJKXtsZXQgcj1GQShBKSxvPXIuZGF0YSxnPVMuZnJvbShyLmhlYWRlcnMpLm5vcm1hbGl6ZSgpLHtyZXNwb25zZVR5cGU6QyxvblVwbG9hZFByb2dyZXNzOkUsb25Eb3dubG9hZFByb2dyZXNzOmF9PXIscyxuLGYsQixRO2Z1bmN0aW9uIGwoKXtCJiZCKCksUSYmUSgpLHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUocyksci5zaWduYWwmJnIuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixzKX1sZXQgYz1uZXcgWE1MSHR0cFJlcXVlc3Q7Yy5vcGVuKHIubWV0aG9kLnRvVXBwZXJDYXNlKCksci51cmwsITApLGMudGltZW91dD1yLnRpbWVvdXQ7ZnVuY3Rpb24gZCgpe2lmKCFjKXJldHVybjtsZXQgbT1TLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBjJiZjLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxSPXtkYXRhOiFDfHxDPT09InRleHQifHxDPT09Impzb24iP2MucmVzcG9uc2VUZXh0OmMucmVzcG9uc2Usc3RhdHVzOmMuc3RhdHVzLHN0YXR1c1RleHQ6Yy5zdGF0dXNUZXh0LGhlYWRlcnM6bSxjb25maWc6QSxyZXF1ZXN0OmN9O29BKGZ1bmN0aW9uKFQpe2UoVCksbCgpfSxmdW5jdGlvbihUKXtJKFQpLGwoKX0sUiksYz1udWxsfSJvbmxvYWRlbmQiaW4gYz9jLm9ubG9hZGVuZD1kOmMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IWN8fGMucmVhZHlTdGF0ZSE9PTR8fGMuc3RhdHVzPT09MCYmIShjLnJlc3BvbnNlVVJMJiZjLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6Iik9PT0wKXx8c2V0VGltZW91dChkKX0sYy5vbmFib3J0PWZ1bmN0aW9uKCl7YyYmKEkobmV3IHUoIlJlcXVlc3QgYWJvcnRlZCIsdS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsKX0sYy5vbmVycm9yPWZ1bmN0aW9uKCl7SShuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxBLGMpKSxjPW51bGx9LGMub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IEg9ci50aW1lb3V0PyJ0aW1lb3V0IG9mICIrci50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLFI9ci50cmFuc2l0aW9uYWx8fHdBO3IudGltZW91dEVycm9yTWVzc2FnZSYmKEg9ci50aW1lb3V0RXJyb3JNZXNzYWdlKSxJKG5ldyB1KEgsUi5jbGFyaWZ5VGltZW91dEVycm9yP3UuRVRJTUVET1VUOnUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbH0sbz09PXZvaWQgMCYmZy5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBjJiZpLmZvckVhY2goZy50b0pTT04oKSxmdW5jdGlvbihILFIpe2Muc2V0UmVxdWVzdEhlYWRlcihSLEgpfSksaS5pc1VuZGVmaW5lZChyLndpdGhDcmVkZW50aWFscyl8fChjLndpdGhDcmVkZW50aWFscz0hIXIud2l0aENyZWRlbnRpYWxzKSxDJiZDIT09Impzb24iJiYoYy5yZXNwb25zZVR5cGU9ci5yZXNwb25zZVR5cGUpLGEmJihbZixRXT1fKGEsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGYpKSxFJiZjLnVwbG9hZCYmKFtuLEJdPV8oRSksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLG4pLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLEIpKSwoci5jYW5jZWxUb2tlbnx8ci5zaWduYWwpJiYocz1tPT57YyYmKEkoIW18fG0udHlwZT9uZXcgTChudWxsLEEsYyk6bSksYy5hYm9ydCgpLGM9bnVsbCl9LHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiYoci5zaWduYWwuYWJvcnRlZD9zKCk6ci5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpKSk7bGV0IHk9ekEoci51cmwpO2lmKHkmJmgucHJvdG9jb2xzLmluZGV4T2YoeSk9PT0tMSl7SShuZXcgdSgiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIit5KyI6Iix1LkVSUl9CQURfUkVRVUVTVCxBKSk7cmV0dXJufWMuc2VuZChvfHxudWxsKX0pfTt2YXIgSEk9KEEsdCk9PntsZXR7bGVuZ3RoOmV9PUE9QT9BLmZpbHRlcihCb29sZWFuKTpbXTtpZih0fHxlKXtsZXQgST1uZXcgQWJvcnRDb250cm9sbGVyLHIsbz1mdW5jdGlvbihhKXtpZighcil7cj0hMCxDKCk7bGV0IHM9YSBpbnN0YW5jZW9mIEVycm9yP2E6dGhpcy5yZWFzb247SS5hYm9ydChzIGluc3RhbmNlb2YgdT9zOm5ldyBMKHMgaW5zdGFuY2VvZiBFcnJvcj9zLm1lc3NhZ2U6cykpfX0sZz10JiZzZXRUaW1lb3V0KCgpPT57Zz1udWxsLG8obmV3IHUoYHRpbWVvdXQgJHt0fSBvZiBtcyBleGNlZWRlZGAsdS5FVElNRURPVVQpKX0sdCksQz0oKT0+e0EmJihnJiZjbGVhclRpbWVvdXQoZyksZz1udWxsLEEuZm9yRWFjaChhPT57YS51bnN1YnNjcmliZT9hLnVuc3Vic2NyaWJlKG8pOmEucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfSksQT1udWxsKX07QS5mb3JFYWNoKGE9PmEuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pKTtsZXR7c2lnbmFsOkV9PUk7cmV0dXJuIEUudW5zdWJzY3JpYmU9KCk9PmkuYXNhcChDKSxFfX0sVnQ9SEk7dmFyIFlJPWZ1bmN0aW9uKihBLHQpe2xldCBlPUEuYnl0ZUxlbmd0aDtpZighdHx8ZTx0KXt5aWVsZCBBO3JldHVybn1sZXQgST0wLHI7Zm9yKDtJPGU7KXI9SSt0LHlpZWxkIEEuc2xpY2UoSSxyKSxJPXJ9LHFJPWFzeW5jIGZ1bmN0aW9uKihBLHQpe2ZvciBhd2FpdChsZXQgZSBvZiBNSShBKSl5aWVsZCpZSShlLHQpfSxNST1hc3luYyBmdW5jdGlvbiooQSl7aWYoQVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pe3lpZWxkKkE7cmV0dXJufWxldCB0PUEuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6ZSx2YWx1ZTpJfT1hd2FpdCB0LnJlYWQoKTtpZihlKWJyZWFrO3lpZWxkIEl9fWZpbmFsbHl7YXdhaXQgdC5jYW5jZWwoKX19LGV0PShBLHQsZSxJKT0+e2xldCByPXFJKEEsdCksbz0wLGcsQz1FPT57Z3x8KGc9ITAsSSYmSShFKSl9O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwoRSl7dHJ5e2xldHtkb25lOmEsdmFsdWU6c309YXdhaXQgci5uZXh0KCk7aWYoYSl7QygpLEUuY2xvc2UoKTtyZXR1cm59bGV0IG49cy5ieXRlTGVuZ3RoO2lmKGUpe2xldCBmPW8rPW47ZShmKX1FLmVucXVldWUobmV3IFVpbnQ4QXJyYXkocykpfWNhdGNoKGEpe3Rocm93IEMoYSksYX19LGNhbmNlbChFKXtyZXR1cm4gQyhFKSxyLnJldHVybigpfX0se2hpZ2hXYXRlck1hcms6Mn0pfTt2YXIgTkE9dHlwZW9mIGZldGNoPT0iZnVuY3Rpb24iJiZ0eXBlb2YgUmVxdWVzdD09ImZ1bmN0aW9uIiYmdHlwZW9mIFJlc3BvbnNlPT0iZnVuY3Rpb24iLF90PU5BJiZ0eXBlb2YgUmVhZGFibGVTdHJlYW09PSJmdW5jdGlvbiIsS0k9TkEmJih0eXBlb2YgVGV4dEVuY29kZXI9PSJmdW5jdGlvbiI/KEE9PnQ9PkEuZW5jb2RlKHQpKShuZXcgVGV4dEVuY29kZXIpOmFzeW5jIEE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBSZXNwb25zZShBKS5hcnJheUJ1ZmZlcigpKSksenQ9KEEsLi4udCk9Pnt0cnl7cmV0dXJuISFBKC4uLnQpfWNhdGNoe3JldHVybiExfX0sVEk9X3QmJnp0KCgpPT57bGV0IEE9ITEsdD1uZXcgUmVxdWVzdChoLm9yaWdpbix7Ym9keTpuZXcgUmVhZGFibGVTdHJlYW0sbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIEE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gQSYmIXR9KSxYdD02NCoxMDI0LEl0PV90JiZ6dCgoKT0+aS5pc1JlYWRhYmxlU3RyZWFtKG5ldyBSZXNwb25zZSgiIikuYm9keSkpLFJBPXtzdHJlYW06SXQmJihBPT5BLmJvZHkpfTtOQSYmKEE9PntbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2godD0+eyFSQVt0XSYmKFJBW3RdPWkuaXNGdW5jdGlvbihBW3RdKT9lPT5lW3RdKCk6KGUsSSk9Pnt0aHJvdyBuZXcgdShgUmVzcG9uc2UgdHlwZSBcJyR7dH1cJyBpcyBub3Qgc3VwcG9ydGVkYCx1LkVSUl9OT1RfU1VQUE9SVCxJKX0pfSl9KShuZXcgUmVzcG9uc2UpO3ZhciBPST1hc3luYyBBPT57aWYoQT09bnVsbClyZXR1cm4gMDtpZihpLmlzQmxvYihBKSlyZXR1cm4gQS5zaXplO2lmKGkuaXNTcGVjQ29tcGxpYW50Rm9ybShBKSlyZXR1cm4oYXdhaXQgbmV3IFJlcXVlc3QoaC5vcmlnaW4se21ldGhvZDoiUE9TVCIsYm9keTpBfSkuYXJyYXlCdWZmZXIoKSkuYnl0ZUxlbmd0aDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KEEpfHxpLmlzQXJyYXlCdWZmZXIoQSkpcmV0dXJuIEEuYnl0ZUxlbmd0aDtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKEEpJiYoQT1BKyIiKSxpLmlzU3RyaW5nKEEpKXJldHVybihhd2FpdCBLSShBKSkuYnl0ZUxlbmd0aH0seEk9YXN5bmMoQSx0KT0+e2xldCBlPWkudG9GaW5pdGVOdW1iZXIoQS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiBlPz9PSSh0KX0sdnQ9TkEmJihhc3luYyBBPT57bGV0e3VybDp0LG1ldGhvZDplLGRhdGE6SSxzaWduYWw6cixjYW5jZWxUb2tlbjpvLHRpbWVvdXQ6ZyxvbkRvd25sb2FkUHJvZ3Jlc3M6QyxvblVwbG9hZFByb2dyZXNzOkUscmVzcG9uc2VUeXBlOmEsaGVhZGVyczpzLHdpdGhDcmVkZW50aWFsczpuPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOmZ9PUZBKEEpO2E9YT8oYSsiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IEI9VnQoW3IsbyYmby50b0Fib3J0U2lnbmFsKCldLGcpLFEsbD1CJiZCLnVuc3Vic2NyaWJlJiYoKCk9PntCLnVuc3Vic2NyaWJlKCl9KSxjO3RyeXtpZihFJiZUSSYmZSE9PSJnZXQiJiZlIT09ImhlYWQiJiYoYz1hd2FpdCB4SShzLEkpKSE9PTApe2xldCBSPW5ldyBSZXF1ZXN0KHQse21ldGhvZDoiUE9TVCIsYm9keTpJLGR1cGxleDoiaGFsZiJ9KSxxO2lmKGkuaXNGb3JtRGF0YShJKSYmKHE9Ui5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZzLnNldENvbnRlbnRUeXBlKHEpLFIuYm9keSl7bGV0W1QsQkFdPXZBKGMsXygkQShFKSkpO0k9ZXQoUi5ib2R5LFh0LFQsQkEpfX1pLmlzU3RyaW5nKG4pfHwobj1uPyJpbmNsdWRlIjoib21pdCIpO2xldCBkPSJjcmVkZW50aWFscyJpbiBSZXF1ZXN0LnByb3RvdHlwZTtRPW5ldyBSZXF1ZXN0KHQsey4uLmYsc2lnbmFsOkIsbWV0aG9kOmUudG9VcHBlckNhc2UoKSxoZWFkZXJzOnMubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpJLGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6ZD9uOnZvaWQgMH0pO2xldCB5PWF3YWl0IGZldGNoKFEpLG09SXQmJihhPT09InN0cmVhbSJ8fGE9PT0icmVzcG9uc2UiKTtpZihJdCYmKEN8fG0mJmwpKXtsZXQgUj17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChhdD0+e1JbYXRdPXlbYXRdfSk7bGV0IHE9aS50b0Zpbml0ZU51bWJlcih5LmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbVCxCQV09QyYmdkEocSxfKCRBKEMpLCEwKSl8fFtdO3k9bmV3IFJlc3BvbnNlKGV0KHkuYm9keSxYdCxULCgpPT57QkEmJkJBKCksbCYmbCgpfSksUil9YT1hfHwidGV4dCI7bGV0IEg9YXdhaXQgUkFbaS5maW5kS2V5KFJBLGEpfHwidGV4dCJdKHksQSk7cmV0dXJuIW0mJmwmJmwoKSxhd2FpdCBuZXcgUHJvbWlzZSgoUixxKT0+e29BKFIscSx7ZGF0YTpILGhlYWRlcnM6Uy5mcm9tKHkuaGVhZGVycyksc3RhdHVzOnkuc3RhdHVzLHN0YXR1c1RleHQ6eS5zdGF0dXNUZXh0LGNvbmZpZzpBLHJlcXVlc3Q6UX0pfSl9Y2F0Y2goZCl7dGhyb3cgbCYmbCgpLGQmJmQubmFtZT09PSJUeXBlRXJyb3IiJiYvZmV0Y2gvaS50ZXN0KGQubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxBLFEpLHtjYXVzZTpkLmNhdXNlfHxkfSk6dS5mcm9tKGQsZCYmZC5jb2RlLEEsUSl9fSk7dmFyIHJ0PXtodHRwOnlBLHhocjpadCxmZXRjaDp2dH07aS5mb3JFYWNoKHJ0LChBLHQpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6dH0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTp0fSl9fSk7dmFyICR0PUE9PmAtICR7QX1gLFBJPUE9PmkuaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxVQT17Z2V0QWRhcHRlcjpBPT57QT1pLmlzQXJyYXkoQSk/QTpbQV07bGV0e2xlbmd0aDp0fT1BLGUsSSxyPXt9O2ZvcihsZXQgbz0wO288dDtvKyspe2U9QVtvXTtsZXQgZztpZihJPWUsIVBJKGUpJiYoST1ydFsoZz1TdHJpbmcoZSkpLnRvTG93ZXJDYXNlKCldLEk9PT12b2lkIDApKXRocm93IG5ldyB1KGBVbmtub3duIGFkYXB0ZXIgXCcke2d9XCdgKTtpZihJKWJyZWFrO3JbZ3x8IiUyMyIrb109SX1pZighSSl7bGV0IG89T2JqZWN0LmVudHJpZXMocikubWFwKChbQyxFXSk9PmBhZGFwdGVyICR7Q30gYCsoRT09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLGc9dD9vLmxlbmd0aD4xP2BzaW5jZSA6JTBBYCtvLm1hcCgkdCkuam9pbihgJTBBYCk6IiAiKyR0KG9bMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IHUoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitnLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gSX0sYWRhcHRlcnM6cnR9O2Z1bmN0aW9uIG90KEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBMKG51bGwsQSl9ZnVuY3Rpb24gR0EoQSl7cmV0dXJuIG90KEEpLEEuaGVhZGVycz1TLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9SUEuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLFVBLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxWLmFkYXB0ZXIpKEEpLnRoZW4oZnVuY3Rpb24oSSl7cmV0dXJuIG90KEEpLEkuZGF0YT1JQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJKSxJLmhlYWRlcnM9Uy5mcm9tKEkuaGVhZGVycyksSX0sZnVuY3Rpb24oSSl7cmV0dXJuIHJBKEkpfHwob3QoQSksSSYmSS5yZXNwb25zZSYmKEkucmVzcG9uc2UuZGF0YT1JQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJLnJlc3BvbnNlKSxJLnJlc3BvbnNlLmhlYWRlcnM9Uy5mcm9tKEkucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChJKX0pfXZhciBrQT0iMS44LjQiO3ZhciBMQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsdCk9PntMQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKHQ8MT8ibiAiOiIgIikrQX19KTt2YXIgQWU9e307TEEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKHQsZSxJKXtmdW5jdGlvbiByKG8sZyl7cmV0dXJuIltBeGlvcyB2IitrQSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uIFwnIitvKyJcJyIrZysoST8iLiAiK0k6IiIpfXJldHVybihvLGcsQyk9PntpZih0PT09ITEpdGhyb3cgbmV3IHUocihnLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKGU/IiBpbiAiK2U6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gZSYmIUFlW2ddJiYoQWVbZ109ITAsY29uc29sZS53YXJuKHIoZywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrZSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSx0P3QobyxnLEMpOiEwfX07TEEuc3BlbGxpbmc9ZnVuY3Rpb24odCl7cmV0dXJuKGUsSSk9Pihjb25zb2xlLndhcm4oYCR7SX0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHt0fWApLCEwKX07ZnVuY3Rpb24gV0koQSx0LGUpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IEk9T2JqZWN0LmtleXMoQSkscj1JLmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBvPUlbcl0sZz10W29dO2lmKGcpe2xldCBDPUFbb10sRT1DPT09dm9pZCAwfHxnKEMsbyxBKTtpZihFIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK28rIiBtdXN0IGJlICIrRSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZihlIT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIrbyx1LkVSUl9CQURfT1BUSU9OKX19dmFyIGlBPXthc3NlcnRPcHRpb25zOldJLHZhbGlkYXRvcnM6TEF9O3ZhciBiPWlBLnZhbGlkYXRvcnMsej1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmRlZmF1bHRzPXQsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IFBBLHJlc3BvbnNlOm5ldyBQQX19YXN5bmMgcmVxdWVzdCh0LGUpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdCh0LGUpfWNhdGNoKEkpe2lmKEkgaW5zdGFuY2VvZiBFcnJvcil7bGV0IHI9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uocik6cj1uZXcgRXJyb3I7bGV0IG89ci5zdGFjaz9yLnN0YWNrLnJlcGxhY2UoL14uK1xcbi8sIiIpOiIiO3RyeXtJLnN0YWNrP28mJiFTdHJpbmcoSS5zdGFjaykuZW5kc1dpdGgoby5yZXBsYWNlKC9eLitcXG4uK1xcbi8sIiIpKSYmKEkuc3RhY2srPWAlMEFgK28pOkkuc3RhY2s9b31jYXRjaHt9fXRocm93IEl9fV9yZXF1ZXN0KHQsZSl7dHlwZW9mIHQ9PSJzdHJpbmciPyhlPWV8fHt9LGUudXJsPXQpOmU9dHx8e30sZT1rKHRoaXMuZGVmYXVsdHMsZSk7bGV0e3RyYW5zaXRpb25hbDpJLHBhcmFtc1NlcmlhbGl6ZXI6cixoZWFkZXJzOm99PWU7SSE9PXZvaWQgMCYmaUEuYXNzZXJ0T3B0aW9ucyhJLHtzaWxlbnRKU09OUGFyc2luZzpiLnRyYW5zaXRpb25hbChiLmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOmIudHJhbnNpdGlvbmFsKGIuYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpiLnRyYW5zaXRpb25hbChiLmJvb2xlYW4pfSwhMSksciE9bnVsbCYmKGkuaXNGdW5jdGlvbihyKT9lLnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpyfTppQS5hc3NlcnRPcHRpb25zKHIse2VuY29kZTpiLmZ1bmN0aW9uLHNlcmlhbGl6ZTpiLmZ1bmN0aW9ufSwhMCkpLGUuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDB8fCh0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwP2UuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsczplLmFsbG93QWJzb2x1dGVVcmxzPSEwKSxpQS5hc3NlcnRPcHRpb25zKGUse2Jhc2VVcmw6Yi5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46Yi5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksZS5tZXRob2Q9KGUubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IGc9byYmaS5tZXJnZShvLmNvbW1vbixvW2UubWV0aG9kXSk7byYmaS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLFE9PntkZWxldGUgb1tRXX0pLGUuaGVhZGVycz1TLmNvbmNhdChnLG8pO2xldCBDPVtdLEU9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGwpe3R5cGVvZiBsLnJ1bldoZW49PSJmdW5jdGlvbiImJmwucnVuV2hlbihlKT09PSExfHwoRT1FJiZsLnN5bmNocm9ub3VzLEMudW5zaGlmdChsLmZ1bGZpbGxlZCxsLnJlamVjdGVkKSl9KTtsZXQgYT1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGwpe2EucHVzaChsLmZ1bGZpbGxlZCxsLnJlamVjdGVkKX0pO2xldCBzLG49MCxmO2lmKCFFKXtsZXQgUT1bR0EuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihRLnVuc2hpZnQuYXBwbHkoUSxDKSxRLnB1c2guYXBwbHkoUSxhKSxmPVEubGVuZ3RoLHM9UHJvbWlzZS5yZXNvbHZlKGUpO248Zjspcz1zLnRoZW4oUVtuKytdLFFbbisrXSk7cmV0dXJuIHN9Zj1DLmxlbmd0aDtsZXQgQj1lO2ZvcihuPTA7bjxmOyl7bGV0IFE9Q1tuKytdLGw9Q1tuKytdO3RyeXtCPVEoQil9Y2F0Y2goYyl7bC5jYWxsKHRoaXMsYyk7YnJlYWt9fXRyeXtzPUdBLmNhbGwodGhpcyxCKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKG49MCxmPWEubGVuZ3RoO248Zjspcz1zLnRoZW4oYVtuKytdLGFbbisrXSk7cmV0dXJuIHN9Z2V0VXJpKHQpe3Q9ayh0aGlzLmRlZmF1bHRzLHQpO2xldCBlPWdBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gdEEoZSx0LnBhcmFtcyx0LnBhcmFtc1NlcmlhbGl6ZXIpfX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbih0KXt6LnByb3RvdHlwZVt0XT1mdW5jdGlvbihlLEkpe3JldHVybiB0aGlzLnJlcXVlc3QoayhJfHx7fSx7bWV0aG9kOnQsdXJsOmUsZGF0YTooSXx8e30pLmRhdGF9KSl9fSk7aS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShJKXtyZXR1cm4gZnVuY3Rpb24obyxnLEMpe3JldHVybiB0aGlzLnJlcXVlc3QoayhDfHx7fSx7bWV0aG9kOnQsaGVhZGVyczpJP3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDpvLGRhdGE6Z30pKX19ei5wcm90b3R5cGVbdF09ZSgpLHoucHJvdG90eXBlW3QrIkZvcm0iXT1lKCEwKX0pO3ZhciBzQT16O3ZhciBndD1jbGFzcyBBe2NvbnN0cnVjdG9yKHQpe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtsZXQgZTt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24obyl7ZT1vfSk7bGV0IEk9dGhpczt0aGlzLnByb21pc2UudGhlbihyPT57aWYoIUkuX2xpc3RlbmVycylyZXR1cm47bGV0IG89SS5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO28tLSA+MDspSS5fbGlzdGVuZXJzW29dKHIpO0kuX2xpc3RlbmVycz1udWxsfSksdGhpcy5wcm9taXNlLnRoZW49cj0+e2xldCBvLGc9bmV3IFByb21pc2UoQz0+e0kuc3Vic2NyaWJlKEMpLG89Q30pLnRoZW4ocik7cmV0dXJuIGcuY2FuY2VsPWZ1bmN0aW9uKCl7SS51bnN1YnNjcmliZShvKX0sZ30sdChmdW5jdGlvbihvLGcsQyl7SS5yZWFzb258fChJLnJlYXNvbj1uZXcgTChvLGcsQyksZShJLnJlYXNvbikpfSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZSh0KXtpZih0aGlzLnJlYXNvbil7dCh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaCh0KTp0aGlzLl9saXN0ZW5lcnM9W3RdfXVuc3Vic2NyaWJlKHQpe2lmKCF0aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBlPXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKHQpO2UhPT0tMSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZShlLDEpfXRvQWJvcnRTaWduYWwoKXtsZXQgdD1uZXcgQWJvcnRDb250cm9sbGVyLGU9ST0+e3QuYWJvcnQoSSl9O3JldHVybiB0aGlzLnN1YnNjcmliZShlKSx0LnNpZ25hbC51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZShlKSx0LnNpZ25hbH1zdGF0aWMgc291cmNlKCl7bGV0IHQ7cmV0dXJue3Rva2VuOm5ldyBBKGZ1bmN0aW9uKHIpe3Q9cn0pLGNhbmNlbDp0fX19LHRlPWd0O2Z1bmN0aW9uIGl0KEEpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gQS5hcHBseShudWxsLGUpfX1mdW5jdGlvbiBzdChBKXtyZXR1cm4gaS5pc09iamVjdChBKSYmQS5pc0F4aW9zRXJyb3I9PT0hMH12YXIgbnQ9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKG50KS5mb3JFYWNoKChbQSx0XSk9PntudFt0XT1BfSk7dmFyIGVlPW50O2Z1bmN0aW9uIEllKEEpe2xldCB0PW5ldyBzQShBKSxlPXYoc0EucHJvdG90eXBlLnJlcXVlc3QsdCk7cmV0dXJuIGkuZXh0ZW5kKGUsc0EucHJvdG90eXBlLHQse2FsbE93bktleXM6ITB9KSxpLmV4dGVuZChlLHQsbnVsbCx7YWxsT3duS2V5czohMH0pLGUuY3JlYXRlPWZ1bmN0aW9uKHIpe3JldHVybiBJZShrKEEscikpfSxlfXZhciB3PUllKFYpO3cuQXhpb3M9c0E7dy5DYW5jZWxlZEVycm9yPUw7dy5DYW5jZWxUb2tlbj10ZTt3LmlzQ2FuY2VsPXJBO3cuVkVSU0lPTj1rQTt3LnRvRm9ybURhdGE9TTt3LkF4aW9zRXJyb3I9dTt3LkNhbmNlbD13LkNhbmNlbGVkRXJyb3I7dy5hbGw9ZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UuYWxsKHQpfTt3LnNwcmVhZD1pdDt3LmlzQXhpb3NFcnJvcj1zdDt3Lm1lcmdlQ29uZmlnPWs7dy5BeGlvc0hlYWRlcnM9Uzt3LmZvcm1Ub0pTT049QT0+cEEoaS5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTt3LmdldEFkYXB0ZXI9VUEuZ2V0QWRhcHRlcjt3Lkh0dHBTdGF0dXNDb2RlPWVlO3cuZGVmYXVsdD13O3ZhciBiQT13O3ZhcntBeGlvczpCaSxBeGlvc0Vycm9yOmFpLENhbmNlbGVkRXJyb3I6UWksaXNDYW5jZWw6RWksQ2FuY2VsVG9rZW46Y2ksVkVSU0lPTjpmaSxhbGw6bGksQ2FuY2VsOnVpLGlzQXhpb3NFcnJvcjpEaSxzcHJlYWQ6ZGksdG9Gb3JtRGF0YTpoaSxBeGlvc0hlYWRlcnM6eWksSHR0cFN0YXR1c0NvZGU6bWksZm9ybVRvSlNPTjp3aSxnZXRBZGFwdGVyOnBpLG1lcmdlQ29uZmlnOlNpfT1iQTt2YXIgbkEsWSxCdCxDdD17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe0J0PW5ldyBVaW50OEFycmF5KFkuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSxKQT1jbGFzc3tpbml0KCl7cmV0dXJuIG5BfHwodHlwZW9mIGZldGNoPCJ1Ij9uQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK3JlKS50aGVuKHQ9PnQuYXJyYXlCdWZmZXIoKSkudGhlbih0PT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZSh0LEN0KSkudGhlbih0aGlzLl9pbml0KTpuQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShyZSwiYmFzZTY0IiksQ3QpLnRoZW4odGhpcy5faW5pdCksbkEpfV9pbml0KHQpe1k9dC5pbnN0YW5jZSxDdC5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUodCxlPTApe2lmKCFZKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCBJPXQuYnl0ZUxlbmd0aCxyPVkuZXhwb3J0cy5tYWxsb2MoSSk7QnQuc2V0KHQsciksZT1lfHxOdW1iZXIoWS5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUocixJKSk7bGV0IG89WS5leHBvcnRzLm1hbGxvYyhlKSxnPVkuZXhwb3J0cy5aU1REX2RlY29tcHJlc3MobyxlLHIsSSksQz1CdC5zbGljZShvLG8rZyk7cmV0dXJuIFkuZXhwb3J0cy5mcmVlKHIpLFkuZXhwb3J0cy5mcmVlKG8pLEN9fSxyZT0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciBvZT1uZXcgSkEsZ2U9ITE7YXN5bmMgZnVuY3Rpb24gakkoQSx0LGUpe2xldCBJPW51bGw7dHlwZW9mIEEhPSJzdHJpbmciP0k9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP0k9QTpJPWAke3R9LyR7QX1gLEkuZW5kc1dpdGgoIi5qcyIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTMpKSxJLmVuZHNXaXRoKCIud2FzbSIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTUpKSxJLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC05KSk7bGV0IHI9YCR7SX0ud2FzbWAsbz1hd2FpdCBiQS5nZXQoYCR7cn0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOmV9KTtnZXx8KGF3YWl0IG9lLmluaXQoKSxnZT0hMCk7bGV0IEM9b2UuZGVjb2RlKG5ldyBVaW50OEFycmF5KG8uZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke0l9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6Q30pfXZhciBpZT1qSTt2YXIgSEE9bmV3IE1hcDthc3luYyBmdW5jdGlvbiBaSShBLHQsZSl7bGV0IEk9QSxyPUEsbz1udWxsO3JldHVybiB0eXBlb2YgQSE9InN0cmluZyImJihJPW5ldyBVUkwoQS5ocmVmKSxyPUkuaHJlZiksSEEuaGFzKHIpP289YXdhaXQgSEEuZ2V0KHIpOihIQS5zZXQocixpZShJLHQsZSkpLG89YXdhaXQgSEEuZ2V0KHIpKSxvfXZhciBzZT1aSTt2YXIgVkk9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LEQ9Vkk7dmFyIFhJPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sTj1YSTt2YXIgX0k9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFA9X0k7ZnVuY3Rpb24gekkoQSx0KXtsZXQgZT1udWxsO3N3aXRjaChBKXtjYXNlIE4uVUludDg6e2U9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBOLkludDg6e2U9bmV3IEludDhBcnJheSh0KTticmVha31jYXNlIE4uVUludDE2OntlPW5ldyBVaW50MTZBcnJheSh0KTticmVha31jYXNlIE4uSW50MTY6e2U9bmV3IEludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBOLlVJbnQzMjp7ZT1uZXcgVWludDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBOLkludDMyOntlPW5ldyBJbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgTi5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ1VpbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBOLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ0ludDY0QXJyYXkodCk6ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIFAuRmxvYXQzMjp7ZT1uZXcgRmxvYXQzMkFycmF5KHQpO2JyZWFrfWNhc2UgUC5GbG9hdDY0OntlPW5ldyBGbG9hdDY0QXJyYXkodCk7YnJlYWt9Y2FzZSJudWxsIjp7ZT1udWxsO2JyZWFrfWNhc2UgbnVsbDp7ZT1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIGV9dmFyIEo9ekk7dmFyIEJlPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLG5lPW5ldyBUZXh0RW5jb2RlcixDZT1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gdkkoQSx0KXtsZXQgZT17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSxJPUEuZnNfb3Blbih0LGUuZmxhZ3MpLG89QS5mc19zdGF0KHQpLnNpemUsZz1udWxsO0JlP2c9bmV3IFNoYXJlZEFycmF5QnVmZmVyKG8pOmc9bmV3IEFycmF5QnVmZmVyKG8pO2xldCBDPW5ldyBVaW50OEFycmF5KGcpO3JldHVybiBBLmZzX3JlYWQoSSxDLDAsbywwKSxBLmZzX2Nsb3NlKEkpLEN9ZnVuY3Rpb24gYWUoQSx0LGUpe2xldCBJPW51bGw7QmU/ST1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoZSk6ST1uZXcgQXJyYXlCdWZmZXIoZSk7bGV0IHI9bmV3IFVpbnQ4QXJyYXkoSSksbz1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsdCxlKTtyZXR1cm4gci5zZXQobykscn1mdW5jdGlvbiBwKEEsdCxlLEkpe2xldCByPTA7cmV0dXJuIHQhPT1udWxsJiYocj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLEksdC5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheSh0LmJ1ZmZlcikscikpLHJ9ZnVuY3Rpb24gSyhBLHQsZSl7bGV0IEk9SlNPTi5zdHJpbmdpZnkodCkscj1BLmxlbmd0aEJ5dGVzVVRGOChJKSsxLG89QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHJdKTtBLnN0cmluZ1RvVVRGOChJLG8scil9ZnVuY3Rpb24gRihBLHQsZSxJKXtsZXQgcj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxvPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsZV0pLGc9YWUoQSxyLG8pO3JldHVybiBKKEksZy5idWZmZXIpfWZ1bmN0aW9uIENBKEEsdCl7bGV0IGU9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCx0XSksST1BLlVURjhUb1N0cmluZyhlKTtyZXR1cm4gSlNPTi5wYXJzZShJKX1mdW5jdGlvbiAkSShBLHQsZSxJKXtJIT1udWxsJiZJLmxlbmd0aD4wJiZJLmZvckVhY2goZnVuY3Rpb24oYSxzKXtzd2l0Y2goYS50eXBlKXtjYXNlIEQuVGV4dFN0cmVhbTp7bGV0IG49bmUuZW5jb2RlKGEuZGF0YS5kYXRhKSxmPXAoQSxuLHMsMCksQj17c2l6ZTpuLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O0soQSxCLHMpO2JyZWFrfWNhc2UgRC5Kc29uQ29tcGF0aWJsZTp7bGV0IG49bmUuZW5jb2RlKEpTT04uc3RyaW5naWZ5KGEuZGF0YSkpLGY9cChBLG4scywwKSxCPXtzaXplOm4uYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07SyhBLEIscyk7YnJlYWt9Y2FzZSBELkJpbmFyeVN0cmVhbTp7bGV0IG49YS5kYXRhLmRhdGEsZj1wKEEsbixzLDApLEI9e3NpemU6bi5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtLKEEsQixzKTticmVha31jYXNlIEQuVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKGEuZGF0YS5wYXRoLGEuZGF0YS5kYXRhKTticmVha31jYXNlIEQuQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoYS5kYXRhLnBhdGgsYS5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgRC5JbWFnZTp7bGV0IG49YS5kYXRhLGY9cChBLG4uZGF0YSxzLDApLEI9cChBLG4uZGlyZWN0aW9uLHMsMSksUT10eXBlb2Ygbi5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShuLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sbD17aW1hZ2VUeXBlOm4uaW1hZ2VUeXBlLG5hbWU6bi5uYW1lLG9yaWdpbjpuLm9yaWdpbixzcGFjaW5nOm4uc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsc2l6ZTpuLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCxtZXRhZGF0YTpRfTtLKEEsbCxzKTticmVha31jYXNlIEQuTWVzaDp7bGV0IG49YS5kYXRhLGY9cChBLG4ucG9pbnRzLHMsMCksQj1wKEEsbi5jZWxscyxzLDEpLFE9cChBLG4ucG9pbnREYXRhLHMsMiksbD1wKEEsbi5jZWxsRGF0YSxzLDMpLGM9e21lc2hUeXBlOm4ubWVzaFR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsbnVtYmVyT2ZDZWxsczpuLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsY2VsbEJ1ZmZlclNpemU6bi5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOm4ubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOm4ubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTtLKEEsYyxzKTticmVha31jYXNlIEQuUG9pbnRTZXQ6e2xldCBuPWEuZGF0YSxmPXAoQSxuLnBvaW50cyxzLDApLEI9cChBLG4ucG9pbnREYXRhLHMsMSksUT17cG9pbnRTZXRUeXBlOm4ucG9pbnRTZXRUeXBlLG5hbWU6bi5uYW1lLG51bWJlck9mUG9pbnRzOm4ubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YH07SyhBLFEscyk7YnJlYWt9Y2FzZSBELlRyYW5zZm9ybUxpc3Q6e2xldCBuPWEuZGF0YSxmPVtdLEI9MDtuLmZvckVhY2goUT0+e2xldCBsPSIiLGM9IiI7US50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGw9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtwKEEsUS5maXhlZFBhcmFtZXRlcnMscyxCKX1gLEIrPTEsYz1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3AoQSxRLnBhcmFtZXRlcnMscyxCKX1gLEIrPTEpO2xldCBkPXt0cmFuc2Zvcm1UeXBlOlEudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpRLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpRLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOlEubmFtZSxpbnB1dFNwYWNlTmFtZTpRLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpRLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmMsZml4ZWRQYXJhbWV0ZXJzOmx9O2YucHVzaChkKX0pLEsoQSxmLHMpO2JyZWFrfWNhc2UgRC5Qb2x5RGF0YTp7bGV0IG49YS5kYXRhLGY9cChBLG4ucG9pbnRzLHMsMCksQj1wKEEsbi52ZXJ0aWNlcyxzLDEpLFE9cChBLG4ubGluZXMscywyKSxsPXAoQSxuLnBvbHlnb25zLHMsMyksYz1wKEEsbi50cmlhbmdsZVN0cmlwcyxzLDQpLGQ9cChBLG4ucG9pbnREYXRhLHMsNSkseT1wKEEsbi5wb2ludERhdGEscyw2KSxtPXtwb2x5RGF0YVR5cGU6bi5wb2x5RGF0YVR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdmVydGljZXNCdWZmZXJTaXplOm4udmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLGxpbmVzQnVmZmVyU2l6ZTpuLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxwb2x5Z29uc0J1ZmZlclNpemU6bi5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOm4udHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2R9YCxudW1iZXJPZkNlbGxQaXhlbHM6bi5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt5fWB9O0soQSxtLHMpO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCByPUEuc3RhY2tTYXZlKCksbz0wO3RyeXtvPUEuY2FsbE1haW4odC5zbGljZSgpKX1jYXRjaChhKXt0aHJvdyB0eXBlb2YgYT09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShhKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxhfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUocil9bGV0IGc9QS5nZXRNb2R1bGVTdGRvdXQoKSxDPUEuZ2V0TW9kdWxlU3RkZXJyKCksRT1bXTtyZXR1cm4gZSE9bnVsbCYmZS5sZW5ndGg+MCYmbz09PTAmJmUuZm9yRWFjaChmdW5jdGlvbihhLHMpe2xldCBuPW51bGw7c3dpdGNoKGEudHlwZSl7Y2FzZSBELlRleHRTdHJlYW06e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksbD1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQixRKTtuPXtkYXRhOkNlLmRlY29kZShsKX07YnJlYWt9Y2FzZSBELkpzb25Db21wYXRpYmxlOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGw9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEIsUSk7bj1KU09OLnBhcnNlKENlLmRlY29kZShsKSk7YnJlYWt9Y2FzZSBELkJpbmFyeVN0cmVhbTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKTtuPXtkYXRhOmFlKEEsQixRKX07YnJlYWt9Y2FzZSBELlRleHRGaWxlOntuPXtwYXRoOmEuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShhLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgRC5CaW5hcnlGaWxlOntuPXtwYXRoOmEuZGF0YS5wYXRoLGRhdGE6dkkoQSxhLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgRC5JbWFnZTp7bGV0IEI9Q0EoQSxzKTtCLmRhdGE9RihBLHMsMCxCLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxCLmRpcmVjdGlvbj1GKEEscywxLFAuRmxvYXQ2NCksQi5tZXRhZGF0YT1uZXcgTWFwKEIubWV0YWRhdGEpLG49QjticmVha31jYXNlIEQuTWVzaDp7bGV0IEI9Q0EoQSxzKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9RihBLHMsMCxCLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qi5wb2ludHM9SihCLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxscz4wP0IuY2VsbHM9RihBLHMsMSxCLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTpCLmNlbGxzPUooQi5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPUYoQSxzLDIsQi5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SihCLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxQaXhlbHM+MD9CLmNlbGxEYXRhPUYoQSxzLDMsQi5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpCLmNlbGxEYXRhPUooQi5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksbj1CO2JyZWFrfWNhc2UgRC5Qb2ludFNldDp7bGV0IEI9Q0EoQSxzKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9RihBLHMsMCxCLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkIucG9pbnRzPUooQi5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9RihBLHMsMSxCLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SihCLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLG49QjticmVha31jYXNlIEQuVHJhbnNmb3JtTGlzdDp7bGV0IEI9Q0EoQSxzKSxRPTA7Qi5mb3JFYWNoKChsLGMpPT57bC50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGwubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKEJbY10uZml4ZWRQYXJhbWV0ZXJzPUYoQSxzLFEsUC5GbG9hdDY0KSksUSs9MSxsLm51bWJlck9mUGFyYW1ldGVycz4wJiYoQltjXS5wYXJhbWV0ZXJzPUYoQSxzLFEsbC50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxRKz0xKX0pLG49QjticmVha31jYXNlIEQuUG9seURhdGE6e2xldCBCPUNBKEEscyk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPUYoQSxzLDAsUC5GbG9hdDMyKTpCLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LEIudmVydGljZXNCdWZmZXJTaXplPjA/Qi52ZXJ0aWNlcz1GKEEscywxLE4uVUludDMyKTpCLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxCLmxpbmVzQnVmZmVyU2l6ZT4wP0IubGluZXM9RihBLHMsMixOLlVJbnQzMik6Qi5saW5lcz1uZXcgVWludDMyQXJyYXksQi5wb2x5Z29uc0J1ZmZlclNpemU+MD9CLnBvbHlnb25zPUYoQSxzLDMsTi5VSW50MzIpOkIucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LEIudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/Qi50cmlhbmdsZVN0cmlwcz1GKEEscyw0LE4uVUludDMyKTpCLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1GKEEscyw1LEIucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1KKEIucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxQaXhlbHM+MD9CLmNlbGxEYXRhPUYoQSxzLDYsQi5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5jZWxsRGF0YT1KKEIucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuPUI7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgZj17dHlwZTphLnR5cGUsZGF0YTpufTtFLnB1c2goZil9KSx7cmV0dXJuVmFsdWU6byxzdGRvdXQ6ZyxzdGRlcnI6QyxvdXRwdXRzOkV9fXZhciBRZT0kSTt2YXIgQXI9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uIHRyKEEsdCl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgZT1bXTtmb3IobGV0IEk9MDtJPEEubGVuZ3RoO0krKyl7bGV0IHI9ZXIoQVtJXSx0KTtyIT09bnVsbCYmZS5wdXNoKHIpfXJldHVybiBlfWZ1bmN0aW9uIGVyKEEsdCl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgZT1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD9lPUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKGU9QSksQXImJmUgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOnQ/ZTplLnNsaWNlKDApfXZhciBFZT10cjtmdW5jdGlvbiBJcihBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIgY2U9SXI7ZnVuY3Rpb24gcnIoQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIGZlPXJyO2Z1bmN0aW9uIG9yKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBsZT1vcjthc3luYyBmdW5jdGlvbiBncihBLHQsZSxJKXtsZXQgcj1RZShBLHQsZSxJKSxvPVtdO3JldHVybiByLm91dHB1dHMuZm9yRWFjaChmdW5jdGlvbihnKXtpZihnLnR5cGU9PT1ELkJpbmFyeVN0cmVhbXx8Zy50eXBlPT09RC5CaW5hcnlGaWxlKXtsZXQgQz1nLmRhdGE7by5wdXNoKEMpfWVsc2UgaWYoZy50eXBlPT09RC5JbWFnZSl7bGV0IEM9Zy5kYXRhO28ucHVzaCguLi5jZShDKSl9ZWxzZSBpZihnLnR5cGU9PT1ELk1lc2gpe2xldCBDPWcuZGF0YTtvLnB1c2goLi4uZmUoQykpfWVsc2UgaWYoZy50eXBlPT09RC5Qb2x5RGF0YSl7bGV0IEM9Zy5kYXRhO28ucHVzaCguLi5sZShDKSl9fSksTUEocixFZShvLCEwKSl9dmFyIHVlPWdyO3ZhciBpcj17cnVuUGlwZWxpbmU6YXN5bmMgZnVuY3Rpb24oQSx0LGUsSSxyLG8pe2xldCBnPWF3YWl0IHNlKEEsdCxvKTtyZXR1cm4gYXdhaXQgdWUoZyxlLEkscil9fTtsQShpcik7JTBBLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjolMEElMEFjb21saW5rL2Rpc3QvZXNtL2NvbWxpbmsubWpzOiUwQSAgKCoqJTBBICAgKiBAbGljZW5zZSUwQSAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQyUwQSAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAlMEEgICAqKSUwQSovJTBBJzt2dChYdCk7ZXhwb3J0e3ppIGFzIGFwcGx5UHJlc2VudGF0aW9uU3RhdGVUb0ltYWdlLGsgYXMgZ2V0RGVmYXVsdFdlYldvcmtlcix5IGFzIGdldFBpcGVsaW5lV29ya2VyVXJsLHcgYXMgZ2V0UGlwZWxpbmVzQmFzZVVybCwkaSBhcyByZWFkRGljb21FbmNhcHN1bGF0ZWRQZGYsSUkgYXMgcmVhZERpY29tVGFncyxhSSBhcyByZWFkSW1hZ2VEaWNvbUZpbGVTZXJpZXMsVWUgYXMgcmVhZEltYWdlRGljb21GaWxlU2VyaWVzV29ya2VyRnVuY3Rpb24sUUkgYXMgcmVhZE92ZXJsYXBwaW5nU2VnbWVudGF0aW9uLEJJIGFzIHJlYWRTZWdtZW50YXRpb24sY3MgYXMgc2V0RGVmYXVsdFdlYldvcmtlcix2dCBhcyBzZXRQaXBlbGluZVdvcmtlclVybCxhcyBhcyBzZXRQaXBlbGluZXNCYXNlVXJsLGVJIGFzIHN0cnVjdHVyZWRSZXBvcnRUb0h0bWwsckkgYXMgc3RydWN0dXJlZFJlcG9ydFRvVGV4dCxLQSBhcyB2ZXJzaW9uLHBJIGFzIHdyaXRlTXVsdGlTZWdtZW50YXRpb24sdUkgYXMgd3JpdGVPdmVybGFwcGluZ1NlZ21lbnRhdGlvbixtSSBhcyB3cml0ZVJ0U3RydWN0LGxJIGFzIHdyaXRlU2VnbWVudGF0aW9ufTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCmNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKICAgKikKKi8K""" +default_js_module = """data:text/javascript;base64,dmFyIGxyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgY3I9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlscihBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIHVyPSI3LjYuMiIsZWU9dXI7dmFyIGZyPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sYj1mcjt2YXIgcHI9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFg9cHI7ZnVuY3Rpb24gZHIoQSxlKXtsZXQgdD1udWxsO3N3aXRjaChBKXtjYXNlIGIuVUludDg6e3Q9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDg6e3Q9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIGIuVUludDE2Ont0PW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIGIuSW50MTY6e3Q9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLlVJbnQzMjp7dD1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDMyOnt0PW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgYi5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ0ludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIFguRmxvYXQzMjp7dD1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2UgWC5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIE89ZHI7dmFyIG1yPXtVbmtub3duOiJVbmtub3duIixTY2FsYXI6IlNjYWxhciIsUkdCOiJSR0IiLFJHQkE6IlJHQkEiLE9mZnNldDoiT2Zmc2V0IixWZWN0b3I6IlZlY3RvciIsUG9pbnQ6IlBvaW50IixDb3ZhcmlhbnRWZWN0b3I6IkNvdmFyaWFudFZlY3RvciIsU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvcjoiU3ltbWV0cmljU2Vjb25kUmFua1RlbnNvciIsRGlmZnVzaW9uVGVuc29yM0Q6IkRpZmZ1c2lvblRlbnNvcjNEIixDb21wbGV4OiJDb21wbGV4IixGaXhlZEFycmF5OiJGaXhlZEFycmF5IixBcnJheToiQXJyYXkiLE1hdHJpeDoiTWF0cml4IixWYXJpYWJsZUxlbmd0aFZlY3RvcjoiVmFyaWFibGVMZW5ndGhWZWN0b3IiLFZhcmlhYmxlU2l6ZU1hdHJpeDoiVmFyaWFibGVTaXplTWF0cml4In0sdmU9bXI7dmFyIHRlPWNsYXNze2RpbWVuc2lvbjtjb21wb25lbnRUeXBlO3BpeGVsVHlwZTtjb21wb25lbnRzO2NvbnN0cnVjdG9yKGU9Mix0PWIuVUludDgscj12ZS5TY2FsYXIsaT0xKXt0aGlzLmRpbWVuc2lvbj1lLHRoaXMuY29tcG9uZW50VHlwZT10LHRoaXMucGl4ZWxUeXBlPXIsdGhpcy5jb21wb25lbnRzPWl9fSxaZT10ZTtmdW5jdGlvbiBocihBLGUsdCxyLGkpe0Fbcit0KmVdPWl9dmFyIFZlPWhyO3ZhciByZT1jbGFzc3tpbWFnZVR5cGU7bmFtZT0iSW1hZ2UiO29yaWdpbjtzcGFjaW5nO2RpcmVjdGlvbjtzaXplO21ldGFkYXRhO2RhdGE7Y29uc3RydWN0b3IoZT1uZXcgWmUpe3RoaXMuaW1hZ2VUeXBlPWU7bGV0IHQ9ZS5kaW1lbnNpb247dGhpcy5vcmlnaW49bmV3IEFycmF5KHQpLHRoaXMub3JpZ2luLmZpbGwoMCksdGhpcy5zcGFjaW5nPW5ldyBBcnJheSh0KSx0aGlzLnNwYWNpbmcuZmlsbCgxKSx0aGlzLmRpcmVjdGlvbj1uZXcgRmxvYXQ2NEFycmF5KHQqdCksdGhpcy5kaXJlY3Rpb24uZmlsbCgwKTtmb3IobGV0IHI9MDtyPHQ7cisrKVZlKHRoaXMuZGlyZWN0aW9uLHQscixyLDEpO3RoaXMuc2l6ZT1uZXcgQXJyYXkodCksdGhpcy5zaXplLmZpbGwoMCksdGhpcy5tZXRhZGF0YT1uZXcgTWFwLHRoaXMuZGF0YT1udWxsfX0sWGU9cmU7ZnVuY3Rpb24geXIoQSl7aWYoQS5sZW5ndGg8MSl0aHJvdyBFcnJvcigiQXQgbGVhc3Qgb25lIGltYWdlcyBpcyByZXF1aXJlZC4iKTtsZXQgZT1BWzBdO2lmKGUuZGF0YT09PW51bGwpdGhyb3cgRXJyb3IoIkltYWdlIGRhdGEgaXMgbnVsbC4iKTtsZXQgdD1uZXcgWGUoZS5pbWFnZVR5cGUpO3Qub3JpZ2luPUFycmF5LmZyb20oZS5vcmlnaW4pLHQuc3BhY2luZz1BcnJheS5mcm9tKGUuc3BhY2luZyk7bGV0IHI9dC5pbWFnZVR5cGUuZGltZW5zaW9uO3QuZGlyZWN0aW9uPWUuZGlyZWN0aW9uLnNsaWNlKCk7bGV0IGk9ci0xO3Quc2l6ZT1BcnJheS5mcm9tKGUuc2l6ZSk7bGV0IEk9QS5yZWR1Y2UoKG4sZyk9Pm4rZy5zaXplW2ldLDApO3Quc2l6ZVtpXT1JO2xldCBvPXQuc2l6ZS5yZWR1Y2UoKG4sZyk9Pm4qZywxKSp0LmltYWdlVHlwZS5jb21wb25lbnRzLGE9ZS5kYXRhLmNvbnN0cnVjdG9yO3QuZGF0YT1uZXcgYShvKTtsZXQgRT10LmltYWdlVHlwZS5jb21wb25lbnRzO2ZvcihsZXQgbj0wO248dC5zaXplLmxlbmd0aC0xO24rKylFKj10LnNpemVbbl07bGV0IHM9MDtpZih0LmRhdGEhPW51bGwpZm9yKGxldCBuPTA7bjxBLmxlbmd0aDtuKyspdC5kYXRhLnNldChBW25dLmRhdGEsRSpzKSxzKz1BW25dLnNpemVbaV07ZWxzZSB0aHJvdyBFcnJvcigiQ291bGQgbm90IGNyZWF0ZSByZXN1bHQgaW1hZ2UgZGF0YS4iKTtyZXR1cm4gdH12YXIgaWU9eXI7dmFyIEllPWNsYXNze2Zjbjt3b3JrZXJRdWV1ZTtydW5JbmZvO2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5mY249dCx0aGlzLndvcmtlclF1ZXVlPW5ldyBBcnJheShlKSx0aGlzLndvcmtlclF1ZXVlLmZpbGwobnVsbCksdGhpcy5ydW5JbmZvPVtdfXJ1blRhc2tzKGUsdD1udWxsKXtsZXQgcj17dGFza1F1ZXVlOltdLHJlc3VsdHM6W10sYWRkaW5nVGFza3M6ITEscG9zdHBvbmVkOiExLHJ1bm5pbmdXb3JrZXJzOjAsaW5kZXg6MCxjb21wbGV0ZWRUYXNrczowLHByb2dyZXNzQ2FsbGJhY2s6dCxjYW5jZWxlZDohMX07cmV0dXJuIHRoaXMucnVuSW5mby5wdXNoKHIpLHIuaW5kZXg9dGhpcy5ydW5JbmZvLmxlbmd0aC0xLHtwcm9taXNlOm5ldyBQcm9taXNlKChpLEkpPT57ci5yZXNvbHZlPWksci5yZWplY3Q9SSxyLnJlc3VsdHM9bmV3IEFycmF5KGUubGVuZ3RoKSxyLmNvbXBsZXRlZFRhc2tzPTAsci5hZGRpbmdUYXNrcz0hMCxlLmZvckVhY2goKG8sYSk9Pnt0aGlzLmFkZFRhc2soci5pbmRleCxhLG8pfSksci5hZGRpbmdUYXNrcz0hMX0pLHJ1bklkOnIuaW5kZXh9fXRlcm1pbmF0ZVdvcmtlcnMoKXtmb3IobGV0IGU9MDtlPHRoaXMud29ya2VyUXVldWUubGVuZ3RoO2UrKyl7bGV0IHQ9dGhpcy53b3JrZXJRdWV1ZVtlXTt0Py50ZXJtaW5hdGUoKSx0aGlzLndvcmtlclF1ZXVlW2VdPW51bGx9fWNhbmNlbChlKXtsZXQgdD10aGlzLnJ1bkluZm9bZV07dCE9bnVsbCYmKHQuY2FuY2VsZWQ9ITApfWFkZFRhc2soZSx0LHIpe2xldCBpPXRoaXMucnVuSW5mb1tlXTtpZihpPy5jYW5jZWxlZD09PSEwKXtpLnJlamVjdCgiUmVtYWluaW5nIHRhc2tzIGNhbmNlbGVkIiksdGhpcy5jbGVhclRhc2soaS5pbmRleCk7cmV0dXJufWlmKHRoaXMud29ya2VyUXVldWUubGVuZ3RoPjApe2xldCBJPXRoaXMud29ya2VyUXVldWUucG9wKCk7aS5ydW5uaW5nV29ya2VycysrLHJbci5sZW5ndGgtMV0ud2ViV29ya2VyPUksdGhpcy5mY24oLi4ucikudGhlbigoe3dlYldvcmtlcjpvLC4uLmF9KT0+e2lmKHRoaXMud29ya2VyUXVldWUucHVzaChvKSx0aGlzLnJ1bkluZm9bZV0hPT1udWxsKXtpZihpLnJ1bm5pbmdXb3JrZXJzLS0saS5yZXN1bHRzW3RdPWEsaS5jb21wbGV0ZWRUYXNrcysrLGkucHJvZ3Jlc3NDYWxsYmFjayE9bnVsbCYmaS5wcm9ncmVzc0NhbGxiYWNrKGkuY29tcGxldGVkVGFza3MsaS5yZXN1bHRzLmxlbmd0aCksaS50YXNrUXVldWUubGVuZ3RoPjApe2xldCBFPWkudGFza1F1ZXVlLnNoaWZ0KCk7dGhpcy5hZGRUYXNrKGUsRVswXSxFWzFdKX1lbHNlIGlmKCFpLmFkZGluZ1Rhc2tzJiZpLnJ1bm5pbmdXb3JrZXJzPT09MCl7bGV0IEU9aS5yZXN1bHRzO2kucmVzb2x2ZShFKSx0aGlzLmNsZWFyVGFzayhpLmluZGV4KX19fSkuY2F0Y2gobz0+e2kucmVqZWN0KG8pLHRoaXMuY2xlYXJUYXNrKGkuaW5kZXgpfSl9ZWxzZSBpLnJ1bm5pbmdXb3JrZXJzIT09MHx8aS5wb3N0cG9uZWQ/aS50YXNrUXVldWUucHVzaChbdCxyXSk6KGkucG9zdHBvbmVkPSEwLHNldFRpbWVvdXQoKCk9PntpLnBvc3Rwb25lZD0hMSx0aGlzLmFkZFRhc2soaS5pbmRleCx0LHIpfSw1MCkpfWNsZWFyVGFzayhlKXt0aGlzLnJ1bkluZm9bZV0ucmVzdWx0cz1bXSx0aGlzLnJ1bkluZm9bZV0udGFza1F1ZXVlPVtdLHRoaXMucnVuSW5mb1tlXS5wcm9ncmVzc0NhbGxiYWNrPW51bGwsdGhpcy5ydW5JbmZvW2VdLmNhbmNlbGVkPW51bGwsdGhpcy5ydW5JbmZvW2VdLnJlamVjdD0oKT0+e30sdGhpcy5ydW5JbmZvW2VdLnJlc29sdmU9KCk9Pnt9fX0sb2U9SWU7dmFyIERyPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxmPURyO3ZhciBfZT1TeW1ib2woIkNvbWxpbmsucHJveHkiKSx3cj1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxhZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksbmU9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLFVBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSwkZT1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixTcj17Y2FuSGFuZGxlOkE9PiRlKEEpJiZBW19lXSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBldChBLGUpLFt0LFt0XV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksc2UoQSl9fSxGcj17Y2FuSGFuZGxlOkE9PiRlKEEpJiZVQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCBlO3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW2UsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sQXQ9bmV3IE1hcChbWyJwcm94eSIsU3JdLFsidGhyb3ciLEZyXV0pO2Z1bmN0aW9uIFJyKEEsZSl7Zm9yKGxldCB0IG9mIEEpaWYoZT09PXR8fHQ9PT0iKiJ8fHQgaW5zdGFuY2VvZiBSZWdFeHAmJnQudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBldChBLGU9Z2xvYmFsVGhpcyx0PVsiKiJdKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIHIoaSl7aWYoIWl8fCFpLmRhdGEpcmV0dXJuO2lmKCFScih0LGkub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiAnJHtpLm9yaWdpbn0nIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDpJLHR5cGU6byxwYXRoOmF9PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LGkuZGF0YSksRT0oaS5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcCh6KSxzO3RyeXtsZXQgbj1hLnNsaWNlKDAsLTEpLnJlZHVjZSgodSxDKT0+dVtDXSxBKSxnPWEucmVkdWNlKCh1LEMpPT51W0NdLEEpO3N3aXRjaChvKXtjYXNlIkdFVCI6cz1nO2JyZWFrO2Nhc2UiU0VUIjpuW2Euc2xpY2UoLTEpWzBdXT16KGkuZGF0YS52YWx1ZSkscz0hMDticmVhaztjYXNlIkFQUExZIjpzPWcuYXBwbHkobixFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCB1PW5ldyBnKC4uLkUpO3M9YnIodSl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTp1LHBvcnQyOkN9PW5ldyBNZXNzYWdlQ2hhbm5lbDtldChBLEMpLHM9QmUodSxbdV0pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6cz12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKG4pe3M9e3ZhbHVlOm4sW1VBXTowfX1Qcm9taXNlLnJlc29sdmUocykuY2F0Y2gobj0+KHt2YWx1ZTpuLFtVQV06MH0pKS50aGVuKG49PntsZXRbZyx1XT1iQShuKTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSx7aWQ6SX0pLHUpLG89PT0iUkVMRUFTRSImJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHIpLHR0KGUpLG5lIGluIEEmJnR5cGVvZiBBW25lXT09ImZ1bmN0aW9uIiYmQVtuZV0oKSl9KS5jYXRjaChuPT57bGV0W2csdV09YkEoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFtVQV06MH0pO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcpLHtpZDpJfSksdSl9KX0pLGUuc3RhcnQmJmUuc3RhcnQoKX1mdW5jdGlvbiBrcihBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiB0dChBKXtrcihBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIHNlKEEsZSl7cmV0dXJuIGdlKEEsW10sZSl9ZnVuY3Rpb24ga0EoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIHJ0KEEpe3JldHVybiBBQShBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9Pnt0dChBKX0pfXZhciBOQT1uZXcgV2Vha01hcCxHQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgZT0oTkEuZ2V0KEEpfHwwKS0xO05BLnNldChBLGUpLGU9PT0wJiZydChBKX0pO2Z1bmN0aW9uIFVyKEEsZSl7bGV0IHQ9KE5BLmdldChlKXx8MCkrMTtOQS5zZXQoZSx0KSxHQSYmR0EucmVnaXN0ZXIoQSxlLEEpfWZ1bmN0aW9uIE5yKEEpe0dBJiZHQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIGdlKEEsZT1bXSx0PWZ1bmN0aW9uKCl7fSl7bGV0IHI9ITEsaT1uZXcgUHJveHkodCx7Z2V0KEksbyl7aWYoa0Eociksbz09PWFlKXJldHVybigpPT57TnIoaSkscnQoQSkscj0hMH07aWYobz09PSJ0aGVuIil7aWYoZS5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5pfTtsZXQgYT1BQShBLHt0eXBlOiJHRVQiLHBhdGg6ZS5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oeik7cmV0dXJuIGEudGhlbi5iaW5kKGEpfXJldHVybiBnZShBLFsuLi5lLG9dKX0sc2V0KEksbyxhKXtrQShyKTtsZXRbRSxzXT1iQShhKTtyZXR1cm4gQUEoQSx7dHlwZToiU0VUIixwYXRoOlsuLi5lLG9dLm1hcChuPT5uLnRvU3RyaW5nKCkpLHZhbHVlOkV9LHMpLnRoZW4oeil9LGFwcGx5KEksbyxhKXtrQShyKTtsZXQgRT1lW2UubGVuZ3RoLTFdO2lmKEU9PT13cilyZXR1cm4gQUEoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbih6KTtpZihFPT09ImJpbmQiKXJldHVybiBnZShBLGUuc2xpY2UoMCwtMSkpO2xldFtzLG5dPXplKGEpO3JldHVybiBBQShBLHt0eXBlOiJBUFBMWSIscGF0aDplLm1hcChnPT5nLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpzfSxuKS50aGVuKHopfSxjb25zdHJ1Y3QoSSxvKXtrQShyKTtsZXRbYSxFXT16ZShvKTtyZXR1cm4gQUEoQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOmUubWFwKHM9PnMudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OmF9LEUpLnRoZW4oeil9fSk7cmV0dXJuIFVyKGksQSksaX1mdW5jdGlvbiBHcihBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiB6ZShBKXtsZXQgZT1BLm1hcChiQSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLEdyKGUubWFwKHQ9PnRbMV0pKV19dmFyIGl0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEJlKEEsZSl7cmV0dXJuIGl0LnNldChBLGUpLEF9ZnVuY3Rpb24gYnIoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W19lXTohMH0pfWZ1bmN0aW9uIGJBKEEpe2ZvcihsZXRbZSx0XW9mIEF0KWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbcixpXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTpyfSxpXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0saXQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24geihBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBBdC5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIEFBKEEsZSx0KXtyZXR1cm4gbmV3IFByb21pc2Uocj0+e2xldCBpPUxyKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKG8peyFvLmRhdGF8fCFvLmRhdGEuaWR8fG8uZGF0YS5pZCE9PWl8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLHIoby5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDppfSxlKSx0KX0pfWZ1bmN0aW9uIExyKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiBCQShBLGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KGUsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOkpyfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpRZX09T2JqZWN0LHtpdGVyYXRvcjpKQSx0b1N0cmluZ1RhZzpudH09U3ltYm9sLE1BPShBPT5lPT57bGV0IHQ9SnIuY2FsbChlKTtyZXR1cm4gQVt0XXx8KEFbdF09dC5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLEg9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLGU9Pk1BKGUpPT09QSksSEE9QT0+ZT0+dHlwZW9mIGU9PT1BLHtpc0FycmF5OnRBfT1BcnJheSxlQT1IQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gQ0EoQSl7cmV0dXJuIEEhPT1udWxsJiYhZUEoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhZUEoQS5jb25zdHJ1Y3RvcikmJkwoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIGd0PUgoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gTXIoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZndChBLmJ1ZmZlciksZX12YXIgSHI9SEEoInN0cmluZyIpLEw9SEEoImZ1bmN0aW9uIiksYXQ9SEEoIm51bWJlciIpLFFBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsWXI9QT0+QT09PSEwfHxBPT09ITEsTEE9QT0+e2lmKE1BKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IGU9UWUoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEobnQgaW4gQSkmJiEoSkEgaW4gQSl9LFRyPUE9PntpZighUUEoQSl8fENBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LE9yPUgoIkRhdGUiKSx4cj1IKCJGaWxlIikscXI9SCgiQmxvYiIpLFByPUgoIkZpbGVMaXN0IiksS3I9QT0+UUEoQSkmJkwoQS5waXBlKSxXcj1BPT57bGV0IGU7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8TChBLmFwcGVuZCkmJigoZT1NQShBKSk9PT0iZm9ybWRhdGEifHxlPT09Im9iamVjdCImJkwoQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sanI9SCgiVVJMU2VhcmNoUGFyYW1zIiksW3ZyLFpyLFZyLFhyXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChIKSx6cj1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gRUEoQSxlLHthbGxPd25LZXlzOnQ9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgcixpO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSx0QShBKSlmb3Iocj0wLGk9QS5sZW5ndGg7cjxpO3IrKyllLmNhbGwobnVsbCxBW3JdLHIsQSk7ZWxzZXtpZihDQShBKSlyZXR1cm47bGV0IEk9dD9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxvPUkubGVuZ3RoLGE7Zm9yKHI9MDtyPG87cisrKWE9SVtyXSxlLmNhbGwobnVsbCxBW2FdLGEsQSl9fWZ1bmN0aW9uIHN0KEEsZSl7aWYoQ0EoQSkpcmV0dXJuIG51bGw7ZT1lLnRvTG93ZXJDYXNlKCk7bGV0IHQ9T2JqZWN0LmtleXMoQSkscj10Lmxlbmd0aCxpO2Zvcig7ci0tID4wOylpZihpPXRbcl0sZT09PWkudG9Mb3dlckNhc2UoKSlyZXR1cm4gaTtyZXR1cm4gbnVsbH12YXIgXz10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLEJ0PUE9PiFlQShBKSYmQSE9PV87ZnVuY3Rpb24gQ2UoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOmV9PUJ0KHRoaXMpJiZ0aGlzfHx7fSx0PXt9LHI9KGksSSk9PntsZXQgbz1BJiZzdCh0LEkpfHxJO0xBKHRbb10pJiZMQShpKT90W29dPUNlKHRbb10saSk6TEEoaSk/dFtvXT1DZSh7fSxpKTp0QShpKT90W29dPWkuc2xpY2UoKTooIWV8fCFlQShpKSkmJih0W29dPWkpfTtmb3IobGV0IGk9MCxJPWFyZ3VtZW50cy5sZW5ndGg7aTxJO2krKylhcmd1bWVudHNbaV0mJkVBKGFyZ3VtZW50c1tpXSxyKTtyZXR1cm4gdH12YXIgX3I9KEEsZSx0LHthbGxPd25LZXlzOnJ9PXt9KT0+KEVBKGUsKGksSSk9Pnt0JiZMKGkpP0FbSV09QkEoaSx0KTpBW0ldPWl9LHthbGxPd25LZXlzOnJ9KSxBKSwkcj1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLEFpPShBLGUsdCxyKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUsciksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLHQmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsdCl9LGVpPShBLGUsdCxyKT0+e2xldCBpLEksbyxhPXt9O2lmKGU9ZXx8e30sQT09bnVsbClyZXR1cm4gZTtkb3tmb3IoaT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxJPWkubGVuZ3RoO0ktLSA+MDspbz1pW0ldLCghcnx8cihvLEEsZSkpJiYhYVtvXSYmKGVbb109QVtvXSxhW29dPSEwKTtBPXQhPT0hMSYmUWUoQSl9d2hpbGUoQSYmKCF0fHx0KEEsZSkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LHRpPShBLGUsdCk9PntBPVN0cmluZyhBKSwodD09PXZvaWQgMHx8dD5BLmxlbmd0aCkmJih0PUEubGVuZ3RoKSx0LT1lLmxlbmd0aDtsZXQgcj1BLmluZGV4T2YoZSx0KTtyZXR1cm4gciE9PS0xJiZyPT09dH0scmk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHRBKEEpKXJldHVybiBBO2xldCBlPUEubGVuZ3RoO2lmKCFhdChlKSlyZXR1cm4gbnVsbDtsZXQgdD1uZXcgQXJyYXkoZSk7Zm9yKDtlLS0gPjA7KXRbZV09QVtlXTtyZXR1cm4gdH0saWk9KEE9PmU9PkEmJmUgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJlFlKFVpbnQ4QXJyYXkpKSxJaT0oQSxlKT0+e2xldCByPShBJiZBW0pBXSkuY2FsbChBKSxpO2Zvcig7KGk9ci5uZXh0KCkpJiYhaS5kb25lOyl7bGV0IEk9aS52YWx1ZTtlLmNhbGwoQSxJWzBdLElbMV0pfX0sb2k9KEEsZSk9PntsZXQgdCxyPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KXIucHVzaCh0KTtyZXR1cm4gcn0sbmk9SCgiSFRNTEZvcm1FbGVtZW50IiksZ2k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxyLGkpe3JldHVybiByLnRvVXBwZXJDYXNlKCkraX0pLG90PSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxhaT1IKCJSZWdFeHAiKSxDdD0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLHI9e307RUEodCwoaSxJKT0+e2xldCBvOyhvPWUoaSxJLEEpKSE9PSExJiYocltJXT1vfHxpKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEscil9LHNpPUE9PntDdChBLChlLHQpPT57aWYoTChBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IHI9QVt0XTtpZihMKHIpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LEJpPShBLGUpPT57bGV0IHQ9e30scj1pPT57aS5mb3JFYWNoKEk9Pnt0W0ldPSEwfSl9O3JldHVybiB0QShBKT9yKEEpOnIoU3RyaW5nKEEpLnNwbGl0KGUpKSx0fSxDaT0oKT0+e30sUWk9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gRWkoQSl7cmV0dXJuISEoQSYmTChBLmFwcGVuZCkmJkFbbnRdPT09IkZvcm1EYXRhIiYmQVtKQV0pfXZhciBsaT1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSx0PShyLGkpPT57aWYoUUEocikpe2lmKGUuaW5kZXhPZihyKT49MClyZXR1cm47aWYoQ0EocikpcmV0dXJuIHI7aWYoISgidG9KU09OImluIHIpKXtlW2ldPXI7bGV0IEk9dEEocik/W106e307cmV0dXJuIEVBKHIsKG8sYSk9PntsZXQgRT10KG8saSsxKTshZUEoRSkmJihJW2FdPUUpfSksZVtpXT12b2lkIDAsSX19cmV0dXJuIHJ9O3JldHVybiB0KEEsMCl9LGNpPUgoIkFzeW5jRnVuY3Rpb24iKSx1aT1BPT5BJiYoUUEoQSl8fEwoQSkpJiZMKEEudGhlbikmJkwoQS5jYXRjaCksUXQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxyKT0+KF8uYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6aSxkYXRhOkl9KT0+e2k9PT1fJiZJPT09dCYmci5sZW5ndGgmJnIuc2hpZnQoKSgpfSwhMSksaT0+e3IucHVzaChpKSxfLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTChfLnBvc3RNZXNzYWdlKSksZmk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKF8pOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8UXQscGk9QT0+QSE9bnVsbCYmTChBW0pBXSksQj17aXNBcnJheTp0QSxpc0FycmF5QnVmZmVyOmd0LGlzQnVmZmVyOkNBLGlzRm9ybURhdGE6V3IsaXNBcnJheUJ1ZmZlclZpZXc6TXIsaXNTdHJpbmc6SHIsaXNOdW1iZXI6YXQsaXNCb29sZWFuOllyLGlzT2JqZWN0OlFBLGlzUGxhaW5PYmplY3Q6TEEsaXNFbXB0eU9iamVjdDpUcixpc1JlYWRhYmxlU3RyZWFtOnZyLGlzUmVxdWVzdDpacixpc1Jlc3BvbnNlOlZyLGlzSGVhZGVyczpYcixpc1VuZGVmaW5lZDplQSxpc0RhdGU6T3IsaXNGaWxlOnhyLGlzQmxvYjpxcixpc1JlZ0V4cDphaSxpc0Z1bmN0aW9uOkwsaXNTdHJlYW06S3IsaXNVUkxTZWFyY2hQYXJhbXM6anIsaXNUeXBlZEFycmF5OmlpLGlzRmlsZUxpc3Q6UHIsZm9yRWFjaDpFQSxtZXJnZTpDZSxleHRlbmQ6X3IsdHJpbTp6cixzdHJpcEJPTTokcixpbmhlcml0czpBaSx0b0ZsYXRPYmplY3Q6ZWksa2luZE9mOk1BLGtpbmRPZlRlc3Q6SCxlbmRzV2l0aDp0aSx0b0FycmF5OnJpLGZvckVhY2hFbnRyeTpJaSxtYXRjaEFsbDpvaSxpc0hUTUxGb3JtOm5pLGhhc093blByb3BlcnR5Om90LGhhc093blByb3A6b3QscmVkdWNlRGVzY3JpcHRvcnM6Q3QsZnJlZXplTWV0aG9kczpzaSx0b09iamVjdFNldDpCaSx0b0NhbWVsQ2FzZTpnaSxub29wOkNpLHRvRmluaXRlTnVtYmVyOlFpLGZpbmRLZXk6c3QsZ2xvYmFsOl8saXNDb250ZXh0RGVmaW5lZDpCdCxpc1NwZWNDb21wbGlhbnRGb3JtOkVpLHRvSlNPTk9iamVjdDpsaSxpc0FzeW5jRm46Y2ksaXNUaGVuYWJsZTp1aSxzZXRJbW1lZGlhdGU6UXQsYXNhcDpmaSxpc0l0ZXJhYmxlOnBpfTtmdW5jdGlvbiByQShBLGUsdCxyLGkpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsZSYmKHRoaXMuY29kZT1lKSx0JiYodGhpcy5jb25maWc9dCksciYmKHRoaXMucmVxdWVzdD1yKSxpJiYodGhpcy5yZXNwb25zZT1pLHRoaXMuc3RhdHVzPWkuc3RhdHVzP2kuc3RhdHVzOm51bGwpfUIuaW5oZXJpdHMockEsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzpCLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgRXQ9ckEucHJvdG90eXBlLGx0PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e2x0W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHJBLGx0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRXQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7ckEuZnJvbT0oQSxlLHQscixpLEkpPT57bGV0IG89T2JqZWN0LmNyZWF0ZShFdCk7Qi50b0ZsYXRPYmplY3QoQSxvLGZ1bmN0aW9uKG4pe3JldHVybiBuIT09RXJyb3IucHJvdG90eXBlfSxzPT5zIT09ImlzQXhpb3NFcnJvciIpO2xldCBhPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPWU9PW51bGwmJkE/QS5jb2RlOmU7cmV0dXJuIHJBLmNhbGwobyxhLEUsdCxyLGkpLEEmJm8uY2F1c2U9PW51bGwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCJjYXVzZSIse3ZhbHVlOkEsY29uZmlndXJhYmxlOiEwfSksby5uYW1lPUEmJkEubmFtZXx8IkVycm9yIixJJiZPYmplY3QuYXNzaWduKG8sSSksb307dmFyIGQ9ckE7dmFyIFlBPW51bGw7ZnVuY3Rpb24gRWUoQSl7cmV0dXJuIEIuaXNQbGFpbk9iamVjdChBKXx8Qi5pc0FycmF5KEEpfWZ1bmN0aW9uIHV0KEEpe3JldHVybiBCLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIGN0KEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24oaSxJKXtyZXR1cm4gaT11dChpKSwhdCYmST8iWyIraSsiXSI6aX0pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gZGkoQSl7cmV0dXJuIEIuaXNBcnJheShBKSYmIUEuc29tZShFZSl9dmFyIG1pPUIudG9GbGF0T2JqZWN0KEIse30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiBoaShBLGUsdCl7aWYoIUIuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoWUF8fEZvcm1EYXRhKSx0PUIudG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihsLGMpe3JldHVybiFCLmlzVW5kZWZpbmVkKGNbbF0pfSk7bGV0IHI9dC5tZXRhVG9rZW5zLGk9dC52aXNpdG9yfHxuLEk9dC5kb3RzLG89dC5pbmRleGVzLEU9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmQi5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFCLmlzRnVuY3Rpb24oaSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBzKFEpe2lmKFE9PT1udWxsKXJldHVybiIiO2lmKEIuaXNEYXRlKFEpKXJldHVybiBRLnRvSVNPU3RyaW5nKCk7aWYoQi5pc0Jvb2xlYW4oUSkpcmV0dXJuIFEudG9TdHJpbmcoKTtpZighRSYmQi5pc0Jsb2IoUSkpdGhyb3cgbmV3IGQoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIEIuaXNBcnJheUJ1ZmZlcihRKXx8Qi5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIG4oUSxsLGMpe2xldCBwPVE7aWYoUSYmIWMmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYoQi5lbmRzV2l0aChsLCJ7fSIpKWw9cj9sOmwuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKEIuaXNBcnJheShRKSYmZGkoUSl8fChCLmlzRmlsZUxpc3QoUSl8fEIuZW5kc1dpdGgobCwiW10iKSkmJihwPUIudG9BcnJheShRKSkpcmV0dXJuIGw9dXQobCkscC5mb3JFYWNoKGZ1bmN0aW9uKGgsTil7IShCLmlzVW5kZWZpbmVkKGgpfHxoPT09bnVsbCkmJmUuYXBwZW5kKG89PT0hMD9jdChbbF0sTixJKTpvPT09bnVsbD9sOmwrIltdIixzKGgpKX0pLCExfXJldHVybiBFZShRKT8hMDooZS5hcHBlbmQoY3QoYyxsLEkpLHMoUSkpLCExKX1sZXQgZz1bXSx1PU9iamVjdC5hc3NpZ24obWkse2RlZmF1bHRWaXNpdG9yOm4sY29udmVydFZhbHVlOnMsaXNWaXNpdGFibGU6RWV9KTtmdW5jdGlvbiBDKFEsbCl7aWYoIUIuaXNVbmRlZmluZWQoUSkpe2lmKGcuaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitsLmpvaW4oIi4iKSk7Zy5wdXNoKFEpLEIuZm9yRWFjaChRLGZ1bmN0aW9uKHAsbSl7KCEoQi5pc1VuZGVmaW5lZChwKXx8cD09PW51bGwpJiZpLmNhbGwoZSxwLEIuaXNTdHJpbmcobSk/bS50cmltKCk6bSxsLHUpKT09PSEwJiZDKHAsbD9sLmNvbmNhdChtKTpbbV0pfSksZy5wb3AoKX19aWYoIUIuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBDKEEpLGV9dmFyIGo9aGk7ZnVuY3Rpb24gZnQoQSl7bGV0IGU9eyIhIjoiJTIxIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwifiI6IiU3RSIsIiUyMCI6IisiLCIlMDAiOiJcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csZnVuY3Rpb24ocil7cmV0dXJuIGVbcl19KX1mdW5jdGlvbiBwdChBLGUpe3RoaXMuX3BhaXJzPVtdLEEmJmooQSx0aGlzLGUpfXZhciBkdD1wdC5wcm90b3R5cGU7ZHQuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9O2R0LnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCB0PWU/ZnVuY3Rpb24ocil7cmV0dXJuIGUuY2FsbCh0aGlzLHIsZnQpfTpmdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKGkpe3JldHVybiB0KGlbMF0pKyI9Iit0KGlbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgVEE9cHQ7ZnVuY3Rpb24geWkoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIil9ZnVuY3Rpb24gbEEoQSxlLHQpe2lmKCFlKXJldHVybiBBO2xldCByPXQmJnQuZW5jb2RlfHx5aTtCLmlzRnVuY3Rpb24odCkmJih0PXtzZXJpYWxpemU6dH0pO2xldCBpPXQmJnQuc2VyaWFsaXplLEk7aWYoaT9JPWkoZSx0KTpJPUIuaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyBUQShlLHQpLnRvU3RyaW5nKHIpLEkpe2xldCBvPUEuaW5kZXhPZigiIyIpO28hPT0tMSYmKEE9QS5zbGljZSgwLG8pKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStJfXJldHVybiBBfXZhciBsZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsdCxyKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOnI/ci5zeW5jaHJvbm91czohMSxydW5XaGVuOnI/ci5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goZSl7Qi5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24ocil7ciE9PW51bGwmJmUocil9KX19LGNlPWxlO3ZhciBPQT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIG10PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpUQTt2YXIgaHQ9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciB5dD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBEdD17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczptdCxGb3JtRGF0YTpodCxCbG9iOnl0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIHBlPXt9O2NyKHBlLHtoYXNCcm93c2VyRW52OigpPT5mZSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PkRpLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+d2ksbmF2aWdhdG9yOigpPT51ZSxvcmlnaW46KCk9PlNpfSk7dmFyIGZlPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLHVlPXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCxEaT1mZSYmKCF1ZXx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZih1ZS5wcm9kdWN0KTwwKSx3aT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsU2k9ZmUmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIFM9ey4uLnBlLC4uLkR0fTtmdW5jdGlvbiBkZShBLGUpe3JldHVybiBqKEEsbmV3IFMuY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMse3Zpc2l0b3I6ZnVuY3Rpb24odCxyLGksSSl7cmV0dXJuIFMuaXNOb2RlJiZCLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChyLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6SS5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LC4uLmV9KX1mdW5jdGlvbiBGaShBKXtyZXR1cm4gQi5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csQSkubWFwKGU9PmVbMF09PT0iW10iPyIiOmVbMV18fGVbMF0pfWZ1bmN0aW9uIFJpKEEpe2xldCBlPXt9LHQ9T2JqZWN0LmtleXMoQSkscixpPXQubGVuZ3RoLEk7Zm9yKHI9MDtyPGk7cisrKUk9dFtyXSxlW0ldPUFbSV07cmV0dXJuIGV9ZnVuY3Rpb24ga2koQSl7ZnVuY3Rpb24gZSh0LHIsaSxJKXtsZXQgbz10W0krK107aWYobz09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBhPU51bWJlci5pc0Zpbml0ZSgrbyksRT1JPj10Lmxlbmd0aDtyZXR1cm4gbz0hbyYmQi5pc0FycmF5KGkpP2kubGVuZ3RoOm8sRT8oQi5oYXNPd25Qcm9wKGksbyk/aVtvXT1baVtvXSxyXTppW29dPXIsIWEpOigoIWlbb118fCFCLmlzT2JqZWN0KGlbb10pKSYmKGlbb109W10pLGUodCxyLGlbb10sSSkmJkIuaXNBcnJheShpW29dKSYmKGlbb109UmkoaVtvXSkpLCFhKX1pZihCLmlzRm9ybURhdGEoQSkmJkIuaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgdD17fTtyZXR1cm4gQi5mb3JFYWNoRW50cnkoQSwocixpKT0+e2UoRmkociksaSx0LDApfSksdH1yZXR1cm4gbnVsbH12YXIgeEE9a2k7ZnVuY3Rpb24gVWkoQSxlLHQpe2lmKEIuaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxCLnRyaW0oQSl9Y2F0Y2gocil7aWYoci5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyByfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIG1lPXt0cmFuc2l0aW9uYWw6T0EsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7bGV0IHI9dC5nZXRDb250ZW50VHlwZSgpfHwiIixpPXIuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLEk9Qi5pc09iamVjdChlKTtpZihJJiZCLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSksQi5pc0Zvcm1EYXRhKGUpKXJldHVybiBpP0pTT04uc3RyaW5naWZ5KHhBKGUpKTplO2lmKEIuaXNBcnJheUJ1ZmZlcihlKXx8Qi5pc0J1ZmZlcihlKXx8Qi5pc1N0cmVhbShlKXx8Qi5pc0ZpbGUoZSl8fEIuaXNCbG9iKGUpfHxCLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoQi5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYoQi5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gdC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IGE7aWYoSSl7aWYoci5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gZGUoZSx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChhPUIuaXNGaWxlTGlzdChlKSl8fHIuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgRT10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIGooYT97ImZpbGVzW10iOmV9OmUsRSYmbmV3IEUsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiBJfHxpPyh0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksVWkoZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7bGV0IHQ9dGhpcy50cmFuc2l0aW9uYWx8fG1lLnRyYW5zaXRpb25hbCxyPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcsaT10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihCLmlzUmVzcG9uc2UoZSl8fEIuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZCLmlzU3RyaW5nKGUpJiYociYmIXRoaXMucmVzcG9uc2VUeXBlfHxpKSl7bGV0IG89ISh0JiZ0LnNpbGVudEpTT05QYXJzaW5nKSYmaTt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2goYSl7aWYobyl0aHJvdyBhLm5hbWU9PT0iU3ludGF4RXJyb3IiP2QuZnJvbShhLGQuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6YX19cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOlMuY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOlMuY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O0IuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57bWUuaGVhZGVyc1tBXT17fX0pO3ZhciBpQT1tZTt2YXIgTmk9Qi50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSx3dD1BPT57bGV0IGU9e30sdCxyLGk7cmV0dXJuIEEmJkEuc3BsaXQoYApgKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe2k9by5pbmRleE9mKCI6IiksdD1vLnN1YnN0cmluZygwLGkpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLHI9by5zdWJzdHJpbmcoaSsxKS50cmltKCksISghdHx8ZVt0XSYmTmlbdF0pJiYodD09PSJzZXQtY29va2llIj9lW3RdP2VbdF0ucHVzaChyKTplW3RdPVtyXTplW3RdPWVbdF0/ZVt0XSsiLCAiK3I6cil9KSxlfTt2YXIgU3Q9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBjQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHFBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTpCLmlzQXJyYXkoQSk/QS5tYXAocUEpOlN0cmluZyhBKX1mdW5jdGlvbiBHaShBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxyO2Zvcig7cj10LmV4ZWMoQSk7KWVbclsxXV09clsyXTtyZXR1cm4gZX12YXIgYmk9QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gaGUoQSxlLHQscixpKXtpZihCLmlzRnVuY3Rpb24ocikpcmV0dXJuIHIuY2FsbCh0aGlzLGUsdCk7aWYoaSYmKGU9dCksISFCLmlzU3RyaW5nKGUpKXtpZihCLmlzU3RyaW5nKHIpKXJldHVybiBlLmluZGV4T2YocikhPT0tMTtpZihCLmlzUmVnRXhwKHIpKXJldHVybiByLnRlc3QoZSl9fWZ1bmN0aW9uIExpKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxyKT0+dC50b1VwcGVyQ2FzZSgpK3IpfWZ1bmN0aW9uIEppKEEsZSl7bGV0IHQ9Qi50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKHI9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxyK3Qse3ZhbHVlOmZ1bmN0aW9uKGksSSxvKXtyZXR1cm4gdGhpc1tyXS5jYWxsKHRoaXMsZSxpLEksbyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIElBPWNsYXNze2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQscil7bGV0IGk9dGhpcztmdW5jdGlvbiBJKGEsRSxzKXtsZXQgbj1jQShFKTtpZighbil0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IGc9Qi5maW5kS2V5KGksbik7KCFnfHxpW2ddPT09dm9pZCAwfHxzPT09ITB8fHM9PT12b2lkIDAmJmlbZ10hPT0hMSkmJihpW2d8fEVdPXFBKGEpKX1sZXQgbz0oYSxFKT0+Qi5mb3JFYWNoKGEsKHMsbik9PkkocyxuLEUpKTtpZihCLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKW8oZSx0KTtlbHNlIGlmKEIuaXNTdHJpbmcoZSkmJihlPWUudHJpbSgpKSYmIWJpKGUpKW8od3QoZSksdCk7ZWxzZSBpZihCLmlzT2JqZWN0KGUpJiZCLmlzSXRlcmFibGUoZSkpe2xldCBhPXt9LEUscztmb3IobGV0IG4gb2YgZSl7aWYoIUIuaXNBcnJheShuKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7YVtzPW5bMF1dPShFPWFbc10pP0IuaXNBcnJheShFKT9bLi4uRSxuWzFdXTpbRSxuWzFdXTpuWzFdfW8oYSx0KX1lbHNlIGUhPW51bGwmJkkodCxlLHIpO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9Y0EoZSksZSl7bGV0IHI9Qi5maW5kS2V5KHRoaXMsZSk7aWYocil7bGV0IGk9dGhpc1tyXTtpZighdClyZXR1cm4gaTtpZih0PT09ITApcmV0dXJuIEdpKGkpO2lmKEIuaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsaSxyKTtpZihCLmlzUmVnRXhwKHQpKXJldHVybiB0LmV4ZWMoaSk7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhlLHQpe2lmKGU9Y0EoZSksZSl7bGV0IHI9Qi5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEociYmdGhpc1tyXSE9PXZvaWQgMCYmKCF0fHxoZSh0aGlzLHRoaXNbcl0scix0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCByPXRoaXMsaT0hMTtmdW5jdGlvbiBJKG8pe2lmKG89Y0Eobyksbyl7bGV0IGE9Qi5maW5kS2V5KHIsbyk7YSYmKCF0fHxoZShyLHJbYV0sYSx0KSkmJihkZWxldGUgclthXSxpPSEwKX19cmV0dXJuIEIuaXNBcnJheShlKT9lLmZvckVhY2goSSk6SShlKSxpfWNsZWFyKGUpe2xldCB0PU9iamVjdC5rZXlzKHRoaXMpLHI9dC5sZW5ndGgsaT0hMTtmb3IoO3ItLTspe2xldCBJPXRbcl07KCFlfHxoZSh0aGlzLHRoaXNbSV0sSSxlLCEwKSkmJihkZWxldGUgdGhpc1tJXSxpPSEwKX1yZXR1cm4gaX1ub3JtYWxpemUoZSl7bGV0IHQ9dGhpcyxyPXt9O3JldHVybiBCLmZvckVhY2godGhpcywoaSxJKT0+e2xldCBvPUIuZmluZEtleShyLEkpO2lmKG8pe3Rbb109cUEoaSksZGVsZXRlIHRbSV07cmV0dXJufWxldCBhPWU/TGkoSSk6U3RyaW5nKEkpLnRyaW0oKTthIT09SSYmZGVsZXRlIHRbSV0sdFthXT1xQShpKSxyW2FdPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIEIuZm9yRWFjaCh0aGlzLChyLGkpPT57ciE9bnVsbCYmciE9PSExJiYodFtpXT1lJiZCLmlzQXJyYXkocik/ci5qb2luKCIsICIpOnIpfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrIjogIit0KS5qb2luKGAKYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCByPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2goaT0+ci5zZXQoaSkpLHJ9c3RhdGljIGFjY2Vzc29yKGUpe2xldCByPSh0aGlzW1N0XT10aGlzW1N0XT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLGk9dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gSShvKXtsZXQgYT1jQShvKTtyW2FdfHwoSmkoaSxvKSxyW2FdPSEwKX1yZXR1cm4gQi5pc0FycmF5KGUpP2UuZm9yRWFjaChJKTpJKGUpLHRoaXN9fTtJQS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7Qi5yZWR1Y2VEZXNjcmlwdG9ycyhJQS5wcm90b3R5cGUsKHt2YWx1ZTpBfSxlKT0+e2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KHIpe3RoaXNbdF09cn19fSk7Qi5mcmVlemVNZXRob2RzKElBKTt2YXIgVT1JQTtmdW5jdGlvbiB1QShBLGUpe2xldCB0PXRoaXN8fGlBLHI9ZXx8dCxpPVUuZnJvbShyLmhlYWRlcnMpLEk9ci5kYXRhO3JldHVybiBCLmZvckVhY2goQSxmdW5jdGlvbihhKXtJPWEuY2FsbCh0LEksaS5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxpLm5vcm1hbGl6ZSgpLEl9ZnVuY3Rpb24gZkEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBGdChBLGUsdCl7ZC5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIixkLkVSUl9DQU5DRUxFRCxlLHQpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9Qi5pbmhlcml0cyhGdCxkLHtfX0NBTkNFTF9fOiEwfSk7dmFyIHg9RnQ7ZnVuY3Rpb24gcEEoQSxlLHQpe2xldCByPXQuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyF0LnN0YXR1c3x8IXJ8fHIodC5zdGF0dXMpP0EodCk6ZShuZXcgZCgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Quc3RhdHVzLFtkLkVSUl9CQURfUkVRVUVTVCxkLkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IodC5zdGF0dXMvMTAwKS00XSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIHllKEEpe2xldCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBNaShBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLHI9bmV3IEFycmF5KEEpLGk9MCxJPTAsbztyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKEUpe2xldCBzPURhdGUubm93KCksbj1yW0ldO298fChvPXMpLHRbaV09RSxyW2ldPXM7bGV0IGc9SSx1PTA7Zm9yKDtnIT09aTspdSs9dFtnKytdLGc9ZyVBO2lmKGk9KGkrMSklQSxpPT09SSYmKEk9KEkrMSklQSkscy1vPGUpcmV0dXJuO2xldCBDPW4mJnMtbjtyZXR1cm4gQz9NYXRoLnJvdW5kKHUqMWUzL0MpOnZvaWQgMH19dmFyIFJ0PU1pO2Z1bmN0aW9uIEhpKEEsZSl7bGV0IHQ9MCxyPTFlMy9lLGksSSxvPShzLG49RGF0ZS5ub3coKSk9Pnt0PW4saT1udWxsLEkmJihjbGVhclRpbWVvdXQoSSksST1udWxsKSxBKC4uLnMpfTtyZXR1cm5bKC4uLnMpPT57bGV0IG49RGF0ZS5ub3coKSxnPW4tdDtnPj1yP28ocyxuKTooaT1zLEl8fChJPXNldFRpbWVvdXQoKCk9PntJPW51bGwsbyhpKX0sci1nKSkpfSwoKT0+aSYmbyhpKV19dmFyIGt0PUhpO3ZhciBvQT0oQSxlLHQ9Myk9PntsZXQgcj0wLGk9UnQoNTAsMjUwKTtyZXR1cm4ga3QoST0+e2xldCBvPUkubG9hZGVkLGE9SS5sZW5ndGhDb21wdXRhYmxlP0kudG90YWw6dm9pZCAwLEU9by1yLHM9aShFKSxuPW88PWE7cj1vO2xldCBnPXtsb2FkZWQ6byx0b3RhbDphLHByb2dyZXNzOmE/by9hOnZvaWQgMCxieXRlczpFLHJhdGU6c3x8dm9pZCAwLGVzdGltYXRlZDpzJiZhJiZuPyhhLW8pL3M6dm9pZCAwLGV2ZW50OkksbGVuZ3RoQ29tcHV0YWJsZTphIT1udWxsLFtlPyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKGcpfSx0KX0sRGU9KEEsZSk9PntsZXQgdD1BIT1udWxsO3JldHVybltyPT5lWzBdKHtsZW5ndGhDb21wdXRhYmxlOnQsdG90YWw6QSxsb2FkZWQ6cn0pLGVbMV1dfSx3ZT1BPT4oLi4uZSk9PkIuYXNhcCgoKT0+QSguLi5lKSk7dmFyIFV0PVMuaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSxlKT0+dD0+KHQ9bmV3IFVSTCh0LFMub3JpZ2luKSxBLnByb3RvY29sPT09dC5wcm90b2NvbCYmQS5ob3N0PT09dC5ob3N0JiYoZXx8QS5wb3J0PT09dC5wb3J0KSkpKG5ldyBVUkwoUy5vcmlnaW4pLFMubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KFMubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgTnQ9Uy5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsZSx0LHIsaSxJKXtsZXQgbz1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpXTtCLmlzTnVtYmVyKHQpJiZvLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZSh0KS50b0dNVFN0cmluZygpKSxCLmlzU3RyaW5nKHIpJiZvLnB1c2goInBhdGg9IityKSxCLmlzU3RyaW5nKGkpJiZvLnB1c2goImRvbWFpbj0iK2kpLEk9PT0hMCYmby5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9by5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCBlPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIGU/ZGVjb2RlVVJJQ29tcG9uZW50KGVbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gU2UoQSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChBKX1mdW5jdGlvbiBGZShBLGUpe3JldHVybiBlP0EucmVwbGFjZSgvXC8/XC8kLywiIikrIi8iK2UucmVwbGFjZSgvXlwvKy8sIiIpOkF9ZnVuY3Rpb24gZEEoQSxlLHQpe2xldCByPSFTZShlKTtyZXR1cm4gQSYmKHJ8fHQ9PSExKT9GZShBLGUpOmV9dmFyIEd0PUE9PkEgaW5zdGFuY2VvZiBVP3suLi5BfTpBO2Z1bmN0aW9uIFkoQSxlKXtlPWV8fHt9O2xldCB0PXt9O2Z1bmN0aW9uIHIocyxuLGcsdSl7cmV0dXJuIEIuaXNQbGFpbk9iamVjdChzKSYmQi5pc1BsYWluT2JqZWN0KG4pP0IubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6dX0scyxuKTpCLmlzUGxhaW5PYmplY3Qobik/Qi5tZXJnZSh7fSxuKTpCLmlzQXJyYXkobik/bi5zbGljZSgpOm59ZnVuY3Rpb24gaShzLG4sZyx1KXtpZihCLmlzVW5kZWZpbmVkKG4pKXtpZighQi5pc1VuZGVmaW5lZChzKSlyZXR1cm4gcih2b2lkIDAscyxnLHUpfWVsc2UgcmV0dXJuIHIocyxuLGcsdSl9ZnVuY3Rpb24gSShzLG4pe2lmKCFCLmlzVW5kZWZpbmVkKG4pKXJldHVybiByKHZvaWQgMCxuKX1mdW5jdGlvbiBvKHMsbil7aWYoQi5pc1VuZGVmaW5lZChuKSl7aWYoIUIuaXNVbmRlZmluZWQocykpcmV0dXJuIHIodm9pZCAwLHMpfWVsc2UgcmV0dXJuIHIodm9pZCAwLG4pfWZ1bmN0aW9uIGEocyxuLGcpe2lmKGcgaW4gZSlyZXR1cm4gcihzLG4pO2lmKGcgaW4gQSlyZXR1cm4gcih2b2lkIDAscyl9bGV0IEU9e3VybDpJLG1ldGhvZDpJLGRhdGE6SSxiYXNlVVJMOm8sdHJhbnNmb3JtUmVxdWVzdDpvLHRyYW5zZm9ybVJlc3BvbnNlOm8scGFyYW1zU2VyaWFsaXplcjpvLHRpbWVvdXQ6byx0aW1lb3V0TWVzc2FnZTpvLHdpdGhDcmVkZW50aWFsczpvLHdpdGhYU1JGVG9rZW46byxhZGFwdGVyOm8scmVzcG9uc2VUeXBlOm8seHNyZkNvb2tpZU5hbWU6byx4c3JmSGVhZGVyTmFtZTpvLG9uVXBsb2FkUHJvZ3Jlc3M6byxvbkRvd25sb2FkUHJvZ3Jlc3M6byxkZWNvbXByZXNzOm8sbWF4Q29udGVudExlbmd0aDpvLG1heEJvZHlMZW5ndGg6byxiZWZvcmVSZWRpcmVjdDpvLHRyYW5zcG9ydDpvLGh0dHBBZ2VudDpvLGh0dHBzQWdlbnQ6byxjYW5jZWxUb2tlbjpvLHNvY2tldFBhdGg6byxyZXNwb25zZUVuY29kaW5nOm8sdmFsaWRhdGVTdGF0dXM6YSxoZWFkZXJzOihzLG4sZyk9PmkoR3QocyksR3QobiksZywhMCl9O3JldHVybiBCLmZvckVhY2goT2JqZWN0LmtleXMoey4uLkEsLi4uZX0pLGZ1bmN0aW9uKG4pe2xldCBnPUVbbl18fGksdT1nKEFbbl0sZVtuXSxuKTtCLmlzVW5kZWZpbmVkKHUpJiZnIT09YXx8KHRbbl09dSl9KSx0fXZhciBQQT1BPT57bGV0IGU9WSh7fSxBKSx7ZGF0YTp0LHdpdGhYU1JGVG9rZW46cix4c3JmSGVhZGVyTmFtZTppLHhzcmZDb29raWVOYW1lOkksaGVhZGVyczpvLGF1dGg6YX09ZTtpZihlLmhlYWRlcnM9bz1VLmZyb20obyksZS51cmw9bEEoZEEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplciksYSYmby5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKGEudXNlcm5hbWV8fCIiKSsiOiIrKGEucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGEucGFzc3dvcmQpKToiIikpKSxCLmlzRm9ybURhdGEodCkpe2lmKFMuaGFzU3RhbmRhcmRCcm93c2VyRW52fHxTLmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilvLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZihCLmlzRnVuY3Rpb24odC5nZXRIZWFkZXJzKSl7bGV0IEU9dC5nZXRIZWFkZXJzKCkscz1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07T2JqZWN0LmVudHJpZXMoRSkuZm9yRWFjaCgoW24sZ10pPT57cy5pbmNsdWRlcyhuLnRvTG93ZXJDYXNlKCkpJiZvLnNldChuLGcpfSl9fWlmKFMuaGFzU3RhbmRhcmRCcm93c2VyRW52JiYociYmQi5pc0Z1bmN0aW9uKHIpJiYocj1yKGUpKSxyfHxyIT09ITEmJlV0KGUudXJsKSkpe2xldCBFPWkmJkkmJk50LnJlYWQoSSk7RSYmby5zZXQoaSxFKX1yZXR1cm4gZX07dmFyIFlpPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsYnQ9WWkmJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LHIpe2xldCBpPVBBKEEpLEk9aS5kYXRhLG89VS5mcm9tKGkuaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTphLG9uVXBsb2FkUHJvZ3Jlc3M6RSxvbkRvd25sb2FkUHJvZ3Jlc3M6c309aSxuLGcsdSxDLFE7ZnVuY3Rpb24gbCgpe0MmJkMoKSxRJiZRKCksaS5jYW5jZWxUb2tlbiYmaS5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShuKSxpLnNpZ25hbCYmaS5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG4pfWxldCBjPW5ldyBYTUxIdHRwUmVxdWVzdDtjLm9wZW4oaS5tZXRob2QudG9VcHBlckNhc2UoKSxpLnVybCwhMCksYy50aW1lb3V0PWkudGltZW91dDtmdW5jdGlvbiBwKCl7aWYoIWMpcmV0dXJuO2xldCBoPVUuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGMmJmMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLE09e2RhdGE6IWF8fGE9PT0idGV4dCJ8fGE9PT0ianNvbiI/Yy5yZXNwb25zZVRleHQ6Yy5yZXNwb25zZSxzdGF0dXM6Yy5zdGF0dXMsc3RhdHVzVGV4dDpjLnN0YXR1c1RleHQsaGVhZGVyczpoLGNvbmZpZzpBLHJlcXVlc3Q6Y307cEEoZnVuY3Rpb24oSil7dChKKSxsKCl9LGZ1bmN0aW9uKEope3IoSiksbCgpfSxNKSxjPW51bGx9Im9ubG9hZGVuZCJpbiBjP2Mub25sb2FkZW5kPXA6Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshY3x8Yy5yZWFkeVN0YXRlIT09NHx8Yy5zdGF0dXM9PT0wJiYhKGMucmVzcG9uc2VVUkwmJmMucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KHApfSxjLm9uYWJvcnQ9ZnVuY3Rpb24oKXtjJiYocihuZXcgZCgiUmVxdWVzdCBhYm9ydGVkIixkLkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGwpfSxjLm9uZXJyb3I9ZnVuY3Rpb24oTil7bGV0IE09TiYmTi5tZXNzYWdlP04ubWVzc2FnZToiTmV0d29yayBFcnJvciIsWj1uZXcgZChNLGQuRVJSX05FVFdPUkssQSxjKTtaLmV2ZW50PU58fG51bGwscihaKSxjPW51bGx9LGMub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IE49aS50aW1lb3V0PyJ0aW1lb3V0IG9mICIraS50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLE09aS50cmFuc2l0aW9uYWx8fE9BO2kudGltZW91dEVycm9yTWVzc2FnZSYmKE49aS50aW1lb3V0RXJyb3JNZXNzYWdlKSxyKG5ldyBkKE4sTS5jbGFyaWZ5VGltZW91dEVycm9yP2QuRVRJTUVET1VUOmQuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbH0sST09PXZvaWQgMCYmby5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBjJiZCLmZvckVhY2goby50b0pTT04oKSxmdW5jdGlvbihOLE0pe2Muc2V0UmVxdWVzdEhlYWRlcihNLE4pfSksQi5pc1VuZGVmaW5lZChpLndpdGhDcmVkZW50aWFscyl8fChjLndpdGhDcmVkZW50aWFscz0hIWkud2l0aENyZWRlbnRpYWxzKSxhJiZhIT09Impzb24iJiYoYy5yZXNwb25zZVR5cGU9aS5yZXNwb25zZVR5cGUpLHMmJihbdSxRXT1vQShzLCEwKSxjLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIix1KSksRSYmYy51cGxvYWQmJihbZyxDXT1vQShFKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZyksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsQykpLChpLmNhbmNlbFRva2VufHxpLnNpZ25hbCkmJihuPWg9PntjJiYocighaHx8aC50eXBlP25ldyB4KG51bGwsQSxjKTpoKSxjLmFib3J0KCksYz1udWxsKX0saS5jYW5jZWxUb2tlbiYmaS5jYW5jZWxUb2tlbi5zdWJzY3JpYmUobiksaS5zaWduYWwmJihpLnNpZ25hbC5hYm9ydGVkP24oKTppLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbikpKTtsZXQgbT15ZShpLnVybCk7aWYobSYmUy5wcm90b2NvbHMuaW5kZXhPZihtKT09PS0xKXtyKG5ldyBkKCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK20rIjoiLGQuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59Yy5zZW5kKEl8fG51bGwpfSl9O3ZhciBUaT0oQSxlKT0+e2xldHtsZW5ndGg6dH09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKGV8fHQpe2xldCByPW5ldyBBYm9ydENvbnRyb2xsZXIsaSxJPWZ1bmN0aW9uKHMpe2lmKCFpKXtpPSEwLGEoKTtsZXQgbj1zIGluc3RhbmNlb2YgRXJyb3I/czp0aGlzLnJlYXNvbjtyLmFib3J0KG4gaW5zdGFuY2VvZiBkP246bmV3IHgobiBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpuKSl9fSxvPWUmJnNldFRpbWVvdXQoKCk9PntvPW51bGwsSShuZXcgZChgdGltZW91dCAke2V9IG9mIG1zIGV4Y2VlZGVkYCxkLkVUSU1FRE9VVCkpfSxlKSxhPSgpPT57QSYmKG8mJmNsZWFyVGltZW91dChvKSxvPW51bGwsQS5mb3JFYWNoKHM9PntzLnVuc3Vic2NyaWJlP3MudW5zdWJzY3JpYmUoSSk6cy5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsSSl9KSxBPW51bGwpfTtBLmZvckVhY2gocz0+cy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsSSkpO2xldHtzaWduYWw6RX09cjtyZXR1cm4gRS51bnN1YnNjcmliZT0oKT0+Qi5hc2FwKGEpLEV9fSxMdD1UaTt2YXIgT2k9ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCByPTAsaTtmb3IoO3I8dDspaT1yK2UseWllbGQgQS5zbGljZShyLGkpLHI9aX0seGk9YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mIHFpKEEpKXlpZWxkKk9pKHQsZSl9LHFpPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOnJ9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgcn19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0sUmU9KEEsZSx0LHIpPT57bGV0IGk9eGkoQSxlKSxJPTAsbyxhPUU9PntvfHwobz0hMCxyJiZyKEUpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChFKXt0cnl7bGV0e2RvbmU6cyx2YWx1ZTpufT1hd2FpdCBpLm5leHQoKTtpZihzKXthKCksRS5jbG9zZSgpO3JldHVybn1sZXQgZz1uLmJ5dGVMZW5ndGg7aWYodCl7bGV0IHU9SSs9Zzt0KHUpfUUuZW5xdWV1ZShuZXcgVWludDhBcnJheShuKSl9Y2F0Y2gocyl7dGhyb3cgYShzKSxzfX0sY2FuY2VsKEUpe3JldHVybiBhKEUpLGkucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBKdD02NCoxMDI0LHtpc0Z1bmN0aW9uOktBfT1CLFR0PSgoe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOnR9KT0+KHtmZXRjaDpBLFJlcXVlc3Q6ZSxSZXNwb25zZTp0fSkpKEIuZ2xvYmFsKSx7UmVhZGFibGVTdHJlYW06TXQsVGV4dEVuY29kZXI6SHR9PUIuZ2xvYmFsLFl0PShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LFBpPUE9PntsZXR7ZmV0Y2g6ZSxSZXF1ZXN0OnQsUmVzcG9uc2U6cn09T2JqZWN0LmFzc2lnbih7fSxUdCxBKSxpPUtBKGUpLEk9S0EodCksbz1LQShyKTtpZighaSlyZXR1cm4hMTtsZXQgYT1pJiZLQShNdCksRT1pJiYodHlwZW9mIEh0PT0iZnVuY3Rpb24iPyhRPT5sPT5RLmVuY29kZShsKSkobmV3IEh0KTphc3luYyBRPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgdChRKS5hcnJheUJ1ZmZlcigpKSkscz1JJiZhJiZZdCgoKT0+e2xldCBRPSExLGw9bmV3IHQoUy5vcmlnaW4se2JvZHk6bmV3IE10LG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBRPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIFEmJiFsfSksbj1vJiZhJiZZdCgoKT0+Qi5pc1JlYWRhYmxlU3RyZWFtKG5ldyByKCIiKS5ib2R5KSksZz17c3RyZWFtOm4mJihRPT5RLmJvZHkpfTtpJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goUT0+eyFnW1FdJiYoZ1tRXT0obCxjKT0+e2xldCBwPWwmJmxbUV07aWYocClyZXR1cm4gcC5jYWxsKGwpO3Rocm93IG5ldyBkKGBSZXNwb25zZSB0eXBlICcke1F9JyBpcyBub3Qgc3VwcG9ydGVkYCxkLkVSUl9OT1RfU1VQUE9SVCxjKX0pfSk7bGV0IHU9YXN5bmMgUT0+e2lmKFE9PW51bGwpcmV0dXJuIDA7aWYoQi5pc0Jsb2IoUSkpcmV0dXJuIFEuc2l6ZTtpZihCLmlzU3BlY0NvbXBsaWFudEZvcm0oUSkpcmV0dXJuKGF3YWl0IG5ldyB0KFMub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6UX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoQi5pc0FycmF5QnVmZmVyVmlldyhRKXx8Qi5pc0FycmF5QnVmZmVyKFEpKXJldHVybiBRLmJ5dGVMZW5ndGg7aWYoQi5pc1VSTFNlYXJjaFBhcmFtcyhRKSYmKFE9USsiIiksQi5pc1N0cmluZyhRKSlyZXR1cm4oYXdhaXQgRShRKSkuYnl0ZUxlbmd0aH0sQz1hc3luYyhRLGwpPT57bGV0IGM9Qi50b0Zpbml0ZU51bWJlcihRLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGM/P3UobCl9O3JldHVybiBhc3luYyBRPT57bGV0e3VybDpsLG1ldGhvZDpjLGRhdGE6cCxzaWduYWw6bSxjYW5jZWxUb2tlbjpoLHRpbWVvdXQ6TixvbkRvd25sb2FkUHJvZ3Jlc3M6TSxvblVwbG9hZFByb2dyZXNzOloscmVzcG9uc2VUeXBlOkosaGVhZGVyczokQSx3aXRoQ3JlZGVudGlhbHM6U0E9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6cWV9PVBBKFEpO0o9Sj8oSisiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IEZBPUx0KFttLGgmJmgudG9BYm9ydFNpZ25hbCgpXSxOKSxzQT1udWxsLFY9RkEmJkZBLnVuc3Vic2NyaWJlJiYoKCk9PntGQS51bnN1YnNjcmliZSgpfSksUGU7dHJ5e2lmKFomJnMmJmMhPT0iZ2V0IiYmYyE9PSJoZWFkIiYmKFBlPWF3YWl0IEMoJEEscCkpIT09MCl7bGV0IFc9bmV3IHQobCx7bWV0aG9kOiJQT1NUIixib2R5OnAsZHVwbGV4OiJoYWxmIn0pLCQ7aWYoQi5pc0Zvcm1EYXRhKHApJiYoJD1XLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJiRBLnNldENvbnRlbnRUeXBlKCQpLFcuYm9keSl7bGV0W0FlLFJBXT1EZShQZSxvQSh3ZShaKSkpO3A9UmUoVy5ib2R5LEp0LEFlLFJBKX19Qi5pc1N0cmluZyhTQSl8fChTQT1TQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgVD1JJiYiY3JlZGVudGlhbHMiaW4gdC5wcm90b3R5cGUsS2U9ey4uLnFlLHNpZ25hbDpGQSxtZXRob2Q6Yy50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6JEEubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpwLGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6VD9TQTp2b2lkIDB9O3NBPUkmJm5ldyB0KGwsS2UpO2xldCBLPWF3YWl0KEk/ZShzQSxxZSk6ZShsLEtlKSksV2U9biYmKEo9PT0ic3RyZWFtInx8Sj09PSJyZXNwb25zZSIpO2lmKG4mJihNfHxXZSYmVikpe2xldCBXPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKGplPT57V1tqZV09S1tqZV19KTtsZXQgJD1CLnRvRmluaXRlTnVtYmVyKEsuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtBZSxSQV09TSYmRGUoJCxvQSh3ZShNKSwhMCkpfHxbXTtLPW5ldyByKFJlKEsuYm9keSxKdCxBZSwoKT0+e1JBJiZSQSgpLFYmJlYoKX0pLFcpfUo9Snx8InRleHQiO2xldCBFcj1hd2FpdCBnW0IuZmluZEtleShnLEopfHwidGV4dCJdKEssUSk7cmV0dXJuIVdlJiZWJiZWKCksYXdhaXQgbmV3IFByb21pc2UoKFcsJCk9PntwQShXLCQse2RhdGE6RXIsaGVhZGVyczpVLmZyb20oSy5oZWFkZXJzKSxzdGF0dXM6Sy5zdGF0dXMsc3RhdHVzVGV4dDpLLnN0YXR1c1RleHQsY29uZmlnOlEscmVxdWVzdDpzQX0pfSl9Y2F0Y2goVCl7dGhyb3cgViYmVigpLFQmJlQubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KFQubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgZCgiTmV0d29yayBFcnJvciIsZC5FUlJfTkVUV09SSyxRLHNBKSx7Y2F1c2U6VC5jYXVzZXx8VH0pOmQuZnJvbShULFQmJlQuY29kZSxRLHNBKX19fSxLaT1uZXcgTWFwLGtlPUE9PntsZXQgZT1CLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LFR0LEE/QS5lbnY6bnVsbCkse2ZldGNoOnQsUmVxdWVzdDpyLFJlc3BvbnNlOml9PWUsST1bcixpLHRdLG89SS5sZW5ndGgsYT1vLEUscyxuPUtpO2Zvcig7YS0tOylFPUlbYV0scz1uLmdldChFKSxzPT09dm9pZCAwJiZuLnNldChFLHM9YT9uZXcgTWFwOlBpKGUpKSxuPXM7cmV0dXJuIHN9LGhnPWtlKCk7dmFyIFVlPXtodHRwOllBLHhocjpidCxmZXRjaDp7Z2V0OmtlfX07Qi5mb3JFYWNoKFVlLChBLGUpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6ZX0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTplfSl9fSk7dmFyIE90PUE9PmAtICR7QX1gLGppPUE9PkIuaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxXQT17Z2V0QWRhcHRlcjooQSxlKT0+e0E9Qi5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6dH09QSxyLGksST17fTtmb3IobGV0IG89MDtvPHQ7bysrKXtyPUFbb107bGV0IGE7aWYoaT1yLCFqaShyKSYmKGk9VWVbKGE9U3RyaW5nKHIpKS50b0xvd2VyQ2FzZSgpXSxpPT09dm9pZCAwKSl0aHJvdyBuZXcgZChgVW5rbm93biBhZGFwdGVyICcke2F9J2ApO2lmKGkmJihCLmlzRnVuY3Rpb24oaSl8fChpPWkuZ2V0KGUpKSkpYnJlYWs7SVthfHwiIyIrb109aX1pZighaSl7bGV0IG89T2JqZWN0LmVudHJpZXMoSSkubWFwKChbRSxzXSk9PmBhZGFwdGVyICR7RX0gYCsocz09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLGE9dD9vLmxlbmd0aD4xP2BzaW5jZSA6CmArby5tYXAoT3QpLmpvaW4oYApgKToiICIrT3Qob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgZCgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK2EsIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiBpfSxhZGFwdGVyczpVZX07ZnVuY3Rpb24gTmUoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IHgobnVsbCxBKX1mdW5jdGlvbiBqQShBKXtyZXR1cm4gTmUoQSksQS5oZWFkZXJzPVUuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT11QS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksV0EuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fGlBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihyKXtyZXR1cm4gTmUoQSksci5kYXRhPXVBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLHIpLHIuaGVhZGVycz1VLmZyb20oci5oZWFkZXJzKSxyfSxmdW5jdGlvbihyKXtyZXR1cm4gZkEocil8fChOZShBKSxyJiZyLnJlc3BvbnNlJiYoci5yZXNwb25zZS5kYXRhPXVBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLHIucmVzcG9uc2UpLHIucmVzcG9uc2UuaGVhZGVycz1VLmZyb20oci5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KHIpfSl9dmFyIHZBPSIxLjEyLjAiO3ZhciBaQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsZSk9PntaQVtBXT1mdW5jdGlvbihyKXtyZXR1cm4gdHlwZW9mIHI9PT1BfHwiYSIrKGU8MT8ibiAiOiIgIikrQX19KTt2YXIgeHQ9e307WkEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxyKXtmdW5jdGlvbiBpKEksbyl7cmV0dXJuIltBeGlvcyB2Iit2QSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK0krIiciK28rKHI/Ii4gIityOiIiKX1yZXR1cm4oSSxvLGEpPT57aWYoZT09PSExKXRocm93IG5ldyBkKGkobywiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSksZC5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIHQmJiF4dFtvXSYmKHh0W29dPSEwLGNvbnNvbGUud2FybihpKG8sIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3QrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksZT9lKEksbyxhKTohMH19O1pBLnNwZWxsaW5nPWZ1bmN0aW9uKGUpe3JldHVybih0LHIpPT4oY29uc29sZS53YXJuKGAke3J9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7ZX1gKSwhMCl9O2Z1bmN0aW9uIHZpKEEsZSx0KXtpZih0eXBlb2YgQSE9Im9iamVjdCIpdGhyb3cgbmV3IGQoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLGQuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCByPU9iamVjdC5rZXlzKEEpLGk9ci5sZW5ndGg7Zm9yKDtpLS0gPjA7KXtsZXQgST1yW2ldLG89ZVtJXTtpZihvKXtsZXQgYT1BW0ldLEU9YT09PXZvaWQgMHx8byhhLEksQSk7aWYoRSE9PSEwKXRocm93IG5ldyBkKCJvcHRpb24gIitJKyIgbXVzdCBiZSAiK0UsZC5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYodCE9PSEwKXRocm93IG5ldyBkKCJVbmtub3duIG9wdGlvbiAiK0ksZC5FUlJfQkFEX09QVElPTil9fXZhciBtQT17YXNzZXJ0T3B0aW9uczp2aSx2YWxpZGF0b3JzOlpBfTt2YXIgcT1tQS52YWxpZGF0b3JzLG5BPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuZGVmYXVsdHM9ZXx8e30sdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IGNlLHJlc3BvbnNlOm5ldyBjZX19YXN5bmMgcmVxdWVzdChlLHQpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdChlLHQpfWNhdGNoKHIpe2lmKHIgaW5zdGFuY2VvZiBFcnJvcil7bGV0IGk9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoaSk6aT1uZXcgRXJyb3I7bGV0IEk9aS5zdGFjaz9pLnN0YWNrLnJlcGxhY2UoL14uK1xuLywiIik6IiI7dHJ5e3Iuc3RhY2s/SSYmIVN0cmluZyhyLnN0YWNrKS5lbmRzV2l0aChJLnJlcGxhY2UoL14uK1xuLitcbi8sIiIpKSYmKHIuc3RhY2srPWAKYCtJKTpyLnN0YWNrPUl9Y2F0Y2h7fX10aHJvdyByfX1fcmVxdWVzdChlLHQpe3R5cGVvZiBlPT0ic3RyaW5nIj8odD10fHx7fSx0LnVybD1lKTp0PWV8fHt9LHQ9WSh0aGlzLmRlZmF1bHRzLHQpO2xldHt0cmFuc2l0aW9uYWw6cixwYXJhbXNTZXJpYWxpemVyOmksaGVhZGVyczpJfT10O3IhPT12b2lkIDAmJm1BLmFzc2VydE9wdGlvbnMocix7c2lsZW50SlNPTlBhcnNpbmc6cS50cmFuc2l0aW9uYWwocS5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpxLnRyYW5zaXRpb25hbChxLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6cS50cmFuc2l0aW9uYWwocS5ib29sZWFuKX0sITEpLGkhPW51bGwmJihCLmlzRnVuY3Rpb24oaSk/dC5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6aX06bUEuYXNzZXJ0T3B0aW9ucyhpLHtlbmNvZGU6cS5mdW5jdGlvbixzZXJpYWxpemU6cS5mdW5jdGlvbn0sITApKSx0LmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD90LmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6dC5hbGxvd0Fic29sdXRlVXJscz0hMCksbUEuYXNzZXJ0T3B0aW9ucyh0LHtiYXNlVXJsOnEuc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOnEuc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLHQubWV0aG9kPSh0Lm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBvPUkmJkIubWVyZ2UoSS5jb21tb24sSVt0Lm1ldGhvZF0pO0kmJkIuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxRPT57ZGVsZXRlIElbUV19KSx0LmhlYWRlcnM9VS5jb25jYXQobyxJKTtsZXQgYT1bXSxFPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihsKXt0eXBlb2YgbC5ydW5XaGVuPT0iZnVuY3Rpb24iJiZsLnJ1bldoZW4odCk9PT0hMXx8KEU9RSYmbC5zeW5jaHJvbm91cyxhLnVuc2hpZnQobC5mdWxmaWxsZWQsbC5yZWplY3RlZCkpfSk7bGV0IHM9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihsKXtzLnB1c2gobC5mdWxmaWxsZWQsbC5yZWplY3RlZCl9KTtsZXQgbixnPTAsdTtpZighRSl7bGV0IFE9W2pBLmJpbmQodGhpcyksdm9pZCAwXTtmb3IoUS51bnNoaWZ0KC4uLmEpLFEucHVzaCguLi5zKSx1PVEubGVuZ3RoLG49UHJvbWlzZS5yZXNvbHZlKHQpO2c8dTspbj1uLnRoZW4oUVtnKytdLFFbZysrXSk7cmV0dXJuIG59dT1hLmxlbmd0aDtsZXQgQz10O2ZvcihnPTA7Zzx1Oyl7bGV0IFE9YVtnKytdLGw9YVtnKytdO3RyeXtDPVEoQyl9Y2F0Y2goYyl7bC5jYWxsKHRoaXMsYyk7YnJlYWt9fXRyeXtuPWpBLmNhbGwodGhpcyxDKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKGc9MCx1PXMubGVuZ3RoO2c8dTspbj1uLnRoZW4oc1tnKytdLHNbZysrXSk7cmV0dXJuIG59Z2V0VXJpKGUpe2U9WSh0aGlzLmRlZmF1bHRzLGUpO2xldCB0PWRBKGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gbEEodCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpfX07Qi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbihlKXtuQS5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KFkocnx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KHJ8fHt9KS5kYXRhfSkpfX0pO0IuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocil7cmV0dXJuIGZ1bmN0aW9uKEksbyxhKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KFkoYXx8e30se21ldGhvZDplLGhlYWRlcnM6cj97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6SSxkYXRhOm99KSl9fW5BLnByb3RvdHlwZVtlXT10KCksbkEucHJvdG90eXBlW2UrIkZvcm0iXT10KCEwKX0pO3ZhciBoQT1uQTt2YXIgR2U9Y2xhc3MgQXtjb25zdHJ1Y3RvcihlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKEkpe3Q9SX0pO2xldCByPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4oaT0+e2lmKCFyLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBJPXIuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtJLS0gPjA7KXIuX2xpc3RlbmVyc1tJXShpKTtyLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPWk9PntsZXQgSSxvPW5ldyBQcm9taXNlKGE9PntyLnN1YnNjcmliZShhKSxJPWF9KS50aGVuKGkpO3JldHVybiBvLmNhbmNlbD1mdW5jdGlvbigpe3IudW5zdWJzY3JpYmUoSSl9LG99LGUoZnVuY3Rpb24oSSxvLGEpe3IucmVhc29ufHwoci5yZWFzb249bmV3IHgoSSxvLGEpLHQoci5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUoZSl7aWYodGhpcy5yZWFzb24pe2UodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX11bnN1YnNjcmliZShlKXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcix0PXI9PntlLmFib3J0KHIpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUodCksZS5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUodCksZS5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCBlO3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihpKXtlPWl9KSxjYW5jZWw6ZX19fSxxdD1HZTtmdW5jdGlvbiBiZShBKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEEuYXBwbHkobnVsbCx0KX19ZnVuY3Rpb24gTGUoQSl7cmV0dXJuIEIuaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIEplPXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhKZSkuZm9yRWFjaCgoW0EsZV0pPT57SmVbZV09QX0pO3ZhciBQdD1KZTtmdW5jdGlvbiBLdChBKXtsZXQgZT1uZXcgaEEoQSksdD1CQShoQS5wcm90b3R5cGUucmVxdWVzdCxlKTtyZXR1cm4gQi5leHRlbmQodCxoQS5wcm90b3R5cGUsZSx7YWxsT3duS2V5czohMH0pLEIuZXh0ZW5kKHQsZSxudWxsLHthbGxPd25LZXlzOiEwfSksdC5jcmVhdGU9ZnVuY3Rpb24oaSl7cmV0dXJuIEt0KFkoQSxpKSl9LHR9dmFyIEY9S3QoaUEpO0YuQXhpb3M9aEE7Ri5DYW5jZWxlZEVycm9yPXg7Ri5DYW5jZWxUb2tlbj1xdDtGLmlzQ2FuY2VsPWZBO0YuVkVSU0lPTj12QTtGLnRvRm9ybURhdGE9ajtGLkF4aW9zRXJyb3I9ZDtGLkNhbmNlbD1GLkNhbmNlbGVkRXJyb3I7Ri5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUpfTtGLnNwcmVhZD1iZTtGLmlzQXhpb3NFcnJvcj1MZTtGLm1lcmdlQ29uZmlnPVk7Ri5BeGlvc0hlYWRlcnM9VTtGLmZvcm1Ub0pTT049QT0+eEEoQi5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTtGLmdldEFkYXB0ZXI9V0EuZ2V0QWRhcHRlcjtGLkh0dHBTdGF0dXNDb2RlPVB0O0YuZGVmYXVsdD1GO3ZhciBnQT1GO3ZhcntBeGlvczpwYSxBeGlvc0Vycm9yOmRhLENhbmNlbGVkRXJyb3I6bWEsaXNDYW5jZWw6aGEsQ2FuY2VsVG9rZW46eWEsVkVSU0lPTjpEYSxhbGw6d2EsQ2FuY2VsOlNhLGlzQXhpb3NFcnJvcjpGYSxzcHJlYWQ6UmEsdG9Gb3JtRGF0YTprYSxBeGlvc0hlYWRlcnM6VWEsSHR0cFN0YXR1c0NvZGU6TmEsZm9ybVRvSlNPTjpHYSxnZXRBZGFwdGVyOmJhLG1lcmdlQ29uZmlnOkxhfT1nQTthc3luYyBmdW5jdGlvbiBaaShBLGUpe2xldCB0PUEscj1udWxsO2lmKHQ9PW51bGwpcj1uZXcgV29ya2VyKG5ldyBVUkwoIi4vd2ViLXdvcmtlcnMvaXRrLXdhc20tcGlwZWxpbmUud29ya2VyLmpzIixpbXBvcnQubWV0YS51cmwpLHt0eXBlOiJtb2R1bGUifSk7ZWxzZSBpZih0LnN0YXJ0c1dpdGgoImh0dHAiKSl7bGV0IGk9YXdhaXQgZ0EuZ2V0KHQse3Jlc3BvbnNlVHlwZToiYmxvYiIscGFyYW1zOmV9KSxJPVVSTC5jcmVhdGVPYmplY3RVUkwoaS5kYXRhKTtyPW5ldyBXb3JrZXIoSSx7dHlwZToibW9kdWxlIn0pfWVsc2Ugcj1uZXcgV29ya2VyKHQse3R5cGU6Im1vZHVsZSJ9KTtyZXR1cm4gcn12YXIgeUE9Wmk7ZnVuY3Rpb24gV3QoQSl7bGV0IGU9c2UoQSksdD1BO3JldHVybiB0LnRlcm1pbmF0ZWQ9ITEsdC53b3JrZXJQcm94eT1lLHQub3JpZ2luYWxUZXJtaW5hdGU9dC50ZXJtaW5hdGUsdC50ZXJtaW5hdGU9KCk9Pnt0LnRlcm1pbmF0ZWQ9ITAsdC53b3JrZXJQcm94eVthZV0oKSx0Lm9yaWdpbmFsVGVybWluYXRlKCl9LHt3b3JrZXJQcm94eTplLHdvcmtlcjp0fX1hc3luYyBmdW5jdGlvbiBWaShBLGUsdCl7bGV0IHI7aWYoQSE9bnVsbCl7bGV0IEk9QTtyZXR1cm4gSS53b3JrZXJQcm94eSE9PXZvaWQgMD8ocj1JLndvcmtlclByb3h5LHt3b3JrZXJQcm94eTpyLHdvcmtlcjpJfSk6V3QoQSl9bGV0IGk9YXdhaXQgeUEoZSx0KTtyZXR1cm4gV3QoaSl9dmFyIGp0PVZpO3ZhciBEQSxQLEhlLE1lPXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7SGU9bmV3IFVpbnQ4QXJyYXkoUC5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LFZBPWNsYXNze2luaXQoKXtyZXR1cm4gREF8fCh0eXBlb2YgZmV0Y2g8InUiP0RBPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIrdnQpLnRoZW4oZT0+ZS5hcnJheUJ1ZmZlcigpKS50aGVuKGU9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGUsTWUpKS50aGVuKHRoaXMuX2luaXQpOkRBPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKHZ0LCJiYXNlNjQiKSxNZSkudGhlbih0aGlzLl9pbml0KSxEQSl9X2luaXQoZSl7UD1lLmluc3RhbmNlLE1lLmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZShlLHQ9MCl7aWYoIVApdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IHI9ZS5ieXRlTGVuZ3RoLGk9UC5leHBvcnRzLm1hbGxvYyhyKTtIZS5zZXQoZSxpKSx0PXR8fE51bWJlcihQLmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShpLHIpKTtsZXQgST1QLmV4cG9ydHMubWFsbG9jKHQpLG89UC5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhJLHQsaSxyKSxhPUhlLnNsaWNlKEksSStvKTtyZXR1cm4gUC5leHBvcnRzLmZyZWUoaSksUC5leHBvcnRzLmZyZWUoSSksYX19LHZ0PSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIFp0PW5ldyBWQSxWdD0hMTthc3luYyBmdW5jdGlvbiBYaShBLGUsdCl7bGV0IHI9InVua25vd24iO3R5cGVvZiBBIT0ic3RyaW5nIj9yPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9yPUE6cj10eXBlb2YgZTwidSI/YCR7ZX0vJHtBfWA6QSxyLmVuZHNXaXRoKCIuanMiKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC0zKSksci5lbmRzV2l0aCgiLndhc20iKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC01KSksci5lbmRzV2l0aCgiLndhc20uenN0IikmJihyPXIuc3Vic3RyaW5nKDAsci5sZW5ndGgtOSkpO2xldCBpPWAke3J9Lndhc21gLEk9YXdhaXQgZ0EuZ2V0KGAke2l9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczp0fSk7VnR8fChhd2FpdCBadC5pbml0KCksVnQ9ITApO2xldCBhPVp0LmRlY29kZShuZXcgVWludDhBcnJheShJLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtyfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5OmF9KX12YXIgWHQ9WGk7dmFyIHp0PWFzeW5jKCk9PldlYkFzc2VtYmx5LnZhbGlkYXRlKG5ldyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMCwxLDUsMSw5NiwwLDEsMTIzLDMsMiwxLDAsMTAsMTAsMSw4LDAsNjUsMCwyNTMsMTUsMjUzLDk4LDExXSkpO3ZhciBBcj10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixfdD1uZXcgVGV4dEVuY29kZXIsJHQ9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIHppKEEsZSl7bGV0IHQ9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0scj1BLmZzX29wZW4oZSx0LmZsYWdzKSxJPUEuZnNfc3RhdChlKS5zaXplLG89bnVsbDtBcj9vPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihJKTpvPW5ldyBBcnJheUJ1ZmZlcihJKTtsZXQgYT1uZXcgVWludDhBcnJheShvKTtyZXR1cm4gQS5mc19yZWFkKHIsYSwwLEksMCksQS5mc19jbG9zZShyKSxhfWZ1bmN0aW9uIGVyKEEsZSx0KXtsZXQgcj1udWxsO0FyP3I9bmV3IFNoYXJlZEFycmF5QnVmZmVyKHQpOnI9bmV3IEFycmF5QnVmZmVyKHQpO2xldCBpPW5ldyBVaW50OEFycmF5KHIpLEk9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGUsdCk7cmV0dXJuIGkuc2V0KEkpLGl9ZnVuY3Rpb24gUihBLGUsdCxyKXtsZXQgaT0wO3JldHVybiBlIT09bnVsbCYmKGk9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxyLGUuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpLGkpKSxpfWZ1bmN0aW9uIHYoQSxlLHQpe2xldCByPUpTT04uc3RyaW5naWZ5KGUpLGk9QS5sZW5ndGhCeXRlc1VURjgocikrMSxJPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxpXSk7QS5zdHJpbmdUb1VURjgocixJLGkpfWZ1bmN0aW9uIEcoQSxlLHQscil7bGV0IGk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksST1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKSxvPWVyKEEsaSxJKTtyZXR1cm4gTyhyLG8uYnVmZmVyKX1mdW5jdGlvbiB3QShBLGUpe2xldCB0PUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsZV0pLHI9QS5VVEY4VG9TdHJpbmcodCk7cmV0dXJuIEpTT04ucGFyc2Uocil9ZnVuY3Rpb24gX2koQSxlLHQscil7ciE9bnVsbCYmci5sZW5ndGg+MCYmci5mb3JFYWNoKGZ1bmN0aW9uKHMsbil7c3dpdGNoKHMudHlwZSl7Y2FzZSBmLlRleHRTdHJlYW06e2xldCBnPV90LmVuY29kZShzLmRhdGEuZGF0YSksdT1SKEEsZyxuLDApLEM9e3NpemU6Zy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gfTt2KEEsQyxuKTticmVha31jYXNlIGYuSnNvbkNvbXBhdGlibGU6e2xldCBnPV90LmVuY29kZShKU09OLnN0cmluZ2lmeShzLmRhdGEpKSx1PVIoQSxnLG4sMCksQz17c2l6ZTpnLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWB9O3YoQSxDLG4pO2JyZWFrfWNhc2UgZi5CaW5hcnlTdHJlYW06e2xldCBnPXMuZGF0YS5kYXRhLHU9UihBLGcsbiwwKSxDPXtzaXplOmcuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YH07dihBLEMsbik7YnJlYWt9Y2FzZSBmLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShzLmRhdGEucGF0aCxzLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBmLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKHMuZGF0YS5wYXRoLHMuZGF0YS5kYXRhKTticmVha31jYXNlIGYuSW1hZ2U6e2xldCBnPXMuZGF0YSx1PVIoQSxnLmRhdGEsbiwwKSxDPVIoQSxnLmRpcmVjdGlvbixuLDEpLFE9dHlwZW9mIGcubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oZy5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGw9e2ltYWdlVHlwZTpnLmltYWdlVHlwZSxuYW1lOmcubmFtZSxvcmlnaW46Zy5vcmlnaW4sc3BhY2luZzpnLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gLHNpemU6Zy5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWAsbWV0YWRhdGE6UX07dihBLGwsbik7YnJlYWt9Y2FzZSBmLk1lc2g6e2xldCBnPXMuZGF0YSx1PVIoQSxnLnBvaW50cyxuLDApLEM9UihBLGcuY2VsbHMsbiwxKSxRPVIoQSxnLnBvaW50RGF0YSxuLDIpLGw9UihBLGcuY2VsbERhdGEsbiwzKSxjPXttZXNoVHlwZTpnLm1lc2hUeXBlLG5hbWU6Zy5uYW1lLG51bWJlck9mUG9pbnRzOmcubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gLG51bWJlck9mQ2VsbHM6Zy5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gLGNlbGxCdWZmZXJTaXplOmcuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczpnLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczpnLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07dihBLGMsbik7YnJlYWt9Y2FzZSBmLlBvaW50U2V0OntsZXQgZz1zLmRhdGEsdT1SKEEsZy5wb2ludHMsbiwwKSxDPVIoQSxnLnBvaW50RGF0YSxuLDEpLFE9e3BvaW50U2V0VHlwZTpnLnBvaW50U2V0VHlwZSxuYW1lOmcubmFtZSxudW1iZXJPZlBvaW50czpnLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmcubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtDfWB9O3YoQSxRLG4pO2JyZWFrfWNhc2UgZi5UcmFuc2Zvcm1MaXN0OntsZXQgZz1zLmRhdGEsdT1bXSxDPTA7Zy5mb3JFYWNoKFE9PntsZXQgbD0iIixjPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihsPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UihBLFEuZml4ZWRQYXJhbWV0ZXJzLG4sQyl9YCxDKz0xLGM9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtSKEEsUS5wYXJhbWV0ZXJzLG4sQyl9YCxDKz0xKTtsZXQgcD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpjLGZpeGVkUGFyYW1ldGVyczpsfTt1LnB1c2gocCl9KSx2KEEsdSxuKTticmVha31jYXNlIGYuUG9seURhdGE6e2xldCBnPXMuZGF0YSx1PVIoQSxnLnBvaW50cyxuLDApLEM9UihBLGcudmVydGljZXMsbiwxKSxRPVIoQSxnLmxpbmVzLG4sMiksbD1SKEEsZy5wb2x5Z29ucyxuLDMpLGM9UihBLGcudHJpYW5nbGVTdHJpcHMsbiw0KSxwPVIoQSxnLnBvaW50RGF0YSxuLDUpLG09UihBLGcucG9pbnREYXRhLG4sNiksaD17cG9seURhdGFUeXBlOmcucG9seURhdGFUeXBlLG5hbWU6Zy5uYW1lLG51bWJlck9mUG9pbnRzOmcubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gLHZlcnRpY2VzQnVmZmVyU2l6ZTpnLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0N9YCxsaW5lc0J1ZmZlclNpemU6Zy5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOmcucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTpnLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmcubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtwfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOmcubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bX1gfTt2KEEsaCxuKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgaT1BLnN0YWNrU2F2ZSgpLEk9MDt0cnl7ST1BLmNhbGxNYWluKGUuc2xpY2UoKSl9Y2F0Y2gocyl7dGhyb3cgdHlwZW9mIHM9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UocykpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksc31maW5hbGx5e0Euc3RhY2tSZXN0b3JlKGkpfWxldCBvPUEuZ2V0TW9kdWxlU3Rkb3V0KCksYT1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIHQhPW51bGwmJnQubGVuZ3RoPjAmJkk9PT0wJiZ0LmZvckVhY2goZnVuY3Rpb24ocyxuKXtsZXQgZz1udWxsO3N3aXRjaChzLnR5cGUpe2Nhc2UgZi5UZXh0U3RyZWFtOntsZXQgQz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLGw9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEMsUSk7Zz17ZGF0YTokdC5kZWNvZGUobCl9O2JyZWFrfWNhc2UgZi5Kc29uQ29tcGF0aWJsZTp7bGV0IEM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxsPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixDLFEpO2c9SlNPTi5wYXJzZSgkdC5kZWNvZGUobCkpO2JyZWFrfWNhc2UgZi5CaW5hcnlTdHJlYW06e2xldCBDPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSk7Zz17ZGF0YTplcihBLEMsUSl9O2JyZWFrfWNhc2UgZi5UZXh0RmlsZTp7Zz17cGF0aDpzLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUocy5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGYuQmluYXJ5RmlsZTp7Zz17cGF0aDpzLmRhdGEucGF0aCxkYXRhOnppKEEscy5kYXRhLnBhdGgpfTticmVha31jYXNlIGYuSW1hZ2U6e2xldCBDPXdBKEEsbik7Qy5kYXRhPUcoQSxuLDAsQy5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksQy5kaXJlY3Rpb249RyhBLG4sMSxYLkZsb2F0NjQpLEMubWV0YWRhdGE9bmV3IE1hcChDLm1ldGFkYXRhKSxnPUM7YnJlYWt9Y2FzZSBmLk1lc2g6e2xldCBDPXdBKEEsbik7Qy5udW1iZXJPZlBvaW50cz4wP0MucG9pbnRzPUcoQSxuLDAsQy5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkMucG9pbnRzPU8oQy5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDLm51bWJlck9mQ2VsbHM+MD9DLmNlbGxzPUcoQSxuLDEsQy5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6Qy5jZWxscz1PKEMubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDLm51bWJlck9mUG9pbnRQaXhlbHM+MD9DLnBvaW50RGF0YT1HKEEsbiwyLEMubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkMucG9pbnREYXRhPU8oQy5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qy5jZWxsRGF0YT1HKEEsbiwzLEMubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5jZWxsRGF0YT1PKEMubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGc9QzticmVha31jYXNlIGYuUG9pbnRTZXQ6e2xldCBDPXdBKEEsbik7Qy5udW1iZXJPZlBvaW50cz4wP0MucG9pbnRzPUcoQSxuLDAsQy5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpDLnBvaW50cz1PKEMucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZQb2ludFBpeGVscz4wP0MucG9pbnREYXRhPUcoQSxuLDEsQy5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkMucG9pbnREYXRhPU8oQy5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxnPUM7YnJlYWt9Y2FzZSBmLlRyYW5zZm9ybUxpc3Q6e2xldCBDPXdBKEEsbiksUT0wO0MuZm9yRWFjaCgobCxjKT0+e2wudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihsLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihDW2NdLmZpeGVkUGFyYW1ldGVycz1HKEEsbixRLFguRmxvYXQ2NCkpLFErPTEsbC5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKENbY10ucGFyYW1ldGVycz1HKEEsbixRLGwudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxnPUM7YnJlYWt9Y2FzZSBmLlBvbHlEYXRhOntsZXQgQz13QShBLG4pO0MubnVtYmVyT2ZQb2ludHM+MD9DLnBvaW50cz1HKEEsbiwwLFguRmxvYXQzMik6Qy5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxDLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP0MudmVydGljZXM9RyhBLG4sMSxiLlVJbnQzMik6Qy52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksQy5saW5lc0J1ZmZlclNpemU+MD9DLmxpbmVzPUcoQSxuLDIsYi5VSW50MzIpOkMubGluZXM9bmV3IFVpbnQzMkFycmF5LEMucG9seWdvbnNCdWZmZXJTaXplPjA/Qy5wb2x5Z29ucz1HKEEsbiwzLGIuVUludDMyKTpDLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxDLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP0MudHJpYW5nbGVTdHJpcHM9RyhBLG4sNCxiLlVJbnQzMik6Qy50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksQy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qy5wb2ludERhdGE9RyhBLG4sNSxDLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5wb2ludERhdGE9TyhDLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qy5jZWxsRGF0YT1HKEEsbiw2LEMucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkMuY2VsbERhdGE9TyhDLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksZz1DO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IHU9e3R5cGU6cy50eXBlLGRhdGE6Z307RS5wdXNoKHUpfSkse3JldHVyblZhbHVlOkksc3Rkb3V0Om8sc3RkZXJyOmEsb3V0cHV0czpFfX12YXIgdHI9X2k7dmFyICRpPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBBSShBLGUpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IHQ9W107Zm9yKGxldCByPTA7cjxBLmxlbmd0aDtyKyspe2xldCBpPWVJKEFbcl0sZSk7aSE9PW51bGwmJnQucHVzaChpKX1yZXR1cm4gdH1mdW5jdGlvbiBlSShBLGUpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IHQ9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/dD1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJih0PUEpLCRpJiZ0IGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDplP3Q6dC5zbGljZSgwKX12YXIgcnI9QUk7ZnVuY3Rpb24gdEkoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIGlyPXRJO2Z1bmN0aW9uIHJJKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBJcj1ySTtmdW5jdGlvbiBpSShBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgb3I9aUk7dmFyIElJO2Z1bmN0aW9uIFhBKCl7cmV0dXJuIElJfXZhciBvSTtmdW5jdGlvbiBucigpe3JldHVybiBvSX12YXIgbkk7ZnVuY3Rpb24gekEoKXtyZXR1cm4gbkl9dmFyIFllPW5ldyBNYXA7ZnVuY3Rpb24gZ0koKXtsZXQgQT16QSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW51bGwpLEF9ZnVuY3Rpb24gZ3IoKXtsZXQgQT1YQSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW5ldyBVUkwoIi9waXBlbGluZXMiLGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbikuaHJlZiksQX1mdW5jdGlvbiBfQSgpe2xldCBBPW5yKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9e30pLEF9YXN5bmMgZnVuY3Rpb24gYUkoQSxlLHQpe2xldCByPUEsaT1BO2lmKHR5cGVvZiBBIT0ic3RyaW5nIiYmKHI9bmV3IFVSTChBLmhyZWYpLGk9ci5ocmVmKSxZZS5oYXMoaSkpcmV0dXJuIFllLmdldChpKTt7bGV0IEk9YXdhaXQgWHQoQSxlPy50b1N0cmluZygpPz9ncigpLHQ/P19BKCkpO3JldHVybiBZZS5zZXQoaSxJKSxJfX1hc3luYyBmdW5jdGlvbiBzSShBLGUsdCxyLGkpe2lmKCFhd2FpdCB6dCgpKXtsZXQgYz0iV2ViQXNzZW1ibHkgU0lNRCBzdXBwb3J0IGlzIHJlcXVpcmVkIC0tIHBsZWFzZSB1cGRhdGUgeW91ciBicm93c2VyLiI7dGhyb3cgYWxlcnQoYyksbmV3IEVycm9yKGMpfWxldCBJPWk/LndlYldvcmtlcj8/bnVsbDtpZihJPT09ITEpe2xldCBjPWF3YWl0IGFJKEEudG9TdHJpbmcoKSxpPy5waXBlbGluZUJhc2VVcmwsaT8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7cmV0dXJuIHRyKGMsZSx0LHIpfWxldCBvPUksYT1pPy5waXBlbGluZVdvcmtlclVybD8/Z0koKSxFPXR5cGVvZiBhIT0ic3RyaW5nIiYmdHlwZW9mIGE/LmhyZWY8InUiP2EuaHJlZjphLHt3b3JrZXJQcm94eTpzLHdvcmtlcjpufT1hd2FpdCBqdChvLEUsaT8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7bz1uO2xldCBnPVtdO3IhPW51bGwmJnIubGVuZ3RoPjAmJnIuZm9yRWFjaChmdW5jdGlvbihjKXtpZihjLnR5cGU9PT1mLkJpbmFyeVN0cmVhbSl7bGV0IHA9Yy5kYXRhLmRhdGE7Zy5wdXNoKHApfWVsc2UgaWYoYy50eXBlPT09Zi5CaW5hcnlGaWxlKXtsZXQgcD1jLmRhdGEuZGF0YTtnLnB1c2gocCl9ZWxzZSBpZihjLnR5cGU9PT1mLkltYWdlKXtsZXQgcD1jLmRhdGE7cC5kYXRhIT09bnVsbCYmZy5wdXNoKC4uLmlyKHApKX1lbHNlIGlmKGMudHlwZT09PWYuTWVzaCl7bGV0IHA9Yy5kYXRhO2cucHVzaCguLi5JcihwKSl9ZWxzZSBpZihjLnR5cGU9PT1mLlBvbHlEYXRhKXtsZXQgcD1jLmRhdGE7Zy5wdXNoKC4uLm9yKHApKX19KTtsZXQgdT1pPy5waXBlbGluZUJhc2VVcmw/P2dyKCksQz10eXBlb2YgdSE9InN0cmluZyImJnR5cGVvZiB1Py5ocmVmPCJ1Ij91LmhyZWY6dSxRPXIhPW51bGw/QmUocixycihnLGk/Lm5vQ29weSkpOm51bGwsbD1hd2FpdCBzLnJ1blBpcGVsaW5lKEEudG9TdHJpbmcoKSxDLGUsdCxRLGk/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P19BKCkpO3JldHVybntyZXR1cm5WYWx1ZTpsLnJldHVyblZhbHVlLHN0ZG91dDpsLnN0ZG91dCxzdGRlcnI6bC5zdGRlcnIsb3V0cHV0czpsLm91dHB1dHMsd2ViV29ya2VyOm99fXZhciBEPXNJO3ZhciBCST1udWxsO2Z1bmN0aW9uIGFyKCl7cmV0dXJuIEJJfXZhciBUZSxDST1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AaXRrLXdhc20vZGljb21AJHtlZX0vZGlzdC9waXBlbGluZXNgO2Z1bmN0aW9uIFNzKEEpe1RlPUF9ZnVuY3Rpb24gdygpe2lmKHR5cGVvZiBUZTwidSIpcmV0dXJuIFRlO2xldCBBPVhBKCk7cmV0dXJuIHR5cGVvZiBBPCJ1Ij9BOkNJfXZhciBPZSxRST1udWxsO2Z1bmN0aW9uIHNyKEEpe09lPUF9ZnVuY3Rpb24geSgpe2lmKHR5cGVvZiBPZTwidSIpcmV0dXJuIE9lO2xldCBBPXpBKCk7cmV0dXJuIHR5cGVvZiBBPCJ1Ij9BOlFJfXZhciBhQT1udWxsO2FzeW5jIGZ1bmN0aW9uIEJyKCl7bGV0IEE9eSgpLGU9dHlwZW9mIEEhPSJzdHJpbmciJiZ0eXBlb2YgQT8uaHJlZjwidSI/QS5ocmVmOkE7YUE9YXdhaXQgeUEoZSl9ZnVuY3Rpb24gYnMoQSl7YUE9QX1hc3luYyBmdW5jdGlvbiBrKCl7aWYoYUEhPT1udWxsKXJldHVybiBhQS50ZXJtaW5hdGVkJiZhd2FpdCBCcigpLGFBO2xldCBBPWFyKCk7cmV0dXJuIEEhPT1udWxsP0E6KGF3YWl0IEJyKCksYUEpfWFzeW5jIGZ1bmN0aW9uIEVJKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Zi5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Zi5JbWFnZX1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IGg9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoaCl9fWxldCBJPWU7aWYoZSBpbnN0YW5jZW9mIEZpbGUpe2xldCBoPWF3YWl0IGUuYXJyYXlCdWZmZXIoKTtJPXtwYXRoOmUubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGgpfX1sZXQgbz1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6aX0se3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6SX1dLGE9W10sRT1pLnBhdGg7YS5wdXNoKEUpO2xldCBzPUkucGF0aDthLnB1c2gocyksYS5wdXNoKCIwIiksYS5wdXNoKCIxIiksYS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuY29sb3JPdXRwdXQmJnQuY29sb3JPdXRwdXQmJmEucHVzaCgiLS1jb2xvci1vdXRwdXQiKSx0LmNvbmZpZ0ZpbGUmJmEucHVzaCgiLS1jb25maWctZmlsZSIsdC5jb25maWdGaWxlLnRvU3RyaW5nKCkpLHQuZnJhbWUmJmEucHVzaCgiLS1mcmFtZSIsdC5mcmFtZS50b1N0cmluZygpKSx0Lm5vUHJlc2VudGF0aW9uU3RhdGVPdXRwdXQmJnQubm9QcmVzZW50YXRpb25TdGF0ZU91dHB1dCYmYS5wdXNoKCItLW5vLXByZXNlbnRhdGlvbi1zdGF0ZS1vdXRwdXQiKSx0Lm5vQml0bWFwT3V0cHV0JiZ0Lm5vQml0bWFwT3V0cHV0JiZhLnB1c2goIi0tbm8tYml0bWFwLW91dHB1dCIpO2xldCB1PSJhcHBseS1wcmVzZW50YXRpb24tc3RhdGUtdG8taW1hZ2UiLEM9dD8ud2ViV29ya2VyO0M9PT12b2lkIDAmJihDPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpRLHJldHVyblZhbHVlOmwsc3RkZXJyOmMsb3V0cHV0czpwfT1hd2FpdCBEKHUsYSxyLG8se3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpDLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmYyE9PSIiKXRocm93IG5ldyBFcnJvcihjKTtyZXR1cm57d2ViV29ya2VyOlEscHJlc2VudGF0aW9uU3RhdGVPdXRTdHJlYW06cFswXT8uZGF0YSxvdXRwdXRJbWFnZTpwWzFdPy5kYXRhfX12YXIgbEk9RUk7YXN5bmMgZnVuY3Rpb24gY0koQSxlPXt9KXtsZXQgdD1be3R5cGU6Zi5CaW5hcnlTdHJlYW19XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBsPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGwpfX1sZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6cn1dLEk9W10sbz1yLnBhdGg7SS5wdXNoKG8pLEkucHVzaCgiMCIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxlLnJlYWRGaWxlT25seSYmZS5yZWFkRmlsZU9ubHkmJkkucHVzaCgiLS1yZWFkLWZpbGUtb25seSIpLGUucmVhZERhdGFzZXQmJmUucmVhZERhdGFzZXQmJkkucHVzaCgiLS1yZWFkLWRhdGFzZXQiKSxlLnJlYWRYZmVyQXV0byYmZS5yZWFkWGZlckF1dG8mJkkucHVzaCgiLS1yZWFkLXhmZXItYXV0byIpLGUucmVhZFhmZXJEZXRlY3QmJmUucmVhZFhmZXJEZXRlY3QmJkkucHVzaCgiLS1yZWFkLXhmZXItZGV0ZWN0IiksZS5yZWFkWGZlckxpdHRsZSYmZS5yZWFkWGZlckxpdHRsZSYmSS5wdXNoKCItLXJlYWQteGZlci1saXR0bGUiKSxlLnJlYWRYZmVyQmlnJiZlLnJlYWRYZmVyQmlnJiZJLnB1c2goIi0tcmVhZC14ZmVyLWJpZyIpLGUucmVhZFhmZXJJbXBsaWNpdCYmZS5yZWFkWGZlckltcGxpY2l0JiZJLnB1c2goIi0tcmVhZC14ZmVyLWltcGxpY2l0IiksZS5hY2NlcHRPZGRMZW5ndGgmJmUuYWNjZXB0T2RkTGVuZ3RoJiZJLnB1c2goIi0tYWNjZXB0LW9kZC1sZW5ndGgiKSxlLmFzc3VtZUV2ZW5MZW5ndGgmJmUuYXNzdW1lRXZlbkxlbmd0aCYmSS5wdXNoKCItLWFzc3VtZS1ldmVuLWxlbmd0aCIpLGUuZW5hYmxlQ3AyNDYmJmUuZW5hYmxlQ3AyNDYmJkkucHVzaCgiLS1lbmFibGUtY3AyNDYiKSxlLmRpc2FibGVDcDI0NiYmZS5kaXNhYmxlQ3AyNDYmJkkucHVzaCgiLS1kaXNhYmxlLWNwMjQ2IiksZS5yZXRhaW5VbiYmZS5yZXRhaW5VbiYmSS5wdXNoKCItLXJldGFpbi11biIpLGUuY29udmVydFVuJiZlLmNvbnZlcnRVbiYmSS5wdXNoKCItLWNvbnZlcnQtdW4iKSxlLmVuYWJsZUNvcnJlY3Rpb24mJmUuZW5hYmxlQ29ycmVjdGlvbiYmSS5wdXNoKCItLWVuYWJsZS1jb3JyZWN0aW9uIiksZS5kaXNhYmxlQ29ycmVjdGlvbiYmZS5kaXNhYmxlQ29ycmVjdGlvbiYmSS5wdXNoKCItLWRpc2FibGUtY29ycmVjdGlvbiIpO2xldCBFPSJyZWFkLWRpY29tLWVuY2Fwc3VsYXRlZC1wZGYiLHM9ZT8ud2ViV29ya2VyO3M9PT12b2lkIDAmJihzPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpuLHJldHVyblZhbHVlOmcsc3RkZXJyOnUsb3V0cHV0czpDfT1hd2FpdCBEKEUsSSx0LGkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpzLG5vQ29weTplPy5ub0NvcHl9KTtpZihnIT09MCYmdSE9PSIiKXRocm93IG5ldyBFcnJvcih1KTtyZXR1cm57d2ViV29ya2VyOm4scGRmQmluYXJ5T3V0cHV0OihDWzBdPy5kYXRhKS5kYXRhfX12YXIgdUk9Y0k7YXN5bmMgZnVuY3Rpb24gZkkoQSxlPXt9KXtsZXQgdD1be3R5cGU6Zi5UZXh0U3RyZWFtfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbD1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShsKX19bGV0IGk9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOnJ9XSxJPVtdLG89ci5wYXRoO2lmKEkucHVzaChvKSxJLnB1c2goIjAiKSxJLnB1c2goIi0tbWVtb3J5LWlvIiksZS5yZWFkRmlsZU9ubHkmJmUucmVhZEZpbGVPbmx5JiZJLnB1c2goIi0tcmVhZC1maWxlLW9ubHkiKSxlLnJlYWREYXRhc2V0JiZlLnJlYWREYXRhc2V0JiZJLnB1c2goIi0tcmVhZC1kYXRhc2V0IiksZS5yZWFkWGZlckF1dG8mJmUucmVhZFhmZXJBdXRvJiZJLnB1c2goIi0tcmVhZC14ZmVyLWF1dG8iKSxlLnJlYWRYZmVyRGV0ZWN0JiZlLnJlYWRYZmVyRGV0ZWN0JiZJLnB1c2goIi0tcmVhZC14ZmVyLWRldGVjdCIpLGUucmVhZFhmZXJMaXR0bGUmJmUucmVhZFhmZXJMaXR0bGUmJkkucHVzaCgiLS1yZWFkLXhmZXItbGl0dGxlIiksZS5yZWFkWGZlckJpZyYmZS5yZWFkWGZlckJpZyYmSS5wdXNoKCItLXJlYWQteGZlci1iaWciKSxlLnJlYWRYZmVySW1wbGljaXQmJmUucmVhZFhmZXJJbXBsaWNpdCYmSS5wdXNoKCItLXJlYWQteGZlci1pbXBsaWNpdCIpLGUucHJvY2Vzc2luZ0RldGFpbHMmJmUucHJvY2Vzc2luZ0RldGFpbHMmJkkucHVzaCgiLS1wcm9jZXNzaW5nLWRldGFpbHMiKSxlLnVua25vd25SZWxhdGlvbnNoaXAmJmUudW5rbm93blJlbGF0aW9uc2hpcCYmSS5wdXNoKCItLXVua25vd24tcmVsYXRpb25zaGlwIiksZS5pbnZhbGlkSXRlbVZhbHVlJiZlLmludmFsaWRJdGVtVmFsdWUmJkkucHVzaCgiLS1pbnZhbGlkLWl0ZW0tdmFsdWUiKSxlLmlnbm9yZUNvbnN0cmFpbnRzJiZlLmlnbm9yZUNvbnN0cmFpbnRzJiZJLnB1c2goIi0taWdub3JlLWNvbnN0cmFpbnRzIiksZS5pZ25vcmVJdGVtRXJyb3JzJiZlLmlnbm9yZUl0ZW1FcnJvcnMmJkkucHVzaCgiLS1pZ25vcmUtaXRlbS1lcnJvcnMiKSxlLnNraXBJbnZhbGlkSXRlbXMmJmUuc2tpcEludmFsaWRJdGVtcyYmSS5wdXNoKCItLXNraXAtaW52YWxpZC1pdGVtcyIpLGUuZGlzYWJsZVZyQ2hlY2tlciYmZS5kaXNhYmxlVnJDaGVja2VyJiZJLnB1c2goIi0tZGlzYWJsZS12ci1jaGVja2VyIiksZS5jaGFyc2V0UmVxdWlyZSYmZS5jaGFyc2V0UmVxdWlyZSYmSS5wdXNoKCItLWNoYXJzZXQtcmVxdWlyZSIpLGUuY2hhcnNldEFzc3VtZSYmSS5wdXNoKCItLWNoYXJzZXQtYXNzdW1lIixlLmNoYXJzZXRBc3N1bWUudG9TdHJpbmcoKSksZS5jaGFyc2V0Q2hlY2tBbGwmJmUuY2hhcnNldENoZWNrQWxsJiZJLnB1c2goIi0tY2hhcnNldC1jaGVjay1hbGwiKSxlLmNvbnZlcnRUb1V0ZjgmJmUuY29udmVydFRvVXRmOCYmSS5wdXNoKCItLWNvbnZlcnQtdG8tdXRmOCIpLGUudXJsUHJlZml4JiZJLnB1c2goIi0tdXJsLXByZWZpeCIsZS51cmxQcmVmaXgudG9TdHJpbmcoKSksZS5odG1sMzImJmUuaHRtbDMyJiZJLnB1c2goIi0taHRtbC0zMiIpLGUuaHRtbDQwJiZlLmh0bWw0MCYmSS5wdXNoKCItLWh0bWwtNDAiKSxlLnhodG1sMTEmJmUueGh0bWwxMSYmSS5wdXNoKCItLXhodG1sLTExIiksZS5hZGREb2N1bWVudFR5cGUmJmUuYWRkRG9jdW1lbnRUeXBlJiZJLnB1c2goIi0tYWRkLWRvY3VtZW50LXR5cGUiKSxlLmNzc1JlZmVyZW5jZSl7bGV0IGw9aS5sZW5ndGgudG9TdHJpbmcoKTtpLnB1c2goe3R5cGU6Zi5UZXh0U3RyZWFtLGRhdGE6e2RhdGE6ZS5jc3NSZWZlcmVuY2V9fSksSS5wdXNoKCItLWNzcy1yZWZlcmVuY2UiLGwpfWlmKGUuY3NzRmlsZSl7bGV0IGw9ZS5jc3NGaWxlLGM9bDtpZihsIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgbC5hcnJheUJ1ZmZlcigpO2M9e3BhdGg6bC5uYW1lLGRhdGE6bmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG0pfX1JLnB1c2goIi0tY3NzLWZpbGUiKSxpLnB1c2goe3R5cGU6Zi5UZXh0RmlsZSxkYXRhOmN9KTtsZXQgcD1sIGluc3RhbmNlb2YgRmlsZT9sLm5hbWU6bC5wYXRoO0kucHVzaChwKX1lLmV4cGFuZElubGluZSYmZS5leHBhbmRJbmxpbmUmJkkucHVzaCgiLS1leHBhbmQtaW5saW5lIiksZS5uZXZlckV4cGFuZElubGluZSYmZS5uZXZlckV4cGFuZElubGluZSYmSS5wdXNoKCItLW5ldmVyLWV4cGFuZC1pbmxpbmUiKSxlLmFsd2F5c0V4cGFuZElubGluZSYmZS5hbHdheXNFeHBhbmRJbmxpbmUmJkkucHVzaCgiLS1hbHdheXMtZXhwYW5kLWlubGluZSIpLGUucmVuZGVyRnVsbERhdGEmJmUucmVuZGVyRnVsbERhdGEmJkkucHVzaCgiLS1yZW5kZXItZnVsbC1kYXRhIiksZS5zZWN0aW9uVGl0bGVJbmxpbmUmJmUuc2VjdGlvblRpdGxlSW5saW5lJiZJLnB1c2goIi0tc2VjdGlvbi10aXRsZS1pbmxpbmUiKSxlLmRvY3VtZW50VHlwZVRpdGxlJiZlLmRvY3VtZW50VHlwZVRpdGxlJiZJLnB1c2goIi0tZG9jdW1lbnQtdHlwZS10aXRsZSIpLGUucGF0aWVudEluZm9UaXRsZSYmZS5wYXRpZW50SW5mb1RpdGxlJiZJLnB1c2goIi0tcGF0aWVudC1pbmZvLXRpdGxlIiksZS5ub0RvY3VtZW50SGVhZGVyJiZlLm5vRG9jdW1lbnRIZWFkZXImJkkucHVzaCgiLS1uby1kb2N1bWVudC1oZWFkZXIiKSxlLnJlbmRlcklubGluZUNvZGVzJiZlLnJlbmRlcklubGluZUNvZGVzJiZJLnB1c2goIi0tcmVuZGVyLWlubGluZS1jb2RlcyIpLGUuY29uY2VwdE5hbWVDb2RlcyYmZS5jb25jZXB0TmFtZUNvZGVzJiZJLnB1c2goIi0tY29uY2VwdC1uYW1lLWNvZGVzIiksZS5udW1lcmljVW5pdENvZGVzJiZlLm51bWVyaWNVbml0Q29kZXMmJkkucHVzaCgiLS1udW1lcmljLXVuaXQtY29kZXMiKSxlLmNvZGVWYWx1ZVVuaXQmJmUuY29kZVZhbHVlVW5pdCYmSS5wdXNoKCItLWNvZGUtdmFsdWUtdW5pdCIpLGUuY29kZU1lYW5pbmdVbml0JiZlLmNvZGVNZWFuaW5nVW5pdCYmSS5wdXNoKCItLWNvZGUtbWVhbmluZy11bml0IiksZS5yZW5kZXJBbGxDb2RlcyYmZS5yZW5kZXJBbGxDb2RlcyYmSS5wdXNoKCItLXJlbmRlci1hbGwtY29kZXMiKSxlLmNvZGVEZXRhaWxzVG9vbHRpcCYmZS5jb2RlRGV0YWlsc1Rvb2x0aXAmJkkucHVzaCgiLS1jb2RlLWRldGFpbHMtdG9vbHRpcCIpO2xldCBFPSJzdHJ1Y3R1cmVkLXJlcG9ydC10by1odG1sIixzPWU/LndlYldvcmtlcjtzPT09dm9pZCAwJiYocz1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpnLHN0ZGVycjp1LG91dHB1dHM6Q309YXdhaXQgRChFLEksdCxpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6cyxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoZyE9PTAmJnUhPT0iIil0aHJvdyBuZXcgRXJyb3IodSk7cmV0dXJue3dlYldvcmtlcjpuLG91dHB1dFRleHQ6KENbMF0/LmRhdGEpLmRhdGF9fXZhciBwST1mSTthc3luYyBmdW5jdGlvbiBkSShBLGU9e30pe2xldCB0PVt7dHlwZTpmLlRleHRTdHJlYW19XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBsPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGwpfX1sZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6cn1dLEk9W10sbz1yLnBhdGg7SS5wdXNoKG8pLEkucHVzaCgiMCIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxlLnVua25vd25SZWxhdGlvbnNoaXAmJmUudW5rbm93blJlbGF0aW9uc2hpcCYmSS5wdXNoKCItLXVua25vd24tcmVsYXRpb25zaGlwIiksZS5pbnZhbGlkSXRlbVZhbHVlJiZlLmludmFsaWRJdGVtVmFsdWUmJkkucHVzaCgiLS1pbnZhbGlkLWl0ZW0tdmFsdWUiKSxlLmlnbm9yZUNvbnN0cmFpbnRzJiZlLmlnbm9yZUNvbnN0cmFpbnRzJiZJLnB1c2goIi0taWdub3JlLWNvbnN0cmFpbnRzIiksZS5pZ25vcmVJdGVtRXJyb3JzJiZlLmlnbm9yZUl0ZW1FcnJvcnMmJkkucHVzaCgiLS1pZ25vcmUtaXRlbS1lcnJvcnMiKSxlLnNraXBJbnZhbGlkSXRlbXMmJmUuc2tpcEludmFsaWRJdGVtcyYmSS5wdXNoKCItLXNraXAtaW52YWxpZC1pdGVtcyIpLGUubm9Eb2N1bWVudEhlYWRlciYmZS5ub0RvY3VtZW50SGVhZGVyJiZJLnB1c2goIi0tbm8tZG9jdW1lbnQtaGVhZGVyIiksZS5udW1iZXJOZXN0ZWRJdGVtcyYmZS5udW1iZXJOZXN0ZWRJdGVtcyYmSS5wdXNoKCItLW51bWJlci1uZXN0ZWQtaXRlbXMiKSxlLnNob3J0ZW5Mb25nVmFsdWVzJiZlLnNob3J0ZW5Mb25nVmFsdWVzJiZJLnB1c2goIi0tc2hvcnRlbi1sb25nLXZhbHVlcyIpLGUucHJpbnRJbnN0YW5jZVVpZCYmZS5wcmludEluc3RhbmNlVWlkJiZJLnB1c2goIi0tcHJpbnQtaW5zdGFuY2UtdWlkIiksZS5wcmludFNvcGNsYXNzU2hvcnQmJmUucHJpbnRTb3BjbGFzc1Nob3J0JiZJLnB1c2goIi0tcHJpbnQtc29wY2xhc3Mtc2hvcnQiKSxlLnByaW50U29wY2xhc3NMb25nJiZlLnByaW50U29wY2xhc3NMb25nJiZJLnB1c2goIi0tcHJpbnQtc29wY2xhc3MtbG9uZyIpLGUucHJpbnRTb3BjbGFzc1VpZCYmZS5wcmludFNvcGNsYXNzVWlkJiZJLnB1c2goIi0tcHJpbnQtc29wY2xhc3MtdWlkIiksZS5wcmludEFsbENvZGVzJiZlLnByaW50QWxsQ29kZXMmJkkucHVzaCgiLS1wcmludC1hbGwtY29kZXMiKSxlLnByaW50SW52YWxpZENvZGVzJiZlLnByaW50SW52YWxpZENvZGVzJiZJLnB1c2goIi0tcHJpbnQtaW52YWxpZC1jb2RlcyIpLGUucHJpbnRUZW1wbGF0ZUlkJiZlLnByaW50VGVtcGxhdGVJZCYmSS5wdXNoKCItLXByaW50LXRlbXBsYXRlLWlkIiksZS5pbmRpY2F0ZUVuaGFuY2VkJiZlLmluZGljYXRlRW5oYW5jZWQmJkkucHVzaCgiLS1pbmRpY2F0ZS1lbmhhbmNlZCIpLGUucHJpbnRDb2xvciYmZS5wcmludENvbG9yJiZJLnB1c2goIi0tcHJpbnQtY29sb3IiKTtsZXQgRT0ic3RydWN0dXJlZC1yZXBvcnQtdG8tdGV4dCIscz1lPy53ZWJXb3JrZXI7cz09PXZvaWQgMCYmKHM9YXdhaXQgaygpKTtsZXR7d2ViV29ya2VyOm4scmV0dXJuVmFsdWU6ZyxzdGRlcnI6dSxvdXRwdXRzOkN9PWF3YWl0IEQoRSxJLHQsaSx7cGlwZWxpbmVCYXNlVXJsOncoKSxwaXBlbGluZVdvcmtlclVybDp5KCksd2ViV29ya2VyOnMsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGchPT0wJiZ1IT09IiIpdGhyb3cgbmV3IEVycm9yKHUpO3JldHVybnt3ZWJXb3JrZXI6bixvdXRwdXRUZXh0OihDWzBdPy5kYXRhKS5kYXRhfX12YXIgbUk9ZEk7YXN5bmMgZnVuY3Rpb24gaEkoQSxlPXt9KXtsZXQgdD1be3R5cGU6Zi5Kc29uQ29tcGF0aWJsZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IFE9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoUSl9fWxldCBpPVt7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTpyfV0sST1bXSxvPXIucGF0aDtpZihJLnB1c2gobyksSS5wdXNoKCIwIiksSS5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBlLnRhZ3NUb1JlYWQ8InUiKXtsZXQgUT1pLmxlbmd0aC50b1N0cmluZygpO2kucHVzaCh7dHlwZTpmLkpzb25Db21wYXRpYmxlLGRhdGE6ZS50YWdzVG9SZWFkfSksSS5wdXNoKCItLXRhZ3MtdG8tcmVhZCIsUSl9bGV0IEU9InJlYWQtZGljb20tdGFncyIse3dlYldvcmtlcjpzLHJldHVyblZhbHVlOm4sc3RkZXJyOmcsb3V0cHV0czp1fT1hd2FpdCBEKEUsSSx0LGkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjplPy53ZWJXb3JrZXI/P251bGx9KTtpZihuIT09MCl0aHJvdyBuZXcgRXJyb3IoZyk7cmV0dXJue3dlYldvcmtlcjpzLHRhZ3M6dVswXS5kYXRhfX12YXIgeUk9aEk7YXN5bmMgZnVuY3Rpb24gREkoQSxlPSExLHQ9e30pe2xldCByPVt7dHlwZTpmLkltYWdlfSx7dHlwZTpmLkpzb25Db21wYXRpYmxlfV0saT1bXSxJPVtdO0kucHVzaCgiMCIpLEkucHVzaCgiMSIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxJLnB1c2goIi0taW5wdXQtaW1hZ2VzIiksQS5mb3JFYWNoKFE9PntpLnB1c2goe3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6UX0pLEkucHVzaChRLnBhdGgpfSksdHlwZW9mIGU8InUiJiZlJiZJLnB1c2goIi0tc2luZ2xlLXNvcnRlZC1zZXJpZXMiKTtsZXQgRT0icmVhZC1pbWFnZS1kaWNvbS1maWxlLXNlcmllcyIse3dlYldvcmtlcjpzLHJldHVyblZhbHVlOm4sc3RkZXJyOmcsb3V0cHV0czp1fT1hd2FpdCBEKEUsSSxyLGkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjp0Py53ZWJXb3JrZXI/P251bGx9KTtpZihuIT09MCl0aHJvdyBuZXcgRXJyb3IoZyk7cmV0dXJue3dlYldvcmtlcjpzLG91dHB1dEltYWdlOnVbMF0uZGF0YSxzb3J0ZWRGaWxlbmFtZXM6dVsxXS5kYXRhfX12YXIgeGU9REk7dmFyIHdJPXR5cGVvZiBnbG9iYWxUaGlzLm5hdmlnYXRvcj8uaGFyZHdhcmVDb25jdXJyZW5jeT09Im51bWJlciI/Z2xvYmFsVGhpcy5uYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeTo0LENyPTg7YXN5bmMgZnVuY3Rpb24gU0koQT17aW5wdXRJbWFnZXM6W119KXtsZXQgZT1BLndlYldvcmtlclBvb2w/P251bGw7aWYoZT09PW51bGwmJihlPW5ldyBvZSh3SSx4ZSkpLEEuaW5wdXRJbWFnZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCciaW5wdXQtaW1hZ2VzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMScpO2xldCB0PWF3YWl0IFByb21pc2UuYWxsKEEuaW5wdXRJbWFnZXMubWFwKGFzeW5jIHI9PntsZXQgaT1yO2lmKHIgaW5zdGFuY2VvZiBGaWxlKXtsZXQgST1hd2FpdCByLmFycmF5QnVmZmVyKCk7aT17cGF0aDpyLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShJKX19cmV0dXJuIGl9KSk7aWYoQS5zaW5nbGVTb3J0ZWRTZXJpZXMpe2xldCByPVtdO2ZvcihsZXQgRT0wO0U8dC5sZW5ndGg7RSs9Q3Ipe2xldCBzPXQuc2xpY2UoRSxFK0NyKTtyLnB1c2goW3MsQS5zaW5nbGVTb3J0ZWRTZXJpZXMse31dKX1sZXQgaT1hd2FpdCBlLnJ1blRhc2tzKHIpLnByb21pc2UsST1pLm1hcChFPT5FLm91dHB1dEltYWdlKSxvPWkucmVkdWNlKChFLHMpPT5FLmNvbmNhdChzLnNvcnRlZEZpbGVuYW1lcyksW10pO3JldHVybntvdXRwdXRJbWFnZTppZShJKSx3ZWJXb3JrZXJQb29sOmUsc29ydGVkRmlsZW5hbWVzOm99fWVsc2V7bGV0IHI9W1t0LEEuc2luZ2xlU29ydGVkU2VyaWVzLHt9XV0saT1hd2FpdCBlLnJ1blRhc2tzKHIpLnByb21pc2U7cmV0dXJue291dHB1dEltYWdlOmlbMF0ub3V0cHV0SW1hZ2Usd2ViV29ya2VyUG9vbDplLHNvcnRlZEZpbGVuYW1lczppWzBdLnNvcnRlZEZpbGVuYW1lc319fXZhciBGST1TSTthc3luYyBmdW5jdGlvbiBSSShBLGU9e30pe2xldCB0PVt7dHlwZTpmLkltYWdlfSx7dHlwZTpmLkpzb25Db21wYXRpYmxlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgYz1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShjKX19bGV0IGk9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOnJ9XSxJPVtdLG89ci5wYXRoO0kucHVzaChvKSxJLnB1c2goIjAiKSxJLnB1c2goIjEiKSxJLnB1c2goIi0tbWVtb3J5LWlvIik7bGV0IHM9InJlYWQtc2VnbWVudGF0aW9uIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTp1LHN0ZGVycjpDLG91dHB1dHM6UX09YXdhaXQgRChzLEksdCxpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYodSE9PTAmJkMhPT0iIil0aHJvdyBuZXcgRXJyb3IoQyk7cmV0dXJue3dlYldvcmtlcjpnLHNlZ0ltYWdlOlFbMF0/LmRhdGEsbWV0YUluZm86UVsxXT8uZGF0YX19dmFyIGtJPVJJO2FzeW5jIGZ1bmN0aW9uIFVJKEEsZT17fSl7bGV0IHQ9W3t0eXBlOmYuSW1hZ2V9LHt0eXBlOmYuSnNvbkNvbXBhdGlibGV9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBjPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGMpfX1sZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6cn1dLEk9W10sbz1yLnBhdGg7SS5wdXNoKG8pLEkucHVzaCgiMCIpLEkucHVzaCgiMSIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxlLm1lcmdlU2VnbWVudHMmJmUubWVyZ2VTZWdtZW50cyYmSS5wdXNoKCItLW1lcmdlLXNlZ21lbnRzIik7bGV0IHM9InJlYWQtb3ZlcmxhcHBpbmctc2VnbWVudGF0aW9uIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTp1LHN0ZGVycjpDLG91dHB1dHM6UX09YXdhaXQgRChzLEksdCxpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYodSE9PTAmJkMhPT0iIil0aHJvdyBuZXcgRXJyb3IoQyk7cmV0dXJue3dlYldvcmtlcjpnLHNlZ0ltYWdlOlFbMF0/LmRhdGEsbWV0YUluZm86UVsxXT8uZGF0YX19dmFyIE5JPVVJO2FzeW5jIGZ1bmN0aW9uIEdJKEEsZSx0LHI9e3JlZkRpY29tU2VyaWVzOltdfSl7bGV0IGk9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOntwYXRoOnQsZGF0YTpuZXcgVWludDhBcnJheX19XSxJPVt7dHlwZTpmLkltYWdlLGRhdGE6QX0se3R5cGU6Zi5Kc29uQ29tcGF0aWJsZSxkYXRhOmV9XSxvPVtdO28ucHVzaCgiMCIpLG8ucHVzaCgiMSIpO2xldCBzPXQ7aWYoby5wdXNoKHMpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSxyLnJlZkRpY29tU2VyaWVzKXtpZihyLnJlZkRpY29tU2VyaWVzLmxlbmd0aDwxKXRocm93IG5ldyBFcnJvcignInJlZi1kaWNvbS1zZXJpZXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAxJyk7by5wdXNoKCItLXJlZi1kaWNvbS1zZXJpZXMiKSxhd2FpdCBQcm9taXNlLmFsbChyLnJlZkRpY29tU2VyaWVzLm1hcChhc3luYyBwPT57bGV0IG09cDtpZihwIGluc3RhbmNlb2YgRmlsZSl7bGV0IE49YXdhaXQgcC5hcnJheUJ1ZmZlcigpO209e3BhdGg6cC5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoTil9fUkucHVzaCh7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTptfSk7bGV0IGg9cCBpbnN0YW5jZW9mIEZpbGU/cC5uYW1lOm0ucGF0aDtvLnB1c2goaCl9KSl9ci5za2lwRW1wdHlTbGljZXMmJnIuc2tpcEVtcHR5U2xpY2VzJiZvLnB1c2goIi0tc2tpcC1lbXB0eS1zbGljZXMiKSxyLnVzZUxhYmVsaWRBc1NlZ21lbnRudW1iZXImJnIudXNlTGFiZWxpZEFzU2VnbWVudG51bWJlciYmby5wdXNoKCItLXVzZS1sYWJlbGlkLWFzLXNlZ21lbnRudW1iZXIiKTtsZXQgbj0id3JpdGUtc2VnbWVudGF0aW9uIixnPXI/LndlYldvcmtlcjtnPT09dm9pZCAwJiYoZz1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6dSxyZXR1cm5WYWx1ZTpDLHN0ZGVycjpRLG91dHB1dHM6bH09YXdhaXQgRChuLG8saSxJLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6Zyxub0NvcHk6cj8ubm9Db3B5fSk7aWYoQyE9PTAmJlEhPT0iIil0aHJvdyBuZXcgRXJyb3IoUSk7cmV0dXJue3dlYldvcmtlcjp1LG91dHB1dERpY29tRmlsZTpsWzBdPy5kYXRhfX12YXIgYkk9R0k7YXN5bmMgZnVuY3Rpb24gTEkoQSxlLHQscj17cmVmRGljb21TZXJpZXM6W119KXtsZXQgaT1be3R5cGU6Zi5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6dCxkYXRhOm5ldyBVaW50OEFycmF5fX1dLEk9W3t0eXBlOmYuSW1hZ2UsZGF0YTpBfSx7dHlwZTpmLkpzb25Db21wYXRpYmxlLGRhdGE6ZX1dLG89W107by5wdXNoKCIwIiksby5wdXNoKCIxIik7bGV0IHM9dDtpZihvLnB1c2gocyksby5wdXNoKCItLW1lbW9yeS1pbyIpLHIucmVmRGljb21TZXJpZXMpe2lmKHIucmVmRGljb21TZXJpZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcicmVmLWRpY29tLXNlcmllcyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtvLnB1c2goIi0tcmVmLWRpY29tLXNlcmllcyIpLGF3YWl0IFByb21pc2UuYWxsKHIucmVmRGljb21TZXJpZXMubWFwKGFzeW5jIHA9PntsZXQgbT1wO2lmKHAgaW5zdGFuY2VvZiBGaWxlKXtsZXQgTj1hd2FpdCBwLmFycmF5QnVmZmVyKCk7bT17cGF0aDpwLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShOKX19SS5wdXNoKHt0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOm19KTtsZXQgaD1wIGluc3RhbmNlb2YgRmlsZT9wLm5hbWU6bS5wYXRoO28ucHVzaChoKX0pKX1yLnNraXBFbXB0eVNsaWNlcyYmci5za2lwRW1wdHlTbGljZXMmJm8ucHVzaCgiLS1za2lwLWVtcHR5LXNsaWNlcyIpLHIudXNlTGFiZWxpZEFzU2VnbWVudG51bWJlciYmci51c2VMYWJlbGlkQXNTZWdtZW50bnVtYmVyJiZvLnB1c2goIi0tdXNlLWxhYmVsaWQtYXMtc2VnbWVudG51bWJlciIpO2xldCBuPSJ3cml0ZS1vdmVybGFwcGluZy1zZWdtZW50YXRpb24iLGc9cj8ud2ViV29ya2VyO2c9PT12b2lkIDAmJihnPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjp1LHJldHVyblZhbHVlOkMsc3RkZXJyOlEsb3V0cHV0czpsfT1hd2FpdCBEKG4sbyxpLEkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpnLG5vQ29weTpyPy5ub0NvcHl9KTtpZihDIT09MCYmUSE9PSIiKXRocm93IG5ldyBFcnJvcihRKTtyZXR1cm57d2ViV29ya2VyOnUsb3V0cHV0RGljb21GaWxlOmxbMF0/LmRhdGF9fXZhciBKST1MSTthc3luYyBmdW5jdGlvbiBNSShBLGUsdD17cmVmRGljb21TZXJpZXM6W10sc2VnSW1hZ2VzOltdfSl7bGV0IHI9W3t0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxpPVt7dHlwZTpmLkpzb25Db21wYXRpYmxlLGRhdGE6QX1dLEk9W107SS5wdXNoKCIwIik7bGV0IGE9ZTtpZihJLnB1c2goYSksSS5wdXNoKCItLW1lbW9yeS1pbyIpLHQucmVmRGljb21TZXJpZXMpe2lmKHQucmVmRGljb21TZXJpZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcicmVmLWRpY29tLXNlcmllcyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tcmVmLWRpY29tLXNlcmllcyIpLGF3YWl0IFByb21pc2UuYWxsKHQucmVmRGljb21TZXJpZXMubWFwKGFzeW5jIGw9PntsZXQgYz1sO2lmKGwgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBsLmFycmF5QnVmZmVyKCk7Yz17cGF0aDpsLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19aS5wdXNoKHt0eXBlOmYuQmluYXJ5RmlsZSxkYXRhOmN9KTtsZXQgcD1sIGluc3RhbmNlb2YgRmlsZT9sLm5hbWU6Yy5wYXRoO0kucHVzaChwKX0pKX1pZih0LnNlZ0ltYWdlcyl7aWYodC5zZWdJbWFnZXMubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcic2VnLWltYWdlcyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tc2VnLWltYWdlcyIpLGF3YWl0IFByb21pc2UuYWxsKHQuc2VnSW1hZ2VzLm1hcChhc3luYyBsPT57bGV0IGM9bDtpZihsIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgbC5hcnJheUJ1ZmZlcigpO2M9e3BhdGg6bC5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWkucHVzaCh7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTpjfSk7bGV0IHA9bCBpbnN0YW5jZW9mIEZpbGU/bC5uYW1lOmMucGF0aDtJLnB1c2gocCl9KSl9dC5za2lwRW1wdHlTbGljZXMmJnQuc2tpcEVtcHR5U2xpY2VzJiZJLnB1c2goIi0tc2tpcC1lbXB0eS1zbGljZXMiKSx0LnVzZUxhYmVsaWRBc1NlZ21lbnRudW1iZXImJnQudXNlTGFiZWxpZEFzU2VnbWVudG51bWJlciYmSS5wdXNoKCItLXVzZS1sYWJlbGlkLWFzLXNlZ21lbnRudW1iZXIiKTtsZXQgRT0id3JpdGUtbXVsdGktc2VnbWVudGF0aW9uIixzPXQ/LndlYldvcmtlcjtzPT09dm9pZCAwJiYocz1hd2FpdCBrKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpnLHN0ZGVycjp1LG91dHB1dHM6Q309YXdhaXQgRChFLEkscixpLHtwaXBlbGluZUJhc2VVcmw6dygpLHBpcGVsaW5lV29ya2VyVXJsOnkoKSx3ZWJXb3JrZXI6cyxub0NvcHk6dD8ubm9Db3B5fSk7aWYoZyE9PTAmJnUhPT0iIil0aHJvdyBuZXcgRXJyb3IodSk7cmV0dXJue3dlYldvcmtlcjpuLG91dHB1dERpY29tRmlsZTpDWzBdPy5kYXRhfX12YXIgSEk9TUk7YXN5bmMgZnVuY3Rpb24gWUkoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpmLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgYz1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoYyl9fWxldCBJPVt7dHlwZTpmLlRleHRGaWxlLGRhdGE6aX1dLG89W10sYT1pLnBhdGg7by5wdXNoKGEpO2xldCBFPWU7aWYoby5wdXNoKEUpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSx0LmRpY29tTWV0YWRhdGEpe2xldCBjPUkubGVuZ3RoLnRvU3RyaW5nKCk7SS5wdXNoKHt0eXBlOmYuSnNvbkNvbXBhdGlibGUsZGF0YTp0LmRpY29tTWV0YWRhdGF9KSxvLnB1c2goIi0tZGljb20tbWV0YWRhdGEiLGMpfWxldCBzPSJ3cml0ZS1ydC1zdHJ1Y3QiLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IGsoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOnUsc3RkZXJyOkMsb3V0cHV0czpRfT1hd2FpdCBEKHMsbyxyLEkse3BpcGVsaW5lQmFzZVVybDp3KCkscGlwZWxpbmVXb3JrZXJVcmw6eSgpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZih1IT09MCYmQyE9PSIiKXRocm93IG5ldyBFcnJvcihDKTtyZXR1cm57d2ViV29ya2VyOmcsb3V0cHV0RGljb206UVswXT8uZGF0YX19dmFyIFRJPVlJO3ZhciBRcj0nZGF0YTp0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD11dGYtOCx2YXIgWWU9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBxZT0oQSx0KT0+e2Zvcih2YXIgZSBpbiB0KVllKEEsZSx7Z2V0OnRbZV0sZW51bWVyYWJsZTohMH0pfTt2YXIgTnQ9U3ltYm9sKCJDb21saW5rLnByb3h5IiksTWU9U3ltYm9sKCJDb21saW5rLmVuZHBvaW50IiksS2U9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLFZBPVN5bWJvbCgiQ29tbGluay5maW5hbGl6ZXIiKSxtQT1TeW1ib2woIkNvbWxpbmsudGhyb3duIiksVXQ9QT0+dHlwZW9mIEE9PSJvYmplY3QiJiZBIT09bnVsbHx8dHlwZW9mIEE9PSJmdW5jdGlvbiIsT2U9e2NhbkhhbmRsZTpBPT5VdChBKSYmQVtOdF0sc2VyaWFsaXplKEEpe2xldHtwb3J0MTp0LHBvcnQyOmV9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gRkEoQSx0KSxbZSxbZV1dfSxkZXNlcmlhbGl6ZShBKXtyZXR1cm4gQS5zdGFydCgpLGplKEEpfX0sVGU9e2NhbkhhbmRsZTpBPT5VdChBKSYmbUEgaW4gQSxzZXJpYWxpemUoe3ZhbHVlOkF9KXtsZXQgdDtyZXR1cm4gQSBpbnN0YW5jZW9mIEVycm9yP3Q9e2lzRXJyb3I6ITAsdmFsdWU6e21lc3NhZ2U6QS5tZXNzYWdlLG5hbWU6QS5uYW1lLHN0YWNrOkEuc3RhY2t9fTp0PXtpc0Vycm9yOiExLHZhbHVlOkF9LFt0LFtdXX0sZGVzZXJpYWxpemUoQSl7dGhyb3cgQS5pc0Vycm9yP09iamVjdC5hc3NpZ24obmV3IEVycm9yKEEudmFsdWUubWVzc2FnZSksQS52YWx1ZSk6QS52YWx1ZX19LEd0PW5ldyBNYXAoW1sicHJveHkiLE9lXSxbInRocm93IixUZV1dKTtmdW5jdGlvbiB4ZShBLHQpe2ZvcihsZXQgZSBvZiBBKWlmKHQ9PT1lfHxlPT09IioifHxlIGluc3RhbmNlb2YgUmVnRXhwJiZlLnRlc3QodCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRkEoQSx0PWdsb2JhbFRoaXMsZT1bIioiXSl7dC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKHIpe2lmKCFyfHwhci5kYXRhKXJldHVybjtpZigheGUoZSxyLm9yaWdpbikpe2NvbnNvbGUud2FybihgSW52YWxpZCBvcmlnaW4gXCcke3Iub3JpZ2lufVwnIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDpnLHR5cGU6byxwYXRoOm59PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LHIuZGF0YSksRT0oci5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcChXKSxCO3RyeXtsZXQgcz1uLnNsaWNlKDAsLTEpLnJlZHVjZSgobCxhKT0+bFthXSxBKSxDPW4ucmVkdWNlKChsLGEpPT5sW2FdLEEpO3N3aXRjaChvKXtjYXNlIkdFVCI6Qj1DO2JyZWFrO2Nhc2UiU0VUIjpzW24uc2xpY2UoLTEpWzBdXT1XKHIuZGF0YS52YWx1ZSksQj0hMDticmVhaztjYXNlIkFQUExZIjpCPUMuYXBwbHkocyxFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCBsPW5ldyBDKC4uLkUpO0I9WGUobCl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTpsLHBvcnQyOmF9PW5ldyBNZXNzYWdlQ2hhbm5lbDtGQShBLGEpLEI9X0EobCxbbF0pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6Qj12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKHMpe0I9e3ZhbHVlOnMsW21BXTowfX1Qcm9taXNlLnJlc29sdmUoQikuY2F0Y2gocz0+KHt2YWx1ZTpzLFttQV06MH0pKS50aGVuKHM9PntsZXRbQyxsXT1TQShzKTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxDKSx7aWQ6Z30pLGwpLG89PT0iUkVMRUFTRSImJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLGt0KHQpLFZBIGluIEEmJnR5cGVvZiBBW1ZBXT09ImZ1bmN0aW9uIiYmQVtWQV0oKSl9KS5jYXRjaChzPT57bGV0W0MsbF09U0Eoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFttQV06MH0pO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEMpLHtpZDpnfSksbCl9KX0pLHQuc3RhcnQmJnQuc3RhcnQoKX1mdW5jdGlvbiBQZShBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBrdChBKXtQZShBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIGplKEEsdCl7cmV0dXJuIFhBKEEsW10sdCl9ZnVuY3Rpb24geUEoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIEx0KEEpe3JldHVybiBfKEEse3R5cGU6IlJFTEVBU0UifSkudGhlbigoKT0+e2t0KEEpfSl9dmFyIHdBPW5ldyBXZWFrTWFwLHBBPSJGaW5hbGl6YXRpb25SZWdpc3RyeSJpbiBnbG9iYWxUaGlzJiZuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoQT0+e2xldCB0PSh3QS5nZXQoQSl8fDApLTE7d0Euc2V0KEEsdCksdD09PTAmJkx0KEEpfSk7ZnVuY3Rpb24gV2UoQSx0KXtsZXQgZT0od0EuZ2V0KHQpfHwwKSsxO3dBLnNldCh0LGUpLHBBJiZwQS5yZWdpc3RlcihBLHQsQSl9ZnVuY3Rpb24gWmUoQSl7cEEmJnBBLnVucmVnaXN0ZXIoQSl9ZnVuY3Rpb24gWEEoQSx0PVtdLGU9ZnVuY3Rpb24oKXt9KXtsZXQgST0hMSxyPW5ldyBQcm94eShlLHtnZXQoZyxvKXtpZih5QShJKSxvPT09S2UpcmV0dXJuKCk9PntaZShyKSxMdChBKSxJPSEwfTtpZihvPT09InRoZW4iKXtpZih0Lmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9PnJ9O2xldCBuPV8oQSx7dHlwZToiR0VUIixwYXRoOnQubWFwKEU9PkUudG9TdHJpbmcoKSl9KS50aGVuKFcpO3JldHVybiBuLnRoZW4uYmluZChuKX1yZXR1cm4gWEEoQSxbLi4udCxvXSl9LHNldChnLG8sbil7eUEoSSk7bGV0W0UsQl09U0Eobik7cmV0dXJuIF8oQSx7dHlwZToiU0VUIixwYXRoOlsuLi50LG9dLm1hcChzPT5zLnRvU3RyaW5nKCkpLHZhbHVlOkV9LEIpLnRoZW4oVyl9LGFwcGx5KGcsbyxuKXt5QShJKTtsZXQgRT10W3QubGVuZ3RoLTFdO2lmKEU9PT1NZSlyZXR1cm4gXyhBLHt0eXBlOiJFTkRQT0lOVCJ9KS50aGVuKFcpO2lmKEU9PT0iYmluZCIpcmV0dXJuIFhBKEEsdC5zbGljZSgwLC0xKSk7bGV0W0Isc109UnQobik7cmV0dXJuIF8oQSx7dHlwZToiQVBQTFkiLHBhdGg6dC5tYXAoQz0+Qy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0scykudGhlbihXKX0sY29uc3RydWN0KGcsbyl7eUEoSSk7bGV0W24sRV09UnQobyk7cmV0dXJuIF8oQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOnQubWFwKEI9PkIudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0Om59LEUpLnRoZW4oVyl9fSk7cmV0dXJuIFdlKHIsQSkscn1mdW5jdGlvbiBWZShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBSdChBKXtsZXQgdD1BLm1hcChTQSk7cmV0dXJuW3QubWFwKGU9PmVbMF0pLFZlKHQubWFwKGU9PmVbMV0pKV19dmFyIGJ0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIF9BKEEsdCl7cmV0dXJuIGJ0LnNldChBLHQpLEF9ZnVuY3Rpb24gWGUoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W050XTohMH0pfWZ1bmN0aW9uIFNBKEEpe2ZvcihsZXRbdCxlXW9mIEd0KWlmKGUuY2FuSGFuZGxlKEEpKXtsZXRbSSxyXT1lLnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6dCx2YWx1ZTpJfSxyXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sYnQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gVyhBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBHdC5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIF8oQSx0LGUpe3JldHVybiBuZXcgUHJvbWlzZShJPT57bGV0IHI9X2UoKTtBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIGcobyl7IW8uZGF0YXx8IW8uZGF0YS5pZHx8by5kYXRhLmlkIT09cnx8KEEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZyksSShvLmRhdGEpKX0pLEEuc3RhcnQmJkEuc3RhcnQoKSxBLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOnJ9LHQpLGUpfSl9ZnVuY3Rpb24gX2UoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfWZ1bmN0aW9uIG9BKEEsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkodCxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6emV9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOnZBfT1PYmplY3Qse2l0ZXJhdG9yOk5BLHRvU3RyaW5nVGFnOll0fT1TeW1ib2wsVUE9KEE9PnQ9PntsZXQgZT16ZS5jYWxsKHQpO3JldHVybiBBW2VdfHwoQVtlXT1lLnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksTD1BPT4oQT1BLnRvTG93ZXJDYXNlKCksdD0+VUEodCk9PT1BKSxHQT1BPT50PT50eXBlb2YgdD09PUEse2lzQXJyYXk6dn09QXJyYXksej1HQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gZ0EoQSl7cmV0dXJuIEEhPT1udWxsJiYheihBKSYmQS5jb25zdHJ1Y3RvciE9PW51bGwmJiF6KEEuY29uc3RydWN0b3IpJiZOKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciBxdD1MKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIHZlKEEpe2xldCB0O3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/dD1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6dD1BJiZBLmJ1ZmZlciYmcXQoQS5idWZmZXIpLHR9dmFyICRlPUdBKCJzdHJpbmciKSxOPUdBKCJmdW5jdGlvbiIpLE10PUdBKCJudW1iZXIiKSxpQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLEFJPUE9PkE9PT0hMHx8QT09PSExLFJBPUE9PntpZihVQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCB0PXZBKEEpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpJiYhKFl0IGluIEEpJiYhKE5BIGluIEEpfSx0ST1BPT57aWYoIWlBKEEpfHxnQShBKSlyZXR1cm4hMTt0cnl7cmV0dXJuIE9iamVjdC5rZXlzKEEpLmxlbmd0aD09PTAmJk9iamVjdC5nZXRQcm90b3R5cGVPZihBKT09PU9iamVjdC5wcm90b3R5cGV9Y2F0Y2h7cmV0dXJuITF9fSxlST1MKCJEYXRlIiksSUk9TCgiRmlsZSIpLHJJPUwoIkJsb2IiKSxvST1MKCJGaWxlTGlzdCIpLGdJPUE9PmlBKEEpJiZOKEEucGlwZSksaUk9QT0+e2xldCB0O3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fE4oQS5hcHBlbmQpJiYoKHQ9VUEoQSkpPT09ImZvcm1kYXRhInx8dD09PSJvYmplY3QiJiZOKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LHNJPUwoIlVSTFNlYXJjaFBhcmFtcyIpLFtuSSxDSSxCSSxhSV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoTCksUUk9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2csIiIpO2Z1bmN0aW9uIHNBKEEsdCx7YWxsT3duS2V5czplPSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IEkscjtpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksdihBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyl0LmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtpZihnQShBKSlyZXR1cm47bGV0IGc9ZT9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxvPWcubGVuZ3RoLG47Zm9yKEk9MDtJPG87SSsrKW49Z1tJXSx0LmNhbGwobnVsbCxBW25dLG4sQSl9fWZ1bmN0aW9uIEt0KEEsdCl7aWYoZ0EoQSkpcmV0dXJuIG51bGw7dD10LnRvTG93ZXJDYXNlKCk7bGV0IGU9T2JqZWN0LmtleXMoQSksST1lLmxlbmd0aCxyO2Zvcig7SS0tID4wOylpZihyPWVbSV0sdD09PXIudG9Mb3dlckNhc2UoKSlyZXR1cm4gcjtyZXR1cm4gbnVsbH12YXIgWj10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLE90PUE9PiF6KEEpJiZBIT09WjtmdW5jdGlvbiB6QSgpe2xldHtjYXNlbGVzczpBLHNraXBVbmRlZmluZWQ6dH09T3QodGhpcykmJnRoaXN8fHt9LGU9e30sST0ocixnKT0+e2xldCBvPUEmJkt0KGUsZyl8fGc7UkEoZVtvXSkmJlJBKHIpP2Vbb109ekEoZVtvXSxyKTpSQShyKT9lW29dPXpBKHt9LHIpOnYocik/ZVtvXT1yLnNsaWNlKCk6KCF0fHwheihyKSkmJihlW29dPXIpfTtmb3IobGV0IHI9MCxnPWFyZ3VtZW50cy5sZW5ndGg7cjxnO3IrKylhcmd1bWVudHNbcl0mJnNBKGFyZ3VtZW50c1tyXSxJKTtyZXR1cm4gZX12YXIgRUk9KEEsdCxlLHthbGxPd25LZXlzOkl9PXt9KT0+KHNBKHQsKHIsZyk9PntlJiZOKHIpP0FbZ109b0EocixlKTpBW2ddPXJ9LHthbGxPd25LZXlzOkl9KSxBKSxjST1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLGZJPShBLHQsZSxJKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsSSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTp0LnByb3RvdHlwZX0pLGUmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsZSl9LGxJPShBLHQsZSxJKT0+e2xldCByLGcsbyxuPXt9O2lmKHQ9dHx8e30sQT09bnVsbClyZXR1cm4gdDtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxnPXIubGVuZ3RoO2ctLSA+MDspbz1yW2ddLCghSXx8SShvLEEsdCkpJiYhbltvXSYmKHRbb109QVtvXSxuW29dPSEwKTtBPWUhPT0hMSYmdkEoQSl9d2hpbGUoQSYmKCFlfHxlKEEsdCkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIHR9LHVJPShBLHQsZSk9PntBPVN0cmluZyhBKSwoZT09PXZvaWQgMHx8ZT5BLmxlbmd0aCkmJihlPUEubGVuZ3RoKSxlLT10Lmxlbmd0aDtsZXQgST1BLmluZGV4T2YodCxlKTtyZXR1cm4gSSE9PS0xJiZJPT09ZX0sZEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHYoQSkpcmV0dXJuIEE7bGV0IHQ9QS5sZW5ndGg7aWYoIU10KHQpKXJldHVybiBudWxsO2xldCBlPW5ldyBBcnJheSh0KTtmb3IoO3QtLSA+MDspZVt0XT1BW3RdO3JldHVybiBlfSxEST0oQT0+dD0+QSYmdCBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmdkEoVWludDhBcnJheSkpLGhJPShBLHQpPT57bGV0IEk9KEEmJkFbTkFdKS5jYWxsKEEpLHI7Zm9yKDsocj1JLm5leHQoKSkmJiFyLmRvbmU7KXtsZXQgZz1yLnZhbHVlO3QuY2FsbChBLGdbMF0sZ1sxXSl9fSx5ST0oQSx0KT0+e2xldCBlLEk9W107Zm9yKDsoZT1BLmV4ZWModCkpIT09bnVsbDspSS5wdXNoKGUpO3JldHVybiBJfSxtST1MKCJIVE1MRm9ybUVsZW1lbnQiKSx3ST1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXFxzXShbYS16XFxkXSkoXFx3KikvZyxmdW5jdGlvbihlLEkscil7cmV0dXJuIEkudG9VcHBlckNhc2UoKStyfSksSHQ9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4odCxlKT0+QS5jYWxsKHQsZSkpKE9iamVjdC5wcm90b3R5cGUpLHBJPUwoIlJlZ0V4cCIpLFR0PShBLHQpPT57bGV0IGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSksST17fTtzQShlLChyLGcpPT57bGV0IG87KG89dChyLGcsQSkpIT09ITEmJihJW2ddPW98fHIpfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxJKX0sU0k9QT0+e1R0KEEsKHQsZSk9PntpZihOKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YoZSkhPT0tMSlyZXR1cm4hMTtsZXQgST1BW2VdO2lmKE4oSSkpe2lmKHQuZW51bWVyYWJsZT0hMSwid3JpdGFibGUiaW4gdCl7dC53cml0YWJsZT0hMTtyZXR1cm59dC5zZXR8fCh0LnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCBcJyIrZSsiXCciKX0pfX0pfSxGST0oQSx0KT0+e2xldCBlPXt9LEk9cj0+e3IuZm9yRWFjaChnPT57ZVtnXT0hMH0pfTtyZXR1cm4gdihBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KHQpKSxlfSxSST0oKT0+e30sTkk9KEEsdCk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOnQ7ZnVuY3Rpb24gVUkoQSl7cmV0dXJuISEoQSYmTihBLmFwcGVuZCkmJkFbWXRdPT09IkZvcm1EYXRhIiYmQVtOQV0pfXZhciBHST1BPT57bGV0IHQ9bmV3IEFycmF5KDEwKSxlPShJLHIpPT57aWYoaUEoSSkpe2lmKHQuaW5kZXhPZihJKT49MClyZXR1cm47aWYoZ0EoSSkpcmV0dXJuIEk7aWYoISgidG9KU09OImluIEkpKXt0W3JdPUk7bGV0IGc9dihJKT9bXTp7fTtyZXR1cm4gc0EoSSwobyxuKT0+e2xldCBFPWUobyxyKzEpOyF6KEUpJiYoZ1tuXT1FKX0pLHRbcl09dm9pZCAwLGd9fXJldHVybiBJfTtyZXR1cm4gZShBLDApfSxrST1MKCJBc3luY0Z1bmN0aW9uIiksTEk9QT0+QSYmKGlBKEEpfHxOKEEpKSYmTihBLnRoZW4pJiZOKEEuY2F0Y2gpLHh0PSgoQSx0KT0+QT9zZXRJbW1lZGlhdGU6dD8oKGUsSSk9PihaLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTpnfSk9PntyPT09WiYmZz09PWUmJkkubGVuZ3RoJiZJLnNoaWZ0KCkoKX0sITEpLHI9PntJLnB1c2gociksWi5wb3N0TWVzc2FnZShlLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTplPT5zZXRUaW1lb3V0KGUpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLE4oWi5wb3N0TWVzc2FnZSkpLGJJPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChaKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fHh0LEpJPUE9PkEhPW51bGwmJk4oQVtOQV0pLGk9e2lzQXJyYXk6dixpc0FycmF5QnVmZmVyOnF0LGlzQnVmZmVyOmdBLGlzRm9ybURhdGE6aUksaXNBcnJheUJ1ZmZlclZpZXc6dmUsaXNTdHJpbmc6JGUsaXNOdW1iZXI6TXQsaXNCb29sZWFuOkFJLGlzT2JqZWN0OmlBLGlzUGxhaW5PYmplY3Q6UkEsaXNFbXB0eU9iamVjdDp0SSxpc1JlYWRhYmxlU3RyZWFtOm5JLGlzUmVxdWVzdDpDSSxpc1Jlc3BvbnNlOkJJLGlzSGVhZGVyczphSSxpc1VuZGVmaW5lZDp6LGlzRGF0ZTplSSxpc0ZpbGU6SUksaXNCbG9iOnJJLGlzUmVnRXhwOnBJLGlzRnVuY3Rpb246Tixpc1N0cmVhbTpnSSxpc1VSTFNlYXJjaFBhcmFtczpzSSxpc1R5cGVkQXJyYXk6REksaXNGaWxlTGlzdDpvSSxmb3JFYWNoOnNBLG1lcmdlOnpBLGV4dGVuZDpFSSx0cmltOlFJLHN0cmlwQk9NOmNJLGluaGVyaXRzOmZJLHRvRmxhdE9iamVjdDpsSSxraW5kT2Y6VUEsa2luZE9mVGVzdDpMLGVuZHNXaXRoOnVJLHRvQXJyYXk6ZEksZm9yRWFjaEVudHJ5OmhJLG1hdGNoQWxsOnlJLGlzSFRNTEZvcm06bUksaGFzT3duUHJvcGVydHk6SHQsaGFzT3duUHJvcDpIdCxyZWR1Y2VEZXNjcmlwdG9yczpUdCxmcmVlemVNZXRob2RzOlNJLHRvT2JqZWN0U2V0OkZJLHRvQ2FtZWxDYXNlOndJLG5vb3A6UkksdG9GaW5pdGVOdW1iZXI6TkksZmluZEtleTpLdCxnbG9iYWw6Wixpc0NvbnRleHREZWZpbmVkOk90LGlzU3BlY0NvbXBsaWFudEZvcm06VUksdG9KU09OT2JqZWN0OkdJLGlzQXN5bmNGbjprSSxpc1RoZW5hYmxlOkxJLHNldEltbWVkaWF0ZTp4dCxhc2FwOmJJLGlzSXRlcmFibGU6Skl9O2Z1bmN0aW9uICQoQSx0LGUsSSxyKXtFcnJvci5jYWxsKHRoaXMpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFjayx0aGlzLm1lc3NhZ2U9QSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLHQmJih0aGlzLmNvZGU9dCksZSYmKHRoaXMuY29uZmlnPWUpLEkmJih0aGlzLnJlcXVlc3Q9SSksciYmKHRoaXMucmVzcG9uc2U9cix0aGlzLnN0YXR1cz1yLnN0YXR1cz9yLnN0YXR1czpudWxsKX1pLmluaGVyaXRzKCQsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzppLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgUHQ9JC5wcm90b3R5cGUsanQ9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57anRbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoJCxqdCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFB0LCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pOyQuZnJvbT0oQSx0LGUsSSxyLGcpPT57bGV0IG89T2JqZWN0LmNyZWF0ZShQdCk7aS50b0ZsYXRPYmplY3QoQSxvLGZ1bmN0aW9uKHMpe3JldHVybiBzIT09RXJyb3IucHJvdG90eXBlfSxCPT5CIT09ImlzQXhpb3NFcnJvciIpO2xldCBuPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPXQ9PW51bGwmJkE/QS5jb2RlOnQ7cmV0dXJuICQuY2FsbChvLG4sRSxlLEksciksQSYmby5jYXVzZT09bnVsbCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sImNhdXNlIix7dmFsdWU6QSxjb25maWd1cmFibGU6ITB9KSxvLm5hbWU9QSYmQS5uYW1lfHwiRXJyb3IiLGcmJk9iamVjdC5hc3NpZ24obyxnKSxvfTt2YXIgdT0kO3ZhciBrQT1udWxsO2Z1bmN0aW9uICRBKEEpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQSl8fGkuaXNBcnJheShBKX1mdW5jdGlvbiBadChBKXtyZXR1cm4gaS5lbmRzV2l0aChBLCJbXSIpP0Euc2xpY2UoMCwtMik6QX1mdW5jdGlvbiBXdChBLHQsZSl7cmV0dXJuIEE/QS5jb25jYXQodCkubWFwKGZ1bmN0aW9uKHIsZyl7cmV0dXJuIHI9WnQociksIWUmJmc/IlsiK3IrIl0iOnJ9KS5qb2luKGU/Ii4iOiIiKTp0fWZ1bmN0aW9uIEhJKEEpe3JldHVybiBpLmlzQXJyYXkoQSkmJiFBLnNvbWUoJEEpfXZhciBZST1pLnRvRmxhdE9iamVjdChpLHt9LG51bGwsZnVuY3Rpb24odCl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KHQpfSk7ZnVuY3Rpb24gcUkoQSx0LGUpe2lmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdCIpO3Q9dHx8bmV3KGtBfHxGb3JtRGF0YSksZT1pLnRvRmxhdE9iamVjdChlLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsZnVuY3Rpb24oZixjKXtyZXR1cm4haS5pc1VuZGVmaW5lZChjW2ZdKX0pO2xldCBJPWUubWV0YVRva2VucyxyPWUudmlzaXRvcnx8cyxnPWUuZG90cyxvPWUuaW5kZXhlcyxFPShlLkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYikmJmkuaXNTcGVjQ29tcGxpYW50Rm9ybSh0KTtpZighaS5pc0Z1bmN0aW9uKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gQihRKXtpZihRPT09bnVsbClyZXR1cm4iIjtpZihpLmlzRGF0ZShRKSlyZXR1cm4gUS50b0lTT1N0cmluZygpO2lmKGkuaXNCb29sZWFuKFEpKXJldHVybiBRLnRvU3RyaW5nKCk7aWYoIUUmJmkuaXNCbG9iKFEpKXRocm93IG5ldyB1KCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBpLmlzQXJyYXlCdWZmZXIoUSl8fGkuaXNUeXBlZEFycmF5KFEpP0UmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtRXSk6QnVmZmVyLmZyb20oUSk6UX1mdW5jdGlvbiBzKFEsZixjKXtsZXQgRD1RO2lmKFEmJiFjJiZ0eXBlb2YgUT09Im9iamVjdCIpe2lmKGkuZW5kc1dpdGgoZiwie30iKSlmPUk/ZjpmLnNsaWNlKDAsLTIpLFE9SlNPTi5zdHJpbmdpZnkoUSk7ZWxzZSBpZihpLmlzQXJyYXkoUSkmJkhJKFEpfHwoaS5pc0ZpbGVMaXN0KFEpfHxpLmVuZHNXaXRoKGYsIltdIikpJiYoRD1pLnRvQXJyYXkoUSkpKXJldHVybiBmPVp0KGYpLEQuZm9yRWFjaChmdW5jdGlvbih5LFIpeyEoaS5pc1VuZGVmaW5lZCh5KXx8eT09PW51bGwpJiZ0LmFwcGVuZChvPT09ITA/V3QoW2ZdLFIsZyk6bz09PW51bGw/ZjpmKyJbXSIsQih5KSl9KSwhMX1yZXR1cm4gJEEoUSk/ITA6KHQuYXBwZW5kKFd0KGMsZixnKSxCKFEpKSwhMSl9bGV0IEM9W10sbD1PYmplY3QuYXNzaWduKFlJLHtkZWZhdWx0VmlzaXRvcjpzLGNvbnZlcnRWYWx1ZTpCLGlzVmlzaXRhYmxlOiRBfSk7ZnVuY3Rpb24gYShRLGYpe2lmKCFpLmlzVW5kZWZpbmVkKFEpKXtpZihDLmluZGV4T2YoUSkhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrZi5qb2luKCIuIikpO0MucHVzaChRKSxpLmZvckVhY2goUSxmdW5jdGlvbihELEYpeyghKGkuaXNVbmRlZmluZWQoRCl8fEQ9PT1udWxsKSYmci5jYWxsKHQsRCxpLmlzU3RyaW5nKEYpP0YudHJpbSgpOkYsZixsKSk9PT0hMCYmYShELGY/Zi5jb25jYXQoRik6W0ZdKX0pLEMucG9wKCl9fWlmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gYShBKSx0fXZhciBUPXFJO2Z1bmN0aW9uIFZ0KEEpe2xldCB0PXsiISI6IiUyNTIxIiwiXCciOiIlMjUyNyIsIigiOiIlMjUyOCIsIikiOiIlMjUyOSIsIn4iOiIlMjU3RSIsIiUyNTIwIjoiKyIsIiUyNTAwIjoiXFwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC9bIVwnKCl+XXwlMjUyMHwlMjUwMC9nLGZ1bmN0aW9uKEkpe3JldHVybiB0W0ldfSl9ZnVuY3Rpb24gWHQoQSx0KXt0aGlzLl9wYWlycz1bXSxBJiZUKEEsdGhpcyx0KX12YXIgX3Q9WHQucHJvdG90eXBlO190LmFwcGVuZD1mdW5jdGlvbih0LGUpe3RoaXMuX3BhaXJzLnB1c2goW3QsZV0pfTtfdC50b1N0cmluZz1mdW5jdGlvbih0KXtsZXQgZT10P2Z1bmN0aW9uKEkpe3JldHVybiB0LmNhbGwodGhpcyxJLFZ0KX06VnQ7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gZShyWzBdKSsiPSIrZShyWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIExBPVh0O2Z1bmN0aW9uIE1JKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTI1M0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjUyNC9nLCIkIikucmVwbGFjZSgvJTI1MkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjUyMC9nLCIrIil9ZnVuY3Rpb24gbkEoQSx0LGUpe2lmKCF0KXJldHVybiBBO2xldCBJPWUmJmUuZW5jb2RlfHxNSTtpLmlzRnVuY3Rpb24oZSkmJihlPXtzZXJpYWxpemU6ZX0pO2xldCByPWUmJmUuc2VyaWFsaXplLGc7aWYocj9nPXIodCxlKTpnPWkuaXNVUkxTZWFyY2hQYXJhbXModCk/dC50b1N0cmluZygpOm5ldyBMQSh0LGUpLnRvU3RyaW5nKEkpLGcpe2xldCBvPUEuaW5kZXhPZigiJTIzIik7byE9PS0xJiYoQT1BLnNsaWNlKDAsbykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK2d9cmV0dXJuIEF9dmFyIEF0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UodCxlLEkpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDp0LHJlamVjdGVkOmUsc3luY2hyb25vdXM6ST9JLnN5bmNocm9ub3VzOiExLHJ1bldoZW46ST9JLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QodCl7dGhpcy5oYW5kbGVyc1t0XSYmKHRoaXMuaGFuZGxlcnNbdF09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaCh0KXtpLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihJKXtJIT09bnVsbCYmdChJKX0pfX0sdHQ9QXQ7dmFyIGJBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgenQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOkxBO3ZhciB2dD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyICR0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIEFlPXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOnp0LEZvcm1EYXRhOnZ0LEJsb2I6JHR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgcnQ9e307cWUocnQse2hhc0Jyb3dzZXJFbnY6KCk9Pkl0LGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+S0ksaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT5PSSxuYXZpZ2F0b3I6KCk9PmV0LG9yaWdpbjooKT0+VEl9KTt2YXIgSXQ9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsZXQ9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLEtJPUl0JiYoIWV0fHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKGV0LnByb2R1Y3QpPDApLE9JPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixUST1JdCYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgaD17Li4ucnQsLi4uQWV9O2Z1bmN0aW9uIG90KEEsdCl7cmV0dXJuIFQoQSxuZXcgaC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbihlLEkscixnKXtyZXR1cm4gaC5pc05vZGUmJmkuaXNCdWZmZXIoZSk/KHRoaXMuYXBwZW5kKEksZS50b1N0cmluZygiYmFzZTY0IikpLCExKTpnLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4udH0pfWZ1bmN0aW9uIHhJKEEpe3JldHVybiBpLm1hdGNoQWxsKC9cXHcrfFxcWyhcXHcqKV0vZyxBKS5tYXAodD0+dFswXT09PSJbXSI/IiI6dFsxXXx8dFswXSl9ZnVuY3Rpb24gUEkoQSl7bGV0IHQ9e30sZT1PYmplY3Qua2V5cyhBKSxJLHI9ZS5sZW5ndGgsZztmb3IoST0wO0k8cjtJKyspZz1lW0ldLHRbZ109QVtnXTtyZXR1cm4gdH1mdW5jdGlvbiBqSShBKXtmdW5jdGlvbiB0KGUsSSxyLGcpe2xldCBvPWVbZysrXTtpZihvPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IG49TnVtYmVyLmlzRmluaXRlKCtvKSxFPWc+PWUubGVuZ3RoO3JldHVybiBvPSFvJiZpLmlzQXJyYXkocik/ci5sZW5ndGg6byxFPyhpLmhhc093blByb3AocixvKT9yW29dPVtyW29dLEldOnJbb109SSwhbik6KCghcltvXXx8IWkuaXNPYmplY3QocltvXSkpJiYocltvXT1bXSksdChlLEkscltvXSxnKSYmaS5pc0FycmF5KHJbb10pJiYocltvXT1QSShyW29dKSksIW4pfWlmKGkuaXNGb3JtRGF0YShBKSYmaS5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCBlPXt9O3JldHVybiBpLmZvckVhY2hFbnRyeShBLChJLHIpPT57dCh4SShJKSxyLGUsMCl9KSxlfXJldHVybiBudWxsfXZhciBKQT1qSTtmdW5jdGlvbiBXSShBLHQsZSl7aWYoaS5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKHR8fEpTT04ucGFyc2UpKEEpLGkudHJpbShBKX1jYXRjaChJKXtpZihJLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IEl9cmV0dXJuKGV8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgZ3Q9e3RyYW5zaXRpb25hbDpiQSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24odCxlKXtsZXQgST1lLmdldENvbnRlbnRUeXBlKCl8fCIiLHI9SS5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsZz1pLmlzT2JqZWN0KHQpO2lmKGcmJmkuaXNIVE1MRm9ybSh0KSYmKHQ9bmV3IEZvcm1EYXRhKHQpKSxpLmlzRm9ybURhdGEodCkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkoSkEodCkpOnQ7aWYoaS5pc0FycmF5QnVmZmVyKHQpfHxpLmlzQnVmZmVyKHQpfHxpLmlzU3RyZWFtKHQpfHxpLmlzRmlsZSh0KXx8aS5pc0Jsb2IodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KHQpKXJldHVybiB0LmJ1ZmZlcjtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKHQpKXJldHVybiBlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLHQudG9TdHJpbmcoKTtsZXQgbjtpZihnKXtpZihJLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBvdCh0LHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKG49aS5pc0ZpbGVMaXN0KHQpKXx8SS5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gVChuP3siZmlsZXNbXSI6dH06dCxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIGd8fHI/KGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxXSSh0KSk6dH1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbih0KXtsZXQgZT10aGlzLnRyYW5zaXRpb25hbHx8Z3QudHJhbnNpdGlvbmFsLEk9ZSYmZS5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKGkuaXNSZXNwb25zZSh0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKHQmJmkuaXNTdHJpbmcodCkmJihJJiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgbz0hKGUmJmUuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0LHRoaXMucGFyc2VSZXZpdmVyKX1jYXRjaChuKXtpZihvKXRocm93IG4ubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKG4sdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpufX1yZXR1cm4gdH1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6aC5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6aC5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMDAmJnQ8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntndC5oZWFkZXJzW0FdPXt9fSk7dmFyIEFBPWd0O3ZhciBaST1pLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLHRlPUE9PntsZXQgdD17fSxlLEkscjtyZXR1cm4gQSYmQS5zcGxpdChgJTBBYCkuZm9yRWFjaChmdW5jdGlvbihvKXtyPW8uaW5kZXhPZigiOiIpLGU9by5zdWJzdHJpbmcoMCxyKS50cmltKCkudG9Mb3dlckNhc2UoKSxJPW8uc3Vic3RyaW5nKHIrMSkudHJpbSgpLCEoIWV8fHRbZV0mJlpJW2VdKSYmKGU9PT0ic2V0LWNvb2tpZSI/dFtlXT90W2VdLnB1c2goSSk6dFtlXT1bSV06dFtlXT10W2VdP3RbZV0rIiwgIitJOkkpfSksdH07dmFyIGVlPVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gQ0EoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBIQShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6aS5pc0FycmF5KEEpP0EubWFwKEhBKTpTdHJpbmcoQSl9ZnVuY3Rpb24gVkkoQSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKSxlPS8oW15cXHMsOz1dKylcXHMqKD86PVxccyooW14sO10rKSk/L2csSTtmb3IoO0k9ZS5leGVjKEEpOyl0W0lbMV1dPUlbMl07cmV0dXJuIHR9dmFyIFhJPUE9Pi9eWy1fYS16QS1aMC05XmB8fiwhJTIzJCUmXCcqKy5dKyQvLnRlc3QoQS50cmltKCkpO2Z1bmN0aW9uIGl0KEEsdCxlLEkscil7aWYoaS5pc0Z1bmN0aW9uKEkpKXJldHVybiBJLmNhbGwodGhpcyx0LGUpO2lmKHImJih0PWUpLCEhaS5pc1N0cmluZyh0KSl7aWYoaS5pc1N0cmluZyhJKSlyZXR1cm4gdC5pbmRleE9mKEkpIT09LTE7aWYoaS5pc1JlZ0V4cChJKSlyZXR1cm4gSS50ZXN0KHQpfX1mdW5jdGlvbiBfSShBKXtyZXR1cm4gQS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxcZF0pKFxcdyopL2csKHQsZSxJKT0+ZS50b1VwcGVyQ2FzZSgpK0kpfWZ1bmN0aW9uIHpJKEEsdCl7bGV0IGU9aS50b0NhbWVsQ2FzZSgiICIrdCk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKEk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJK2Use3ZhbHVlOmZ1bmN0aW9uKHIsZyxvKXtyZXR1cm4gdGhpc1tJXS5jYWxsKHRoaXMsdCxyLGcsbyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIHRBPWNsYXNze2NvbnN0cnVjdG9yKHQpe3QmJnRoaXMuc2V0KHQpfXNldCh0LGUsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBnKG4sRSxCKXtsZXQgcz1DQShFKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IEM9aS5maW5kS2V5KHIscyk7KCFDfHxyW0NdPT09dm9pZCAwfHxCPT09ITB8fEI9PT12b2lkIDAmJnJbQ10hPT0hMSkmJihyW0N8fEVdPUhBKG4pKX1sZXQgbz0obixFKT0+aS5mb3JFYWNoKG4sKEIscyk9PmcoQixzLEUpKTtpZihpLmlzUGxhaW5PYmplY3QodCl8fHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKW8odCxlKTtlbHNlIGlmKGkuaXNTdHJpbmcodCkmJih0PXQudHJpbSgpKSYmIVhJKHQpKW8odGUodCksZSk7ZWxzZSBpZihpLmlzT2JqZWN0KHQpJiZpLmlzSXRlcmFibGUodCkpe2xldCBuPXt9LEUsQjtmb3IobGV0IHMgb2YgdCl7aWYoIWkuaXNBcnJheShzKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7bltCPXNbMF1dPShFPW5bQl0pP2kuaXNBcnJheShFKT9bLi4uRSxzWzFdXTpbRSxzWzFdXTpzWzFdfW8obixlKX1lbHNlIHQhPW51bGwmJmcoZSx0LEkpO3JldHVybiB0aGlzfWdldCh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighZSlyZXR1cm4gcjtpZihlPT09ITApcmV0dXJuIFZJKHIpO2lmKGkuaXNGdW5jdGlvbihlKSlyZXR1cm4gZS5jYWxsKHRoaXMscixJKTtpZihpLmlzUmVnRXhwKGUpKXJldHVybiBlLmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCFlfHxpdCh0aGlzLHRoaXNbSV0sSSxlKSkpfXJldHVybiExfWRlbGV0ZSh0LGUpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBnKG8pe2lmKG89Q0Eobyksbyl7bGV0IG49aS5maW5kS2V5KEksbyk7biYmKCFlfHxpdChJLElbbl0sbixlKSkmJihkZWxldGUgSVtuXSxyPSEwKX19cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2goZyk6Zyh0KSxyfWNsZWFyKHQpe2xldCBlPU9iamVjdC5rZXlzKHRoaXMpLEk9ZS5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBnPWVbSV07KCF0fHxpdCh0aGlzLHRoaXNbZ10sZyx0LCEwKSkmJihkZWxldGUgdGhpc1tnXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUodCl7bGV0IGU9dGhpcyxJPXt9O3JldHVybiBpLmZvckVhY2godGhpcywocixnKT0+e2xldCBvPWkuZmluZEtleShJLGcpO2lmKG8pe2Vbb109SEEociksZGVsZXRlIGVbZ107cmV0dXJufWxldCBuPXQ/X0koZyk6U3RyaW5nKGcpLnRyaW0oKTtuIT09ZyYmZGVsZXRlIGVbZ10sZVtuXT1IQShyKSxJW25dPSEwfSksdGhpc31jb25jYXQoLi4udCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4udCl9dG9KU09OKHQpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYoZVtyXT10JiZpLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksZX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbdCxlXSk9PnQrIjogIitlKS5qb2luKGAlMEFgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHRoaXM/dDpuZXcgdGhpcyh0KX1zdGF0aWMgY29uY2F0KHQsLi4uZSl7bGV0IEk9bmV3IHRoaXModCk7cmV0dXJuIGUuZm9yRWFjaChyPT5JLnNldChyKSksSX1zdGF0aWMgYWNjZXNzb3IodCl7bGV0IEk9KHRoaXNbZWVdPXRoaXNbZWVdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBnKG8pe2xldCBuPUNBKG8pO0lbbl18fCh6SShyLG8pLElbbl09ITApfXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKGcpOmcodCksdGhpc319O3RBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtpLnJlZHVjZURlc2NyaXB0b3JzKHRBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LHQpPT57bGV0IGU9dFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQoSSl7dGhpc1tlXT1JfX19KTtpLmZyZWV6ZU1ldGhvZHModEEpO3ZhciBwPXRBO2Z1bmN0aW9uIEJBKEEsdCl7bGV0IGU9dGhpc3x8QUEsST10fHxlLHI9cC5mcm9tKEkuaGVhZGVycyksZz1JLmRhdGE7cmV0dXJuIGkuZm9yRWFjaChBLGZ1bmN0aW9uKG4pe2c9bi5jYWxsKGUsZyxyLm5vcm1hbGl6ZSgpLHQ/dC5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksZ31mdW5jdGlvbiBhQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIEllKEEsdCxlKXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELHQsZSksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1pLmluaGVyaXRzKEllLHUse19fQ0FOQ0VMX186ITB9KTt2YXIgSD1JZTtmdW5jdGlvbiBRQShBLHQsZSl7bGV0IEk9ZS5jb25maWcudmFsaWRhdGVTdGF0dXM7IWUuc3RhdHVzfHwhSXx8SShlLnN0YXR1cyk/QShlKTp0KG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZS5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihlLnN0YXR1cy8xMDApLTRdLGUuY29uZmlnLGUucmVxdWVzdCxlKSl9ZnVuY3Rpb24gc3QoQSl7bGV0IHQ9L14oWy0rXFx3XXsxLDI1fSkoOj9cXC9cXC98OikvLmV4ZWMoQSk7cmV0dXJuIHQmJnRbMV18fCIifWZ1bmN0aW9uIHZJKEEsdCl7QT1BfHwxMDtsZXQgZT1uZXcgQXJyYXkoQSksST1uZXcgQXJyYXkoQSkscj0wLGc9MCxvO3JldHVybiB0PXQhPT12b2lkIDA/dDoxZTMsZnVuY3Rpb24oRSl7bGV0IEI9RGF0ZS5ub3coKSxzPUlbZ107b3x8KG89QiksZVtyXT1FLElbcl09QjtsZXQgQz1nLGw9MDtmb3IoO0MhPT1yOylsKz1lW0MrK10sQz1DJUE7aWYocj0ocisxKSVBLHI9PT1nJiYoZz0oZysxKSVBKSxCLW88dClyZXR1cm47bGV0IGE9cyYmQi1zO3JldHVybiBhP01hdGgucm91bmQobCoxZTMvYSk6dm9pZCAwfX12YXIgcmU9dkk7ZnVuY3Rpb24gJEkoQSx0KXtsZXQgZT0wLEk9MWUzL3QscixnLG89KEIscz1EYXRlLm5vdygpKT0+e2U9cyxyPW51bGwsZyYmKGNsZWFyVGltZW91dChnKSxnPW51bGwpLEEoLi4uQil9O3JldHVyblsoLi4uQik9PntsZXQgcz1EYXRlLm5vdygpLEM9cy1lO0M+PUk/byhCLHMpOihyPUIsZ3x8KGc9c2V0VGltZW91dCgoKT0+e2c9bnVsbCxvKHIpfSxJLUMpKSl9LCgpPT5yJiZvKHIpXX12YXIgb2U9JEk7dmFyIGVBPShBLHQsZT0zKT0+e2xldCBJPTAscj1yZSg1MCwyNTApO3JldHVybiBvZShnPT57bGV0IG89Zy5sb2FkZWQsbj1nLmxlbmd0aENvbXB1dGFibGU/Zy50b3RhbDp2b2lkIDAsRT1vLUksQj1yKEUpLHM9bzw9bjtJPW87bGV0IEM9e2xvYWRlZDpvLHRvdGFsOm4scHJvZ3Jlc3M6bj9vL246dm9pZCAwLGJ5dGVzOkUscmF0ZTpCfHx2b2lkIDAsZXN0aW1hdGVkOkImJm4mJnM/KG4tbykvQjp2b2lkIDAsZXZlbnQ6ZyxsZW5ndGhDb21wdXRhYmxlOm4hPW51bGwsW3Q/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0EoQyl9LGUpfSxudD0oQSx0KT0+e2xldCBlPUEhPW51bGw7cmV0dXJuW0k9PnRbMF0oe2xlbmd0aENvbXB1dGFibGU6ZSx0b3RhbDpBLGxvYWRlZDpJfSksdFsxXV19LEN0PUE9PiguLi50KT0+aS5hc2FwKCgpPT5BKC4uLnQpKTt2YXIgZ2U9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLHQpPT5lPT4oZT1uZXcgVVJMKGUsaC5vcmlnaW4pLEEucHJvdG9jb2w9PT1lLnByb3RvY29sJiZBLmhvc3Q9PT1lLmhvc3QmJih0fHxBLnBvcnQ9PT1lLnBvcnQpKSkobmV3IFVSTChoLm9yaWdpbiksaC5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoaC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBpZT1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSx0LGUsSSxyLGcpe2xldCBvPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQodCldO2kuaXNOdW1iZXIoZSkmJm8ucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKGUpLnRvR01UU3RyaW5nKCkpLGkuaXNTdHJpbmcoSSkmJm8ucHVzaCgicGF0aD0iK0kpLGkuaXNTdHJpbmcocikmJm8ucHVzaCgiZG9tYWluPSIrciksZz09PSEwJiZvLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1vLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXFxccyopKCIrQSsiKT0oW147XSopIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIEJ0KEEpe3JldHVybi9eKFthLXpdW2EtelxcZCtcXC0uXSo6KT9cXC9cXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIGF0KEEsdCl7cmV0dXJuIHQ/QS5yZXBsYWNlKC9cXC8/XFwvJC8sIiIpKyIvIit0LnJlcGxhY2UoL15cXC8rLywiIik6QX1mdW5jdGlvbiBFQShBLHQsZSl7bGV0IEk9IUJ0KHQpO3JldHVybiBBJiYoSXx8ZT09ITEpP2F0KEEsdCk6dH12YXIgc2U9QT0+QSBpbnN0YW5jZW9mIHA/ey4uLkF9OkE7ZnVuY3Rpb24gYihBLHQpe3Q9dHx8e307bGV0IGU9e307ZnVuY3Rpb24gSShCLHMsQyxsKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KEIpJiZpLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZS5jYWxsKHtjYXNlbGVzczpsfSxCLHMpOmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlKHt9LHMpOmkuaXNBcnJheShzKT9zLnNsaWNlKCk6c31mdW5jdGlvbiByKEIscyxDLGwpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKEIpKXJldHVybiBJKHZvaWQgMCxCLEMsbCl9ZWxzZSByZXR1cm4gSShCLHMsQyxsKX1mdW5jdGlvbiBnKEIscyl7aWYoIWkuaXNVbmRlZmluZWQocykpcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIG8oQixzKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gSSh2b2lkIDAsQil9ZWxzZSByZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gbihCLHMsQyl7aWYoQyBpbiB0KXJldHVybiBJKEIscyk7aWYoQyBpbiBBKXJldHVybiBJKHZvaWQgMCxCKX1sZXQgRT17dXJsOmcsbWV0aG9kOmcsZGF0YTpnLGJhc2VVUkw6byx0cmFuc2Zvcm1SZXF1ZXN0Om8sdHJhbnNmb3JtUmVzcG9uc2U6byxwYXJhbXNTZXJpYWxpemVyOm8sdGltZW91dDpvLHRpbWVvdXRNZXNzYWdlOm8sd2l0aENyZWRlbnRpYWxzOm8sd2l0aFhTUkZUb2tlbjpvLGFkYXB0ZXI6byxyZXNwb25zZVR5cGU6byx4c3JmQ29va2llTmFtZTpvLHhzcmZIZWFkZXJOYW1lOm8sb25VcGxvYWRQcm9ncmVzczpvLG9uRG93bmxvYWRQcm9ncmVzczpvLGRlY29tcHJlc3M6byxtYXhDb250ZW50TGVuZ3RoOm8sbWF4Qm9keUxlbmd0aDpvLGJlZm9yZVJlZGlyZWN0Om8sdHJhbnNwb3J0Om8saHR0cEFnZW50Om8saHR0cHNBZ2VudDpvLGNhbmNlbFRva2VuOm8sc29ja2V0UGF0aDpvLHJlc3BvbnNlRW5jb2Rpbmc6byx2YWxpZGF0ZVN0YXR1czpuLGhlYWRlcnM6KEIscyxDKT0+cihzZShCKSxzZShzKSxDLCEwKX07cmV0dXJuIGkuZm9yRWFjaChPYmplY3Qua2V5cyh7Li4uQSwuLi50fSksZnVuY3Rpb24ocyl7bGV0IEM9RVtzXXx8cixsPUMoQVtzXSx0W3NdLHMpO2kuaXNVbmRlZmluZWQobCkmJkMhPT1ufHwoZVtzXT1sKX0pLGV9dmFyIFlBPUE9PntsZXQgdD1iKHt9LEEpLHtkYXRhOmUsd2l0aFhTUkZUb2tlbjpJLHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6ZyxoZWFkZXJzOm8sYXV0aDpufT10O2lmKHQuaGVhZGVycz1vPXAuZnJvbShvKSx0LnVybD1uQShFQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxuJiZvLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgobi51c2VybmFtZXx8IiIpKyI6Iisobi5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQobi5wYXNzd29yZCkpOiIiKSkpLGkuaXNGb3JtRGF0YShlKSl7aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fGguaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KW8uc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKGkuaXNGdW5jdGlvbihlLmdldEhlYWRlcnMpKXtsZXQgRT1lLmdldEhlYWRlcnMoKSxCPVsiY29udGVudC10eXBlIiwiY29udGVudC1sZW5ndGgiXTtPYmplY3QuZW50cmllcyhFKS5mb3JFYWNoKChbcyxDXSk9PntCLmluY2x1ZGVzKHMudG9Mb3dlckNhc2UoKSkmJm8uc2V0KHMsQyl9KX19aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJihJJiZpLmlzRnVuY3Rpb24oSSkmJihJPUkodCkpLEl8fEkhPT0hMSYmZ2UodC51cmwpKSl7bGV0IEU9ciYmZyYmaWUucmVhZChnKTtFJiZvLnNldChyLEUpfXJldHVybiB0fTt2YXIgQXI9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixuZT1BciYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsSSl7bGV0IHI9WUEoQSksZz1yLmRhdGEsbz1wLmZyb20oci5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOm4sb25VcGxvYWRQcm9ncmVzczpFLG9uRG93bmxvYWRQcm9ncmVzczpCfT1yLHMsQyxsLGEsUTtmdW5jdGlvbiBmKCl7YSYmYSgpLFEmJlEoKSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiZyLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscyl9bGV0IGM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Mub3BlbihyLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHIudXJsLCEwKSxjLnRpbWVvdXQ9ci50aW1lb3V0O2Z1bmN0aW9uIEQoKXtpZighYylyZXR1cm47bGV0IHk9cC5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gYyYmYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksaz17ZGF0YTohbnx8bj09PSJ0ZXh0Inx8bj09PSJqc29uIj9jLnJlc3BvbnNlVGV4dDpjLnJlc3BvbnNlLHN0YXR1czpjLnN0YXR1cyxzdGF0dXNUZXh0OmMuc3RhdHVzVGV4dCxoZWFkZXJzOnksY29uZmlnOkEscmVxdWVzdDpjfTtRQShmdW5jdGlvbihHKXtlKEcpLGYoKX0sZnVuY3Rpb24oRyl7SShHKSxmKCl9LGspLGM9bnVsbH0ib25sb2FkZW5kImluIGM/Yy5vbmxvYWRlbmQ9RDpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFjfHxjLnJlYWR5U3RhdGUhPT00fHxjLnN0YXR1cz09PTAmJiEoYy5yZXNwb25zZVVSTCYmYy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoRCl9LGMub25hYm9ydD1mdW5jdGlvbigpe2MmJihJKG5ldyB1KCJSZXF1ZXN0IGFib3J0ZWQiLHUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbCl9LGMub25lcnJvcj1mdW5jdGlvbihSKXtsZXQgaz1SJiZSLm1lc3NhZ2U/Ui5tZXNzYWdlOiJOZXR3b3JrIEVycm9yIixQPW5ldyB1KGssdS5FUlJfTkVUV09SSyxBLGMpO1AuZXZlbnQ9Unx8bnVsbCxJKFApLGM9bnVsbH0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgUj1yLnRpbWVvdXQ/InRpbWVvdXQgb2YgIityLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsaz1yLnRyYW5zaXRpb25hbHx8YkE7ci50aW1lb3V0RXJyb3JNZXNzYWdlJiYoUj1yLnRpbWVvdXRFcnJvck1lc3NhZ2UpLEkobmV3IHUoUixrLmNsYXJpZnlUaW1lb3V0RXJyb3I/dS5FVElNRURPVVQ6dS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsfSxnPT09dm9pZCAwJiZvLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGMmJmkuZm9yRWFjaChvLnRvSlNPTigpLGZ1bmN0aW9uKFIsayl7Yy5zZXRSZXF1ZXN0SGVhZGVyKGssUil9KSxpLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGMud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLG4mJm4hPT0ianNvbiImJihjLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksQiYmKFtsLFFdPWVBKEIsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGwpKSxFJiZjLnVwbG9hZCYmKFtDLGFdPWVBKEUpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixDKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixhKSksKHIuY2FuY2VsVG9rZW58fHIuc2lnbmFsKSYmKHM9eT0+e2MmJihJKCF5fHx5LnR5cGU/bmV3IEgobnVsbCxBLGMpOnkpLGMuYWJvcnQoKSxjPW51bGwpfSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnN1YnNjcmliZShzKSxyLnNpZ25hbCYmKHIuc2lnbmFsLmFib3J0ZWQ/cygpOnIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixzKSkpO2xldCBGPXN0KHIudXJsKTtpZihGJiZoLnByb3RvY29scy5pbmRleE9mKEYpPT09LTEpe0kobmV3IHUoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrRisiOiIsdS5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1jLnNlbmQoZ3x8bnVsbCl9KX07dmFyIHRyPShBLHQpPT57bGV0e2xlbmd0aDplfT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYodHx8ZSl7bGV0IEk9bmV3IEFib3J0Q29udHJvbGxlcixyLGc9ZnVuY3Rpb24oQil7aWYoIXIpe3I9ITAsbigpO2xldCBzPUIgaW5zdGFuY2VvZiBFcnJvcj9COnRoaXMucmVhc29uO0kuYWJvcnQocyBpbnN0YW5jZW9mIHU/czpuZXcgSChzIGluc3RhbmNlb2YgRXJyb3I/cy5tZXNzYWdlOnMpKX19LG89dCYmc2V0VGltZW91dCgoKT0+e289bnVsbCxnKG5ldyB1KGB0aW1lb3V0ICR7dH0gb2YgbXMgZXhjZWVkZWRgLHUuRVRJTUVET1VUKSl9LHQpLG49KCk9PntBJiYobyYmY2xlYXJUaW1lb3V0KG8pLG89bnVsbCxBLmZvckVhY2goQj0+e0IudW5zdWJzY3JpYmU/Qi51bnN1YnNjcmliZShnKTpCLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixnKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChCPT5CLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixnKSk7bGV0e3NpZ25hbDpFfT1JO3JldHVybiBFLnVuc3Vic2NyaWJlPSgpPT5pLmFzYXAobiksRX19LENlPXRyO3ZhciBlcj1mdW5jdGlvbiooQSx0KXtsZXQgZT1BLmJ5dGVMZW5ndGg7aWYoIXR8fGU8dCl7eWllbGQgQTtyZXR1cm59bGV0IEk9MCxyO2Zvcig7STxlOylyPUkrdCx5aWVsZCBBLnNsaWNlKEksciksST1yfSxJcj1hc3luYyBmdW5jdGlvbiooQSx0KXtmb3IgYXdhaXQobGV0IGUgb2YgcnIoQSkpeWllbGQqZXIoZSx0KX0scnI9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgdD1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOmUsdmFsdWU6SX09YXdhaXQgdC5yZWFkKCk7aWYoZSlicmVhazt5aWVsZCBJfX1maW5hbGx5e2F3YWl0IHQuY2FuY2VsKCl9fSxRdD0oQSx0LGUsSSk9PntsZXQgcj1JcihBLHQpLGc9MCxvLG49RT0+e298fChvPSEwLEkmJkkoRSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKEUpe3RyeXtsZXR7ZG9uZTpCLHZhbHVlOnN9PWF3YWl0IHIubmV4dCgpO2lmKEIpe24oKSxFLmNsb3NlKCk7cmV0dXJufWxldCBDPXMuYnl0ZUxlbmd0aDtpZihlKXtsZXQgbD1nKz1DO2UobCl9RS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHMpKX1jYXRjaChCKXt0aHJvdyBuKEIpLEJ9fSxjYW5jZWwoRSl7cmV0dXJuIG4oRSksci5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIEJlPTY0KjEwMjQse2lzRnVuY3Rpb246cUF9PWksY2U9KCh7ZmV0Y2g6QSxSZXF1ZXN0OnQsUmVzcG9uc2U6ZX0pPT4oe2ZldGNoOkEsUmVxdWVzdDp0LFJlc3BvbnNlOmV9KSkoaS5nbG9iYWwpLHtSZWFkYWJsZVN0cmVhbTphZSxUZXh0RW5jb2RlcjpRZX09aS5nbG9iYWwsRWU9KEEsLi4udCk9Pnt0cnl7cmV0dXJuISFBKC4uLnQpfWNhdGNoe3JldHVybiExfX0sb3I9QT0+e2xldHtmZXRjaDp0LFJlcXVlc3Q6ZSxSZXNwb25zZTpJfT1PYmplY3QuYXNzaWduKHt9LGNlLEEpLHI9cUEodCksZz1xQShlKSxvPXFBKEkpO2lmKCFyKXJldHVybiExO2xldCBuPXImJnFBKGFlKSxFPXImJih0eXBlb2YgUWU9PSJmdW5jdGlvbiI/KFE9PmY9PlEuZW5jb2RlKGYpKShuZXcgUWUpOmFzeW5jIFE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBlKFEpLmFycmF5QnVmZmVyKCkpKSxCPWcmJm4mJkVlKCgpPT57bGV0IFE9ITEsZj1uZXcgZShoLm9yaWdpbix7Ym9keTpuZXcgYWUsbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIFE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gUSYmIWZ9KSxzPW8mJm4mJkVlKCgpPT5pLmlzUmVhZGFibGVTdHJlYW0obmV3IEkoIiIpLmJvZHkpKSxDPXtzdHJlYW06cyYmKFE9PlEuYm9keSl9O3ImJlsidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChRPT57IUNbUV0mJihDW1FdPShmLGMpPT57bGV0IEQ9ZiYmZltRXTtpZihEKXJldHVybiBELmNhbGwoZik7dGhyb3cgbmV3IHUoYFJlc3BvbnNlIHR5cGUgXCcke1F9XCcgaXMgbm90IHN1cHBvcnRlZGAsdS5FUlJfTk9UX1NVUFBPUlQsYyl9KX0pO2xldCBsPWFzeW5jIFE9PntpZihRPT1udWxsKXJldHVybiAwO2lmKGkuaXNCbG9iKFEpKXJldHVybiBRLnNpemU7aWYoaS5pc1NwZWNDb21wbGlhbnRGb3JtKFEpKXJldHVybihhd2FpdCBuZXcgZShoLm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OlF9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcoUSl8fGkuaXNBcnJheUJ1ZmZlcihRKSlyZXR1cm4gUS5ieXRlTGVuZ3RoO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXMoUSkmJihRPVErIiIpLGkuaXNTdHJpbmcoUSkpcmV0dXJuKGF3YWl0IEUoUSkpLmJ5dGVMZW5ndGh9LGE9YXN5bmMoUSxmKT0+e2xldCBjPWkudG9GaW5pdGVOdW1iZXIoUS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiBjPz9sKGYpfTtyZXR1cm4gYXN5bmMgUT0+e2xldHt1cmw6ZixtZXRob2Q6YyxkYXRhOkQsc2lnbmFsOkYsY2FuY2VsVG9rZW46eSx0aW1lb3V0OlIsb25Eb3dubG9hZFByb2dyZXNzOmssb25VcGxvYWRQcm9ncmVzczpQLHJlc3BvbnNlVHlwZTpHLGhlYWRlcnM6V0Esd2l0aENyZWRlbnRpYWxzOmRBPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOm10fT1ZQShRKTtHPUc/KEcrIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBEQT1DZShbRix5JiZ5LnRvQWJvcnRTaWduYWwoKV0sUiksckE9bnVsbCxqPURBJiZEQS51bnN1YnNjcmliZSYmKCgpPT57REEudW5zdWJzY3JpYmUoKX0pLHd0O3RyeXtpZihQJiZCJiZjIT09ImdldCImJmMhPT0iaGVhZCImJih3dD1hd2FpdCBhKFdBLEQpKSE9PTApe2xldCBPPW5ldyBlKGYse21ldGhvZDoiUE9TVCIsYm9keTpELGR1cGxleDoiaGFsZiJ9KSxYO2lmKGkuaXNGb3JtRGF0YShEKSYmKFg9Ty5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZXQS5zZXRDb250ZW50VHlwZShYKSxPLmJvZHkpe2xldFtaQSxoQV09bnQod3QsZUEoQ3QoUCkpKTtEPVF0KE8uYm9keSxCZSxaQSxoQSl9fWkuaXNTdHJpbmcoZEEpfHwoZEE9ZEE/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IEo9ZyYmImNyZWRlbnRpYWxzImluIGUucHJvdG90eXBlLHB0PXsuLi5tdCxzaWduYWw6REEsbWV0aG9kOmMudG9VcHBlckNhc2UoKSxoZWFkZXJzOldBLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6RCxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOko/ZEE6dm9pZCAwfTtyQT1nJiZuZXcgZShmLHB0KTtsZXQgSz1hd2FpdChnP3QockEsbXQpOnQoZixwdCkpLFN0PXMmJihHPT09InN0cmVhbSJ8fEc9PT0icmVzcG9uc2UiKTtpZihzJiYoa3x8U3QmJmopKXtsZXQgTz17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChGdD0+e09bRnRdPUtbRnRdfSk7bGV0IFg9aS50b0Zpbml0ZU51bWJlcihLLmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbWkEsaEFdPWsmJm50KFgsZUEoQ3QoayksITApKXx8W107Sz1uZXcgSShRdChLLmJvZHksQmUsWkEsKCk9PntoQSYmaEEoKSxqJiZqKCl9KSxPKX1HPUd8fCJ0ZXh0IjtsZXQgSGU9YXdhaXQgQ1tpLmZpbmRLZXkoQyxHKXx8InRleHQiXShLLFEpO3JldHVybiFTdCYmaiYmaigpLGF3YWl0IG5ldyBQcm9taXNlKChPLFgpPT57UUEoTyxYLHtkYXRhOkhlLGhlYWRlcnM6cC5mcm9tKEsuaGVhZGVycyksc3RhdHVzOksuc3RhdHVzLHN0YXR1c1RleHQ6Sy5zdGF0dXNUZXh0LGNvbmZpZzpRLHJlcXVlc3Q6ckF9KX0pfWNhdGNoKEope3Rocm93IGomJmooKSxKJiZKLm5hbWU9PT0iVHlwZUVycm9yIiYmL0xvYWQgZmFpbGVkfGZldGNoL2kudGVzdChKLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IHUoIk5ldHdvcmsgRXJyb3IiLHUuRVJSX05FVFdPUkssUSxyQSkse2NhdXNlOkouY2F1c2V8fEp9KTp1LmZyb20oSixKJiZKLmNvZGUsUSxyQSl9fX0sZ3I9bmV3IE1hcCxFdD1BPT57bGV0IHQ9aS5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSxjZSxBP0EuZW52Om51bGwpLHtmZXRjaDplLFJlcXVlc3Q6SSxSZXNwb25zZTpyfT10LGc9W0kscixlXSxvPWcubGVuZ3RoLG49byxFLEIscz1ncjtmb3IoO24tLTspRT1nW25dLEI9cy5nZXQoRSksQj09PXZvaWQgMCYmcy5zZXQoRSxCPW4/bmV3IE1hcDpvcih0KSkscz1CO3JldHVybiBCfSxHZz1FdCgpO3ZhciBjdD17aHR0cDprQSx4aHI6bmUsZmV0Y2g6e2dldDpFdH19O2kuZm9yRWFjaChjdCwoQSx0KT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOnR9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6dH0pfX0pO3ZhciBmZT1BPT5gLSAke0F9YCxzcj1BPT5pLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsTUE9e2dldEFkYXB0ZXI6KEEsdCk9PntBPWkuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOmV9PUEsSSxyLGc9e307Zm9yKGxldCBvPTA7bzxlO28rKyl7ST1BW29dO2xldCBuO2lmKHI9SSwhc3IoSSkmJihyPWN0WyhuPVN0cmluZyhJKSkudG9Mb3dlckNhc2UoKV0scj09PXZvaWQgMCkpdGhyb3cgbmV3IHUoYFVua25vd24gYWRhcHRlciBcJyR7bn1cJ2ApO2lmKHImJihpLmlzRnVuY3Rpb24ocil8fChyPXIuZ2V0KHQpKSkpYnJlYWs7Z1tufHwiJTIzIitvXT1yfWlmKCFyKXtsZXQgbz1PYmplY3QuZW50cmllcyhnKS5tYXAoKFtFLEJdKT0+YGFkYXB0ZXIgJHtFfSBgKyhCPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSksbj1lP28ubGVuZ3RoPjE/YHNpbmNlIDolMEFgK28ubWFwKGZlKS5qb2luKGAlMEFgKToiICIrZmUob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK24sIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiByfSxhZGFwdGVyczpjdH07ZnVuY3Rpb24gZnQoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEgobnVsbCxBKX1mdW5jdGlvbiBLQShBKXtyZXR1cm4gZnQoQSksQS5oZWFkZXJzPXAuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1CQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksTUEuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fEFBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gZnQoQSksSS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1wLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gYUEoSSl8fChmdChBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1wLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIE9BPSIxLjEyLjAiO3ZhciBUQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsdCk9PntUQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKHQ8MT8ibiAiOiIgIikrQX19KTt2YXIgbGU9e307VEEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKHQsZSxJKXtmdW5jdGlvbiByKGcsbyl7cmV0dXJuIltBeGlvcyB2IitPQSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uIFwnIitnKyJcJyIrbysoST8iLiAiK0k6IiIpfXJldHVybihnLG8sbik9PntpZih0PT09ITEpdGhyb3cgbmV3IHUocihvLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKGU/IiBpbiAiK2U6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gZSYmIWxlW29dJiYobGVbb109ITAsY29uc29sZS53YXJuKHIobywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrZSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSx0P3QoZyxvLG4pOiEwfX07VEEuc3BlbGxpbmc9ZnVuY3Rpb24odCl7cmV0dXJuKGUsSSk9Pihjb25zb2xlLndhcm4oYCR7SX0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHt0fWApLCEwKX07ZnVuY3Rpb24gbnIoQSx0LGUpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IEk9T2JqZWN0LmtleXMoQSkscj1JLmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBnPUlbcl0sbz10W2ddO2lmKG8pe2xldCBuPUFbZ10sRT1uPT09dm9pZCAwfHxvKG4sZyxBKTtpZihFIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK2crIiBtdXN0IGJlICIrRSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZihlIT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIrZyx1LkVSUl9CQURfT1BUSU9OKX19dmFyIGNBPXthc3NlcnRPcHRpb25zOm5yLHZhbGlkYXRvcnM6VEF9O3ZhciBZPWNBLnZhbGlkYXRvcnMsSUE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5kZWZhdWx0cz10fHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgdHQscmVzcG9uc2U6bmV3IHR0fX1hc3luYyByZXF1ZXN0KHQsZSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KHQsZSl9Y2F0Y2goSSl7aWYoSSBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgZz1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXFxuLywiIik6IiI7dHJ5e0kuc3RhY2s/ZyYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChnLnJlcGxhY2UoL14uK1xcbi4rXFxuLywiIikpJiYoSS5zdGFjays9YCUwQWArZyk6SS5zdGFjaz1nfWNhdGNoe319dGhyb3cgSX19X3JlcXVlc3QodCxlKXt0eXBlb2YgdD09InN0cmluZyI/KGU9ZXx8e30sZS51cmw9dCk6ZT10fHx7fSxlPWIodGhpcy5kZWZhdWx0cyxlKTtsZXR7dHJhbnNpdGlvbmFsOkkscGFyYW1zU2VyaWFsaXplcjpyLGhlYWRlcnM6Z309ZTtJIT09dm9pZCAwJiZjQS5hc3NlcnRPcHRpb25zKEkse3NpbGVudEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbil9LCExKSxyIT1udWxsJiYoaS5pc0Z1bmN0aW9uKHIpP2UucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOnJ9OmNBLmFzc2VydE9wdGlvbnMocix7ZW5jb2RlOlkuZnVuY3Rpb24sc2VyaWFsaXplOlkuZnVuY3Rpb259LCEwKSksZS5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/ZS5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOmUuYWxsb3dBYnNvbHV0ZVVybHM9ITApLGNBLmFzc2VydE9wdGlvbnMoZSx7YmFzZVVybDpZLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpZLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSxlLm1ldGhvZD0oZS5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgbz1nJiZpLm1lcmdlKGcuY29tbW9uLGdbZS5tZXRob2RdKTtnJiZpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sUT0+e2RlbGV0ZSBnW1FdfSksZS5oZWFkZXJzPXAuY29uY2F0KG8sZyk7bGV0IG49W10sRT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oZil7dHlwZW9mIGYucnVuV2hlbj09ImZ1bmN0aW9uIiYmZi5ydW5XaGVuKGUpPT09ITF8fChFPUUmJmYuc3luY2hyb25vdXMsbi51bnNoaWZ0KGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpKX0pO2xldCBCPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oZil7Qi5wdXNoKGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpfSk7bGV0IHMsQz0wLGw7aWYoIUUpe2xldCBRPVtLQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKFEudW5zaGlmdCguLi5uKSxRLnB1c2goLi4uQiksbD1RLmxlbmd0aCxzPVByb21pc2UucmVzb2x2ZShlKTtDPGw7KXM9cy50aGVuKFFbQysrXSxRW0MrK10pO3JldHVybiBzfWw9bi5sZW5ndGg7bGV0IGE9ZTtmb3IoQz0wO0M8bDspe2xldCBRPW5bQysrXSxmPW5bQysrXTt0cnl7YT1RKGEpfWNhdGNoKGMpe2YuY2FsbCh0aGlzLGMpO2JyZWFrfX10cnl7cz1LQS5jYWxsKHRoaXMsYSl9Y2F0Y2goUSl7cmV0dXJuIFByb21pc2UucmVqZWN0KFEpfWZvcihDPTAsbD1CLmxlbmd0aDtDPGw7KXM9cy50aGVuKEJbQysrXSxCW0MrK10pO3JldHVybiBzfWdldFVyaSh0KXt0PWIodGhpcy5kZWZhdWx0cyx0KTtsZXQgZT1FQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIG5BKGUsdC5wYXJhbXMsdC5wYXJhbXNTZXJpYWxpemVyKX19O2kuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24odCl7SUEucHJvdG90eXBlW3RdPWZ1bmN0aW9uKGUsSSl7cmV0dXJuIHRoaXMucmVxdWVzdChiKEl8fHt9LHttZXRob2Q6dCx1cmw6ZSxkYXRhOihJfHx7fSkuZGF0YX0pKX19KTtpLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKEkpe3JldHVybiBmdW5jdGlvbihnLG8sbil7cmV0dXJuIHRoaXMucmVxdWVzdChiKG58fHt9LHttZXRob2Q6dCxoZWFkZXJzOkk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOmcsZGF0YTpvfSkpfX1JQS5wcm90b3R5cGVbdF09ZSgpLElBLnByb3RvdHlwZVt0KyJGb3JtIl09ZSghMCl9KTt2YXIgZkE9SUE7dmFyIGx0PWNsYXNzIEF7Y29uc3RydWN0b3IodCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCBlO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihnKXtlPWd9KTtsZXQgST10aGlzO3RoaXMucHJvbWlzZS50aGVuKHI9PntpZighSS5fbGlzdGVuZXJzKXJldHVybjtsZXQgZz1JLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7Zy0tID4wOylJLl9saXN0ZW5lcnNbZ10ocik7SS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1yPT57bGV0IGcsbz1uZXcgUHJvbWlzZShuPT57SS5zdWJzY3JpYmUobiksZz1ufSkudGhlbihyKTtyZXR1cm4gby5jYW5jZWw9ZnVuY3Rpb24oKXtJLnVuc3Vic2NyaWJlKGcpfSxvfSx0KGZ1bmN0aW9uKGcsbyxuKXtJLnJlYXNvbnx8KEkucmVhc29uPW5ldyBIKGcsbyxuKSxlKEkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKHQpe2lmKHRoaXMucmVhc29uKXt0KHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKHQpOnRoaXMuX2xpc3RlbmVycz1bdF19dW5zdWJzY3JpYmUodCl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IGU9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YodCk7ZSE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKGUsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCB0PW5ldyBBYm9ydENvbnRyb2xsZXIsZT1JPT57dC5hYm9ydChJKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKGUpLHQuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKGUpLHQuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgdDtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24ocil7dD1yfSksY2FuY2VsOnR9fX0sdWU9bHQ7ZnVuY3Rpb24gdXQoQSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBBLmFwcGx5KG51bGwsZSl9fWZ1bmN0aW9uIGR0KEEpe3JldHVybiBpLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBEdD17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoRHQpLmZvckVhY2goKFtBLHRdKT0+e0R0W3RdPUF9KTt2YXIgZGU9RHQ7ZnVuY3Rpb24gRGUoQSl7bGV0IHQ9bmV3IGZBKEEpLGU9b0EoZkEucHJvdG90eXBlLnJlcXVlc3QsdCk7cmV0dXJuIGkuZXh0ZW5kKGUsZkEucHJvdG90eXBlLHQse2FsbE93bktleXM6ITB9KSxpLmV4dGVuZChlLHQsbnVsbCx7YWxsT3duS2V5czohMH0pLGUuY3JlYXRlPWZ1bmN0aW9uKHIpe3JldHVybiBEZShiKEEscikpfSxlfXZhciBtPURlKEFBKTttLkF4aW9zPWZBO20uQ2FuY2VsZWRFcnJvcj1IO20uQ2FuY2VsVG9rZW49dWU7bS5pc0NhbmNlbD1hQTttLlZFUlNJT049T0E7bS50b0Zvcm1EYXRhPVQ7bS5BeGlvc0Vycm9yPXU7bS5DYW5jZWw9bS5DYW5jZWxlZEVycm9yO20uYWxsPWZ1bmN0aW9uKHQpe3JldHVybiBQcm9taXNlLmFsbCh0KX07bS5zcHJlYWQ9dXQ7bS5pc0F4aW9zRXJyb3I9ZHQ7bS5tZXJnZUNvbmZpZz1iO20uQXhpb3NIZWFkZXJzPXA7bS5mb3JtVG9KU09OPUE9PkpBKGkuaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7bS5nZXRBZGFwdGVyPU1BLmdldEFkYXB0ZXI7bS5IdHRwU3RhdHVzQ29kZT1kZTttLmRlZmF1bHQ9bTt2YXIgeEE9bTt2YXJ7QXhpb3M6UmksQXhpb3NFcnJvcjpOaSxDYW5jZWxlZEVycm9yOlVpLGlzQ2FuY2VsOkdpLENhbmNlbFRva2VuOmtpLFZFUlNJT046TGksYWxsOmJpLENhbmNlbDpKaSxpc0F4aW9zRXJyb3I6SGksc3ByZWFkOllpLHRvRm9ybURhdGE6cWksQXhpb3NIZWFkZXJzOk1pLEh0dHBTdGF0dXNDb2RlOktpLGZvcm1Ub0pTT046T2ksZ2V0QWRhcHRlcjpUaSxtZXJnZUNvbmZpZzp4aX09eEE7dmFyIGxBLE0seXQsaHQ9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXt5dD1uZXcgVWludDhBcnJheShNLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sUEE9Y2xhc3N7aW5pdCgpe3JldHVybiBsQXx8KHR5cGVvZiBmZXRjaDwidSI/bEE9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitoZSkudGhlbih0PT50LmFycmF5QnVmZmVyKCkpLnRoZW4odD0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUodCxodCkpLnRoZW4odGhpcy5faW5pdCk6bEE9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oaGUsImJhc2U2NCIpLGh0KS50aGVuKHRoaXMuX2luaXQpLGxBKX1faW5pdCh0KXtNPXQuaW5zdGFuY2UsaHQuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKHQsZT0wKXtpZighTSl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgST10LmJ5dGVMZW5ndGgscj1NLmV4cG9ydHMubWFsbG9jKEkpO3l0LnNldCh0LHIpLGU9ZXx8TnVtYmVyKE0uZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKHIsSSkpO2xldCBnPU0uZXhwb3J0cy5tYWxsb2MoZSksbz1NLmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKGcsZSxyLEkpLG49eXQuc2xpY2UoZyxnK28pO3JldHVybiBNLmV4cG9ydHMuZnJlZShyKSxNLmV4cG9ydHMuZnJlZShnKSxufX0saGU9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgeWU9bmV3IFBBLG1lPSExO2FzeW5jIGZ1bmN0aW9uIENyKEEsdCxlKXtsZXQgST1udWxsO3R5cGVvZiBBIT0ic3RyaW5nIj9JPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9JPUE6ST1gJHt0fS8ke0F9YCxJLmVuZHNXaXRoKCIuanMiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC0zKSksSS5lbmRzV2l0aCgiLndhc20iKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC01KSksSS5lbmRzV2l0aCgiLndhc20uenN0IikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtOSkpO2xldCByPWAke0l9Lndhc21gLGc9YXdhaXQgeEEuZ2V0KGAke3J9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczplfSk7bWV8fChhd2FpdCB5ZS5pbml0KCksbWU9ITApO2xldCBuPXllLmRlY29kZShuZXcgVWludDhBcnJheShnLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtJfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5Om59KX12YXIgd2U9Q3I7dmFyIGpBPW5ldyBNYXA7YXN5bmMgZnVuY3Rpb24gQnIoQSx0LGUpe2xldCBJPUEscj1BLGc9bnVsbDtyZXR1cm4gdHlwZW9mIEEhPSJzdHJpbmciJiYoST1uZXcgVVJMKEEuaHJlZikscj1JLmhyZWYpLGpBLmhhcyhyKT9nPWF3YWl0IGpBLmdldChyKTooakEuc2V0KHIsd2UoSSx0LGUpKSxnPWF3YWl0IGpBLmdldChyKSksZ312YXIgcGU9QnI7dmFyIGFyPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxkPWFyO3ZhciBRcj17SW50ODoiaW50OCIsVUludDg6InVpbnQ4IixJbnQxNjoiaW50MTYiLFVJbnQxNjoidWludDE2IixJbnQzMjoiaW50MzIiLFVJbnQzMjoidWludDMyIixJbnQ2NDoiaW50NjQiLFVJbnQ2NDoidWludDY0IixTaXplVmFsdWVUeXBlOiJ1aW50NjQiLElkZW50aWZpZXJUeXBlOiJ1aW50NjQiLEluZGV4VmFsdWVUeXBlOiJpbnQ2NCIsT2Zmc2V0VmFsdWVUeXBlOiJpbnQ2NCJ9LFU9UXI7dmFyIEVyPXtGbG9hdDMyOiJmbG9hdDMyIixGbG9hdDY0OiJmbG9hdDY0IixTcGFjZVByZWNpc2lvblR5cGU6ImZsb2F0NjQifSxWPUVyO2Z1bmN0aW9uIGNyKEEsdCl7bGV0IGU9bnVsbDtzd2l0Y2goQSl7Y2FzZSBVLlVJbnQ4OntlPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ4OntlPW5ldyBJbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQxNjp7ZT1uZXcgVWludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDE2OntlPW5ldyBJbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50MzI6e2U9bmV3IFVpbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQzMjp7ZT1uZXcgSW50MzJBcnJheSh0KTticmVha31jYXNlIFUuVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdVaW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdJbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBWLkZsb2F0MzI6e2U9bmV3IEZsb2F0MzJBcnJheSh0KTticmVha31jYXNlIFYuRmxvYXQ2NDp7ZT1uZXcgRmxvYXQ2NEFycmF5KHQpO2JyZWFrfWNhc2UibnVsbCI6e2U9bnVsbDticmVha31jYXNlIG51bGw6e2U9bnVsbDticmVha31kZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZSBpcyBub3Qgc3VwcG9ydGVkIGFzIGEgVHlwZWRBcnJheSIpfXJldHVybiBlfXZhciBxPWNyO3ZhciBSZT10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixTZT1uZXcgVGV4dEVuY29kZXIsRmU9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIGZyKEEsdCl7bGV0IGU9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0sST1BLmZzX29wZW4odCxlLmZsYWdzKSxnPUEuZnNfc3RhdCh0KS5zaXplLG89bnVsbDtSZT9vPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihnKTpvPW5ldyBBcnJheUJ1ZmZlcihnKTtsZXQgbj1uZXcgVWludDhBcnJheShvKTtyZXR1cm4gQS5mc19yZWFkKEksbiwwLGcsMCksQS5mc19jbG9zZShJKSxufWZ1bmN0aW9uIE5lKEEsdCxlKXtsZXQgST1udWxsO1JlP0k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKGUpOkk9bmV3IEFycmF5QnVmZmVyKGUpO2xldCByPW5ldyBVaW50OEFycmF5KEkpLGc9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLHQsZSk7cmV0dXJuIHIuc2V0KGcpLHJ9ZnVuY3Rpb24gdyhBLHQsZSxJKXtsZXQgcj0wO3JldHVybiB0IT09bnVsbCYmKHI9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxJLHQuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkodC5idWZmZXIpLHIpKSxyfWZ1bmN0aW9uIHgoQSx0LGUpe2xldCBJPUpTT04uc3RyaW5naWZ5KHQpLHI9QS5sZW5ndGhCeXRlc1VURjgoSSkrMSxnPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxyXSk7QS5zdHJpbmdUb1VURjgoSSxnLHIpfWZ1bmN0aW9uIFMoQSx0LGUsSSl7bGV0IHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksZz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxvPU5lKEEscixnKTtyZXR1cm4gcShJLG8uYnVmZmVyKX1mdW5jdGlvbiB1QShBLHQpe2xldCBlPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsdF0pLEk9QS5VVEY4VG9TdHJpbmcoZSk7cmV0dXJuIEpTT04ucGFyc2UoSSl9ZnVuY3Rpb24gbHIoQSx0LGUsSSl7SSE9bnVsbCYmSS5sZW5ndGg+MCYmSS5mb3JFYWNoKGZ1bmN0aW9uKEIscyl7c3dpdGNoKEIudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBDPVNlLmVuY29kZShCLmRhdGEuZGF0YSksbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBDPVNlLmVuY29kZShKU09OLnN0cmluZ2lmeShCLmRhdGEpKSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBDPUIuZGF0YS5kYXRhLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBDPUIuZGF0YSxsPXcoQSxDLmRhdGEscywwKSxhPXcoQSxDLmRpcmVjdGlvbixzLDEpLFE9dHlwZW9mIEMubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oQy5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGY9e2ltYWdlVHlwZTpDLmltYWdlVHlwZSxuYW1lOkMubmFtZSxvcmlnaW46Qy5vcmlnaW4sc3BhY2luZzpDLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLHNpemU6Qy5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbWV0YWRhdGE6UX07eChBLGYscyk7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMuY2VsbHMscywxKSxRPXcoQSxDLnBvaW50RGF0YSxzLDIpLGY9dyhBLEMuY2VsbERhdGEscywzKSxjPXttZXNoVHlwZTpDLm1lc2hUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mQ2VsbHM6Qy5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLGNlbGxCdWZmZXJTaXplOkMuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczpDLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczpDLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07eChBLGMscyk7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgQz1CLmRhdGEsbD13KEEsQy5wb2ludHMscywwKSxhPXcoQSxDLnBvaW50RGF0YSxzLDEpLFE9e3BvaW50U2V0VHlwZTpDLnBvaW50U2V0VHlwZSxuYW1lOkMubmFtZSxudW1iZXJPZlBvaW50czpDLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWB9O3goQSxRLHMpO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgQz1CLmRhdGEsbD1bXSxhPTA7Qy5mb3JFYWNoKFE9PntsZXQgZj0iIixjPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEuZml4ZWRQYXJhbWV0ZXJzLHMsYSl9YCxhKz0xLGM9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5wYXJhbWV0ZXJzLHMsYSl9YCxhKz0xKTtsZXQgRD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpjLGZpeGVkUGFyYW1ldGVyczpmfTtsLnB1c2goRCl9KSx4KEEsbCxzKTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMudmVydGljZXMscywxKSxRPXcoQSxDLmxpbmVzLHMsMiksZj13KEEsQy5wb2x5Z29ucyxzLDMpLGM9dyhBLEMudHJpYW5nbGVTdHJpcHMscyw0KSxEPXcoQSxDLnBvaW50RGF0YSxzLDUpLEY9dyhBLEMucG9pbnREYXRhLHMsNikseT17cG9seURhdGFUeXBlOkMucG9seURhdGFUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHZlcnRpY2VzQnVmZmVyU2l6ZTpDLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YCxsaW5lc0J1ZmZlclNpemU6Qy5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOkMucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTpDLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtEfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOkMubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Rn1gfTt4KEEseSxzKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgcj1BLnN0YWNrU2F2ZSgpLGc9MDt0cnl7Zz1BLmNhbGxNYWluKHQuc2xpY2UoKSl9Y2F0Y2goQil7dGhyb3cgdHlwZW9mIEI9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoQikpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksQn1maW5hbGx5e0Euc3RhY2tSZXN0b3JlKHIpfWxldCBvPUEuZ2V0TW9kdWxlU3Rkb3V0KCksbj1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIGUhPW51bGwmJmUubGVuZ3RoPjAmJmc9PT0wJiZlLmZvckVhY2goZnVuY3Rpb24oQixzKXtsZXQgQz1udWxsO3N3aXRjaChCLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGEsUSk7Qz17ZGF0YTpGZS5kZWNvZGUoZil9O2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixhLFEpO0M9SlNPTi5wYXJzZShGZS5kZWNvZGUoZikpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSk7Qz17ZGF0YTpOZShBLGEsUSl9O2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoQi5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOmZyKEEsQi5kYXRhLnBhdGgpfTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBhPXVBKEEscyk7YS5kYXRhPVMoQSxzLDAsYS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksYS5kaXJlY3Rpb249UyhBLHMsMSxWLkZsb2F0NjQpLGEubWV0YWRhdGE9bmV3IE1hcChhLm1ldGFkYXRhKSxDPWE7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOmEucG9pbnRzPXEoYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mQ2VsbHM+MD9hLmNlbGxzPVMoQSxzLDEsYS5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6YS5jZWxscz1xKGEubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscywyLGEubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscywzLGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6YS5jZWxsRGF0YT1xKGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTphLnBvaW50cz1xKGEucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDEsYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBhPXVBKEEscyksUT0wO2EuZm9yRWFjaCgoZixjKT0+e2YudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihhW2NdLmZpeGVkUGFyYW1ldGVycz1TKEEscyxRLFYuRmxvYXQ2NCkpLFErPTEsZi5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKGFbY10ucGFyYW1ldGVycz1TKEEscyxRLGYudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxDPWE7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgYT11QShBLHMpO2EubnVtYmVyT2ZQb2ludHM+MD9hLnBvaW50cz1TKEEscywwLFYuRmxvYXQzMik6YS5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxhLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP2EudmVydGljZXM9UyhBLHMsMSxVLlVJbnQzMik6YS52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksYS5saW5lc0J1ZmZlclNpemU+MD9hLmxpbmVzPVMoQSxzLDIsVS5VSW50MzIpOmEubGluZXM9bmV3IFVpbnQzMkFycmF5LGEucG9seWdvbnNCdWZmZXJTaXplPjA/YS5wb2x5Z29ucz1TKEEscywzLFUuVUludDMyKTphLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxhLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP2EudHJpYW5nbGVTdHJpcHM9UyhBLHMsNCxVLlVJbnQzMik6YS50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsNSxhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscyw2LGEucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOmEuY2VsbERhdGE9cShhLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IGw9e3R5cGU6Qi50eXBlLGRhdGE6Q307RS5wdXNoKGwpfSkse3JldHVyblZhbHVlOmcsc3Rkb3V0Om8sc3RkZXJyOm4sb3V0cHV0czpFfX12YXIgVWU9bHI7dmFyIHVyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBkcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IGU9W107Zm9yKGxldCBJPTA7STxBLmxlbmd0aDtJKyspe2xldCByPURyKEFbSV0sdCk7ciE9PW51bGwmJmUucHVzaChyKX1yZXR1cm4gZX1mdW5jdGlvbiBEcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IGU9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/ZT1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJihlPUEpLHVyJiZlIGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDp0P2U6ZS5zbGljZSgwKX12YXIgR2U9ZHI7ZnVuY3Rpb24gaHIoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIGtlPWhyO2Z1bmN0aW9uIHlyKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBMZT15cjtmdW5jdGlvbiBtcihBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgYmU9bXI7YXN5bmMgZnVuY3Rpb24gd3IoQSx0LGUsSSl7bGV0IHI9VWUoQSx0LGUsSSksZz1bXTtyZXR1cm4gci5vdXRwdXRzLmZvckVhY2goZnVuY3Rpb24obyl7aWYoby50eXBlPT09ZC5CaW5hcnlTdHJlYW18fG8udHlwZT09PWQuQmluYXJ5RmlsZSl7bGV0IG49by5kYXRhO2cucHVzaChuKX1lbHNlIGlmKG8udHlwZT09PWQuSW1hZ2Upe2xldCBuPW8uZGF0YTtnLnB1c2goLi4ua2UobikpfWVsc2UgaWYoby50eXBlPT09ZC5NZXNoKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKC4uLkxlKG4pKX1lbHNlIGlmKG8udHlwZT09PWQuUG9seURhdGEpe2xldCBuPW8uZGF0YTtnLnB1c2goLi4uYmUobikpfX0pLF9BKHIsR2UoZywhMCkpfXZhciBKZT13cjt2YXIgcHI9e3J1blBpcGVsaW5lOmFzeW5jIGZ1bmN0aW9uKEEsdCxlLEkscixnKXtsZXQgbz1hd2FpdCBwZShBLHQsZyk7cmV0dXJuIGF3YWl0IEplKG8sZSxJLHIpfX07RkEocHIpOyUwQS8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246JTBBJTBBY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczolMEEgICgqKiUwQSAgICogQGxpY2Vuc2UlMEEgICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMlMEEgICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wJTBBICAgKiklMEEqLyUwQSc7c3IoUXIpO2V4cG9ydHtsSSBhcyBhcHBseVByZXNlbnRhdGlvblN0YXRlVG9JbWFnZSxrIGFzIGdldERlZmF1bHRXZWJXb3JrZXIseSBhcyBnZXRQaXBlbGluZVdvcmtlclVybCx3IGFzIGdldFBpcGVsaW5lc0Jhc2VVcmwsdUkgYXMgcmVhZERpY29tRW5jYXBzdWxhdGVkUGRmLHlJIGFzIHJlYWREaWNvbVRhZ3MsRkkgYXMgcmVhZEltYWdlRGljb21GaWxlU2VyaWVzLHhlIGFzIHJlYWRJbWFnZURpY29tRmlsZVNlcmllc1dvcmtlckZ1bmN0aW9uLE5JIGFzIHJlYWRPdmVybGFwcGluZ1NlZ21lbnRhdGlvbixrSSBhcyByZWFkU2VnbWVudGF0aW9uLGJzIGFzIHNldERlZmF1bHRXZWJXb3JrZXIsc3IgYXMgc2V0UGlwZWxpbmVXb3JrZXJVcmwsU3MgYXMgc2V0UGlwZWxpbmVzQmFzZVVybCxwSSBhcyBzdHJ1Y3R1cmVkUmVwb3J0VG9IdG1sLG1JIGFzIHN0cnVjdHVyZWRSZXBvcnRUb1RleHQsZWUgYXMgdmVyc2lvbixISSBhcyB3cml0ZU11bHRpU2VnbWVudGF0aW9uLEpJIGFzIHdyaXRlT3ZlcmxhcHBpbmdTZWdtZW50YXRpb24sVEkgYXMgd3JpdGVSdFN0cnVjdCxiSSBhcyB3cml0ZVNlZ21lbnRhdGlvbn07Ci8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246Cgpjb21saW5rL2Rpc3QvZXNtL2NvbWxpbmsubWpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiAgICopCiovCg==""" default_config = JsPackageConfig(default_js_module) js_package = JsPackage(default_config) diff --git a/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/js_package.py b/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/js_package.py index 3daae3d7d..afec5715a 100644 --- a/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/js_package.py +++ b/packages/downsample/python/itkwasm-downsample-emscripten/itkwasm_downsample_emscripten/js_package.py @@ -3,6 +3,6 @@ from itkwasm.pyodide import JsPackageConfig, JsPackage from ._version import __version__ -default_js_module = """data:text/javascript;base64,dmFyIEt0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgT3Q9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlLdChBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIFR0PSIxLjcuMSIsUEE9VHQ7dmFyIHh0PXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0saz14dDt2YXIgUHQ9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LGo9UHQ7ZnVuY3Rpb24gV3QoQSxlKXtsZXQgdD1udWxsO3N3aXRjaChBKXtjYXNlIGsuVUludDg6e3Q9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBrLkludDg6e3Q9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIGsuVUludDE2Ont0PW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIGsuSW50MTY6e3Q9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBrLlVJbnQzMjp7dD1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBrLkludDMyOnt0PW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2Ugay5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBrLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ0ludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIGouRmxvYXQzMjp7dD1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2Ugai5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIEo9V3Q7dmFyIGp0PXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxwPWp0O3ZhciBGZT1TeW1ib2woIkNvbWxpbmsucHJveHkiKSx2dD1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSx2QT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksV0E9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLGRBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxSZT1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixadD17Y2FuSGFuZGxlOkE9PlJlKEEpJiZBW0ZlXSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBVZShBLGUpLFt0LFt0XV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksWkEoQSl9fSxWdD17Y2FuSGFuZGxlOkE9PlJlKEEpJiZkQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCBlO3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW2UsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sa2U9bmV3IE1hcChbWyJwcm94eSIsWnRdLFsidGhyb3ciLFZ0XV0pO2Z1bmN0aW9uIFh0KEEsZSl7Zm9yKGxldCB0IG9mIEEpaWYoZT09PXR8fHQ9PT0iKiJ8fHQgaW5zdGFuY2VvZiBSZWdFeHAmJnQudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBVZShBLGU9Z2xvYmFsVGhpcyx0PVsiKiJdKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIEkocil7aWYoIXJ8fCFyLmRhdGEpcmV0dXJuO2lmKCFYdCh0LHIub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiAnJHtyLm9yaWdpbn0nIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDpnLHR5cGU6aSxwYXRoOnN9PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LHIuZGF0YSksRT0oci5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcCh2KSxCO3RyeXtsZXQgbz1zLnNsaWNlKDAsLTEpLnJlZHVjZSgoYyxDKT0+Y1tDXSxBKSxhPXMucmVkdWNlKChjLEMpPT5jW0NdLEEpO3N3aXRjaChpKXtjYXNlIkdFVCI6Qj1hO2JyZWFrO2Nhc2UiU0VUIjpvW3Muc2xpY2UoLTEpWzBdXT12KHIuZGF0YS52YWx1ZSksQj0hMDticmVhaztjYXNlIkFQUExZIjpCPWEuYXBwbHkobyxFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCBjPW5ldyBhKC4uLkUpO0I9ZUkoYyl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTpjLHBvcnQyOkN9PW5ldyBNZXNzYWdlQ2hhbm5lbDtVZShBLEMpLEI9VkEoYyxbY10pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6Qj12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKG8pe0I9e3ZhbHVlOm8sW2RBXTowfX1Qcm9taXNlLnJlc29sdmUoQikuY2F0Y2gobz0+KHt2YWx1ZTpvLFtkQV06MH0pKS50aGVuKG89PntsZXRbYSxjXT15QShvKTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSx7aWQ6Z30pLGMpLGk9PT0iUkVMRUFTRSImJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLE5lKGUpLFdBIGluIEEmJnR5cGVvZiBBW1dBXT09ImZ1bmN0aW9uIiYmQVtXQV0oKSl9KS5jYXRjaChvPT57bGV0W2EsY109eUEoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFtkQV06MH0pO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGEpLHtpZDpnfSksYyl9KX0pLGUuc3RhcnQmJmUuc3RhcnQoKX1mdW5jdGlvbiB6dChBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBOZShBKXt6dChBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIFpBKEEsZSl7cmV0dXJuIGpBKEEsW10sZSl9ZnVuY3Rpb24gcEEoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIEdlKEEpe3JldHVybiBWKEEse3R5cGU6IlJFTEVBU0UifSkudGhlbigoKT0+e05lKEEpfSl9dmFyIGhBPW5ldyBXZWFrTWFwLERBPSJGaW5hbGl6YXRpb25SZWdpc3RyeSJpbiBnbG9iYWxUaGlzJiZuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoQT0+e2xldCBlPShoQS5nZXQoQSl8fDApLTE7aEEuc2V0KEEsZSksZT09PTAmJkdlKEEpfSk7ZnVuY3Rpb24gX3QoQSxlKXtsZXQgdD0oaEEuZ2V0KGUpfHwwKSsxO2hBLnNldChlLHQpLERBJiZEQS5yZWdpc3RlcihBLGUsQSl9ZnVuY3Rpb24gJHQoQSl7REEmJkRBLnVucmVnaXN0ZXIoQSl9ZnVuY3Rpb24gakEoQSxlPVtdLHQ9ZnVuY3Rpb24oKXt9KXtsZXQgST0hMSxyPW5ldyBQcm94eSh0LHtnZXQoZyxpKXtpZihwQShJKSxpPT09dkEpcmV0dXJuKCk9PnskdChyKSxHZShBKSxJPSEwfTtpZihpPT09InRoZW4iKXtpZihlLmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9PnJ9O2xldCBzPVYoQSx7dHlwZToiR0VUIixwYXRoOmUubWFwKEU9PkUudG9TdHJpbmcoKSl9KS50aGVuKHYpO3JldHVybiBzLnRoZW4uYmluZChzKX1yZXR1cm4gakEoQSxbLi4uZSxpXSl9LHNldChnLGkscyl7cEEoSSk7bGV0W0UsQl09eUEocyk7cmV0dXJuIFYoQSx7dHlwZToiU0VUIixwYXRoOlsuLi5lLGldLm1hcChvPT5vLnRvU3RyaW5nKCkpLHZhbHVlOkV9LEIpLnRoZW4odil9LGFwcGx5KGcsaSxzKXtwQShJKTtsZXQgRT1lW2UubGVuZ3RoLTFdO2lmKEU9PT12dClyZXR1cm4gVihBLHt0eXBlOiJFTkRQT0lOVCJ9KS50aGVuKHYpO2lmKEU9PT0iYmluZCIpcmV0dXJuIGpBKEEsZS5zbGljZSgwLC0xKSk7bGV0W0Isb109U2Uocyk7cmV0dXJuIFYoQSx7dHlwZToiQVBQTFkiLHBhdGg6ZS5tYXAoYT0+YS50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0sbykudGhlbih2KX0sY29uc3RydWN0KGcsaSl7cEEoSSk7bGV0W3MsRV09U2UoaSk7cmV0dXJuIFYoQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOmUubWFwKEI9PkIudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OnN9LEUpLnRoZW4odil9fSk7cmV0dXJuIF90KHIsQSkscn1mdW5jdGlvbiBBSShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBTZShBKXtsZXQgZT1BLm1hcCh5QSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLEFJKGUubWFwKHQ9PnRbMV0pKV19dmFyIExlPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIFZBKEEsZSl7cmV0dXJuIExlLnNldChBLGUpLEF9ZnVuY3Rpb24gZUkoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W0ZlXTohMH0pfWZ1bmN0aW9uIHlBKEEpe2ZvcihsZXRbZSx0XW9mIGtlKWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbSSxyXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTpJfSxyXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sTGUuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gdihBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBrZS5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIFYoQSxlLHQpe3JldHVybiBuZXcgUHJvbWlzZShJPT57bGV0IHI9dEkoKTtBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIGcoaSl7IWkuZGF0YXx8IWkuZGF0YS5pZHx8aS5kYXRhLmlkIT09cnx8KEEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZyksSShpLmRhdGEpKX0pLEEuc3RhcnQmJkEuc3RhcnQoKSxBLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOnJ9LGUpLHQpfSl9ZnVuY3Rpb24gdEkoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfWZ1bmN0aW9uIHJBKEEsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkoZSxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6SUl9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOnpBfT1PYmplY3QsbUE9KEE9PmU9PntsZXQgdD1JSS5jYWxsKGUpO3JldHVybiBBW3RdfHwoQVt0XT10LnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksRz1BPT4oQT1BLnRvTG93ZXJDYXNlKCksZT0+bUEoZSk9PT1BKSxTQT1BPT5lPT50eXBlb2YgZT09PUEse2lzQXJyYXk6WH09QXJyYXksZ0E9U0EoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIHJJKEEpe3JldHVybiBBIT09bnVsbCYmIWdBKEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIWdBKEEuY29uc3RydWN0b3IpJiZVKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciBZZT1HKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIGdJKEEpe2xldCBlO3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/ZT1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6ZT1BJiZBLmJ1ZmZlciYmWWUoQS5idWZmZXIpLGV9dmFyIGlJPVNBKCJzdHJpbmciKSxVPVNBKCJmdW5jdGlvbiIpLEhlPVNBKCJudW1iZXIiKSxGQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLG9JPUE9PkE9PT0hMHx8QT09PSExLHdBPUE9PntpZihtQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCBlPXpBKEEpO3JldHVybihlPT09bnVsbHx8ZT09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PW51bGwpJiYhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiBBKSYmIShTeW1ib2wuaXRlcmF0b3IgaW4gQSl9LG5JPUcoIkRhdGUiKSxhST1HKCJGaWxlIiksc0k9RygiQmxvYiIpLEJJPUcoIkZpbGVMaXN0IiksQ0k9QT0+RkEoQSkmJlUoQS5waXBlKSxRST1BPT57bGV0IGU7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8VShBLmFwcGVuZCkmJigoZT1tQShBKSk9PT0iZm9ybWRhdGEifHxlPT09Im9iamVjdCImJlUoQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sRUk9RygiVVJMU2VhcmNoUGFyYW1zIiksW2xJLGNJLGZJLHVJXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChHKSxwST1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gaUEoQSxlLHthbGxPd25LZXlzOnQ9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgSSxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSxYKEEpKWZvcihJPTAscj1BLmxlbmd0aDtJPHI7SSsrKWUuY2FsbChudWxsLEFbSV0sSSxBKTtlbHNle2xldCBnPXQ/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSk6T2JqZWN0LmtleXMoQSksaT1nLmxlbmd0aCxzO2ZvcihJPTA7STxpO0krKylzPWdbSV0sZS5jYWxsKG51bGwsQVtzXSxzLEEpfX1mdW5jdGlvbiBNZShBLGUpe2U9ZS50b0xvd2VyQ2FzZSgpO2xldCB0PU9iamVjdC5rZXlzKEEpLEk9dC5sZW5ndGgscjtmb3IoO0ktLSA+MDspaWYocj10W0ldLGU9PT1yLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHI7cmV0dXJuIG51bGx9dmFyIFo9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Omdsb2JhbCxxZT1BPT4hZ0EoQSkmJkEhPT1aO2Z1bmN0aW9uIFhBKCl7bGV0e2Nhc2VsZXNzOkF9PXFlKHRoaXMpJiZ0aGlzfHx7fSxlPXt9LHQ9KEkscik9PntsZXQgZz1BJiZNZShlLHIpfHxyO3dBKGVbZ10pJiZ3QShJKT9lW2ddPVhBKGVbZ10sSSk6d0EoSSk/ZVtnXT1YQSh7fSxJKTpYKEkpP2VbZ109SS5zbGljZSgpOmVbZ109SX07Zm9yKGxldCBJPTAscj1hcmd1bWVudHMubGVuZ3RoO0k8cjtJKyspYXJndW1lbnRzW0ldJiZpQShhcmd1bWVudHNbSV0sdCk7cmV0dXJuIGV9dmFyIGRJPShBLGUsdCx7YWxsT3duS2V5czpJfT17fSk9PihpQShlLChyLGcpPT57dCYmVShyKT9BW2ddPXJBKHIsdCk6QVtnXT1yfSx7YWxsT3duS2V5czpJfSksQSksaEk9QT0+KEEuY2hhckNvZGVBdCgwKT09PTY1Mjc5JiYoQT1BLnNsaWNlKDEpKSxBKSxEST0oQSxlLHQsSSk9PntBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlLEkpLEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPUEsT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInN1cGVyIix7dmFsdWU6ZS5wcm90b3R5cGV9KSx0JiZPYmplY3QuYXNzaWduKEEucHJvdG90eXBlLHQpfSx5ST0oQSxlLHQsSSk9PntsZXQgcixnLGkscz17fTtpZihlPWV8fHt9LEE9PW51bGwpcmV0dXJuIGU7ZG97Zm9yKHI9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSksZz1yLmxlbmd0aDtnLS0gPjA7KWk9cltnXSwoIUl8fEkoaSxBLGUpKSYmIXNbaV0mJihlW2ldPUFbaV0sc1tpXT0hMCk7QT10IT09ITEmJnpBKEEpfXdoaWxlKEEmJighdHx8dChBLGUpKSYmQSE9PU9iamVjdC5wcm90b3R5cGUpO3JldHVybiBlfSx3ST0oQSxlLHQpPT57QT1TdHJpbmcoQSksKHQ9PT12b2lkIDB8fHQ+QS5sZW5ndGgpJiYodD1BLmxlbmd0aCksdC09ZS5sZW5ndGg7bGV0IEk9QS5pbmRleE9mKGUsdCk7cmV0dXJuIEkhPT0tMSYmST09PXR9LG1JPUE9PntpZighQSlyZXR1cm4gbnVsbDtpZihYKEEpKXJldHVybiBBO2xldCBlPUEubGVuZ3RoO2lmKCFIZShlKSlyZXR1cm4gbnVsbDtsZXQgdD1uZXcgQXJyYXkoZSk7Zm9yKDtlLS0gPjA7KXRbZV09QVtlXTtyZXR1cm4gdH0sU0k9KEE9PmU9PkEmJmUgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJnpBKFVpbnQ4QXJyYXkpKSxGST0oQSxlKT0+e2xldCBJPShBJiZBW1N5bWJvbC5pdGVyYXRvcl0pLmNhbGwoQSkscjtmb3IoOyhyPUkubmV4dCgpKSYmIXIuZG9uZTspe2xldCBnPXIudmFsdWU7ZS5jYWxsKEEsZ1swXSxnWzFdKX19LFJJPShBLGUpPT57bGV0IHQsST1bXTtmb3IoOyh0PUEuZXhlYyhlKSkhPT1udWxsOylJLnB1c2godCk7cmV0dXJuIEl9LGtJPUcoIkhUTUxGb3JtRWxlbWVudCIpLFVJPUE9PkEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9cc10oW2EtelxkXSkoXHcqKS9nLGZ1bmN0aW9uKHQsSSxyKXtyZXR1cm4gSS50b1VwcGVyQ2FzZSgpK3J9KSxKZT0oKHtoYXNPd25Qcm9wZXJ0eTpBfSk9PihlLHQpPT5BLmNhbGwoZSx0KSkoT2JqZWN0LnByb3RvdHlwZSksTkk9RygiUmVnRXhwIiksS2U9KEEsZSk9PntsZXQgdD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhBKSxJPXt9O2lBKHQsKHIsZyk9PntsZXQgaTsoaT1lKHIsZyxBKSkhPT0hMSYmKElbZ109aXx8cil9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBLEkpfSxHST1BPT57S2UoQSwoZSx0KT0+e2lmKFUoQSkmJlsiYXJndW1lbnRzIiwiY2FsbGVyIiwiY2FsbGVlIl0uaW5kZXhPZih0KSE9PS0xKXJldHVybiExO2xldCBJPUFbdF07aWYoVShJKSl7aWYoZS5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiBlKXtlLndyaXRhYmxlPSExO3JldHVybn1lLnNldHx8KGUuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kICciK3QrIiciKX0pfX0pfSxMST0oQSxlKT0+e2xldCB0PXt9LEk9cj0+e3IuZm9yRWFjaChnPT57dFtnXT0hMH0pfTtyZXR1cm4gWChBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KGUpKSx0fSxiST0oKT0+e30sSkk9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gWUkoQSl7cmV0dXJuISEoQSYmVShBLmFwcGVuZCkmJkFbU3ltYm9sLnRvU3RyaW5nVGFnXT09PSJGb3JtRGF0YSImJkFbU3ltYm9sLml0ZXJhdG9yXSl9dmFyIEhJPUE9PntsZXQgZT1uZXcgQXJyYXkoMTApLHQ9KEkscik9PntpZihGQShJKSl7aWYoZS5pbmRleE9mKEkpPj0wKXJldHVybjtpZighKCJ0b0pTT04iaW4gSSkpe2Vbcl09STtsZXQgZz1YKEkpP1tdOnt9O3JldHVybiBpQShJLChpLHMpPT57bGV0IEU9dChpLHIrMSk7IWdBKEUpJiYoZ1tzXT1FKX0pLGVbcl09dm9pZCAwLGd9fXJldHVybiBJfTtyZXR1cm4gdChBLDApfSxNST1HKCJBc3luY0Z1bmN0aW9uIikscUk9QT0+QSYmKEZBKEEpfHxVKEEpKSYmVShBLnRoZW4pJiZVKEEuY2F0Y2gpLE9lPSgoQSxlKT0+QT9zZXRJbW1lZGlhdGU6ZT8oKHQsSSk9PihaLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTpnfSk9PntyPT09WiYmZz09PXQmJkkubGVuZ3RoJiZJLnNoaWZ0KCkoKX0sITEpLHI9PntJLnB1c2gociksWi5wb3N0TWVzc2FnZSh0LCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTp0PT5zZXRUaW1lb3V0KHQpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLFUoWi5wb3N0TWVzc2FnZSkpLEtJPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChaKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fE9lLG49e2lzQXJyYXk6WCxpc0FycmF5QnVmZmVyOlllLGlzQnVmZmVyOnJJLGlzRm9ybURhdGE6UUksaXNBcnJheUJ1ZmZlclZpZXc6Z0ksaXNTdHJpbmc6aUksaXNOdW1iZXI6SGUsaXNCb29sZWFuOm9JLGlzT2JqZWN0OkZBLGlzUGxhaW5PYmplY3Q6d0EsaXNSZWFkYWJsZVN0cmVhbTpsSSxpc1JlcXVlc3Q6Y0ksaXNSZXNwb25zZTpmSSxpc0hlYWRlcnM6dUksaXNVbmRlZmluZWQ6Z0EsaXNEYXRlOm5JLGlzRmlsZTphSSxpc0Jsb2I6c0ksaXNSZWdFeHA6TkksaXNGdW5jdGlvbjpVLGlzU3RyZWFtOkNJLGlzVVJMU2VhcmNoUGFyYW1zOkVJLGlzVHlwZWRBcnJheTpTSSxpc0ZpbGVMaXN0OkJJLGZvckVhY2g6aUEsbWVyZ2U6WEEsZXh0ZW5kOmRJLHRyaW06cEksc3RyaXBCT006aEksaW5oZXJpdHM6REksdG9GbGF0T2JqZWN0OnlJLGtpbmRPZjptQSxraW5kT2ZUZXN0OkcsZW5kc1dpdGg6d0ksdG9BcnJheTptSSxmb3JFYWNoRW50cnk6RkksbWF0Y2hBbGw6UkksaXNIVE1MRm9ybTprSSxoYXNPd25Qcm9wZXJ0eTpKZSxoYXNPd25Qcm9wOkplLHJlZHVjZURlc2NyaXB0b3JzOktlLGZyZWV6ZU1ldGhvZHM6R0ksdG9PYmplY3RTZXQ6TEksdG9DYW1lbENhc2U6VUksbm9vcDpiSSx0b0Zpbml0ZU51bWJlcjpKSSxmaW5kS2V5Ok1lLGdsb2JhbDpaLGlzQ29udGV4dERlZmluZWQ6cWUsaXNTcGVjQ29tcGxpYW50Rm9ybTpZSSx0b0pTT05PYmplY3Q6SEksaXNBc3luY0ZuOk1JLGlzVGhlbmFibGU6cUksc2V0SW1tZWRpYXRlOk9lLGFzYXA6S0l9O2Z1bmN0aW9uIHooQSxlLHQsSSxyKXtFcnJvci5jYWxsKHRoaXMpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFjayx0aGlzLm1lc3NhZ2U9QSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLGUmJih0aGlzLmNvZGU9ZSksdCYmKHRoaXMuY29uZmlnPXQpLEkmJih0aGlzLnJlcXVlc3Q9SSksciYmKHRoaXMucmVzcG9uc2U9cix0aGlzLnN0YXR1cz1yLnN0YXR1cz9yLnN0YXR1czpudWxsKX1uLmluaGVyaXRzKHosRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzpuLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgVGU9ei5wcm90b3R5cGUseGU9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57eGVbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoeix4ZSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFRlLCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pO3ouZnJvbT0oQSxlLHQsSSxyLGcpPT57bGV0IGk9T2JqZWN0LmNyZWF0ZShUZSk7cmV0dXJuIG4udG9GbGF0T2JqZWN0KEEsaSxmdW5jdGlvbihFKXtyZXR1cm4gRSE9PUVycm9yLnByb3RvdHlwZX0scz0+cyE9PSJpc0F4aW9zRXJyb3IiKSx6LmNhbGwoaSxBLm1lc3NhZ2UsZSx0LEksciksaS5jYXVzZT1BLGkubmFtZT1BLm5hbWUsZyYmT2JqZWN0LmFzc2lnbihpLGcpLGl9O3ZhciB1PXo7dmFyIFJBPW51bGw7ZnVuY3Rpb24gX0EoQSl7cmV0dXJuIG4uaXNQbGFpbk9iamVjdChBKXx8bi5pc0FycmF5KEEpfWZ1bmN0aW9uIFdlKEEpe3JldHVybiBuLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIFBlKEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24ocixnKXtyZXR1cm4gcj1XZShyKSwhdCYmZz8iWyIrcisiXSI6cn0pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gT0koQSl7cmV0dXJuIG4uaXNBcnJheShBKSYmIUEuc29tZShfQSl9dmFyIFRJPW4udG9GbGF0T2JqZWN0KG4se30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiB4SShBLGUsdCl7aWYoIW4uaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoUkF8fEZvcm1EYXRhKSx0PW4udG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihmLGwpe3JldHVybiFuLmlzVW5kZWZpbmVkKGxbZl0pfSk7bGV0IEk9dC5tZXRhVG9rZW5zLHI9dC52aXNpdG9yfHxvLGc9dC5kb3RzLGk9dC5pbmRleGVzLEU9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmbi5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFuLmlzRnVuY3Rpb24ocikpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBCKFEpe2lmKFE9PT1udWxsKXJldHVybiIiO2lmKG4uaXNEYXRlKFEpKXJldHVybiBRLnRvSVNPU3RyaW5nKCk7aWYoIUUmJm4uaXNCbG9iKFEpKXRocm93IG5ldyB1KCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBuLmlzQXJyYXlCdWZmZXIoUSl8fG4uaXNUeXBlZEFycmF5KFEpP0UmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtRXSk6QnVmZmVyLmZyb20oUSk6UX1mdW5jdGlvbiBvKFEsZixsKXtsZXQgZD1RO2lmKFEmJiFsJiZ0eXBlb2YgUT09Im9iamVjdCIpe2lmKG4uZW5kc1dpdGgoZiwie30iKSlmPUk/ZjpmLnNsaWNlKDAsLTIpLFE9SlNPTi5zdHJpbmdpZnkoUSk7ZWxzZSBpZihuLmlzQXJyYXkoUSkmJk9JKFEpfHwobi5pc0ZpbGVMaXN0KFEpfHxuLmVuZHNXaXRoKGYsIltdIikpJiYoZD1uLnRvQXJyYXkoUSkpKXJldHVybiBmPVdlKGYpLGQuZm9yRWFjaChmdW5jdGlvbih5LEspeyEobi5pc1VuZGVmaW5lZCh5KXx8eT09PW51bGwpJiZlLmFwcGVuZChpPT09ITA/UGUoW2ZdLEssZyk6aT09PW51bGw/ZjpmKyJbXSIsQih5KSl9KSwhMX1yZXR1cm4gX0EoUSk/ITA6KGUuYXBwZW5kKFBlKGwsZixnKSxCKFEpKSwhMSl9bGV0IGE9W10sYz1PYmplY3QuYXNzaWduKFRJLHtkZWZhdWx0VmlzaXRvcjpvLGNvbnZlcnRWYWx1ZTpCLGlzVmlzaXRhYmxlOl9BfSk7ZnVuY3Rpb24gQyhRLGYpe2lmKCFuLmlzVW5kZWZpbmVkKFEpKXtpZihhLmluZGV4T2YoUSkhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrZi5qb2luKCIuIikpO2EucHVzaChRKSxuLmZvckVhY2goUSxmdW5jdGlvbihkLEQpeyghKG4uaXNVbmRlZmluZWQoZCl8fGQ9PT1udWxsKSYmci5jYWxsKGUsZCxuLmlzU3RyaW5nKEQpP0QudHJpbSgpOkQsZixjKSk9PT0hMCYmQyhkLGY/Zi5jb25jYXQoRCk6W0RdKX0pLGEucG9wKCl9fWlmKCFuLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gQyhBKSxlfXZhciB4PXhJO2Z1bmN0aW9uIGplKEEpe2xldCBlPXsiISI6IiUyMSIsIiciOiIlMjciLCIoIjoiJTI4IiwiKSI6IiUyOSIsIn4iOiIlN0UiLCIlMjAiOiIrIiwiJTAwIjoiXDAifTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoL1shJygpfl18JTIwfCUwMC9nLGZ1bmN0aW9uKEkpe3JldHVybiBlW0ldfSl9ZnVuY3Rpb24gdmUoQSxlKXt0aGlzLl9wYWlycz1bXSxBJiZ4KEEsdGhpcyxlKX12YXIgWmU9dmUucHJvdG90eXBlO1plLmFwcGVuZD1mdW5jdGlvbihlLHQpe3RoaXMuX3BhaXJzLnB1c2goW2UsdF0pfTtaZS50b1N0cmluZz1mdW5jdGlvbihlKXtsZXQgdD1lP2Z1bmN0aW9uKEkpe3JldHVybiBlLmNhbGwodGhpcyxJLGplKX06amU7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gdChyWzBdKSsiPSIrdChyWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIGtBPXZlO2Z1bmN0aW9uIFBJKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpLnJlcGxhY2UoLyU1Qi9naSwiWyIpLnJlcGxhY2UoLyU1RC9naSwiXSIpfWZ1bmN0aW9uIG9BKEEsZSx0KXtpZighZSlyZXR1cm4gQTtsZXQgST10JiZ0LmVuY29kZXx8UEk7bi5pc0Z1bmN0aW9uKHQpJiYodD17c2VyaWFsaXplOnR9KTtsZXQgcj10JiZ0LnNlcmlhbGl6ZSxnO2lmKHI/Zz1yKGUsdCk6Zz1uLmlzVVJMU2VhcmNoUGFyYW1zKGUpP2UudG9TdHJpbmcoKTpuZXcga0EoZSx0KS50b1N0cmluZyhJKSxnKXtsZXQgaT1BLmluZGV4T2YoIiMiKTtpIT09LTEmJihBPUEuc2xpY2UoMCxpKSksQSs9KEEuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikrZ31yZXR1cm4gQX12YXIgJEE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmhhbmRsZXJzPVtdfXVzZShlLHQsSSl7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOmUscmVqZWN0ZWQ6dCxzeW5jaHJvbm91czpJP0kuc3luY2hyb25vdXM6ITEscnVuV2hlbjpJP0kucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX1lamVjdChlKXt0aGlzLmhhbmRsZXJzW2VdJiYodGhpcy5oYW5kbGVyc1tlXT1udWxsKX1jbGVhcigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX1mb3JFYWNoKGUpe24uZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKEkpe0khPT1udWxsJiZlKEkpfSl9fSxBZT0kQTt2YXIgVUE9e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9O3ZhciBWZT10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6a0E7dmFyIFhlPXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgemU9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgX2U9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6VmUsRm9ybURhdGE6WGUsQmxvYjp6ZX0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBJZT17fTtPdChJZSx7aGFzQnJvd3NlckVudjooKT0+dGUsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5XSSxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9PmpJLG5hdmlnYXRvcjooKT0+ZWUsb3JpZ2luOigpPT52SX0pO3ZhciB0ZT10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1IixlZT10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsV0k9dGUmJighZWV8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2YoZWUucHJvZHVjdCk8MCksakk9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLHZJPXRlJiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBoPXsuLi5JZSwuLi5fZX07ZnVuY3Rpb24gcmUoQSxlKXtyZXR1cm4geChBLG5ldyBoLmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLE9iamVjdC5hc3NpZ24oe3Zpc2l0b3I6ZnVuY3Rpb24odCxJLHIsZyl7cmV0dXJuIGguaXNOb2RlJiZuLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChJLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6Zy5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxlKSl9ZnVuY3Rpb24gWkkoQSl7cmV0dXJuIG4ubWF0Y2hBbGwoL1x3K3xcWyhcdyopXS9nLEEpLm1hcChlPT5lWzBdPT09IltdIj8iIjplWzFdfHxlWzBdKX1mdW5jdGlvbiBWSShBKXtsZXQgZT17fSx0PU9iamVjdC5rZXlzKEEpLEkscj10Lmxlbmd0aCxnO2ZvcihJPTA7STxyO0krKylnPXRbSV0sZVtnXT1BW2ddO3JldHVybiBlfWZ1bmN0aW9uIFhJKEEpe2Z1bmN0aW9uIGUodCxJLHIsZyl7bGV0IGk9dFtnKytdO2lmKGk9PT0iX19wcm90b19fIilyZXR1cm4hMDtsZXQgcz1OdW1iZXIuaXNGaW5pdGUoK2kpLEU9Zz49dC5sZW5ndGg7cmV0dXJuIGk9IWkmJm4uaXNBcnJheShyKT9yLmxlbmd0aDppLEU/KG4uaGFzT3duUHJvcChyLGkpP3JbaV09W3JbaV0sSV06cltpXT1JLCFzKTooKCFyW2ldfHwhbi5pc09iamVjdChyW2ldKSkmJihyW2ldPVtdKSxlKHQsSSxyW2ldLGcpJiZuLmlzQXJyYXkocltpXSkmJihyW2ldPVZJKHJbaV0pKSwhcyl9aWYobi5pc0Zvcm1EYXRhKEEpJiZuLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IHQ9e307cmV0dXJuIG4uZm9yRWFjaEVudHJ5KEEsKEkscik9PntlKFpJKEkpLHIsdCwwKX0pLHR9cmV0dXJuIG51bGx9dmFyIE5BPVhJO2Z1bmN0aW9uIHpJKEEsZSx0KXtpZihuLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4oZXx8SlNPTi5wYXJzZSkoQSksbi50cmltKEEpfWNhdGNoKEkpe2lmKEkubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgSX1yZXR1cm4odHx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBnZT17dHJhbnNpdGlvbmFsOlVBLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe2xldCBJPXQuZ2V0Q29udGVudFR5cGUoKXx8IiIscj1JLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxnPW4uaXNPYmplY3QoZSk7aWYoZyYmbi5pc0hUTUxGb3JtKGUpJiYoZT1uZXcgRm9ybURhdGEoZSkpLG4uaXNGb3JtRGF0YShlKSlyZXR1cm4gcj9KU09OLnN0cmluZ2lmeShOQShlKSk6ZTtpZihuLmlzQXJyYXlCdWZmZXIoZSl8fG4uaXNCdWZmZXIoZSl8fG4uaXNTdHJlYW0oZSl8fG4uaXNGaWxlKGUpfHxuLmlzQmxvYihlKXx8bi5pc1JlYWRhYmxlU3RyZWFtKGUpKXJldHVybiBlO2lmKG4uaXNBcnJheUJ1ZmZlclZpZXcoZSkpcmV0dXJuIGUuYnVmZmVyO2lmKG4uaXNVUkxTZWFyY2hQYXJhbXMoZSkpcmV0dXJuIHQuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksZS50b1N0cmluZygpO2xldCBzO2lmKGcpe2lmKEkuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik+LTEpcmV0dXJuIHJlKGUsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigocz1uLmlzRmlsZUxpc3QoZSkpfHxJLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7bGV0IEU9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiB4KHM/eyJmaWxlc1tdIjplfTplLEUmJm5ldyBFLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gZ3x8cj8odC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLHpJKGUpKTplfV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKGUpe2xldCB0PXRoaXMudHJhbnNpdGlvbmFsfHxnZS50cmFuc2l0aW9uYWwsST10JiZ0LmZvcmNlZEpTT05QYXJzaW5nLHI9dGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYobi5pc1Jlc3BvbnNlKGUpfHxuLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoZSYmbi5pc1N0cmluZyhlKSYmKEkmJiF0aGlzLnJlc3BvbnNlVHlwZXx8cikpe2xldCBpPSEodCYmdC5zaWxlbnRKU09OUGFyc2luZykmJnI7dHJ5e3JldHVybiBKU09OLnBhcnNlKGUpfWNhdGNoKHMpe2lmKGkpdGhyb3cgcy5uYW1lPT09IlN5bnRheEVycm9yIj91LmZyb20ocyx1LkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpOnN9fXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpoLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpoLmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtuLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIl0sQT0+e2dlLmhlYWRlcnNbQV09e319KTt2YXIgXz1nZTt2YXIgX0k9bi50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSwkZT1BPT57bGV0IGU9e30sdCxJLHI7cmV0dXJuIEEmJkEuc3BsaXQoYApgKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3I9aS5pbmRleE9mKCI6IiksdD1pLnN1YnN0cmluZygwLHIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLEk9aS5zdWJzdHJpbmcocisxKS50cmltKCksISghdHx8ZVt0XSYmX0lbdF0pJiYodD09PSJzZXQtY29va2llIj9lW3RdP2VbdF0ucHVzaChJKTplW3RdPVtJXTplW3RdPWVbdF0/ZVt0XSsiLCAiK0k6SSl9KSxlfTt2YXIgQXQ9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBuQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIEdBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTpuLmlzQXJyYXkoQSk/QS5tYXAoR0EpOlN0cmluZyhBKX1mdW5jdGlvbiAkSShBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxJO2Zvcig7ST10LmV4ZWMoQSk7KWVbSVsxXV09SVsyXTtyZXR1cm4gZX12YXIgQXI9QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gaWUoQSxlLHQsSSxyKXtpZihuLmlzRnVuY3Rpb24oSSkpcmV0dXJuIEkuY2FsbCh0aGlzLGUsdCk7aWYociYmKGU9dCksISFuLmlzU3RyaW5nKGUpKXtpZihuLmlzU3RyaW5nKEkpKXJldHVybiBlLmluZGV4T2YoSSkhPT0tMTtpZihuLmlzUmVnRXhwKEkpKXJldHVybiBJLnRlc3QoZSl9fWZ1bmN0aW9uIGVyKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxJKT0+dC50b1VwcGVyQ2FzZSgpK0kpfWZ1bmN0aW9uIHRyKEEsZSl7bGV0IHQ9bi50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKEk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJK3Qse3ZhbHVlOmZ1bmN0aW9uKHIsZyxpKXtyZXR1cm4gdGhpc1tJXS5jYWxsKHRoaXMsZSxyLGcsaSl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyICQ9Y2xhc3N7Y29uc3RydWN0b3IoZSl7ZSYmdGhpcy5zZXQoZSl9c2V0KGUsdCxJKXtsZXQgcj10aGlzO2Z1bmN0aW9uIGcocyxFLEIpe2xldCBvPW5BKEUpO2lmKCFvKXRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgYT1uLmZpbmRLZXkocixvKTsoIWF8fHJbYV09PT12b2lkIDB8fEI9PT0hMHx8Qj09PXZvaWQgMCYmclthXSE9PSExKSYmKHJbYXx8RV09R0EocykpfWxldCBpPShzLEUpPT5uLmZvckVhY2gocywoQixvKT0+ZyhCLG8sRSkpO2lmKG4uaXNQbGFpbk9iamVjdChlKXx8ZSBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpaShlLHQpO2Vsc2UgaWYobi5pc1N0cmluZyhlKSYmKGU9ZS50cmltKCkpJiYhQXIoZSkpaSgkZShlKSx0KTtlbHNlIGlmKG4uaXNIZWFkZXJzKGUpKWZvcihsZXRbcyxFXW9mIGUuZW50cmllcygpKWcoRSxzLEkpO2Vsc2UgZSE9bnVsbCYmZyh0LGUsSSk7cmV0dXJuIHRoaXN9Z2V0KGUsdCl7aWYoZT1uQShlKSxlKXtsZXQgST1uLmZpbmRLZXkodGhpcyxlKTtpZihJKXtsZXQgcj10aGlzW0ldO2lmKCF0KXJldHVybiByO2lmKHQ9PT0hMClyZXR1cm4gJEkocik7aWYobi5pc0Z1bmN0aW9uKHQpKXJldHVybiB0LmNhbGwodGhpcyxyLEkpO2lmKG4uaXNSZWdFeHAodCkpcmV0dXJuIHQuZXhlYyhyKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKGUsdCl7aWYoZT1uQShlKSxlKXtsZXQgST1uLmZpbmRLZXkodGhpcyxlKTtyZXR1cm4hIShJJiZ0aGlzW0ldIT09dm9pZCAwJiYoIXR8fGllKHRoaXMsdGhpc1tJXSxJLHQpKSl9cmV0dXJuITF9ZGVsZXRlKGUsdCl7bGV0IEk9dGhpcyxyPSExO2Z1bmN0aW9uIGcoaSl7aWYoaT1uQShpKSxpKXtsZXQgcz1uLmZpbmRLZXkoSSxpKTtzJiYoIXR8fGllKEksSVtzXSxzLHQpKSYmKGRlbGV0ZSBJW3NdLHI9ITApfX1yZXR1cm4gbi5pc0FycmF5KGUpP2UuZm9yRWFjaChnKTpnKGUpLHJ9Y2xlYXIoZSl7bGV0IHQ9T2JqZWN0LmtleXModGhpcyksST10Lmxlbmd0aCxyPSExO2Zvcig7SS0tOyl7bGV0IGc9dFtJXTsoIWV8fGllKHRoaXMsdGhpc1tnXSxnLGUsITApKSYmKGRlbGV0ZSB0aGlzW2ddLHI9ITApfXJldHVybiByfW5vcm1hbGl6ZShlKXtsZXQgdD10aGlzLEk9e307cmV0dXJuIG4uZm9yRWFjaCh0aGlzLChyLGcpPT57bGV0IGk9bi5maW5kS2V5KEksZyk7aWYoaSl7dFtpXT1HQShyKSxkZWxldGUgdFtnXTtyZXR1cm59bGV0IHM9ZT9lcihnKTpTdHJpbmcoZykudHJpbSgpO3MhPT1nJiZkZWxldGUgdFtnXSx0W3NdPUdBKHIpLElbc109ITB9KSx0aGlzfWNvbmNhdCguLi5lKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi5lKX10b0pTT04oZSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gbi5mb3JFYWNoKHRoaXMsKEkscik9PntJIT1udWxsJiZJIT09ITEmJih0W3JdPWUmJm4uaXNBcnJheShJKT9JLmpvaW4oIiwgIik6SSl9KSx0fVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKX10b1N0cmluZygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFtlLHRdKT0+ZSsiOiAiK3QpLmpvaW4oYApgKX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJBeGlvc0hlYWRlcnMifXN0YXRpYyBmcm9tKGUpe3JldHVybiBlIGluc3RhbmNlb2YgdGhpcz9lOm5ldyB0aGlzKGUpfXN0YXRpYyBjb25jYXQoZSwuLi50KXtsZXQgST1uZXcgdGhpcyhlKTtyZXR1cm4gdC5mb3JFYWNoKHI9Pkkuc2V0KHIpKSxJfXN0YXRpYyBhY2Nlc3NvcihlKXtsZXQgST0odGhpc1tBdF09dGhpc1tBdF09e2FjY2Vzc29yczp7fX0pLmFjY2Vzc29ycyxyPXRoaXMucHJvdG90eXBlO2Z1bmN0aW9uIGcoaSl7bGV0IHM9bkEoaSk7SVtzXXx8KHRyKHIsaSksSVtzXT0hMCl9cmV0dXJuIG4uaXNBcnJheShlKT9lLmZvckVhY2goZyk6ZyhlKSx0aGlzfX07JC5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7bi5yZWR1Y2VEZXNjcmlwdG9ycygkLnByb3RvdHlwZSwoe3ZhbHVlOkF9LGUpPT57bGV0IHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQoSSl7dGhpc1t0XT1JfX19KTtuLmZyZWV6ZU1ldGhvZHMoJCk7dmFyIFM9JDtmdW5jdGlvbiBhQShBLGUpe2xldCB0PXRoaXN8fF8sST1lfHx0LHI9Uy5mcm9tKEkuaGVhZGVycyksZz1JLmRhdGE7cmV0dXJuIG4uZm9yRWFjaChBLGZ1bmN0aW9uKHMpe2c9cy5jYWxsKHQsZyxyLm5vcm1hbGl6ZSgpLGU/ZS5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksZ31mdW5jdGlvbiBzQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIGV0KEEsZSx0KXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELGUsdCksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1uLmluaGVyaXRzKGV0LHUse19fQ0FOQ0VMX186ITB9KTt2YXIgWT1ldDtmdW5jdGlvbiBCQShBLGUsdCl7bGV0IEk9dC5jb25maWcudmFsaWRhdGVTdGF0dXM7IXQuc3RhdHVzfHwhSXx8SSh0LnN0YXR1cyk/QSh0KTplKG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrdC5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcih0LnN0YXR1cy8xMDApLTRdLHQuY29uZmlnLHQucmVxdWVzdCx0KSl9ZnVuY3Rpb24gb2UoQSl7bGV0IGU9L14oWy0rXHddezEsMjV9KSg6P1wvXC98OikvLmV4ZWMoQSk7cmV0dXJuIGUmJmVbMV18fCIifWZ1bmN0aW9uIElyKEEsZSl7QT1BfHwxMDtsZXQgdD1uZXcgQXJyYXkoQSksST1uZXcgQXJyYXkoQSkscj0wLGc9MCxpO3JldHVybiBlPWUhPT12b2lkIDA/ZToxZTMsZnVuY3Rpb24oRSl7bGV0IEI9RGF0ZS5ub3coKSxvPUlbZ107aXx8KGk9QiksdFtyXT1FLElbcl09QjtsZXQgYT1nLGM9MDtmb3IoO2EhPT1yOyljKz10W2ErK10sYT1hJUE7aWYocj0ocisxKSVBLHI9PT1nJiYoZz0oZysxKSVBKSxCLWk8ZSlyZXR1cm47bGV0IEM9byYmQi1vO3JldHVybiBDP01hdGgucm91bmQoYyoxZTMvQyk6dm9pZCAwfX12YXIgdHQ9SXI7ZnVuY3Rpb24gcnIoQSxlKXtsZXQgdD0wLEk9MWUzL2UscixnLGk9KEIsbz1EYXRlLm5vdygpKT0+e3Q9byxyPW51bGwsZyYmKGNsZWFyVGltZW91dChnKSxnPW51bGwpLEEuYXBwbHkobnVsbCxCKX07cmV0dXJuWyguLi5CKT0+e2xldCBvPURhdGUubm93KCksYT1vLXQ7YT49ST9pKEIsbyk6KHI9QixnfHwoZz1zZXRUaW1lb3V0KCgpPT57Zz1udWxsLGkocil9LEktYSkpKX0sKCk9PnImJmkocildfXZhciBJdD1ycjt2YXIgQUE9KEEsZSx0PTMpPT57bGV0IEk9MCxyPXR0KDUwLDI1MCk7cmV0dXJuIEl0KGc9PntsZXQgaT1nLmxvYWRlZCxzPWcubGVuZ3RoQ29tcHV0YWJsZT9nLnRvdGFsOnZvaWQgMCxFPWktSSxCPXIoRSksbz1pPD1zO0k9aTtsZXQgYT17bG9hZGVkOmksdG90YWw6cyxwcm9ncmVzczpzP2kvczp2b2lkIDAsYnl0ZXM6RSxyYXRlOkJ8fHZvaWQgMCxlc3RpbWF0ZWQ6QiYmcyYmbz8ocy1pKS9COnZvaWQgMCxldmVudDpnLGxlbmd0aENvbXB1dGFibGU6cyE9bnVsbCxbZT8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH07QShhKX0sdCl9LG5lPShBLGUpPT57bGV0IHQ9QSE9bnVsbDtyZXR1cm5bST0+ZVswXSh7bGVuZ3RoQ29tcHV0YWJsZTp0LHRvdGFsOkEsbG9hZGVkOkl9KSxlWzFdXX0sYWU9QT0+KC4uLmUpPT5uLmFzYXAoKCk9PkEoLi4uZSkpO3ZhciBydD1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKEEsZSk9PnQ9Pih0PW5ldyBVUkwodCxoLm9yaWdpbiksQS5wcm90b2NvbD09PXQucHJvdG9jb2wmJkEuaG9zdD09PXQuaG9zdCYmKGV8fEEucG9ydD09PXQucG9ydCkpKShuZXcgVVJMKGgub3JpZ2luKSxoLm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChoLm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITA7dmFyIGd0PWguaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShBLGUsdCxJLHIsZyl7bGV0IGk9W0ErIj0iK2VuY29kZVVSSUNvbXBvbmVudChlKV07bi5pc051bWJlcih0KSYmaS5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUodCkudG9HTVRTdHJpbmcoKSksbi5pc1N0cmluZyhJKSYmaS5wdXNoKCJwYXRoPSIrSSksbi5pc1N0cmluZyhyKSYmaS5wdXNoKCJkb21haW49IityKSxnPT09ITAmJmkucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPWkuam9pbigiOyAiKX0scmVhZChBKXtsZXQgZT1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xccyopKCIrQSsiKT0oW147XSopIikpO3JldHVybiBlP2RlY29kZVVSSUNvbXBvbmVudChlWzNdKTpudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIHNlKEEpe3JldHVybi9eKFthLXpdW2EtelxkK1wtLl0qOik/XC9cLy9pLnRlc3QoQSl9ZnVuY3Rpb24gQmUoQSxlKXtyZXR1cm4gZT9BLnJlcGxhY2UoL1wvP1wvJC8sIiIpKyIvIitlLnJlcGxhY2UoL15cLysvLCIiKTpBfWZ1bmN0aW9uIENBKEEsZSx0KXtsZXQgST0hc2UoZSk7cmV0dXJuIEEmJihJfHx0PT0hMSk/QmUoQSxlKTplfXZhciBpdD1BPT5BIGluc3RhbmNlb2YgUz97Li4uQX06QTtmdW5jdGlvbiBMKEEsZSl7ZT1lfHx7fTtsZXQgdD17fTtmdW5jdGlvbiBJKEIsbyxhLGMpe3JldHVybiBuLmlzUGxhaW5PYmplY3QoQikmJm4uaXNQbGFpbk9iamVjdChvKT9uLm1lcmdlLmNhbGwoe2Nhc2VsZXNzOmN9LEIsbyk6bi5pc1BsYWluT2JqZWN0KG8pP24ubWVyZ2Uoe30sbyk6bi5pc0FycmF5KG8pP28uc2xpY2UoKTpvfWZ1bmN0aW9uIHIoQixvLGEsYyl7aWYobi5pc1VuZGVmaW5lZChvKSl7aWYoIW4uaXNVbmRlZmluZWQoQikpcmV0dXJuIEkodm9pZCAwLEIsYSxjKX1lbHNlIHJldHVybiBJKEIsbyxhLGMpfWZ1bmN0aW9uIGcoQixvKXtpZighbi5pc1VuZGVmaW5lZChvKSlyZXR1cm4gSSh2b2lkIDAsbyl9ZnVuY3Rpb24gaShCLG8pe2lmKG4uaXNVbmRlZmluZWQobykpe2lmKCFuLmlzVW5kZWZpbmVkKEIpKXJldHVybiBJKHZvaWQgMCxCKX1lbHNlIHJldHVybiBJKHZvaWQgMCxvKX1mdW5jdGlvbiBzKEIsbyxhKXtpZihhIGluIGUpcmV0dXJuIEkoQixvKTtpZihhIGluIEEpcmV0dXJuIEkodm9pZCAwLEIpfWxldCBFPXt1cmw6ZyxtZXRob2Q6ZyxkYXRhOmcsYmFzZVVSTDppLHRyYW5zZm9ybVJlcXVlc3Q6aSx0cmFuc2Zvcm1SZXNwb25zZTppLHBhcmFtc1NlcmlhbGl6ZXI6aSx0aW1lb3V0OmksdGltZW91dE1lc3NhZ2U6aSx3aXRoQ3JlZGVudGlhbHM6aSx3aXRoWFNSRlRva2VuOmksYWRhcHRlcjppLHJlc3BvbnNlVHlwZTppLHhzcmZDb29raWVOYW1lOmkseHNyZkhlYWRlck5hbWU6aSxvblVwbG9hZFByb2dyZXNzOmksb25Eb3dubG9hZFByb2dyZXNzOmksZGVjb21wcmVzczppLG1heENvbnRlbnRMZW5ndGg6aSxtYXhCb2R5TGVuZ3RoOmksYmVmb3JlUmVkaXJlY3Q6aSx0cmFuc3BvcnQ6aSxodHRwQWdlbnQ6aSxodHRwc0FnZW50OmksY2FuY2VsVG9rZW46aSxzb2NrZXRQYXRoOmkscmVzcG9uc2VFbmNvZGluZzppLHZhbGlkYXRlU3RhdHVzOnMsaGVhZGVyczooQixvLGEpPT5yKGl0KEIpLGl0KG8pLGEsITApfTtyZXR1cm4gbi5mb3JFYWNoKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sQSxlKSksZnVuY3Rpb24obyl7bGV0IGE9RVtvXXx8cixjPWEoQVtvXSxlW29dLG8pO24uaXNVbmRlZmluZWQoYykmJmEhPT1zfHwodFtvXT1jKX0pLHR9dmFyIExBPUE9PntsZXQgZT1MKHt9LEEpLHtkYXRhOnQsd2l0aFhTUkZUb2tlbjpJLHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6ZyxoZWFkZXJzOmksYXV0aDpzfT1lO2UuaGVhZGVycz1pPVMuZnJvbShpKSxlLnVybD1vQShDQShlLmJhc2VVUkwsZS51cmwsZS5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxzJiZpLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgocy51c2VybmFtZXx8IiIpKyI6Iisocy5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQocy5wYXNzd29yZCkpOiIiKSkpO2xldCBFO2lmKG4uaXNGb3JtRGF0YSh0KSl7aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fGguaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KWkuc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKChFPWkuZ2V0Q29udGVudFR5cGUoKSkhPT0hMSl7bGV0W0IsLi4ub109RT9FLnNwbGl0KCI7IikubWFwKGE9PmEudHJpbSgpKS5maWx0ZXIoQm9vbGVhbik6W107aS5zZXRDb250ZW50VHlwZShbQnx8Im11bHRpcGFydC9mb3JtLWRhdGEiLC4uLm9dLmpvaW4oIjsgIikpfX1pZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKEkmJm4uaXNGdW5jdGlvbihJKSYmKEk9SShlKSksSXx8SSE9PSExJiZydChlLnVybCkpKXtsZXQgQj1yJiZnJiZndC5yZWFkKGcpO0ImJmkuc2V0KHIsQil9cmV0dXJuIGV9O3ZhciBncj10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUiLG90PWdyJiZmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxJKXtsZXQgcj1MQShBKSxnPXIuZGF0YSxpPVMuZnJvbShyLmhlYWRlcnMpLm5vcm1hbGl6ZSgpLHtyZXNwb25zZVR5cGU6cyxvblVwbG9hZFByb2dyZXNzOkUsb25Eb3dubG9hZFByb2dyZXNzOkJ9PXIsbyxhLGMsQyxRO2Z1bmN0aW9uIGYoKXtDJiZDKCksUSYmUSgpLHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUobyksci5zaWduYWwmJnIuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixvKX1sZXQgbD1uZXcgWE1MSHR0cFJlcXVlc3Q7bC5vcGVuKHIubWV0aG9kLnRvVXBwZXJDYXNlKCksci51cmwsITApLGwudGltZW91dD1yLnRpbWVvdXQ7ZnVuY3Rpb24gZCgpe2lmKCFsKXJldHVybjtsZXQgeT1TLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBsJiZsLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxSPXtkYXRhOiFzfHxzPT09InRleHQifHxzPT09Impzb24iP2wucmVzcG9uc2VUZXh0OmwucmVzcG9uc2Usc3RhdHVzOmwuc3RhdHVzLHN0YXR1c1RleHQ6bC5zdGF0dXNUZXh0LGhlYWRlcnM6eSxjb25maWc6QSxyZXF1ZXN0Omx9O0JBKGZ1bmN0aW9uKFcpe3QoVyksZigpfSxmdW5jdGlvbihXKXtJKFcpLGYoKX0sUiksbD1udWxsfSJvbmxvYWRlbmQiaW4gbD9sLm9ubG9hZGVuZD1kOmwub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IWx8fGwucmVhZHlTdGF0ZSE9PTR8fGwuc3RhdHVzPT09MCYmIShsLnJlc3BvbnNlVVJMJiZsLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6Iik9PT0wKXx8c2V0VGltZW91dChkKX0sbC5vbmFib3J0PWZ1bmN0aW9uKCl7bCYmKEkobmV3IHUoIlJlcXVlc3QgYWJvcnRlZCIsdS5FQ09OTkFCT1JURUQsQSxsKSksbD1udWxsKX0sbC5vbmVycm9yPWZ1bmN0aW9uKCl7SShuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxBLGwpKSxsPW51bGx9LGwub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IEs9ci50aW1lb3V0PyJ0aW1lb3V0IG9mICIrci50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLFI9ci50cmFuc2l0aW9uYWx8fFVBO3IudGltZW91dEVycm9yTWVzc2FnZSYmKEs9ci50aW1lb3V0RXJyb3JNZXNzYWdlKSxJKG5ldyB1KEssUi5jbGFyaWZ5VGltZW91dEVycm9yP3UuRVRJTUVET1VUOnUuRUNPTk5BQk9SVEVELEEsbCkpLGw9bnVsbH0sZz09PXZvaWQgMCYmaS5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBsJiZuLmZvckVhY2goaS50b0pTT04oKSxmdW5jdGlvbihLLFIpe2wuc2V0UmVxdWVzdEhlYWRlcihSLEspfSksbi5pc1VuZGVmaW5lZChyLndpdGhDcmVkZW50aWFscyl8fChsLndpdGhDcmVkZW50aWFscz0hIXIud2l0aENyZWRlbnRpYWxzKSxzJiZzIT09Impzb24iJiYobC5yZXNwb25zZVR5cGU9ci5yZXNwb25zZVR5cGUpLEImJihbYyxRXT1BQShCLCEwKSxsLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixjKSksRSYmbC51cGxvYWQmJihbYSxDXT1BQShFKSxsLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsYSksbC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsQykpLChyLmNhbmNlbFRva2VufHxyLnNpZ25hbCkmJihvPXk9PntsJiYoSSgheXx8eS50eXBlP25ldyBZKG51bGwsQSxsKTp5KSxsLmFib3J0KCksbD1udWxsKX0sci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi5zdWJzY3JpYmUobyksci5zaWduYWwmJihyLnNpZ25hbC5hYm9ydGVkP28oKTpyLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbykpKTtsZXQgRD1vZShyLnVybCk7aWYoRCYmaC5wcm90b2NvbHMuaW5kZXhPZihEKT09PS0xKXtJKG5ldyB1KCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK0QrIjoiLHUuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59bC5zZW5kKGd8fG51bGwpfSl9O3ZhciBpcj0oQSxlKT0+e2xldHtsZW5ndGg6dH09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKGV8fHQpe2xldCBJPW5ldyBBYm9ydENvbnRyb2xsZXIscixnPWZ1bmN0aW9uKEIpe2lmKCFyKXtyPSEwLHMoKTtsZXQgbz1CIGluc3RhbmNlb2YgRXJyb3I/Qjp0aGlzLnJlYXNvbjtJLmFib3J0KG8gaW5zdGFuY2VvZiB1P286bmV3IFkobyBpbnN0YW5jZW9mIEVycm9yP28ubWVzc2FnZTpvKSl9fSxpPWUmJnNldFRpbWVvdXQoKCk9PntpPW51bGwsZyhuZXcgdShgdGltZW91dCAke2V9IG9mIG1zIGV4Y2VlZGVkYCx1LkVUSU1FRE9VVCkpfSxlKSxzPSgpPT57QSYmKGkmJmNsZWFyVGltZW91dChpKSxpPW51bGwsQS5mb3JFYWNoKEI9PntCLnVuc3Vic2NyaWJlP0IudW5zdWJzY3JpYmUoZyk6Qi5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsZyl9KSxBPW51bGwpfTtBLmZvckVhY2goQj0+Qi5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsZykpO2xldHtzaWduYWw6RX09STtyZXR1cm4gRS51bnN1YnNjcmliZT0oKT0+bi5hc2FwKHMpLEV9fSxudD1pcjt2YXIgb3I9ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCBJPTAscjtmb3IoO0k8dDspcj1JK2UseWllbGQgQS5zbGljZShJLHIpLEk9cn0sbnI9YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mIGFyKEEpKXlpZWxkKm9yKHQsZSl9LGFyPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOkl9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgSX19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0sQ2U9KEEsZSx0LEkpPT57bGV0IHI9bnIoQSxlKSxnPTAsaSxzPUU9PntpfHwoaT0hMCxJJiZJKEUpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChFKXt0cnl7bGV0e2RvbmU6Qix2YWx1ZTpvfT1hd2FpdCByLm5leHQoKTtpZihCKXtzKCksRS5jbG9zZSgpO3JldHVybn1sZXQgYT1vLmJ5dGVMZW5ndGg7aWYodCl7bGV0IGM9Zys9YTt0KGMpfUUuZW5xdWV1ZShuZXcgVWludDhBcnJheShvKSl9Y2F0Y2goQil7dGhyb3cgcyhCKSxCfX0sY2FuY2VsKEUpe3JldHVybiBzKEUpLHIucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBKQT10eXBlb2YgZmV0Y2g9PSJmdW5jdGlvbiImJnR5cGVvZiBSZXF1ZXN0PT0iZnVuY3Rpb24iJiZ0eXBlb2YgUmVzcG9uc2U9PSJmdW5jdGlvbiIsc3Q9SkEmJnR5cGVvZiBSZWFkYWJsZVN0cmVhbT09ImZ1bmN0aW9uIixzcj1KQSYmKHR5cGVvZiBUZXh0RW5jb2Rlcj09ImZ1bmN0aW9uIj8oQT0+ZT0+QS5lbmNvZGUoZSkpKG5ldyBUZXh0RW5jb2Rlcik6YXN5bmMgQT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IFJlc3BvbnNlKEEpLmFycmF5QnVmZmVyKCkpKSxCdD0oQSwuLi5lKT0+e3RyeXtyZXR1cm4hIUEoLi4uZSl9Y2F0Y2h7cmV0dXJuITF9fSxCcj1zdCYmQnQoKCk9PntsZXQgQT0hMSxlPW5ldyBSZXF1ZXN0KGgub3JpZ2luLHtib2R5Om5ldyBSZWFkYWJsZVN0cmVhbSxtZXRob2Q6IlBPU1QiLGdldCBkdXBsZXgoKXtyZXR1cm4gQT0hMCwiaGFsZiJ9fSkuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpO3JldHVybiBBJiYhZX0pLGF0PTY0KjEwMjQsUWU9c3QmJkJ0KCgpPT5uLmlzUmVhZGFibGVTdHJlYW0obmV3IFJlc3BvbnNlKCIiKS5ib2R5KSksYkE9e3N0cmVhbTpRZSYmKEE9PkEuYm9keSl9O0pBJiYoQT0+e1sidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChlPT57IWJBW2VdJiYoYkFbZV09bi5pc0Z1bmN0aW9uKEFbZV0pP3Q9PnRbZV0oKToodCxJKT0+e3Rocm93IG5ldyB1KGBSZXNwb25zZSB0eXBlICcke2V9JyBpcyBub3Qgc3VwcG9ydGVkYCx1LkVSUl9OT1RfU1VQUE9SVCxJKX0pfSl9KShuZXcgUmVzcG9uc2UpO3ZhciBDcj1hc3luYyBBPT57aWYoQT09bnVsbClyZXR1cm4gMDtpZihuLmlzQmxvYihBKSlyZXR1cm4gQS5zaXplO2lmKG4uaXNTcGVjQ29tcGxpYW50Rm9ybShBKSlyZXR1cm4oYXdhaXQgbmV3IFJlcXVlc3QoaC5vcmlnaW4se21ldGhvZDoiUE9TVCIsYm9keTpBfSkuYXJyYXlCdWZmZXIoKSkuYnl0ZUxlbmd0aDtpZihuLmlzQXJyYXlCdWZmZXJWaWV3KEEpfHxuLmlzQXJyYXlCdWZmZXIoQSkpcmV0dXJuIEEuYnl0ZUxlbmd0aDtpZihuLmlzVVJMU2VhcmNoUGFyYW1zKEEpJiYoQT1BKyIiKSxuLmlzU3RyaW5nKEEpKXJldHVybihhd2FpdCBzcihBKSkuYnl0ZUxlbmd0aH0sUXI9YXN5bmMoQSxlKT0+e2xldCB0PW4udG9GaW5pdGVOdW1iZXIoQS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiB0Pz9DcihlKX0sQ3Q9SkEmJihhc3luYyBBPT57bGV0e3VybDplLG1ldGhvZDp0LGRhdGE6SSxzaWduYWw6cixjYW5jZWxUb2tlbjpnLHRpbWVvdXQ6aSxvbkRvd25sb2FkUHJvZ3Jlc3M6cyxvblVwbG9hZFByb2dyZXNzOkUscmVzcG9uc2VUeXBlOkIsaGVhZGVyczpvLHdpdGhDcmVkZW50aWFsczphPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOmN9PUxBKEEpO0I9Qj8oQisiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IEM9bnQoW3IsZyYmZy50b0Fib3J0U2lnbmFsKCldLGkpLFEsZj1DJiZDLnVuc3Vic2NyaWJlJiYoKCk9PntDLnVuc3Vic2NyaWJlKCl9KSxsO3RyeXtpZihFJiZCciYmdCE9PSJnZXQiJiZ0IT09ImhlYWQiJiYobD1hd2FpdCBRcihvLEkpKSE9PTApe2xldCBSPW5ldyBSZXF1ZXN0KGUse21ldGhvZDoiUE9TVCIsYm9keTpJLGR1cGxleDoiaGFsZiJ9KSxUO2lmKG4uaXNGb3JtRGF0YShJKSYmKFQ9Ui5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZvLnNldENvbnRlbnRUeXBlKFQpLFIuYm9keSl7bGV0W1csdUFdPW5lKGwsQUEoYWUoRSkpKTtJPUNlKFIuYm9keSxhdCxXLHVBKX19bi5pc1N0cmluZyhhKXx8KGE9YT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgZD0iY3JlZGVudGlhbHMiaW4gUmVxdWVzdC5wcm90b3R5cGU7UT1uZXcgUmVxdWVzdChlLHsuLi5jLHNpZ25hbDpDLG1ldGhvZDp0LnRvVXBwZXJDYXNlKCksaGVhZGVyczpvLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6SSxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOmQ/YTp2b2lkIDB9KTtsZXQgRD1hd2FpdCBmZXRjaChRKSx5PVFlJiYoQj09PSJzdHJlYW0ifHxCPT09InJlc3BvbnNlIik7aWYoUWUmJihzfHx5JiZmKSl7bGV0IFI9e307WyJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyJdLmZvckVhY2gobWU9PntSW21lXT1EW21lXX0pO2xldCBUPW4udG9GaW5pdGVOdW1iZXIoRC5oZWFkZXJzLmdldCgiY29udGVudC1sZW5ndGgiKSksW1csdUFdPXMmJm5lKFQsQUEoYWUocyksITApKXx8W107RD1uZXcgUmVzcG9uc2UoQ2UoRC5ib2R5LGF0LFcsKCk9Pnt1QSYmdUEoKSxmJiZmKCl9KSxSKX1CPUJ8fCJ0ZXh0IjtsZXQgSz1hd2FpdCBiQVtuLmZpbmRLZXkoYkEsQil8fCJ0ZXh0Il0oRCxBKTtyZXR1cm4heSYmZiYmZigpLGF3YWl0IG5ldyBQcm9taXNlKChSLFQpPT57QkEoUixULHtkYXRhOkssaGVhZGVyczpTLmZyb20oRC5oZWFkZXJzKSxzdGF0dXM6RC5zdGF0dXMsc3RhdHVzVGV4dDpELnN0YXR1c1RleHQsY29uZmlnOkEscmVxdWVzdDpRfSl9KX1jYXRjaChkKXt0aHJvdyBmJiZmKCksZCYmZC5uYW1lPT09IlR5cGVFcnJvciImJi9mZXRjaC9pLnRlc3QoZC5tZXNzYWdlKT9PYmplY3QuYXNzaWduKG5ldyB1KCJOZXR3b3JrIEVycm9yIix1LkVSUl9ORVRXT1JLLEEsUSkse2NhdXNlOmQuY2F1c2V8fGR9KTp1LmZyb20oZCxkJiZkLmNvZGUsQSxRKX19KTt2YXIgRWU9e2h0dHA6UkEseGhyOm90LGZldGNoOkN0fTtuLmZvckVhY2goRWUsKEEsZSk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHt2YWx1ZTplfSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse3ZhbHVlOmV9KX19KTt2YXIgUXQ9QT0+YC0gJHtBfWAsRXI9QT0+bi5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExLFlBPXtnZXRBZGFwdGVyOkE9PntBPW4uaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOmV9PUEsdCxJLHI9e307Zm9yKGxldCBnPTA7ZzxlO2crKyl7dD1BW2ddO2xldCBpO2lmKEk9dCwhRXIodCkmJihJPUVlWyhpPVN0cmluZyh0KSkudG9Mb3dlckNhc2UoKV0sST09PXZvaWQgMCkpdGhyb3cgbmV3IHUoYFVua25vd24gYWRhcHRlciAnJHtpfSdgKTtpZihJKWJyZWFrO3JbaXx8IiMiK2ddPUl9aWYoIUkpe2xldCBnPU9iamVjdC5lbnRyaWVzKHIpLm1hcCgoW3MsRV0pPT5gYWRhcHRlciAke3N9IGArKEU9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxpPWU/Zy5sZW5ndGg+MT9gc2luY2UgOgpgK2cubWFwKFF0KS5qb2luKGAKYCk6IiAiK1F0KGdbMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IHUoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitpLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gSX0sYWRhcHRlcnM6RWV9O2Z1bmN0aW9uIGxlKEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBZKG51bGwsQSl9ZnVuY3Rpb24gSEEoQSl7cmV0dXJuIGxlKEEpLEEuaGVhZGVycz1TLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9YUEuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLFlBLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxfLmFkYXB0ZXIpKEEpLnRoZW4oZnVuY3Rpb24oSSl7cmV0dXJuIGxlKEEpLEkuZGF0YT1hQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJKSxJLmhlYWRlcnM9Uy5mcm9tKEkuaGVhZGVycyksSX0sZnVuY3Rpb24oSSl7cmV0dXJuIHNBKEkpfHwobGUoQSksSSYmSS5yZXNwb25zZSYmKEkucmVzcG9uc2UuZGF0YT1hQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJLnJlc3BvbnNlKSxJLnJlc3BvbnNlLmhlYWRlcnM9Uy5mcm9tKEkucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChJKX0pfXZhciBNQT0iMS44LjQiO3ZhciBxQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsZSk9PntxQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKGU8MT8ibiAiOiIgIikrQX19KTt2YXIgRXQ9e307cUEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxJKXtmdW5jdGlvbiByKGcsaSl7cmV0dXJuIltBeGlvcyB2IitNQSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK2crIiciK2krKEk/Ii4gIitJOiIiKX1yZXR1cm4oZyxpLHMpPT57aWYoZT09PSExKXRocm93IG5ldyB1KHIoaSwiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSksdS5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIHQmJiFFdFtpXSYmKEV0W2ldPSEwLGNvbnNvbGUud2FybihyKGksIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3QrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksZT9lKGcsaSxzKTohMH19O3FBLnNwZWxsaW5nPWZ1bmN0aW9uKGUpe3JldHVybih0LEkpPT4oY29uc29sZS53YXJuKGAke0l9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7ZX1gKSwhMCl9O2Z1bmN0aW9uIGxyKEEsZSx0KXtpZih0eXBlb2YgQSE9Im9iamVjdCIpdGhyb3cgbmV3IHUoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCBJPU9iamVjdC5rZXlzKEEpLHI9SS5sZW5ndGg7Zm9yKDtyLS0gPjA7KXtsZXQgZz1JW3JdLGk9ZVtnXTtpZihpKXtsZXQgcz1BW2ddLEU9cz09PXZvaWQgMHx8aShzLGcsQSk7aWYoRSE9PSEwKXRocm93IG5ldyB1KCJvcHRpb24gIitnKyIgbXVzdCBiZSAiK0UsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYodCE9PSEwKXRocm93IG5ldyB1KCJVbmtub3duIG9wdGlvbiAiK2csdS5FUlJfQkFEX09QVElPTil9fXZhciBRQT17YXNzZXJ0T3B0aW9uczpscix2YWxpZGF0b3JzOnFBfTt2YXIgSD1RQS52YWxpZGF0b3JzLGVBPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuZGVmYXVsdHM9ZSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgQWUscmVzcG9uc2U6bmV3IEFlfX1hc3luYyByZXF1ZXN0KGUsdCl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KGUsdCl9Y2F0Y2goSSl7aWYoSSBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgZz1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXG4vLCIiKToiIjt0cnl7SS5zdGFjaz9nJiYhU3RyaW5nKEkuc3RhY2spLmVuZHNXaXRoKGcucmVwbGFjZSgvXi4rXG4uK1xuLywiIikpJiYoSS5zdGFjays9YApgK2cpOkkuc3RhY2s9Z31jYXRjaHt9fXRocm93IEl9fV9yZXF1ZXN0KGUsdCl7dHlwZW9mIGU9PSJzdHJpbmciPyh0PXR8fHt9LHQudXJsPWUpOnQ9ZXx8e30sdD1MKHRoaXMuZGVmYXVsdHMsdCk7bGV0e3RyYW5zaXRpb25hbDpJLHBhcmFtc1NlcmlhbGl6ZXI6cixoZWFkZXJzOmd9PXQ7SSE9PXZvaWQgMCYmUUEuYXNzZXJ0T3B0aW9ucyhJLHtzaWxlbnRKU09OUGFyc2luZzpILnRyYW5zaXRpb25hbChILmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOkgudHJhbnNpdGlvbmFsKEguYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpILnRyYW5zaXRpb25hbChILmJvb2xlYW4pfSwhMSksciE9bnVsbCYmKG4uaXNGdW5jdGlvbihyKT90LnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpyfTpRQS5hc3NlcnRPcHRpb25zKHIse2VuY29kZTpILmZ1bmN0aW9uLHNlcmlhbGl6ZTpILmZ1bmN0aW9ufSwhMCkpLHQuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDB8fCh0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwP3QuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsczp0LmFsbG93QWJzb2x1dGVVcmxzPSEwKSxRQS5hc3NlcnRPcHRpb25zKHQse2Jhc2VVcmw6SC5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46SC5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksdC5tZXRob2Q9KHQubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IGk9ZyYmbi5tZXJnZShnLmNvbW1vbixnW3QubWV0aG9kXSk7ZyYmbi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLFE9PntkZWxldGUgZ1tRXX0pLHQuaGVhZGVycz1TLmNvbmNhdChpLGcpO2xldCBzPVtdLEU9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGYpe3R5cGVvZiBmLnJ1bldoZW49PSJmdW5jdGlvbiImJmYucnVuV2hlbih0KT09PSExfHwoRT1FJiZmLnN5bmNocm9ub3VzLHMudW5zaGlmdChmLmZ1bGZpbGxlZCxmLnJlamVjdGVkKSl9KTtsZXQgQj1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGYpe0IucHVzaChmLmZ1bGZpbGxlZCxmLnJlamVjdGVkKX0pO2xldCBvLGE9MCxjO2lmKCFFKXtsZXQgUT1bSEEuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihRLnVuc2hpZnQuYXBwbHkoUSxzKSxRLnB1c2guYXBwbHkoUSxCKSxjPVEubGVuZ3RoLG89UHJvbWlzZS5yZXNvbHZlKHQpO2E8Yzspbz1vLnRoZW4oUVthKytdLFFbYSsrXSk7cmV0dXJuIG99Yz1zLmxlbmd0aDtsZXQgQz10O2ZvcihhPTA7YTxjOyl7bGV0IFE9c1thKytdLGY9c1thKytdO3RyeXtDPVEoQyl9Y2F0Y2gobCl7Zi5jYWxsKHRoaXMsbCk7YnJlYWt9fXRyeXtvPUhBLmNhbGwodGhpcyxDKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKGE9MCxjPUIubGVuZ3RoO2E8Yzspbz1vLnRoZW4oQlthKytdLEJbYSsrXSk7cmV0dXJuIG99Z2V0VXJpKGUpe2U9TCh0aGlzLmRlZmF1bHRzLGUpO2xldCB0PUNBKGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gb0EodCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpfX07bi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbihlKXtlQS5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxJKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KEwoSXx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KEl8fHt9KS5kYXRhfSkpfX0pO24uZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoSSl7cmV0dXJuIGZ1bmN0aW9uKGcsaSxzKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KEwoc3x8e30se21ldGhvZDplLGhlYWRlcnM6ST97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6ZyxkYXRhOml9KSl9fWVBLnByb3RvdHlwZVtlXT10KCksZUEucHJvdG90eXBlW2UrIkZvcm0iXT10KCEwKX0pO3ZhciBFQT1lQTt2YXIgY2U9Y2xhc3MgQXtjb25zdHJ1Y3RvcihlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGcpe3Q9Z30pO2xldCBJPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4ocj0+e2lmKCFJLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBnPUkuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtnLS0gPjA7KUkuX2xpc3RlbmVyc1tnXShyKTtJLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPXI9PntsZXQgZyxpPW5ldyBQcm9taXNlKHM9PntJLnN1YnNjcmliZShzKSxnPXN9KS50aGVuKHIpO3JldHVybiBpLmNhbmNlbD1mdW5jdGlvbigpe0kudW5zdWJzY3JpYmUoZyl9LGl9LGUoZnVuY3Rpb24oZyxpLHMpe0kucmVhc29ufHwoSS5yZWFzb249bmV3IFkoZyxpLHMpLHQoSS5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUoZSl7aWYodGhpcy5yZWFzb24pe2UodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX11bnN1YnNjcmliZShlKXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcix0PUk9PntlLmFib3J0KEkpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUodCksZS5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUodCksZS5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCBlO3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihyKXtlPXJ9KSxjYW5jZWw6ZX19fSxsdD1jZTtmdW5jdGlvbiBmZShBKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEEuYXBwbHkobnVsbCx0KX19ZnVuY3Rpb24gdWUoQSl7cmV0dXJuIG4uaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIHBlPXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhwZSkuZm9yRWFjaCgoW0EsZV0pPT57cGVbZV09QX0pO3ZhciBjdD1wZTtmdW5jdGlvbiBmdChBKXtsZXQgZT1uZXcgRUEoQSksdD1yQShFQS5wcm90b3R5cGUucmVxdWVzdCxlKTtyZXR1cm4gbi5leHRlbmQodCxFQS5wcm90b3R5cGUsZSx7YWxsT3duS2V5czohMH0pLG4uZXh0ZW5kKHQsZSxudWxsLHthbGxPd25LZXlzOiEwfSksdC5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIGZ0KEwoQSxyKSl9LHR9dmFyIHc9ZnQoXyk7dy5BeGlvcz1FQTt3LkNhbmNlbGVkRXJyb3I9WTt3LkNhbmNlbFRva2VuPWx0O3cuaXNDYW5jZWw9c0E7dy5WRVJTSU9OPU1BO3cudG9Gb3JtRGF0YT14O3cuQXhpb3NFcnJvcj11O3cuQ2FuY2VsPXcuQ2FuY2VsZWRFcnJvcjt3LmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9O3cuc3ByZWFkPWZlO3cuaXNBeGlvc0Vycm9yPXVlO3cubWVyZ2VDb25maWc9TDt3LkF4aW9zSGVhZGVycz1TO3cuZm9ybVRvSlNPTj1BPT5OQShuLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO3cuZ2V0QWRhcHRlcj1ZQS5nZXRBZGFwdGVyO3cuSHR0cFN0YXR1c0NvZGU9Y3Q7dy5kZWZhdWx0PXc7dmFyIHRBPXc7dmFye0F4aW9zOm5uLEF4aW9zRXJyb3I6YW4sQ2FuY2VsZWRFcnJvcjpzbixpc0NhbmNlbDpCbixDYW5jZWxUb2tlbjpDbixWRVJTSU9OOlFuLGFsbDpFbixDYW5jZWw6bG4saXNBeGlvc0Vycm9yOmNuLHNwcmVhZDpmbix0b0Zvcm1EYXRhOnVuLEF4aW9zSGVhZGVyczpwbixIdHRwU3RhdHVzQ29kZTpkbixmb3JtVG9KU09OOmhuLGdldEFkYXB0ZXI6RG4sbWVyZ2VDb25maWc6eW59PXRBO2FzeW5jIGZ1bmN0aW9uIGNyKEEsZSl7bGV0IHQ9QSxJPW51bGw7aWYodD09bnVsbClJPW5ldyBXb3JrZXIobmV3IFVSTCgiLi93ZWItd29ya2Vycy9pdGstd2FzbS1waXBlbGluZS53b3JrZXIuanMiLGltcG9ydC5tZXRhLnVybCkse3R5cGU6Im1vZHVsZSJ9KTtlbHNlIGlmKHQuc3RhcnRzV2l0aCgiaHR0cCIpKXtsZXQgcj1hd2FpdCB0QS5nZXQodCx7cmVzcG9uc2VUeXBlOiJibG9iIixwYXJhbXM6ZX0pLGc9VVJMLmNyZWF0ZU9iamVjdFVSTChyLmRhdGEpO0k9bmV3IFdvcmtlcihnLHt0eXBlOiJtb2R1bGUifSl9ZWxzZSBJPW5ldyBXb3JrZXIodCx7dHlwZToibW9kdWxlIn0pO3JldHVybiBJfXZhciBsQT1jcjtmdW5jdGlvbiB1dChBKXtsZXQgZT1aQShBKSx0PUE7cmV0dXJuIHQudGVybWluYXRlZD0hMSx0LndvcmtlclByb3h5PWUsdC5vcmlnaW5hbFRlcm1pbmF0ZT10LnRlcm1pbmF0ZSx0LnRlcm1pbmF0ZT0oKT0+e3QudGVybWluYXRlZD0hMCx0LndvcmtlclByb3h5W3ZBXSgpLHQub3JpZ2luYWxUZXJtaW5hdGUoKX0se3dvcmtlclByb3h5OmUsd29ya2VyOnR9fWFzeW5jIGZ1bmN0aW9uIGZyKEEsZSx0KXtsZXQgSTtpZihBIT1udWxsKXtsZXQgZz1BO3JldHVybiBnLndvcmtlclByb3h5IT09dm9pZCAwPyhJPWcud29ya2VyUHJveHkse3dvcmtlclByb3h5Okksd29ya2VyOmd9KTp1dChBKX1sZXQgcj1hd2FpdCBsQShlLHQpO3JldHVybiB1dChyKX12YXIgcHQ9ZnI7dmFyIGNBLE8saGUsZGU9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXtoZT1uZXcgVWludDhBcnJheShPLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sS0E9Y2xhc3N7aW5pdCgpe3JldHVybiBjQXx8KHR5cGVvZiBmZXRjaDwidSI/Y0E9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitkdCkudGhlbihlPT5lLmFycmF5QnVmZmVyKCkpLnRoZW4oZT0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoZSxkZSkpLnRoZW4odGhpcy5faW5pdCk6Y0E9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oZHQsImJhc2U2NCIpLGRlKS50aGVuKHRoaXMuX2luaXQpLGNBKX1faW5pdChlKXtPPWUuaW5zdGFuY2UsZGUuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKGUsdD0wKXtpZighTyl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgST1lLmJ5dGVMZW5ndGgscj1PLmV4cG9ydHMubWFsbG9jKEkpO2hlLnNldChlLHIpLHQ9dHx8TnVtYmVyKE8uZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKHIsSSkpO2xldCBnPU8uZXhwb3J0cy5tYWxsb2ModCksaT1PLmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKGcsdCxyLEkpLHM9aGUuc2xpY2UoZyxnK2kpO3JldHVybiBPLmV4cG9ydHMuZnJlZShyKSxPLmV4cG9ydHMuZnJlZShnKSxzfX0sZHQ9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgaHQ9bmV3IEtBLER0PSExO2FzeW5jIGZ1bmN0aW9uIHVyKEEsZSx0KXtsZXQgST0idW5rbm93biI7dHlwZW9mIEEhPSJzdHJpbmciP0k9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP0k9QTpJPXR5cGVvZiBlPCJ1Ij9gJHtlfS8ke0F9YDpBLEkuZW5kc1dpdGgoIi5qcyIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTMpKSxJLmVuZHNXaXRoKCIud2FzbSIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTUpKSxJLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC05KSk7bGV0IHI9YCR7SX0ud2FzbWAsZz1hd2FpdCB0QS5nZXQoYCR7cn0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOnR9KTtEdHx8KGF3YWl0IGh0LmluaXQoKSxEdD0hMCk7bGV0IHM9aHQuZGVjb2RlKG5ldyBVaW50OEFycmF5KGcuZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke0l9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6c30pfXZhciB5dD11cjt2YXIgd3Q9YXN5bmMoKT0+V2ViQXNzZW1ibHkudmFsaWRhdGUobmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwLDEsNSwxLDk2LDAsMSwxMjMsMywyLDEsMCwxMCwxMCwxLDgsMCw2NSwwLDI1MywxNSwyNTMsOTgsMTFdKSk7dmFyIEZ0PXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLG10PW5ldyBUZXh0RW5jb2RlcixTdD1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gcHIoQSxlKXtsZXQgdD17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSxJPUEuZnNfb3BlbihlLHQuZmxhZ3MpLGc9QS5mc19zdGF0KGUpLnNpemUsaT1udWxsO0Z0P2k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKGcpOmk9bmV3IEFycmF5QnVmZmVyKGcpO2xldCBzPW5ldyBVaW50OEFycmF5KGkpO3JldHVybiBBLmZzX3JlYWQoSSxzLDAsZywwKSxBLmZzX2Nsb3NlKEkpLHN9ZnVuY3Rpb24gUnQoQSxlLHQpe2xldCBJPW51bGw7RnQ/ST1uZXcgU2hhcmVkQXJyYXlCdWZmZXIodCk6ST1uZXcgQXJyYXlCdWZmZXIodCk7bGV0IHI9bmV3IFVpbnQ4QXJyYXkoSSksZz1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsZSx0KTtyZXR1cm4gci5zZXQoZykscn1mdW5jdGlvbiBtKEEsZSx0LEkpe2xldCByPTA7cmV0dXJuIGUhPT1udWxsJiYocj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LEksZS5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheShlLmJ1ZmZlcikscikpLHJ9ZnVuY3Rpb24gUChBLGUsdCl7bGV0IEk9SlNPTi5zdHJpbmdpZnkoZSkscj1BLmxlbmd0aEJ5dGVzVVRGOChJKSsxLGc9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LHJdKTtBLnN0cmluZ1RvVVRGOChJLGcscil9ZnVuY3Rpb24gRihBLGUsdCxJKXtsZXQgcj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKSxnPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsdF0pLGk9UnQoQSxyLGcpO3JldHVybiBKKEksaS5idWZmZXIpfWZ1bmN0aW9uIGZBKEEsZSl7bGV0IHQ9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCxlXSksST1BLlVURjhUb1N0cmluZyh0KTtyZXR1cm4gSlNPTi5wYXJzZShJKX1mdW5jdGlvbiBkcihBLGUsdCxJKXtJIT1udWxsJiZJLmxlbmd0aD4wJiZJLmZvckVhY2goZnVuY3Rpb24oQixvKXtzd2l0Y2goQi50eXBlKXtjYXNlIHAuVGV4dFN0cmVhbTp7bGV0IGE9bXQuZW5jb2RlKEIuZGF0YS5kYXRhKSxjPW0oQSxhLG8sMCksQz17c2l6ZTphLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWB9O1AoQSxDLG8pO2JyZWFrfWNhc2UgcC5Kc29uQ29tcGF0aWJsZTp7bGV0IGE9bXQuZW5jb2RlKEpTT04uc3RyaW5naWZ5KEIuZGF0YSkpLGM9bShBLGEsbywwKSxDPXtzaXplOmEuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YH07UChBLEMsbyk7YnJlYWt9Y2FzZSBwLkJpbmFyeVN0cmVhbTp7bGV0IGE9Qi5kYXRhLmRhdGEsYz1tKEEsYSxvLDApLEM9e3NpemU6YS5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gfTtQKEEsQyxvKTticmVha31jYXNlIHAuVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIHAuQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgcC5JbWFnZTp7bGV0IGE9Qi5kYXRhLGM9bShBLGEuZGF0YSxvLDApLEM9bShBLGEuZGlyZWN0aW9uLG8sMSksUT10eXBlb2YgYS5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShhLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sZj17aW1hZ2VUeXBlOmEuaW1hZ2VUeXBlLG5hbWU6YS5uYW1lLG9yaWdpbjphLm9yaWdpbixzcGFjaW5nOmEuc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtDfWAsc2l6ZTphLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxtZXRhZGF0YTpRfTtQKEEsZixvKTticmVha31jYXNlIHAuTWVzaDp7bGV0IGE9Qi5kYXRhLGM9bShBLGEucG9pbnRzLG8sMCksQz1tKEEsYS5jZWxscyxvLDEpLFE9bShBLGEucG9pbnREYXRhLG8sMiksZj1tKEEsYS5jZWxsRGF0YSxvLDMpLGw9e21lc2hUeXBlOmEubWVzaFR5cGUsbmFtZTphLm5hbWUsbnVtYmVyT2ZQb2ludHM6YS5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsbnVtYmVyT2ZDZWxsczphLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtDfWAsY2VsbEJ1ZmZlclNpemU6YS5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOmEubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOmEubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtQKEEsbCxvKTticmVha31jYXNlIHAuUG9pbnRTZXQ6e2xldCBhPUIuZGF0YSxjPW0oQSxhLnBvaW50cyxvLDApLEM9bShBLGEucG9pbnREYXRhLG8sMSksUT17cG9pbnRTZXRUeXBlOmEucG9pbnRTZXRUeXBlLG5hbWU6YS5uYW1lLG51bWJlck9mUG9pbnRzOmEubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mUG9pbnRQaXhlbHM6YS5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0N9YH07UChBLFEsbyk7YnJlYWt9Y2FzZSBwLlRyYW5zZm9ybUxpc3Q6e2xldCBhPUIuZGF0YSxjPVtdLEM9MDthLmZvckVhY2goUT0+e2xldCBmPSIiLGw9IiI7US50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGY9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHttKEEsUS5maXhlZFBhcmFtZXRlcnMsbyxDKX1gLEMrPTEsbD1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke20oQSxRLnBhcmFtZXRlcnMsbyxDKX1gLEMrPTEpO2xldCBkPXt0cmFuc2Zvcm1UeXBlOlEudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpRLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpRLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOlEubmFtZSxpbnB1dFNwYWNlTmFtZTpRLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpRLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmwsZml4ZWRQYXJhbWV0ZXJzOmZ9O2MucHVzaChkKX0pLFAoQSxjLG8pO2JyZWFrfWNhc2UgcC5Qb2x5RGF0YTp7bGV0IGE9Qi5kYXRhLGM9bShBLGEucG9pbnRzLG8sMCksQz1tKEEsYS52ZXJ0aWNlcyxvLDEpLFE9bShBLGEubGluZXMsbywyKSxmPW0oQSxhLnBvbHlnb25zLG8sMyksbD1tKEEsYS50cmlhbmdsZVN0cmlwcyxvLDQpLGQ9bShBLGEucG9pbnREYXRhLG8sNSksRD1tKEEsYS5wb2ludERhdGEsbyw2KSx5PXtwb2x5RGF0YVR5cGU6YS5wb2x5RGF0YVR5cGUsbmFtZTphLm5hbWUsbnVtYmVyT2ZQb2ludHM6YS5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsdmVydGljZXNCdWZmZXJTaXplOmEudmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Q31gLGxpbmVzQnVmZmVyU2l6ZTphLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxwb2x5Z29uc0J1ZmZlclNpemU6YS5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOmEudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mUG9pbnRQaXhlbHM6YS5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2R9YCxudW1iZXJPZkNlbGxQaXhlbHM6YS5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtEfWB9O1AoQSx5LG8pO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCByPUEuc3RhY2tTYXZlKCksZz0wO3RyeXtnPUEuY2FsbE1haW4oZS5zbGljZSgpKX1jYXRjaChCKXt0aHJvdyB0eXBlb2YgQj09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShCKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxCfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUocil9bGV0IGk9QS5nZXRNb2R1bGVTdGRvdXQoKSxzPUEuZ2V0TW9kdWxlU3RkZXJyKCksRT1bXTtyZXR1cm4gdCE9bnVsbCYmdC5sZW5ndGg+MCYmZz09PTAmJnQuZm9yRWFjaChmdW5jdGlvbihCLG8pe2xldCBhPW51bGw7c3dpdGNoKEIudHlwZSl7Y2FzZSBwLlRleHRTdHJlYW06e2xldCBDPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG8sMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbywwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQyxRKTthPXtkYXRhOlN0LmRlY29kZShmKX07YnJlYWt9Y2FzZSBwLkpzb25Db21wYXRpYmxlOntsZXQgQz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxvLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG8sMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEMsUSk7YT1KU09OLnBhcnNlKFN0LmRlY29kZShmKSk7YnJlYWt9Y2FzZSBwLkJpbmFyeVN0cmVhbTp7bGV0IEM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxvLDBdKTthPXtkYXRhOlJ0KEEsQyxRKX07YnJlYWt9Y2FzZSBwLlRleHRGaWxlOnthPXtwYXRoOkIuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShCLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgcC5CaW5hcnlGaWxlOnthPXtwYXRoOkIuZGF0YS5wYXRoLGRhdGE6cHIoQSxCLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgcC5JbWFnZTp7bGV0IEM9ZkEoQSxvKTtDLmRhdGE9RihBLG8sMCxDLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxDLmRpcmVjdGlvbj1GKEEsbywxLGouRmxvYXQ2NCksQy5tZXRhZGF0YT1uZXcgTWFwKEMubWV0YWRhdGEpLGE9QzticmVha31jYXNlIHAuTWVzaDp7bGV0IEM9ZkEoQSxvKTtDLm51bWJlck9mUG9pbnRzPjA/Qy5wb2ludHM9RihBLG8sMCxDLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qy5wb2ludHM9SihDLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZDZWxscz4wP0MuY2VsbHM9RihBLG8sMSxDLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTpDLmNlbGxzPUooQy5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEMubnVtYmVyT2ZQb2ludFBpeGVscz4wP0MucG9pbnREYXRhPUYoQSxvLDIsQy5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5wb2ludERhdGE9SihDLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQy5udW1iZXJPZkNlbGxQaXhlbHM+MD9DLmNlbGxEYXRhPUYoQSxvLDMsQy5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpDLmNlbGxEYXRhPUooQy5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYT1DO2JyZWFrfWNhc2UgcC5Qb2ludFNldDp7bGV0IEM9ZkEoQSxvKTtDLm51bWJlck9mUG9pbnRzPjA/Qy5wb2ludHM9RihBLG8sMCxDLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkMucG9pbnRzPUooQy5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qy5wb2ludERhdGE9RihBLG8sMSxDLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5wb2ludERhdGE9SihDLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGE9QzticmVha31jYXNlIHAuVHJhbnNmb3JtTGlzdDp7bGV0IEM9ZkEoQSxvKSxRPTA7Qy5mb3JFYWNoKChmLGwpPT57Zi50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGYubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKENbbF0uZml4ZWRQYXJhbWV0ZXJzPUYoQSxvLFEsai5GbG9hdDY0KSksUSs9MSxmLm51bWJlck9mUGFyYW1ldGVycz4wJiYoQ1tsXS5wYXJhbWV0ZXJzPUYoQSxvLFEsZi50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxRKz0xKX0pLGE9QzticmVha31jYXNlIHAuUG9seURhdGE6e2xldCBDPWZBKEEsbyk7Qy5udW1iZXJPZlBvaW50cz4wP0MucG9pbnRzPUYoQSxvLDAsai5GbG9hdDMyKTpDLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LEMudmVydGljZXNCdWZmZXJTaXplPjA/Qy52ZXJ0aWNlcz1GKEEsbywxLGsuVUludDMyKTpDLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxDLmxpbmVzQnVmZmVyU2l6ZT4wP0MubGluZXM9RihBLG8sMixrLlVJbnQzMik6Qy5saW5lcz1uZXcgVWludDMyQXJyYXksQy5wb2x5Z29uc0J1ZmZlclNpemU+MD9DLnBvbHlnb25zPUYoQSxvLDMsay5VSW50MzIpOkMucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LEMudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/Qy50cmlhbmdsZVN0cmlwcz1GKEEsbyw0LGsuVUludDMyKTpDLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxDLm51bWJlck9mUG9pbnRQaXhlbHM+MD9DLnBvaW50RGF0YT1GKEEsbyw1LEMucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpDLnBvaW50RGF0YT1KKEMucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQy5udW1iZXJPZkNlbGxQaXhlbHM+MD9DLmNlbGxEYXRhPUYoQSxvLDYsQy5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qy5jZWxsRGF0YT1KKEMucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhPUM7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgYz17dHlwZTpCLnR5cGUsZGF0YTphfTtFLnB1c2goYyl9KSx7cmV0dXJuVmFsdWU6ZyxzdGRvdXQ6aSxzdGRlcnI6cyxvdXRwdXRzOkV9fXZhciBrdD1kcjt2YXIgaHI9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uIERyKEEsZSl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgdD1bXTtmb3IobGV0IEk9MDtJPEEubGVuZ3RoO0krKyl7bGV0IHI9eXIoQVtJXSxlKTtyIT09bnVsbCYmdC5wdXNoKHIpfXJldHVybiB0fWZ1bmN0aW9uIHlyKEEsZSl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgdD1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD90PUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKHQ9QSksaHImJnQgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOmU/dDp0LnNsaWNlKDApfXZhciBVdD1EcjtmdW5jdGlvbiB3cihBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIgTnQ9d3I7ZnVuY3Rpb24gbXIoQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIEd0PW1yO2Z1bmN0aW9uIFNyKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBMdD1Tcjt2YXIgRnI7ZnVuY3Rpb24gT0EoKXtyZXR1cm4gRnJ9dmFyIFJyO2Z1bmN0aW9uIGJ0KCl7cmV0dXJuIFJyfXZhciBrcjtmdW5jdGlvbiBUQSgpe3JldHVybiBrcn12YXIgRGU9bmV3IE1hcDtmdW5jdGlvbiBVcigpe2xldCBBPVRBKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bnVsbCksQX1mdW5jdGlvbiBKdCgpe2xldCBBPU9BKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bmV3IFVSTCgiL3BpcGVsaW5lcyIsZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luKS5ocmVmKSxBfWZ1bmN0aW9uIHhBKCl7bGV0IEE9YnQoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT17fSksQX1hc3luYyBmdW5jdGlvbiBOcihBLGUsdCl7bGV0IEk9QSxyPUE7aWYodHlwZW9mIEEhPSJzdHJpbmciJiYoST1uZXcgVVJMKEEuaHJlZikscj1JLmhyZWYpLERlLmhhcyhyKSlyZXR1cm4gRGUuZ2V0KHIpO3tsZXQgZz1hd2FpdCB5dChBLGU/LnRvU3RyaW5nKCk/P0p0KCksdD8/eEEoKSk7cmV0dXJuIERlLnNldChyLGcpLGd9fWFzeW5jIGZ1bmN0aW9uIEdyKEEsZSx0LEkscil7aWYoIWF3YWl0IHd0KCkpe2xldCBsPSJXZWJBc3NlbWJseSBTSU1EIHN1cHBvcnQgaXMgcmVxdWlyZWQgLS0gcGxlYXNlIHVwZGF0ZSB5b3VyIGJyb3dzZXIuIjt0aHJvdyBhbGVydChsKSxuZXcgRXJyb3IobCl9bGV0IGc9cj8ud2ViV29ya2VyPz9udWxsO2lmKGc9PT0hMSl7bGV0IGw9YXdhaXQgTnIoQS50b1N0cmluZygpLHI/LnBpcGVsaW5lQmFzZVVybCxyPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz94QSgpKTtyZXR1cm4ga3QobCxlLHQsSSl9bGV0IGk9ZyxzPXI/LnBpcGVsaW5lV29ya2VyVXJsPz9VcigpLEU9dHlwZW9mIHMhPSJzdHJpbmciJiZ0eXBlb2Ygcz8uaHJlZjwidSI/cy5ocmVmOnMse3dvcmtlclByb3h5OkIsd29ya2VyOm99PWF3YWl0IHB0KGksRSxyPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz94QSgpKTtpPW87bGV0IGE9W107SSE9bnVsbCYmSS5sZW5ndGg+MCYmSS5mb3JFYWNoKGZ1bmN0aW9uKGwpe2lmKGwudHlwZT09PXAuQmluYXJ5U3RyZWFtKXtsZXQgZD1sLmRhdGEuZGF0YTthLnB1c2goZCl9ZWxzZSBpZihsLnR5cGU9PT1wLkJpbmFyeUZpbGUpe2xldCBkPWwuZGF0YS5kYXRhO2EucHVzaChkKX1lbHNlIGlmKGwudHlwZT09PXAuSW1hZ2Upe2xldCBkPWwuZGF0YTtkLmRhdGEhPT1udWxsJiZhLnB1c2goLi4uTnQoZCkpfWVsc2UgaWYobC50eXBlPT09cC5NZXNoKXtsZXQgZD1sLmRhdGE7YS5wdXNoKC4uLkd0KGQpKX1lbHNlIGlmKGwudHlwZT09PXAuUG9seURhdGEpe2xldCBkPWwuZGF0YTthLnB1c2goLi4uTHQoZCkpfX0pO2xldCBjPXI/LnBpcGVsaW5lQmFzZVVybD8/SnQoKSxDPXR5cGVvZiBjIT0ic3RyaW5nIiYmdHlwZW9mIGM/LmhyZWY8InUiP2MuaHJlZjpjLFE9SSE9bnVsbD9WQShJLFV0KGEscj8ubm9Db3B5KSk6bnVsbCxmPWF3YWl0IEIucnVuUGlwZWxpbmUoQS50b1N0cmluZygpLEMsZSx0LFEscj8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/eEEoKSk7cmV0dXJue3JldHVyblZhbHVlOmYucmV0dXJuVmFsdWUsc3Rkb3V0OmYuc3Rkb3V0LHN0ZGVycjpmLnN0ZGVycixvdXRwdXRzOmYub3V0cHV0cyx3ZWJXb3JrZXI6aX19dmFyIGI9R3I7dmFyIExyPW51bGw7ZnVuY3Rpb24gWXQoKXtyZXR1cm4gTHJ9dmFyIHllLGJyPWBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL0BpdGstd2FzbS9kb3duc2FtcGxlQCR7UEF9L2Rpc3QvcGlwZWxpbmVzYDtmdW5jdGlvbiBsYShBKXt5ZT1BfWZ1bmN0aW9uIE0oKXtpZih0eXBlb2YgeWU8InUiKXJldHVybiB5ZTtsZXQgQT1PQSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpicn12YXIgd2UsSnI9bnVsbDtmdW5jdGlvbiBIdChBKXt3ZT1BfWZ1bmN0aW9uIE4oKXtpZih0eXBlb2Ygd2U8InUiKXJldHVybiB3ZTtsZXQgQT1UQSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpKcn12YXIgSUE9bnVsbDthc3luYyBmdW5jdGlvbiBNdCgpe2xldCBBPU4oKSxlPXR5cGVvZiBBIT0ic3RyaW5nIiYmdHlwZW9mIEE/LmhyZWY8InUiP0EuaHJlZjpBO0lBPWF3YWl0IGxBKGUpfWZ1bmN0aW9uIERhKEEpe0lBPUF9YXN5bmMgZnVuY3Rpb24gcSgpe2lmKElBIT09bnVsbClyZXR1cm4gSUEudGVybWluYXRlZCYmYXdhaXQgTXQoKSxJQTtsZXQgQT1ZdCgpO3JldHVybiBBIT09bnVsbD9BOihhd2FpdCBNdCgpLElBKX1hc3luYyBmdW5jdGlvbiBZcihBLGU9e3Nocmlua0ZhY3RvcnM6WzIsMl19KXtsZXQgdD1be3R5cGU6cC5JbWFnZX1dLEk9W3t0eXBlOnAuSW1hZ2UsZGF0YTpBfV0scj1bXTtpZihyLnB1c2goIjAiKSxyLnB1c2goIjAiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5zaHJpbmtGYWN0b3JzKXtpZihlLnNocmlua0ZhY3RvcnMubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCcic2hyaW5rLWZhY3RvcnMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAyJyk7ci5wdXNoKCItLXNocmluay1mYWN0b3JzIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5zaHJpbmtGYWN0b3JzLm1hcChhc3luYyBRPT57ci5wdXNoKFEudG9TdHJpbmcoKSl9KSl9ZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBzPSJkb3duc2FtcGxlLWJpbi1zaHJpbmsiLEU9ZT8ud2ViV29ya2VyO0U9PT12b2lkIDAmJihFPWF3YWl0IHEoKSk7bGV0e3dlYldvcmtlcjpCLHJldHVyblZhbHVlOm8sc3RkZXJyOmEsb3V0cHV0czpjfT1hd2FpdCBiKHMscix0LEkse3BpcGVsaW5lQmFzZVVybDpNKCkscGlwZWxpbmVXb3JrZXJVcmw6TigpLHdlYldvcmtlcjpFLG5vQ29weTplPy5ub0NvcHl9KTtpZihvIT09MCYmYSE9PSIiKXRocm93IG5ldyBFcnJvcihhKTtyZXR1cm57d2ViV29ya2VyOkIsZG93bnNhbXBsZWQ6Y1swXT8uZGF0YX19dmFyIEhyPVlyO2FzeW5jIGZ1bmN0aW9uIE1yKEEsZT17c2hyaW5rRmFjdG9yczpbMiwyXX0pe2xldCB0PVt7dHlwZTpwLkltYWdlfV0sST1be3R5cGU6cC5JbWFnZSxkYXRhOkF9XSxyPVtdO2lmKHIucHVzaCgiMCIpLHIucHVzaCgiMCIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLnNocmlua0ZhY3RvcnMpe2lmKGUuc2hyaW5rRmFjdG9ycy5sZW5ndGg8Mil0aHJvdyBuZXcgRXJyb3IoJyJzaHJpbmstZmFjdG9ycyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDInKTtyLnB1c2goIi0tc2hyaW5rLWZhY3RvcnMiKSxhd2FpdCBQcm9taXNlLmFsbChlLnNocmlua0ZhY3RvcnMubWFwKGFzeW5jIFE9PntyLnB1c2goUS50b1N0cmluZygpKX0pKX1pZihlLmNyb3BSYWRpdXMpe2lmKGUuY3JvcFJhZGl1cy5sZW5ndGg8Mil0aHJvdyBuZXcgRXJyb3IoJyJjcm9wLXJhZGl1cyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDInKTtyLnB1c2goIi0tY3JvcC1yYWRpdXMiKSxhd2FpdCBQcm9taXNlLmFsbChlLmNyb3BSYWRpdXMubWFwKGFzeW5jIFE9PntyLnB1c2goUS50b1N0cmluZygpKX0pKX1sZXQgcz0iZG93bnNhbXBsZS1sYWJlbC1pbWFnZSIsRT1lPy53ZWJXb3JrZXI7RT09PXZvaWQgMCYmKEU9YXdhaXQgcSgpKTtsZXR7d2ViV29ya2VyOkIscmV0dXJuVmFsdWU6byxzdGRlcnI6YSxvdXRwdXRzOmN9PWF3YWl0IGIocyxyLHQsSSx7cGlwZWxpbmVCYXNlVXJsOk0oKSxwaXBlbGluZVdvcmtlclVybDpOKCksd2ViV29ya2VyOkUsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKG8hPT0wJiZhIT09IiIpdGhyb3cgbmV3IEVycm9yKGEpO3JldHVybnt3ZWJXb3JrZXI6Qixkb3duc2FtcGxlZDpjWzBdPy5kYXRhfX12YXIgcXI9TXI7YXN5bmMgZnVuY3Rpb24gS3IoQT17c2hyaW5rRmFjdG9yczpbMiwyXX0pe2xldCBlPVt7dHlwZTpwLkpzb25Db21wYXRpYmxlfV0sdD1bXSxJPVtdO2lmKEkucHVzaCgiMCIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSx0eXBlb2YgQS5zaHJpbmtGYWN0b3JzPCJ1Iil7aWYoQS5zaHJpbmtGYWN0b3JzLmxlbmd0aDwxKXRocm93IG5ldyBFcnJvcignInNocmluay1mYWN0b3JzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMScpO0kucHVzaCgiLS1zaHJpbmstZmFjdG9ycyIpLGF3YWl0IFByb21pc2UuYWxsKEEuc2hyaW5rRmFjdG9ycy5tYXAoYXN5bmMgYz0+e0kucHVzaChjLnRvU3RyaW5nKCkpfSkpfWxldCBnPSJkb3duc2FtcGxlLXNpZ21hIixpPUE/LndlYldvcmtlcjtpPT09dm9pZCAwJiYoaT1hd2FpdCBxKCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpFLHN0ZGVycjpCLG91dHB1dHM6b309YXdhaXQgYihnLEksZSx0LHtwaXBlbGluZUJhc2VVcmw6TSgpLHBpcGVsaW5lV29ya2VyVXJsOk4oKSx3ZWJXb3JrZXI6aSxub0NvcHk6QT8ubm9Db3B5fSk7aWYoRSE9PTAmJkIhPT0iIil0aHJvdyBuZXcgRXJyb3IoQik7cmV0dXJue3dlYldvcmtlcjpzLHNpZ21hOm9bMF0/LmRhdGF9fXZhciBPcj1Lcjthc3luYyBmdW5jdGlvbiBUcihBLGU9e3Nocmlua0ZhY3RvcnM6WzIsMl19KXtsZXQgdD1be3R5cGU6cC5JbWFnZX1dLEk9W3t0eXBlOnAuSW1hZ2UsZGF0YTpBfV0scj1bXTtpZihyLnB1c2goIjAiKSxyLnB1c2goIjAiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5zaHJpbmtGYWN0b3JzKXtpZihlLnNocmlua0ZhY3RvcnMubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCcic2hyaW5rLWZhY3RvcnMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAyJyk7ci5wdXNoKCItLXNocmluay1mYWN0b3JzIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5zaHJpbmtGYWN0b3JzLm1hcChhc3luYyBRPT57ci5wdXNoKFEudG9TdHJpbmcoKSl9KSl9aWYoZS5jcm9wUmFkaXVzKXtpZihlLmNyb3BSYWRpdXMubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCciY3JvcC1yYWRpdXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAyJyk7ci5wdXNoKCItLWNyb3AtcmFkaXVzIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5jcm9wUmFkaXVzLm1hcChhc3luYyBRPT57ci5wdXNoKFEudG9TdHJpbmcoKSl9KSl9bGV0IHM9ImRvd25zYW1wbGUiLEU9ZT8ud2ViV29ya2VyO0U9PT12b2lkIDAmJihFPWF3YWl0IHEoKSk7bGV0e3dlYldvcmtlcjpCLHJldHVyblZhbHVlOm8sc3RkZXJyOmEsb3V0cHV0czpjfT1hd2FpdCBiKHMscix0LEkse3BpcGVsaW5lQmFzZVVybDpNKCkscGlwZWxpbmVXb3JrZXJVcmw6TigpLHdlYldvcmtlcjpFLG5vQ29weTplPy5ub0NvcHl9KTtpZihvIT09MCYmYSE9PSIiKXRocm93IG5ldyBFcnJvcihhKTtyZXR1cm57d2ViV29ya2VyOkIsZG93bnNhbXBsZWQ6Y1swXT8uZGF0YX19dmFyIHhyPVRyO2FzeW5jIGZ1bmN0aW9uIFByKEE9e3NpemU6WzEsMV0sc2lnbWE6WzEsMV19KXtsZXQgZT1be3R5cGU6cC5Kc29uQ29tcGF0aWJsZX1dLHQ9W10sST1bXTtpZihJLnB1c2goIjAiKSxJLnB1c2goIi0tbWVtb3J5LWlvIiksdHlwZW9mIEEuc2l6ZTwidSIpe2lmKEEuc2l6ZS5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJzaXplIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMScpO0kucHVzaCgiLS1zaXplIiksYXdhaXQgUHJvbWlzZS5hbGwoQS5zaXplLm1hcChhc3luYyBjPT57SS5wdXNoKGMudG9TdHJpbmcoKSl9KSl9aWYodHlwZW9mIEEuc2lnbWE8InUiKXtpZihBLnNpZ21hLmxlbmd0aDwxKXRocm93IG5ldyBFcnJvcignInNpZ21hIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMScpO0kucHVzaCgiLS1zaWdtYSIpLGF3YWl0IFByb21pc2UuYWxsKEEuc2lnbWEubWFwKGFzeW5jIGM9PntJLnB1c2goYy50b1N0cmluZygpKX0pKX10eXBlb2YgQS5tYXhLZXJuZWxXaWR0aDwidSImJkkucHVzaCgiLS1tYXgta2VybmVsLXdpZHRoIixBLm1heEtlcm5lbFdpZHRoLnRvU3RyaW5nKCkpLHR5cGVvZiBBLm1heEtlcm5lbEVycm9yPCJ1IiYmSS5wdXNoKCItLW1heC1rZXJuZWwtZXJyb3IiLEEubWF4S2VybmVsRXJyb3IudG9TdHJpbmcoKSk7bGV0IGc9ImdhdXNzaWFuLWtlcm5lbC1yYWRpdXMiLGk9QT8ud2ViV29ya2VyO2k9PT12b2lkIDAmJihpPWF3YWl0IHEoKSk7bGV0e3dlYldvcmtlcjpzLHJldHVyblZhbHVlOkUsc3RkZXJyOkIsb3V0cHV0czpvfT1hd2FpdCBiKGcsSSxlLHQse3BpcGVsaW5lQmFzZVVybDpNKCkscGlwZWxpbmVXb3JrZXJVcmw6TigpLHdlYldvcmtlcjppLG5vQ29weTpBPy5ub0NvcHl9KTtpZihFIT09MCYmQiE9PSIiKXRocm93IG5ldyBFcnJvcihCKTtyZXR1cm57d2ViV29ya2VyOnMscmFkaXVzOm9bMF0/LmRhdGF9fXZhciBXcj1Qcjt2YXIgcXQ9J2RhdGE6dGV4dC9qYXZhc2NyaXB0O2NoYXJzZXQ9dXRmLTgsdmFyIERlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZGU9KEEsdCk9Pntmb3IodmFyIGUgaW4gdClEZShBLGUse2dldDp0W2VdLGVudW1lcmFibGU6ITB9KX07dmFyIEV0PVN5bWJvbCgiQ29tbGluay5wcm94eSIpLGhlPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLHllPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxZQT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksUUE9U3ltYm9sKCJDb21saW5rLnRocm93biIpLGN0PUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLG1lPXtjYW5IYW5kbGU6QT0+Y3QoQSkmJkFbRXRdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6dCxwb3J0MjplfT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIGxBKEEsdCksW2UsW2VdXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxGZShBKX19LHdlPXtjYW5IYW5kbGU6QT0+Y3QoQSkmJlFBIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IHQ7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj90PXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06dD17aXNFcnJvcjohMSx2YWx1ZTpBfSxbdCxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSxmdD1uZXcgTWFwKFtbInByb3h5IixtZV0sWyJ0aHJvdyIsd2VdXSk7ZnVuY3Rpb24gcGUoQSx0KXtmb3IobGV0IGUgb2YgQSlpZih0PT09ZXx8ZT09PSIqInx8ZSBpbnN0YW5jZW9mIFJlZ0V4cCYmZS50ZXN0KHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGxBKEEsdD1nbG9iYWxUaGlzLGU9WyIqIl0pe3QuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gSShyKXtpZighcnx8IXIuZGF0YSlyZXR1cm47aWYoIXBlKGUsci5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luIFwnJHtyLm9yaWdpbn1cJyBmb3IgY29tbGluayBwcm94eWApO3JldHVybn1sZXR7aWQ6byx0eXBlOmcscGF0aDpDfT1PYmplY3QuYXNzaWduKHtwYXRoOltdfSxyLmRhdGEpLEU9KHIuZGF0YS5hcmd1bWVudExpc3R8fFtdKS5tYXAoTyksYTt0cnl7bGV0IHM9Qy5zbGljZSgwLC0xKS5yZWR1Y2UoKGYsQik9PmZbQl0sQSksbj1DLnJlZHVjZSgoZixCKT0+ZltCXSxBKTtzd2l0Y2goZyl7Y2FzZSJHRVQiOmE9bjticmVhaztjYXNlIlNFVCI6c1tDLnNsaWNlKC0xKVswXV09TyhyLmRhdGEudmFsdWUpLGE9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6YT1uLmFwcGx5KHMsRSk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgZj1uZXcgbiguLi5FKTthPUdlKGYpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6Zixwb3J0MjpCfT1uZXcgTWVzc2FnZUNoYW5uZWw7bEEoQSxCKSxhPU1BKGYsW2ZdKX1icmVhaztjYXNlIlJFTEVBU0UiOmE9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChzKXthPXt2YWx1ZTpzLFtRQV06MH19UHJvbWlzZS5yZXNvbHZlKGEpLmNhdGNoKHM9Pih7dmFsdWU6cyxbUUFdOjB9KSkudGhlbihzPT57bGV0W24sZl09ZkEocyk7dC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2lkOm99KSxmKSxnPT09IlJFTEVBU0UiJiYodC5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixJKSxsdCh0KSxZQSBpbiBBJiZ0eXBlb2YgQVtZQV09PSJmdW5jdGlvbiImJkFbWUFdKCkpfSkuY2F0Y2gocz0+e2xldFtuLGZdPWZBKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxbUUFdOjB9KTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuKSx7aWQ6b30pLGYpfSl9KSx0LnN0YXJ0JiZ0LnN0YXJ0KCl9ZnVuY3Rpb24gU2UoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gbHQoQSl7U2UoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBGZShBLHQpe3JldHVybiBxQShBLFtdLHQpfWZ1bmN0aW9uIGFBKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiB1dChBKXtyZXR1cm4gVyhBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9PntsdChBKX0pfXZhciBFQT1uZXcgV2Vha01hcCxjQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgdD0oRUEuZ2V0KEEpfHwwKS0xO0VBLnNldChBLHQpLHQ9PT0wJiZ1dChBKX0pO2Z1bmN0aW9uIFJlKEEsdCl7bGV0IGU9KEVBLmdldCh0KXx8MCkrMTtFQS5zZXQodCxlKSxjQSYmY0EucmVnaXN0ZXIoQSx0LEEpfWZ1bmN0aW9uIE5lKEEpe2NBJiZjQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIHFBKEEsdD1bXSxlPWZ1bmN0aW9uKCl7fSl7bGV0IEk9ITEscj1uZXcgUHJveHkoZSx7Z2V0KG8sZyl7aWYoYUEoSSksZz09PXllKXJldHVybigpPT57TmUociksdXQoQSksST0hMH07aWYoZz09PSJ0aGVuIil7aWYodC5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5yfTtsZXQgQz1XKEEse3R5cGU6IkdFVCIscGF0aDp0Lm1hcChFPT5FLnRvU3RyaW5nKCkpfSkudGhlbihPKTtyZXR1cm4gQy50aGVuLmJpbmQoQyl9cmV0dXJuIHFBKEEsWy4uLnQsZ10pfSxzZXQobyxnLEMpe2FBKEkpO2xldFtFLGFdPWZBKEMpO3JldHVybiBXKEEse3R5cGU6IlNFVCIscGF0aDpbLi4udCxnXS5tYXAocz0+cy50b1N0cmluZygpKSx2YWx1ZTpFfSxhKS50aGVuKE8pfSxhcHBseShvLGcsQyl7YUEoSSk7bGV0IEU9dFt0Lmxlbmd0aC0xXTtpZihFPT09aGUpcmV0dXJuIFcoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbihPKTtpZihFPT09ImJpbmQiKXJldHVybiBxQShBLHQuc2xpY2UoMCwtMSkpO2xldFthLHNdPVF0KEMpO3JldHVybiBXKEEse3R5cGU6IkFQUExZIixwYXRoOnQubWFwKG49Pm4udG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OmF9LHMpLnRoZW4oTyl9LGNvbnN0cnVjdChvLGcpe2FBKEkpO2xldFtDLEVdPVF0KGcpO3JldHVybiBXKEEse3R5cGU6IkNPTlNUUlVDVCIscGF0aDp0Lm1hcChhPT5hLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpDfSxFKS50aGVuKE8pfX0pO3JldHVybiBSZShyLEEpLHJ9ZnVuY3Rpb24gVWUoQSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sQSl9ZnVuY3Rpb24gUXQoQSl7bGV0IHQ9QS5tYXAoZkEpO3JldHVyblt0Lm1hcChlPT5lWzBdKSxVZSh0Lm1hcChlPT5lWzFdKSldfXZhciBEdD1uZXcgV2Vha01hcDtmdW5jdGlvbiBNQShBLHQpe3JldHVybiBEdC5zZXQoQSx0KSxBfWZ1bmN0aW9uIEdlKEEpe3JldHVybiBPYmplY3QuYXNzaWduKEEse1tFdF06ITB9KX1mdW5jdGlvbiBmQShBKXtmb3IobGV0W3QsZV1vZiBmdClpZihlLmNhbkhhbmRsZShBKSl7bGV0W0kscl09ZS5zZXJpYWxpemUoQSk7cmV0dXJuW3t0eXBlOiJIQU5ETEVSIixuYW1lOnQsdmFsdWU6SX0scl19cmV0dXJuW3t0eXBlOiJSQVciLHZhbHVlOkF9LER0LmdldChBKXx8W11dfWZ1bmN0aW9uIE8oQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4gZnQuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiBXKEEsdCxlKXtyZXR1cm4gbmV3IFByb21pc2UoST0+e2xldCByPWtlKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBvKGcpeyFnLmRhdGF8fCFnLmRhdGEuaWR8fGcuZGF0YS5pZCE9PXJ8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG8pLEkoZy5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpyfSx0KSxlKX0pfWZ1bmN0aW9uIGtlKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiB2KEEsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkodCxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6TGV9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOlRBfT1PYmplY3QsREE9KEE9PnQ9PntsZXQgZT1MZS5jYWxsKHQpO3JldHVybiBBW2VdfHwoQVtlXT1lLnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksRz1BPT4oQT1BLnRvTG93ZXJDYXNlKCksdD0+REEodCk9PT1BKSxkQT1BPT50PT50eXBlb2YgdD09PUEse2lzQXJyYXk6an09QXJyYXksJD1kQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gYmUoQSl7cmV0dXJuIEEhPT1udWxsJiYhJChBKSYmQS5jb25zdHJ1Y3RvciE9PW51bGwmJiEkKEEuY29uc3RydWN0b3IpJiZVKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciB5dD1HKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIEplKEEpe2xldCB0O3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/dD1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6dD1BJiZBLmJ1ZmZlciYmeXQoQS5idWZmZXIpLHR9dmFyIEhlPWRBKCJzdHJpbmciKSxVPWRBKCJmdW5jdGlvbiIpLG10PWRBKCJudW1iZXIiKSxoQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLFllPUE9PkE9PT0hMHx8QT09PSExLHVBPUE9PntpZihEQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCB0PVRBKEEpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpJiYhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiBBKSYmIShTeW1ib2wuaXRlcmF0b3IgaW4gQSl9LHFlPUcoIkRhdGUiKSxNZT1HKCJGaWxlIiksS2U9RygiQmxvYiIpLFRlPUcoIkZpbGVMaXN0IiksT2U9QT0+aEEoQSkmJlUoQS5waXBlKSx4ZT1BPT57bGV0IHQ7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8VShBLmFwcGVuZCkmJigodD1EQShBKSk9PT0iZm9ybWRhdGEifHx0PT09Im9iamVjdCImJlUoQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sUGU9RygiVVJMU2VhcmNoUGFyYW1zIiksW1dlLGplLFplLFZlXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChHKSxYZT1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZywiIik7ZnVuY3Rpb24gQUEoQSx0LHthbGxPd25LZXlzOmU9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgSSxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSxqKEEpKWZvcihJPTAscj1BLmxlbmd0aDtJPHI7SSsrKXQuY2FsbChudWxsLEFbSV0sSSxBKTtlbHNle2xldCBvPWU/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSk6T2JqZWN0LmtleXMoQSksZz1vLmxlbmd0aCxDO2ZvcihJPTA7STxnO0krKylDPW9bSV0sdC5jYWxsKG51bGwsQVtDXSxDLEEpfX1mdW5jdGlvbiB3dChBLHQpe3Q9dC50b0xvd2VyQ2FzZSgpO2xldCBlPU9iamVjdC5rZXlzKEEpLEk9ZS5sZW5ndGgscjtmb3IoO0ktLSA+MDspaWYocj1lW0ldLHQ9PT1yLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHI7cmV0dXJuIG51bGx9dmFyIHg9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Omdsb2JhbCxwdD1BPT4hJChBKSYmQSE9PXg7ZnVuY3Rpb24gS0EoKXtsZXR7Y2FzZWxlc3M6QX09cHQodGhpcykmJnRoaXN8fHt9LHQ9e30sZT0oSSxyKT0+e2xldCBvPUEmJnd0KHQscil8fHI7dUEodFtvXSkmJnVBKEkpP3Rbb109S0EodFtvXSxJKTp1QShJKT90W29dPUtBKHt9LEkpOmooSSk/dFtvXT1JLnNsaWNlKCk6dFtvXT1JfTtmb3IobGV0IEk9MCxyPWFyZ3VtZW50cy5sZW5ndGg7STxyO0krKylhcmd1bWVudHNbSV0mJkFBKGFyZ3VtZW50c1tJXSxlKTtyZXR1cm4gdH12YXIgX2U9KEEsdCxlLHthbGxPd25LZXlzOkl9PXt9KT0+KEFBKHQsKHIsbyk9PntlJiZVKHIpP0Fbb109dihyLGUpOkFbb109cn0se2FsbE93bktleXM6SX0pLEEpLHplPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksdmU9KEEsdCxlLEkpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSxJKSxBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse3ZhbHVlOnQucHJvdG90eXBlfSksZSYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSxlKX0sJGU9KEEsdCxlLEkpPT57bGV0IHIsbyxnLEM9e307aWYodD10fHx7fSxBPT1udWxsKXJldHVybiB0O2Rve2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLG89ci5sZW5ndGg7by0tID4wOylnPXJbb10sKCFJfHxJKGcsQSx0KSkmJiFDW2ddJiYodFtnXT1BW2ddLENbZ109ITApO0E9ZSE9PSExJiZUQShBKX13aGlsZShBJiYoIWV8fGUoQSx0KSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gdH0sQUk9KEEsdCxlKT0+e0E9U3RyaW5nKEEpLChlPT09dm9pZCAwfHxlPkEubGVuZ3RoKSYmKGU9QS5sZW5ndGgpLGUtPXQubGVuZ3RoO2xldCBJPUEuaW5kZXhPZih0LGUpO3JldHVybiBJIT09LTEmJkk9PT1lfSx0ST1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYoaihBKSlyZXR1cm4gQTtsZXQgdD1BLmxlbmd0aDtpZighbXQodCkpcmV0dXJuIG51bGw7bGV0IGU9bmV3IEFycmF5KHQpO2Zvcig7dC0tID4wOyllW3RdPUFbdF07cmV0dXJuIGV9LGVJPShBPT50PT5BJiZ0IGluc3RhbmNlb2YgQSkodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZUQShVaW50OEFycmF5KSksSUk9KEEsdCk9PntsZXQgST0oQSYmQVtTeW1ib2wuaXRlcmF0b3JdKS5jYWxsKEEpLHI7Zm9yKDsocj1JLm5leHQoKSkmJiFyLmRvbmU7KXtsZXQgbz1yLnZhbHVlO3QuY2FsbChBLG9bMF0sb1sxXSl9fSxyST0oQSx0KT0+e2xldCBlLEk9W107Zm9yKDsoZT1BLmV4ZWModCkpIT09bnVsbDspSS5wdXNoKGUpO3JldHVybiBJfSxvST1HKCJIVE1MRm9ybUVsZW1lbnQiKSxnST1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXFxzXShbYS16XFxkXSkoXFx3KikvZyxmdW5jdGlvbihlLEkscil7cmV0dXJuIEkudG9VcHBlckNhc2UoKStyfSksaHQ9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4odCxlKT0+QS5jYWxsKHQsZSkpKE9iamVjdC5wcm90b3R5cGUpLGlJPUcoIlJlZ0V4cCIpLFN0PShBLHQpPT57bGV0IGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSksST17fTtBQShlLChyLG8pPT57bGV0IGc7KGc9dChyLG8sQSkpIT09ITEmJihJW29dPWd8fHIpfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxJKX0sc0k9QT0+e1N0KEEsKHQsZSk9PntpZihVKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YoZSkhPT0tMSlyZXR1cm4hMTtsZXQgST1BW2VdO2lmKFUoSSkpe2lmKHQuZW51bWVyYWJsZT0hMSwid3JpdGFibGUiaW4gdCl7dC53cml0YWJsZT0hMTtyZXR1cm59dC5zZXR8fCh0LnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCBcJyIrZSsiXCciKX0pfX0pfSxuST0oQSx0KT0+e2xldCBlPXt9LEk9cj0+e3IuZm9yRWFjaChvPT57ZVtvXT0hMH0pfTtyZXR1cm4gaihBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KHQpKSxlfSxDST0oKT0+e30sQkk9KEEsdCk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOnQ7ZnVuY3Rpb24gYUkoQSl7cmV0dXJuISEoQSYmVShBLmFwcGVuZCkmJkFbU3ltYm9sLnRvU3RyaW5nVGFnXT09PSJGb3JtRGF0YSImJkFbU3ltYm9sLml0ZXJhdG9yXSl9dmFyIFFJPUE9PntsZXQgdD1uZXcgQXJyYXkoMTApLGU9KEkscik9PntpZihoQShJKSl7aWYodC5pbmRleE9mKEkpPj0wKXJldHVybjtpZighKCJ0b0pTT04iaW4gSSkpe3Rbcl09STtsZXQgbz1qKEkpP1tdOnt9O3JldHVybiBBQShJLChnLEMpPT57bGV0IEU9ZShnLHIrMSk7ISQoRSkmJihvW0NdPUUpfSksdFtyXT12b2lkIDAsb319cmV0dXJuIEl9O3JldHVybiBlKEEsMCl9LEVJPUcoIkFzeW5jRnVuY3Rpb24iKSxjST1BPT5BJiYoaEEoQSl8fFUoQSkpJiZVKEEudGhlbikmJlUoQS5jYXRjaCksRnQ9KChBLHQpPT5BP3NldEltbWVkaWF0ZTp0PygoZSxJKT0+KHguYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6cixkYXRhOm99KT0+e3I9PT14JiZvPT09ZSYmSS5sZW5ndGgmJkkuc2hpZnQoKSgpfSwhMSkscj0+e0kucHVzaChyKSx4LnBvc3RNZXNzYWdlKGUsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOmU9PnNldFRpbWVvdXQoZSkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsVSh4LnBvc3RNZXNzYWdlKSksZkk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKHgpOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8RnQsaT17aXNBcnJheTpqLGlzQXJyYXlCdWZmZXI6eXQsaXNCdWZmZXI6YmUsaXNGb3JtRGF0YTp4ZSxpc0FycmF5QnVmZmVyVmlldzpKZSxpc1N0cmluZzpIZSxpc051bWJlcjptdCxpc0Jvb2xlYW46WWUsaXNPYmplY3Q6aEEsaXNQbGFpbk9iamVjdDp1QSxpc1JlYWRhYmxlU3RyZWFtOldlLGlzUmVxdWVzdDpqZSxpc1Jlc3BvbnNlOlplLGlzSGVhZGVyczpWZSxpc1VuZGVmaW5lZDokLGlzRGF0ZTpxZSxpc0ZpbGU6TWUsaXNCbG9iOktlLGlzUmVnRXhwOmlJLGlzRnVuY3Rpb246VSxpc1N0cmVhbTpPZSxpc1VSTFNlYXJjaFBhcmFtczpQZSxpc1R5cGVkQXJyYXk6ZUksaXNGaWxlTGlzdDpUZSxmb3JFYWNoOkFBLG1lcmdlOktBLGV4dGVuZDpfZSx0cmltOlhlLHN0cmlwQk9NOnplLGluaGVyaXRzOnZlLHRvRmxhdE9iamVjdDokZSxraW5kT2Y6REEsa2luZE9mVGVzdDpHLGVuZHNXaXRoOkFJLHRvQXJyYXk6dEksZm9yRWFjaEVudHJ5OklJLG1hdGNoQWxsOnJJLGlzSFRNTEZvcm06b0ksaGFzT3duUHJvcGVydHk6aHQsaGFzT3duUHJvcDpodCxyZWR1Y2VEZXNjcmlwdG9yczpTdCxmcmVlemVNZXRob2RzOnNJLHRvT2JqZWN0U2V0Om5JLHRvQ2FtZWxDYXNlOmdJLG5vb3A6Q0ksdG9GaW5pdGVOdW1iZXI6QkksZmluZEtleTp3dCxnbG9iYWw6eCxpc0NvbnRleHREZWZpbmVkOnB0LGlzU3BlY0NvbXBsaWFudEZvcm06YUksdG9KU09OT2JqZWN0OlFJLGlzQXN5bmNGbjpFSSxpc1RoZW5hYmxlOmNJLHNldEltbWVkaWF0ZTpGdCxhc2FwOmZJfTtmdW5jdGlvbiBaKEEsdCxlLEkscil7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2ssdGhpcy5tZXNzYWdlPUEsdGhpcy5uYW1lPSJBeGlvc0Vycm9yIix0JiYodGhpcy5jb2RlPXQpLGUmJih0aGlzLmNvbmZpZz1lKSxJJiYodGhpcy5yZXF1ZXN0PUkpLHImJih0aGlzLnJlc3BvbnNlPXIsdGhpcy5zdGF0dXM9ci5zdGF0dXM/ci5zdGF0dXM6bnVsbCl9aS5pbmhlcml0cyhaLEVycm9yLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6aS50b0pTT05PYmplY3QodGhpcy5jb25maWcpLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnN0YXR1c319fSk7dmFyIFJ0PVoucHJvdG90eXBlLE50PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e050W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFosTnQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShSdCwiaXNBeGlvc0Vycm9yIix7dmFsdWU6ITB9KTtaLmZyb209KEEsdCxlLEkscixvKT0+e2xldCBnPU9iamVjdC5jcmVhdGUoUnQpO3JldHVybiBpLnRvRmxhdE9iamVjdChBLGcsZnVuY3Rpb24oRSl7cmV0dXJuIEUhPT1FcnJvci5wcm90b3R5cGV9LEM9PkMhPT0iaXNBeGlvc0Vycm9yIiksWi5jYWxsKGcsQS5tZXNzYWdlLHQsZSxJLHIpLGcuY2F1c2U9QSxnLm5hbWU9QS5uYW1lLG8mJk9iamVjdC5hc3NpZ24oZyxvKSxnfTt2YXIgdT1aO3ZhciB5QT1udWxsO2Z1bmN0aW9uIE9BKEEpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQSl8fGkuaXNBcnJheShBKX1mdW5jdGlvbiBHdChBKXtyZXR1cm4gaS5lbmRzV2l0aChBLCJbXSIpP0Euc2xpY2UoMCwtMik6QX1mdW5jdGlvbiBVdChBLHQsZSl7cmV0dXJuIEE/QS5jb25jYXQodCkubWFwKGZ1bmN0aW9uKHIsbyl7cmV0dXJuIHI9R3QociksIWUmJm8/IlsiK3IrIl0iOnJ9KS5qb2luKGU/Ii4iOiIiKTp0fWZ1bmN0aW9uIGxJKEEpe3JldHVybiBpLmlzQXJyYXkoQSkmJiFBLnNvbWUoT0EpfXZhciB1ST1pLnRvRmxhdE9iamVjdChpLHt9LG51bGwsZnVuY3Rpb24odCl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KHQpfSk7ZnVuY3Rpb24gREkoQSx0LGUpe2lmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdCIpO3Q9dHx8bmV3KHlBfHxGb3JtRGF0YSksZT1pLnRvRmxhdE9iamVjdChlLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsZnVuY3Rpb24obCxjKXtyZXR1cm4haS5pc1VuZGVmaW5lZChjW2xdKX0pO2xldCBJPWUubWV0YVRva2VucyxyPWUudmlzaXRvcnx8cyxvPWUuZG90cyxnPWUuaW5kZXhlcyxFPShlLkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYikmJmkuaXNTcGVjQ29tcGxpYW50Rm9ybSh0KTtpZighaS5pc0Z1bmN0aW9uKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gYShRKXtpZihRPT09bnVsbClyZXR1cm4iIjtpZihpLmlzRGF0ZShRKSlyZXR1cm4gUS50b0lTT1N0cmluZygpO2lmKCFFJiZpLmlzQmxvYihRKSl0aHJvdyBuZXcgdSgiQmxvYiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYSBCdWZmZXIgaW5zdGVhZC4iKTtyZXR1cm4gaS5pc0FycmF5QnVmZmVyKFEpfHxpLmlzVHlwZWRBcnJheShRKT9FJiZ0eXBlb2YgQmxvYj09ImZ1bmN0aW9uIj9uZXcgQmxvYihbUV0pOkJ1ZmZlci5mcm9tKFEpOlF9ZnVuY3Rpb24gcyhRLGwsYyl7bGV0IGQ9UTtpZihRJiYhYyYmdHlwZW9mIFE9PSJvYmplY3QiKXtpZihpLmVuZHNXaXRoKGwsInt9IikpbD1JP2w6bC5zbGljZSgwLC0yKSxRPUpTT04uc3RyaW5naWZ5KFEpO2Vsc2UgaWYoaS5pc0FycmF5KFEpJiZsSShRKXx8KGkuaXNGaWxlTGlzdChRKXx8aS5lbmRzV2l0aChsLCJbXSIpKSYmKGQ9aS50b0FycmF5KFEpKSlyZXR1cm4gbD1HdChsKSxkLmZvckVhY2goZnVuY3Rpb24obSxIKXshKGkuaXNVbmRlZmluZWQobSl8fG09PT1udWxsKSYmdC5hcHBlbmQoZz09PSEwP1V0KFtsXSxILG8pOmc9PT1udWxsP2w6bCsiW10iLGEobSkpfSksITF9cmV0dXJuIE9BKFEpPyEwOih0LmFwcGVuZChVdChjLGwsbyksYShRKSksITEpfWxldCBuPVtdLGY9T2JqZWN0LmFzc2lnbih1SSx7ZGVmYXVsdFZpc2l0b3I6cyxjb252ZXJ0VmFsdWU6YSxpc1Zpc2l0YWJsZTpPQX0pO2Z1bmN0aW9uIEIoUSxsKXtpZighaS5pc1VuZGVmaW5lZChRKSl7aWYobi5pbmRleE9mKFEpIT09LTEpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAiK2wuam9pbigiLiIpKTtuLnB1c2goUSksaS5mb3JFYWNoKFEsZnVuY3Rpb24oZCx5KXsoIShpLmlzVW5kZWZpbmVkKGQpfHxkPT09bnVsbCkmJnIuY2FsbCh0LGQsaS5pc1N0cmluZyh5KT95LnRyaW0oKTp5LGwsZikpPT09ITAmJkIoZCxsP2wuY29uY2F0KHkpOlt5XSl9KSxuLnBvcCgpfX1pZighaS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJkYXRhIG11c3QgYmUgYW4gb2JqZWN0Iik7cmV0dXJuIEIoQSksdH12YXIgTT1ESTtmdW5jdGlvbiBrdChBKXtsZXQgdD17IiEiOiIlMjUyMSIsIlwnIjoiJTI1MjciLCIoIjoiJTI1MjgiLCIpIjoiJTI1MjkiLCJ+IjoiJTI1N0UiLCIlMjUyMCI6IisiLCIlMjUwMCI6IlxcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyFcJygpfl18JTI1MjB8JTI1MDAvZyxmdW5jdGlvbihJKXtyZXR1cm4gdFtJXX0pfWZ1bmN0aW9uIEx0KEEsdCl7dGhpcy5fcGFpcnM9W10sQSYmTShBLHRoaXMsdCl9dmFyIGJ0PUx0LnByb3RvdHlwZTtidC5hcHBlbmQ9ZnVuY3Rpb24odCxlKXt0aGlzLl9wYWlycy5wdXNoKFt0LGVdKX07YnQudG9TdHJpbmc9ZnVuY3Rpb24odCl7bGV0IGU9dD9mdW5jdGlvbihJKXtyZXR1cm4gdC5jYWxsKHRoaXMsSSxrdCl9Omt0O3JldHVybiB0aGlzLl9wYWlycy5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIGUoclswXSkrIj0iK2UoclsxXSl9LCIiKS5qb2luKCImIil9O3ZhciBtQT1MdDtmdW5jdGlvbiBkSShBKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoLyUyNTNBL2dpLCI6IikucmVwbGFjZSgvJTI1MjQvZywiJCIpLnJlcGxhY2UoLyUyNTJDL2dpLCIsIikucmVwbGFjZSgvJTI1MjAvZywiKyIpLnJlcGxhY2UoLyUyNTVCL2dpLCJbIikucmVwbGFjZSgvJTI1NUQvZ2ksIl0iKX1mdW5jdGlvbiB0QShBLHQsZSl7aWYoIXQpcmV0dXJuIEE7bGV0IEk9ZSYmZS5lbmNvZGV8fGRJO2kuaXNGdW5jdGlvbihlKSYmKGU9e3NlcmlhbGl6ZTplfSk7bGV0IHI9ZSYmZS5zZXJpYWxpemUsbztpZihyP289cih0LGUpOm89aS5pc1VSTFNlYXJjaFBhcmFtcyh0KT90LnRvU3RyaW5nKCk6bmV3IG1BKHQsZSkudG9TdHJpbmcoSSksbyl7bGV0IGc9QS5pbmRleE9mKCIlMjMiKTtnIT09LTEmJihBPUEuc2xpY2UoMCxnKSksQSs9KEEuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikrb31yZXR1cm4gQX12YXIgeEE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmhhbmRsZXJzPVtdfXVzZSh0LGUsSSl7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOnQscmVqZWN0ZWQ6ZSxzeW5jaHJvbm91czpJP0kuc3luY2hyb25vdXM6ITEscnVuV2hlbjpJP0kucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX1lamVjdCh0KXt0aGlzLmhhbmRsZXJzW3RdJiYodGhpcy5oYW5kbGVyc1t0XT1udWxsKX1jbGVhcigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX1mb3JFYWNoKHQpe2kuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKEkpe0khPT1udWxsJiZ0KEkpfSl9fSxQQT14QTt2YXIgd0E9e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9O3ZhciBKdD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6bUE7dmFyIEh0PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgWXQ9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgcXQ9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6SnQsRm9ybURhdGE6SHQsQmxvYjpZdH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBaQT17fTtkZShaQSx7aGFzQnJvd3NlckVudjooKT0+akEsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5oSSxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9PnlJLG5hdmlnYXRvcjooKT0+V0Esb3JpZ2luOigpPT5tSX0pO3ZhciBqQT10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1IixXQT10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsaEk9akEmJighV0F8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2YoV0EucHJvZHVjdCk8MCkseUk9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLG1JPWpBJiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBoPXsuLi5aQSwuLi5xdH07ZnVuY3Rpb24gVkEoQSx0KXtyZXR1cm4gTShBLG5ldyBoLmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLE9iamVjdC5hc3NpZ24oe3Zpc2l0b3I6ZnVuY3Rpb24oZSxJLHIsbyl7cmV0dXJuIGguaXNOb2RlJiZpLmlzQnVmZmVyKGUpPyh0aGlzLmFwcGVuZChJLGUudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6by5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSx0KSl9ZnVuY3Rpb24gd0koQSl7cmV0dXJuIGkubWF0Y2hBbGwoL1xcdyt8XFxbKFxcdyopXS9nLEEpLm1hcCh0PT50WzBdPT09IltdIj8iIjp0WzFdfHx0WzBdKX1mdW5jdGlvbiBwSShBKXtsZXQgdD17fSxlPU9iamVjdC5rZXlzKEEpLEkscj1lLmxlbmd0aCxvO2ZvcihJPTA7STxyO0krKylvPWVbSV0sdFtvXT1BW29dO3JldHVybiB0fWZ1bmN0aW9uIFNJKEEpe2Z1bmN0aW9uIHQoZSxJLHIsbyl7bGV0IGc9ZVtvKytdO2lmKGc9PT0iX19wcm90b19fIilyZXR1cm4hMDtsZXQgQz1OdW1iZXIuaXNGaW5pdGUoK2cpLEU9bz49ZS5sZW5ndGg7cmV0dXJuIGc9IWcmJmkuaXNBcnJheShyKT9yLmxlbmd0aDpnLEU/KGkuaGFzT3duUHJvcChyLGcpP3JbZ109W3JbZ10sSV06cltnXT1JLCFDKTooKCFyW2ddfHwhaS5pc09iamVjdChyW2ddKSkmJihyW2ddPVtdKSx0KGUsSSxyW2ddLG8pJiZpLmlzQXJyYXkocltnXSkmJihyW2ddPXBJKHJbZ10pKSwhQyl9aWYoaS5pc0Zvcm1EYXRhKEEpJiZpLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IGU9e307cmV0dXJuIGkuZm9yRWFjaEVudHJ5KEEsKEkscik9Pnt0KHdJKEkpLHIsZSwwKX0pLGV9cmV0dXJuIG51bGx9dmFyIHBBPVNJO2Z1bmN0aW9uIEZJKEEsdCxlKXtpZihpLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4odHx8SlNPTi5wYXJzZSkoQSksaS50cmltKEEpfWNhdGNoKEkpe2lmKEkubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgSX1yZXR1cm4oZXx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBYQT17dHJhbnNpdGlvbmFsOndBLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbih0LGUpe2xldCBJPWUuZ2V0Q29udGVudFR5cGUoKXx8IiIscj1JLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxvPWkuaXNPYmplY3QodCk7aWYobyYmaS5pc0hUTUxGb3JtKHQpJiYodD1uZXcgRm9ybURhdGEodCkpLGkuaXNGb3JtRGF0YSh0KSlyZXR1cm4gcj9KU09OLnN0cmluZ2lmeShwQSh0KSk6dDtpZihpLmlzQXJyYXlCdWZmZXIodCl8fGkuaXNCdWZmZXIodCl8fGkuaXNTdHJlYW0odCl8fGkuaXNGaWxlKHQpfHxpLmlzQmxvYih0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcodCkpcmV0dXJuIHQuYnVmZmVyO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXModCkpcmV0dXJuIGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksdC50b1N0cmluZygpO2xldCBDO2lmKG8pe2lmKEkuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik+LTEpcmV0dXJuIFZBKHQsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigoQz1pLmlzRmlsZUxpc3QodCkpfHxJLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7bGV0IEU9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBNKEM/eyJmaWxlc1tdIjp0fTp0LEUmJm5ldyBFLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gb3x8cj8oZS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLEZJKHQpKTp0fV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKHQpe2xldCBlPXRoaXMudHJhbnNpdGlvbmFsfHxYQS50cmFuc2l0aW9uYWwsST1lJiZlLmZvcmNlZEpTT05QYXJzaW5nLHI9dGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYoaS5pc1Jlc3BvbnNlKHQpfHxpLmlzUmVhZGFibGVTdHJlYW0odCkpcmV0dXJuIHQ7aWYodCYmaS5pc1N0cmluZyh0KSYmKEkmJiF0aGlzLnJlc3BvbnNlVHlwZXx8cikpe2xldCBnPSEoZSYmZS5zaWxlbnRKU09OUGFyc2luZykmJnI7dHJ5e3JldHVybiBKU09OLnBhcnNlKHQpfWNhdGNoKEMpe2lmKGcpdGhyb3cgQy5uYW1lPT09IlN5bnRheEVycm9yIj91LmZyb20oQyx1LkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpOkN9fXJldHVybiB0fV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpoLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpoLmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTIwMCYmdDwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIl0sQT0+e1hBLmhlYWRlcnNbQV09e319KTt2YXIgVj1YQTt2YXIgUkk9aS50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSxNdD1BPT57bGV0IHQ9e30sZSxJLHI7cmV0dXJuIEEmJkEuc3BsaXQoYCUwQWApLmZvckVhY2goZnVuY3Rpb24oZyl7cj1nLmluZGV4T2YoIjoiKSxlPWcuc3Vic3RyaW5nKDAscikudHJpbSgpLnRvTG93ZXJDYXNlKCksST1nLnN1YnN0cmluZyhyKzEpLnRyaW0oKSwhKCFlfHx0W2VdJiZSSVtlXSkmJihlPT09InNldC1jb29raWUiP3RbZV0/dFtlXS5wdXNoKEkpOnRbZV09W0ldOnRbZV09dFtlXT90W2VdKyIsICIrSTpJKX0pLHR9O3ZhciBLdD1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIGVBKEEpe3JldHVybiBBJiZTdHJpbmcoQSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gU0EoQSl7cmV0dXJuIEE9PT0hMXx8QT09bnVsbD9BOmkuaXNBcnJheShBKT9BLm1hcChTQSk6U3RyaW5nKEEpfWZ1bmN0aW9uIE5JKEEpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCksZT0vKFteXFxzLDs9XSspXFxzKig/Oj1cXHMqKFteLDtdKykpPy9nLEk7Zm9yKDtJPWUuZXhlYyhBKTspdFtJWzFdXT1JWzJdO3JldHVybiB0fXZhciBVST1BPT4vXlstX2EtekEtWjAtOV5gfH4sISUyMyQlJlwnKisuXSskLy50ZXN0KEEudHJpbSgpKTtmdW5jdGlvbiBfQShBLHQsZSxJLHIpe2lmKGkuaXNGdW5jdGlvbihJKSlyZXR1cm4gSS5jYWxsKHRoaXMsdCxlKTtpZihyJiYodD1lKSwhIWkuaXNTdHJpbmcodCkpe2lmKGkuaXNTdHJpbmcoSSkpcmV0dXJuIHQuaW5kZXhPZihJKSE9PS0xO2lmKGkuaXNSZWdFeHAoSSkpcmV0dXJuIEkudGVzdCh0KX19ZnVuY3Rpb24gR0koQSl7cmV0dXJuIEEudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcXGRdKShcXHcqKS9nLCh0LGUsSSk9PmUudG9VcHBlckNhc2UoKStJKX1mdW5jdGlvbiBrSShBLHQpe2xldCBlPWkudG9DYW1lbENhc2UoIiAiK3QpO1siZ2V0Iiwic2V0IiwiaGFzIl0uZm9yRWFjaChJPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsSStlLHt2YWx1ZTpmdW5jdGlvbihyLG8sZyl7cmV0dXJuIHRoaXNbSV0uY2FsbCh0aGlzLHQscixvLGcpfSxjb25maWd1cmFibGU6ITB9KX0pfXZhciBYPWNsYXNze2NvbnN0cnVjdG9yKHQpe3QmJnRoaXMuc2V0KHQpfXNldCh0LGUsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBvKEMsRSxhKXtsZXQgcz1lQShFKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IG49aS5maW5kS2V5KHIscyk7KCFufHxyW25dPT09dm9pZCAwfHxhPT09ITB8fGE9PT12b2lkIDAmJnJbbl0hPT0hMSkmJihyW258fEVdPVNBKEMpKX1sZXQgZz0oQyxFKT0+aS5mb3JFYWNoKEMsKGEscyk9Pm8oYSxzLEUpKTtpZihpLmlzUGxhaW5PYmplY3QodCl8fHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKWcodCxlKTtlbHNlIGlmKGkuaXNTdHJpbmcodCkmJih0PXQudHJpbSgpKSYmIVVJKHQpKWcoTXQodCksZSk7ZWxzZSBpZihpLmlzSGVhZGVycyh0KSlmb3IobGV0W0MsRV1vZiB0LmVudHJpZXMoKSlvKEUsQyxJKTtlbHNlIHQhPW51bGwmJm8oZSx0LEkpO3JldHVybiB0aGlzfWdldCh0LGUpe2lmKHQ9ZUEodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighZSlyZXR1cm4gcjtpZihlPT09ITApcmV0dXJuIE5JKHIpO2lmKGkuaXNGdW5jdGlvbihlKSlyZXR1cm4gZS5jYWxsKHRoaXMscixJKTtpZihpLmlzUmVnRXhwKGUpKXJldHVybiBlLmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyh0LGUpe2lmKHQ9ZUEodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCFlfHxfQSh0aGlzLHRoaXNbSV0sSSxlKSkpfXJldHVybiExfWRlbGV0ZSh0LGUpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBvKGcpe2lmKGc9ZUEoZyksZyl7bGV0IEM9aS5maW5kS2V5KEksZyk7QyYmKCFlfHxfQShJLElbQ10sQyxlKSkmJihkZWxldGUgSVtDXSxyPSEwKX19cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2gobyk6byh0KSxyfWNsZWFyKHQpe2xldCBlPU9iamVjdC5rZXlzKHRoaXMpLEk9ZS5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBvPWVbSV07KCF0fHxfQSh0aGlzLHRoaXNbb10sbyx0LCEwKSkmJihkZWxldGUgdGhpc1tvXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUodCl7bGV0IGU9dGhpcyxJPXt9O3JldHVybiBpLmZvckVhY2godGhpcywocixvKT0+e2xldCBnPWkuZmluZEtleShJLG8pO2lmKGcpe2VbZ109U0EociksZGVsZXRlIGVbb107cmV0dXJufWxldCBDPXQ/R0kobyk6U3RyaW5nKG8pLnRyaW0oKTtDIT09byYmZGVsZXRlIGVbb10sZVtDXT1TQShyKSxJW0NdPSEwfSksdGhpc31jb25jYXQoLi4udCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4udCl9dG9KU09OKHQpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYoZVtyXT10JiZpLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksZX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbdCxlXSk9PnQrIjogIitlKS5qb2luKGAlMEFgKX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJBeGlvc0hlYWRlcnMifXN0YXRpYyBmcm9tKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpcz90Om5ldyB0aGlzKHQpfXN0YXRpYyBjb25jYXQodCwuLi5lKXtsZXQgST1uZXcgdGhpcyh0KTtyZXR1cm4gZS5mb3JFYWNoKHI9Pkkuc2V0KHIpKSxJfXN0YXRpYyBhY2Nlc3Nvcih0KXtsZXQgST0odGhpc1tLdF09dGhpc1tLdF09e2FjY2Vzc29yczp7fX0pLmFjY2Vzc29ycyxyPXRoaXMucHJvdG90eXBlO2Z1bmN0aW9uIG8oZyl7bGV0IEM9ZUEoZyk7SVtDXXx8KGtJKHIsZyksSVtDXT0hMCl9cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2gobyk6byh0KSx0aGlzfX07WC5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7aS5yZWR1Y2VEZXNjcmlwdG9ycyhYLnByb3RvdHlwZSwoe3ZhbHVlOkF9LHQpPT57bGV0IGU9dFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQoSSl7dGhpc1tlXT1JfX19KTtpLmZyZWV6ZU1ldGhvZHMoWCk7dmFyIFM9WDtmdW5jdGlvbiBJQShBLHQpe2xldCBlPXRoaXN8fFYsST10fHxlLHI9Uy5mcm9tKEkuaGVhZGVycyksbz1JLmRhdGE7cmV0dXJuIGkuZm9yRWFjaChBLGZ1bmN0aW9uKEMpe289Qy5jYWxsKGUsbyxyLm5vcm1hbGl6ZSgpLHQ/dC5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksb31mdW5jdGlvbiByQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIFR0KEEsdCxlKXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELHQsZSksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1pLmluaGVyaXRzKFR0LHUse19fQ0FOQ0VMX186ITB9KTt2YXIgTD1UdDtmdW5jdGlvbiBvQShBLHQsZSl7bGV0IEk9ZS5jb25maWcudmFsaWRhdGVTdGF0dXM7IWUuc3RhdHVzfHwhSXx8SShlLnN0YXR1cyk/QShlKTp0KG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZS5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihlLnN0YXR1cy8xMDApLTRdLGUuY29uZmlnLGUucmVxdWVzdCxlKSl9ZnVuY3Rpb24gekEoQSl7bGV0IHQ9L14oWy0rXFx3XXsxLDI1fSkoOj9cXC9cXC98OikvLmV4ZWMoQSk7cmV0dXJuIHQmJnRbMV18fCIifWZ1bmN0aW9uIExJKEEsdCl7QT1BfHwxMDtsZXQgZT1uZXcgQXJyYXkoQSksST1uZXcgQXJyYXkoQSkscj0wLG89MCxnO3JldHVybiB0PXQhPT12b2lkIDA/dDoxZTMsZnVuY3Rpb24oRSl7bGV0IGE9RGF0ZS5ub3coKSxzPUlbb107Z3x8KGc9YSksZVtyXT1FLElbcl09YTtsZXQgbj1vLGY9MDtmb3IoO24hPT1yOylmKz1lW24rK10sbj1uJUE7aWYocj0ocisxKSVBLHI9PT1vJiYobz0obysxKSVBKSxhLWc8dClyZXR1cm47bGV0IEI9cyYmYS1zO3JldHVybiBCP01hdGgucm91bmQoZioxZTMvQik6dm9pZCAwfX12YXIgT3Q9TEk7ZnVuY3Rpb24gYkkoQSx0KXtsZXQgZT0wLEk9MWUzL3QscixvLGc9KGEscz1EYXRlLm5vdygpKT0+e2U9cyxyPW51bGwsbyYmKGNsZWFyVGltZW91dChvKSxvPW51bGwpLEEuYXBwbHkobnVsbCxhKX07cmV0dXJuWyguLi5hKT0+e2xldCBzPURhdGUubm93KCksbj1zLWU7bj49ST9nKGEscyk6KHI9YSxvfHwobz1zZXRUaW1lb3V0KCgpPT57bz1udWxsLGcocil9LEktbikpKX0sKCk9PnImJmcocildfXZhciB4dD1iSTt2YXIgXz0oQSx0LGU9Myk9PntsZXQgST0wLHI9T3QoNTAsMjUwKTtyZXR1cm4geHQobz0+e2xldCBnPW8ubG9hZGVkLEM9by5sZW5ndGhDb21wdXRhYmxlP28udG90YWw6dm9pZCAwLEU9Zy1JLGE9cihFKSxzPWc8PUM7ST1nO2xldCBuPXtsb2FkZWQ6Zyx0b3RhbDpDLHByb2dyZXNzOkM/Zy9DOnZvaWQgMCxieXRlczpFLHJhdGU6YXx8dm9pZCAwLGVzdGltYXRlZDphJiZDJiZzPyhDLWcpL2E6dm9pZCAwLGV2ZW50Om8sbGVuZ3RoQ29tcHV0YWJsZTpDIT1udWxsLFt0PyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKG4pfSxlKX0sdkE9KEEsdCk9PntsZXQgZT1BIT1udWxsO3JldHVybltJPT50WzBdKHtsZW5ndGhDb21wdXRhYmxlOmUsdG90YWw6QSxsb2FkZWQ6SX0pLHRbMV1dfSwkQT1BPT4oLi4udCk9PmkuYXNhcCgoKT0+QSguLi50KSk7dmFyIFB0PWguaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSx0KT0+ZT0+KGU9bmV3IFVSTChlLGgub3JpZ2luKSxBLnByb3RvY29sPT09ZS5wcm90b2NvbCYmQS5ob3N0PT09ZS5ob3N0JiYodHx8QS5wb3J0PT09ZS5wb3J0KSkpKG5ldyBVUkwoaC5vcmlnaW4pLGgubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KGgubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgV3Q9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsdCxlLEkscixvKXtsZXQgZz1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpXTtpLmlzTnVtYmVyKGUpJiZnLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZShlKS50b0dNVFN0cmluZygpKSxpLmlzU3RyaW5nKEkpJiZnLnB1c2goInBhdGg9IitJKSxpLmlzU3RyaW5nKHIpJiZnLnB1c2goImRvbWFpbj0iK3IpLG89PT0hMCYmZy5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9Zy5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCB0PWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxcXHMqKSgiK0ErIik9KFteO10qKSIpKTtyZXR1cm4gdD9kZWNvZGVVUklDb21wb25lbnQodFszXSk6bnVsbH0scmVtb3ZlKEEpe3RoaXMud3JpdGUoQSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiBBdChBKXtyZXR1cm4vXihbYS16XVthLXpcXGQrXFwtLl0qOik/XFwvXFwvL2kudGVzdChBKX1mdW5jdGlvbiB0dChBLHQpe3JldHVybiB0P0EucmVwbGFjZSgvXFwvP1xcLyQvLCIiKSsiLyIrdC5yZXBsYWNlKC9eXFwvKy8sIiIpOkF9ZnVuY3Rpb24gZ0EoQSx0LGUpe2xldCBJPSFBdCh0KTtyZXR1cm4gQSYmKEl8fGU9PSExKT90dChBLHQpOnR9dmFyIGp0PUE9PkEgaW5zdGFuY2VvZiBTP3suLi5BfTpBO2Z1bmN0aW9uIGsoQSx0KXt0PXR8fHt9O2xldCBlPXt9O2Z1bmN0aW9uIEkoYSxzLG4sZil7cmV0dXJuIGkuaXNQbGFpbk9iamVjdChhKSYmaS5pc1BsYWluT2JqZWN0KHMpP2kubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6Zn0sYSxzKTppLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZSh7fSxzKTppLmlzQXJyYXkocyk/cy5zbGljZSgpOnN9ZnVuY3Rpb24gcihhLHMsbixmKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChhKSlyZXR1cm4gSSh2b2lkIDAsYSxuLGYpfWVsc2UgcmV0dXJuIEkoYSxzLG4sZil9ZnVuY3Rpb24gbyhhLHMpe2lmKCFpLmlzVW5kZWZpbmVkKHMpKXJldHVybiBJKHZvaWQgMCxzKX1mdW5jdGlvbiBnKGEscyl7aWYoaS5pc1VuZGVmaW5lZChzKSl7aWYoIWkuaXNVbmRlZmluZWQoYSkpcmV0dXJuIEkodm9pZCAwLGEpfWVsc2UgcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIEMoYSxzLG4pe2lmKG4gaW4gdClyZXR1cm4gSShhLHMpO2lmKG4gaW4gQSlyZXR1cm4gSSh2b2lkIDAsYSl9bGV0IEU9e3VybDpvLG1ldGhvZDpvLGRhdGE6byxiYXNlVVJMOmcsdHJhbnNmb3JtUmVxdWVzdDpnLHRyYW5zZm9ybVJlc3BvbnNlOmcscGFyYW1zU2VyaWFsaXplcjpnLHRpbWVvdXQ6Zyx0aW1lb3V0TWVzc2FnZTpnLHdpdGhDcmVkZW50aWFsczpnLHdpdGhYU1JGVG9rZW46ZyxhZGFwdGVyOmcscmVzcG9uc2VUeXBlOmcseHNyZkNvb2tpZU5hbWU6Zyx4c3JmSGVhZGVyTmFtZTpnLG9uVXBsb2FkUHJvZ3Jlc3M6ZyxvbkRvd25sb2FkUHJvZ3Jlc3M6ZyxkZWNvbXByZXNzOmcsbWF4Q29udGVudExlbmd0aDpnLG1heEJvZHlMZW5ndGg6ZyxiZWZvcmVSZWRpcmVjdDpnLHRyYW5zcG9ydDpnLGh0dHBBZ2VudDpnLGh0dHBzQWdlbnQ6ZyxjYW5jZWxUb2tlbjpnLHNvY2tldFBhdGg6ZyxyZXNwb25zZUVuY29kaW5nOmcsdmFsaWRhdGVTdGF0dXM6QyxoZWFkZXJzOihhLHMsbik9PnIoanQoYSksanQocyksbiwhMCl9O3JldHVybiBpLmZvckVhY2goT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSxBLHQpKSxmdW5jdGlvbihzKXtsZXQgbj1FW3NdfHxyLGY9bihBW3NdLHRbc10scyk7aS5pc1VuZGVmaW5lZChmKSYmbiE9PUN8fChlW3NdPWYpfSksZX12YXIgRkE9QT0+e2xldCB0PWsoe30sQSkse2RhdGE6ZSx3aXRoWFNSRlRva2VuOkkseHNyZkhlYWRlck5hbWU6cix4c3JmQ29va2llTmFtZTpvLGhlYWRlcnM6ZyxhdXRoOkN9PXQ7dC5oZWFkZXJzPWc9Uy5mcm9tKGcpLHQudXJsPXRBKGdBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKSxBLnBhcmFtcyxBLnBhcmFtc1NlcmlhbGl6ZXIpLEMmJmcuc2V0KCJBdXRob3JpemF0aW9uIiwiQmFzaWMgIitidG9hKChDLnVzZXJuYW1lfHwiIikrIjoiKyhDLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChDLnBhc3N3b3JkKSk6IiIpKSk7bGV0IEU7aWYoaS5pc0Zvcm1EYXRhKGUpKXtpZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudnx8aC5oYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYpZy5zZXRDb250ZW50VHlwZSh2b2lkIDApO2Vsc2UgaWYoKEU9Zy5nZXRDb250ZW50VHlwZSgpKSE9PSExKXtsZXRbYSwuLi5zXT1FP0Uuc3BsaXQoIjsiKS5tYXAobj0+bi50cmltKCkpLmZpbHRlcihCb29sZWFuKTpbXTtnLnNldENvbnRlbnRUeXBlKFthfHwibXVsdGlwYXJ0L2Zvcm0tZGF0YSIsLi4uc10uam9pbigiOyAiKSl9fWlmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52JiYoSSYmaS5pc0Z1bmN0aW9uKEkpJiYoST1JKHQpKSxJfHxJIT09ITEmJlB0KHQudXJsKSkpe2xldCBhPXImJm8mJld0LnJlYWQobyk7YSYmZy5zZXQocixhKX1yZXR1cm4gdH07dmFyIEpJPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsWnQ9SkkmJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLEkpe2xldCByPUZBKEEpLG89ci5kYXRhLGc9Uy5mcm9tKHIuaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpDLG9uVXBsb2FkUHJvZ3Jlc3M6RSxvbkRvd25sb2FkUHJvZ3Jlc3M6YX09cixzLG4sZixCLFE7ZnVuY3Rpb24gbCgpe0ImJkIoKSxRJiZRKCksci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShzKSxyLnNpZ25hbCYmci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpfWxldCBjPW5ldyBYTUxIdHRwUmVxdWVzdDtjLm9wZW4oci5tZXRob2QudG9VcHBlckNhc2UoKSxyLnVybCwhMCksYy50aW1lb3V0PXIudGltZW91dDtmdW5jdGlvbiBkKCl7aWYoIWMpcmV0dXJuO2xldCBtPVMuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGMmJmMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLFI9e2RhdGE6IUN8fEM9PT0idGV4dCJ8fEM9PT0ianNvbiI/Yy5yZXNwb25zZVRleHQ6Yy5yZXNwb25zZSxzdGF0dXM6Yy5zdGF0dXMsc3RhdHVzVGV4dDpjLnN0YXR1c1RleHQsaGVhZGVyczptLGNvbmZpZzpBLHJlcXVlc3Q6Y307b0EoZnVuY3Rpb24oVCl7ZShUKSxsKCl9LGZ1bmN0aW9uKFQpe0koVCksbCgpfSxSKSxjPW51bGx9Im9ubG9hZGVuZCJpbiBjP2Mub25sb2FkZW5kPWQ6Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshY3x8Yy5yZWFkeVN0YXRlIT09NHx8Yy5zdGF0dXM9PT0wJiYhKGMucmVzcG9uc2VVUkwmJmMucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KGQpfSxjLm9uYWJvcnQ9ZnVuY3Rpb24oKXtjJiYoSShuZXcgdSgiUmVxdWVzdCBhYm9ydGVkIix1LkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGwpfSxjLm9uZXJyb3I9ZnVuY3Rpb24oKXtJKG5ldyB1KCJOZXR3b3JrIEVycm9yIix1LkVSUl9ORVRXT1JLLEEsYykpLGM9bnVsbH0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgSD1yLnRpbWVvdXQ/InRpbWVvdXQgb2YgIityLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsUj1yLnRyYW5zaXRpb25hbHx8d0E7ci50aW1lb3V0RXJyb3JNZXNzYWdlJiYoSD1yLnRpbWVvdXRFcnJvck1lc3NhZ2UpLEkobmV3IHUoSCxSLmNsYXJpZnlUaW1lb3V0RXJyb3I/dS5FVElNRURPVVQ6dS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsfSxvPT09dm9pZCAwJiZnLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGMmJmkuZm9yRWFjaChnLnRvSlNPTigpLGZ1bmN0aW9uKEgsUil7Yy5zZXRSZXF1ZXN0SGVhZGVyKFIsSCl9KSxpLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGMud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLEMmJkMhPT0ianNvbiImJihjLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksYSYmKFtmLFFdPV8oYSwhMCksYy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZikpLEUmJmMudXBsb2FkJiYoW24sQl09XyhFKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsbiksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsQikpLChyLmNhbmNlbFRva2VufHxyLnNpZ25hbCkmJihzPW09PntjJiYoSSghbXx8bS50eXBlP25ldyBMKG51bGwsQSxjKTptKSxjLmFib3J0KCksYz1udWxsKX0sci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi5zdWJzY3JpYmUocyksci5zaWduYWwmJihyLnNpZ25hbC5hYm9ydGVkP3MoKTpyLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIscykpKTtsZXQgeT16QShyLnVybCk7aWYoeSYmaC5wcm90b2NvbHMuaW5kZXhPZih5KT09PS0xKXtJKG5ldyB1KCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK3krIjoiLHUuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59Yy5zZW5kKG98fG51bGwpfSl9O3ZhciBIST0oQSx0KT0+e2xldHtsZW5ndGg6ZX09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKHR8fGUpe2xldCBJPW5ldyBBYm9ydENvbnRyb2xsZXIscixvPWZ1bmN0aW9uKGEpe2lmKCFyKXtyPSEwLEMoKTtsZXQgcz1hIGluc3RhbmNlb2YgRXJyb3I/YTp0aGlzLnJlYXNvbjtJLmFib3J0KHMgaW5zdGFuY2VvZiB1P3M6bmV3IEwocyBpbnN0YW5jZW9mIEVycm9yP3MubWVzc2FnZTpzKSl9fSxnPXQmJnNldFRpbWVvdXQoKCk9PntnPW51bGwsbyhuZXcgdShgdGltZW91dCAke3R9IG9mIG1zIGV4Y2VlZGVkYCx1LkVUSU1FRE9VVCkpfSx0KSxDPSgpPT57QSYmKGcmJmNsZWFyVGltZW91dChnKSxnPW51bGwsQS5mb3JFYWNoKGE9PnthLnVuc3Vic2NyaWJlP2EudW5zdWJzY3JpYmUobyk6YS5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsbyl9KSxBPW51bGwpfTtBLmZvckVhY2goYT0+YS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbykpO2xldHtzaWduYWw6RX09STtyZXR1cm4gRS51bnN1YnNjcmliZT0oKT0+aS5hc2FwKEMpLEV9fSxWdD1ISTt2YXIgWUk9ZnVuY3Rpb24qKEEsdCl7bGV0IGU9QS5ieXRlTGVuZ3RoO2lmKCF0fHxlPHQpe3lpZWxkIEE7cmV0dXJufWxldCBJPTAscjtmb3IoO0k8ZTspcj1JK3QseWllbGQgQS5zbGljZShJLHIpLEk9cn0scUk9YXN5bmMgZnVuY3Rpb24qKEEsdCl7Zm9yIGF3YWl0KGxldCBlIG9mIE1JKEEpKXlpZWxkKllJKGUsdCl9LE1JPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IHQ9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTplLHZhbHVlOkl9PWF3YWl0IHQucmVhZCgpO2lmKGUpYnJlYWs7eWllbGQgSX19ZmluYWxseXthd2FpdCB0LmNhbmNlbCgpfX0sZXQ9KEEsdCxlLEkpPT57bGV0IHI9cUkoQSx0KSxvPTAsZyxDPUU9PntnfHwoZz0hMCxJJiZJKEUpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChFKXt0cnl7bGV0e2RvbmU6YSx2YWx1ZTpzfT1hd2FpdCByLm5leHQoKTtpZihhKXtDKCksRS5jbG9zZSgpO3JldHVybn1sZXQgbj1zLmJ5dGVMZW5ndGg7aWYoZSl7bGV0IGY9bys9bjtlKGYpfUUuZW5xdWV1ZShuZXcgVWludDhBcnJheShzKSl9Y2F0Y2goYSl7dGhyb3cgQyhhKSxhfX0sY2FuY2VsKEUpe3JldHVybiBDKEUpLHIucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBOQT10eXBlb2YgZmV0Y2g9PSJmdW5jdGlvbiImJnR5cGVvZiBSZXF1ZXN0PT0iZnVuY3Rpb24iJiZ0eXBlb2YgUmVzcG9uc2U9PSJmdW5jdGlvbiIsX3Q9TkEmJnR5cGVvZiBSZWFkYWJsZVN0cmVhbT09ImZ1bmN0aW9uIixLST1OQSYmKHR5cGVvZiBUZXh0RW5jb2Rlcj09ImZ1bmN0aW9uIj8oQT0+dD0+QS5lbmNvZGUodCkpKG5ldyBUZXh0RW5jb2Rlcik6YXN5bmMgQT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IFJlc3BvbnNlKEEpLmFycmF5QnVmZmVyKCkpKSx6dD0oQSwuLi50KT0+e3RyeXtyZXR1cm4hIUEoLi4udCl9Y2F0Y2h7cmV0dXJuITF9fSxUST1fdCYmenQoKCk9PntsZXQgQT0hMSx0PW5ldyBSZXF1ZXN0KGgub3JpZ2luLHtib2R5Om5ldyBSZWFkYWJsZVN0cmVhbSxtZXRob2Q6IlBPU1QiLGdldCBkdXBsZXgoKXtyZXR1cm4gQT0hMCwiaGFsZiJ9fSkuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpO3JldHVybiBBJiYhdH0pLFh0PTY0KjEwMjQsSXQ9X3QmJnp0KCgpPT5pLmlzUmVhZGFibGVTdHJlYW0obmV3IFJlc3BvbnNlKCIiKS5ib2R5KSksUkE9e3N0cmVhbTpJdCYmKEE9PkEuYm9keSl9O05BJiYoQT0+e1sidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaCh0PT57IVJBW3RdJiYoUkFbdF09aS5pc0Z1bmN0aW9uKEFbdF0pP2U9PmVbdF0oKTooZSxJKT0+e3Rocm93IG5ldyB1KGBSZXNwb25zZSB0eXBlIFwnJHt0fVwnIGlzIG5vdCBzdXBwb3J0ZWRgLHUuRVJSX05PVF9TVVBQT1JULEkpfSl9KX0pKG5ldyBSZXNwb25zZSk7dmFyIE9JPWFzeW5jIEE9PntpZihBPT1udWxsKXJldHVybiAwO2lmKGkuaXNCbG9iKEEpKXJldHVybiBBLnNpemU7aWYoaS5pc1NwZWNDb21wbGlhbnRGb3JtKEEpKXJldHVybihhd2FpdCBuZXcgUmVxdWVzdChoLm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OkF9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcoQSl8fGkuaXNBcnJheUJ1ZmZlcihBKSlyZXR1cm4gQS5ieXRlTGVuZ3RoO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXMoQSkmJihBPUErIiIpLGkuaXNTdHJpbmcoQSkpcmV0dXJuKGF3YWl0IEtJKEEpKS5ieXRlTGVuZ3RofSx4ST1hc3luYyhBLHQpPT57bGV0IGU9aS50b0Zpbml0ZU51bWJlcihBLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGU/P09JKHQpfSx2dD1OQSYmKGFzeW5jIEE9PntsZXR7dXJsOnQsbWV0aG9kOmUsZGF0YTpJLHNpZ25hbDpyLGNhbmNlbFRva2VuOm8sdGltZW91dDpnLG9uRG93bmxvYWRQcm9ncmVzczpDLG9uVXBsb2FkUHJvZ3Jlc3M6RSxyZXNwb25zZVR5cGU6YSxoZWFkZXJzOnMsd2l0aENyZWRlbnRpYWxzOm49InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6Zn09RkEoQSk7YT1hPyhhKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgQj1WdChbcixvJiZvLnRvQWJvcnRTaWduYWwoKV0sZyksUSxsPUImJkIudW5zdWJzY3JpYmUmJigoKT0+e0IudW5zdWJzY3JpYmUoKX0pLGM7dHJ5e2lmKEUmJlRJJiZlIT09ImdldCImJmUhPT0iaGVhZCImJihjPWF3YWl0IHhJKHMsSSkpIT09MCl7bGV0IFI9bmV3IFJlcXVlc3QodCx7bWV0aG9kOiJQT1NUIixib2R5OkksZHVwbGV4OiJoYWxmIn0pLHE7aWYoaS5pc0Zvcm1EYXRhKEkpJiYocT1SLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJnMuc2V0Q29udGVudFR5cGUocSksUi5ib2R5KXtsZXRbVCxCQV09dkEoYyxfKCRBKEUpKSk7ST1ldChSLmJvZHksWHQsVCxCQSl9fWkuaXNTdHJpbmcobil8fChuPW4/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IGQ9ImNyZWRlbnRpYWxzImluIFJlcXVlc3QucHJvdG90eXBlO1E9bmV3IFJlcXVlc3QodCx7Li4uZixzaWduYWw6QixtZXRob2Q6ZS50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6cy5ub3JtYWxpemUoKS50b0pTT04oKSxib2R5OkksZHVwbGV4OiJoYWxmIixjcmVkZW50aWFsczpkP246dm9pZCAwfSk7bGV0IHk9YXdhaXQgZmV0Y2goUSksbT1JdCYmKGE9PT0ic3RyZWFtInx8YT09PSJyZXNwb25zZSIpO2lmKEl0JiYoQ3x8bSYmbCkpe2xldCBSPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKGF0PT57UlthdF09eVthdF19KTtsZXQgcT1pLnRvRmluaXRlTnVtYmVyKHkuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtULEJBXT1DJiZ2QShxLF8oJEEoQyksITApKXx8W107eT1uZXcgUmVzcG9uc2UoZXQoeS5ib2R5LFh0LFQsKCk9PntCQSYmQkEoKSxsJiZsKCl9KSxSKX1hPWF8fCJ0ZXh0IjtsZXQgSD1hd2FpdCBSQVtpLmZpbmRLZXkoUkEsYSl8fCJ0ZXh0Il0oeSxBKTtyZXR1cm4hbSYmbCYmbCgpLGF3YWl0IG5ldyBQcm9taXNlKChSLHEpPT57b0EoUixxLHtkYXRhOkgsaGVhZGVyczpTLmZyb20oeS5oZWFkZXJzKSxzdGF0dXM6eS5zdGF0dXMsc3RhdHVzVGV4dDp5LnN0YXR1c1RleHQsY29uZmlnOkEscmVxdWVzdDpRfSl9KX1jYXRjaChkKXt0aHJvdyBsJiZsKCksZCYmZC5uYW1lPT09IlR5cGVFcnJvciImJi9mZXRjaC9pLnRlc3QoZC5tZXNzYWdlKT9PYmplY3QuYXNzaWduKG5ldyB1KCJOZXR3b3JrIEVycm9yIix1LkVSUl9ORVRXT1JLLEEsUSkse2NhdXNlOmQuY2F1c2V8fGR9KTp1LmZyb20oZCxkJiZkLmNvZGUsQSxRKX19KTt2YXIgcnQ9e2h0dHA6eUEseGhyOlp0LGZldGNoOnZ0fTtpLmZvckVhY2gocnQsKEEsdCk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHt2YWx1ZTp0fSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse3ZhbHVlOnR9KX19KTt2YXIgJHQ9QT0+YC0gJHtBfWAsUEk9QT0+aS5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExLFVBPXtnZXRBZGFwdGVyOkE9PntBPWkuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOnR9PUEsZSxJLHI9e307Zm9yKGxldCBvPTA7bzx0O28rKyl7ZT1BW29dO2xldCBnO2lmKEk9ZSwhUEkoZSkmJihJPXJ0WyhnPVN0cmluZyhlKSkudG9Mb3dlckNhc2UoKV0sST09PXZvaWQgMCkpdGhyb3cgbmV3IHUoYFVua25vd24gYWRhcHRlciBcJyR7Z31cJ2ApO2lmKEkpYnJlYWs7cltnfHwiJTIzIitvXT1JfWlmKCFJKXtsZXQgbz1PYmplY3QuZW50cmllcyhyKS5tYXAoKFtDLEVdKT0+YGFkYXB0ZXIgJHtDfSBgKyhFPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSksZz10P28ubGVuZ3RoPjE/YHNpbmNlIDolMEFgK28ubWFwKCR0KS5qb2luKGAlMEFgKToiICIrJHQob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK2csIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiBJfSxhZGFwdGVyczpydH07ZnVuY3Rpb24gb3QoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEwobnVsbCxBKX1mdW5jdGlvbiBHQShBKXtyZXR1cm4gb3QoQSksQS5oZWFkZXJzPVMuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1JQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksVUEuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fFYuYWRhcHRlcikoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gb3QoQSksSS5kYXRhPUlBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1TLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gckEoSSl8fChvdChBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPUlBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1TLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIGtBPSIxLjguNCI7dmFyIExBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSx0KT0+e0xBW0FdPWZ1bmN0aW9uKEkpe3JldHVybiB0eXBlb2YgST09PUF8fCJhIisodDwxPyJuICI6IiAiKStBfX0pO3ZhciBBZT17fTtMQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24odCxlLEkpe2Z1bmN0aW9uIHIobyxnKXtyZXR1cm4iW0F4aW9zIHYiK2tBKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gXCciK28rIlwnIitnKyhJPyIuICIrSToiIil9cmV0dXJuKG8sZyxDKT0+e2lmKHQ9PT0hMSl0aHJvdyBuZXcgdShyKGcsIiBoYXMgYmVlbiByZW1vdmVkIisoZT8iIGluICIrZToiIikpLHUuRVJSX0RFUFJFQ0FURUQpO3JldHVybiBlJiYhQWVbZ10mJihBZVtnXT0hMCxjb25zb2xlLndhcm4ocihnLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2IitlKyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLHQ/dChvLGcsQyk6ITB9fTtMQS5zcGVsbGluZz1mdW5jdGlvbih0KXtyZXR1cm4oZSxJKT0+KGNvbnNvbGUud2FybihgJHtJfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke3R9YCksITApfTtmdW5jdGlvbiBXSShBLHQsZSl7aWYodHlwZW9mIEEhPSJvYmplY3QiKXRocm93IG5ldyB1KCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iix1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgST1PYmplY3Qua2V5cyhBKSxyPUkubGVuZ3RoO2Zvcig7ci0tID4wOyl7bGV0IG89SVtyXSxnPXRbb107aWYoZyl7bGV0IEM9QVtvXSxFPUM9PT12b2lkIDB8fGcoQyxvLEEpO2lmKEUhPT0hMCl0aHJvdyBuZXcgdSgib3B0aW9uICIrbysiIG11c3QgYmUgIitFLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnRpbnVlfWlmKGUhPT0hMCl0aHJvdyBuZXcgdSgiVW5rbm93biBvcHRpb24gIitvLHUuRVJSX0JBRF9PUFRJT04pfX12YXIgaUE9e2Fzc2VydE9wdGlvbnM6V0ksdmFsaWRhdG9yczpMQX07dmFyIGI9aUEudmFsaWRhdG9ycyx6PWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuZGVmYXVsdHM9dCx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgUEEscmVzcG9uc2U6bmV3IFBBfX1hc3luYyByZXF1ZXN0KHQsZSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KHQsZSl9Y2F0Y2goSSl7aWYoSSBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgbz1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXFxuLywiIik6IiI7dHJ5e0kuc3RhY2s/byYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChvLnJlcGxhY2UoL14uK1xcbi4rXFxuLywiIikpJiYoSS5zdGFjays9YCUwQWArbyk6SS5zdGFjaz1vfWNhdGNoe319dGhyb3cgSX19X3JlcXVlc3QodCxlKXt0eXBlb2YgdD09InN0cmluZyI/KGU9ZXx8e30sZS51cmw9dCk6ZT10fHx7fSxlPWsodGhpcy5kZWZhdWx0cyxlKTtsZXR7dHJhbnNpdGlvbmFsOkkscGFyYW1zU2VyaWFsaXplcjpyLGhlYWRlcnM6b309ZTtJIT09dm9pZCAwJiZpQS5hc3NlcnRPcHRpb25zKEkse3NpbGVudEpTT05QYXJzaW5nOmIudHJhbnNpdGlvbmFsKGIuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6Yi50cmFuc2l0aW9uYWwoYi5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOmIudHJhbnNpdGlvbmFsKGIuYm9vbGVhbil9LCExKSxyIT1udWxsJiYoaS5pc0Z1bmN0aW9uKHIpP2UucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOnJ9OmlBLmFzc2VydE9wdGlvbnMocix7ZW5jb2RlOmIuZnVuY3Rpb24sc2VyaWFsaXplOmIuZnVuY3Rpb259LCEwKSksZS5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/ZS5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOmUuYWxsb3dBYnNvbHV0ZVVybHM9ITApLGlBLmFzc2VydE9wdGlvbnMoZSx7YmFzZVVybDpiLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpiLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSxlLm1ldGhvZD0oZS5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgZz1vJiZpLm1lcmdlKG8uY29tbW9uLG9bZS5tZXRob2RdKTtvJiZpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sUT0+e2RlbGV0ZSBvW1FdfSksZS5oZWFkZXJzPVMuY29uY2F0KGcsbyk7bGV0IEM9W10sRT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24obCl7dHlwZW9mIGwucnVuV2hlbj09ImZ1bmN0aW9uIiYmbC5ydW5XaGVuKGUpPT09ITF8fChFPUUmJmwuc3luY2hyb25vdXMsQy51bnNoaWZ0KGwuZnVsZmlsbGVkLGwucmVqZWN0ZWQpKX0pO2xldCBhPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24obCl7YS5wdXNoKGwuZnVsZmlsbGVkLGwucmVqZWN0ZWQpfSk7bGV0IHMsbj0wLGY7aWYoIUUpe2xldCBRPVtHQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKFEudW5zaGlmdC5hcHBseShRLEMpLFEucHVzaC5hcHBseShRLGEpLGY9US5sZW5ndGgscz1Qcm9taXNlLnJlc29sdmUoZSk7bjxmOylzPXMudGhlbihRW24rK10sUVtuKytdKTtyZXR1cm4gc31mPUMubGVuZ3RoO2xldCBCPWU7Zm9yKG49MDtuPGY7KXtsZXQgUT1DW24rK10sbD1DW24rK107dHJ5e0I9UShCKX1jYXRjaChjKXtsLmNhbGwodGhpcyxjKTticmVha319dHJ5e3M9R0EuY2FsbCh0aGlzLEIpfWNhdGNoKFEpe3JldHVybiBQcm9taXNlLnJlamVjdChRKX1mb3Iobj0wLGY9YS5sZW5ndGg7bjxmOylzPXMudGhlbihhW24rK10sYVtuKytdKTtyZXR1cm4gc31nZXRVcmkodCl7dD1rKHRoaXMuZGVmYXVsdHMsdCk7bGV0IGU9Z0EodC5iYXNlVVJMLHQudXJsLHQuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiB0QShlLHQucGFyYW1zLHQucGFyYW1zU2VyaWFsaXplcil9fTtpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKHQpe3oucHJvdG90eXBlW3RdPWZ1bmN0aW9uKGUsSSl7cmV0dXJuIHRoaXMucmVxdWVzdChrKEl8fHt9LHttZXRob2Q6dCx1cmw6ZSxkYXRhOihJfHx7fSkuZGF0YX0pKX19KTtpLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKEkpe3JldHVybiBmdW5jdGlvbihvLGcsQyl7cmV0dXJuIHRoaXMucmVxdWVzdChrKEN8fHt9LHttZXRob2Q6dCxoZWFkZXJzOkk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOm8sZGF0YTpnfSkpfX16LnByb3RvdHlwZVt0XT1lKCksei5wcm90b3R5cGVbdCsiRm9ybSJdPWUoITApfSk7dmFyIHNBPXo7dmFyIGd0PWNsYXNzIEF7Y29uc3RydWN0b3IodCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCBlO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihvKXtlPW99KTtsZXQgST10aGlzO3RoaXMucHJvbWlzZS50aGVuKHI9PntpZighSS5fbGlzdGVuZXJzKXJldHVybjtsZXQgbz1JLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7by0tID4wOylJLl9saXN0ZW5lcnNbb10ocik7SS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1yPT57bGV0IG8sZz1uZXcgUHJvbWlzZShDPT57SS5zdWJzY3JpYmUoQyksbz1DfSkudGhlbihyKTtyZXR1cm4gZy5jYW5jZWw9ZnVuY3Rpb24oKXtJLnVuc3Vic2NyaWJlKG8pfSxnfSx0KGZ1bmN0aW9uKG8sZyxDKXtJLnJlYXNvbnx8KEkucmVhc29uPW5ldyBMKG8sZyxDKSxlKEkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKHQpe2lmKHRoaXMucmVhc29uKXt0KHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKHQpOnRoaXMuX2xpc3RlbmVycz1bdF19dW5zdWJzY3JpYmUodCl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IGU9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YodCk7ZSE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKGUsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCB0PW5ldyBBYm9ydENvbnRyb2xsZXIsZT1JPT57dC5hYm9ydChJKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKGUpLHQuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKGUpLHQuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgdDtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24ocil7dD1yfSksY2FuY2VsOnR9fX0sdGU9Z3Q7ZnVuY3Rpb24gaXQoQSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBBLmFwcGx5KG51bGwsZSl9fWZ1bmN0aW9uIHN0KEEpe3JldHVybiBpLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBudD17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMobnQpLmZvckVhY2goKFtBLHRdKT0+e250W3RdPUF9KTt2YXIgZWU9bnQ7ZnVuY3Rpb24gSWUoQSl7bGV0IHQ9bmV3IHNBKEEpLGU9dihzQS5wcm90b3R5cGUucmVxdWVzdCx0KTtyZXR1cm4gaS5leHRlbmQoZSxzQS5wcm90b3R5cGUsdCx7YWxsT3duS2V5czohMH0pLGkuZXh0ZW5kKGUsdCxudWxsLHthbGxPd25LZXlzOiEwfSksZS5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIEllKGsoQSxyKSl9LGV9dmFyIHc9SWUoVik7dy5BeGlvcz1zQTt3LkNhbmNlbGVkRXJyb3I9TDt3LkNhbmNlbFRva2VuPXRlO3cuaXNDYW5jZWw9ckE7dy5WRVJTSU9OPWtBO3cudG9Gb3JtRGF0YT1NO3cuQXhpb3NFcnJvcj11O3cuQ2FuY2VsPXcuQ2FuY2VsZWRFcnJvcjt3LmFsbD1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5hbGwodCl9O3cuc3ByZWFkPWl0O3cuaXNBeGlvc0Vycm9yPXN0O3cubWVyZ2VDb25maWc9azt3LkF4aW9zSGVhZGVycz1TO3cuZm9ybVRvSlNPTj1BPT5wQShpLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO3cuZ2V0QWRhcHRlcj1VQS5nZXRBZGFwdGVyO3cuSHR0cFN0YXR1c0NvZGU9ZWU7dy5kZWZhdWx0PXc7dmFyIGJBPXc7dmFye0F4aW9zOkJpLEF4aW9zRXJyb3I6YWksQ2FuY2VsZWRFcnJvcjpRaSxpc0NhbmNlbDpFaSxDYW5jZWxUb2tlbjpjaSxWRVJTSU9OOmZpLGFsbDpsaSxDYW5jZWw6dWksaXNBeGlvc0Vycm9yOkRpLHNwcmVhZDpkaSx0b0Zvcm1EYXRhOmhpLEF4aW9zSGVhZGVyczp5aSxIdHRwU3RhdHVzQ29kZTptaSxmb3JtVG9KU09OOndpLGdldEFkYXB0ZXI6cGksbWVyZ2VDb25maWc6U2l9PWJBO3ZhciBuQSxZLEJ0LEN0PXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7QnQ9bmV3IFVpbnQ4QXJyYXkoWS5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LEpBPWNsYXNze2luaXQoKXtyZXR1cm4gbkF8fCh0eXBlb2YgZmV0Y2g8InUiP25BPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIrcmUpLnRoZW4odD0+dC5hcnJheUJ1ZmZlcigpKS50aGVuKHQ9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKHQsQ3QpKS50aGVuKHRoaXMuX2luaXQpOm5BPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKHJlLCJiYXNlNjQiKSxDdCkudGhlbih0aGlzLl9pbml0KSxuQSl9X2luaXQodCl7WT10Lmluc3RhbmNlLEN0LmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZSh0LGU9MCl7aWYoIVkpdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IEk9dC5ieXRlTGVuZ3RoLHI9WS5leHBvcnRzLm1hbGxvYyhJKTtCdC5zZXQodCxyKSxlPWV8fE51bWJlcihZLmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShyLEkpKTtsZXQgbz1ZLmV4cG9ydHMubWFsbG9jKGUpLGc9WS5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhvLGUscixJKSxDPUJ0LnNsaWNlKG8sbytnKTtyZXR1cm4gWS5leHBvcnRzLmZyZWUociksWS5leHBvcnRzLmZyZWUobyksQ319LHJlPSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIG9lPW5ldyBKQSxnZT0hMTthc3luYyBmdW5jdGlvbiBqSShBLHQsZSl7bGV0IEk9bnVsbDt0eXBlb2YgQSE9InN0cmluZyI/ST1BLmhyZWY6QS5zdGFydHNXaXRoKCJodHRwIik/ST1BOkk9YCR7dH0vJHtBfWAsSS5lbmRzV2l0aCgiLmpzIikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtMykpLEkuZW5kc1dpdGgoIi53YXNtIikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtNSkpLEkuZW5kc1dpdGgoIi53YXNtLnpzdCIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTkpKTtsZXQgcj1gJHtJfS53YXNtYCxvPWF3YWl0IGJBLmdldChgJHtyfS56c3RgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIixwYXJhbXM6ZX0pO2dlfHwoYXdhaXQgb2UuaW5pdCgpLGdlPSEwKTtsZXQgQz1vZS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoby5kYXRhKSkuYnVmZmVyO3JldHVybihhd2FpdCBpbXBvcnQoYCR7SX0uanNgKSkuZGVmYXVsdCh7d2FzbUJpbmFyeTpDfSl9dmFyIGllPWpJO3ZhciBIQT1uZXcgTWFwO2FzeW5jIGZ1bmN0aW9uIFpJKEEsdCxlKXtsZXQgST1BLHI9QSxvPW51bGw7cmV0dXJuIHR5cGVvZiBBIT0ic3RyaW5nIiYmKEk9bmV3IFVSTChBLmhyZWYpLHI9SS5ocmVmKSxIQS5oYXMocik/bz1hd2FpdCBIQS5nZXQocik6KEhBLnNldChyLGllKEksdCxlKSksbz1hd2FpdCBIQS5nZXQocikpLG99dmFyIHNlPVpJO3ZhciBWST17VGV4dEZpbGU6IlRleHRGaWxlIixCaW5hcnlGaWxlOiJCaW5hcnlGaWxlIixUZXh0U3RyZWFtOiJUZXh0U3RyZWFtIixCaW5hcnlTdHJlYW06IkJpbmFyeVN0cmVhbSIsSW1hZ2U6IkltYWdlIixQb2ludFNldDoiUG9pbnRTZXQiLE1lc2g6Ik1lc2giLFBvbHlEYXRhOiJQb2x5RGF0YSIsVHJhbnNmb3JtTGlzdDoiVHJhbnNmb3JtTGlzdCIsSnNvbkNvbXBhdGlibGU6Ikpzb25Db21wYXRpYmxlIn0sRD1WSTt2YXIgWEk9e0ludDg6ImludDgiLFVJbnQ4OiJ1aW50OCIsSW50MTY6ImludDE2IixVSW50MTY6InVpbnQxNiIsSW50MzI6ImludDMyIixVSW50MzI6InVpbnQzMiIsSW50NjQ6ImludDY0IixVSW50NjQ6InVpbnQ2NCIsU2l6ZVZhbHVlVHlwZToidWludDY0IixJZGVudGlmaWVyVHlwZToidWludDY0IixJbmRleFZhbHVlVHlwZToiaW50NjQiLE9mZnNldFZhbHVlVHlwZToiaW50NjQifSxOPVhJO3ZhciBfST17RmxvYXQzMjoiZmxvYXQzMiIsRmxvYXQ2NDoiZmxvYXQ2NCIsU3BhY2VQcmVjaXNpb25UeXBlOiJmbG9hdDY0In0sUD1fSTtmdW5jdGlvbiB6SShBLHQpe2xldCBlPW51bGw7c3dpdGNoKEEpe2Nhc2UgTi5VSW50ODp7ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIE4uSW50ODp7ZT1uZXcgSW50OEFycmF5KHQpO2JyZWFrfWNhc2UgTi5VSW50MTY6e2U9bmV3IFVpbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgTi5JbnQxNjp7ZT1uZXcgSW50MTZBcnJheSh0KTticmVha31jYXNlIE4uVUludDMyOntlPW5ldyBVaW50MzJBcnJheSh0KTticmVha31jYXNlIE4uSW50MzI6e2U9bmV3IEludDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBOLlVJbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnVWludDY0QXJyYXk9PSJmdW5jdGlvbiI/ZT1uZXcgQmlnVWludDY0QXJyYXkodCk6ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIE4uSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ0ludDY0QXJyYXk9PSJmdW5jdGlvbiI/ZT1uZXcgQmlnSW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgUC5GbG9hdDMyOntlPW5ldyBGbG9hdDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBQLkZsb2F0NjQ6e2U9bmV3IEZsb2F0NjRBcnJheSh0KTticmVha31jYXNlIm51bGwiOntlPW51bGw7YnJlYWt9Y2FzZSBudWxsOntlPW51bGw7YnJlYWt9ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlR5cGUgaXMgbm90IHN1cHBvcnRlZCBhcyBhIFR5cGVkQXJyYXkiKX1yZXR1cm4gZX12YXIgSj16STt2YXIgQmU9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI9PSJmdW5jdGlvbiIsbmU9bmV3IFRleHRFbmNvZGVyLENlPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKTtmdW5jdGlvbiB2SShBLHQpe2xldCBlPXtmbGFnczoiciIsZW5jb2Rpbmc6ImJpbmFyeSJ9LEk9QS5mc19vcGVuKHQsZS5mbGFncyksbz1BLmZzX3N0YXQodCkuc2l6ZSxnPW51bGw7QmU/Zz1uZXcgU2hhcmVkQXJyYXlCdWZmZXIobyk6Zz1uZXcgQXJyYXlCdWZmZXIobyk7bGV0IEM9bmV3IFVpbnQ4QXJyYXkoZyk7cmV0dXJuIEEuZnNfcmVhZChJLEMsMCxvLDApLEEuZnNfY2xvc2UoSSksQ31mdW5jdGlvbiBhZShBLHQsZSl7bGV0IEk9bnVsbDtCZT9JPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihlKTpJPW5ldyBBcnJheUJ1ZmZlcihlKTtsZXQgcj1uZXcgVWludDhBcnJheShJKSxvPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcix0LGUpO3JldHVybiByLnNldChvKSxyfWZ1bmN0aW9uIHAoQSx0LGUsSSl7bGV0IHI9MDtyZXR1cm4gdCE9PW51bGwmJihyPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2FycmF5X2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsSSx0LmJ1ZmZlci5ieXRlTGVuZ3RoXSksQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KHQuYnVmZmVyKSxyKSkscn1mdW5jdGlvbiBLKEEsdCxlKXtsZXQgST1KU09OLnN0cmluZ2lmeSh0KSxyPUEubGVuZ3RoQnl0ZXNVVEY4KEkpKzEsbz1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUscl0pO0Euc3RyaW5nVG9VVEY4KEksbyxyKX1mdW5jdGlvbiBGKEEsdCxlLEkpe2xldCByPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsZV0pLG89QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksZz1hZShBLHIsbyk7cmV0dXJuIEooSSxnLmJ1ZmZlcil9ZnVuY3Rpb24gQ0EoQSx0KXtsZXQgZT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLHRdKSxJPUEuVVRGOFRvU3RyaW5nKGUpO3JldHVybiBKU09OLnBhcnNlKEkpfWZ1bmN0aW9uICRJKEEsdCxlLEkpe0khPW51bGwmJkkubGVuZ3RoPjAmJkkuZm9yRWFjaChmdW5jdGlvbihhLHMpe3N3aXRjaChhLnR5cGUpe2Nhc2UgRC5UZXh0U3RyZWFtOntsZXQgbj1uZS5lbmNvZGUoYS5kYXRhLmRhdGEpLGY9cChBLG4scywwKSxCPXtzaXplOm4uYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07SyhBLEIscyk7YnJlYWt9Y2FzZSBELkpzb25Db21wYXRpYmxlOntsZXQgbj1uZS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoYS5kYXRhKSksZj1wKEEsbixzLDApLEI9e3NpemU6bi5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtLKEEsQixzKTticmVha31jYXNlIEQuQmluYXJ5U3RyZWFtOntsZXQgbj1hLmRhdGEuZGF0YSxmPXAoQSxuLHMsMCksQj17c2l6ZTpuLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O0soQSxCLHMpO2JyZWFrfWNhc2UgRC5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoYS5kYXRhLnBhdGgsYS5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgRC5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShhLmRhdGEucGF0aCxhLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBELkltYWdlOntsZXQgbj1hLmRhdGEsZj1wKEEsbi5kYXRhLHMsMCksQj1wKEEsbi5kaXJlY3Rpb24scywxKSxRPXR5cGVvZiBuLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKG4ubWV0YWRhdGEuZW50cmllcygpKTpbXSxsPXtpbWFnZVR5cGU6bi5pbWFnZVR5cGUsbmFtZTpuLm5hbWUsb3JpZ2luOm4ub3JpZ2luLHNwYWNpbmc6bi5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxzaXplOm4uc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLG1ldGFkYXRhOlF9O0soQSxsLHMpO2JyZWFrfWNhc2UgRC5NZXNoOntsZXQgbj1hLmRhdGEsZj1wKEEsbi5wb2ludHMscywwKSxCPXAoQSxuLmNlbGxzLHMsMSksUT1wKEEsbi5wb2ludERhdGEscywyKSxsPXAoQSxuLmNlbGxEYXRhLHMsMyksYz17bWVzaFR5cGU6bi5tZXNoVHlwZSxuYW1lOm4ubmFtZSxudW1iZXJPZlBvaW50czpuLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCxudW1iZXJPZkNlbGxzOm4ubnVtYmVyT2ZDZWxscyxjZWxsczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxjZWxsQnVmZmVyU2l6ZTpuLmNlbGxCdWZmZXJTaXplLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxudW1iZXJPZkNlbGxQaXhlbHM6bi5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O0soQSxjLHMpO2JyZWFrfWNhc2UgRC5Qb2ludFNldDp7bGV0IG49YS5kYXRhLGY9cChBLG4ucG9pbnRzLHMsMCksQj1wKEEsbi5wb2ludERhdGEscywxKSxRPXtwb2ludFNldFR5cGU6bi5wb2ludFNldFR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpuLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gfTtLKEEsUSxzKTticmVha31jYXNlIEQuVHJhbnNmb3JtTGlzdDp7bGV0IG49YS5kYXRhLGY9W10sQj0wO24uZm9yRWFjaChRPT57bGV0IGw9IiIsYz0iIjtRLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYobD1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3AoQSxRLmZpeGVkUGFyYW1ldGVycyxzLEIpfWAsQis9MSxjPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7cChBLFEucGFyYW1ldGVycyxzLEIpfWAsQis9MSk7bGV0IGQ9e3RyYW5zZm9ybVR5cGU6US50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOlEubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOlEubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6US5uYW1lLGlucHV0U3BhY2VOYW1lOlEuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOlEub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6YyxmaXhlZFBhcmFtZXRlcnM6bH07Zi5wdXNoKGQpfSksSyhBLGYscyk7YnJlYWt9Y2FzZSBELlBvbHlEYXRhOntsZXQgbj1hLmRhdGEsZj1wKEEsbi5wb2ludHMscywwKSxCPXAoQSxuLnZlcnRpY2VzLHMsMSksUT1wKEEsbi5saW5lcyxzLDIpLGw9cChBLG4ucG9seWdvbnMscywzKSxjPXAoQSxuLnRyaWFuZ2xlU3RyaXBzLHMsNCksZD1wKEEsbi5wb2ludERhdGEscyw1KSx5PXAoQSxuLnBvaW50RGF0YSxzLDYpLG09e3BvbHlEYXRhVHlwZTpuLnBvbHlEYXRhVHlwZSxuYW1lOm4ubmFtZSxudW1iZXJPZlBvaW50czpuLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCx2ZXJ0aWNlc0J1ZmZlclNpemU6bi52ZXJ0aWNlc0J1ZmZlclNpemUsdmVydGljZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsbGluZXNCdWZmZXJTaXplOm4ubGluZXNCdWZmZXJTaXplLGxpbmVzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLHBvbHlnb25zQnVmZmVyU2l6ZTpuLnBvbHlnb25zQnVmZmVyU2l6ZSxwb2x5Z29uczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCx0cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU6bi50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemUsdHJpYW5nbGVTdHJpcHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpuLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7ZH1gLG51bWJlck9mQ2VsbFBpeGVsczpuLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3l9YH07SyhBLG0scyk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IHI9QS5zdGFja1NhdmUoKSxvPTA7dHJ5e289QS5jYWxsTWFpbih0LnNsaWNlKCkpfWNhdGNoKGEpe3Rocm93IHR5cGVvZiBhPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKGEpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLGF9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShyKX1sZXQgZz1BLmdldE1vZHVsZVN0ZG91dCgpLEM9QS5nZXRNb2R1bGVTdGRlcnIoKSxFPVtdO3JldHVybiBlIT1udWxsJiZlLmxlbmd0aD4wJiZvPT09MCYmZS5mb3JFYWNoKGZ1bmN0aW9uKGEscyl7bGV0IG49bnVsbDtzd2l0Y2goYS50eXBlKXtjYXNlIEQuVGV4dFN0cmVhbTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxsPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixCLFEpO249e2RhdGE6Q2UuZGVjb2RlKGwpfTticmVha31jYXNlIEQuSnNvbkNvbXBhdGlibGU6e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksbD1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQixRKTtuPUpTT04ucGFyc2UoQ2UuZGVjb2RlKGwpKTticmVha31jYXNlIEQuQmluYXJ5U3RyZWFtOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pO249e2RhdGE6YWUoQSxCLFEpfTticmVha31jYXNlIEQuVGV4dEZpbGU6e249e3BhdGg6YS5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKGEuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSBELkJpbmFyeUZpbGU6e249e3BhdGg6YS5kYXRhLnBhdGgsZGF0YTp2SShBLGEuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSBELkltYWdlOntsZXQgQj1DQShBLHMpO0IuZGF0YT1GKEEscywwLEIuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLEIuZGlyZWN0aW9uPUYoQSxzLDEsUC5GbG9hdDY0KSxCLm1ldGFkYXRhPW5ldyBNYXAoQi5tZXRhZGF0YSksbj1CO2JyZWFrfWNhc2UgRC5NZXNoOntsZXQgQj1DQShBLHMpO0IubnVtYmVyT2ZQb2ludHM+MD9CLnBvaW50cz1GKEEscywwLEIubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpCLnBvaW50cz1KKEIubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxzPjA/Qi5jZWxscz1GKEEscywxLEIubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOkIuY2VsbHM9SihCLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9RihBLHMsMixCLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1KKEIubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mQ2VsbFBpeGVscz4wP0IuY2VsbERhdGE9RihBLHMsMyxCLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkIuY2VsbERhdGE9SihCLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuPUI7YnJlYWt9Y2FzZSBELlBvaW50U2V0OntsZXQgQj1DQShBLHMpO0IubnVtYmVyT2ZQb2ludHM+MD9CLnBvaW50cz1GKEEscywwLEIucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qi5wb2ludHM9SihCLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1GKEEscywxLEIucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1KKEIucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksbj1CO2JyZWFrfWNhc2UgRC5UcmFuc2Zvcm1MaXN0OntsZXQgQj1DQShBLHMpLFE9MDtCLmZvckVhY2goKGwsYyk9PntsLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYobC5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYoQltjXS5maXhlZFBhcmFtZXRlcnM9RihBLHMsUSxQLkZsb2F0NjQpKSxRKz0xLGwubnVtYmVyT2ZQYXJhbWV0ZXJzPjAmJihCW2NdLnBhcmFtZXRlcnM9RihBLHMsUSxsLnRyYW5zZm9ybVR5cGUucGFyYW1ldGVyc1ZhbHVlVHlwZSkpLFErPTEpfSksbj1CO2JyZWFrfWNhc2UgRC5Qb2x5RGF0YTp7bGV0IEI9Q0EoQSxzKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9RihBLHMsMCxQLkZsb2F0MzIpOkIucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXksQi52ZXJ0aWNlc0J1ZmZlclNpemU+MD9CLnZlcnRpY2VzPUYoQSxzLDEsTi5VSW50MzIpOkIudmVydGljZXM9bmV3IFVpbnQzMkFycmF5LEIubGluZXNCdWZmZXJTaXplPjA/Qi5saW5lcz1GKEEscywyLE4uVUludDMyKTpCLmxpbmVzPW5ldyBVaW50MzJBcnJheSxCLnBvbHlnb25zQnVmZmVyU2l6ZT4wP0IucG9seWdvbnM9RihBLHMsMyxOLlVJbnQzMik6Qi5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXksQi50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9CLnRyaWFuZ2xlU3RyaXBzPUYoQSxzLDQsTi5VSW50MzIpOkIudHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPUYoQSxzLDUsQi5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkIucG9pbnREYXRhPUooQi5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mQ2VsbFBpeGVscz4wP0IuY2VsbERhdGE9RihBLHMsNixCLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpCLmNlbGxEYXRhPUooQi5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLG49QjticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBmPXt0eXBlOmEudHlwZSxkYXRhOm59O0UucHVzaChmKX0pLHtyZXR1cm5WYWx1ZTpvLHN0ZG91dDpnLHN0ZGVycjpDLG91dHB1dHM6RX19dmFyIFFlPSRJO3ZhciBBcj10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gdHIoQSx0KXtpZihBPT1udWxsKXJldHVybltdO2xldCBlPVtdO2ZvcihsZXQgST0wO0k8QS5sZW5ndGg7SSsrKXtsZXQgcj1lcihBW0ldLHQpO3IhPT1udWxsJiZlLnB1c2gocil9cmV0dXJuIGV9ZnVuY3Rpb24gZXIoQSx0KXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCBlPW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP2U9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYoZT1BKSxBciYmZSBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6dD9lOmUuc2xpY2UoMCl9dmFyIEVlPXRyO2Z1bmN0aW9uIElyKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciBjZT1JcjtmdW5jdGlvbiBycihBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgZmU9cnI7ZnVuY3Rpb24gb3IoQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIGxlPW9yO2FzeW5jIGZ1bmN0aW9uIGdyKEEsdCxlLEkpe2xldCByPVFlKEEsdCxlLEkpLG89W107cmV0dXJuIHIub3V0cHV0cy5mb3JFYWNoKGZ1bmN0aW9uKGcpe2lmKGcudHlwZT09PUQuQmluYXJ5U3RyZWFtfHxnLnR5cGU9PT1ELkJpbmFyeUZpbGUpe2xldCBDPWcuZGF0YTtvLnB1c2goQyl9ZWxzZSBpZihnLnR5cGU9PT1ELkltYWdlKXtsZXQgQz1nLmRhdGE7by5wdXNoKC4uLmNlKEMpKX1lbHNlIGlmKGcudHlwZT09PUQuTWVzaCl7bGV0IEM9Zy5kYXRhO28ucHVzaCguLi5mZShDKSl9ZWxzZSBpZihnLnR5cGU9PT1ELlBvbHlEYXRhKXtsZXQgQz1nLmRhdGE7by5wdXNoKC4uLmxlKEMpKX19KSxNQShyLEVlKG8sITApKX12YXIgdWU9Z3I7dmFyIGlyPXtydW5QaXBlbGluZTphc3luYyBmdW5jdGlvbihBLHQsZSxJLHIsbyl7bGV0IGc9YXdhaXQgc2UoQSx0LG8pO3JldHVybiBhd2FpdCB1ZShnLGUsSSxyKX19O2xBKGlyKTslMEEvKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOiUwQSUwQWNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6JTBBICAoKiolMEEgICAqIEBsaWNlbnNlJTBBICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDJTBBICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCUwQSAgICopJTBBKi8lMEEnO0h0KHF0KTtleHBvcnR7eHIgYXMgZG93bnNhbXBsZSxIciBhcyBkb3duc2FtcGxlQmluU2hyaW5rLHFyIGFzIGRvd25zYW1wbGVMYWJlbEltYWdlLE9yIGFzIGRvd25zYW1wbGVTaWdtYSxXciBhcyBnYXVzc2lhbktlcm5lbFJhZGl1cyxxIGFzIGdldERlZmF1bHRXZWJXb3JrZXIsTiBhcyBnZXRQaXBlbGluZVdvcmtlclVybCxNIGFzIGdldFBpcGVsaW5lc0Jhc2VVcmwsRGEgYXMgc2V0RGVmYXVsdFdlYldvcmtlcixIdCBhcyBzZXRQaXBlbGluZVdvcmtlclVybCxsYSBhcyBzZXRQaXBlbGluZXNCYXNlVXJsLFBBIGFzIHZlcnNpb259OwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAogICAqKQoqLwo=""" +default_js_module = """data:text/javascript;base64,dmFyIHJJPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZ0k9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlySShBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIGlJPSIxLjcuMSIsZWU9aUk7dmFyIG9JPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0saz1vSTt2YXIgbkk9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFg9bkk7ZnVuY3Rpb24gYUkoQSxlKXtsZXQgdD1udWxsO3N3aXRjaChBKXtjYXNlIGsuVUludDg6e3Q9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBrLkludDg6e3Q9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIGsuVUludDE2Ont0PW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIGsuSW50MTY6e3Q9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBrLlVJbnQzMjp7dD1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBrLkludDMyOnt0PW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2Ugay5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBrLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ0ludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIFguRmxvYXQzMjp7dD1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2UgWC5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIEg9YUk7dmFyIHNJPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxkPXNJO3ZhciBUZT1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxDST1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxyZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksdGU9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLFVBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSx4ZT1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixCST17Y2FuSGFuZGxlOkE9PnhlKEEpJiZBW1RlXSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOmUscG9ydDI6dH09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBXZShBLGUpLFt0LFt0XV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksZ2UoQSl9fSxRST17Y2FuSGFuZGxlOkE9PnhlKEEpJiZVQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCBlO3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/ZT17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OmU9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW2UsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sUGU9bmV3IE1hcChbWyJwcm94eSIsQkldLFsidGhyb3ciLFFJXV0pO2Z1bmN0aW9uIEVJKEEsZSl7Zm9yKGxldCB0IG9mIEEpaWYoZT09PXR8fHQ9PT0iKiJ8fHQgaW5zdGFuY2VvZiBSZWdFeHAmJnQudGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBXZShBLGU9Z2xvYmFsVGhpcyx0PVsiKiJdKXtlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIEkocil7aWYoIXJ8fCFyLmRhdGEpcmV0dXJuO2lmKCFFSSh0LHIub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiAnJHtyLm9yaWdpbn0nIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDppLHR5cGU6ZyxwYXRoOnN9PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LHIuZGF0YSksRT0oci5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcCh6KSxDO3RyeXtsZXQgbz1zLnNsaWNlKDAsLTEpLnJlZHVjZSgoYyxCKT0+Y1tCXSxBKSxhPXMucmVkdWNlKChjLEIpPT5jW0JdLEEpO3N3aXRjaChnKXtjYXNlIkdFVCI6Qz1hO2JyZWFrO2Nhc2UiU0VUIjpvW3Muc2xpY2UoLTEpWzBdXT16KHIuZGF0YS52YWx1ZSksQz0hMDticmVhaztjYXNlIkFQUExZIjpDPWEuYXBwbHkobyxFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCBjPW5ldyBhKC4uLkUpO0M9ZEkoYyl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTpjLHBvcnQyOkJ9PW5ldyBNZXNzYWdlQ2hhbm5lbDtXZShBLEIpLEM9aWUoYyxbY10pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6Qz12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKG8pe0M9e3ZhbHVlOm8sW1VBXTowfX1Qcm9taXNlLnJlc29sdmUoQykuY2F0Y2gobz0+KHt2YWx1ZTpvLFtVQV06MH0pKS50aGVuKG89PntsZXRbYSxjXT1MQShvKTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSx7aWQ6aX0pLGMpLGc9PT0iUkVMRUFTRSImJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLGplKGUpLHRlIGluIEEmJnR5cGVvZiBBW3RlXT09ImZ1bmN0aW9uIiYmQVt0ZV0oKSl9KS5jYXRjaChvPT57bGV0W2EsY109TEEoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFtVQV06MH0pO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGEpLHtpZDppfSksYyl9KX0pLGUuc3RhcnQmJmUuc3RhcnQoKX1mdW5jdGlvbiBsSShBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBqZShBKXtsSShBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIGdlKEEsZSl7cmV0dXJuIEllKEEsW10sZSl9ZnVuY3Rpb24ga0EoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIHZlKEEpe3JldHVybiBBQShBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9PntqZShBKX0pfXZhciBOQT1uZXcgV2Vha01hcCxHQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgZT0oTkEuZ2V0KEEpfHwwKS0xO05BLnNldChBLGUpLGU9PT0wJiZ2ZShBKX0pO2Z1bmN0aW9uIGNJKEEsZSl7bGV0IHQ9KE5BLmdldChlKXx8MCkrMTtOQS5zZXQoZSx0KSxHQSYmR0EucmVnaXN0ZXIoQSxlLEEpfWZ1bmN0aW9uIGZJKEEpe0dBJiZHQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIEllKEEsZT1bXSx0PWZ1bmN0aW9uKCl7fSl7bGV0IEk9ITEscj1uZXcgUHJveHkodCx7Z2V0KGksZyl7aWYoa0EoSSksZz09PXJlKXJldHVybigpPT57ZkkociksdmUoQSksST0hMH07aWYoZz09PSJ0aGVuIil7aWYoZS5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5yfTtsZXQgcz1BQShBLHt0eXBlOiJHRVQiLHBhdGg6ZS5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oeik7cmV0dXJuIHMudGhlbi5iaW5kKHMpfXJldHVybiBJZShBLFsuLi5lLGddKX0sc2V0KGksZyxzKXtrQShJKTtsZXRbRSxDXT1MQShzKTtyZXR1cm4gQUEoQSx7dHlwZToiU0VUIixwYXRoOlsuLi5lLGddLm1hcChvPT5vLnRvU3RyaW5nKCkpLHZhbHVlOkV9LEMpLnRoZW4oeil9LGFwcGx5KGksZyxzKXtrQShJKTtsZXQgRT1lW2UubGVuZ3RoLTFdO2lmKEU9PT1DSSlyZXR1cm4gQUEoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbih6KTtpZihFPT09ImJpbmQiKXJldHVybiBJZShBLGUuc2xpY2UoMCwtMSkpO2xldFtDLG9dPU9lKHMpO3JldHVybiBBQShBLHt0eXBlOiJBUFBMWSIscGF0aDplLm1hcChhPT5hLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpDfSxvKS50aGVuKHopfSxjb25zdHJ1Y3QoaSxnKXtrQShJKTtsZXRbcyxFXT1PZShnKTtyZXR1cm4gQUEoQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOmUubWFwKEM9PkMudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OnN9LEUpLnRoZW4oeil9fSk7cmV0dXJuIGNJKHIsQSkscn1mdW5jdGlvbiB1SShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBPZShBKXtsZXQgZT1BLm1hcChMQSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLHVJKGUubWFwKHQ9PnRbMV0pKV19dmFyIFplPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGllKEEsZSl7cmV0dXJuIFplLnNldChBLGUpLEF9ZnVuY3Rpb24gZEkoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W1RlXTohMH0pfWZ1bmN0aW9uIExBKEEpe2ZvcihsZXRbZSx0XW9mIFBlKWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbSSxyXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTpJfSxyXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sWmUuZ2V0KEEpfHxbXV19ZnVuY3Rpb24geihBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBQZS5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIEFBKEEsZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoST0+e2xldCByPXBJKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBpKGcpeyFnLmRhdGF8fCFnLmRhdGEuaWR8fGcuZGF0YS5pZCE9PXJ8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGkpLEkoZy5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpyfSxlKSx0KX0pfWZ1bmN0aW9uIHBJKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiBDQShBLGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KGUsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOmhJfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpuZX09T2JqZWN0LHtpdGVyYXRvcjpKQSx0b1N0cmluZ1RhZzp6ZX09U3ltYm9sLFlBPShBPT5lPT57bGV0IHQ9aEkuY2FsbChlKTtyZXR1cm4gQVt0XXx8KEFbdF09dC5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLGI9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLGU9PllBKGUpPT09QSksTUE9QT0+ZT0+dHlwZW9mIGU9PT1BLHtpc0FycmF5OnRBfT1BcnJheSxlQT1NQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gQkEoQSl7cmV0dXJuIEEhPT1udWxsJiYhZUEoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhZUEoQS5jb25zdHJ1Y3RvcikmJlUoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIF9lPWIoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gREkoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZfZShBLmJ1ZmZlciksZX12YXIgeUk9TUEoInN0cmluZyIpLFU9TUEoImZ1bmN0aW9uIiksJGU9TUEoIm51bWJlciIpLFFBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsd0k9QT0+QT09PSEwfHxBPT09ITEsYkE9QT0+e2lmKFlBKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IGU9bmUoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEoemUgaW4gQSkmJiEoSkEgaW4gQSl9LG1JPUE9PntpZighUUEoQSl8fEJBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LFNJPWIoIkRhdGUiKSxGST1iKCJGaWxlIiksUkk9YigiQmxvYiIpLGtJPWIoIkZpbGVMaXN0IiksVUk9QT0+UUEoQSkmJlUoQS5waXBlKSxOST1BPT57bGV0IGU7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8VShBLmFwcGVuZCkmJigoZT1ZQShBKSk9PT0iZm9ybWRhdGEifHxlPT09Im9iamVjdCImJlUoQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sR0k9YigiVVJMU2VhcmNoUGFyYW1zIiksW0xJLGJJLEpJLFlJXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChiKSxNST1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZywiIik7ZnVuY3Rpb24gRUEoQSxlLHthbGxPd25LZXlzOnQ9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgSSxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSx0QShBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyllLmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtpZihCQShBKSlyZXR1cm47bGV0IGk9dD9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxnPWkubGVuZ3RoLHM7Zm9yKEk9MDtJPGc7SSsrKXM9aVtJXSxlLmNhbGwobnVsbCxBW3NdLHMsQSl9fWZ1bmN0aW9uIEF0KEEsZSl7aWYoQkEoQSkpcmV0dXJuIG51bGw7ZT1lLnRvTG93ZXJDYXNlKCk7bGV0IHQ9T2JqZWN0LmtleXMoQSksST10Lmxlbmd0aCxyO2Zvcig7SS0tID4wOylpZihyPXRbSV0sZT09PXIudG9Mb3dlckNhc2UoKSlyZXR1cm4gcjtyZXR1cm4gbnVsbH12YXIgXz10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLGV0PUE9PiFlQShBKSYmQSE9PV87ZnVuY3Rpb24gb2UoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOmV9PWV0KHRoaXMpJiZ0aGlzfHx7fSx0PXt9LEk9KHIsaSk9PntsZXQgZz1BJiZBdCh0LGkpfHxpO2JBKHRbZ10pJiZiQShyKT90W2ddPW9lKHRbZ10scik6YkEocik/dFtnXT1vZSh7fSxyKTp0QShyKT90W2ddPXIuc2xpY2UoKTooIWV8fCFlQShyKSkmJih0W2ddPXIpfTtmb3IobGV0IHI9MCxpPWFyZ3VtZW50cy5sZW5ndGg7cjxpO3IrKylhcmd1bWVudHNbcl0mJkVBKGFyZ3VtZW50c1tyXSxJKTtyZXR1cm4gdH12YXIgSEk9KEEsZSx0LHthbGxPd25LZXlzOkl9PXt9KT0+KEVBKGUsKHIsaSk9Pnt0JiZVKHIpP0FbaV09Q0Eocix0KTpBW2ldPXJ9LHthbGxPd25LZXlzOkl9KSxBKSxxST1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLEtJPShBLGUsdCxJKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUsSSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLHQmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsdCl9LE9JPShBLGUsdCxJKT0+e2xldCByLGksZyxzPXt9O2lmKGU9ZXx8e30sQT09bnVsbClyZXR1cm4gZTtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxpPXIubGVuZ3RoO2ktLSA+MDspZz1yW2ldLCghSXx8SShnLEEsZSkpJiYhc1tnXSYmKGVbZ109QVtnXSxzW2ddPSEwKTtBPXQhPT0hMSYmbmUoQSl9d2hpbGUoQSYmKCF0fHx0KEEsZSkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LFRJPShBLGUsdCk9PntBPVN0cmluZyhBKSwodD09PXZvaWQgMHx8dD5BLmxlbmd0aCkmJih0PUEubGVuZ3RoKSx0LT1lLmxlbmd0aDtsZXQgST1BLmluZGV4T2YoZSx0KTtyZXR1cm4gSSE9PS0xJiZJPT09dH0seEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHRBKEEpKXJldHVybiBBO2xldCBlPUEubGVuZ3RoO2lmKCEkZShlKSlyZXR1cm4gbnVsbDtsZXQgdD1uZXcgQXJyYXkoZSk7Zm9yKDtlLS0gPjA7KXRbZV09QVtlXTtyZXR1cm4gdH0sUEk9KEE9PmU9PkEmJmUgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJm5lKFVpbnQ4QXJyYXkpKSxXST0oQSxlKT0+e2xldCBJPShBJiZBW0pBXSkuY2FsbChBKSxyO2Zvcig7KHI9SS5uZXh0KCkpJiYhci5kb25lOyl7bGV0IGk9ci52YWx1ZTtlLmNhbGwoQSxpWzBdLGlbMV0pfX0sakk9KEEsZSk9PntsZXQgdCxJPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KUkucHVzaCh0KTtyZXR1cm4gSX0sdkk9YigiSFRNTEZvcm1FbGVtZW50IiksWkk9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxJLHIpe3JldHVybiBJLnRvVXBwZXJDYXNlKCkrcn0pLFhlPSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxWST1iKCJSZWdFeHAiKSx0dD0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLEk9e307RUEodCwocixpKT0+e2xldCBnOyhnPWUocixpLEEpKSE9PSExJiYoSVtpXT1nfHxyKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsSSl9LFhJPUE9Pnt0dChBLChlLHQpPT57aWYoVShBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IEk9QVt0XTtpZihVKEkpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LHpJPShBLGUpPT57bGV0IHQ9e30sST1yPT57ci5mb3JFYWNoKGk9Pnt0W2ldPSEwfSl9O3JldHVybiB0QShBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KGUpKSx0fSxfST0oKT0+e30sJEk9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gQXIoQSl7cmV0dXJuISEoQSYmVShBLmFwcGVuZCkmJkFbemVdPT09IkZvcm1EYXRhIiYmQVtKQV0pfXZhciBlcj1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSx0PShJLHIpPT57aWYoUUEoSSkpe2lmKGUuaW5kZXhPZihJKT49MClyZXR1cm47aWYoQkEoSSkpcmV0dXJuIEk7aWYoISgidG9KU09OImluIEkpKXtlW3JdPUk7bGV0IGk9dEEoSSk/W106e307cmV0dXJuIEVBKEksKGcscyk9PntsZXQgRT10KGcscisxKTshZUEoRSkmJihpW3NdPUUpfSksZVtyXT12b2lkIDAsaX19cmV0dXJuIEl9O3JldHVybiB0KEEsMCl9LHRyPWIoIkFzeW5jRnVuY3Rpb24iKSxJcj1BPT5BJiYoUUEoQSl8fFUoQSkpJiZVKEEudGhlbikmJlUoQS5jYXRjaCksSXQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxJKT0+KF8uYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6cixkYXRhOml9KT0+e3I9PT1fJiZpPT09dCYmSS5sZW5ndGgmJkkuc2hpZnQoKSgpfSwhMSkscj0+e0kucHVzaChyKSxfLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsVShfLnBvc3RNZXNzYWdlKSkscnI9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKF8pOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8SXQsZ3I9QT0+QSE9bnVsbCYmVShBW0pBXSksbj17aXNBcnJheTp0QSxpc0FycmF5QnVmZmVyOl9lLGlzQnVmZmVyOkJBLGlzRm9ybURhdGE6TkksaXNBcnJheUJ1ZmZlclZpZXc6REksaXNTdHJpbmc6eUksaXNOdW1iZXI6JGUsaXNCb29sZWFuOndJLGlzT2JqZWN0OlFBLGlzUGxhaW5PYmplY3Q6YkEsaXNFbXB0eU9iamVjdDptSSxpc1JlYWRhYmxlU3RyZWFtOkxJLGlzUmVxdWVzdDpiSSxpc1Jlc3BvbnNlOkpJLGlzSGVhZGVyczpZSSxpc1VuZGVmaW5lZDplQSxpc0RhdGU6U0ksaXNGaWxlOkZJLGlzQmxvYjpSSSxpc1JlZ0V4cDpWSSxpc0Z1bmN0aW9uOlUsaXNTdHJlYW06VUksaXNVUkxTZWFyY2hQYXJhbXM6R0ksaXNUeXBlZEFycmF5OlBJLGlzRmlsZUxpc3Q6a0ksZm9yRWFjaDpFQSxtZXJnZTpvZSxleHRlbmQ6SEksdHJpbTpNSSxzdHJpcEJPTTpxSSxpbmhlcml0czpLSSx0b0ZsYXRPYmplY3Q6T0ksa2luZE9mOllBLGtpbmRPZlRlc3Q6YixlbmRzV2l0aDpUSSx0b0FycmF5OnhJLGZvckVhY2hFbnRyeTpXSSxtYXRjaEFsbDpqSSxpc0hUTUxGb3JtOnZJLGhhc093blByb3BlcnR5OlhlLGhhc093blByb3A6WGUscmVkdWNlRGVzY3JpcHRvcnM6dHQsZnJlZXplTWV0aG9kczpYSSx0b09iamVjdFNldDp6SSx0b0NhbWVsQ2FzZTpaSSxub29wOl9JLHRvRmluaXRlTnVtYmVyOiRJLGZpbmRLZXk6QXQsZ2xvYmFsOl8saXNDb250ZXh0RGVmaW5lZDpldCxpc1NwZWNDb21wbGlhbnRGb3JtOkFyLHRvSlNPTk9iamVjdDplcixpc0FzeW5jRm46dHIsaXNUaGVuYWJsZTpJcixzZXRJbW1lZGlhdGU6SXQsYXNhcDpycixpc0l0ZXJhYmxlOmdyfTtmdW5jdGlvbiBJQShBLGUsdCxJLHIpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsZSYmKHRoaXMuY29kZT1lKSx0JiYodGhpcy5jb25maWc9dCksSSYmKHRoaXMucmVxdWVzdD1JKSxyJiYodGhpcy5yZXNwb25zZT1yLHRoaXMuc3RhdHVzPXIuc3RhdHVzP3Iuc3RhdHVzOm51bGwpfW4uaW5oZXJpdHMoSUEsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzpuLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgcnQ9SUEucHJvdG90eXBlLGd0PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e2d0W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKElBLGd0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkocnQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7SUEuZnJvbT0oQSxlLHQsSSxyLGkpPT57bGV0IGc9T2JqZWN0LmNyZWF0ZShydCk7bi50b0ZsYXRPYmplY3QoQSxnLGZ1bmN0aW9uKG8pe3JldHVybiBvIT09RXJyb3IucHJvdG90eXBlfSxDPT5DIT09ImlzQXhpb3NFcnJvciIpO2xldCBzPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPWU9PW51bGwmJkE/QS5jb2RlOmU7cmV0dXJuIElBLmNhbGwoZyxzLEUsdCxJLHIpLEEmJmcuY2F1c2U9PW51bGwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShnLCJjYXVzZSIse3ZhbHVlOkEsY29uZmlndXJhYmxlOiEwfSksZy5uYW1lPUEmJkEubmFtZXx8IkVycm9yIixpJiZPYmplY3QuYXNzaWduKGcsaSksZ307dmFyIHU9SUE7dmFyIEhBPW51bGw7ZnVuY3Rpb24gYWUoQSl7cmV0dXJuIG4uaXNQbGFpbk9iamVjdChBKXx8bi5pc0FycmF5KEEpfWZ1bmN0aW9uIG90KEEpe3JldHVybiBuLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIGl0KEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24ocixpKXtyZXR1cm4gcj1vdChyKSwhdCYmaT8iWyIrcisiXSI6cn0pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gaXIoQSl7cmV0dXJuIG4uaXNBcnJheShBKSYmIUEuc29tZShhZSl9dmFyIG9yPW4udG9GbGF0T2JqZWN0KG4se30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiBucihBLGUsdCl7aWYoIW4uaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoSEF8fEZvcm1EYXRhKSx0PW4udG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihmLGwpe3JldHVybiFuLmlzVW5kZWZpbmVkKGxbZl0pfSk7bGV0IEk9dC5tZXRhVG9rZW5zLHI9dC52aXNpdG9yfHxvLGk9dC5kb3RzLGc9dC5pbmRleGVzLEU9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmbi5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFuLmlzRnVuY3Rpb24ocikpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBDKFEpe2lmKFE9PT1udWxsKXJldHVybiIiO2lmKG4uaXNEYXRlKFEpKXJldHVybiBRLnRvSVNPU3RyaW5nKCk7aWYobi5pc0Jvb2xlYW4oUSkpcmV0dXJuIFEudG9TdHJpbmcoKTtpZighRSYmbi5pc0Jsb2IoUSkpdGhyb3cgbmV3IHUoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIG4uaXNBcnJheUJ1ZmZlcihRKXx8bi5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIG8oUSxmLGwpe2xldCBwPVE7aWYoUSYmIWwmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYobi5lbmRzV2l0aChmLCJ7fSIpKWY9ST9mOmYuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKG4uaXNBcnJheShRKSYmaXIoUSl8fChuLmlzRmlsZUxpc3QoUSl8fG4uZW5kc1dpdGgoZiwiW10iKSkmJihwPW4udG9BcnJheShRKSkpcmV0dXJuIGY9b3QoZikscC5mb3JFYWNoKGZ1bmN0aW9uKEQsUil7IShuLmlzVW5kZWZpbmVkKEQpfHxEPT09bnVsbCkmJmUuYXBwZW5kKGc9PT0hMD9pdChbZl0sUixpKTpnPT09bnVsbD9mOmYrIltdIixDKEQpKX0pLCExfXJldHVybiBhZShRKT8hMDooZS5hcHBlbmQoaXQobCxmLGkpLEMoUSkpLCExKX1sZXQgYT1bXSxjPU9iamVjdC5hc3NpZ24ob3Ise2RlZmF1bHRWaXNpdG9yOm8sY29udmVydFZhbHVlOkMsaXNWaXNpdGFibGU6YWV9KTtmdW5jdGlvbiBCKFEsZil7aWYoIW4uaXNVbmRlZmluZWQoUSkpe2lmKGEuaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitmLmpvaW4oIi4iKSk7YS5wdXNoKFEpLG4uZm9yRWFjaChRLGZ1bmN0aW9uKHAsRil7KCEobi5pc1VuZGVmaW5lZChwKXx8cD09PW51bGwpJiZyLmNhbGwoZSxwLG4uaXNTdHJpbmcoRik/Ri50cmltKCk6RixmLGMpKT09PSEwJiZCKHAsZj9mLmNvbmNhdChGKTpbRl0pfSksYS5wb3AoKX19aWYoIW4uaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBCKEEpLGV9dmFyIGo9bnI7ZnVuY3Rpb24gbnQoQSl7bGV0IGU9eyIhIjoiJTIxIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwifiI6IiU3RSIsIiUyMCI6IisiLCIlMDAiOiJcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csZnVuY3Rpb24oSSl7cmV0dXJuIGVbSV19KX1mdW5jdGlvbiBhdChBLGUpe3RoaXMuX3BhaXJzPVtdLEEmJmooQSx0aGlzLGUpfXZhciBzdD1hdC5wcm90b3R5cGU7c3QuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9O3N0LnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCB0PWU/ZnVuY3Rpb24oSSl7cmV0dXJuIGUuY2FsbCh0aGlzLEksbnQpfTpudDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKHIpe3JldHVybiB0KHJbMF0pKyI9Iit0KHJbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgcUE9YXQ7ZnVuY3Rpb24gYXIoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIil9ZnVuY3Rpb24gbEEoQSxlLHQpe2lmKCFlKXJldHVybiBBO2xldCBJPXQmJnQuZW5jb2RlfHxhcjtuLmlzRnVuY3Rpb24odCkmJih0PXtzZXJpYWxpemU6dH0pO2xldCByPXQmJnQuc2VyaWFsaXplLGk7aWYocj9pPXIoZSx0KTppPW4uaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyBxQShlLHQpLnRvU3RyaW5nKEkpLGkpe2xldCBnPUEuaW5kZXhPZigiIyIpO2chPT0tMSYmKEE9QS5zbGljZSgwLGcpKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStpfXJldHVybiBBfXZhciBzZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsdCxJKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOkk/SS5zeW5jaHJvbm91czohMSxydW5XaGVuOkk/SS5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goZSl7bi5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24oSSl7SSE9PW51bGwmJmUoSSl9KX19LENlPXNlO3ZhciBLQT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIEN0PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpxQTt2YXIgQnQ9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciBRdD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBFdD17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczpDdCxGb3JtRGF0YTpCdCxCbG9iOlF0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIEVlPXt9O2dJKEVlLHtoYXNCcm93c2VyRW52OigpPT5RZSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PnNyLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+Q3IsbmF2aWdhdG9yOigpPT5CZSxvcmlnaW46KCk9PkJyfSk7dmFyIFFlPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLEJlPXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCxzcj1RZSYmKCFCZXx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZihCZS5wcm9kdWN0KTwwKSxDcj10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsQnI9UWUmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIGg9ey4uLkVlLC4uLkV0fTtmdW5jdGlvbiBsZShBLGUpe3JldHVybiBqKEEsbmV3IGguY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMse3Zpc2l0b3I6ZnVuY3Rpb24odCxJLHIsaSl7cmV0dXJuIGguaXNOb2RlJiZuLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChJLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6aS5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LC4uLmV9KX1mdW5jdGlvbiBRcihBKXtyZXR1cm4gbi5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csQSkubWFwKGU9PmVbMF09PT0iW10iPyIiOmVbMV18fGVbMF0pfWZ1bmN0aW9uIEVyKEEpe2xldCBlPXt9LHQ9T2JqZWN0LmtleXMoQSksSSxyPXQubGVuZ3RoLGk7Zm9yKEk9MDtJPHI7SSsrKWk9dFtJXSxlW2ldPUFbaV07cmV0dXJuIGV9ZnVuY3Rpb24gbHIoQSl7ZnVuY3Rpb24gZSh0LEkscixpKXtsZXQgZz10W2krK107aWYoZz09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBzPU51bWJlci5pc0Zpbml0ZSgrZyksRT1pPj10Lmxlbmd0aDtyZXR1cm4gZz0hZyYmbi5pc0FycmF5KHIpP3IubGVuZ3RoOmcsRT8obi5oYXNPd25Qcm9wKHIsZyk/cltnXT1bcltnXSxJXTpyW2ddPUksIXMpOigoIXJbZ118fCFuLmlzT2JqZWN0KHJbZ10pKSYmKHJbZ109W10pLGUodCxJLHJbZ10saSkmJm4uaXNBcnJheShyW2ddKSYmKHJbZ109RXIocltnXSkpLCFzKX1pZihuLmlzRm9ybURhdGEoQSkmJm4uaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgdD17fTtyZXR1cm4gbi5mb3JFYWNoRW50cnkoQSwoSSxyKT0+e2UoUXIoSSkscix0LDApfSksdH1yZXR1cm4gbnVsbH12YXIgT0E9bHI7ZnVuY3Rpb24gY3IoQSxlLHQpe2lmKG4uaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxuLnRyaW0oQSl9Y2F0Y2goSSl7aWYoSS5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyBJfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIGNlPXt0cmFuc2l0aW9uYWw6S0EsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7bGV0IEk9dC5nZXRDb250ZW50VHlwZSgpfHwiIixyPUkuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLGk9bi5pc09iamVjdChlKTtpZihpJiZuLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSksbi5pc0Zvcm1EYXRhKGUpKXJldHVybiByP0pTT04uc3RyaW5naWZ5KE9BKGUpKTplO2lmKG4uaXNBcnJheUJ1ZmZlcihlKXx8bi5pc0J1ZmZlcihlKXx8bi5pc1N0cmVhbShlKXx8bi5pc0ZpbGUoZSl8fG4uaXNCbG9iKGUpfHxuLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYobi5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYobi5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gdC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IHM7aWYoaSl7aWYoSS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gbGUoZSx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChzPW4uaXNGaWxlTGlzdChlKSl8fEkuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgRT10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIGoocz97ImZpbGVzW10iOmV9OmUsRSYmbmV3IEUsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiBpfHxyPyh0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksY3IoZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7bGV0IHQ9dGhpcy50cmFuc2l0aW9uYWx8fGNlLnRyYW5zaXRpb25hbCxJPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcscj10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihuLmlzUmVzcG9uc2UoZSl8fG4uaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZuLmlzU3RyaW5nKGUpJiYoSSYmIXRoaXMucmVzcG9uc2VUeXBlfHxyKSl7bGV0IGc9ISh0JiZ0LnNpbGVudEpTT05QYXJzaW5nKSYmcjt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2gocyl7aWYoZyl0aHJvdyBzLm5hbWU9PT0iU3ludGF4RXJyb3IiP3UuZnJvbShzLHUuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6c319cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOmguY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOmguY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O24uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57Y2UuaGVhZGVyc1tBXT17fX0pO3ZhciByQT1jZTt2YXIgZnI9bi50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSxsdD1BPT57bGV0IGU9e30sdCxJLHI7cmV0dXJuIEEmJkEuc3BsaXQoYApgKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe3I9Zy5pbmRleE9mKCI6IiksdD1nLnN1YnN0cmluZygwLHIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLEk9Zy5zdWJzdHJpbmcocisxKS50cmltKCksISghdHx8ZVt0XSYmZnJbdF0pJiYodD09PSJzZXQtY29va2llIj9lW3RdP2VbdF0ucHVzaChJKTplW3RdPVtJXTplW3RdPWVbdF0/ZVt0XSsiLCAiK0k6SSl9KSxlfTt2YXIgY3Q9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBjQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFRBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTpuLmlzQXJyYXkoQSk/QS5tYXAoVEEpOlN0cmluZyhBKX1mdW5jdGlvbiB1cihBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxJO2Zvcig7ST10LmV4ZWMoQSk7KWVbSVsxXV09SVsyXTtyZXR1cm4gZX12YXIgZHI9QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gZmUoQSxlLHQsSSxyKXtpZihuLmlzRnVuY3Rpb24oSSkpcmV0dXJuIEkuY2FsbCh0aGlzLGUsdCk7aWYociYmKGU9dCksISFuLmlzU3RyaW5nKGUpKXtpZihuLmlzU3RyaW5nKEkpKXJldHVybiBlLmluZGV4T2YoSSkhPT0tMTtpZihuLmlzUmVnRXhwKEkpKXJldHVybiBJLnRlc3QoZSl9fWZ1bmN0aW9uIHByKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxJKT0+dC50b1VwcGVyQ2FzZSgpK0kpfWZ1bmN0aW9uIGhyKEEsZSl7bGV0IHQ9bi50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKEk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJK3Qse3ZhbHVlOmZ1bmN0aW9uKHIsaSxnKXtyZXR1cm4gdGhpc1tJXS5jYWxsKHRoaXMsZSxyLGksZyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIGdBPWNsYXNze2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBpKHMsRSxDKXtsZXQgbz1jQShFKTtpZighbyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IGE9bi5maW5kS2V5KHIsbyk7KCFhfHxyW2FdPT09dm9pZCAwfHxDPT09ITB8fEM9PT12b2lkIDAmJnJbYV0hPT0hMSkmJihyW2F8fEVdPVRBKHMpKX1sZXQgZz0ocyxFKT0+bi5mb3JFYWNoKHMsKEMsbyk9PmkoQyxvLEUpKTtpZihuLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKWcoZSx0KTtlbHNlIGlmKG4uaXNTdHJpbmcoZSkmJihlPWUudHJpbSgpKSYmIWRyKGUpKWcobHQoZSksdCk7ZWxzZSBpZihuLmlzT2JqZWN0KGUpJiZuLmlzSXRlcmFibGUoZSkpe2xldCBzPXt9LEUsQztmb3IobGV0IG8gb2YgZSl7aWYoIW4uaXNBcnJheShvKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7c1tDPW9bMF1dPShFPXNbQ10pP24uaXNBcnJheShFKT9bLi4uRSxvWzFdXTpbRSxvWzFdXTpvWzFdfWcocyx0KX1lbHNlIGUhPW51bGwmJmkodCxlLEkpO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9Y0EoZSksZSl7bGV0IEk9bi5maW5kS2V5KHRoaXMsZSk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighdClyZXR1cm4gcjtpZih0PT09ITApcmV0dXJuIHVyKHIpO2lmKG4uaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMscixJKTtpZihuLmlzUmVnRXhwKHQpKXJldHVybiB0LmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhlLHQpe2lmKGU9Y0EoZSksZSl7bGV0IEk9bi5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCF0fHxmZSh0aGlzLHRoaXNbSV0sSSx0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBpKGcpe2lmKGc9Y0EoZyksZyl7bGV0IHM9bi5maW5kS2V5KEksZyk7cyYmKCF0fHxmZShJLElbc10scyx0KSkmJihkZWxldGUgSVtzXSxyPSEwKX19cmV0dXJuIG4uaXNBcnJheShlKT9lLmZvckVhY2goaSk6aShlKSxyfWNsZWFyKGUpe2xldCB0PU9iamVjdC5rZXlzKHRoaXMpLEk9dC5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBpPXRbSV07KCFlfHxmZSh0aGlzLHRoaXNbaV0saSxlLCEwKSkmJihkZWxldGUgdGhpc1tpXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUoZSl7bGV0IHQ9dGhpcyxJPXt9O3JldHVybiBuLmZvckVhY2godGhpcywocixpKT0+e2xldCBnPW4uZmluZEtleShJLGkpO2lmKGcpe3RbZ109VEEociksZGVsZXRlIHRbaV07cmV0dXJufWxldCBzPWU/cHIoaSk6U3RyaW5nKGkpLnRyaW0oKTtzIT09aSYmZGVsZXRlIHRbaV0sdFtzXT1UQShyKSxJW3NdPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIG4uZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYodFtyXT1lJiZuLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrIjogIit0KS5qb2luKGAKYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCBJPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2gocj0+SS5zZXQocikpLEl9c3RhdGljIGFjY2Vzc29yKGUpe2xldCBJPSh0aGlzW2N0XT10aGlzW2N0XT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLHI9dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gaShnKXtsZXQgcz1jQShnKTtJW3NdfHwoaHIocixnKSxJW3NdPSEwKX1yZXR1cm4gbi5pc0FycmF5KGUpP2UuZm9yRWFjaChpKTppKGUpLHRoaXN9fTtnQS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7bi5yZWR1Y2VEZXNjcmlwdG9ycyhnQS5wcm90b3R5cGUsKHt2YWx1ZTpBfSxlKT0+e2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KEkpe3RoaXNbdF09SX19fSk7bi5mcmVlemVNZXRob2RzKGdBKTt2YXIgbT1nQTtmdW5jdGlvbiBmQShBLGUpe2xldCB0PXRoaXN8fHJBLEk9ZXx8dCxyPW0uZnJvbShJLmhlYWRlcnMpLGk9SS5kYXRhO3JldHVybiBuLmZvckVhY2goQSxmdW5jdGlvbihzKXtpPXMuY2FsbCh0LGksci5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxyLm5vcm1hbGl6ZSgpLGl9ZnVuY3Rpb24gdUEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBmdChBLGUsdCl7dS5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIix1LkVSUl9DQU5DRUxFRCxlLHQpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9bi5pbmhlcml0cyhmdCx1LHtfX0NBTkNFTF9fOiEwfSk7dmFyIHE9ZnQ7ZnVuY3Rpb24gZEEoQSxlLHQpe2xldCBJPXQuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyF0LnN0YXR1c3x8IUl8fEkodC5zdGF0dXMpP0EodCk6ZShuZXcgdSgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Quc3RhdHVzLFt1LkVSUl9CQURfUkVRVUVTVCx1LkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IodC5zdGF0dXMvMTAwKS00XSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIHVlKEEpe2xldCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBEcihBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLEk9bmV3IEFycmF5KEEpLHI9MCxpPTAsZztyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKEUpe2xldCBDPURhdGUubm93KCksbz1JW2ldO2d8fChnPUMpLHRbcl09RSxJW3JdPUM7bGV0IGE9aSxjPTA7Zm9yKDthIT09cjspYys9dFthKytdLGE9YSVBO2lmKHI9KHIrMSklQSxyPT09aSYmKGk9KGkrMSklQSksQy1nPGUpcmV0dXJuO2xldCBCPW8mJkMtbztyZXR1cm4gQj9NYXRoLnJvdW5kKGMqMWUzL0IpOnZvaWQgMH19dmFyIHV0PURyO2Z1bmN0aW9uIHlyKEEsZSl7bGV0IHQ9MCxJPTFlMy9lLHIsaSxnPShDLG89RGF0ZS5ub3coKSk9Pnt0PW8scj1udWxsLGkmJihjbGVhclRpbWVvdXQoaSksaT1udWxsKSxBKC4uLkMpfTtyZXR1cm5bKC4uLkMpPT57bGV0IG89RGF0ZS5ub3coKSxhPW8tdDthPj1JP2coQyxvKToocj1DLGl8fChpPXNldFRpbWVvdXQoKCk9PntpPW51bGwsZyhyKX0sSS1hKSkpfSwoKT0+ciYmZyhyKV19dmFyIGR0PXlyO3ZhciBpQT0oQSxlLHQ9Myk9PntsZXQgST0wLHI9dXQoNTAsMjUwKTtyZXR1cm4gZHQoaT0+e2xldCBnPWkubG9hZGVkLHM9aS5sZW5ndGhDb21wdXRhYmxlP2kudG90YWw6dm9pZCAwLEU9Zy1JLEM9cihFKSxvPWc8PXM7ST1nO2xldCBhPXtsb2FkZWQ6Zyx0b3RhbDpzLHByb2dyZXNzOnM/Zy9zOnZvaWQgMCxieXRlczpFLHJhdGU6Q3x8dm9pZCAwLGVzdGltYXRlZDpDJiZzJiZvPyhzLWcpL0M6dm9pZCAwLGV2ZW50OmksbGVuZ3RoQ29tcHV0YWJsZTpzIT1udWxsLFtlPyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKGEpfSx0KX0sZGU9KEEsZSk9PntsZXQgdD1BIT1udWxsO3JldHVybltJPT5lWzBdKHtsZW5ndGhDb21wdXRhYmxlOnQsdG90YWw6QSxsb2FkZWQ6SX0pLGVbMV1dfSxwZT1BPT4oLi4uZSk9Pm4uYXNhcCgoKT0+QSguLi5lKSk7dmFyIHB0PWguaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSxlKT0+dD0+KHQ9bmV3IFVSTCh0LGgub3JpZ2luKSxBLnByb3RvY29sPT09dC5wcm90b2NvbCYmQS5ob3N0PT09dC5ob3N0JiYoZXx8QS5wb3J0PT09dC5wb3J0KSkpKG5ldyBVUkwoaC5vcmlnaW4pLGgubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KGgubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgaHQ9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsZSx0LEkscixpKXtsZXQgZz1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpXTtuLmlzTnVtYmVyKHQpJiZnLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZSh0KS50b0dNVFN0cmluZygpKSxuLmlzU3RyaW5nKEkpJiZnLnB1c2goInBhdGg9IitJKSxuLmlzU3RyaW5nKHIpJiZnLnB1c2goImRvbWFpbj0iK3IpLGk9PT0hMCYmZy5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9Zy5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCBlPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIGU/ZGVjb2RlVVJJQ29tcG9uZW50KGVbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gaGUoQSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChBKX1mdW5jdGlvbiBEZShBLGUpe3JldHVybiBlP0EucmVwbGFjZSgvXC8/XC8kLywiIikrIi8iK2UucmVwbGFjZSgvXlwvKy8sIiIpOkF9ZnVuY3Rpb24gcEEoQSxlLHQpe2xldCBJPSFoZShlKTtyZXR1cm4gQSYmKEl8fHQ9PSExKT9EZShBLGUpOmV9dmFyIER0PUE9PkEgaW5zdGFuY2VvZiBtP3suLi5BfTpBO2Z1bmN0aW9uIEooQSxlKXtlPWV8fHt9O2xldCB0PXt9O2Z1bmN0aW9uIEkoQyxvLGEsYyl7cmV0dXJuIG4uaXNQbGFpbk9iamVjdChDKSYmbi5pc1BsYWluT2JqZWN0KG8pP24ubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6Y30sQyxvKTpuLmlzUGxhaW5PYmplY3Qobyk/bi5tZXJnZSh7fSxvKTpuLmlzQXJyYXkobyk/by5zbGljZSgpOm99ZnVuY3Rpb24gcihDLG8sYSxjKXtpZihuLmlzVW5kZWZpbmVkKG8pKXtpZighbi5pc1VuZGVmaW5lZChDKSlyZXR1cm4gSSh2b2lkIDAsQyxhLGMpfWVsc2UgcmV0dXJuIEkoQyxvLGEsYyl9ZnVuY3Rpb24gaShDLG8pe2lmKCFuLmlzVW5kZWZpbmVkKG8pKXJldHVybiBJKHZvaWQgMCxvKX1mdW5jdGlvbiBnKEMsbyl7aWYobi5pc1VuZGVmaW5lZChvKSl7aWYoIW4uaXNVbmRlZmluZWQoQykpcmV0dXJuIEkodm9pZCAwLEMpfWVsc2UgcmV0dXJuIEkodm9pZCAwLG8pfWZ1bmN0aW9uIHMoQyxvLGEpe2lmKGEgaW4gZSlyZXR1cm4gSShDLG8pO2lmKGEgaW4gQSlyZXR1cm4gSSh2b2lkIDAsQyl9bGV0IEU9e3VybDppLG1ldGhvZDppLGRhdGE6aSxiYXNlVVJMOmcsdHJhbnNmb3JtUmVxdWVzdDpnLHRyYW5zZm9ybVJlc3BvbnNlOmcscGFyYW1zU2VyaWFsaXplcjpnLHRpbWVvdXQ6Zyx0aW1lb3V0TWVzc2FnZTpnLHdpdGhDcmVkZW50aWFsczpnLHdpdGhYU1JGVG9rZW46ZyxhZGFwdGVyOmcscmVzcG9uc2VUeXBlOmcseHNyZkNvb2tpZU5hbWU6Zyx4c3JmSGVhZGVyTmFtZTpnLG9uVXBsb2FkUHJvZ3Jlc3M6ZyxvbkRvd25sb2FkUHJvZ3Jlc3M6ZyxkZWNvbXByZXNzOmcsbWF4Q29udGVudExlbmd0aDpnLG1heEJvZHlMZW5ndGg6ZyxiZWZvcmVSZWRpcmVjdDpnLHRyYW5zcG9ydDpnLGh0dHBBZ2VudDpnLGh0dHBzQWdlbnQ6ZyxjYW5jZWxUb2tlbjpnLHNvY2tldFBhdGg6ZyxyZXNwb25zZUVuY29kaW5nOmcsdmFsaWRhdGVTdGF0dXM6cyxoZWFkZXJzOihDLG8sYSk9PnIoRHQoQyksRHQobyksYSwhMCl9O3JldHVybiBuLmZvckVhY2goT2JqZWN0LmtleXMoey4uLkEsLi4uZX0pLGZ1bmN0aW9uKG8pe2xldCBhPUVbb118fHIsYz1hKEFbb10sZVtvXSxvKTtuLmlzVW5kZWZpbmVkKGMpJiZhIT09c3x8KHRbb109Yyl9KSx0fXZhciB4QT1BPT57bGV0IGU9Sih7fSxBKSx7ZGF0YTp0LHdpdGhYU1JGVG9rZW46SSx4c3JmSGVhZGVyTmFtZTpyLHhzcmZDb29raWVOYW1lOmksaGVhZGVyczpnLGF1dGg6c309ZTtpZihlLmhlYWRlcnM9Zz1tLmZyb20oZyksZS51cmw9bEEocEEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplcikscyYmZy5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKHMudXNlcm5hbWV8fCIiKSsiOiIrKHMucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHMucGFzc3dvcmQpKToiIikpKSxuLmlzRm9ybURhdGEodCkpe2lmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52fHxoLmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilnLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZihuLmlzRnVuY3Rpb24odC5nZXRIZWFkZXJzKSl7bGV0IEU9dC5nZXRIZWFkZXJzKCksQz1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07T2JqZWN0LmVudHJpZXMoRSkuZm9yRWFjaCgoW28sYV0pPT57Qy5pbmNsdWRlcyhvLnRvTG93ZXJDYXNlKCkpJiZnLnNldChvLGEpfSl9fWlmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52JiYoSSYmbi5pc0Z1bmN0aW9uKEkpJiYoST1JKGUpKSxJfHxJIT09ITEmJnB0KGUudXJsKSkpe2xldCBFPXImJmkmJmh0LnJlYWQoaSk7RSYmZy5zZXQocixFKX1yZXR1cm4gZX07dmFyIHdyPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIseXQ9d3ImJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LEkpe2xldCByPXhBKEEpLGk9ci5kYXRhLGc9bS5mcm9tKHIuaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpzLG9uVXBsb2FkUHJvZ3Jlc3M6RSxvbkRvd25sb2FkUHJvZ3Jlc3M6Q309cixvLGEsYyxCLFE7ZnVuY3Rpb24gZigpe0ImJkIoKSxRJiZRKCksci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShvKSxyLnNpZ25hbCYmci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfWxldCBsPW5ldyBYTUxIdHRwUmVxdWVzdDtsLm9wZW4oci5tZXRob2QudG9VcHBlckNhc2UoKSxyLnVybCwhMCksbC50aW1lb3V0PXIudGltZW91dDtmdW5jdGlvbiBwKCl7aWYoIWwpcmV0dXJuO2xldCBEPW0uZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGwmJmwuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLEw9e2RhdGE6IXN8fHM9PT0idGV4dCJ8fHM9PT0ianNvbiI/bC5yZXNwb25zZVRleHQ6bC5yZXNwb25zZSxzdGF0dXM6bC5zdGF0dXMsc3RhdHVzVGV4dDpsLnN0YXR1c1RleHQsaGVhZGVyczpELGNvbmZpZzpBLHJlcXVlc3Q6bH07ZEEoZnVuY3Rpb24oTil7dChOKSxmKCl9LGZ1bmN0aW9uKE4pe0koTiksZigpfSxMKSxsPW51bGx9Im9ubG9hZGVuZCJpbiBsP2wub25sb2FkZW5kPXA6bC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshbHx8bC5yZWFkeVN0YXRlIT09NHx8bC5zdGF0dXM9PT0wJiYhKGwucmVzcG9uc2VVUkwmJmwucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KHApfSxsLm9uYWJvcnQ9ZnVuY3Rpb24oKXtsJiYoSShuZXcgdSgiUmVxdWVzdCBhYm9ydGVkIix1LkVDT05OQUJPUlRFRCxBLGwpKSxsPW51bGwpfSxsLm9uZXJyb3I9ZnVuY3Rpb24oUil7bGV0IEw9UiYmUi5tZXNzYWdlP1IubWVzc2FnZToiTmV0d29yayBFcnJvciIsWj1uZXcgdShMLHUuRVJSX05FVFdPUkssQSxsKTtaLmV2ZW50PVJ8fG51bGwsSShaKSxsPW51bGx9LGwub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IFI9ci50aW1lb3V0PyJ0aW1lb3V0IG9mICIrci50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLEw9ci50cmFuc2l0aW9uYWx8fEtBO3IudGltZW91dEVycm9yTWVzc2FnZSYmKFI9ci50aW1lb3V0RXJyb3JNZXNzYWdlKSxJKG5ldyB1KFIsTC5jbGFyaWZ5VGltZW91dEVycm9yP3UuRVRJTUVET1VUOnUuRUNPTk5BQk9SVEVELEEsbCkpLGw9bnVsbH0saT09PXZvaWQgMCYmZy5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBsJiZuLmZvckVhY2goZy50b0pTT04oKSxmdW5jdGlvbihSLEwpe2wuc2V0UmVxdWVzdEhlYWRlcihMLFIpfSksbi5pc1VuZGVmaW5lZChyLndpdGhDcmVkZW50aWFscyl8fChsLndpdGhDcmVkZW50aWFscz0hIXIud2l0aENyZWRlbnRpYWxzKSxzJiZzIT09Impzb24iJiYobC5yZXNwb25zZVR5cGU9ci5yZXNwb25zZVR5cGUpLEMmJihbYyxRXT1pQShDLCEwKSxsLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixjKSksRSYmbC51cGxvYWQmJihbYSxCXT1pQShFKSxsLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsYSksbC51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsQikpLChyLmNhbmNlbFRva2VufHxyLnNpZ25hbCkmJihvPUQ9PntsJiYoSSghRHx8RC50eXBlP25ldyBxKG51bGwsQSxsKTpEKSxsLmFib3J0KCksbD1udWxsKX0sci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi5zdWJzY3JpYmUobyksci5zaWduYWwmJihyLnNpZ25hbC5hYm9ydGVkP28oKTpyLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbykpKTtsZXQgRj11ZShyLnVybCk7aWYoRiYmaC5wcm90b2NvbHMuaW5kZXhPZihGKT09PS0xKXtJKG5ldyB1KCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK0YrIjoiLHUuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59bC5zZW5kKGl8fG51bGwpfSl9O3ZhciBtcj0oQSxlKT0+e2xldHtsZW5ndGg6dH09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKGV8fHQpe2xldCBJPW5ldyBBYm9ydENvbnRyb2xsZXIscixpPWZ1bmN0aW9uKEMpe2lmKCFyKXtyPSEwLHMoKTtsZXQgbz1DIGluc3RhbmNlb2YgRXJyb3I/Qzp0aGlzLnJlYXNvbjtJLmFib3J0KG8gaW5zdGFuY2VvZiB1P286bmV3IHEobyBpbnN0YW5jZW9mIEVycm9yP28ubWVzc2FnZTpvKSl9fSxnPWUmJnNldFRpbWVvdXQoKCk9PntnPW51bGwsaShuZXcgdShgdGltZW91dCAke2V9IG9mIG1zIGV4Y2VlZGVkYCx1LkVUSU1FRE9VVCkpfSxlKSxzPSgpPT57QSYmKGcmJmNsZWFyVGltZW91dChnKSxnPW51bGwsQS5mb3JFYWNoKEM9PntDLnVuc3Vic2NyaWJlP0MudW5zdWJzY3JpYmUoaSk6Qy5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsaSl9KSxBPW51bGwpfTtBLmZvckVhY2goQz0+Qy5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsaSkpO2xldHtzaWduYWw6RX09STtyZXR1cm4gRS51bnN1YnNjcmliZT0oKT0+bi5hc2FwKHMpLEV9fSx3dD1tcjt2YXIgU3I9ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCBJPTAscjtmb3IoO0k8dDspcj1JK2UseWllbGQgQS5zbGljZShJLHIpLEk9cn0sRnI9YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mIFJyKEEpKXlpZWxkKlNyKHQsZSl9LFJyPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOkl9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgSX19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0seWU9KEEsZSx0LEkpPT57bGV0IHI9RnIoQSxlKSxpPTAsZyxzPUU9PntnfHwoZz0hMCxJJiZJKEUpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChFKXt0cnl7bGV0e2RvbmU6Qyx2YWx1ZTpvfT1hd2FpdCByLm5leHQoKTtpZihDKXtzKCksRS5jbG9zZSgpO3JldHVybn1sZXQgYT1vLmJ5dGVMZW5ndGg7aWYodCl7bGV0IGM9aSs9YTt0KGMpfUUuZW5xdWV1ZShuZXcgVWludDhBcnJheShvKSl9Y2F0Y2goQyl7dGhyb3cgcyhDKSxDfX0sY2FuY2VsKEUpe3JldHVybiBzKEUpLHIucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBtdD02NCoxMDI0LHtpc0Z1bmN0aW9uOlBBfT1uLGt0PSgoe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOnR9KT0+KHtmZXRjaDpBLFJlcXVlc3Q6ZSxSZXNwb25zZTp0fSkpKG4uZ2xvYmFsKSx7UmVhZGFibGVTdHJlYW06U3QsVGV4dEVuY29kZXI6RnR9PW4uZ2xvYmFsLFJ0PShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LGtyPUE9PntsZXR7ZmV0Y2g6ZSxSZXF1ZXN0OnQsUmVzcG9uc2U6SX09T2JqZWN0LmFzc2lnbih7fSxrdCxBKSxyPVBBKGUpLGk9UEEodCksZz1QQShJKTtpZighcilyZXR1cm4hMTtsZXQgcz1yJiZQQShTdCksRT1yJiYodHlwZW9mIEZ0PT0iZnVuY3Rpb24iPyhRPT5mPT5RLmVuY29kZShmKSkobmV3IEZ0KTphc3luYyBRPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgdChRKS5hcnJheUJ1ZmZlcigpKSksQz1pJiZzJiZSdCgoKT0+e2xldCBRPSExLGY9bmV3IHQoaC5vcmlnaW4se2JvZHk6bmV3IFN0LG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBRPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIFEmJiFmfSksbz1nJiZzJiZSdCgoKT0+bi5pc1JlYWRhYmxlU3RyZWFtKG5ldyBJKCIiKS5ib2R5KSksYT17c3RyZWFtOm8mJihRPT5RLmJvZHkpfTtyJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goUT0+eyFhW1FdJiYoYVtRXT0oZixsKT0+e2xldCBwPWYmJmZbUV07aWYocClyZXR1cm4gcC5jYWxsKGYpO3Rocm93IG5ldyB1KGBSZXNwb25zZSB0eXBlICcke1F9JyBpcyBub3Qgc3VwcG9ydGVkYCx1LkVSUl9OT1RfU1VQUE9SVCxsKX0pfSk7bGV0IGM9YXN5bmMgUT0+e2lmKFE9PW51bGwpcmV0dXJuIDA7aWYobi5pc0Jsb2IoUSkpcmV0dXJuIFEuc2l6ZTtpZihuLmlzU3BlY0NvbXBsaWFudEZvcm0oUSkpcmV0dXJuKGF3YWl0IG5ldyB0KGgub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6UX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYobi5pc0FycmF5QnVmZmVyVmlldyhRKXx8bi5pc0FycmF5QnVmZmVyKFEpKXJldHVybiBRLmJ5dGVMZW5ndGg7aWYobi5pc1VSTFNlYXJjaFBhcmFtcyhRKSYmKFE9USsiIiksbi5pc1N0cmluZyhRKSlyZXR1cm4oYXdhaXQgRShRKSkuYnl0ZUxlbmd0aH0sQj1hc3luYyhRLGYpPT57bGV0IGw9bi50b0Zpbml0ZU51bWJlcihRLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGw/P2MoZil9O3JldHVybiBhc3luYyBRPT57bGV0e3VybDpmLG1ldGhvZDpsLGRhdGE6cCxzaWduYWw6RixjYW5jZWxUb2tlbjpELHRpbWVvdXQ6UixvbkRvd25sb2FkUHJvZ3Jlc3M6TCxvblVwbG9hZFByb2dyZXNzOloscmVzcG9uc2VUeXBlOk4saGVhZGVyczokQSx3aXRoQ3JlZGVudGlhbHM6U0E9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6WWV9PXhBKFEpO049Tj8oTisiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IEZBPXd0KFtGLEQmJkQudG9BYm9ydFNpZ25hbCgpXSxSKSxzQT1udWxsLFY9RkEmJkZBLnVuc3Vic2NyaWJlJiYoKCk9PntGQS51bnN1YnNjcmliZSgpfSksTWU7dHJ5e2lmKFomJkMmJmwhPT0iZ2V0IiYmbCE9PSJoZWFkIiYmKE1lPWF3YWl0IEIoJEEscCkpIT09MCl7bGV0IFc9bmV3IHQoZix7bWV0aG9kOiJQT1NUIixib2R5OnAsZHVwbGV4OiJoYWxmIn0pLCQ7aWYobi5pc0Zvcm1EYXRhKHApJiYoJD1XLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJiRBLnNldENvbnRlbnRUeXBlKCQpLFcuYm9keSl7bGV0W0FlLFJBXT1kZShNZSxpQShwZShaKSkpO3A9eWUoVy5ib2R5LG10LEFlLFJBKX19bi5pc1N0cmluZyhTQSl8fChTQT1TQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgTT1pJiYiY3JlZGVudGlhbHMiaW4gdC5wcm90b3R5cGUsSGU9ey4uLlllLHNpZ25hbDpGQSxtZXRob2Q6bC50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6JEEubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpwLGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6TT9TQTp2b2lkIDB9O3NBPWkmJm5ldyB0KGYsSGUpO2xldCBQPWF3YWl0KGk/ZShzQSxZZSk6ZShmLEhlKSkscWU9byYmKE49PT0ic3RyZWFtInx8Tj09PSJyZXNwb25zZSIpO2lmKG8mJihMfHxxZSYmVikpe2xldCBXPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKEtlPT57V1tLZV09UFtLZV19KTtsZXQgJD1uLnRvRmluaXRlTnVtYmVyKFAuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtBZSxSQV09TCYmZGUoJCxpQShwZShMKSwhMCkpfHxbXTtQPW5ldyBJKHllKFAuYm9keSxtdCxBZSwoKT0+e1JBJiZSQSgpLFYmJlYoKX0pLFcpfU49Tnx8InRleHQiO2xldCBJST1hd2FpdCBhW24uZmluZEtleShhLE4pfHwidGV4dCJdKFAsUSk7cmV0dXJuIXFlJiZWJiZWKCksYXdhaXQgbmV3IFByb21pc2UoKFcsJCk9PntkQShXLCQse2RhdGE6SUksaGVhZGVyczptLmZyb20oUC5oZWFkZXJzKSxzdGF0dXM6UC5zdGF0dXMsc3RhdHVzVGV4dDpQLnN0YXR1c1RleHQsY29uZmlnOlEscmVxdWVzdDpzQX0pfSl9Y2F0Y2goTSl7dGhyb3cgViYmVigpLE0mJk0ubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KE0ubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxRLHNBKSx7Y2F1c2U6TS5jYXVzZXx8TX0pOnUuZnJvbShNLE0mJk0uY29kZSxRLHNBKX19fSxVcj1uZXcgTWFwLHdlPUE9PntsZXQgZT1uLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LGt0LEE/QS5lbnY6bnVsbCkse2ZldGNoOnQsUmVxdWVzdDpJLFJlc3BvbnNlOnJ9PWUsaT1bSSxyLHRdLGc9aS5sZW5ndGgscz1nLEUsQyxvPVVyO2Zvcig7cy0tOylFPWlbc10sQz1vLmdldChFKSxDPT09dm9pZCAwJiZvLnNldChFLEM9cz9uZXcgTWFwOmtyKGUpKSxvPUM7cmV0dXJuIEN9LEZvPXdlKCk7dmFyIG1lPXtodHRwOkhBLHhocjp5dCxmZXRjaDp7Z2V0OndlfX07bi5mb3JFYWNoKG1lLChBLGUpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6ZX0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTplfSl9fSk7dmFyIFV0PUE9PmAtICR7QX1gLEdyPUE9Pm4uaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxXQT17Z2V0QWRhcHRlcjooQSxlKT0+e0E9bi5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6dH09QSxJLHIsaT17fTtmb3IobGV0IGc9MDtnPHQ7ZysrKXtJPUFbZ107bGV0IHM7aWYocj1JLCFHcihJKSYmKHI9bWVbKHM9U3RyaW5nKEkpKS50b0xvd2VyQ2FzZSgpXSxyPT09dm9pZCAwKSl0aHJvdyBuZXcgdShgVW5rbm93biBhZGFwdGVyICcke3N9J2ApO2lmKHImJihuLmlzRnVuY3Rpb24ocil8fChyPXIuZ2V0KGUpKSkpYnJlYWs7aVtzfHwiIyIrZ109cn1pZighcil7bGV0IGc9T2JqZWN0LmVudHJpZXMoaSkubWFwKChbRSxDXSk9PmBhZGFwdGVyICR7RX0gYCsoQz09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLHM9dD9nLmxlbmd0aD4xP2BzaW5jZSA6CmArZy5tYXAoVXQpLmpvaW4oYApgKToiICIrVXQoZ1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK3MsIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiByfSxhZGFwdGVyczptZX07ZnVuY3Rpb24gU2UoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IHEobnVsbCxBKX1mdW5jdGlvbiBqQShBKXtyZXR1cm4gU2UoQSksQS5oZWFkZXJzPW0uZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1mQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksV0EuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fHJBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gU2UoQSksSS5kYXRhPWZBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1tLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gdUEoSSl8fChTZShBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPWZBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1tLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIHZBPSIxLjEyLjAiO3ZhciBaQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsZSk9PntaQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKGU8MT8ibiAiOiIgIikrQX19KTt2YXIgTnQ9e307WkEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKGUsdCxJKXtmdW5jdGlvbiByKGksZyl7cmV0dXJuIltBeGlvcyB2Iit2QSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK2krIiciK2crKEk/Ii4gIitJOiIiKX1yZXR1cm4oaSxnLHMpPT57aWYoZT09PSExKXRocm93IG5ldyB1KHIoZywiIGhhcyBiZWVuIHJlbW92ZWQiKyh0PyIgaW4gIit0OiIiKSksdS5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIHQmJiFOdFtnXSYmKE50W2ddPSEwLGNvbnNvbGUud2FybihyKGcsIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3QrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksZT9lKGksZyxzKTohMH19O1pBLnNwZWxsaW5nPWZ1bmN0aW9uKGUpe3JldHVybih0LEkpPT4oY29uc29sZS53YXJuKGAke0l9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7ZX1gKSwhMCl9O2Z1bmN0aW9uIExyKEEsZSx0KXtpZih0eXBlb2YgQSE9Im9iamVjdCIpdGhyb3cgbmV3IHUoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCBJPU9iamVjdC5rZXlzKEEpLHI9SS5sZW5ndGg7Zm9yKDtyLS0gPjA7KXtsZXQgaT1JW3JdLGc9ZVtpXTtpZihnKXtsZXQgcz1BW2ldLEU9cz09PXZvaWQgMHx8ZyhzLGksQSk7aWYoRSE9PSEwKXRocm93IG5ldyB1KCJvcHRpb24gIitpKyIgbXVzdCBiZSAiK0UsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYodCE9PSEwKXRocm93IG5ldyB1KCJVbmtub3duIG9wdGlvbiAiK2ksdS5FUlJfQkFEX09QVElPTil9fXZhciBoQT17YXNzZXJ0T3B0aW9uczpMcix2YWxpZGF0b3JzOlpBfTt2YXIgSz1oQS52YWxpZGF0b3JzLG9BPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuZGVmYXVsdHM9ZXx8e30sdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IENlLHJlc3BvbnNlOm5ldyBDZX19YXN5bmMgcmVxdWVzdChlLHQpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdChlLHQpfWNhdGNoKEkpe2lmKEkgaW5zdGFuY2VvZiBFcnJvcil7bGV0IHI9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uocik6cj1uZXcgRXJyb3I7bGV0IGk9ci5zdGFjaz9yLnN0YWNrLnJlcGxhY2UoL14uK1xuLywiIik6IiI7dHJ5e0kuc3RhY2s/aSYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChpLnJlcGxhY2UoL14uK1xuLitcbi8sIiIpKSYmKEkuc3RhY2srPWAKYCtpKTpJLnN0YWNrPWl9Y2F0Y2h7fX10aHJvdyBJfX1fcmVxdWVzdChlLHQpe3R5cGVvZiBlPT0ic3RyaW5nIj8odD10fHx7fSx0LnVybD1lKTp0PWV8fHt9LHQ9Sih0aGlzLmRlZmF1bHRzLHQpO2xldHt0cmFuc2l0aW9uYWw6SSxwYXJhbXNTZXJpYWxpemVyOnIsaGVhZGVyczppfT10O0khPT12b2lkIDAmJmhBLmFzc2VydE9wdGlvbnMoSSx7c2lsZW50SlNPTlBhcnNpbmc6Sy50cmFuc2l0aW9uYWwoSy5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpLLnRyYW5zaXRpb25hbChLLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6Sy50cmFuc2l0aW9uYWwoSy5ib29sZWFuKX0sITEpLHIhPW51bGwmJihuLmlzRnVuY3Rpb24ocik/dC5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6cn06aEEuYXNzZXJ0T3B0aW9ucyhyLHtlbmNvZGU6Sy5mdW5jdGlvbixzZXJpYWxpemU6Sy5mdW5jdGlvbn0sITApKSx0LmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD90LmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6dC5hbGxvd0Fic29sdXRlVXJscz0hMCksaEEuYXNzZXJ0T3B0aW9ucyh0LHtiYXNlVXJsOksuc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOksuc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLHQubWV0aG9kPSh0Lm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBnPWkmJm4ubWVyZ2UoaS5jb21tb24saVt0Lm1ldGhvZF0pO2kmJm4uZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxRPT57ZGVsZXRlIGlbUV19KSx0LmhlYWRlcnM9bS5jb25jYXQoZyxpKTtsZXQgcz1bXSxFPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihmKXt0eXBlb2YgZi5ydW5XaGVuPT0iZnVuY3Rpb24iJiZmLnJ1bldoZW4odCk9PT0hMXx8KEU9RSYmZi5zeW5jaHJvbm91cyxzLnVuc2hpZnQoZi5mdWxmaWxsZWQsZi5yZWplY3RlZCkpfSk7bGV0IEM9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihmKXtDLnB1c2goZi5mdWxmaWxsZWQsZi5yZWplY3RlZCl9KTtsZXQgbyxhPTAsYztpZighRSl7bGV0IFE9W2pBLmJpbmQodGhpcyksdm9pZCAwXTtmb3IoUS51bnNoaWZ0KC4uLnMpLFEucHVzaCguLi5DKSxjPVEubGVuZ3RoLG89UHJvbWlzZS5yZXNvbHZlKHQpO2E8Yzspbz1vLnRoZW4oUVthKytdLFFbYSsrXSk7cmV0dXJuIG99Yz1zLmxlbmd0aDtsZXQgQj10O2ZvcihhPTA7YTxjOyl7bGV0IFE9c1thKytdLGY9c1thKytdO3RyeXtCPVEoQil9Y2F0Y2gobCl7Zi5jYWxsKHRoaXMsbCk7YnJlYWt9fXRyeXtvPWpBLmNhbGwodGhpcyxCKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKGE9MCxjPUMubGVuZ3RoO2E8Yzspbz1vLnRoZW4oQ1thKytdLENbYSsrXSk7cmV0dXJuIG99Z2V0VXJpKGUpe2U9Sih0aGlzLmRlZmF1bHRzLGUpO2xldCB0PXBBKGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gbEEodCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpfX07bi5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbihlKXtvQS5wcm90b3R5cGVbZV09ZnVuY3Rpb24odCxJKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KEooSXx8e30se21ldGhvZDplLHVybDp0LGRhdGE6KEl8fHt9KS5kYXRhfSkpfX0pO24uZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoSSl7cmV0dXJuIGZ1bmN0aW9uKGksZyxzKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KEooc3x8e30se21ldGhvZDplLGhlYWRlcnM6ST97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6aSxkYXRhOmd9KSl9fW9BLnByb3RvdHlwZVtlXT10KCksb0EucHJvdG90eXBlW2UrIkZvcm0iXT10KCEwKX0pO3ZhciBEQT1vQTt2YXIgRmU9Y2xhc3MgQXtjb25zdHJ1Y3RvcihlKXtpZih0eXBlb2YgZSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkpe3Q9aX0pO2xldCBJPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4ocj0+e2lmKCFJLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBpPUkuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtpLS0gPjA7KUkuX2xpc3RlbmVyc1tpXShyKTtJLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPXI9PntsZXQgaSxnPW5ldyBQcm9taXNlKHM9PntJLnN1YnNjcmliZShzKSxpPXN9KS50aGVuKHIpO3JldHVybiBnLmNhbmNlbD1mdW5jdGlvbigpe0kudW5zdWJzY3JpYmUoaSl9LGd9LGUoZnVuY3Rpb24oaSxnLHMpe0kucmVhc29ufHwoSS5yZWFzb249bmV3IHEoaSxnLHMpLHQoSS5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUoZSl7aWYodGhpcy5yZWFzb24pe2UodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2goZSk6dGhpcy5fbGlzdGVuZXJzPVtlXX11bnN1YnNjcmliZShlKXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgdD10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZihlKTt0IT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UodCwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IGU9bmV3IEFib3J0Q29udHJvbGxlcix0PUk9PntlLmFib3J0KEkpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUodCksZS5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUodCksZS5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCBlO3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihyKXtlPXJ9KSxjYW5jZWw6ZX19fSxHdD1GZTtmdW5jdGlvbiBSZShBKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEEuYXBwbHkobnVsbCx0KX19ZnVuY3Rpb24ga2UoQSl7cmV0dXJuIG4uaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIFVlPXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhVZSkuZm9yRWFjaCgoW0EsZV0pPT57VWVbZV09QX0pO3ZhciBMdD1VZTtmdW5jdGlvbiBidChBKXtsZXQgZT1uZXcgREEoQSksdD1DQShEQS5wcm90b3R5cGUucmVxdWVzdCxlKTtyZXR1cm4gbi5leHRlbmQodCxEQS5wcm90b3R5cGUsZSx7YWxsT3duS2V5czohMH0pLG4uZXh0ZW5kKHQsZSxudWxsLHthbGxPd25LZXlzOiEwfSksdC5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIGJ0KEooQSxyKSl9LHR9dmFyIHk9YnQockEpO3kuQXhpb3M9REE7eS5DYW5jZWxlZEVycm9yPXE7eS5DYW5jZWxUb2tlbj1HdDt5LmlzQ2FuY2VsPXVBO3kuVkVSU0lPTj12QTt5LnRvRm9ybURhdGE9ajt5LkF4aW9zRXJyb3I9dTt5LkNhbmNlbD15LkNhbmNlbGVkRXJyb3I7eS5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUpfTt5LnNwcmVhZD1SZTt5LmlzQXhpb3NFcnJvcj1rZTt5Lm1lcmdlQ29uZmlnPUo7eS5BeGlvc0hlYWRlcnM9bTt5LmZvcm1Ub0pTT049QT0+T0Eobi5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTt5LmdldEFkYXB0ZXI9V0EuZ2V0QWRhcHRlcjt5Lkh0dHBTdGF0dXNDb2RlPUx0O3kuZGVmYXVsdD15O3ZhciBuQT15O3ZhcntBeGlvczptbixBeGlvc0Vycm9yOlNuLENhbmNlbGVkRXJyb3I6Rm4saXNDYW5jZWw6Um4sQ2FuY2VsVG9rZW46a24sVkVSU0lPTjpVbixhbGw6Tm4sQ2FuY2VsOkduLGlzQXhpb3NFcnJvcjpMbixzcHJlYWQ6Ym4sdG9Gb3JtRGF0YTpKbixBeGlvc0hlYWRlcnM6WW4sSHR0cFN0YXR1c0NvZGU6TW4sZm9ybVRvSlNPTjpIbixnZXRBZGFwdGVyOnFuLG1lcmdlQ29uZmlnOktufT1uQTthc3luYyBmdW5jdGlvbiBicihBLGUpe2xldCB0PUEsST1udWxsO2lmKHQ9PW51bGwpST1uZXcgV29ya2VyKG5ldyBVUkwoIi4vd2ViLXdvcmtlcnMvaXRrLXdhc20tcGlwZWxpbmUud29ya2VyLmpzIixpbXBvcnQubWV0YS51cmwpLHt0eXBlOiJtb2R1bGUifSk7ZWxzZSBpZih0LnN0YXJ0c1dpdGgoImh0dHAiKSl7bGV0IHI9YXdhaXQgbkEuZ2V0KHQse3Jlc3BvbnNlVHlwZToiYmxvYiIscGFyYW1zOmV9KSxpPVVSTC5jcmVhdGVPYmplY3RVUkwoci5kYXRhKTtJPW5ldyBXb3JrZXIoaSx7dHlwZToibW9kdWxlIn0pfWVsc2UgST1uZXcgV29ya2VyKHQse3R5cGU6Im1vZHVsZSJ9KTtyZXR1cm4gSX12YXIgeUE9YnI7ZnVuY3Rpb24gSnQoQSl7bGV0IGU9Z2UoQSksdD1BO3JldHVybiB0LnRlcm1pbmF0ZWQ9ITEsdC53b3JrZXJQcm94eT1lLHQub3JpZ2luYWxUZXJtaW5hdGU9dC50ZXJtaW5hdGUsdC50ZXJtaW5hdGU9KCk9Pnt0LnRlcm1pbmF0ZWQ9ITAsdC53b3JrZXJQcm94eVtyZV0oKSx0Lm9yaWdpbmFsVGVybWluYXRlKCl9LHt3b3JrZXJQcm94eTplLHdvcmtlcjp0fX1hc3luYyBmdW5jdGlvbiBKcihBLGUsdCl7bGV0IEk7aWYoQSE9bnVsbCl7bGV0IGk9QTtyZXR1cm4gaS53b3JrZXJQcm94eSE9PXZvaWQgMD8oST1pLndvcmtlclByb3h5LHt3b3JrZXJQcm94eTpJLHdvcmtlcjppfSk6SnQoQSl9bGV0IHI9YXdhaXQgeUEoZSx0KTtyZXR1cm4gSnQocil9dmFyIFl0PUpyO3ZhciB3QSx4LEdlLE5lPXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7R2U9bmV3IFVpbnQ4QXJyYXkoeC5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LFZBPWNsYXNze2luaXQoKXtyZXR1cm4gd0F8fCh0eXBlb2YgZmV0Y2g8InUiP3dBPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIrTXQpLnRoZW4oZT0+ZS5hcnJheUJ1ZmZlcigpKS50aGVuKGU9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGUsTmUpKS50aGVuKHRoaXMuX2luaXQpOndBPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKE10LCJiYXNlNjQiKSxOZSkudGhlbih0aGlzLl9pbml0KSx3QSl9X2luaXQoZSl7eD1lLmluc3RhbmNlLE5lLmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZShlLHQ9MCl7aWYoIXgpdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IEk9ZS5ieXRlTGVuZ3RoLHI9eC5leHBvcnRzLm1hbGxvYyhJKTtHZS5zZXQoZSxyKSx0PXR8fE51bWJlcih4LmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShyLEkpKTtsZXQgaT14LmV4cG9ydHMubWFsbG9jKHQpLGc9eC5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhpLHQscixJKSxzPUdlLnNsaWNlKGksaStnKTtyZXR1cm4geC5leHBvcnRzLmZyZWUocikseC5leHBvcnRzLmZyZWUoaSksc319LE10PSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIEh0PW5ldyBWQSxxdD0hMTthc3luYyBmdW5jdGlvbiBZcihBLGUsdCl7bGV0IEk9InVua25vd24iO3R5cGVvZiBBIT0ic3RyaW5nIj9JPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9JPUE6ST10eXBlb2YgZTwidSI/YCR7ZX0vJHtBfWA6QSxJLmVuZHNXaXRoKCIuanMiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC0zKSksSS5lbmRzV2l0aCgiLndhc20iKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC01KSksSS5lbmRzV2l0aCgiLndhc20uenN0IikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtOSkpO2xldCByPWAke0l9Lndhc21gLGk9YXdhaXQgbkEuZ2V0KGAke3J9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczp0fSk7cXR8fChhd2FpdCBIdC5pbml0KCkscXQ9ITApO2xldCBzPUh0LmRlY29kZShuZXcgVWludDhBcnJheShpLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtJfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5OnN9KX12YXIgS3Q9WXI7dmFyIE90PWFzeW5jKCk9PldlYkFzc2VtYmx5LnZhbGlkYXRlKG5ldyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMCwxLDUsMSw5NiwwLDEsMTIzLDMsMiwxLDAsMTAsMTAsMSw4LDAsNjUsMCwyNTMsMTUsMjUzLDk4LDExXSkpO3ZhciBQdD10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixUdD1uZXcgVGV4dEVuY29kZXIseHQ9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIE1yKEEsZSl7bGV0IHQ9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0sST1BLmZzX29wZW4oZSx0LmZsYWdzKSxpPUEuZnNfc3RhdChlKS5zaXplLGc9bnVsbDtQdD9nPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihpKTpnPW5ldyBBcnJheUJ1ZmZlcihpKTtsZXQgcz1uZXcgVWludDhBcnJheShnKTtyZXR1cm4gQS5mc19yZWFkKEkscywwLGksMCksQS5mc19jbG9zZShJKSxzfWZ1bmN0aW9uIFd0KEEsZSx0KXtsZXQgST1udWxsO1B0P0k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKHQpOkk9bmV3IEFycmF5QnVmZmVyKHQpO2xldCByPW5ldyBVaW50OEFycmF5KEkpLGk9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGUsdCk7cmV0dXJuIHIuc2V0KGkpLHJ9ZnVuY3Rpb24gdyhBLGUsdCxJKXtsZXQgcj0wO3JldHVybiBlIT09bnVsbCYmKHI9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxJLGUuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpLHIpKSxyfWZ1bmN0aW9uIHYoQSxlLHQpe2xldCBJPUpTT04uc3RyaW5naWZ5KGUpLHI9QS5sZW5ndGhCeXRlc1VURjgoSSkrMSxpPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxyXSk7QS5zdHJpbmdUb1VURjgoSSxpLHIpfWZ1bmN0aW9uIFMoQSxlLHQsSSl7bGV0IHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksaT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKSxnPVd0KEEscixpKTtyZXR1cm4gSChJLGcuYnVmZmVyKX1mdW5jdGlvbiBtQShBLGUpe2xldCB0PUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsZV0pLEk9QS5VVEY4VG9TdHJpbmcodCk7cmV0dXJuIEpTT04ucGFyc2UoSSl9ZnVuY3Rpb24gSHIoQSxlLHQsSSl7SSE9bnVsbCYmSS5sZW5ndGg+MCYmSS5mb3JFYWNoKGZ1bmN0aW9uKEMsbyl7c3dpdGNoKEMudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBhPVR0LmVuY29kZShDLmRhdGEuZGF0YSksYz13KEEsYSxvLDApLEI9e3NpemU6YS5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gfTt2KEEsQixvKTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBhPVR0LmVuY29kZShKU09OLnN0cmluZ2lmeShDLmRhdGEpKSxjPXcoQSxhLG8sMCksQj17c2l6ZTphLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWB9O3YoQSxCLG8pO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBhPUMuZGF0YS5kYXRhLGM9dyhBLGEsbywwKSxCPXtzaXplOmEuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YH07dihBLEIsbyk7YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShDLmRhdGEucGF0aCxDLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKEMuZGF0YS5wYXRoLEMuZGF0YS5kYXRhKTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBhPUMuZGF0YSxjPXcoQSxhLmRhdGEsbywwKSxCPXcoQSxhLmRpcmVjdGlvbixvLDEpLFE9dHlwZW9mIGEubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oYS5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGY9e2ltYWdlVHlwZTphLmltYWdlVHlwZSxuYW1lOmEubmFtZSxvcmlnaW46YS5vcmlnaW4sc3BhY2luZzphLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLHNpemU6YS5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsbWV0YWRhdGE6UX07dihBLGYsbyk7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBhPUMuZGF0YSxjPXcoQSxhLnBvaW50cyxvLDApLEI9dyhBLGEuY2VsbHMsbywxKSxRPXcoQSxhLnBvaW50RGF0YSxvLDIpLGY9dyhBLGEuY2VsbERhdGEsbywzKSxsPXttZXNoVHlwZTphLm1lc2hUeXBlLG5hbWU6YS5uYW1lLG51bWJlck9mUG9pbnRzOmEubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mQ2VsbHM6YS5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLGNlbGxCdWZmZXJTaXplOmEuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczphLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczphLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07dihBLGwsbyk7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgYT1DLmRhdGEsYz13KEEsYS5wb2ludHMsbywwKSxCPXcoQSxhLnBvaW50RGF0YSxvLDEpLFE9e3BvaW50U2V0VHlwZTphLnBvaW50U2V0VHlwZSxuYW1lOmEubmFtZSxudW1iZXJPZlBvaW50czphLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmEubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWB9O3YoQSxRLG8pO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgYT1DLmRhdGEsYz1bXSxCPTA7YS5mb3JFYWNoKFE9PntsZXQgZj0iIixsPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEuZml4ZWRQYXJhbWV0ZXJzLG8sQil9YCxCKz0xLGw9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5wYXJhbWV0ZXJzLG8sQil9YCxCKz0xKTtsZXQgcD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpsLGZpeGVkUGFyYW1ldGVyczpmfTtjLnB1c2gocCl9KSx2KEEsYyxvKTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBhPUMuZGF0YSxjPXcoQSxhLnBvaW50cyxvLDApLEI9dyhBLGEudmVydGljZXMsbywxKSxRPXcoQSxhLmxpbmVzLG8sMiksZj13KEEsYS5wb2x5Z29ucyxvLDMpLGw9dyhBLGEudHJpYW5nbGVTdHJpcHMsbyw0KSxwPXcoQSxhLnBvaW50RGF0YSxvLDUpLEY9dyhBLGEucG9pbnREYXRhLG8sNiksRD17cG9seURhdGFUeXBlOmEucG9seURhdGFUeXBlLG5hbWU6YS5uYW1lLG51bWJlck9mUG9pbnRzOmEubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLHZlcnRpY2VzQnVmZmVyU2l6ZTphLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxsaW5lc0J1ZmZlclNpemU6YS5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOmEucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTphLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmEubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtwfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOmEubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Rn1gfTt2KEEsRCxvKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgcj1BLnN0YWNrU2F2ZSgpLGk9MDt0cnl7aT1BLmNhbGxNYWluKGUuc2xpY2UoKSl9Y2F0Y2goQyl7dGhyb3cgdHlwZW9mIEM9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoQykpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksQ31maW5hbGx5e0Euc3RhY2tSZXN0b3JlKHIpfWxldCBnPUEuZ2V0TW9kdWxlU3Rkb3V0KCkscz1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIHQhPW51bGwmJnQubGVuZ3RoPjAmJmk9PT0wJiZ0LmZvckVhY2goZnVuY3Rpb24oQyxvKXtsZXQgYT1udWxsO3N3aXRjaChDLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxvLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG8sMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEIsUSk7YT17ZGF0YTp4dC5kZWNvZGUoZil9O2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxvLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixCLFEpO2E9SlNPTi5wYXJzZSh4dC5kZWNvZGUoZikpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG8sMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbywwXSk7YT17ZGF0YTpXdChBLEIsUSl9O2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7YT17cGF0aDpDLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoQy5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7YT17cGF0aDpDLmRhdGEucGF0aCxkYXRhOk1yKEEsQy5kYXRhLnBhdGgpfTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBCPW1BKEEsbyk7Qi5kYXRhPVMoQSxvLDAsQi5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksQi5kaXJlY3Rpb249UyhBLG8sMSxYLkZsb2F0NjQpLEIubWV0YWRhdGE9bmV3IE1hcChCLm1ldGFkYXRhKSxhPUI7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBCPW1BKEEsbyk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPVMoQSxvLDAsQi5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkIucG9pbnRzPUgoQi5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mQ2VsbHM+MD9CLmNlbGxzPVMoQSxvLDEsQi5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6Qi5jZWxscz1IKEIubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1TKEEsbywyLEIubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkIucG9pbnREYXRhPUgoQi5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qi5jZWxsRGF0YT1TKEEsbywzLEIubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5jZWxsRGF0YT1IKEIubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGE9QjticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBCPW1BKEEsbyk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPVMoQSxvLDAsQi5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpCLnBvaW50cz1IKEIucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPVMoQSxvLDEsQi5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkIucG9pbnREYXRhPUgoQi5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhPUI7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBCPW1BKEEsbyksUT0wO0IuZm9yRWFjaCgoZixsKT0+e2YudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihCW2xdLmZpeGVkUGFyYW1ldGVycz1TKEEsbyxRLFguRmxvYXQ2NCkpLFErPTEsZi5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKEJbbF0ucGFyYW1ldGVycz1TKEEsbyxRLGYudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxhPUI7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgQj1tQShBLG8pO0IubnVtYmVyT2ZQb2ludHM+MD9CLnBvaW50cz1TKEEsbywwLFguRmxvYXQzMik6Qi5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxCLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP0IudmVydGljZXM9UyhBLG8sMSxrLlVJbnQzMik6Qi52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksQi5saW5lc0J1ZmZlclNpemU+MD9CLmxpbmVzPVMoQSxvLDIsay5VSW50MzIpOkIubGluZXM9bmV3IFVpbnQzMkFycmF5LEIucG9seWdvbnNCdWZmZXJTaXplPjA/Qi5wb2x5Z29ucz1TKEEsbywzLGsuVUludDMyKTpCLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxCLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP0IudHJpYW5nbGVTdHJpcHM9UyhBLG8sNCxrLlVJbnQzMik6Qi50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9UyhBLG8sNSxCLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SChCLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qi5jZWxsRGF0YT1TKEEsbyw2LEIucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkIuY2VsbERhdGE9SChCLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYT1CO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IGM9e3R5cGU6Qy50eXBlLGRhdGE6YX07RS5wdXNoKGMpfSkse3JldHVyblZhbHVlOmksc3Rkb3V0Omcsc3RkZXJyOnMsb3V0cHV0czpFfX12YXIganQ9SHI7dmFyIHFyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBLcihBLGUpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IHQ9W107Zm9yKGxldCBJPTA7STxBLmxlbmd0aDtJKyspe2xldCByPU9yKEFbSV0sZSk7ciE9PW51bGwmJnQucHVzaChyKX1yZXR1cm4gdH1mdW5jdGlvbiBPcihBLGUpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IHQ9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/dD1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJih0PUEpLHFyJiZ0IGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDplP3Q6dC5zbGljZSgwKX12YXIgdnQ9S3I7ZnVuY3Rpb24gVHIoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIFp0PVRyO2Z1bmN0aW9uIHhyKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBWdD14cjtmdW5jdGlvbiBQcihBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgWHQ9UHI7dmFyIFdyO2Z1bmN0aW9uIFhBKCl7cmV0dXJuIFdyfXZhciBqcjtmdW5jdGlvbiB6dCgpe3JldHVybiBqcn12YXIgdnI7ZnVuY3Rpb24gekEoKXtyZXR1cm4gdnJ9dmFyIExlPW5ldyBNYXA7ZnVuY3Rpb24gWnIoKXtsZXQgQT16QSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW51bGwpLEF9ZnVuY3Rpb24gX3QoKXtsZXQgQT1YQSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW5ldyBVUkwoIi9waXBlbGluZXMiLGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbikuaHJlZiksQX1mdW5jdGlvbiBfQSgpe2xldCBBPXp0KCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9e30pLEF9YXN5bmMgZnVuY3Rpb24gVnIoQSxlLHQpe2xldCBJPUEscj1BO2lmKHR5cGVvZiBBIT0ic3RyaW5nIiYmKEk9bmV3IFVSTChBLmhyZWYpLHI9SS5ocmVmKSxMZS5oYXMocikpcmV0dXJuIExlLmdldChyKTt7bGV0IGk9YXdhaXQgS3QoQSxlPy50b1N0cmluZygpPz9fdCgpLHQ/P19BKCkpO3JldHVybiBMZS5zZXQocixpKSxpfX1hc3luYyBmdW5jdGlvbiBYcihBLGUsdCxJLHIpe2lmKCFhd2FpdCBPdCgpKXtsZXQgbD0iV2ViQXNzZW1ibHkgU0lNRCBzdXBwb3J0IGlzIHJlcXVpcmVkIC0tIHBsZWFzZSB1cGRhdGUgeW91ciBicm93c2VyLiI7dGhyb3cgYWxlcnQobCksbmV3IEVycm9yKGwpfWxldCBpPXI/LndlYldvcmtlcj8/bnVsbDtpZihpPT09ITEpe2xldCBsPWF3YWl0IFZyKEEudG9TdHJpbmcoKSxyPy5waXBlbGluZUJhc2VVcmwscj8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7cmV0dXJuIGp0KGwsZSx0LEkpfWxldCBnPWkscz1yPy5waXBlbGluZVdvcmtlclVybD8/WnIoKSxFPXR5cGVvZiBzIT0ic3RyaW5nIiYmdHlwZW9mIHM/LmhyZWY8InUiP3MuaHJlZjpzLHt3b3JrZXJQcm94eTpDLHdvcmtlcjpvfT1hd2FpdCBZdChnLEUscj8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/X0EoKSk7Zz1vO2xldCBhPVtdO0khPW51bGwmJkkubGVuZ3RoPjAmJkkuZm9yRWFjaChmdW5jdGlvbihsKXtpZihsLnR5cGU9PT1kLkJpbmFyeVN0cmVhbSl7bGV0IHA9bC5kYXRhLmRhdGE7YS5wdXNoKHApfWVsc2UgaWYobC50eXBlPT09ZC5CaW5hcnlGaWxlKXtsZXQgcD1sLmRhdGEuZGF0YTthLnB1c2gocCl9ZWxzZSBpZihsLnR5cGU9PT1kLkltYWdlKXtsZXQgcD1sLmRhdGE7cC5kYXRhIT09bnVsbCYmYS5wdXNoKC4uLlp0KHApKX1lbHNlIGlmKGwudHlwZT09PWQuTWVzaCl7bGV0IHA9bC5kYXRhO2EucHVzaCguLi5WdChwKSl9ZWxzZSBpZihsLnR5cGU9PT1kLlBvbHlEYXRhKXtsZXQgcD1sLmRhdGE7YS5wdXNoKC4uLlh0KHApKX19KTtsZXQgYz1yPy5waXBlbGluZUJhc2VVcmw/P190KCksQj10eXBlb2YgYyE9InN0cmluZyImJnR5cGVvZiBjPy5ocmVmPCJ1Ij9jLmhyZWY6YyxRPUkhPW51bGw/aWUoSSx2dChhLHI/Lm5vQ29weSkpOm51bGwsZj1hd2FpdCBDLnJ1blBpcGVsaW5lKEEudG9TdHJpbmcoKSxCLGUsdCxRLHI/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P19BKCkpO3JldHVybntyZXR1cm5WYWx1ZTpmLnJldHVyblZhbHVlLHN0ZG91dDpmLnN0ZG91dCxzdGRlcnI6Zi5zdGRlcnIsb3V0cHV0czpmLm91dHB1dHMsd2ViV29ya2VyOmd9fXZhciBZPVhyO3ZhciB6cj1udWxsO2Z1bmN0aW9uICR0KCl7cmV0dXJuIHpyfXZhciBiZSxfcj1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AaXRrLXdhc20vZG93bnNhbXBsZUAke2VlfS9kaXN0L3BpcGVsaW5lc2A7ZnVuY3Rpb24gR2EoQSl7YmU9QX1mdW5jdGlvbiBPKCl7aWYodHlwZW9mIGJlPCJ1IilyZXR1cm4gYmU7bGV0IEE9WEEoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6X3J9dmFyIEplLCRyPW51bGw7ZnVuY3Rpb24gQUkoQSl7SmU9QX1mdW5jdGlvbiBHKCl7aWYodHlwZW9mIEplPCJ1IilyZXR1cm4gSmU7bGV0IEE9ekEoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6JHJ9dmFyIGFBPW51bGw7YXN5bmMgZnVuY3Rpb24gZUkoKXtsZXQgQT1HKCksZT10eXBlb2YgQSE9InN0cmluZyImJnR5cGVvZiBBPy5ocmVmPCJ1Ij9BLmhyZWY6QTthQT1hd2FpdCB5QShlKX1mdW5jdGlvbiBxYShBKXthQT1BfWFzeW5jIGZ1bmN0aW9uIFQoKXtpZihhQSE9PW51bGwpcmV0dXJuIGFBLnRlcm1pbmF0ZWQmJmF3YWl0IGVJKCksYUE7bGV0IEE9JHQoKTtyZXR1cm4gQSE9PW51bGw/QTooYXdhaXQgZUkoKSxhQSl9YXN5bmMgZnVuY3Rpb24gQWcoQSxlPXtzaHJpbmtGYWN0b3JzOlsyLDJdfSl7bGV0IHQ9W3t0eXBlOmQuSW1hZ2V9XSxJPVt7dHlwZTpkLkltYWdlLGRhdGE6QX1dLHI9W107aWYoci5wdXNoKCIwIiksci5wdXNoKCIwIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuc2hyaW5rRmFjdG9ycyl7aWYoZS5zaHJpbmtGYWN0b3JzLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcignInNocmluay1mYWN0b3JzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMicpO3IucHVzaCgiLS1zaHJpbmstZmFjdG9ycyIpLGF3YWl0IFByb21pc2UuYWxsKGUuc2hyaW5rRmFjdG9ycy5tYXAoYXN5bmMgUT0+e3IucHVzaChRLnRvU3RyaW5nKCkpfSkpfWUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgcz0iZG93bnNhbXBsZS1iaW4tc2hyaW5rIixFPWU/LndlYldvcmtlcjtFPT09dm9pZCAwJiYoRT1hd2FpdCBUKCkpO2xldHt3ZWJXb3JrZXI6QyxyZXR1cm5WYWx1ZTpvLHN0ZGVycjphLG91dHB1dHM6Y309YXdhaXQgWShzLHIsdCxJLHtwaXBlbGluZUJhc2VVcmw6TygpLHBpcGVsaW5lV29ya2VyVXJsOkcoKSx3ZWJXb3JrZXI6RSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYobyE9PTAmJmEhPT0iIil0aHJvdyBuZXcgRXJyb3IoYSk7cmV0dXJue3dlYldvcmtlcjpDLGRvd25zYW1wbGVkOmNbMF0/LmRhdGF9fXZhciBlZz1BZzthc3luYyBmdW5jdGlvbiB0ZyhBLGU9e3Nocmlua0ZhY3RvcnM6WzIsMl19KXtsZXQgdD1be3R5cGU6ZC5JbWFnZX1dLEk9W3t0eXBlOmQuSW1hZ2UsZGF0YTpBfV0scj1bXTtpZihyLnB1c2goIjAiKSxyLnB1c2goIjAiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5zaHJpbmtGYWN0b3JzKXtpZihlLnNocmlua0ZhY3RvcnMubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCcic2hyaW5rLWZhY3RvcnMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAyJyk7ci5wdXNoKCItLXNocmluay1mYWN0b3JzIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5zaHJpbmtGYWN0b3JzLm1hcChhc3luYyBRPT57ci5wdXNoKFEudG9TdHJpbmcoKSl9KSl9aWYoZS5jcm9wUmFkaXVzKXtpZihlLmNyb3BSYWRpdXMubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCciY3JvcC1yYWRpdXMiIG9wdGlvbiBtdXN0IGhhdmUgYSBsZW5ndGggPiAyJyk7ci5wdXNoKCItLWNyb3AtcmFkaXVzIiksYXdhaXQgUHJvbWlzZS5hbGwoZS5jcm9wUmFkaXVzLm1hcChhc3luYyBRPT57ci5wdXNoKFEudG9TdHJpbmcoKSl9KSl9bGV0IHM9ImRvd25zYW1wbGUtbGFiZWwtaW1hZ2UiLEU9ZT8ud2ViV29ya2VyO0U9PT12b2lkIDAmJihFPWF3YWl0IFQoKSk7bGV0e3dlYldvcmtlcjpDLHJldHVyblZhbHVlOm8sc3RkZXJyOmEsb3V0cHV0czpjfT1hd2FpdCBZKHMscix0LEkse3BpcGVsaW5lQmFzZVVybDpPKCkscGlwZWxpbmVXb3JrZXJVcmw6RygpLHdlYldvcmtlcjpFLG5vQ29weTplPy5ub0NvcHl9KTtpZihvIT09MCYmYSE9PSIiKXRocm93IG5ldyBFcnJvcihhKTtyZXR1cm57d2ViV29ya2VyOkMsZG93bnNhbXBsZWQ6Y1swXT8uZGF0YX19dmFyIElnPXRnO2FzeW5jIGZ1bmN0aW9uIHJnKEE9e3Nocmlua0ZhY3RvcnM6WzIsMl19KXtsZXQgZT1be3R5cGU6ZC5Kc29uQ29tcGF0aWJsZX1dLHQ9W10sST1bXTtpZihJLnB1c2goIjAiKSxJLnB1c2goIi0tbWVtb3J5LWlvIiksdHlwZW9mIEEuc2hyaW5rRmFjdG9yczwidSIpe2lmKEEuc2hyaW5rRmFjdG9ycy5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJzaHJpbmstZmFjdG9ycyIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tc2hyaW5rLWZhY3RvcnMiKSxhd2FpdCBQcm9taXNlLmFsbChBLnNocmlua0ZhY3RvcnMubWFwKGFzeW5jIGM9PntJLnB1c2goYy50b1N0cmluZygpKX0pKX1sZXQgaT0iZG93bnNhbXBsZS1zaWdtYSIsZz1BPy53ZWJXb3JrZXI7Zz09PXZvaWQgMCYmKGc9YXdhaXQgVCgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6RSxzdGRlcnI6QyxvdXRwdXRzOm99PWF3YWl0IFkoaSxJLGUsdCx7cGlwZWxpbmVCYXNlVXJsOk8oKSxwaXBlbGluZVdvcmtlclVybDpHKCksd2ViV29ya2VyOmcsbm9Db3B5OkE/Lm5vQ29weX0pO2lmKEUhPT0wJiZDIT09IiIpdGhyb3cgbmV3IEVycm9yKEMpO3JldHVybnt3ZWJXb3JrZXI6cyxzaWdtYTpvWzBdPy5kYXRhfX12YXIgZ2c9cmc7YXN5bmMgZnVuY3Rpb24gaWcoQSxlPXtzaHJpbmtGYWN0b3JzOlsyLDJdfSl7bGV0IHQ9W3t0eXBlOmQuSW1hZ2V9XSxJPVt7dHlwZTpkLkltYWdlLGRhdGE6QX1dLHI9W107aWYoci5wdXNoKCIwIiksci5wdXNoKCIwIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuc2hyaW5rRmFjdG9ycyl7aWYoZS5zaHJpbmtGYWN0b3JzLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcignInNocmluay1mYWN0b3JzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMicpO3IucHVzaCgiLS1zaHJpbmstZmFjdG9ycyIpLGF3YWl0IFByb21pc2UuYWxsKGUuc2hyaW5rRmFjdG9ycy5tYXAoYXN5bmMgUT0+e3IucHVzaChRLnRvU3RyaW5nKCkpfSkpfWlmKGUuY3JvcFJhZGl1cyl7aWYoZS5jcm9wUmFkaXVzLmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcignImNyb3AtcmFkaXVzIiBvcHRpb24gbXVzdCBoYXZlIGEgbGVuZ3RoID4gMicpO3IucHVzaCgiLS1jcm9wLXJhZGl1cyIpLGF3YWl0IFByb21pc2UuYWxsKGUuY3JvcFJhZGl1cy5tYXAoYXN5bmMgUT0+e3IucHVzaChRLnRvU3RyaW5nKCkpfSkpfWxldCBzPSJkb3duc2FtcGxlIixFPWU/LndlYldvcmtlcjtFPT09dm9pZCAwJiYoRT1hd2FpdCBUKCkpO2xldHt3ZWJXb3JrZXI6QyxyZXR1cm5WYWx1ZTpvLHN0ZGVycjphLG91dHB1dHM6Y309YXdhaXQgWShzLHIsdCxJLHtwaXBlbGluZUJhc2VVcmw6TygpLHBpcGVsaW5lV29ya2VyVXJsOkcoKSx3ZWJXb3JrZXI6RSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYobyE9PTAmJmEhPT0iIil0aHJvdyBuZXcgRXJyb3IoYSk7cmV0dXJue3dlYldvcmtlcjpDLGRvd25zYW1wbGVkOmNbMF0/LmRhdGF9fXZhciBvZz1pZzthc3luYyBmdW5jdGlvbiBuZyhBPXtzaXplOlsxLDFdLHNpZ21hOlsxLDFdfSl7bGV0IGU9W3t0eXBlOmQuSnNvbkNvbXBhdGlibGV9XSx0PVtdLEk9W107aWYoSS5wdXNoKCIwIiksSS5wdXNoKCItLW1lbW9yeS1pbyIpLHR5cGVvZiBBLnNpemU8InUiKXtpZihBLnNpemUubGVuZ3RoPDEpdGhyb3cgbmV3IEVycm9yKCcic2l6ZSIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tc2l6ZSIpLGF3YWl0IFByb21pc2UuYWxsKEEuc2l6ZS5tYXAoYXN5bmMgYz0+e0kucHVzaChjLnRvU3RyaW5nKCkpfSkpfWlmKHR5cGVvZiBBLnNpZ21hPCJ1Iil7aWYoQS5zaWdtYS5sZW5ndGg8MSl0aHJvdyBuZXcgRXJyb3IoJyJzaWdtYSIgb3B0aW9uIG11c3QgaGF2ZSBhIGxlbmd0aCA+IDEnKTtJLnB1c2goIi0tc2lnbWEiKSxhd2FpdCBQcm9taXNlLmFsbChBLnNpZ21hLm1hcChhc3luYyBjPT57SS5wdXNoKGMudG9TdHJpbmcoKSl9KSl9dHlwZW9mIEEubWF4S2VybmVsV2lkdGg8InUiJiZJLnB1c2goIi0tbWF4LWtlcm5lbC13aWR0aCIsQS5tYXhLZXJuZWxXaWR0aC50b1N0cmluZygpKSx0eXBlb2YgQS5tYXhLZXJuZWxFcnJvcjwidSImJkkucHVzaCgiLS1tYXgta2VybmVsLWVycm9yIixBLm1heEtlcm5lbEVycm9yLnRvU3RyaW5nKCkpO2xldCBpPSJnYXVzc2lhbi1rZXJuZWwtcmFkaXVzIixnPUE/LndlYldvcmtlcjtnPT09dm9pZCAwJiYoZz1hd2FpdCBUKCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpFLHN0ZGVycjpDLG91dHB1dHM6b309YXdhaXQgWShpLEksZSx0LHtwaXBlbGluZUJhc2VVcmw6TygpLHBpcGVsaW5lV29ya2VyVXJsOkcoKSx3ZWJXb3JrZXI6Zyxub0NvcHk6QT8ubm9Db3B5fSk7aWYoRSE9PTAmJkMhPT0iIil0aHJvdyBuZXcgRXJyb3IoQyk7cmV0dXJue3dlYldvcmtlcjpzLHJhZGl1czpvWzBdPy5kYXRhfX12YXIgYWc9bmc7dmFyIHRJPSdkYXRhOnRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0Zi04LHZhciBZZT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIHFlPShBLHQpPT57Zm9yKHZhciBlIGluIHQpWWUoQSxlLHtnZXQ6dFtlXSxlbnVtZXJhYmxlOiEwfSl9O3ZhciBOdD1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxNZT1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxLZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksVkE9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLG1BPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxVdD1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixPZT17Y2FuSGFuZGxlOkE9PlV0KEEpJiZBW050XSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOnQscG9ydDI6ZX09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBGQShBLHQpLFtlLFtlXV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksamUoQSl9fSxUZT17Y2FuSGFuZGxlOkE9PlV0KEEpJiZtQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCB0O3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/dD17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OnQ9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW3QsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sR3Q9bmV3IE1hcChbWyJwcm94eSIsT2VdLFsidGhyb3ciLFRlXV0pO2Z1bmN0aW9uIHhlKEEsdCl7Zm9yKGxldCBlIG9mIEEpaWYodD09PWV8fGU9PT0iKiJ8fGUgaW5zdGFuY2VvZiBSZWdFeHAmJmUudGVzdCh0KSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBGQShBLHQ9Z2xvYmFsVGhpcyxlPVsiKiJdKXt0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIEkocil7aWYoIXJ8fCFyLmRhdGEpcmV0dXJuO2lmKCF4ZShlLHIub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiBcJyR7ci5vcmlnaW59XCcgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOmcsdHlwZTpvLHBhdGg6bn09T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sci5kYXRhKSxFPShyLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKFcpLEI7dHJ5e2xldCBzPW4uc2xpY2UoMCwtMSkucmVkdWNlKChsLGEpPT5sW2FdLEEpLEM9bi5yZWR1Y2UoKGwsYSk9PmxbYV0sQSk7c3dpdGNoKG8pe2Nhc2UiR0VUIjpCPUM7YnJlYWs7Y2FzZSJTRVQiOnNbbi5zbGljZSgtMSlbMF1dPVcoci5kYXRhLnZhbHVlKSxCPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOkI9Qy5hcHBseShzLEUpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGw9bmV3IEMoLi4uRSk7Qj1YZShsKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmwscG9ydDI6YX09bmV3IE1lc3NhZ2VDaGFubmVsO0ZBKEEsYSksQj1fQShsLFtsXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjpCPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2gocyl7Qj17dmFsdWU6cyxbbUFdOjB9fVByb21pc2UucmVzb2x2ZShCKS5jYXRjaChzPT4oe3ZhbHVlOnMsW21BXTowfSkpLnRoZW4ocz0+e2xldFtDLGxdPVNBKHMpO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEMpLHtpZDpnfSksbCksbz09PSJSRUxFQVNFIiYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsSSksa3QodCksVkEgaW4gQSYmdHlwZW9mIEFbVkFdPT0iZnVuY3Rpb24iJiZBW1ZBXSgpKX0pLmNhdGNoKHM9PntsZXRbQyxsXT1TQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW21BXTowfSk7dC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQykse2lkOmd9KSxsKX0pfSksdC5zdGFydCYmdC5zdGFydCgpfWZ1bmN0aW9uIFBlKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGt0KEEpe1BlKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gamUoQSx0KXtyZXR1cm4gWEEoQSxbXSx0KX1mdW5jdGlvbiB5QShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gTHQoQSl7cmV0dXJuIF8oQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57a3QoQSl9KX12YXIgd0E9bmV3IFdlYWtNYXAscEE9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IHQ9KHdBLmdldChBKXx8MCktMTt3QS5zZXQoQSx0KSx0PT09MCYmTHQoQSl9KTtmdW5jdGlvbiBXZShBLHQpe2xldCBlPSh3QS5nZXQodCl8fDApKzE7d0Euc2V0KHQsZSkscEEmJnBBLnJlZ2lzdGVyKEEsdCxBKX1mdW5jdGlvbiBaZShBKXtwQSYmcEEudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBYQShBLHQ9W10sZT1mdW5jdGlvbigpe30pe2xldCBJPSExLHI9bmV3IFByb3h5KGUse2dldChnLG8pe2lmKHlBKEkpLG89PT1LZSlyZXR1cm4oKT0+e1plKHIpLEx0KEEpLEk9ITB9O2lmKG89PT0idGhlbiIpe2lmKHQubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+cn07bGV0IG49XyhBLHt0eXBlOiJHRVQiLHBhdGg6dC5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oVyk7cmV0dXJuIG4udGhlbi5iaW5kKG4pfXJldHVybiBYQShBLFsuLi50LG9dKX0sc2V0KGcsbyxuKXt5QShJKTtsZXRbRSxCXT1TQShuKTtyZXR1cm4gXyhBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLnQsb10ubWFwKHM9PnMudG9TdHJpbmcoKSksdmFsdWU6RX0sQikudGhlbihXKX0sYXBwbHkoZyxvLG4pe3lBKEkpO2xldCBFPXRbdC5sZW5ndGgtMV07aWYoRT09PU1lKXJldHVybiBfKEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oVyk7aWYoRT09PSJiaW5kIilyZXR1cm4gWEEoQSx0LnNsaWNlKDAsLTEpKTtsZXRbQixzXT1SdChuKTtyZXR1cm4gXyhBLHt0eXBlOiJBUFBMWSIscGF0aDp0Lm1hcChDPT5DLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpCfSxzKS50aGVuKFcpfSxjb25zdHJ1Y3QoZyxvKXt5QShJKTtsZXRbbixFXT1SdChvKTtyZXR1cm4gXyhBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6dC5tYXAoQj0+Qi50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6bn0sRSkudGhlbihXKX19KTtyZXR1cm4gV2UocixBKSxyfWZ1bmN0aW9uIFZlKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIFJ0KEEpe2xldCB0PUEubWFwKFNBKTtyZXR1cm5bdC5tYXAoZT0+ZVswXSksVmUodC5tYXAoZT0+ZVsxXSkpXX12YXIgYnQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gX0EoQSx0KXtyZXR1cm4gYnQuc2V0KEEsdCksQX1mdW5jdGlvbiBYZShBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbTnRdOiEwfSl9ZnVuY3Rpb24gU0EoQSl7Zm9yKGxldFt0LGVdb2YgR3QpaWYoZS5jYW5IYW5kbGUoQSkpe2xldFtJLHJdPWUuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTp0LHZhbHVlOkl9LHJdfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxidC5nZXQoQSl8fFtdXX1mdW5jdGlvbiBXKEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuIEd0LmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24gXyhBLHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKEk9PntsZXQgcj1fZSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gZyhvKXshby5kYXRhfHwhby5kYXRhLmlkfHxvLmRhdGEuaWQhPT1yfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixnKSxJKG8uZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6cn0sdCksZSl9KX1mdW5jdGlvbiBfZSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gb0EoQSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseSh0LGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzp6ZX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6dkF9PU9iamVjdCx7aXRlcmF0b3I6TkEsdG9TdHJpbmdUYWc6WXR9PVN5bWJvbCxVQT0oQT0+dD0+e2xldCBlPXplLmNhbGwodCk7cmV0dXJuIEFbZV18fChBW2VdPWUuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxMPUE9PihBPUEudG9Mb3dlckNhc2UoKSx0PT5VQSh0KT09PUEpLEdBPUE9PnQ9PnR5cGVvZiB0PT09QSx7aXNBcnJheTp2fT1BcnJheSx6PUdBKCJ1bmRlZmluZWQiKTtmdW5jdGlvbiBnQShBKXtyZXR1cm4gQSE9PW51bGwmJiF6KEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIXooQS5jb25zdHJ1Y3RvcikmJk4oQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIHF0PUwoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gdmUoQSl7bGV0IHQ7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz90PUFycmF5QnVmZmVyLmlzVmlldyhBKTp0PUEmJkEuYnVmZmVyJiZxdChBLmJ1ZmZlciksdH12YXIgJGU9R0EoInN0cmluZyIpLE49R0EoImZ1bmN0aW9uIiksTXQ9R0EoIm51bWJlciIpLGlBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsQUk9QT0+QT09PSEwfHxBPT09ITEsUkE9QT0+e2lmKFVBKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IHQ9dkEoQSk7cmV0dXJuKHQ9PT1udWxsfHx0PT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpPT09bnVsbCkmJiEoWXQgaW4gQSkmJiEoTkEgaW4gQSl9LHRJPUE9PntpZighaUEoQSl8fGdBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LGVJPUwoIkRhdGUiKSxJST1MKCJGaWxlIiksckk9TCgiQmxvYiIpLG9JPUwoIkZpbGVMaXN0IiksZ0k9QT0+aUEoQSkmJk4oQS5waXBlKSxpST1BPT57bGV0IHQ7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8TihBLmFwcGVuZCkmJigodD1VQShBKSk9PT0iZm9ybWRhdGEifHx0PT09Im9iamVjdCImJk4oQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sc0k9TCgiVVJMU2VhcmNoUGFyYW1zIiksW25JLENJLEJJLGFJXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChMKSxRST1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZywiIik7ZnVuY3Rpb24gc0EoQSx0LHthbGxPd25LZXlzOmU9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgSSxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSx2KEEpKWZvcihJPTAscj1BLmxlbmd0aDtJPHI7SSsrKXQuY2FsbChudWxsLEFbSV0sSSxBKTtlbHNle2lmKGdBKEEpKXJldHVybjtsZXQgZz1lP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLG89Zy5sZW5ndGgsbjtmb3IoST0wO0k8bztJKyspbj1nW0ldLHQuY2FsbChudWxsLEFbbl0sbixBKX19ZnVuY3Rpb24gS3QoQSx0KXtpZihnQShBKSlyZXR1cm4gbnVsbDt0PXQudG9Mb3dlckNhc2UoKTtsZXQgZT1PYmplY3Qua2V5cyhBKSxJPWUubGVuZ3RoLHI7Zm9yKDtJLS0gPjA7KWlmKHI9ZVtJXSx0PT09ci50b0xvd2VyQ2FzZSgpKXJldHVybiByO3JldHVybiBudWxsfXZhciBaPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsT3Q9QT0+IXooQSkmJkEhPT1aO2Z1bmN0aW9uIHpBKCl7bGV0e2Nhc2VsZXNzOkEsc2tpcFVuZGVmaW5lZDp0fT1PdCh0aGlzKSYmdGhpc3x8e30sZT17fSxJPShyLGcpPT57bGV0IG89QSYmS3QoZSxnKXx8ZztSQShlW29dKSYmUkEocik/ZVtvXT16QShlW29dLHIpOlJBKHIpP2Vbb109ekEoe30scik6dihyKT9lW29dPXIuc2xpY2UoKTooIXR8fCF6KHIpKSYmKGVbb109cil9O2ZvcihsZXQgcj0wLGc9YXJndW1lbnRzLmxlbmd0aDtyPGc7cisrKWFyZ3VtZW50c1tyXSYmc0EoYXJndW1lbnRzW3JdLEkpO3JldHVybiBlfXZhciBFST0oQSx0LGUse2FsbE93bktleXM6SX09e30pPT4oc0EodCwocixnKT0+e2UmJk4ocik/QVtnXT1vQShyLGUpOkFbZ109cn0se2FsbE93bktleXM6SX0pLEEpLGNJPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksZkk9KEEsdCxlLEkpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSxJKSxBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse3ZhbHVlOnQucHJvdG90eXBlfSksZSYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSxlKX0sbEk9KEEsdCxlLEkpPT57bGV0IHIsZyxvLG49e307aWYodD10fHx7fSxBPT1udWxsKXJldHVybiB0O2Rve2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLGc9ci5sZW5ndGg7Zy0tID4wOylvPXJbZ10sKCFJfHxJKG8sQSx0KSkmJiFuW29dJiYodFtvXT1BW29dLG5bb109ITApO0E9ZSE9PSExJiZ2QShBKX13aGlsZShBJiYoIWV8fGUoQSx0KSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gdH0sdUk9KEEsdCxlKT0+e0E9U3RyaW5nKEEpLChlPT09dm9pZCAwfHxlPkEubGVuZ3RoKSYmKGU9QS5sZW5ndGgpLGUtPXQubGVuZ3RoO2xldCBJPUEuaW5kZXhPZih0LGUpO3JldHVybiBJIT09LTEmJkk9PT1lfSxkST1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYodihBKSlyZXR1cm4gQTtsZXQgdD1BLmxlbmd0aDtpZighTXQodCkpcmV0dXJuIG51bGw7bGV0IGU9bmV3IEFycmF5KHQpO2Zvcig7dC0tID4wOyllW3RdPUFbdF07cmV0dXJuIGV9LERJPShBPT50PT5BJiZ0IGluc3RhbmNlb2YgQSkodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZ2QShVaW50OEFycmF5KSksaEk9KEEsdCk9PntsZXQgST0oQSYmQVtOQV0pLmNhbGwoQSkscjtmb3IoOyhyPUkubmV4dCgpKSYmIXIuZG9uZTspe2xldCBnPXIudmFsdWU7dC5jYWxsKEEsZ1swXSxnWzFdKX19LHlJPShBLHQpPT57bGV0IGUsST1bXTtmb3IoOyhlPUEuZXhlYyh0KSkhPT1udWxsOylJLnB1c2goZSk7cmV0dXJuIEl9LG1JPUwoIkhUTUxGb3JtRWxlbWVudCIpLHdJPUE9PkEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9cXHNdKFthLXpcXGRdKShcXHcqKS9nLGZ1bmN0aW9uKGUsSSxyKXtyZXR1cm4gSS50b1VwcGVyQ2FzZSgpK3J9KSxIdD0oKHtoYXNPd25Qcm9wZXJ0eTpBfSk9Pih0LGUpPT5BLmNhbGwodCxlKSkoT2JqZWN0LnByb3RvdHlwZSkscEk9TCgiUmVnRXhwIiksVHQ9KEEsdCk9PntsZXQgZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhBKSxJPXt9O3NBKGUsKHIsZyk9PntsZXQgbzsobz10KHIsZyxBKSkhPT0hMSYmKElbZ109b3x8cil9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBLEkpfSxTST1BPT57VHQoQSwodCxlKT0+e2lmKE4oQSkmJlsiYXJndW1lbnRzIiwiY2FsbGVyIiwiY2FsbGVlIl0uaW5kZXhPZihlKSE9PS0xKXJldHVybiExO2xldCBJPUFbZV07aWYoTihJKSl7aWYodC5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiB0KXt0LndyaXRhYmxlPSExO3JldHVybn10LnNldHx8KHQuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kIFwnIitlKyJcJyIpfSl9fSl9LEZJPShBLHQpPT57bGV0IGU9e30sST1yPT57ci5mb3JFYWNoKGc9PntlW2ddPSEwfSl9O3JldHVybiB2KEEpP0koQSk6SShTdHJpbmcoQSkuc3BsaXQodCkpLGV9LFJJPSgpPT57fSxOST0oQSx0KT0+QSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKEE9K0EpP0E6dDtmdW5jdGlvbiBVSShBKXtyZXR1cm4hIShBJiZOKEEuYXBwZW5kKSYmQVtZdF09PT0iRm9ybURhdGEiJiZBW05BXSl9dmFyIEdJPUE9PntsZXQgdD1uZXcgQXJyYXkoMTApLGU9KEkscik9PntpZihpQShJKSl7aWYodC5pbmRleE9mKEkpPj0wKXJldHVybjtpZihnQShJKSlyZXR1cm4gSTtpZighKCJ0b0pTT04iaW4gSSkpe3Rbcl09STtsZXQgZz12KEkpP1tdOnt9O3JldHVybiBzQShJLChvLG4pPT57bGV0IEU9ZShvLHIrMSk7IXooRSkmJihnW25dPUUpfSksdFtyXT12b2lkIDAsZ319cmV0dXJuIEl9O3JldHVybiBlKEEsMCl9LGtJPUwoIkFzeW5jRnVuY3Rpb24iKSxMST1BPT5BJiYoaUEoQSl8fE4oQSkpJiZOKEEudGhlbikmJk4oQS5jYXRjaCkseHQ9KChBLHQpPT5BP3NldEltbWVkaWF0ZTp0PygoZSxJKT0+KFouYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6cixkYXRhOmd9KT0+e3I9PT1aJiZnPT09ZSYmSS5sZW5ndGgmJkkuc2hpZnQoKSgpfSwhMSkscj0+e0kucHVzaChyKSxaLnBvc3RNZXNzYWdlKGUsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOmU9PnNldFRpbWVvdXQoZSkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTihaLnBvc3RNZXNzYWdlKSksYkk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKFopOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8eHQsSkk9QT0+QSE9bnVsbCYmTihBW05BXSksaT17aXNBcnJheTp2LGlzQXJyYXlCdWZmZXI6cXQsaXNCdWZmZXI6Z0EsaXNGb3JtRGF0YTppSSxpc0FycmF5QnVmZmVyVmlldzp2ZSxpc1N0cmluZzokZSxpc051bWJlcjpNdCxpc0Jvb2xlYW46QUksaXNPYmplY3Q6aUEsaXNQbGFpbk9iamVjdDpSQSxpc0VtcHR5T2JqZWN0OnRJLGlzUmVhZGFibGVTdHJlYW06bkksaXNSZXF1ZXN0OkNJLGlzUmVzcG9uc2U6QkksaXNIZWFkZXJzOmFJLGlzVW5kZWZpbmVkOnosaXNEYXRlOmVJLGlzRmlsZTpJSSxpc0Jsb2I6ckksaXNSZWdFeHA6cEksaXNGdW5jdGlvbjpOLGlzU3RyZWFtOmdJLGlzVVJMU2VhcmNoUGFyYW1zOnNJLGlzVHlwZWRBcnJheTpESSxpc0ZpbGVMaXN0Om9JLGZvckVhY2g6c0EsbWVyZ2U6ekEsZXh0ZW5kOkVJLHRyaW06UUksc3RyaXBCT006Y0ksaW5oZXJpdHM6ZkksdG9GbGF0T2JqZWN0OmxJLGtpbmRPZjpVQSxraW5kT2ZUZXN0OkwsZW5kc1dpdGg6dUksdG9BcnJheTpkSSxmb3JFYWNoRW50cnk6aEksbWF0Y2hBbGw6eUksaXNIVE1MRm9ybTptSSxoYXNPd25Qcm9wZXJ0eTpIdCxoYXNPd25Qcm9wOkh0LHJlZHVjZURlc2NyaXB0b3JzOlR0LGZyZWV6ZU1ldGhvZHM6U0ksdG9PYmplY3RTZXQ6RkksdG9DYW1lbENhc2U6d0ksbm9vcDpSSSx0b0Zpbml0ZU51bWJlcjpOSSxmaW5kS2V5Okt0LGdsb2JhbDpaLGlzQ29udGV4dERlZmluZWQ6T3QsaXNTcGVjQ29tcGxpYW50Rm9ybTpVSSx0b0pTT05PYmplY3Q6R0ksaXNBc3luY0ZuOmtJLGlzVGhlbmFibGU6TEksc2V0SW1tZWRpYXRlOnh0LGFzYXA6YkksaXNJdGVyYWJsZTpKSX07ZnVuY3Rpb24gJChBLHQsZSxJLHIpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsdCYmKHRoaXMuY29kZT10KSxlJiYodGhpcy5jb25maWc9ZSksSSYmKHRoaXMucmVxdWVzdD1JKSxyJiYodGhpcy5yZXNwb25zZT1yLHRoaXMuc3RhdHVzPXIuc3RhdHVzP3Iuc3RhdHVzOm51bGwpfWkuaW5oZXJpdHMoJCxFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOmkudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX0pO3ZhciBQdD0kLnByb3RvdHlwZSxqdD17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiLCJFUlJfTk9UX1NVUFBPUlQiLCJFUlJfSU5WQUxJRF9VUkwiXS5mb3JFYWNoKEE9PntqdFtBXT17dmFsdWU6QX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcygkLGp0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUHQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7JC5mcm9tPShBLHQsZSxJLHIsZyk9PntsZXQgbz1PYmplY3QuY3JlYXRlKFB0KTtpLnRvRmxhdE9iamVjdChBLG8sZnVuY3Rpb24ocyl7cmV0dXJuIHMhPT1FcnJvci5wcm90b3R5cGV9LEI9PkIhPT0iaXNBeGlvc0Vycm9yIik7bGV0IG49QSYmQS5tZXNzYWdlP0EubWVzc2FnZToiRXJyb3IiLEU9dD09bnVsbCYmQT9BLmNvZGU6dDtyZXR1cm4gJC5jYWxsKG8sbixFLGUsSSxyKSxBJiZvLmNhdXNlPT1udWxsJiZPYmplY3QuZGVmaW5lUHJvcGVydHkobywiY2F1c2UiLHt2YWx1ZTpBLGNvbmZpZ3VyYWJsZTohMH0pLG8ubmFtZT1BJiZBLm5hbWV8fCJFcnJvciIsZyYmT2JqZWN0LmFzc2lnbihvLGcpLG99O3ZhciB1PSQ7dmFyIGtBPW51bGw7ZnVuY3Rpb24gJEEoQSl7cmV0dXJuIGkuaXNQbGFpbk9iamVjdChBKXx8aS5pc0FycmF5KEEpfWZ1bmN0aW9uIFp0KEEpe3JldHVybiBpLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIFd0KEEsdCxlKXtyZXR1cm4gQT9BLmNvbmNhdCh0KS5tYXAoZnVuY3Rpb24ocixnKXtyZXR1cm4gcj1adChyKSwhZSYmZz8iWyIrcisiXSI6cn0pLmpvaW4oZT8iLiI6IiIpOnR9ZnVuY3Rpb24gSEkoQSl7cmV0dXJuIGkuaXNBcnJheShBKSYmIUEuc29tZSgkQSl9dmFyIFlJPWkudG9GbGF0T2JqZWN0KGkse30sbnVsbCxmdW5jdGlvbih0KXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QodCl9KTtmdW5jdGlvbiBxSShBLHQsZSl7aWYoIWkuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7dD10fHxuZXcoa0F8fEZvcm1EYXRhKSxlPWkudG9GbGF0T2JqZWN0KGUse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihmLGMpe3JldHVybiFpLmlzVW5kZWZpbmVkKGNbZl0pfSk7bGV0IEk9ZS5tZXRhVG9rZW5zLHI9ZS52aXNpdG9yfHxzLGc9ZS5kb3RzLG89ZS5pbmRleGVzLEU9KGUuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmaS5pc1NwZWNDb21wbGlhbnRGb3JtKHQpO2lmKCFpLmlzRnVuY3Rpb24ocikpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBCKFEpe2lmKFE9PT1udWxsKXJldHVybiIiO2lmKGkuaXNEYXRlKFEpKXJldHVybiBRLnRvSVNPU3RyaW5nKCk7aWYoaS5pc0Jvb2xlYW4oUSkpcmV0dXJuIFEudG9TdHJpbmcoKTtpZighRSYmaS5pc0Jsb2IoUSkpdGhyb3cgbmV3IHUoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIGkuaXNBcnJheUJ1ZmZlcihRKXx8aS5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIHMoUSxmLGMpe2xldCBEPVE7aWYoUSYmIWMmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYoaS5lbmRzV2l0aChmLCJ7fSIpKWY9ST9mOmYuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKGkuaXNBcnJheShRKSYmSEkoUSl8fChpLmlzRmlsZUxpc3QoUSl8fGkuZW5kc1dpdGgoZiwiW10iKSkmJihEPWkudG9BcnJheShRKSkpcmV0dXJuIGY9WnQoZiksRC5mb3JFYWNoKGZ1bmN0aW9uKHksUil7IShpLmlzVW5kZWZpbmVkKHkpfHx5PT09bnVsbCkmJnQuYXBwZW5kKG89PT0hMD9XdChbZl0sUixnKTpvPT09bnVsbD9mOmYrIltdIixCKHkpKX0pLCExfXJldHVybiAkQShRKT8hMDoodC5hcHBlbmQoV3QoYyxmLGcpLEIoUSkpLCExKX1sZXQgQz1bXSxsPU9iamVjdC5hc3NpZ24oWUkse2RlZmF1bHRWaXNpdG9yOnMsY29udmVydFZhbHVlOkIsaXNWaXNpdGFibGU6JEF9KTtmdW5jdGlvbiBhKFEsZil7aWYoIWkuaXNVbmRlZmluZWQoUSkpe2lmKEMuaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitmLmpvaW4oIi4iKSk7Qy5wdXNoKFEpLGkuZm9yRWFjaChRLGZ1bmN0aW9uKEQsRil7KCEoaS5pc1VuZGVmaW5lZChEKXx8RD09PW51bGwpJiZyLmNhbGwodCxELGkuaXNTdHJpbmcoRik/Ri50cmltKCk6RixmLGwpKT09PSEwJiZhKEQsZj9mLmNvbmNhdChGKTpbRl0pfSksQy5wb3AoKX19aWYoIWkuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBhKEEpLHR9dmFyIFQ9cUk7ZnVuY3Rpb24gVnQoQSl7bGV0IHQ9eyIhIjoiJTI1MjEiLCJcJyI6IiUyNTI3IiwiKCI6IiUyNTI4IiwiKSI6IiUyNTI5IiwifiI6IiUyNTdFIiwiJTI1MjAiOiIrIiwiJTI1MDAiOiJcXDAifTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoL1shXCcoKX5dfCUyNTIwfCUyNTAwL2csZnVuY3Rpb24oSSl7cmV0dXJuIHRbSV19KX1mdW5jdGlvbiBYdChBLHQpe3RoaXMuX3BhaXJzPVtdLEEmJlQoQSx0aGlzLHQpfXZhciBfdD1YdC5wcm90b3R5cGU7X3QuYXBwZW5kPWZ1bmN0aW9uKHQsZSl7dGhpcy5fcGFpcnMucHVzaChbdCxlXSl9O190LnRvU3RyaW5nPWZ1bmN0aW9uKHQpe2xldCBlPXQ/ZnVuY3Rpb24oSSl7cmV0dXJuIHQuY2FsbCh0aGlzLEksVnQpfTpWdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBlKHJbMF0pKyI9IitlKHJbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgTEE9WHQ7ZnVuY3Rpb24gTUkoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lMjUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNTI0L2csIiQiKS5yZXBsYWNlKC8lMjUyQy9naSwiLCIpLnJlcGxhY2UoLyUyNTIwL2csIisiKX1mdW5jdGlvbiBuQShBLHQsZSl7aWYoIXQpcmV0dXJuIEE7bGV0IEk9ZSYmZS5lbmNvZGV8fE1JO2kuaXNGdW5jdGlvbihlKSYmKGU9e3NlcmlhbGl6ZTplfSk7bGV0IHI9ZSYmZS5zZXJpYWxpemUsZztpZihyP2c9cih0LGUpOmc9aS5pc1VSTFNlYXJjaFBhcmFtcyh0KT90LnRvU3RyaW5nKCk6bmV3IExBKHQsZSkudG9TdHJpbmcoSSksZyl7bGV0IG89QS5pbmRleE9mKCIlMjMiKTtvIT09LTEmJihBPUEuc2xpY2UoMCxvKSksQSs9KEEuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikrZ31yZXR1cm4gQX12YXIgQXQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmhhbmRsZXJzPVtdfXVzZSh0LGUsSSl7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOnQscmVqZWN0ZWQ6ZSxzeW5jaHJvbm91czpJP0kuc3luY2hyb25vdXM6ITEscnVuV2hlbjpJP0kucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX1lamVjdCh0KXt0aGlzLmhhbmRsZXJzW3RdJiYodGhpcy5oYW5kbGVyc1t0XT1udWxsKX1jbGVhcigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX1mb3JFYWNoKHQpe2kuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKEkpe0khPT1udWxsJiZ0KEkpfSl9fSx0dD1BdDt2YXIgYkE9e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9O3ZhciB6dD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6TEE7dmFyIHZ0PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgJHQ9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgQWU9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6enQsRm9ybURhdGE6dnQsQmxvYjokdH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBydD17fTtxZShydCx7aGFzQnJvd3NlckVudjooKT0+SXQsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5LSSxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9Pk9JLG5hdmlnYXRvcjooKT0+ZXQsb3JpZ2luOigpPT5USX0pO3ZhciBJdD10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1IixldD10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsS0k9SXQmJighZXR8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2YoZXQucHJvZHVjdCk8MCksT0k9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLFRJPUl0JiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBoPXsuLi5ydCwuLi5BZX07ZnVuY3Rpb24gb3QoQSx0KXtyZXR1cm4gVChBLG5ldyBoLmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLHt2aXNpdG9yOmZ1bmN0aW9uKGUsSSxyLGcpe3JldHVybiBoLmlzTm9kZSYmaS5pc0J1ZmZlcihlKT8odGhpcy5hcHBlbmQoSSxlLnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOmcuZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwuLi50fSl9ZnVuY3Rpb24geEkoQSl7cmV0dXJuIGkubWF0Y2hBbGwoL1xcdyt8XFxbKFxcdyopXS9nLEEpLm1hcCh0PT50WzBdPT09IltdIj8iIjp0WzFdfHx0WzBdKX1mdW5jdGlvbiBQSShBKXtsZXQgdD17fSxlPU9iamVjdC5rZXlzKEEpLEkscj1lLmxlbmd0aCxnO2ZvcihJPTA7STxyO0krKylnPWVbSV0sdFtnXT1BW2ddO3JldHVybiB0fWZ1bmN0aW9uIGpJKEEpe2Z1bmN0aW9uIHQoZSxJLHIsZyl7bGV0IG89ZVtnKytdO2lmKG89PT0iX19wcm90b19fIilyZXR1cm4hMDtsZXQgbj1OdW1iZXIuaXNGaW5pdGUoK28pLEU9Zz49ZS5sZW5ndGg7cmV0dXJuIG89IW8mJmkuaXNBcnJheShyKT9yLmxlbmd0aDpvLEU/KGkuaGFzT3duUHJvcChyLG8pP3Jbb109W3Jbb10sSV06cltvXT1JLCFuKTooKCFyW29dfHwhaS5pc09iamVjdChyW29dKSkmJihyW29dPVtdKSx0KGUsSSxyW29dLGcpJiZpLmlzQXJyYXkocltvXSkmJihyW29dPVBJKHJbb10pKSwhbil9aWYoaS5pc0Zvcm1EYXRhKEEpJiZpLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IGU9e307cmV0dXJuIGkuZm9yRWFjaEVudHJ5KEEsKEkscik9Pnt0KHhJKEkpLHIsZSwwKX0pLGV9cmV0dXJuIG51bGx9dmFyIEpBPWpJO2Z1bmN0aW9uIFdJKEEsdCxlKXtpZihpLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4odHx8SlNPTi5wYXJzZSkoQSksaS50cmltKEEpfWNhdGNoKEkpe2lmKEkubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgSX1yZXR1cm4oZXx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBndD17dHJhbnNpdGlvbmFsOmJBLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbih0LGUpe2xldCBJPWUuZ2V0Q29udGVudFR5cGUoKXx8IiIscj1JLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxnPWkuaXNPYmplY3QodCk7aWYoZyYmaS5pc0hUTUxGb3JtKHQpJiYodD1uZXcgRm9ybURhdGEodCkpLGkuaXNGb3JtRGF0YSh0KSlyZXR1cm4gcj9KU09OLnN0cmluZ2lmeShKQSh0KSk6dDtpZihpLmlzQXJyYXlCdWZmZXIodCl8fGkuaXNCdWZmZXIodCl8fGkuaXNTdHJlYW0odCl8fGkuaXNGaWxlKHQpfHxpLmlzQmxvYih0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcodCkpcmV0dXJuIHQuYnVmZmVyO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXModCkpcmV0dXJuIGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksdC50b1N0cmluZygpO2xldCBuO2lmKGcpe2lmKEkuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik+LTEpcmV0dXJuIG90KHQsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigobj1pLmlzRmlsZUxpc3QodCkpfHxJLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7bGV0IEU9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBUKG4/eyJmaWxlc1tdIjp0fTp0LEUmJm5ldyBFLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gZ3x8cj8oZS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLFdJKHQpKTp0fV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKHQpe2xldCBlPXRoaXMudHJhbnNpdGlvbmFsfHxndC50cmFuc2l0aW9uYWwsST1lJiZlLmZvcmNlZEpTT05QYXJzaW5nLHI9dGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYoaS5pc1Jlc3BvbnNlKHQpfHxpLmlzUmVhZGFibGVTdHJlYW0odCkpcmV0dXJuIHQ7aWYodCYmaS5pc1N0cmluZyh0KSYmKEkmJiF0aGlzLnJlc3BvbnNlVHlwZXx8cikpe2xldCBvPSEoZSYmZS5zaWxlbnRKU09OUGFyc2luZykmJnI7dHJ5e3JldHVybiBKU09OLnBhcnNlKHQsdGhpcy5wYXJzZVJldml2ZXIpfWNhdGNoKG4pe2lmKG8pdGhyb3cgbi5uYW1lPT09IlN5bnRheEVycm9yIj91LmZyb20obix1LkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpOm59fXJldHVybiB0fV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpoLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpoLmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTIwMCYmdDwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIl0sQT0+e2d0LmhlYWRlcnNbQV09e319KTt2YXIgQUE9Z3Q7dmFyIFpJPWkudG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksdGU9QT0+e2xldCB0PXt9LGUsSSxyO3JldHVybiBBJiZBLnNwbGl0KGAlMEFgKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3I9by5pbmRleE9mKCI6IiksZT1vLnN1YnN0cmluZygwLHIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLEk9by5zdWJzdHJpbmcocisxKS50cmltKCksISghZXx8dFtlXSYmWklbZV0pJiYoZT09PSJzZXQtY29va2llIj90W2VdP3RbZV0ucHVzaChJKTp0W2VdPVtJXTp0W2VdPXRbZV0/dFtlXSsiLCAiK0k6SSl9KSx0fTt2YXIgZWU9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBDQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIEhBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTppLmlzQXJyYXkoQSk/QS5tYXAoSEEpOlN0cmluZyhBKX1mdW5jdGlvbiBWSShBKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpLGU9LyhbXlxccyw7PV0rKVxccyooPzo9XFxzKihbXiw7XSspKT8vZyxJO2Zvcig7ST1lLmV4ZWMoQSk7KXRbSVsxXV09SVsyXTtyZXR1cm4gdH12YXIgWEk9QT0+L15bLV9hLXpBLVowLTleYHx+LCElMjMkJSZcJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gaXQoQSx0LGUsSSxyKXtpZihpLmlzRnVuY3Rpb24oSSkpcmV0dXJuIEkuY2FsbCh0aGlzLHQsZSk7aWYociYmKHQ9ZSksISFpLmlzU3RyaW5nKHQpKXtpZihpLmlzU3RyaW5nKEkpKXJldHVybiB0LmluZGV4T2YoSSkhPT0tMTtpZihpLmlzUmVnRXhwKEkpKXJldHVybiBJLnRlc3QodCl9fWZ1bmN0aW9uIF9JKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XFxkXSkoXFx3KikvZywodCxlLEkpPT5lLnRvVXBwZXJDYXNlKCkrSSl9ZnVuY3Rpb24gekkoQSx0KXtsZXQgZT1pLnRvQ2FtZWxDYXNlKCIgIit0KTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2goST0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLEkrZSx7dmFsdWU6ZnVuY3Rpb24ocixnLG8pe3JldHVybiB0aGlzW0ldLmNhbGwodGhpcyx0LHIsZyxvKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgdEE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dCYmdGhpcy5zZXQodCl9c2V0KHQsZSxJKXtsZXQgcj10aGlzO2Z1bmN0aW9uIGcobixFLEIpe2xldCBzPUNBKEUpO2lmKCFzKXRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgQz1pLmZpbmRLZXkocixzKTsoIUN8fHJbQ109PT12b2lkIDB8fEI9PT0hMHx8Qj09PXZvaWQgMCYmcltDXSE9PSExKSYmKHJbQ3x8RV09SEEobikpfWxldCBvPShuLEUpPT5pLmZvckVhY2gobiwoQixzKT0+ZyhCLHMsRSkpO2lmKGkuaXNQbGFpbk9iamVjdCh0KXx8dCBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3Ipbyh0LGUpO2Vsc2UgaWYoaS5pc1N0cmluZyh0KSYmKHQ9dC50cmltKCkpJiYhWEkodCkpbyh0ZSh0KSxlKTtlbHNlIGlmKGkuaXNPYmplY3QodCkmJmkuaXNJdGVyYWJsZSh0KSl7bGV0IG49e30sRSxCO2ZvcihsZXQgcyBvZiB0KXtpZighaS5pc0FycmF5KHMpKXRocm93IFR5cGVFcnJvcigiT2JqZWN0IGl0ZXJhdG9yIG11c3QgcmV0dXJuIGEga2V5LXZhbHVlIHBhaXIiKTtuW0I9c1swXV09KEU9bltCXSk/aS5pc0FycmF5KEUpP1suLi5FLHNbMV1dOltFLHNbMV1dOnNbMV19byhuLGUpfWVsc2UgdCE9bnVsbCYmZyhlLHQsSSk7cmV0dXJuIHRoaXN9Z2V0KHQsZSl7aWYodD1DQSh0KSx0KXtsZXQgST1pLmZpbmRLZXkodGhpcyx0KTtpZihJKXtsZXQgcj10aGlzW0ldO2lmKCFlKXJldHVybiByO2lmKGU9PT0hMClyZXR1cm4gVkkocik7aWYoaS5pc0Z1bmN0aW9uKGUpKXJldHVybiBlLmNhbGwodGhpcyxyLEkpO2lmKGkuaXNSZWdFeHAoZSkpcmV0dXJuIGUuZXhlYyhyKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKHQsZSl7aWYodD1DQSh0KSx0KXtsZXQgST1pLmZpbmRLZXkodGhpcyx0KTtyZXR1cm4hIShJJiZ0aGlzW0ldIT09dm9pZCAwJiYoIWV8fGl0KHRoaXMsdGhpc1tJXSxJLGUpKSl9cmV0dXJuITF9ZGVsZXRlKHQsZSl7bGV0IEk9dGhpcyxyPSExO2Z1bmN0aW9uIGcobyl7aWYobz1DQShvKSxvKXtsZXQgbj1pLmZpbmRLZXkoSSxvKTtuJiYoIWV8fGl0KEksSVtuXSxuLGUpKSYmKGRlbGV0ZSBJW25dLHI9ITApfX1yZXR1cm4gaS5pc0FycmF5KHQpP3QuZm9yRWFjaChnKTpnKHQpLHJ9Y2xlYXIodCl7bGV0IGU9T2JqZWN0LmtleXModGhpcyksST1lLmxlbmd0aCxyPSExO2Zvcig7SS0tOyl7bGV0IGc9ZVtJXTsoIXR8fGl0KHRoaXMsdGhpc1tnXSxnLHQsITApKSYmKGRlbGV0ZSB0aGlzW2ddLHI9ITApfXJldHVybiByfW5vcm1hbGl6ZSh0KXtsZXQgZT10aGlzLEk9e307cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChyLGcpPT57bGV0IG89aS5maW5kS2V5KEksZyk7aWYobyl7ZVtvXT1IQShyKSxkZWxldGUgZVtnXTtyZXR1cm59bGV0IG49dD9fSShnKTpTdHJpbmcoZykudHJpbSgpO24hPT1nJiZkZWxldGUgZVtnXSxlW25dPUhBKHIpLElbbl09ITB9KSx0aGlzfWNvbmNhdCguLi50KXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi50KX10b0pTT04odCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gaS5mb3JFYWNoKHRoaXMsKEkscik9PntJIT1udWxsJiZJIT09ITEmJihlW3JdPXQmJmkuaXNBcnJheShJKT9JLmpvaW4oIiwgIik6SSl9KSxlfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKX10b1N0cmluZygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFt0LGVdKT0+dCsiOiAiK2UpLmpvaW4oYCUwQWApfWdldFNldENvb2tpZSgpe3JldHVybiB0aGlzLmdldCgic2V0LWNvb2tpZSIpfHxbXX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJBeGlvc0hlYWRlcnMifXN0YXRpYyBmcm9tKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpcz90Om5ldyB0aGlzKHQpfXN0YXRpYyBjb25jYXQodCwuLi5lKXtsZXQgST1uZXcgdGhpcyh0KTtyZXR1cm4gZS5mb3JFYWNoKHI9Pkkuc2V0KHIpKSxJfXN0YXRpYyBhY2Nlc3Nvcih0KXtsZXQgST0odGhpc1tlZV09dGhpc1tlZV09e2FjY2Vzc29yczp7fX0pLmFjY2Vzc29ycyxyPXRoaXMucHJvdG90eXBlO2Z1bmN0aW9uIGcobyl7bGV0IG49Q0Eobyk7SVtuXXx8KHpJKHIsbyksSVtuXT0hMCl9cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2goZyk6Zyh0KSx0aGlzfX07dEEuYWNjZXNzb3IoWyJDb250ZW50LVR5cGUiLCJDb250ZW50LUxlbmd0aCIsIkFjY2VwdCIsIkFjY2VwdC1FbmNvZGluZyIsIlVzZXItQWdlbnQiLCJBdXRob3JpemF0aW9uIl0pO2kucmVkdWNlRGVzY3JpcHRvcnModEEucHJvdG90eXBlLCh7dmFsdWU6QX0sdCk9PntsZXQgZT10WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKTtyZXR1cm57Z2V0OigpPT5BLHNldChJKXt0aGlzW2VdPUl9fX0pO2kuZnJlZXplTWV0aG9kcyh0QSk7dmFyIHA9dEE7ZnVuY3Rpb24gQkEoQSx0KXtsZXQgZT10aGlzfHxBQSxJPXR8fGUscj1wLmZyb20oSS5oZWFkZXJzKSxnPUkuZGF0YTtyZXR1cm4gaS5mb3JFYWNoKEEsZnVuY3Rpb24obil7Zz1uLmNhbGwoZSxnLHIubm9ybWFsaXplKCksdD90LnN0YXR1czp2b2lkIDApfSksci5ub3JtYWxpemUoKSxnfWZ1bmN0aW9uIGFBKEEpe3JldHVybiEhKEEmJkEuX19DQU5DRUxfXyl9ZnVuY3Rpb24gSWUoQSx0LGUpe3UuY2FsbCh0aGlzLEE/PyJjYW5jZWxlZCIsdS5FUlJfQ0FOQ0VMRUQsdCxlKSx0aGlzLm5hbWU9IkNhbmNlbGVkRXJyb3IifWkuaW5oZXJpdHMoSWUsdSx7X19DQU5DRUxfXzohMH0pO3ZhciBIPUllO2Z1bmN0aW9uIFFBKEEsdCxlKXtsZXQgST1lLmNvbmZpZy52YWxpZGF0ZVN0YXR1czshZS5zdGF0dXN8fCFJfHxJKGUuc3RhdHVzKT9BKGUpOnQobmV3IHUoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIitlLnN0YXR1cyxbdS5FUlJfQkFEX1JFUVVFU1QsdS5FUlJfQkFEX1JFU1BPTlNFXVtNYXRoLmZsb29yKGUuc3RhdHVzLzEwMCktNF0sZS5jb25maWcsZS5yZXF1ZXN0LGUpKX1mdW5jdGlvbiBzdChBKXtsZXQgdD0vXihbLStcXHddezEsMjV9KSg6P1xcL1xcL3w6KS8uZXhlYyhBKTtyZXR1cm4gdCYmdFsxXXx8IiJ9ZnVuY3Rpb24gdkkoQSx0KXtBPUF8fDEwO2xldCBlPW5ldyBBcnJheShBKSxJPW5ldyBBcnJheShBKSxyPTAsZz0wLG87cmV0dXJuIHQ9dCE9PXZvaWQgMD90OjFlMyxmdW5jdGlvbihFKXtsZXQgQj1EYXRlLm5vdygpLHM9SVtnXTtvfHwobz1CKSxlW3JdPUUsSVtyXT1CO2xldCBDPWcsbD0wO2Zvcig7QyE9PXI7KWwrPWVbQysrXSxDPUMlQTtpZihyPShyKzEpJUEscj09PWcmJihnPShnKzEpJUEpLEItbzx0KXJldHVybjtsZXQgYT1zJiZCLXM7cmV0dXJuIGE/TWF0aC5yb3VuZChsKjFlMy9hKTp2b2lkIDB9fXZhciByZT12STtmdW5jdGlvbiAkSShBLHQpe2xldCBlPTAsST0xZTMvdCxyLGcsbz0oQixzPURhdGUubm93KCkpPT57ZT1zLHI9bnVsbCxnJiYoY2xlYXJUaW1lb3V0KGcpLGc9bnVsbCksQSguLi5CKX07cmV0dXJuWyguLi5CKT0+e2xldCBzPURhdGUubm93KCksQz1zLWU7Qz49ST9vKEIscyk6KHI9QixnfHwoZz1zZXRUaW1lb3V0KCgpPT57Zz1udWxsLG8ocil9LEktQykpKX0sKCk9PnImJm8ocildfXZhciBvZT0kSTt2YXIgZUE9KEEsdCxlPTMpPT57bGV0IEk9MCxyPXJlKDUwLDI1MCk7cmV0dXJuIG9lKGc9PntsZXQgbz1nLmxvYWRlZCxuPWcubGVuZ3RoQ29tcHV0YWJsZT9nLnRvdGFsOnZvaWQgMCxFPW8tSSxCPXIoRSkscz1vPD1uO0k9bztsZXQgQz17bG9hZGVkOm8sdG90YWw6bixwcm9ncmVzczpuP28vbjp2b2lkIDAsYnl0ZXM6RSxyYXRlOkJ8fHZvaWQgMCxlc3RpbWF0ZWQ6QiYmbiYmcz8obi1vKS9COnZvaWQgMCxldmVudDpnLGxlbmd0aENvbXB1dGFibGU6biE9bnVsbCxbdD8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH07QShDKX0sZSl9LG50PShBLHQpPT57bGV0IGU9QSE9bnVsbDtyZXR1cm5bST0+dFswXSh7bGVuZ3RoQ29tcHV0YWJsZTplLHRvdGFsOkEsbG9hZGVkOkl9KSx0WzFdXX0sQ3Q9QT0+KC4uLnQpPT5pLmFzYXAoKCk9PkEoLi4udCkpO3ZhciBnZT1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKEEsdCk9PmU9PihlPW5ldyBVUkwoZSxoLm9yaWdpbiksQS5wcm90b2NvbD09PWUucHJvdG9jb2wmJkEuaG9zdD09PWUuaG9zdCYmKHR8fEEucG9ydD09PWUucG9ydCkpKShuZXcgVVJMKGgub3JpZ2luKSxoLm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChoLm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITA7dmFyIGllPWguaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShBLHQsZSxJLHIsZyl7bGV0IG89W0ErIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0KV07aS5pc051bWJlcihlKSYmby5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUoZSkudG9HTVRTdHJpbmcoKSksaS5pc1N0cmluZyhJKSYmby5wdXNoKCJwYXRoPSIrSSksaS5pc1N0cmluZyhyKSYmby5wdXNoKCJkb21haW49IityKSxnPT09ITAmJm8ucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPW8uam9pbigiOyAiKX0scmVhZChBKXtsZXQgdD1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xcXFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIHQ/ZGVjb2RlVVJJQ29tcG9uZW50KHRbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gQnQoQSl7cmV0dXJuL14oW2Etel1bYS16XFxkK1xcLS5dKjopP1xcL1xcLy9pLnRlc3QoQSl9ZnVuY3Rpb24gYXQoQSx0KXtyZXR1cm4gdD9BLnJlcGxhY2UoL1xcLz9cXC8kLywiIikrIi8iK3QucmVwbGFjZSgvXlxcLysvLCIiKTpBfWZ1bmN0aW9uIEVBKEEsdCxlKXtsZXQgST0hQnQodCk7cmV0dXJuIEEmJihJfHxlPT0hMSk/YXQoQSx0KTp0fXZhciBzZT1BPT5BIGluc3RhbmNlb2YgcD97Li4uQX06QTtmdW5jdGlvbiBiKEEsdCl7dD10fHx7fTtsZXQgZT17fTtmdW5jdGlvbiBJKEIscyxDLGwpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQikmJmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlLmNhbGwoe2Nhc2VsZXNzOmx9LEIscyk6aS5pc1BsYWluT2JqZWN0KHMpP2kubWVyZ2Uoe30scyk6aS5pc0FycmF5KHMpP3Muc2xpY2UoKTpzfWZ1bmN0aW9uIHIoQixzLEMsbCl7aWYoaS5pc1VuZGVmaW5lZChzKSl7aWYoIWkuaXNVbmRlZmluZWQoQikpcmV0dXJuIEkodm9pZCAwLEIsQyxsKX1lbHNlIHJldHVybiBJKEIscyxDLGwpfWZ1bmN0aW9uIGcoQixzKXtpZighaS5pc1VuZGVmaW5lZChzKSlyZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gbyhCLHMpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKEIpKXJldHVybiBJKHZvaWQgMCxCKX1lbHNlIHJldHVybiBJKHZvaWQgMCxzKX1mdW5jdGlvbiBuKEIscyxDKXtpZihDIGluIHQpcmV0dXJuIEkoQixzKTtpZihDIGluIEEpcmV0dXJuIEkodm9pZCAwLEIpfWxldCBFPXt1cmw6ZyxtZXRob2Q6ZyxkYXRhOmcsYmFzZVVSTDpvLHRyYW5zZm9ybVJlcXVlc3Q6byx0cmFuc2Zvcm1SZXNwb25zZTpvLHBhcmFtc1NlcmlhbGl6ZXI6byx0aW1lb3V0Om8sdGltZW91dE1lc3NhZ2U6byx3aXRoQ3JlZGVudGlhbHM6byx3aXRoWFNSRlRva2VuOm8sYWRhcHRlcjpvLHJlc3BvbnNlVHlwZTpvLHhzcmZDb29raWVOYW1lOm8seHNyZkhlYWRlck5hbWU6byxvblVwbG9hZFByb2dyZXNzOm8sb25Eb3dubG9hZFByb2dyZXNzOm8sZGVjb21wcmVzczpvLG1heENvbnRlbnRMZW5ndGg6byxtYXhCb2R5TGVuZ3RoOm8sYmVmb3JlUmVkaXJlY3Q6byx0cmFuc3BvcnQ6byxodHRwQWdlbnQ6byxodHRwc0FnZW50Om8sY2FuY2VsVG9rZW46byxzb2NrZXRQYXRoOm8scmVzcG9uc2VFbmNvZGluZzpvLHZhbGlkYXRlU3RhdHVzOm4saGVhZGVyczooQixzLEMpPT5yKHNlKEIpLHNlKHMpLEMsITApfTtyZXR1cm4gaS5mb3JFYWNoKE9iamVjdC5rZXlzKHsuLi5BLC4uLnR9KSxmdW5jdGlvbihzKXtsZXQgQz1FW3NdfHxyLGw9QyhBW3NdLHRbc10scyk7aS5pc1VuZGVmaW5lZChsKSYmQyE9PW58fChlW3NdPWwpfSksZX12YXIgWUE9QT0+e2xldCB0PWIoe30sQSkse2RhdGE6ZSx3aXRoWFNSRlRva2VuOkkseHNyZkhlYWRlck5hbWU6cix4c3JmQ29va2llTmFtZTpnLGhlYWRlcnM6byxhdXRoOm59PXQ7aWYodC5oZWFkZXJzPW89cC5mcm9tKG8pLHQudXJsPW5BKEVBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKSxBLnBhcmFtcyxBLnBhcmFtc1NlcmlhbGl6ZXIpLG4mJm8uc2V0KCJBdXRob3JpemF0aW9uIiwiQmFzaWMgIitidG9hKChuLnVzZXJuYW1lfHwiIikrIjoiKyhuLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChuLnBhc3N3b3JkKSk6IiIpKSksaS5pc0Zvcm1EYXRhKGUpKXtpZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudnx8aC5oYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYpby5zZXRDb250ZW50VHlwZSh2b2lkIDApO2Vsc2UgaWYoaS5pc0Z1bmN0aW9uKGUuZ2V0SGVhZGVycykpe2xldCBFPWUuZ2V0SGVhZGVycygpLEI9WyJjb250ZW50LXR5cGUiLCJjb250ZW50LWxlbmd0aCJdO09iamVjdC5lbnRyaWVzKEUpLmZvckVhY2goKFtzLENdKT0+e0IuaW5jbHVkZXMocy50b0xvd2VyQ2FzZSgpKSYmby5zZXQocyxDKX0pfX1pZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKEkmJmkuaXNGdW5jdGlvbihJKSYmKEk9SSh0KSksSXx8SSE9PSExJiZnZSh0LnVybCkpKXtsZXQgRT1yJiZnJiZpZS5yZWFkKGcpO0UmJm8uc2V0KHIsRSl9cmV0dXJuIHR9O3ZhciBBcj10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUiLG5lPUFyJiZmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxJKXtsZXQgcj1ZQShBKSxnPXIuZGF0YSxvPXAuZnJvbShyLmhlYWRlcnMpLm5vcm1hbGl6ZSgpLHtyZXNwb25zZVR5cGU6bixvblVwbG9hZFByb2dyZXNzOkUsb25Eb3dubG9hZFByb2dyZXNzOkJ9PXIscyxDLGwsYSxRO2Z1bmN0aW9uIGYoKXthJiZhKCksUSYmUSgpLHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUocyksci5zaWduYWwmJnIuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixzKX1sZXQgYz1uZXcgWE1MSHR0cFJlcXVlc3Q7Yy5vcGVuKHIubWV0aG9kLnRvVXBwZXJDYXNlKCksci51cmwsITApLGMudGltZW91dD1yLnRpbWVvdXQ7ZnVuY3Rpb24gRCgpe2lmKCFjKXJldHVybjtsZXQgeT1wLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBjJiZjLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxrPXtkYXRhOiFufHxuPT09InRleHQifHxuPT09Impzb24iP2MucmVzcG9uc2VUZXh0OmMucmVzcG9uc2Usc3RhdHVzOmMuc3RhdHVzLHN0YXR1c1RleHQ6Yy5zdGF0dXNUZXh0LGhlYWRlcnM6eSxjb25maWc6QSxyZXF1ZXN0OmN9O1FBKGZ1bmN0aW9uKEcpe2UoRyksZigpfSxmdW5jdGlvbihHKXtJKEcpLGYoKX0sayksYz1udWxsfSJvbmxvYWRlbmQiaW4gYz9jLm9ubG9hZGVuZD1EOmMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IWN8fGMucmVhZHlTdGF0ZSE9PTR8fGMuc3RhdHVzPT09MCYmIShjLnJlc3BvbnNlVVJMJiZjLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6Iik9PT0wKXx8c2V0VGltZW91dChEKX0sYy5vbmFib3J0PWZ1bmN0aW9uKCl7YyYmKEkobmV3IHUoIlJlcXVlc3QgYWJvcnRlZCIsdS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsKX0sYy5vbmVycm9yPWZ1bmN0aW9uKFIpe2xldCBrPVImJlIubWVzc2FnZT9SLm1lc3NhZ2U6Ik5ldHdvcmsgRXJyb3IiLFA9bmV3IHUoayx1LkVSUl9ORVRXT1JLLEEsYyk7UC5ldmVudD1SfHxudWxsLEkoUCksYz1udWxsfSxjLm9udGltZW91dD1mdW5jdGlvbigpe2xldCBSPXIudGltZW91dD8idGltZW91dCBvZiAiK3IudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixrPXIudHJhbnNpdGlvbmFsfHxiQTtyLnRpbWVvdXRFcnJvck1lc3NhZ2UmJihSPXIudGltZW91dEVycm9yTWVzc2FnZSksSShuZXcgdShSLGsuY2xhcmlmeVRpbWVvdXRFcnJvcj91LkVUSU1FRE9VVDp1LkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGx9LGc9PT12b2lkIDAmJm8uc2V0Q29udGVudFR5cGUobnVsbCksInNldFJlcXVlc3RIZWFkZXIiaW4gYyYmaS5mb3JFYWNoKG8udG9KU09OKCksZnVuY3Rpb24oUixrKXtjLnNldFJlcXVlc3RIZWFkZXIoayxSKX0pLGkuaXNVbmRlZmluZWQoci53aXRoQ3JlZGVudGlhbHMpfHwoYy53aXRoQ3JlZGVudGlhbHM9ISFyLndpdGhDcmVkZW50aWFscyksbiYmbiE9PSJqc29uIiYmKGMucmVzcG9uc2VUeXBlPXIucmVzcG9uc2VUeXBlKSxCJiYoW2wsUV09ZUEoQiwhMCksYy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsbCkpLEUmJmMudXBsb2FkJiYoW0MsYV09ZUEoRSksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLEMpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLGEpKSwoci5jYW5jZWxUb2tlbnx8ci5zaWduYWwpJiYocz15PT57YyYmKEkoIXl8fHkudHlwZT9uZXcgSChudWxsLEEsYyk6eSksYy5hYm9ydCgpLGM9bnVsbCl9LHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiYoci5zaWduYWwuYWJvcnRlZD9zKCk6ci5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpKSk7bGV0IEY9c3Qoci51cmwpO2lmKEYmJmgucHJvdG9jb2xzLmluZGV4T2YoRik9PT0tMSl7SShuZXcgdSgiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIitGKyI6Iix1LkVSUl9CQURfUkVRVUVTVCxBKSk7cmV0dXJufWMuc2VuZChnfHxudWxsKX0pfTt2YXIgdHI9KEEsdCk9PntsZXR7bGVuZ3RoOmV9PUE9QT9BLmZpbHRlcihCb29sZWFuKTpbXTtpZih0fHxlKXtsZXQgST1uZXcgQWJvcnRDb250cm9sbGVyLHIsZz1mdW5jdGlvbihCKXtpZighcil7cj0hMCxuKCk7bGV0IHM9QiBpbnN0YW5jZW9mIEVycm9yP0I6dGhpcy5yZWFzb247SS5hYm9ydChzIGluc3RhbmNlb2YgdT9zOm5ldyBIKHMgaW5zdGFuY2VvZiBFcnJvcj9zLm1lc3NhZ2U6cykpfX0sbz10JiZzZXRUaW1lb3V0KCgpPT57bz1udWxsLGcobmV3IHUoYHRpbWVvdXQgJHt0fSBvZiBtcyBleGNlZWRlZGAsdS5FVElNRURPVVQpKX0sdCksbj0oKT0+e0EmJihvJiZjbGVhclRpbWVvdXQobyksbz1udWxsLEEuZm9yRWFjaChCPT57Qi51bnN1YnNjcmliZT9CLnVuc3Vic2NyaWJlKGcpOkIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGcpfSksQT1udWxsKX07QS5mb3JFYWNoKEI9PkIuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGcpKTtsZXR7c2lnbmFsOkV9PUk7cmV0dXJuIEUudW5zdWJzY3JpYmU9KCk9PmkuYXNhcChuKSxFfX0sQ2U9dHI7dmFyIGVyPWZ1bmN0aW9uKihBLHQpe2xldCBlPUEuYnl0ZUxlbmd0aDtpZighdHx8ZTx0KXt5aWVsZCBBO3JldHVybn1sZXQgST0wLHI7Zm9yKDtJPGU7KXI9SSt0LHlpZWxkIEEuc2xpY2UoSSxyKSxJPXJ9LElyPWFzeW5jIGZ1bmN0aW9uKihBLHQpe2ZvciBhd2FpdChsZXQgZSBvZiBycihBKSl5aWVsZCplcihlLHQpfSxycj1hc3luYyBmdW5jdGlvbiooQSl7aWYoQVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pe3lpZWxkKkE7cmV0dXJufWxldCB0PUEuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6ZSx2YWx1ZTpJfT1hd2FpdCB0LnJlYWQoKTtpZihlKWJyZWFrO3lpZWxkIEl9fWZpbmFsbHl7YXdhaXQgdC5jYW5jZWwoKX19LFF0PShBLHQsZSxJKT0+e2xldCByPUlyKEEsdCksZz0wLG8sbj1FPT57b3x8KG89ITAsSSYmSShFKSl9O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwoRSl7dHJ5e2xldHtkb25lOkIsdmFsdWU6c309YXdhaXQgci5uZXh0KCk7aWYoQil7bigpLEUuY2xvc2UoKTtyZXR1cm59bGV0IEM9cy5ieXRlTGVuZ3RoO2lmKGUpe2xldCBsPWcrPUM7ZShsKX1FLmVucXVldWUobmV3IFVpbnQ4QXJyYXkocykpfWNhdGNoKEIpe3Rocm93IG4oQiksQn19LGNhbmNlbChFKXtyZXR1cm4gbihFKSxyLnJldHVybigpfX0se2hpZ2hXYXRlck1hcms6Mn0pfTt2YXIgQmU9NjQqMTAyNCx7aXNGdW5jdGlvbjpxQX09aSxjZT0oKHtmZXRjaDpBLFJlcXVlc3Q6dCxSZXNwb25zZTplfSk9Pih7ZmV0Y2g6QSxSZXF1ZXN0OnQsUmVzcG9uc2U6ZX0pKShpLmdsb2JhbCkse1JlYWRhYmxlU3RyZWFtOmFlLFRleHRFbmNvZGVyOlFlfT1pLmdsb2JhbCxFZT0oQSwuLi50KT0+e3RyeXtyZXR1cm4hIUEoLi4udCl9Y2F0Y2h7cmV0dXJuITF9fSxvcj1BPT57bGV0e2ZldGNoOnQsUmVxdWVzdDplLFJlc3BvbnNlOkl9PU9iamVjdC5hc3NpZ24oe30sY2UsQSkscj1xQSh0KSxnPXFBKGUpLG89cUEoSSk7aWYoIXIpcmV0dXJuITE7bGV0IG49ciYmcUEoYWUpLEU9ciYmKHR5cGVvZiBRZT09ImZ1bmN0aW9uIj8oUT0+Zj0+US5lbmNvZGUoZikpKG5ldyBRZSk6YXN5bmMgUT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IGUoUSkuYXJyYXlCdWZmZXIoKSkpLEI9ZyYmbiYmRWUoKCk9PntsZXQgUT0hMSxmPW5ldyBlKGgub3JpZ2luLHtib2R5Om5ldyBhZSxtZXRob2Q6IlBPU1QiLGdldCBkdXBsZXgoKXtyZXR1cm4gUT0hMCwiaGFsZiJ9fSkuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpO3JldHVybiBRJiYhZn0pLHM9byYmbiYmRWUoKCk9PmkuaXNSZWFkYWJsZVN0cmVhbShuZXcgSSgiIikuYm9keSkpLEM9e3N0cmVhbTpzJiYoUT0+US5ib2R5KX07ciYmWyJ0ZXh0IiwiYXJyYXlCdWZmZXIiLCJibG9iIiwiZm9ybURhdGEiLCJzdHJlYW0iXS5mb3JFYWNoKFE9PnshQ1tRXSYmKENbUV09KGYsYyk9PntsZXQgRD1mJiZmW1FdO2lmKEQpcmV0dXJuIEQuY2FsbChmKTt0aHJvdyBuZXcgdShgUmVzcG9uc2UgdHlwZSBcJyR7UX1cJyBpcyBub3Qgc3VwcG9ydGVkYCx1LkVSUl9OT1RfU1VQUE9SVCxjKX0pfSk7bGV0IGw9YXN5bmMgUT0+e2lmKFE9PW51bGwpcmV0dXJuIDA7aWYoaS5pc0Jsb2IoUSkpcmV0dXJuIFEuc2l6ZTtpZihpLmlzU3BlY0NvbXBsaWFudEZvcm0oUSkpcmV0dXJuKGF3YWl0IG5ldyBlKGgub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6UX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoaS5pc0FycmF5QnVmZmVyVmlldyhRKXx8aS5pc0FycmF5QnVmZmVyKFEpKXJldHVybiBRLmJ5dGVMZW5ndGg7aWYoaS5pc1VSTFNlYXJjaFBhcmFtcyhRKSYmKFE9USsiIiksaS5pc1N0cmluZyhRKSlyZXR1cm4oYXdhaXQgRShRKSkuYnl0ZUxlbmd0aH0sYT1hc3luYyhRLGYpPT57bGV0IGM9aS50b0Zpbml0ZU51bWJlcihRLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGM/P2woZil9O3JldHVybiBhc3luYyBRPT57bGV0e3VybDpmLG1ldGhvZDpjLGRhdGE6RCxzaWduYWw6RixjYW5jZWxUb2tlbjp5LHRpbWVvdXQ6UixvbkRvd25sb2FkUHJvZ3Jlc3M6ayxvblVwbG9hZFByb2dyZXNzOlAscmVzcG9uc2VUeXBlOkcsaGVhZGVyczpXQSx3aXRoQ3JlZGVudGlhbHM6ZEE9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6bXR9PVlBKFEpO0c9Rz8oRysiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IERBPUNlKFtGLHkmJnkudG9BYm9ydFNpZ25hbCgpXSxSKSxyQT1udWxsLGo9REEmJkRBLnVuc3Vic2NyaWJlJiYoKCk9PntEQS51bnN1YnNjcmliZSgpfSksd3Q7dHJ5e2lmKFAmJkImJmMhPT0iZ2V0IiYmYyE9PSJoZWFkIiYmKHd0PWF3YWl0IGEoV0EsRCkpIT09MCl7bGV0IE89bmV3IGUoZix7bWV0aG9kOiJQT1NUIixib2R5OkQsZHVwbGV4OiJoYWxmIn0pLFg7aWYoaS5pc0Zvcm1EYXRhKEQpJiYoWD1PLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJldBLnNldENvbnRlbnRUeXBlKFgpLE8uYm9keSl7bGV0W1pBLGhBXT1udCh3dCxlQShDdChQKSkpO0Q9UXQoTy5ib2R5LEJlLFpBLGhBKX19aS5pc1N0cmluZyhkQSl8fChkQT1kQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgSj1nJiYiY3JlZGVudGlhbHMiaW4gZS5wcm90b3R5cGUscHQ9ey4uLm10LHNpZ25hbDpEQSxtZXRob2Q6Yy50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6V0Eubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpELGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6Sj9kQTp2b2lkIDB9O3JBPWcmJm5ldyBlKGYscHQpO2xldCBLPWF3YWl0KGc/dChyQSxtdCk6dChmLHB0KSksU3Q9cyYmKEc9PT0ic3RyZWFtInx8Rz09PSJyZXNwb25zZSIpO2lmKHMmJihrfHxTdCYmaikpe2xldCBPPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKEZ0PT57T1tGdF09S1tGdF19KTtsZXQgWD1pLnRvRmluaXRlTnVtYmVyKEsuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtaQSxoQV09ayYmbnQoWCxlQShDdChrKSwhMCkpfHxbXTtLPW5ldyBJKFF0KEsuYm9keSxCZSxaQSwoKT0+e2hBJiZoQSgpLGomJmooKX0pLE8pfUc9R3x8InRleHQiO2xldCBIZT1hd2FpdCBDW2kuZmluZEtleShDLEcpfHwidGV4dCJdKEssUSk7cmV0dXJuIVN0JiZqJiZqKCksYXdhaXQgbmV3IFByb21pc2UoKE8sWCk9PntRQShPLFgse2RhdGE6SGUsaGVhZGVyczpwLmZyb20oSy5oZWFkZXJzKSxzdGF0dXM6Sy5zdGF0dXMsc3RhdHVzVGV4dDpLLnN0YXR1c1RleHQsY29uZmlnOlEscmVxdWVzdDpyQX0pfSl9Y2F0Y2goSil7dGhyb3cgaiYmaigpLEomJkoubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KEoubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxRLHJBKSx7Y2F1c2U6Si5jYXVzZXx8Sn0pOnUuZnJvbShKLEomJkouY29kZSxRLHJBKX19fSxncj1uZXcgTWFwLEV0PUE9PntsZXQgdD1pLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LGNlLEE/QS5lbnY6bnVsbCkse2ZldGNoOmUsUmVxdWVzdDpJLFJlc3BvbnNlOnJ9PXQsZz1bSSxyLGVdLG89Zy5sZW5ndGgsbj1vLEUsQixzPWdyO2Zvcig7bi0tOylFPWdbbl0sQj1zLmdldChFKSxCPT09dm9pZCAwJiZzLnNldChFLEI9bj9uZXcgTWFwOm9yKHQpKSxzPUI7cmV0dXJuIEJ9LEdnPUV0KCk7dmFyIGN0PXtodHRwOmtBLHhocjpuZSxmZXRjaDp7Z2V0OkV0fX07aS5mb3JFYWNoKGN0LChBLHQpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6dH0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTp0fSl9fSk7dmFyIGZlPUE9PmAtICR7QX1gLHNyPUE9PmkuaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxNQT17Z2V0QWRhcHRlcjooQSx0KT0+e0E9aS5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6ZX09QSxJLHIsZz17fTtmb3IobGV0IG89MDtvPGU7bysrKXtJPUFbb107bGV0IG47aWYocj1JLCFzcihJKSYmKHI9Y3RbKG49U3RyaW5nKEkpKS50b0xvd2VyQ2FzZSgpXSxyPT09dm9pZCAwKSl0aHJvdyBuZXcgdShgVW5rbm93biBhZGFwdGVyIFwnJHtufVwnYCk7aWYociYmKGkuaXNGdW5jdGlvbihyKXx8KHI9ci5nZXQodCkpKSlicmVhaztnW258fCIlMjMiK29dPXJ9aWYoIXIpe2xldCBvPU9iamVjdC5lbnRyaWVzKGcpLm1hcCgoW0UsQl0pPT5gYWRhcHRlciAke0V9IGArKEI9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxuPWU/by5sZW5ndGg+MT9gc2luY2UgOiUwQWArby5tYXAoZmUpLmpvaW4oYCUwQWApOiIgIitmZShvWzBdKToiYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQiO3Rocm93IG5ldyB1KCJUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIrbiwiRVJSX05PVF9TVVBQT1JUIil9cmV0dXJuIHJ9LGFkYXB0ZXJzOmN0fTtmdW5jdGlvbiBmdChBKXtpZihBLmNhbmNlbFRva2VuJiZBLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxBLnNpZ25hbCYmQS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgSChudWxsLEEpfWZ1bmN0aW9uIEtBKEEpe3JldHVybiBmdChBKSxBLmhlYWRlcnM9cC5mcm9tKEEuaGVhZGVycyksQS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlcXVlc3QpLFsicG9zdCIsInB1dCIsInBhdGNoIl0uaW5kZXhPZihBLm1ldGhvZCkhPT0tMSYmQS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCExKSxNQS5nZXRBZGFwdGVyKEEuYWRhcHRlcnx8QUEuYWRhcHRlcixBKShBKS50aGVuKGZ1bmN0aW9uKEkpe3JldHVybiBmdChBKSxJLmRhdGE9QkEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsSSksSS5oZWFkZXJzPXAuZnJvbShJLmhlYWRlcnMpLEl9LGZ1bmN0aW9uKEkpe3JldHVybiBhQShJKXx8KGZ0KEEpLEkmJkkucmVzcG9uc2UmJihJLnJlc3BvbnNlLmRhdGE9QkEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsSS5yZXNwb25zZSksSS5yZXNwb25zZS5oZWFkZXJzPXAuZnJvbShJLnJlc3BvbnNlLmhlYWRlcnMpKSksUHJvbWlzZS5yZWplY3QoSSl9KX12YXIgT0E9IjEuMTIuMCI7dmFyIFRBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSx0KT0+e1RBW0FdPWZ1bmN0aW9uKEkpe3JldHVybiB0eXBlb2YgST09PUF8fCJhIisodDwxPyJuICI6IiAiKStBfX0pO3ZhciBsZT17fTtUQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24odCxlLEkpe2Z1bmN0aW9uIHIoZyxvKXtyZXR1cm4iW0F4aW9zIHYiK09BKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gXCciK2crIlwnIitvKyhJPyIuICIrSToiIil9cmV0dXJuKGcsbyxuKT0+e2lmKHQ9PT0hMSl0aHJvdyBuZXcgdShyKG8sIiBoYXMgYmVlbiByZW1vdmVkIisoZT8iIGluICIrZToiIikpLHUuRVJSX0RFUFJFQ0FURUQpO3JldHVybiBlJiYhbGVbb10mJihsZVtvXT0hMCxjb25zb2xlLndhcm4ocihvLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2IitlKyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLHQ/dChnLG8sbik6ITB9fTtUQS5zcGVsbGluZz1mdW5jdGlvbih0KXtyZXR1cm4oZSxJKT0+KGNvbnNvbGUud2FybihgJHtJfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke3R9YCksITApfTtmdW5jdGlvbiBucihBLHQsZSl7aWYodHlwZW9mIEEhPSJvYmplY3QiKXRocm93IG5ldyB1KCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iix1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgST1PYmplY3Qua2V5cyhBKSxyPUkubGVuZ3RoO2Zvcig7ci0tID4wOyl7bGV0IGc9SVtyXSxvPXRbZ107aWYobyl7bGV0IG49QVtnXSxFPW49PT12b2lkIDB8fG8obixnLEEpO2lmKEUhPT0hMCl0aHJvdyBuZXcgdSgib3B0aW9uICIrZysiIG11c3QgYmUgIitFLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnRpbnVlfWlmKGUhPT0hMCl0aHJvdyBuZXcgdSgiVW5rbm93biBvcHRpb24gIitnLHUuRVJSX0JBRF9PUFRJT04pfX12YXIgY0E9e2Fzc2VydE9wdGlvbnM6bnIsdmFsaWRhdG9yczpUQX07dmFyIFk9Y0EudmFsaWRhdG9ycyxJQT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmRlZmF1bHRzPXR8fHt9LHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyB0dCxyZXNwb25zZTpuZXcgdHR9fWFzeW5jIHJlcXVlc3QodCxlKXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QodCxlKX1jYXRjaChJKXtpZihJIGluc3RhbmNlb2YgRXJyb3Ipe2xldCByPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHIpOnI9bmV3IEVycm9yO2xldCBnPXIuc3RhY2s/ci5zdGFjay5yZXBsYWNlKC9eLitcXG4vLCIiKToiIjt0cnl7SS5zdGFjaz9nJiYhU3RyaW5nKEkuc3RhY2spLmVuZHNXaXRoKGcucmVwbGFjZSgvXi4rXFxuLitcXG4vLCIiKSkmJihJLnN0YWNrKz1gJTBBYCtnKTpJLnN0YWNrPWd9Y2F0Y2h7fX10aHJvdyBJfX1fcmVxdWVzdCh0LGUpe3R5cGVvZiB0PT0ic3RyaW5nIj8oZT1lfHx7fSxlLnVybD10KTplPXR8fHt9LGU9Yih0aGlzLmRlZmF1bHRzLGUpO2xldHt0cmFuc2l0aW9uYWw6SSxwYXJhbXNTZXJpYWxpemVyOnIsaGVhZGVyczpnfT1lO0khPT12b2lkIDAmJmNBLmFzc2VydE9wdGlvbnMoSSx7c2lsZW50SlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpZLnRyYW5zaXRpb25hbChZLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKX0sITEpLHIhPW51bGwmJihpLmlzRnVuY3Rpb24ocik/ZS5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6cn06Y0EuYXNzZXJ0T3B0aW9ucyhyLHtlbmNvZGU6WS5mdW5jdGlvbixzZXJpYWxpemU6WS5mdW5jdGlvbn0sITApKSxlLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD9lLmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6ZS5hbGxvd0Fic29sdXRlVXJscz0hMCksY0EuYXNzZXJ0T3B0aW9ucyhlLHtiYXNlVXJsOlkuc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOlkuc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLGUubWV0aG9kPShlLm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBvPWcmJmkubWVyZ2UoZy5jb21tb24sZ1tlLm1ldGhvZF0pO2cmJmkuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxRPT57ZGVsZXRlIGdbUV19KSxlLmhlYWRlcnM9cC5jb25jYXQobyxnKTtsZXQgbj1bXSxFPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihmKXt0eXBlb2YgZi5ydW5XaGVuPT0iZnVuY3Rpb24iJiZmLnJ1bldoZW4oZSk9PT0hMXx8KEU9RSYmZi5zeW5jaHJvbm91cyxuLnVuc2hpZnQoZi5mdWxmaWxsZWQsZi5yZWplY3RlZCkpfSk7bGV0IEI9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihmKXtCLnB1c2goZi5mdWxmaWxsZWQsZi5yZWplY3RlZCl9KTtsZXQgcyxDPTAsbDtpZighRSl7bGV0IFE9W0tBLmJpbmQodGhpcyksdm9pZCAwXTtmb3IoUS51bnNoaWZ0KC4uLm4pLFEucHVzaCguLi5CKSxsPVEubGVuZ3RoLHM9UHJvbWlzZS5yZXNvbHZlKGUpO0M8bDspcz1zLnRoZW4oUVtDKytdLFFbQysrXSk7cmV0dXJuIHN9bD1uLmxlbmd0aDtsZXQgYT1lO2ZvcihDPTA7QzxsOyl7bGV0IFE9bltDKytdLGY9bltDKytdO3RyeXthPVEoYSl9Y2F0Y2goYyl7Zi5jYWxsKHRoaXMsYyk7YnJlYWt9fXRyeXtzPUtBLmNhbGwodGhpcyxhKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKEM9MCxsPUIubGVuZ3RoO0M8bDspcz1zLnRoZW4oQltDKytdLEJbQysrXSk7cmV0dXJuIHN9Z2V0VXJpKHQpe3Q9Yih0aGlzLmRlZmF1bHRzLHQpO2xldCBlPUVBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gbkEoZSx0LnBhcmFtcyx0LnBhcmFtc1NlcmlhbGl6ZXIpfX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbih0KXtJQS5wcm90b3R5cGVbdF09ZnVuY3Rpb24oZSxJKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGIoSXx8e30se21ldGhvZDp0LHVybDplLGRhdGE6KEl8fHt9KS5kYXRhfSkpfX0pO2kuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoSSl7cmV0dXJuIGZ1bmN0aW9uKGcsbyxuKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGIobnx8e30se21ldGhvZDp0LGhlYWRlcnM6ST97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6ZyxkYXRhOm99KSl9fUlBLnByb3RvdHlwZVt0XT1lKCksSUEucHJvdG90eXBlW3QrIkZvcm0iXT1lKCEwKX0pO3ZhciBmQT1JQTt2YXIgbHQ9Y2xhc3MgQXtjb25zdHJ1Y3Rvcih0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IGU7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGcpe2U9Z30pO2xldCBJPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4ocj0+e2lmKCFJLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBnPUkuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtnLS0gPjA7KUkuX2xpc3RlbmVyc1tnXShyKTtJLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPXI9PntsZXQgZyxvPW5ldyBQcm9taXNlKG49PntJLnN1YnNjcmliZShuKSxnPW59KS50aGVuKHIpO3JldHVybiBvLmNhbmNlbD1mdW5jdGlvbigpe0kudW5zdWJzY3JpYmUoZyl9LG99LHQoZnVuY3Rpb24oZyxvLG4pe0kucmVhc29ufHwoSS5yZWFzb249bmV3IEgoZyxvLG4pLGUoSS5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUodCl7aWYodGhpcy5yZWFzb24pe3QodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2godCk6dGhpcy5fbGlzdGVuZXJzPVt0XX11bnN1YnNjcmliZSh0KXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgZT10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZih0KTtlIT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UoZSwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IHQ9bmV3IEFib3J0Q29udHJvbGxlcixlPUk9Pnt0LmFib3J0KEkpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUoZSksdC5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUoZSksdC5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCB0O3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihyKXt0PXJ9KSxjYW5jZWw6dH19fSx1ZT1sdDtmdW5jdGlvbiB1dChBKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIEEuYXBwbHkobnVsbCxlKX19ZnVuY3Rpb24gZHQoQSl7cmV0dXJuIGkuaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIER0PXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhEdCkuZm9yRWFjaCgoW0EsdF0pPT57RHRbdF09QX0pO3ZhciBkZT1EdDtmdW5jdGlvbiBEZShBKXtsZXQgdD1uZXcgZkEoQSksZT1vQShmQS5wcm90b3R5cGUucmVxdWVzdCx0KTtyZXR1cm4gaS5leHRlbmQoZSxmQS5wcm90b3R5cGUsdCx7YWxsT3duS2V5czohMH0pLGkuZXh0ZW5kKGUsdCxudWxsLHthbGxPd25LZXlzOiEwfSksZS5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIERlKGIoQSxyKSl9LGV9dmFyIG09RGUoQUEpO20uQXhpb3M9ZkE7bS5DYW5jZWxlZEVycm9yPUg7bS5DYW5jZWxUb2tlbj11ZTttLmlzQ2FuY2VsPWFBO20uVkVSU0lPTj1PQTttLnRvRm9ybURhdGE9VDttLkF4aW9zRXJyb3I9dTttLkNhbmNlbD1tLkNhbmNlbGVkRXJyb3I7bS5hbGw9ZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UuYWxsKHQpfTttLnNwcmVhZD11dDttLmlzQXhpb3NFcnJvcj1kdDttLm1lcmdlQ29uZmlnPWI7bS5BeGlvc0hlYWRlcnM9cDttLmZvcm1Ub0pTT049QT0+SkEoaS5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTttLmdldEFkYXB0ZXI9TUEuZ2V0QWRhcHRlcjttLkh0dHBTdGF0dXNDb2RlPWRlO20uZGVmYXVsdD1tO3ZhciB4QT1tO3ZhcntBeGlvczpSaSxBeGlvc0Vycm9yOk5pLENhbmNlbGVkRXJyb3I6VWksaXNDYW5jZWw6R2ksQ2FuY2VsVG9rZW46a2ksVkVSU0lPTjpMaSxhbGw6YmksQ2FuY2VsOkppLGlzQXhpb3NFcnJvcjpIaSxzcHJlYWQ6WWksdG9Gb3JtRGF0YTpxaSxBeGlvc0hlYWRlcnM6TWksSHR0cFN0YXR1c0NvZGU6S2ksZm9ybVRvSlNPTjpPaSxnZXRBZGFwdGVyOlRpLG1lcmdlQ29uZmlnOnhpfT14QTt2YXIgbEEsTSx5dCxodD17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe3l0PW5ldyBVaW50OEFycmF5KE0uZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSxQQT1jbGFzc3tpbml0KCl7cmV0dXJuIGxBfHwodHlwZW9mIGZldGNoPCJ1Ij9sQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK2hlKS50aGVuKHQ9PnQuYXJyYXlCdWZmZXIoKSkudGhlbih0PT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZSh0LGh0KSkudGhlbih0aGlzLl9pbml0KTpsQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShoZSwiYmFzZTY0IiksaHQpLnRoZW4odGhpcy5faW5pdCksbEEpfV9pbml0KHQpe009dC5pbnN0YW5jZSxodC5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUodCxlPTApe2lmKCFNKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCBJPXQuYnl0ZUxlbmd0aCxyPU0uZXhwb3J0cy5tYWxsb2MoSSk7eXQuc2V0KHQsciksZT1lfHxOdW1iZXIoTS5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUocixJKSk7bGV0IGc9TS5leHBvcnRzLm1hbGxvYyhlKSxvPU0uZXhwb3J0cy5aU1REX2RlY29tcHJlc3MoZyxlLHIsSSksbj15dC5zbGljZShnLGcrbyk7cmV0dXJuIE0uZXhwb3J0cy5mcmVlKHIpLE0uZXhwb3J0cy5mcmVlKGcpLG59fSxoZT0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciB5ZT1uZXcgUEEsbWU9ITE7YXN5bmMgZnVuY3Rpb24gQ3IoQSx0LGUpe2xldCBJPW51bGw7dHlwZW9mIEEhPSJzdHJpbmciP0k9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP0k9QTpJPWAke3R9LyR7QX1gLEkuZW5kc1dpdGgoIi5qcyIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTMpKSxJLmVuZHNXaXRoKCIud2FzbSIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTUpKSxJLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC05KSk7bGV0IHI9YCR7SX0ud2FzbWAsZz1hd2FpdCB4QS5nZXQoYCR7cn0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOmV9KTttZXx8KGF3YWl0IHllLmluaXQoKSxtZT0hMCk7bGV0IG49eWUuZGVjb2RlKG5ldyBVaW50OEFycmF5KGcuZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke0l9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6bn0pfXZhciB3ZT1Dcjt2YXIgakE9bmV3IE1hcDthc3luYyBmdW5jdGlvbiBCcihBLHQsZSl7bGV0IEk9QSxyPUEsZz1udWxsO3JldHVybiB0eXBlb2YgQSE9InN0cmluZyImJihJPW5ldyBVUkwoQS5ocmVmKSxyPUkuaHJlZiksakEuaGFzKHIpP2c9YXdhaXQgakEuZ2V0KHIpOihqQS5zZXQocix3ZShJLHQsZSkpLGc9YXdhaXQgakEuZ2V0KHIpKSxnfXZhciBwZT1Ccjt2YXIgYXI9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LGQ9YXI7dmFyIFFyPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sVT1Rcjt2YXIgRXI9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFY9RXI7ZnVuY3Rpb24gY3IoQSx0KXtsZXQgZT1udWxsO3N3aXRjaChBKXtjYXNlIFUuVUludDg6e2U9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDg6e2U9bmV3IEludDhBcnJheSh0KTticmVha31jYXNlIFUuVUludDE2OntlPW5ldyBVaW50MTZBcnJheSh0KTticmVha31jYXNlIFUuSW50MTY6e2U9bmV3IEludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQzMjp7ZT1uZXcgVWludDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDMyOntlPW5ldyBJbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ1VpbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ0ludDY0QXJyYXkodCk6ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIFYuRmxvYXQzMjp7ZT1uZXcgRmxvYXQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVi5GbG9hdDY0OntlPW5ldyBGbG9hdDY0QXJyYXkodCk7YnJlYWt9Y2FzZSJudWxsIjp7ZT1udWxsO2JyZWFrfWNhc2UgbnVsbDp7ZT1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIGV9dmFyIHE9Y3I7dmFyIFJlPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLFNlPW5ldyBUZXh0RW5jb2RlcixGZT1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gZnIoQSx0KXtsZXQgZT17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSxJPUEuZnNfb3Blbih0LGUuZmxhZ3MpLGc9QS5mc19zdGF0KHQpLnNpemUsbz1udWxsO1JlP289bmV3IFNoYXJlZEFycmF5QnVmZmVyKGcpOm89bmV3IEFycmF5QnVmZmVyKGcpO2xldCBuPW5ldyBVaW50OEFycmF5KG8pO3JldHVybiBBLmZzX3JlYWQoSSxuLDAsZywwKSxBLmZzX2Nsb3NlKEkpLG59ZnVuY3Rpb24gTmUoQSx0LGUpe2xldCBJPW51bGw7UmU/ST1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoZSk6ST1uZXcgQXJyYXlCdWZmZXIoZSk7bGV0IHI9bmV3IFVpbnQ4QXJyYXkoSSksZz1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsdCxlKTtyZXR1cm4gci5zZXQoZykscn1mdW5jdGlvbiB3KEEsdCxlLEkpe2xldCByPTA7cmV0dXJuIHQhPT1udWxsJiYocj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLEksdC5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheSh0LmJ1ZmZlcikscikpLHJ9ZnVuY3Rpb24geChBLHQsZSl7bGV0IEk9SlNPTi5zdHJpbmdpZnkodCkscj1BLmxlbmd0aEJ5dGVzVVRGOChJKSsxLGc9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHJdKTtBLnN0cmluZ1RvVVRGOChJLGcscil9ZnVuY3Rpb24gUyhBLHQsZSxJKXtsZXQgcj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxnPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsZV0pLG89TmUoQSxyLGcpO3JldHVybiBxKEksby5idWZmZXIpfWZ1bmN0aW9uIHVBKEEsdCl7bGV0IGU9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCx0XSksST1BLlVURjhUb1N0cmluZyhlKTtyZXR1cm4gSlNPTi5wYXJzZShJKX1mdW5jdGlvbiBscihBLHQsZSxJKXtJIT1udWxsJiZJLmxlbmd0aD4wJiZJLmZvckVhY2goZnVuY3Rpb24oQixzKXtzd2l0Y2goQi50eXBlKXtjYXNlIGQuVGV4dFN0cmVhbTp7bGV0IEM9U2UuZW5jb2RlKEIuZGF0YS5kYXRhKSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IEM9U2UuZW5jb2RlKEpTT04uc3RyaW5naWZ5KEIuZGF0YSkpLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLkJpbmFyeVN0cmVhbTp7bGV0IEM9Qi5kYXRhLmRhdGEsbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgZC5JbWFnZTp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMuZGF0YSxzLDApLGE9dyhBLEMuZGlyZWN0aW9uLHMsMSksUT10eXBlb2YgQy5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShDLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sZj17aW1hZ2VUeXBlOkMuaW1hZ2VUeXBlLG5hbWU6Qy5uYW1lLG9yaWdpbjpDLm9yaWdpbixzcGFjaW5nOkMuc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWAsc2l6ZTpDLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxtZXRhZGF0YTpRfTt4KEEsZixzKTticmVha31jYXNlIGQuTWVzaDp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMucG9pbnRzLHMsMCksYT13KEEsQy5jZWxscyxzLDEpLFE9dyhBLEMucG9pbnREYXRhLHMsMiksZj13KEEsQy5jZWxsRGF0YSxzLDMpLGM9e21lc2hUeXBlOkMubWVzaFR5cGUsbmFtZTpDLm5hbWUsbnVtYmVyT2ZQb2ludHM6Qy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZDZWxsczpDLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWAsY2VsbEJ1ZmZlclNpemU6Qy5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOkMubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTt4KEEsYyxzKTticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMucG9pbnREYXRhLHMsMSksUT17cG9pbnRTZXRUeXBlOkMucG9pbnRTZXRUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mUG9pbnRQaXhlbHM6Qy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YH07eChBLFEscyk7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBDPUIuZGF0YSxsPVtdLGE9MDtDLmZvckVhY2goUT0+e2xldCBmPSIiLGM9IiI7US50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGY9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5maXhlZFBhcmFtZXRlcnMscyxhKX1gLGErPTEsYz1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3coQSxRLnBhcmFtZXRlcnMscyxhKX1gLGErPTEpO2xldCBEPXt0cmFuc2Zvcm1UeXBlOlEudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpRLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpRLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOlEubmFtZSxpbnB1dFNwYWNlTmFtZTpRLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpRLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmMsZml4ZWRQYXJhbWV0ZXJzOmZ9O2wucHVzaChEKX0pLHgoQSxsLHMpO2JyZWFrfWNhc2UgZC5Qb2x5RGF0YTp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMucG9pbnRzLHMsMCksYT13KEEsQy52ZXJ0aWNlcyxzLDEpLFE9dyhBLEMubGluZXMscywyKSxmPXcoQSxDLnBvbHlnb25zLHMsMyksYz13KEEsQy50cmlhbmdsZVN0cmlwcyxzLDQpLEQ9dyhBLEMucG9pbnREYXRhLHMsNSksRj13KEEsQy5wb2ludERhdGEscyw2KSx5PXtwb2x5RGF0YVR5cGU6Qy5wb2x5RGF0YVR5cGUsbmFtZTpDLm5hbWUsbnVtYmVyT2ZQb2ludHM6Qy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsdmVydGljZXNCdWZmZXJTaXplOkMudmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLGxpbmVzQnVmZmVyU2l6ZTpDLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxwb2x5Z29uc0J1ZmZlclNpemU6Qy5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOkMudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mUG9pbnRQaXhlbHM6Qy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0R9YCxudW1iZXJPZkNlbGxQaXhlbHM6Qy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtGfWB9O3goQSx5LHMpO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCByPUEuc3RhY2tTYXZlKCksZz0wO3RyeXtnPUEuY2FsbE1haW4odC5zbGljZSgpKX1jYXRjaChCKXt0aHJvdyB0eXBlb2YgQj09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShCKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxCfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUocil9bGV0IG89QS5nZXRNb2R1bGVTdGRvdXQoKSxuPUEuZ2V0TW9kdWxlU3RkZXJyKCksRT1bXTtyZXR1cm4gZSE9bnVsbCYmZS5sZW5ndGg+MCYmZz09PTAmJmUuZm9yRWFjaChmdW5jdGlvbihCLHMpe2xldCBDPW51bGw7c3dpdGNoKEIudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsYSxRKTtDPXtkYXRhOkZlLmRlY29kZShmKX07YnJlYWt9Y2FzZSBkLkpzb25Db21wYXRpYmxlOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGEsUSk7Qz1KU09OLnBhcnNlKEZlLmRlY29kZShmKSk7YnJlYWt9Y2FzZSBkLkJpbmFyeVN0cmVhbTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKTtDPXtkYXRhOk5lKEEsYSxRKX07YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntDPXtwYXRoOkIuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShCLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgZC5CaW5hcnlGaWxlOntDPXtwYXRoOkIuZGF0YS5wYXRoLGRhdGE6ZnIoQSxCLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgZC5JbWFnZTp7bGV0IGE9dUEoQSxzKTthLmRhdGE9UyhBLHMsMCxhLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxhLmRpcmVjdGlvbj1TKEEscywxLFYuRmxvYXQ2NCksYS5tZXRhZGF0YT1uZXcgTWFwKGEubWV0YWRhdGEpLEM9YTticmVha31jYXNlIGQuTWVzaDp7bGV0IGE9dUEoQSxzKTthLm51bWJlck9mUG9pbnRzPjA/YS5wb2ludHM9UyhBLHMsMCxhLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6YS5wb2ludHM9cShhLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxscz4wP2EuY2VsbHM9UyhBLHMsMSxhLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTphLmNlbGxzPXEoYS5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDIsYS5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZkNlbGxQaXhlbHM+MD9hLmNlbGxEYXRhPVMoQSxzLDMsYS5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTphLmNlbGxEYXRhPXEoYS5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWNhc2UgZC5Qb2ludFNldDp7bGV0IGE9dUEoQSxzKTthLm51bWJlck9mUG9pbnRzPjA/YS5wb2ludHM9UyhBLHMsMCxhLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOmEucG9pbnRzPXEoYS5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsMSxhLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31jYXNlIGQuVHJhbnNmb3JtTGlzdDp7bGV0IGE9dUEoQSxzKSxRPTA7YS5mb3JFYWNoKChmLGMpPT57Zi50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGYubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKGFbY10uZml4ZWRQYXJhbWV0ZXJzPVMoQSxzLFEsVi5GbG9hdDY0KSksUSs9MSxmLm51bWJlck9mUGFyYW1ldGVycz4wJiYoYVtjXS5wYXJhbWV0ZXJzPVMoQSxzLFEsZi50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxRKz0xKX0pLEM9YTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsVi5GbG9hdDMyKTphLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LGEudmVydGljZXNCdWZmZXJTaXplPjA/YS52ZXJ0aWNlcz1TKEEscywxLFUuVUludDMyKTphLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxhLmxpbmVzQnVmZmVyU2l6ZT4wP2EubGluZXM9UyhBLHMsMixVLlVJbnQzMik6YS5saW5lcz1uZXcgVWludDMyQXJyYXksYS5wb2x5Z29uc0J1ZmZlclNpemU+MD9hLnBvbHlnb25zPVMoQSxzLDMsVS5VSW50MzIpOmEucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LGEudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/YS50cmlhbmdsZVN0cmlwcz1TKEEscyw0LFUuVUludDMyKTphLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscyw1LGEucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTphLnBvaW50RGF0YT1xKGEucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZkNlbGxQaXhlbHM+MD9hLmNlbGxEYXRhPVMoQSxzLDYsYS5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6YS5jZWxsRGF0YT1xKGEucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgbD17dHlwZTpCLnR5cGUsZGF0YTpDfTtFLnB1c2gobCl9KSx7cmV0dXJuVmFsdWU6ZyxzdGRvdXQ6byxzdGRlcnI6bixvdXRwdXRzOkV9fXZhciBVZT1scjt2YXIgdXI9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uIGRyKEEsdCl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgZT1bXTtmb3IobGV0IEk9MDtJPEEubGVuZ3RoO0krKyl7bGV0IHI9RHIoQVtJXSx0KTtyIT09bnVsbCYmZS5wdXNoKHIpfXJldHVybiBlfWZ1bmN0aW9uIERyKEEsdCl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgZT1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD9lPUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKGU9QSksdXImJmUgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOnQ/ZTplLnNsaWNlKDApfXZhciBHZT1kcjtmdW5jdGlvbiBocihBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIga2U9aHI7ZnVuY3Rpb24geXIoQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIExlPXlyO2Z1bmN0aW9uIG1yKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBiZT1tcjthc3luYyBmdW5jdGlvbiB3cihBLHQsZSxJKXtsZXQgcj1VZShBLHQsZSxJKSxnPVtdO3JldHVybiByLm91dHB1dHMuZm9yRWFjaChmdW5jdGlvbihvKXtpZihvLnR5cGU9PT1kLkJpbmFyeVN0cmVhbXx8by50eXBlPT09ZC5CaW5hcnlGaWxlKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKG4pfWVsc2UgaWYoby50eXBlPT09ZC5JbWFnZSl7bGV0IG49by5kYXRhO2cucHVzaCguLi5rZShuKSl9ZWxzZSBpZihvLnR5cGU9PT1kLk1lc2gpe2xldCBuPW8uZGF0YTtnLnB1c2goLi4uTGUobikpfWVsc2UgaWYoby50eXBlPT09ZC5Qb2x5RGF0YSl7bGV0IG49by5kYXRhO2cucHVzaCguLi5iZShuKSl9fSksX0EocixHZShnLCEwKSl9dmFyIEplPXdyO3ZhciBwcj17cnVuUGlwZWxpbmU6YXN5bmMgZnVuY3Rpb24oQSx0LGUsSSxyLGcpe2xldCBvPWF3YWl0IHBlKEEsdCxnKTtyZXR1cm4gYXdhaXQgSmUobyxlLEkscil9fTtGQShwcik7JTBBLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjolMEElMEFjb21saW5rL2Rpc3QvZXNtL2NvbWxpbmsubWpzOiUwQSAgKCoqJTBBICAgKiBAbGljZW5zZSUwQSAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQyUwQSAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAlMEEgICAqKSUwQSovJTBBJztBSSh0SSk7ZXhwb3J0e29nIGFzIGRvd25zYW1wbGUsZWcgYXMgZG93bnNhbXBsZUJpblNocmluayxJZyBhcyBkb3duc2FtcGxlTGFiZWxJbWFnZSxnZyBhcyBkb3duc2FtcGxlU2lnbWEsYWcgYXMgZ2F1c3NpYW5LZXJuZWxSYWRpdXMsVCBhcyBnZXREZWZhdWx0V2ViV29ya2VyLEcgYXMgZ2V0UGlwZWxpbmVXb3JrZXJVcmwsTyBhcyBnZXRQaXBlbGluZXNCYXNlVXJsLHFhIGFzIHNldERlZmF1bHRXZWJXb3JrZXIsQUkgYXMgc2V0UGlwZWxpbmVXb3JrZXJVcmwsR2EgYXMgc2V0UGlwZWxpbmVzQmFzZVVybCxlZSBhcyB2ZXJzaW9ufTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCmNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKICAgKikKKi8K""" default_config = JsPackageConfig(default_js_module) js_package = JsPackage(default_config) diff --git a/packages/image-io/package.json b/packages/image-io/package.json index 7cb5df041..4bc8e174c 100644 --- a/packages/image-io/package.json +++ b/packages/image-io/package.json @@ -7,6 +7,7 @@ "itk-wasm": { "test-data-hash": "bafybeic6giblbbrpbjllto2jdsa53uqejherjvhvid364z25bs2h7eqjae", "test-data-urls": [ + "https://itk.mypinata.cloud/ipfs/bafybeidxwcsazmgzcejlhm233y5rkaphhfxvgbnqfw3ckrrly3tv6vrtnu/data.tar.gz", "https://w3s.link/ipfs/bafybeidxwcsazmgzcejlhm233y5rkaphhfxvgbnqfw3ckrrly3tv6vrtnu/data.tar.gz" ], "emscripten-docker-image": "quay.io/itkwasm/emscripten:latest", @@ -28,7 +29,7 @@ "build:gen:typescript": "itk-wasm pnpm-script build:gen:typescript", "build:gen:python": "pnpm build:wasi && pnpm bindgen:python", "test": "pnpm test:data:download && pnpm build:gen:python && pnpm test:python", - "test:data:download": "dam download test/data test/data.tar.gz bafybeic6giblbbrpbjllto2jdsa53uqejherjvhvid364z25bs2h7eqjae https://w3s.link/ipfs/bafybeidxwcsazmgzcejlhm233y5rkaphhfxvgbnqfw3ckrrly3tv6vrtnu/data.tar.gz", + "test:data:download": "dam download test/data test/data.tar.gz bafybeic6giblbbrpbjllto2jdsa53uqejherjvhvid364z25bs2h7eqjae https://itk.mypinata.cloud/ipfs/bafybeidxwcsazmgzcejlhm233y5rkaphhfxvgbnqfw3ckrrly3tv6vrtnu/data.tar.gz https://w3s.link/ipfs/bafybeidxwcsazmgzcejlhm233y5rkaphhfxvgbnqfw3ckrrly3tv6vrtnu/data.tar.gz", "test:data:pack": "dam pack test/data test/data.tar.gz", "test:python:wasi": "pnpm test:data:download && pixi run --manifest-path=./pixi.toml test-wasi", "test:python:emscripten": "pnpm test:data:download && pixi run --manifest-path=./pixi.toml test-emscripten", diff --git a/packages/image-io/python/itkwasm-image-io-emscripten/itkwasm_image_io_emscripten/js_package.py b/packages/image-io/python/itkwasm-image-io-emscripten/itkwasm_image_io_emscripten/js_package.py index ca88ab5b6..a19f34c50 100644 --- a/packages/image-io/python/itkwasm-image-io-emscripten/itkwasm_image_io_emscripten/js_package.py +++ b/packages/image-io/python/itkwasm-image-io-emscripten/itkwasm_image_io_emscripten/js_package.py @@ -3,6 +3,6 @@ from itkwasm.pyodide import JsPackageConfig, JsPackage from ._version import __version__ -default_js_module = """data:text/javascript;base64,dmFyIFpyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgVnI9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlacihBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIHpyPW5ldyBNYXAoW1siYm1wIiwiYm1wIl0sWyJkY20iLCJnZGNtIl0sWyJnaXBsIiwiZ2lwbCJdLFsiZ2lwbC5neiIsImdpcGwiXSxbImhkZjUiLCJoZGY1Il0sWyJqcGciLCJqcGVnIl0sWyJqcGVnIiwianBlZyJdLFsiaXdpIiwid2FzbSJdLFsiaXdpLmNib3IiLCJ3YXNtIl0sWyJpd2kuY2Jvci56c3QiLCJ3YXNtWnN0ZCJdLFsibHNtIiwibHNtIl0sWyJtbmMiLCJtbmMiXSxbIm1uYy5neiIsIm1uYyJdLFsibW5jMiIsIm1uYyJdLFsibWdoIiwibWdoIl0sWyJtZ3oiLCJtZ2giXSxbIm1naC5neiIsIm1naCJdLFsibWhhIiwibWV0YSJdLFsibWhkIiwibWV0YSJdLFsibXJjIiwibXJjIl0sWyJuaWEiLCJuaWZ0aSJdLFsibmlpIiwibmlmdGkiXSxbIm5paS5neiIsIm5pZnRpIl0sWyJoZHIiLCJuaWZ0aSJdLFsibnJyZCIsIm5ycmQiXSxbIm5oZHIiLCJucnJkIl0sWyJwbmciLCJwbmciXSxbInBpYyIsImJpb1JhZCJdLFsidGlmIiwidGlmZiJdLFsidGlmZiIsInRpZmYiXSxbInZ0ayIsInZ0ayJdLFsiaXNxIiwic2NhbmNvIl0sWyJhaW0iLCJzY2FuY28iXSxbImZkZiIsImZkZiJdXSksVj16cjt2YXIgWHI9e0ludDg6ImludDgiLFVJbnQ4OiJ1aW50OCIsSW50MTY6ImludDE2IixVSW50MTY6InVpbnQxNiIsSW50MzI6ImludDMyIixVSW50MzI6InVpbnQzMiIsSW50NjQ6ImludDY0IixVSW50NjQ6InVpbnQ2NCIsU2l6ZVZhbHVlVHlwZToidWludDY0IixJZGVudGlmaWVyVHlwZToidWludDY0IixJbmRleFZhbHVlVHlwZToiaW50NjQiLE9mZnNldFZhbHVlVHlwZToiaW50NjQifSx3PVhyO3ZhciBfcj17RmxvYXQzMjoiZmxvYXQzMiIsRmxvYXQ2NDoiZmxvYXQ2NCIsU3BhY2VQcmVjaXNpb25UeXBlOiJmbG9hdDY0In0sYj1fcjtmdW5jdGlvbiAkcihBLGUpe2xldCB0PW51bGw7c3dpdGNoKEEpe2Nhc2Ugdy5VSW50ODp7dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIHcuSW50ODp7dD1uZXcgSW50OEFycmF5KGUpO2JyZWFrfWNhc2Ugdy5VSW50MTY6e3Q9bmV3IFVpbnQxNkFycmF5KGUpO2JyZWFrfWNhc2Ugdy5JbnQxNjp7dD1uZXcgSW50MTZBcnJheShlKTticmVha31jYXNlIHcuVUludDMyOnt0PW5ldyBVaW50MzJBcnJheShlKTticmVha31jYXNlIHcuSW50MzI6e3Q9bmV3IEludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSB3LlVJbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnVWludDY0QXJyYXk9PSJmdW5jdGlvbiI/dD1uZXcgQmlnVWludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIHcuSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ0ludDY0QXJyYXk9PSJmdW5jdGlvbiI/dD1uZXcgQmlnSW50NjRBcnJheShlKTp0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgYi5GbG9hdDMyOnt0PW5ldyBGbG9hdDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkZsb2F0NjQ6e3Q9bmV3IEZsb2F0NjRBcnJheShlKTticmVha31jYXNlIm51bGwiOnt0PW51bGw7YnJlYWt9Y2FzZSBudWxsOnt0PW51bGw7YnJlYWt9ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlR5cGUgaXMgbm90IHN1cHBvcnRlZCBhcyBhIFR5cGVkQXJyYXkiKX1yZXR1cm4gdH12YXIgTz0kcjt2YXIgQWk9e1Vua25vd246IlVua25vd24iLFNjYWxhcjoiU2NhbGFyIixSR0I6IlJHQiIsUkdCQToiUkdCQSIsT2Zmc2V0OiJPZmZzZXQiLFZlY3RvcjoiVmVjdG9yIixQb2ludDoiUG9pbnQiLENvdmFyaWFudFZlY3RvcjoiQ292YXJpYW50VmVjdG9yIixTeW1tZXRyaWNTZWNvbmRSYW5rVGVuc29yOiJTeW1tZXRyaWNTZWNvbmRSYW5rVGVuc29yIixEaWZmdXNpb25UZW5zb3IzRDoiRGlmZnVzaW9uVGVuc29yM0QiLENvbXBsZXg6IkNvbXBsZXgiLEZpeGVkQXJyYXk6IkZpeGVkQXJyYXkiLEFycmF5OiJBcnJheSIsTWF0cml4OiJNYXRyaXgiLFZhcmlhYmxlTGVuZ3RoVmVjdG9yOiJWYXJpYWJsZUxlbmd0aFZlY3RvciIsVmFyaWFibGVTaXplTWF0cml4OiJWYXJpYWJsZVNpemVNYXRyaXgifSxEQT1BaTt2YXIgWEE9Y2xhc3N7ZGltZW5zaW9uO2NvbXBvbmVudFR5cGU7cGl4ZWxUeXBlO2NvbXBvbmVudHM7Y29uc3RydWN0b3IoZT0yLHQ9dy5VSW50OCxyPURBLlNjYWxhcixvPTEpe3RoaXMuZGltZW5zaW9uPWUsdGhpcy5jb21wb25lbnRUeXBlPXQsdGhpcy5waXhlbFR5cGU9cix0aGlzLmNvbXBvbmVudHM9b319LE50PVhBO2Z1bmN0aW9uIGVpKEEsZSx0LHIsbyl7QVtyK3QqZV09b312YXIgU3Q9ZWk7dmFyIF9BPWNsYXNze2ltYWdlVHlwZTtuYW1lPSJJbWFnZSI7b3JpZ2luO3NwYWNpbmc7ZGlyZWN0aW9uO3NpemU7bWV0YWRhdGE7ZGF0YTtjb25zdHJ1Y3RvcihlPW5ldyBOdCl7dGhpcy5pbWFnZVR5cGU9ZTtsZXQgdD1lLmRpbWVuc2lvbjt0aGlzLm9yaWdpbj1uZXcgQXJyYXkodCksdGhpcy5vcmlnaW4uZmlsbCgwKSx0aGlzLnNwYWNpbmc9bmV3IEFycmF5KHQpLHRoaXMuc3BhY2luZy5maWxsKDEpLHRoaXMuZGlyZWN0aW9uPW5ldyBGbG9hdDY0QXJyYXkodCp0KSx0aGlzLmRpcmVjdGlvbi5maWxsKDApO2ZvcihsZXQgcj0wO3I8dDtyKyspU3QodGhpcy5kaXJlY3Rpb24sdCxyLHIsMSk7dGhpcy5zaXplPW5ldyBBcnJheSh0KSx0aGlzLnNpemUuZmlsbCgwKSx0aGlzLm1ldGFkYXRhPW5ldyBNYXAsdGhpcy5kYXRhPW51bGx9fSxfPV9BO2Z1bmN0aW9uIHRpKEEpe2xldCBlPW5ldyBfKEEuaW1hZ2VUeXBlKTtpZihlLm5hbWU9QS5uYW1lLGUub3JpZ2luPUFycmF5LmZyb20oQS5vcmlnaW4pLGUuc3BhY2luZz1BcnJheS5mcm9tKEEuc3BhY2luZyksZS5kaXJlY3Rpb249QS5kaXJlY3Rpb24uc2xpY2UoKSxlLnNpemU9QXJyYXkuZnJvbShBLnNpemUpLEEuZGF0YSE9PW51bGwpe2xldCB0PUEuZGF0YS5jb25zdHJ1Y3RvcjtlLmRhdGE9bmV3IHQoQS5kYXRhLmxlbmd0aCksZS5kYXRhIT1udWxsJiZlLmRhdGEuc2V0KEEuZGF0YSwwKX1yZXR1cm4gZX12YXIgJEE9dGk7ZnVuY3Rpb24gcmkoQSl7aWYoQS5sZW5ndGg8MSl0aHJvdyBFcnJvcigiQXQgbGVhc3Qgb25lIGltYWdlcyBpcyByZXF1aXJlZC4iKTtsZXQgZT1BWzBdO2lmKGUuZGF0YT09PW51bGwpdGhyb3cgRXJyb3IoIkltYWdlIGRhdGEgaXMgbnVsbC4iKTtsZXQgdD1uZXcgXyhlLmltYWdlVHlwZSk7dC5vcmlnaW49QXJyYXkuZnJvbShlLm9yaWdpbiksdC5zcGFjaW5nPUFycmF5LmZyb20oZS5zcGFjaW5nKTtsZXQgcj10LmltYWdlVHlwZS5kaW1lbnNpb247dC5kaXJlY3Rpb249ZS5kaXJlY3Rpb24uc2xpY2UoKTtsZXQgbz1yLTE7dC5zaXplPUFycmF5LmZyb20oZS5zaXplKTtsZXQgaT1BLnJlZHVjZSgoYSxzKT0+YStzLnNpemVbb10sMCk7dC5zaXplW29dPWk7bGV0IG49dC5zaXplLnJlZHVjZSgoYSxzKT0+YSpzLDEpKnQuaW1hZ2VUeXBlLmNvbXBvbmVudHMsbD1lLmRhdGEuY29uc3RydWN0b3I7dC5kYXRhPW5ldyBsKG4pO2xldCBwPXQuaW1hZ2VUeXBlLmNvbXBvbmVudHM7Zm9yKGxldCBhPTA7YTx0LnNpemUubGVuZ3RoLTE7YSsrKXAqPXQuc2l6ZVthXTtsZXQgQj0wO2lmKHQuZGF0YSE9bnVsbClmb3IobGV0IGE9MDthPEEubGVuZ3RoO2ErKyl0LmRhdGEuc2V0KEFbYV0uZGF0YSxwKkIpLEIrPUFbYV0uc2l6ZVtvXTtlbHNlIHRocm93IEVycm9yKCJDb3VsZCBub3QgY3JlYXRlIHJlc3VsdCBpbWFnZSBkYXRhLiIpO3JldHVybiB0fXZhciBBZT1yaTtmdW5jdGlvbiBpaShBKXtsZXQgZT1BLnNsaWNlKChBLmxhc3RJbmRleE9mKCIuIiktMT4+PjApKzIpO2lmKGUudG9Mb3dlckNhc2UoKT09PSJneiIpe2xldCB0PUEuc2xpY2UoMCwtMykubGFzdEluZGV4T2YoIi4iKTtlPUEuc2xpY2UoKHQtMT4+PjApKzIpfWVsc2UgaWYoZS50b0xvd2VyQ2FzZSgpPT09ImNib3IiKXtsZXQgdD1BLnNsaWNlKDAsLTUpLmxhc3RJbmRleE9mKCIuIik7ZT1BLnNsaWNlKCh0LTE+Pj4wKSsyKX1lbHNlIGlmKGUudG9Mb3dlckNhc2UoKT09PSJ6c3QiKXtsZXQgdD1BLnNsaWNlKDAsLTEwKS5sYXN0SW5kZXhPZigiLiIpO2U9QS5zbGljZSgodC0xPj4+MCkrMil9ZWxzZSBpZihlLnRvTG93ZXJDYXNlKCk9PT0iemlwIil7bGV0IHQ9QS5zbGljZSgwLC00KS5sYXN0SW5kZXhPZigiLiIpO2U9QS5zbGljZSgodC0xPj4+MCkrMil9cmV0dXJuIGV9dmFyIHNBPWlpO2Z1bmN0aW9uIG9pKEEsZSl7bGV0IHQ9ey4uLkEuaW1hZ2VUeXBlfTtpZih0eXBlb2YgZTwidSImJnR5cGVvZiBlLnBpeGVsVHlwZTwidSImJih0LnBpeGVsVHlwZT1lLnBpeGVsVHlwZSxlLnBpeGVsVHlwZT09PURBLlNjYWxhciYmdC5jb21wb25lbnRzIT09MSkpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY2FzdCBtdWx0aS1jb21wb25lbnQgaW1hZ2UgdG8gYSBzY2FsYXIgaW1hZ2UiKTt0eXBlb2YgZTwidSImJnR5cGVvZiBlLmNvbXBvbmVudFR5cGU8InUiJiZlLmNvbXBvbmVudFR5cGUhPT1BLmltYWdlVHlwZS5jb21wb25lbnRUeXBlJiYodC5jb21wb25lbnRUeXBlPWUuY29tcG9uZW50VHlwZSk7bGV0IHI9bmV3IF8odCk7aWYoci5uYW1lPUEubmFtZSxyLm9yaWdpbj1BcnJheS5mcm9tKEEub3JpZ2luKSxyLnNwYWNpbmc9QXJyYXkuZnJvbShBLnNwYWNpbmcpLHIuZGlyZWN0aW9uPUEuZGlyZWN0aW9uLnNsaWNlKCksci5zaXplPUFycmF5LmZyb20oQS5zaXplKSxyLm1ldGFkYXRhPW5ldyBNYXAoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShBcnJheS5mcm9tKEEubWV0YWRhdGEpKSkpLEEuZGF0YSE9PW51bGwpaWYodHlwZW9mIGU8InUiJiZ0eXBlb2YgZS5jb21wb25lbnRUeXBlPCJ1IiYmZS5jb21wb25lbnRUeXBlIT09QS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSlzd2l0Y2goQS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSl7Y2FzZSB3LlVJbnQ4OmNhc2Ugdy5JbnQ4OmNhc2Ugdy5VSW50MTY6Y2FzZSB3LkludDE2OmNhc2Ugdy5VSW50MzI6Y2FzZSB3LkludDMyOmNhc2UgYi5GbG9hdDMyOmNhc2UgYi5GbG9hdDY0OnN3aXRjaChyLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKXtjYXNlIHcuVUludDg6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3IuZGF0YT1uZXcgVWludDhBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1OdW1iZXIoQS5kYXRhW29dKX1lbHNlIHIuZGF0YT1uZXcgVWludDhBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2Ugdy5JbnQ4OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXtyLmRhdGE9bmV3IEludDhBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1OdW1iZXIoQS5kYXRhW29dKX1lbHNlIHIuZGF0YT1uZXcgSW50OEFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSB3LlVJbnQxNjppZihBLmRhdGEgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxBLmRhdGEgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSl7ci5kYXRhPW5ldyBVaW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1OdW1iZXIoQS5kYXRhW29dKX1lbHNlIHIuZGF0YT1uZXcgVWludDE2QXJyYXkoQS5kYXRhKTticmVhaztjYXNlIHcuSW50MTY6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3IuZGF0YT1uZXcgSW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1OdW1iZXIoQS5kYXRhW29dKX1lbHNlIHIuZGF0YT1uZXcgSW50MTZBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2Ugdy5VSW50MzI6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3IuZGF0YT1uZXcgVWludDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxyLmRhdGEubGVuZ3RoO28rKylyLmRhdGFbb109TnVtYmVyKEEuZGF0YVtvXSl9ZWxzZSByLmRhdGE9bmV3IFVpbnQzMkFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSB3LkludDMyOmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXtyLmRhdGE9bmV3IEludDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxyLmRhdGEubGVuZ3RoO28rKylyLmRhdGFbb109TnVtYmVyKEEuZGF0YVtvXSl9ZWxzZSByLmRhdGE9bmV3IEludDMyQXJyYXkoQS5kYXRhKTticmVhaztjYXNlIGIuRmxvYXQzMjppZihBLmRhdGEgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxBLmRhdGEgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSl7ci5kYXRhPW5ldyBGbG9hdDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxyLmRhdGEubGVuZ3RoO28rKylyLmRhdGFbb109TnVtYmVyKEEuZGF0YVtvXSl9ZWxzZSByLmRhdGE9bmV3IEZsb2F0MzJBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2UgYi5GbG9hdDY0OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXtyLmRhdGE9bmV3IEZsb2F0NjRBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1OdW1iZXIoQS5kYXRhW29dKX1lbHNlIHIuZGF0YT1uZXcgRmxvYXQ2NEFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSB3LlVJbnQ2NDpyLmRhdGE9bmV3IEJpZ1VpbnQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgbz0wO288ci5kYXRhLmxlbmd0aDtvKyspci5kYXRhW29dPUJpZ0ludC5hc0ludE4oNjQsQmlnSW50KEEuZGF0YVtvXSkpO2JyZWFrO2Nhc2Ugdy5JbnQ2NDpyLmRhdGE9bmV3IEJpZ0ludDY0QXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxyLmRhdGEubGVuZ3RoO28rKylyLmRhdGFbb109QmlnSW50LmFzVWludE4oNjQsQmlnSW50KEEuZGF0YVtvXSkpO2JyZWFrfWJyZWFrO2Nhc2Ugdy5VSW50NjQ6Y2FzZSB3LkludDY0OnN3aXRjaChyLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKXtjYXNlIHcuVUludDg6ci5kYXRhPW5ldyBVaW50OEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgbz0wO288ci5kYXRhLmxlbmd0aDtvKyspci5kYXRhW29dPU51bWJlcihBLmRhdGFbb10pO2JyZWFrO2Nhc2Ugdy5JbnQ4OnIuZGF0YT1uZXcgSW50OEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgbz0wO288ci5kYXRhLmxlbmd0aDtvKyspci5kYXRhW29dPU51bWJlcihBLmRhdGFbb10pO2JyZWFrO2Nhc2Ugdy5VSW50MTY6ci5kYXRhPW5ldyBVaW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1OdW1iZXIoQS5kYXRhW29dKTticmVhaztjYXNlIHcuSW50MTY6ci5kYXRhPW5ldyBJbnQxNkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgbz0wO288ci5kYXRhLmxlbmd0aDtvKyspci5kYXRhW29dPU51bWJlcihBLmRhdGFbb10pO2JyZWFrO2Nhc2Ugdy5VSW50MzI6ci5kYXRhPW5ldyBVaW50MzJBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1OdW1iZXIoQS5kYXRhW29dKTticmVhaztjYXNlIHcuSW50MzI6ci5kYXRhPW5ldyBJbnQzMkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgbz0wO288ci5kYXRhLmxlbmd0aDtvKyspci5kYXRhW29dPU51bWJlcihBLmRhdGFbb10pO2JyZWFrO2Nhc2UgYi5GbG9hdDMyOnIuZGF0YT1uZXcgRmxvYXQzMkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgbz0wO288ci5kYXRhLmxlbmd0aDtvKyspci5kYXRhW29dPU51bWJlcihBLmRhdGFbb10pO2JyZWFrO2Nhc2UgYi5GbG9hdDY0OnIuZGF0YT1uZXcgRmxvYXQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgbz0wO288ci5kYXRhLmxlbmd0aDtvKyspci5kYXRhW29dPU51bWJlcihBLmRhdGFbb10pO2JyZWFrO2Nhc2Ugdy5VSW50NjQ6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpci5kYXRhPW5ldyBCaWdVaW50NjRBcnJheShBLmRhdGEpO2Vsc2V7ci5kYXRhPW5ldyBCaWdVaW50NjRBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1CaWdJbnQuYXNVaW50Tig2NCxCaWdJbnQoQS5kYXRhW29dKSl9YnJlYWs7Y2FzZSB3LkludDY0OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXIuZGF0YT1uZXcgQmlnSW50NjRBcnJheShBLmRhdGEpO2Vsc2V7ci5kYXRhPW5ldyBCaWdJbnQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgbz0wO288ci5kYXRhLmxlbmd0aDtvKyspci5kYXRhW29dPUJpZ0ludC5hc0ludE4oNjQsQmlnSW50KEEuZGF0YVtvXSkpfWJyZWFrfWJyZWFrfWVsc2V7bGV0IG89QS5kYXRhLmNvbnN0cnVjdG9yO3IuZGF0YT1uZXcgbyhBLmRhdGEubGVuZ3RoKSxyLmRhdGEhPW51bGwmJnIuZGF0YS5zZXQoQS5kYXRhLDApfXJldHVybiByfXZhciBLPW9pO3ZhciBlZT1jbGFzc3tmY247d29ya2VyUXVldWU7cnVuSW5mbztjb25zdHJ1Y3RvcihlLHQpe3RoaXMuZmNuPXQsdGhpcy53b3JrZXJRdWV1ZT1uZXcgQXJyYXkoZSksdGhpcy53b3JrZXJRdWV1ZS5maWxsKG51bGwpLHRoaXMucnVuSW5mbz1bXX1ydW5UYXNrcyhlLHQ9bnVsbCl7bGV0IHI9e3Rhc2tRdWV1ZTpbXSxyZXN1bHRzOltdLGFkZGluZ1Rhc2tzOiExLHBvc3Rwb25lZDohMSxydW5uaW5nV29ya2VyczowLGluZGV4OjAsY29tcGxldGVkVGFza3M6MCxwcm9ncmVzc0NhbGxiYWNrOnQsY2FuY2VsZWQ6ITF9O3JldHVybiB0aGlzLnJ1bkluZm8ucHVzaChyKSxyLmluZGV4PXRoaXMucnVuSW5mby5sZW5ndGgtMSx7cHJvbWlzZTpuZXcgUHJvbWlzZSgobyxpKT0+e3IucmVzb2x2ZT1vLHIucmVqZWN0PWksci5yZXN1bHRzPW5ldyBBcnJheShlLmxlbmd0aCksci5jb21wbGV0ZWRUYXNrcz0wLHIuYWRkaW5nVGFza3M9ITAsZS5mb3JFYWNoKChuLGwpPT57dGhpcy5hZGRUYXNrKHIuaW5kZXgsbCxuKX0pLHIuYWRkaW5nVGFza3M9ITF9KSxydW5JZDpyLmluZGV4fX10ZXJtaW5hdGVXb3JrZXJzKCl7Zm9yKGxldCBlPTA7ZTx0aGlzLndvcmtlclF1ZXVlLmxlbmd0aDtlKyspe2xldCB0PXRoaXMud29ya2VyUXVldWVbZV07dD8udGVybWluYXRlKCksdGhpcy53b3JrZXJRdWV1ZVtlXT1udWxsfX1jYW5jZWwoZSl7bGV0IHQ9dGhpcy5ydW5JbmZvW2VdO3QhPW51bGwmJih0LmNhbmNlbGVkPSEwKX1hZGRUYXNrKGUsdCxyKXtsZXQgbz10aGlzLnJ1bkluZm9bZV07aWYobz8uY2FuY2VsZWQ9PT0hMCl7by5yZWplY3QoIlJlbWFpbmluZyB0YXNrcyBjYW5jZWxlZCIpLHRoaXMuY2xlYXJUYXNrKG8uaW5kZXgpO3JldHVybn1pZih0aGlzLndvcmtlclF1ZXVlLmxlbmd0aD4wKXtsZXQgaT10aGlzLndvcmtlclF1ZXVlLnBvcCgpO28ucnVubmluZ1dvcmtlcnMrKyxyW3IubGVuZ3RoLTFdLndlYldvcmtlcj1pLHRoaXMuZmNuKC4uLnIpLnRoZW4oKHt3ZWJXb3JrZXI6biwuLi5sfSk9PntpZih0aGlzLndvcmtlclF1ZXVlLnB1c2gobiksdGhpcy5ydW5JbmZvW2VdIT09bnVsbCl7aWYoby5ydW5uaW5nV29ya2Vycy0tLG8ucmVzdWx0c1t0XT1sLG8uY29tcGxldGVkVGFza3MrKyxvLnByb2dyZXNzQ2FsbGJhY2shPW51bGwmJm8ucHJvZ3Jlc3NDYWxsYmFjayhvLmNvbXBsZXRlZFRhc2tzLG8ucmVzdWx0cy5sZW5ndGgpLG8udGFza1F1ZXVlLmxlbmd0aD4wKXtsZXQgcD1vLnRhc2tRdWV1ZS5zaGlmdCgpO3RoaXMuYWRkVGFzayhlLHBbMF0scFsxXSl9ZWxzZSBpZighby5hZGRpbmdUYXNrcyYmby5ydW5uaW5nV29ya2Vycz09PTApe2xldCBwPW8ucmVzdWx0cztvLnJlc29sdmUocCksdGhpcy5jbGVhclRhc2soby5pbmRleCl9fX0pLmNhdGNoKG49PntvLnJlamVjdChuKSx0aGlzLmNsZWFyVGFzayhvLmluZGV4KX0pfWVsc2Ugby5ydW5uaW5nV29ya2VycyE9PTB8fG8ucG9zdHBvbmVkP28udGFza1F1ZXVlLnB1c2goW3Qscl0pOihvLnBvc3Rwb25lZD0hMCxzZXRUaW1lb3V0KCgpPT57by5wb3N0cG9uZWQ9ITEsdGhpcy5hZGRUYXNrKG8uaW5kZXgsdCxyKX0sNTApKX1jbGVhclRhc2soZSl7dGhpcy5ydW5JbmZvW2VdLnJlc3VsdHM9W10sdGhpcy5ydW5JbmZvW2VdLnRhc2tRdWV1ZT1bXSx0aGlzLnJ1bkluZm9bZV0ucHJvZ3Jlc3NDYWxsYmFjaz1udWxsLHRoaXMucnVuSW5mb1tlXS5jYW5jZWxlZD1udWxsLHRoaXMucnVuSW5mb1tlXS5yZWplY3Q9KCk9Pnt9LHRoaXMucnVuSW5mb1tlXS5yZXNvbHZlPSgpPT57fX19LHRlPWVlO3ZhciBhaT17VGV4dEZpbGU6IlRleHRGaWxlIixCaW5hcnlGaWxlOiJCaW5hcnlGaWxlIixUZXh0U3RyZWFtOiJUZXh0U3RyZWFtIixCaW5hcnlTdHJlYW06IkJpbmFyeVN0cmVhbSIsSW1hZ2U6IkltYWdlIixQb2ludFNldDoiUG9pbnRTZXQiLE1lc2g6Ik1lc2giLFBvbHlEYXRhOiJQb2x5RGF0YSIsVHJhbnNmb3JtTGlzdDoiVHJhbnNmb3JtTGlzdCIsSnNvbkNvbXBhdGlibGU6Ikpzb25Db21wYXRpYmxlIn0sQz1haTt2YXIgV3Q9U3ltYm9sKCJDb21saW5rLnByb3h5Iiksbmk9U3ltYm9sKCJDb21saW5rLmVuZHBvaW50Iiksb2U9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLHJlPVN5bWJvbCgiQ29tbGluay5maW5hbGl6ZXIiKSxrQT1TeW1ib2woIkNvbWxpbmsudGhyb3duIiksR3Q9QT0+dHlwZW9mIEE9PSJvYmplY3QiJiZBIT09bnVsbHx8dHlwZW9mIEE9PSJmdW5jdGlvbiIsSWk9e2NhbkhhbmRsZTpBPT5HdChBKSYmQVtXdF0sc2VyaWFsaXplKEEpe2xldHtwb3J0MTplLHBvcnQyOnR9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gTHQoQSxlKSxbdCxbdF1dfSxkZXNlcmlhbGl6ZShBKXtyZXR1cm4gQS5zdGFydCgpLGFlKEEpfX0sc2k9e2NhbkhhbmRsZTpBPT5HdChBKSYma0EgaW4gQSxzZXJpYWxpemUoe3ZhbHVlOkF9KXtsZXQgZTtyZXR1cm4gQSBpbnN0YW5jZW9mIEVycm9yP2U9e2lzRXJyb3I6ITAsdmFsdWU6e21lc3NhZ2U6QS5tZXNzYWdlLG5hbWU6QS5uYW1lLHN0YWNrOkEuc3RhY2t9fTplPXtpc0Vycm9yOiExLHZhbHVlOkF9LFtlLFtdXX0sZGVzZXJpYWxpemUoQSl7dGhyb3cgQS5pc0Vycm9yP09iamVjdC5hc3NpZ24obmV3IEVycm9yKEEudmFsdWUubWVzc2FnZSksQS52YWx1ZSk6QS52YWx1ZX19LE90PW5ldyBNYXAoW1sicHJveHkiLElpXSxbInRocm93IixzaV1dKTtmdW5jdGlvbiBnaShBLGUpe2ZvcihsZXQgdCBvZiBBKWlmKGU9PT10fHx0PT09IioifHx0IGluc3RhbmNlb2YgUmVnRXhwJiZ0LnRlc3QoZSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gTHQoQSxlPWdsb2JhbFRoaXMsdD1bIioiXSl7ZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiByKG8pe2lmKCFvfHwhby5kYXRhKXJldHVybjtpZighZ2kodCxvLm9yaWdpbikpe2NvbnNvbGUud2FybihgSW52YWxpZCBvcmlnaW4gJyR7by5vcmlnaW59JyBmb3IgY29tbGluayBwcm94eWApO3JldHVybn1sZXR7aWQ6aSx0eXBlOm4scGF0aDpsfT1PYmplY3QuYXNzaWduKHtwYXRoOltdfSxvLmRhdGEpLHA9KG8uZGF0YS5hcmd1bWVudExpc3R8fFtdKS5tYXAoeiksQjt0cnl7bGV0IGE9bC5zbGljZSgwLC0xKS5yZWR1Y2UoKFEsSSk9PlFbSV0sQSkscz1sLnJlZHVjZSgoUSxJKT0+UVtJXSxBKTtzd2l0Y2gobil7Y2FzZSJHRVQiOkI9czticmVhaztjYXNlIlNFVCI6YVtsLnNsaWNlKC0xKVswXV09eihvLmRhdGEudmFsdWUpLEI9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6Qj1zLmFwcGx5KGEscCk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgUT1uZXcgcyguLi5wKTtCPUVpKFEpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6USxwb3J0MjpJfT1uZXcgTWVzc2FnZUNoYW5uZWw7THQoQSxJKSxCPW5lKFEsW1FdKX1icmVhaztjYXNlIlJFTEVBU0UiOkI9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChhKXtCPXt2YWx1ZTphLFtrQV06MH19UHJvbWlzZS5yZXNvbHZlKEIpLmNhdGNoKGE9Pih7dmFsdWU6YSxba0FdOjB9KSkudGhlbihhPT57bGV0W3MsUV09TkEoYSk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scykse2lkOml9KSxRKSxuPT09IlJFTEVBU0UiJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKSxKdChlKSxyZSBpbiBBJiZ0eXBlb2YgQVtyZV09PSJmdW5jdGlvbiImJkFbcmVdKCkpfSkuY2F0Y2goYT0+e2xldFtzLFFdPU5BKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxba0FdOjB9KTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzKSx7aWQ6aX0pLFEpfSl9KSxlLnN0YXJ0JiZlLnN0YXJ0KCl9ZnVuY3Rpb24gQmkoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gSnQoQSl7QmkoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBhZShBLGUpe3JldHVybiBpZShBLFtdLGUpfWZ1bmN0aW9uIFJBKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiBQdChBKXtyZXR1cm4gJChBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9PntKdChBKX0pfXZhciBGQT1uZXcgV2Vha01hcCxVQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgZT0oRkEuZ2V0KEEpfHwwKS0xO0ZBLnNldChBLGUpLGU9PT0wJiZQdChBKX0pO2Z1bmN0aW9uIENpKEEsZSl7bGV0IHQ9KEZBLmdldChlKXx8MCkrMTtGQS5zZXQoZSx0KSxVQSYmVUEucmVnaXN0ZXIoQSxlLEEpfWZ1bmN0aW9uIGxpKEEpe1VBJiZVQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIGllKEEsZT1bXSx0PWZ1bmN0aW9uKCl7fSl7bGV0IHI9ITEsbz1uZXcgUHJveHkodCx7Z2V0KGksbil7aWYoUkEociksbj09PW9lKXJldHVybigpPT57bGkobyksUHQoQSkscj0hMH07aWYobj09PSJ0aGVuIil7aWYoZS5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5vfTtsZXQgbD0kKEEse3R5cGU6IkdFVCIscGF0aDplLm1hcChwPT5wLnRvU3RyaW5nKCkpfSkudGhlbih6KTtyZXR1cm4gbC50aGVuLmJpbmQobCl9cmV0dXJuIGllKEEsWy4uLmUsbl0pfSxzZXQoaSxuLGwpe1JBKHIpO2xldFtwLEJdPU5BKGwpO3JldHVybiAkKEEse3R5cGU6IlNFVCIscGF0aDpbLi4uZSxuXS5tYXAoYT0+YS50b1N0cmluZygpKSx2YWx1ZTpwfSxCKS50aGVuKHopfSxhcHBseShpLG4sbCl7UkEocik7bGV0IHA9ZVtlLmxlbmd0aC0xXTtpZihwPT09bmkpcmV0dXJuICQoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbih6KTtpZihwPT09ImJpbmQiKXJldHVybiBpZShBLGUuc2xpY2UoMCwtMSkpO2xldFtCLGFdPWJ0KGwpO3JldHVybiAkKEEse3R5cGU6IkFQUExZIixwYXRoOmUubWFwKHM9PnMudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OkJ9LGEpLnRoZW4oeil9LGNvbnN0cnVjdChpLG4pe1JBKHIpO2xldFtsLHBdPWJ0KG4pO3JldHVybiAkKEEse3R5cGU6IkNPTlNUUlVDVCIscGF0aDplLm1hcChCPT5CLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpsfSxwKS50aGVuKHopfX0pO3JldHVybiBDaShvLEEpLG99ZnVuY3Rpb24gUWkoQSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sQSl9ZnVuY3Rpb24gYnQoQSl7bGV0IGU9QS5tYXAoTkEpO3JldHVybltlLm1hcCh0PT50WzBdKSxRaShlLm1hcCh0PT50WzFdKSldfXZhciB4dD1uZXcgV2Vha01hcDtmdW5jdGlvbiBuZShBLGUpe3JldHVybiB4dC5zZXQoQSxlKSxBfWZ1bmN0aW9uIEVpKEEpe3JldHVybiBPYmplY3QuYXNzaWduKEEse1tXdF06ITB9KX1mdW5jdGlvbiBOQShBKXtmb3IobGV0W2UsdF1vZiBPdClpZih0LmNhbkhhbmRsZShBKSl7bGV0W3Isb109dC5zZXJpYWxpemUoQSk7cmV0dXJuW3t0eXBlOiJIQU5ETEVSIixuYW1lOmUsdmFsdWU6cn0sb119cmV0dXJuW3t0eXBlOiJSQVciLHZhbHVlOkF9LHh0LmdldChBKXx8W11dfWZ1bmN0aW9uIHooQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4gT3QuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiAkKEEsZSx0KXtyZXR1cm4gbmV3IFByb21pc2Uocj0+e2xldCBvPXBpKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBpKG4peyFuLmRhdGF8fCFuLmRhdGEuaWR8fG4uZGF0YS5pZCE9PW98fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGkpLHIobi5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpvfSxlKSx0KX0pfWZ1bmN0aW9uIHBpKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiBnQShBLGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KGUsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOm1pfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpzZX09T2JqZWN0LGJBPShBPT5lPT57bGV0IHQ9bWkuY2FsbChlKTtyZXR1cm4gQVt0XXx8KEFbdF09dC5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLEo9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLGU9PmJBKGUpPT09QSksV0E9QT0+ZT0+dHlwZW9mIGU9PT1BLHtpc0FycmF5OkFBfT1BcnJheSxCQT1XQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gdWkoQSl7cmV0dXJuIEEhPT1udWxsJiYhQkEoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhQkEoQS5jb25zdHJ1Y3RvcikmJkwoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIEh0PUooIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gZmkoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZIdChBLmJ1ZmZlciksZX12YXIgY2k9V0EoInN0cmluZyIpLEw9V0EoImZ1bmN0aW9uIiksWXQ9V0EoIm51bWJlciIpLEdBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsZGk9QT0+QT09PSEwfHxBPT09ITEsU0E9QT0+e2lmKGJBKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IGU9c2UoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEoU3ltYm9sLnRvU3RyaW5nVGFnIGluIEEpJiYhKFN5bWJvbC5pdGVyYXRvciBpbiBBKX0seWk9SigiRGF0ZSIpLGhpPUooIkZpbGUiKSx3aT1KKCJCbG9iIiksRGk9SigiRmlsZUxpc3QiKSxSaT1BPT5HQShBKSYmTChBLnBpcGUpLGtpPUE9PntsZXQgZTtyZXR1cm4gQSYmKHR5cGVvZiBGb3JtRGF0YT09ImZ1bmN0aW9uIiYmQSBpbnN0YW5jZW9mIEZvcm1EYXRhfHxMKEEuYXBwZW5kKSYmKChlPWJBKEEpKT09PSJmb3JtZGF0YSJ8fGU9PT0ib2JqZWN0IiYmTChBLnRvU3RyaW5nKSYmQS50b1N0cmluZygpPT09IltvYmplY3QgRm9ybURhdGFdIikpfSxGaT1KKCJVUkxTZWFyY2hQYXJhbXMiKSxbVWksTmksU2ksYmldPVsiUmVhZGFibGVTdHJlYW0iLCJSZXF1ZXN0IiwiUmVzcG9uc2UiLCJIZWFkZXJzIl0ubWFwKEopLFdpPUE9PkEudHJpbT9BLnRyaW0oKTpBLnJlcGxhY2UoL15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLCIiKTtmdW5jdGlvbiBDQShBLGUse2FsbE93bktleXM6dD0hMX09e30pe2lmKEE9PT1udWxsfHx0eXBlb2YgQT4idSIpcmV0dXJuO2xldCByLG87aWYodHlwZW9mIEEhPSJvYmplY3QiJiYoQT1bQV0pLEFBKEEpKWZvcihyPTAsbz1BLmxlbmd0aDtyPG87cisrKWUuY2FsbChudWxsLEFbcl0scixBKTtlbHNle2xldCBpPXQ/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSk6T2JqZWN0LmtleXMoQSksbj1pLmxlbmd0aCxsO2ZvcihyPTA7cjxuO3IrKylsPWlbcl0sZS5jYWxsKG51bGwsQVtsXSxsLEEpfX1mdW5jdGlvbiBxdChBLGUpe2U9ZS50b0xvd2VyQ2FzZSgpO2xldCB0PU9iamVjdC5rZXlzKEEpLHI9dC5sZW5ndGgsbztmb3IoO3ItLSA+MDspaWYobz10W3JdLGU9PT1vLnRvTG93ZXJDYXNlKCkpcmV0dXJuIG87cmV0dXJuIG51bGx9dmFyIFg9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Omdsb2JhbCxLdD1BPT4hQkEoQSkmJkEhPT1YO2Z1bmN0aW9uIEllKCl7bGV0e2Nhc2VsZXNzOkF9PUt0KHRoaXMpJiZ0aGlzfHx7fSxlPXt9LHQ9KHIsbyk9PntsZXQgaT1BJiZxdChlLG8pfHxvO1NBKGVbaV0pJiZTQShyKT9lW2ldPUllKGVbaV0scik6U0Eocik/ZVtpXT1JZSh7fSxyKTpBQShyKT9lW2ldPXIuc2xpY2UoKTplW2ldPXJ9O2ZvcihsZXQgcj0wLG89YXJndW1lbnRzLmxlbmd0aDtyPG87cisrKWFyZ3VtZW50c1tyXSYmQ0EoYXJndW1lbnRzW3JdLHQpO3JldHVybiBlfXZhciBHaT0oQSxlLHQse2FsbE93bktleXM6cn09e30pPT4oQ0EoZSwobyxpKT0+e3QmJkwobyk/QVtpXT1nQShvLHQpOkFbaV09b30se2FsbE93bktleXM6cn0pLEEpLE9pPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksTGk9KEEsZSx0LHIpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSxyKSxBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse3ZhbHVlOmUucHJvdG90eXBlfSksdCYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSx0KX0sSmk9KEEsZSx0LHIpPT57bGV0IG8saSxuLGw9e307aWYoZT1lfHx7fSxBPT1udWxsKXJldHVybiBlO2Rve2ZvcihvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLGk9by5sZW5ndGg7aS0tID4wOyluPW9baV0sKCFyfHxyKG4sQSxlKSkmJiFsW25dJiYoZVtuXT1BW25dLGxbbl09ITApO0E9dCE9PSExJiZzZShBKX13aGlsZShBJiYoIXR8fHQoQSxlKSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gZX0sUGk9KEEsZSx0KT0+e0E9U3RyaW5nKEEpLCh0PT09dm9pZCAwfHx0PkEubGVuZ3RoKSYmKHQ9QS5sZW5ndGgpLHQtPWUubGVuZ3RoO2xldCByPUEuaW5kZXhPZihlLHQpO3JldHVybiByIT09LTEmJnI9PT10fSx4aT1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYoQUEoQSkpcmV0dXJuIEE7bGV0IGU9QS5sZW5ndGg7aWYoIVl0KGUpKXJldHVybiBudWxsO2xldCB0PW5ldyBBcnJheShlKTtmb3IoO2UtLSA+MDspdFtlXT1BW2VdO3JldHVybiB0fSxNaT0oQT0+ZT0+QSYmZSBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmc2UoVWludDhBcnJheSkpLFRpPShBLGUpPT57bGV0IHI9KEEmJkFbU3ltYm9sLml0ZXJhdG9yXSkuY2FsbChBKSxvO2Zvcig7KG89ci5uZXh0KCkpJiYhby5kb25lOyl7bGV0IGk9by52YWx1ZTtlLmNhbGwoQSxpWzBdLGlbMV0pfX0sSGk9KEEsZSk9PntsZXQgdCxyPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KXIucHVzaCh0KTtyZXR1cm4gcn0sWWk9SigiSFRNTEZvcm1FbGVtZW50IikscWk9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxyLG8pe3JldHVybiByLnRvVXBwZXJDYXNlKCkrb30pLFR0PSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxLaT1KKCJSZWdFeHAiKSxqdD0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLHI9e307Q0EodCwobyxpKT0+e2xldCBuOyhuPWUobyxpLEEpKSE9PSExJiYocltpXT1ufHxvKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEscil9LGppPUE9PntqdChBLChlLHQpPT57aWYoTChBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IHI9QVt0XTtpZihMKHIpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LHZpPShBLGUpPT57bGV0IHQ9e30scj1vPT57by5mb3JFYWNoKGk9Pnt0W2ldPSEwfSl9O3JldHVybiBBQShBKT9yKEEpOnIoU3RyaW5nKEEpLnNwbGl0KGUpKSx0fSxaaT0oKT0+e30sVmk9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gemkoQSl7cmV0dXJuISEoQSYmTChBLmFwcGVuZCkmJkFbU3ltYm9sLnRvU3RyaW5nVGFnXT09PSJGb3JtRGF0YSImJkFbU3ltYm9sLml0ZXJhdG9yXSl9dmFyIFhpPUE9PntsZXQgZT1uZXcgQXJyYXkoMTApLHQ9KHIsbyk9PntpZihHQShyKSl7aWYoZS5pbmRleE9mKHIpPj0wKXJldHVybjtpZighKCJ0b0pTT04iaW4gcikpe2Vbb109cjtsZXQgaT1BQShyKT9bXTp7fTtyZXR1cm4gQ0EociwobixsKT0+e2xldCBwPXQobixvKzEpOyFCQShwKSYmKGlbbF09cCl9KSxlW29dPXZvaWQgMCxpfX1yZXR1cm4gcn07cmV0dXJuIHQoQSwwKX0sX2k9SigiQXN5bmNGdW5jdGlvbiIpLCRpPUE9PkEmJihHQShBKXx8TChBKSkmJkwoQS50aGVuKSYmTChBLmNhdGNoKSx2dD0oKEEsZSk9PkE/c2V0SW1tZWRpYXRlOmU/KCh0LHIpPT4oWC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoe3NvdXJjZTpvLGRhdGE6aX0pPT57bz09PVgmJmk9PT10JiZyLmxlbmd0aCYmci5zaGlmdCgpKCl9LCExKSxvPT57ci5wdXNoKG8pLFgucG9zdE1lc3NhZ2UodCwiKiIpfSkpKGBheGlvc0Ake01hdGgucmFuZG9tKCl9YCxbXSk6dD0+c2V0VGltZW91dCh0KSkodHlwZW9mIHNldEltbWVkaWF0ZT09ImZ1bmN0aW9uIixMKFgucG9zdE1lc3NhZ2UpKSxBbz10eXBlb2YgcXVldWVNaWNyb3Rhc2s8InUiP3F1ZXVlTWljcm90YXNrLmJpbmQoWCk6dHlwZW9mIHByb2Nlc3M8InUiJiZwcm9jZXNzLm5leHRUaWNrfHx2dCxFPXtpc0FycmF5OkFBLGlzQXJyYXlCdWZmZXI6SHQsaXNCdWZmZXI6dWksaXNGb3JtRGF0YTpraSxpc0FycmF5QnVmZmVyVmlldzpmaSxpc1N0cmluZzpjaSxpc051bWJlcjpZdCxpc0Jvb2xlYW46ZGksaXNPYmplY3Q6R0EsaXNQbGFpbk9iamVjdDpTQSxpc1JlYWRhYmxlU3RyZWFtOlVpLGlzUmVxdWVzdDpOaSxpc1Jlc3BvbnNlOlNpLGlzSGVhZGVyczpiaSxpc1VuZGVmaW5lZDpCQSxpc0RhdGU6eWksaXNGaWxlOmhpLGlzQmxvYjp3aSxpc1JlZ0V4cDpLaSxpc0Z1bmN0aW9uOkwsaXNTdHJlYW06UmksaXNVUkxTZWFyY2hQYXJhbXM6RmksaXNUeXBlZEFycmF5Ok1pLGlzRmlsZUxpc3Q6RGksZm9yRWFjaDpDQSxtZXJnZTpJZSxleHRlbmQ6R2ksdHJpbTpXaSxzdHJpcEJPTTpPaSxpbmhlcml0czpMaSx0b0ZsYXRPYmplY3Q6Smksa2luZE9mOmJBLGtpbmRPZlRlc3Q6SixlbmRzV2l0aDpQaSx0b0FycmF5OnhpLGZvckVhY2hFbnRyeTpUaSxtYXRjaEFsbDpIaSxpc0hUTUxGb3JtOllpLGhhc093blByb3BlcnR5OlR0LGhhc093blByb3A6VHQscmVkdWNlRGVzY3JpcHRvcnM6anQsZnJlZXplTWV0aG9kczpqaSx0b09iamVjdFNldDp2aSx0b0NhbWVsQ2FzZTpxaSxub29wOlppLHRvRmluaXRlTnVtYmVyOlZpLGZpbmRLZXk6cXQsZ2xvYmFsOlgsaXNDb250ZXh0RGVmaW5lZDpLdCxpc1NwZWNDb21wbGlhbnRGb3JtOnppLHRvSlNPTk9iamVjdDpYaSxpc0FzeW5jRm46X2ksaXNUaGVuYWJsZTokaSxzZXRJbW1lZGlhdGU6dnQsYXNhcDpBb307ZnVuY3Rpb24gZUEoQSxlLHQscixvKXtFcnJvci5jYWxsKHRoaXMpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFjayx0aGlzLm1lc3NhZ2U9QSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLGUmJih0aGlzLmNvZGU9ZSksdCYmKHRoaXMuY29uZmlnPXQpLHImJih0aGlzLnJlcXVlc3Q9ciksbyYmKHRoaXMucmVzcG9uc2U9byx0aGlzLnN0YXR1cz1vLnN0YXR1cz9vLnN0YXR1czpudWxsKX1FLmluaGVyaXRzKGVBLEVycm9yLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6RS50b0pTT05PYmplY3QodGhpcy5jb25maWcpLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnN0YXR1c319fSk7dmFyIFp0PWVBLnByb3RvdHlwZSxWdD17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiLCJFUlJfTk9UX1NVUFBPUlQiLCJFUlJfSU5WQUxJRF9VUkwiXS5mb3JFYWNoKEE9PntWdFtBXT17dmFsdWU6QX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlQSxWdCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFp0LCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pO2VBLmZyb209KEEsZSx0LHIsbyxpKT0+e2xldCBuPU9iamVjdC5jcmVhdGUoWnQpO3JldHVybiBFLnRvRmxhdE9iamVjdChBLG4sZnVuY3Rpb24ocCl7cmV0dXJuIHAhPT1FcnJvci5wcm90b3R5cGV9LGw9PmwhPT0iaXNBeGlvc0Vycm9yIiksZUEuY2FsbChuLEEubWVzc2FnZSxlLHQscixvKSxuLmNhdXNlPUEsbi5uYW1lPUEubmFtZSxpJiZPYmplY3QuYXNzaWduKG4saSksbn07dmFyIGg9ZUE7dmFyIE9BPW51bGw7ZnVuY3Rpb24gZ2UoQSl7cmV0dXJuIEUuaXNQbGFpbk9iamVjdChBKXx8RS5pc0FycmF5KEEpfWZ1bmN0aW9uIFh0KEEpe3JldHVybiBFLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIHp0KEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24obyxpKXtyZXR1cm4gbz1YdChvKSwhdCYmaT8iWyIrbysiXSI6b30pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gZW8oQSl7cmV0dXJuIEUuaXNBcnJheShBKSYmIUEuc29tZShnZSl9dmFyIHRvPUUudG9GbGF0T2JqZWN0KEUse30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiBybyhBLGUsdCl7aWYoIUUuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoT0F8fEZvcm1EYXRhKSx0PUUudG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbih1LG0pe3JldHVybiFFLmlzVW5kZWZpbmVkKG1bdV0pfSk7bGV0IHI9dC5tZXRhVG9rZW5zLG89dC52aXNpdG9yfHxhLGk9dC5kb3RzLG49dC5pbmRleGVzLHA9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmRS5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFFLmlzRnVuY3Rpb24obykpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBCKGcpe2lmKGc9PT1udWxsKXJldHVybiIiO2lmKEUuaXNEYXRlKGcpKXJldHVybiBnLnRvSVNPU3RyaW5nKCk7aWYoIXAmJkUuaXNCbG9iKGcpKXRocm93IG5ldyBoKCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBFLmlzQXJyYXlCdWZmZXIoZyl8fEUuaXNUeXBlZEFycmF5KGcpP3AmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtnXSk6QnVmZmVyLmZyb20oZyk6Z31mdW5jdGlvbiBhKGcsdSxtKXtsZXQgRD1nO2lmKGcmJiFtJiZ0eXBlb2YgZz09Im9iamVjdCIpe2lmKEUuZW5kc1dpdGgodSwie30iKSl1PXI/dTp1LnNsaWNlKDAsLTIpLGc9SlNPTi5zdHJpbmdpZnkoZyk7ZWxzZSBpZihFLmlzQXJyYXkoZykmJmVvKGcpfHwoRS5pc0ZpbGVMaXN0KGcpfHxFLmVuZHNXaXRoKHUsIltdIikpJiYoRD1FLnRvQXJyYXkoZykpKXJldHVybiB1PVh0KHUpLEQuZm9yRWFjaChmdW5jdGlvbihGLEgpeyEoRS5pc1VuZGVmaW5lZChGKXx8Rj09PW51bGwpJiZlLmFwcGVuZChuPT09ITA/enQoW3VdLEgsaSk6bj09PW51bGw/dTp1KyJbXSIsQihGKSl9KSwhMX1yZXR1cm4gZ2UoZyk/ITA6KGUuYXBwZW5kKHp0KG0sdSxpKSxCKGcpKSwhMSl9bGV0IHM9W10sUT1PYmplY3QuYXNzaWduKHRvLHtkZWZhdWx0VmlzaXRvcjphLGNvbnZlcnRWYWx1ZTpCLGlzVmlzaXRhYmxlOmdlfSk7ZnVuY3Rpb24gSShnLHUpe2lmKCFFLmlzVW5kZWZpbmVkKGcpKXtpZihzLmluZGV4T2YoZykhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrdS5qb2luKCIuIikpO3MucHVzaChnKSxFLmZvckVhY2goZyxmdW5jdGlvbihELGspeyghKEUuaXNVbmRlZmluZWQoRCl8fEQ9PT1udWxsKSYmby5jYWxsKGUsRCxFLmlzU3RyaW5nKGspP2sudHJpbSgpOmssdSxRKSk9PT0hMCYmSShELHU/dS5jb25jYXQoayk6W2tdKX0pLHMucG9wKCl9fWlmKCFFLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gSShBKSxlfXZhciBqPXJvO2Z1bmN0aW9uIF90KEEpe2xldCBlPXsiISI6IiUyMSIsIiciOiIlMjciLCIoIjoiJTI4IiwiKSI6IiUyOSIsIn4iOiIlN0UiLCIlMjAiOiIrIiwiJTAwIjoiXDAifTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoL1shJygpfl18JTIwfCUwMC9nLGZ1bmN0aW9uKHIpe3JldHVybiBlW3JdfSl9ZnVuY3Rpb24gJHQoQSxlKXt0aGlzLl9wYWlycz1bXSxBJiZqKEEsdGhpcyxlKX12YXIgQXI9JHQucHJvdG90eXBlO0FyLmFwcGVuZD1mdW5jdGlvbihlLHQpe3RoaXMuX3BhaXJzLnB1c2goW2UsdF0pfTtBci50b1N0cmluZz1mdW5jdGlvbihlKXtsZXQgdD1lP2Z1bmN0aW9uKHIpe3JldHVybiBlLmNhbGwodGhpcyxyLF90KX06X3Q7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gdChvWzBdKSsiPSIrdChvWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIExBPSR0O2Z1bmN0aW9uIGlvKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpLnJlcGxhY2UoLyU1Qi9naSwiWyIpLnJlcGxhY2UoLyU1RC9naSwiXSIpfWZ1bmN0aW9uIGxBKEEsZSx0KXtpZighZSlyZXR1cm4gQTtsZXQgcj10JiZ0LmVuY29kZXx8aW87RS5pc0Z1bmN0aW9uKHQpJiYodD17c2VyaWFsaXplOnR9KTtsZXQgbz10JiZ0LnNlcmlhbGl6ZSxpO2lmKG8/aT1vKGUsdCk6aT1FLmlzVVJMU2VhcmNoUGFyYW1zKGUpP2UudG9TdHJpbmcoKTpuZXcgTEEoZSx0KS50b1N0cmluZyhyKSxpKXtsZXQgbj1BLmluZGV4T2YoIiMiKTtuIT09LTEmJihBPUEuc2xpY2UoMCxuKSksQSs9KEEuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikraX1yZXR1cm4gQX12YXIgQmU9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmhhbmRsZXJzPVtdfXVzZShlLHQscil7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOmUscmVqZWN0ZWQ6dCxzeW5jaHJvbm91czpyP3Iuc3luY2hyb25vdXM6ITEscnVuV2hlbjpyP3IucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX1lamVjdChlKXt0aGlzLmhhbmRsZXJzW2VdJiYodGhpcy5oYW5kbGVyc1tlXT1udWxsKX1jbGVhcigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX1mb3JFYWNoKGUpe0UuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKHIpe3IhPT1udWxsJiZlKHIpfSl9fSxDZT1CZTt2YXIgSkE9e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9O3ZhciBlcj10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6TEE7dmFyIHRyPXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgcnI9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgaXI9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6ZXIsRm9ybURhdGE6dHIsQmxvYjpycn0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBFZT17fTtWcihFZSx7aGFzQnJvd3NlckVudjooKT0+UWUsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5vbyxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9PmFvLG5hdmlnYXRvcjooKT0+bGUsb3JpZ2luOigpPT5ub30pO3ZhciBRZT10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1IixsZT10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsb289UWUmJighbGV8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2YobGUucHJvZHVjdCk8MCksYW89dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLG5vPVFlJiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBSPXsuLi5FZSwuLi5pcn07ZnVuY3Rpb24gcGUoQSxlKXtyZXR1cm4gaihBLG5ldyBSLmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLE9iamVjdC5hc3NpZ24oe3Zpc2l0b3I6ZnVuY3Rpb24odCxyLG8saSl7cmV0dXJuIFIuaXNOb2RlJiZFLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChyLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6aS5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxlKSl9ZnVuY3Rpb24gSW8oQSl7cmV0dXJuIEUubWF0Y2hBbGwoL1x3K3xcWyhcdyopXS9nLEEpLm1hcChlPT5lWzBdPT09IltdIj8iIjplWzFdfHxlWzBdKX1mdW5jdGlvbiBzbyhBKXtsZXQgZT17fSx0PU9iamVjdC5rZXlzKEEpLHIsbz10Lmxlbmd0aCxpO2ZvcihyPTA7cjxvO3IrKylpPXRbcl0sZVtpXT1BW2ldO3JldHVybiBlfWZ1bmN0aW9uIGdvKEEpe2Z1bmN0aW9uIGUodCxyLG8saSl7bGV0IG49dFtpKytdO2lmKG49PT0iX19wcm90b19fIilyZXR1cm4hMDtsZXQgbD1OdW1iZXIuaXNGaW5pdGUoK24pLHA9aT49dC5sZW5ndGg7cmV0dXJuIG49IW4mJkUuaXNBcnJheShvKT9vLmxlbmd0aDpuLHA/KEUuaGFzT3duUHJvcChvLG4pP29bbl09W29bbl0scl06b1tuXT1yLCFsKTooKCFvW25dfHwhRS5pc09iamVjdChvW25dKSkmJihvW25dPVtdKSxlKHQscixvW25dLGkpJiZFLmlzQXJyYXkob1tuXSkmJihvW25dPXNvKG9bbl0pKSwhbCl9aWYoRS5pc0Zvcm1EYXRhKEEpJiZFLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IHQ9e307cmV0dXJuIEUuZm9yRWFjaEVudHJ5KEEsKHIsbyk9PntlKElvKHIpLG8sdCwwKX0pLHR9cmV0dXJuIG51bGx9dmFyIFBBPWdvO2Z1bmN0aW9uIEJvKEEsZSx0KXtpZihFLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4oZXx8SlNPTi5wYXJzZSkoQSksRS50cmltKEEpfWNhdGNoKHIpe2lmKHIubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgcn1yZXR1cm4odHx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBtZT17dHJhbnNpdGlvbmFsOkpBLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe2xldCByPXQuZ2V0Q29udGVudFR5cGUoKXx8IiIsbz1yLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxpPUUuaXNPYmplY3QoZSk7aWYoaSYmRS5pc0hUTUxGb3JtKGUpJiYoZT1uZXcgRm9ybURhdGEoZSkpLEUuaXNGb3JtRGF0YShlKSlyZXR1cm4gbz9KU09OLnN0cmluZ2lmeShQQShlKSk6ZTtpZihFLmlzQXJyYXlCdWZmZXIoZSl8fEUuaXNCdWZmZXIoZSl8fEUuaXNTdHJlYW0oZSl8fEUuaXNGaWxlKGUpfHxFLmlzQmxvYihlKXx8RS5pc1JlYWRhYmxlU3RyZWFtKGUpKXJldHVybiBlO2lmKEUuaXNBcnJheUJ1ZmZlclZpZXcoZSkpcmV0dXJuIGUuYnVmZmVyO2lmKEUuaXNVUkxTZWFyY2hQYXJhbXMoZSkpcmV0dXJuIHQuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksZS50b1N0cmluZygpO2xldCBsO2lmKGkpe2lmKHIuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik+LTEpcmV0dXJuIHBlKGUsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigobD1FLmlzRmlsZUxpc3QoZSkpfHxyLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7bGV0IHA9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBqKGw/eyJmaWxlc1tdIjplfTplLHAmJm5ldyBwLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gaXx8bz8odC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLEJvKGUpKTplfV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKGUpe2xldCB0PXRoaXMudHJhbnNpdGlvbmFsfHxtZS50cmFuc2l0aW9uYWwscj10JiZ0LmZvcmNlZEpTT05QYXJzaW5nLG89dGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYoRS5pc1Jlc3BvbnNlKGUpfHxFLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoZSYmRS5pc1N0cmluZyhlKSYmKHImJiF0aGlzLnJlc3BvbnNlVHlwZXx8bykpe2xldCBuPSEodCYmdC5zaWxlbnRKU09OUGFyc2luZykmJm87dHJ5e3JldHVybiBKU09OLnBhcnNlKGUpfWNhdGNoKGwpe2lmKG4pdGhyb3cgbC5uYW1lPT09IlN5bnRheEVycm9yIj9oLmZyb20obCxoLkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpOmx9fXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpSLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpSLmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtFLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIl0sQT0+e21lLmhlYWRlcnNbQV09e319KTt2YXIgdEE9bWU7dmFyIENvPUUudG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksb3I9QT0+e2xldCBlPXt9LHQscixvO3JldHVybiBBJiZBLnNwbGl0KGAKYCkuZm9yRWFjaChmdW5jdGlvbihuKXtvPW4uaW5kZXhPZigiOiIpLHQ9bi5zdWJzdHJpbmcoMCxvKS50cmltKCkudG9Mb3dlckNhc2UoKSxyPW4uc3Vic3RyaW5nKG8rMSkudHJpbSgpLCEoIXR8fGVbdF0mJkNvW3RdKSYmKHQ9PT0ic2V0LWNvb2tpZSI/ZVt0XT9lW3RdLnB1c2gocik6ZVt0XT1bcl06ZVt0XT1lW3RdP2VbdF0rIiwgIityOnIpfSksZX07dmFyIGFyPVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gUUEoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiB4QShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6RS5pc0FycmF5KEEpP0EubWFwKHhBKTpTdHJpbmcoQSl9ZnVuY3Rpb24gbG8oQSl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKSx0PS8oW15ccyw7PV0rKVxzKig/Oj1ccyooW14sO10rKSk/L2cscjtmb3IoO3I9dC5leGVjKEEpOyllW3JbMV1dPXJbMl07cmV0dXJuIGV9dmFyIFFvPUE9Pi9eWy1fYS16QS1aMC05XmB8fiwhIyQlJicqKy5dKyQvLnRlc3QoQS50cmltKCkpO2Z1bmN0aW9uIHVlKEEsZSx0LHIsbyl7aWYoRS5pc0Z1bmN0aW9uKHIpKXJldHVybiByLmNhbGwodGhpcyxlLHQpO2lmKG8mJihlPXQpLCEhRS5pc1N0cmluZyhlKSl7aWYoRS5pc1N0cmluZyhyKSlyZXR1cm4gZS5pbmRleE9mKHIpIT09LTE7aWYoRS5pc1JlZ0V4cChyKSlyZXR1cm4gci50ZXN0KGUpfX1mdW5jdGlvbiBFbyhBKXtyZXR1cm4gQS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxkXSkoXHcqKS9nLChlLHQscik9PnQudG9VcHBlckNhc2UoKStyKX1mdW5jdGlvbiBwbyhBLGUpe2xldCB0PUUudG9DYW1lbENhc2UoIiAiK2UpO1siZ2V0Iiwic2V0IiwiaGFzIl0uZm9yRWFjaChyPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KEEscit0LHt2YWx1ZTpmdW5jdGlvbihvLGksbil7cmV0dXJuIHRoaXNbcl0uY2FsbCh0aGlzLGUsbyxpLG4pfSxjb25maWd1cmFibGU6ITB9KX0pfXZhciByQT1jbGFzc3tjb25zdHJ1Y3RvcihlKXtlJiZ0aGlzLnNldChlKX1zZXQoZSx0LHIpe2xldCBvPXRoaXM7ZnVuY3Rpb24gaShsLHAsQil7bGV0IGE9UUEocCk7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2xldCBzPUUuZmluZEtleShvLGEpOyghc3x8b1tzXT09PXZvaWQgMHx8Qj09PSEwfHxCPT09dm9pZCAwJiZvW3NdIT09ITEpJiYob1tzfHxwXT14QShsKSl9bGV0IG49KGwscCk9PkUuZm9yRWFjaChsLChCLGEpPT5pKEIsYSxwKSk7aWYoRS5pc1BsYWluT2JqZWN0KGUpfHxlIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3RvciluKGUsdCk7ZWxzZSBpZihFLmlzU3RyaW5nKGUpJiYoZT1lLnRyaW0oKSkmJiFRbyhlKSluKG9yKGUpLHQpO2Vsc2UgaWYoRS5pc0hlYWRlcnMoZSkpZm9yKGxldFtsLHBdb2YgZS5lbnRyaWVzKCkpaShwLGwscik7ZWxzZSBlIT1udWxsJiZpKHQsZSxyKTtyZXR1cm4gdGhpc31nZXQoZSx0KXtpZihlPVFBKGUpLGUpe2xldCByPUUuZmluZEtleSh0aGlzLGUpO2lmKHIpe2xldCBvPXRoaXNbcl07aWYoIXQpcmV0dXJuIG87aWYodD09PSEwKXJldHVybiBsbyhvKTtpZihFLmlzRnVuY3Rpb24odCkpcmV0dXJuIHQuY2FsbCh0aGlzLG8scik7aWYoRS5pc1JlZ0V4cCh0KSlyZXR1cm4gdC5leGVjKG8pO3Rocm93IG5ldyBUeXBlRXJyb3IoInBhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uIil9fX1oYXMoZSx0KXtpZihlPVFBKGUpLGUpe2xldCByPUUuZmluZEtleSh0aGlzLGUpO3JldHVybiEhKHImJnRoaXNbcl0hPT12b2lkIDAmJighdHx8dWUodGhpcyx0aGlzW3JdLHIsdCkpKX1yZXR1cm4hMX1kZWxldGUoZSx0KXtsZXQgcj10aGlzLG89ITE7ZnVuY3Rpb24gaShuKXtpZihuPVFBKG4pLG4pe2xldCBsPUUuZmluZEtleShyLG4pO2wmJighdHx8dWUocixyW2xdLGwsdCkpJiYoZGVsZXRlIHJbbF0sbz0hMCl9fXJldHVybiBFLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKGkpOmkoZSksb31jbGVhcihlKXtsZXQgdD1PYmplY3Qua2V5cyh0aGlzKSxyPXQubGVuZ3RoLG89ITE7Zm9yKDtyLS07KXtsZXQgaT10W3JdOyghZXx8dWUodGhpcyx0aGlzW2ldLGksZSwhMCkpJiYoZGVsZXRlIHRoaXNbaV0sbz0hMCl9cmV0dXJuIG99bm9ybWFsaXplKGUpe2xldCB0PXRoaXMscj17fTtyZXR1cm4gRS5mb3JFYWNoKHRoaXMsKG8saSk9PntsZXQgbj1FLmZpbmRLZXkocixpKTtpZihuKXt0W25dPXhBKG8pLGRlbGV0ZSB0W2ldO3JldHVybn1sZXQgbD1lP0VvKGkpOlN0cmluZyhpKS50cmltKCk7bCE9PWkmJmRlbGV0ZSB0W2ldLHRbbF09eEEobykscltsXT0hMH0pLHRoaXN9Y29uY2F0KC4uLmUpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLmNvbmNhdCh0aGlzLC4uLmUpfXRvSlNPTihlKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBFLmZvckVhY2godGhpcywocixvKT0+e3IhPW51bGwmJnIhPT0hMSYmKHRbb109ZSYmRS5pc0FycmF5KHIpP3Iuam9pbigiLCAiKTpyKX0pLHR9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSlbU3ltYm9sLml0ZXJhdG9yXSgpfXRvU3RyaW5nKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpLm1hcCgoW2UsdF0pPT5lKyI6ICIrdCkuam9pbihgCmApfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCByPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2gobz0+ci5zZXQobykpLHJ9c3RhdGljIGFjY2Vzc29yKGUpe2xldCByPSh0aGlzW2FyXT10aGlzW2FyXT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLG89dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gaShuKXtsZXQgbD1RQShuKTtyW2xdfHwocG8obyxuKSxyW2xdPSEwKX1yZXR1cm4gRS5pc0FycmF5KGUpP2UuZm9yRWFjaChpKTppKGUpLHRoaXN9fTtyQS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7RS5yZWR1Y2VEZXNjcmlwdG9ycyhyQS5wcm90b3R5cGUsKHt2YWx1ZTpBfSxlKT0+e2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KHIpe3RoaXNbdF09cn19fSk7RS5mcmVlemVNZXRob2RzKHJBKTt2YXIgUz1yQTtmdW5jdGlvbiBFQShBLGUpe2xldCB0PXRoaXN8fHRBLHI9ZXx8dCxvPVMuZnJvbShyLmhlYWRlcnMpLGk9ci5kYXRhO3JldHVybiBFLmZvckVhY2goQSxmdW5jdGlvbihsKXtpPWwuY2FsbCh0LGksby5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxvLm5vcm1hbGl6ZSgpLGl9ZnVuY3Rpb24gcEEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBucihBLGUsdCl7aC5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIixoLkVSUl9DQU5DRUxFRCxlLHQpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9RS5pbmhlcml0cyhucixoLHtfX0NBTkNFTF9fOiEwfSk7dmFyIHg9bnI7ZnVuY3Rpb24gbUEoQSxlLHQpe2xldCByPXQuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyF0LnN0YXR1c3x8IXJ8fHIodC5zdGF0dXMpP0EodCk6ZShuZXcgaCgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Quc3RhdHVzLFtoLkVSUl9CQURfUkVRVUVTVCxoLkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IodC5zdGF0dXMvMTAwKS00XSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIGZlKEEpe2xldCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBtbyhBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLHI9bmV3IEFycmF5KEEpLG89MCxpPTAsbjtyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKHApe2xldCBCPURhdGUubm93KCksYT1yW2ldO258fChuPUIpLHRbb109cCxyW29dPUI7bGV0IHM9aSxRPTA7Zm9yKDtzIT09bzspUSs9dFtzKytdLHM9cyVBO2lmKG89KG8rMSklQSxvPT09aSYmKGk9KGkrMSklQSksQi1uPGUpcmV0dXJuO2xldCBJPWEmJkItYTtyZXR1cm4gST9NYXRoLnJvdW5kKFEqMWUzL0kpOnZvaWQgMH19dmFyIElyPW1vO2Z1bmN0aW9uIHVvKEEsZSl7bGV0IHQ9MCxyPTFlMy9lLG8saSxuPShCLGE9RGF0ZS5ub3coKSk9Pnt0PWEsbz1udWxsLGkmJihjbGVhclRpbWVvdXQoaSksaT1udWxsKSxBLmFwcGx5KG51bGwsQil9O3JldHVyblsoLi4uQik9PntsZXQgYT1EYXRlLm5vdygpLHM9YS10O3M+PXI/bihCLGEpOihvPUIsaXx8KGk9c2V0VGltZW91dCgoKT0+e2k9bnVsbCxuKG8pfSxyLXMpKSl9LCgpPT5vJiZuKG8pXX12YXIgc3I9dW87dmFyIGlBPShBLGUsdD0zKT0+e2xldCByPTAsbz1Jcig1MCwyNTApO3JldHVybiBzcihpPT57bGV0IG49aS5sb2FkZWQsbD1pLmxlbmd0aENvbXB1dGFibGU/aS50b3RhbDp2b2lkIDAscD1uLXIsQj1vKHApLGE9bjw9bDtyPW47bGV0IHM9e2xvYWRlZDpuLHRvdGFsOmwscHJvZ3Jlc3M6bD9uL2w6dm9pZCAwLGJ5dGVzOnAscmF0ZTpCfHx2b2lkIDAsZXN0aW1hdGVkOkImJmwmJmE/KGwtbikvQjp2b2lkIDAsZXZlbnQ6aSxsZW5ndGhDb21wdXRhYmxlOmwhPW51bGwsW2U/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0Eocyl9LHQpfSxjZT0oQSxlKT0+e2xldCB0PUEhPW51bGw7cmV0dXJuW3I9PmVbMF0oe2xlbmd0aENvbXB1dGFibGU6dCx0b3RhbDpBLGxvYWRlZDpyfSksZVsxXV19LGRlPUE9PiguLi5lKT0+RS5hc2FwKCgpPT5BKC4uLmUpKTt2YXIgZ3I9Ui5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLGUpPT50PT4odD1uZXcgVVJMKHQsUi5vcmlnaW4pLEEucHJvdG9jb2w9PT10LnByb3RvY29sJiZBLmhvc3Q9PT10Lmhvc3QmJihlfHxBLnBvcnQ9PT10LnBvcnQpKSkobmV3IFVSTChSLm9yaWdpbiksUi5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoUi5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBCcj1SLmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSxlLHQscixvLGkpe2xldCBuPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQoZSldO0UuaXNOdW1iZXIodCkmJm4ucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKHQpLnRvR01UU3RyaW5nKCkpLEUuaXNTdHJpbmcocikmJm4ucHVzaCgicGF0aD0iK3IpLEUuaXNTdHJpbmcobykmJm4ucHVzaCgiZG9tYWluPSIrbyksaT09PSEwJiZuLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1uLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IGU9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMqKSgiK0ErIik9KFteO10qKSIpKTtyZXR1cm4gZT9kZWNvZGVVUklDb21wb25lbnQoZVszXSk6bnVsbH0scmVtb3ZlKEEpe3RoaXMud3JpdGUoQSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiB5ZShBKXtyZXR1cm4vXihbYS16XVthLXpcZCtcLS5dKjopP1wvXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIGhlKEEsZSl7cmV0dXJuIGU/QS5yZXBsYWNlKC9cLz9cLyQvLCIiKSsiLyIrZS5yZXBsYWNlKC9eXC8rLywiIik6QX1mdW5jdGlvbiB1QShBLGUsdCl7bGV0IHI9IXllKGUpO3JldHVybiBBJiYocnx8dD09ITEpP2hlKEEsZSk6ZX12YXIgQ3I9QT0+QSBpbnN0YW5jZW9mIFM/ey4uLkF9OkE7ZnVuY3Rpb24gUChBLGUpe2U9ZXx8e307bGV0IHQ9e307ZnVuY3Rpb24gcihCLGEscyxRKXtyZXR1cm4gRS5pc1BsYWluT2JqZWN0KEIpJiZFLmlzUGxhaW5PYmplY3QoYSk/RS5tZXJnZS5jYWxsKHtjYXNlbGVzczpRfSxCLGEpOkUuaXNQbGFpbk9iamVjdChhKT9FLm1lcmdlKHt9LGEpOkUuaXNBcnJheShhKT9hLnNsaWNlKCk6YX1mdW5jdGlvbiBvKEIsYSxzLFEpe2lmKEUuaXNVbmRlZmluZWQoYSkpe2lmKCFFLmlzVW5kZWZpbmVkKEIpKXJldHVybiByKHZvaWQgMCxCLHMsUSl9ZWxzZSByZXR1cm4gcihCLGEscyxRKX1mdW5jdGlvbiBpKEIsYSl7aWYoIUUuaXNVbmRlZmluZWQoYSkpcmV0dXJuIHIodm9pZCAwLGEpfWZ1bmN0aW9uIG4oQixhKXtpZihFLmlzVW5kZWZpbmVkKGEpKXtpZighRS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gcih2b2lkIDAsQil9ZWxzZSByZXR1cm4gcih2b2lkIDAsYSl9ZnVuY3Rpb24gbChCLGEscyl7aWYocyBpbiBlKXJldHVybiByKEIsYSk7aWYocyBpbiBBKXJldHVybiByKHZvaWQgMCxCKX1sZXQgcD17dXJsOmksbWV0aG9kOmksZGF0YTppLGJhc2VVUkw6bix0cmFuc2Zvcm1SZXF1ZXN0Om4sdHJhbnNmb3JtUmVzcG9uc2U6bixwYXJhbXNTZXJpYWxpemVyOm4sdGltZW91dDpuLHRpbWVvdXRNZXNzYWdlOm4sd2l0aENyZWRlbnRpYWxzOm4sd2l0aFhTUkZUb2tlbjpuLGFkYXB0ZXI6bixyZXNwb25zZVR5cGU6bix4c3JmQ29va2llTmFtZTpuLHhzcmZIZWFkZXJOYW1lOm4sb25VcGxvYWRQcm9ncmVzczpuLG9uRG93bmxvYWRQcm9ncmVzczpuLGRlY29tcHJlc3M6bixtYXhDb250ZW50TGVuZ3RoOm4sbWF4Qm9keUxlbmd0aDpuLGJlZm9yZVJlZGlyZWN0Om4sdHJhbnNwb3J0Om4saHR0cEFnZW50Om4saHR0cHNBZ2VudDpuLGNhbmNlbFRva2VuOm4sc29ja2V0UGF0aDpuLHJlc3BvbnNlRW5jb2Rpbmc6bix2YWxpZGF0ZVN0YXR1czpsLGhlYWRlcnM6KEIsYSxzKT0+byhDcihCKSxDcihhKSxzLCEwKX07cmV0dXJuIEUuZm9yRWFjaChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LEEsZSkpLGZ1bmN0aW9uKGEpe2xldCBzPXBbYV18fG8sUT1zKEFbYV0sZVthXSxhKTtFLmlzVW5kZWZpbmVkKFEpJiZzIT09bHx8KHRbYV09USl9KSx0fXZhciBNQT1BPT57bGV0IGU9UCh7fSxBKSx7ZGF0YTp0LHdpdGhYU1JGVG9rZW46cix4c3JmSGVhZGVyTmFtZTpvLHhzcmZDb29raWVOYW1lOmksaGVhZGVyczpuLGF1dGg6bH09ZTtlLmhlYWRlcnM9bj1TLmZyb20obiksZS51cmw9bEEodUEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplciksbCYmbi5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKGwudXNlcm5hbWV8fCIiKSsiOiIrKGwucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGwucGFzc3dvcmQpKToiIikpKTtsZXQgcDtpZihFLmlzRm9ybURhdGEodCkpe2lmKFIuaGFzU3RhbmRhcmRCcm93c2VyRW52fHxSLmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudiluLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZigocD1uLmdldENvbnRlbnRUeXBlKCkpIT09ITEpe2xldFtCLC4uLmFdPXA/cC5zcGxpdCgiOyIpLm1hcChzPT5zLnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pOltdO24uc2V0Q29udGVudFR5cGUoW0J8fCJtdWx0aXBhcnQvZm9ybS1kYXRhIiwuLi5hXS5qb2luKCI7ICIpKX19aWYoUi5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJihyJiZFLmlzRnVuY3Rpb24ocikmJihyPXIoZSkpLHJ8fHIhPT0hMSYmZ3IoZS51cmwpKSl7bGV0IEI9byYmaSYmQnIucmVhZChpKTtCJiZuLnNldChvLEIpfXJldHVybiBlfTt2YXIgZm89dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1Iixscj1mbyYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQscil7bGV0IG89TUEoQSksaT1vLmRhdGEsbj1TLmZyb20oby5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOmwsb25VcGxvYWRQcm9ncmVzczpwLG9uRG93bmxvYWRQcm9ncmVzczpCfT1vLGEscyxRLEksZztmdW5jdGlvbiB1KCl7SSYmSSgpLGcmJmcoKSxvLmNhbmNlbFRva2VuJiZvLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKGEpLG8uc2lnbmFsJiZvLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsYSl9bGV0IG09bmV3IFhNTEh0dHBSZXF1ZXN0O20ub3BlbihvLm1ldGhvZC50b1VwcGVyQ2FzZSgpLG8udXJsLCEwKSxtLnRpbWVvdXQ9by50aW1lb3V0O2Z1bmN0aW9uIEQoKXtpZighbSlyZXR1cm47bGV0IEY9Uy5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gbSYmbS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksRz17ZGF0YTohbHx8bD09PSJ0ZXh0Inx8bD09PSJqc29uIj9tLnJlc3BvbnNlVGV4dDptLnJlc3BvbnNlLHN0YXR1czptLnN0YXR1cyxzdGF0dXNUZXh0Om0uc3RhdHVzVGV4dCxoZWFkZXJzOkYsY29uZmlnOkEscmVxdWVzdDptfTttQShmdW5jdGlvbihaKXt0KFopLHUoKX0sZnVuY3Rpb24oWil7cihaKSx1KCl9LEcpLG09bnVsbH0ib25sb2FkZW5kImluIG0/bS5vbmxvYWRlbmQ9RDptLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFtfHxtLnJlYWR5U3RhdGUhPT00fHxtLnN0YXR1cz09PTAmJiEobS5yZXNwb25zZVVSTCYmbS5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoRCl9LG0ub25hYm9ydD1mdW5jdGlvbigpe20mJihyKG5ldyBoKCJSZXF1ZXN0IGFib3J0ZWQiLGguRUNPTk5BQk9SVEVELEEsbSkpLG09bnVsbCl9LG0ub25lcnJvcj1mdW5jdGlvbigpe3IobmV3IGgoIk5ldHdvcmsgRXJyb3IiLGguRVJSX05FVFdPUkssQSxtKSksbT1udWxsfSxtLm9udGltZW91dD1mdW5jdGlvbigpe2xldCBIPW8udGltZW91dD8idGltZW91dCBvZiAiK28udGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixHPW8udHJhbnNpdGlvbmFsfHxKQTtvLnRpbWVvdXRFcnJvck1lc3NhZ2UmJihIPW8udGltZW91dEVycm9yTWVzc2FnZSkscihuZXcgaChILEcuY2xhcmlmeVRpbWVvdXRFcnJvcj9oLkVUSU1FRE9VVDpoLkVDT05OQUJPUlRFRCxBLG0pKSxtPW51bGx9LGk9PT12b2lkIDAmJm4uc2V0Q29udGVudFR5cGUobnVsbCksInNldFJlcXVlc3RIZWFkZXIiaW4gbSYmRS5mb3JFYWNoKG4udG9KU09OKCksZnVuY3Rpb24oSCxHKXttLnNldFJlcXVlc3RIZWFkZXIoRyxIKX0pLEUuaXNVbmRlZmluZWQoby53aXRoQ3JlZGVudGlhbHMpfHwobS53aXRoQ3JlZGVudGlhbHM9ISFvLndpdGhDcmVkZW50aWFscyksbCYmbCE9PSJqc29uIiYmKG0ucmVzcG9uc2VUeXBlPW8ucmVzcG9uc2VUeXBlKSxCJiYoW1EsZ109aUEoQiwhMCksbS5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsUSkpLHAmJm0udXBsb2FkJiYoW3MsSV09aUEocCksbS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLHMpLG0udXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLEkpKSwoby5jYW5jZWxUb2tlbnx8by5zaWduYWwpJiYoYT1GPT57bSYmKHIoIUZ8fEYudHlwZT9uZXcgeChudWxsLEEsbSk6RiksbS5hYm9ydCgpLG09bnVsbCl9LG8uY2FuY2VsVG9rZW4mJm8uY2FuY2VsVG9rZW4uc3Vic2NyaWJlKGEpLG8uc2lnbmFsJiYoby5zaWduYWwuYWJvcnRlZD9hKCk6by5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGEpKSk7bGV0IGs9ZmUoby51cmwpO2lmKGsmJlIucHJvdG9jb2xzLmluZGV4T2Yoayk9PT0tMSl7cihuZXcgaCgiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIitrKyI6IixoLkVSUl9CQURfUkVRVUVTVCxBKSk7cmV0dXJufW0uc2VuZChpfHxudWxsKX0pfTt2YXIgY289KEEsZSk9PntsZXR7bGVuZ3RoOnR9PUE9QT9BLmZpbHRlcihCb29sZWFuKTpbXTtpZihlfHx0KXtsZXQgcj1uZXcgQWJvcnRDb250cm9sbGVyLG8saT1mdW5jdGlvbihCKXtpZighbyl7bz0hMCxsKCk7bGV0IGE9QiBpbnN0YW5jZW9mIEVycm9yP0I6dGhpcy5yZWFzb247ci5hYm9ydChhIGluc3RhbmNlb2YgaD9hOm5ldyB4KGEgaW5zdGFuY2VvZiBFcnJvcj9hLm1lc3NhZ2U6YSkpfX0sbj1lJiZzZXRUaW1lb3V0KCgpPT57bj1udWxsLGkobmV3IGgoYHRpbWVvdXQgJHtlfSBvZiBtcyBleGNlZWRlZGAsaC5FVElNRURPVVQpKX0sZSksbD0oKT0+e0EmJihuJiZjbGVhclRpbWVvdXQobiksbj1udWxsLEEuZm9yRWFjaChCPT57Qi51bnN1YnNjcmliZT9CLnVuc3Vic2NyaWJlKGkpOkIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGkpfSksQT1udWxsKX07QS5mb3JFYWNoKEI9PkIuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGkpKTtsZXR7c2lnbmFsOnB9PXI7cmV0dXJuIHAudW5zdWJzY3JpYmU9KCk9PkUuYXNhcChsKSxwfX0sUXI9Y287dmFyIHlvPWZ1bmN0aW9uKihBLGUpe2xldCB0PUEuYnl0ZUxlbmd0aDtpZighZXx8dDxlKXt5aWVsZCBBO3JldHVybn1sZXQgcj0wLG87Zm9yKDtyPHQ7KW89citlLHlpZWxkIEEuc2xpY2UocixvKSxyPW99LGhvPWFzeW5jIGZ1bmN0aW9uKihBLGUpe2ZvciBhd2FpdChsZXQgdCBvZiB3byhBKSl5aWVsZCp5byh0LGUpfSx3bz1hc3luYyBmdW5jdGlvbiooQSl7aWYoQVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pe3lpZWxkKkE7cmV0dXJufWxldCBlPUEuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6dCx2YWx1ZTpyfT1hd2FpdCBlLnJlYWQoKTtpZih0KWJyZWFrO3lpZWxkIHJ9fWZpbmFsbHl7YXdhaXQgZS5jYW5jZWwoKX19LHdlPShBLGUsdCxyKT0+e2xldCBvPWhvKEEsZSksaT0wLG4sbD1wPT57bnx8KG49ITAsciYmcihwKSl9O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwocCl7dHJ5e2xldHtkb25lOkIsdmFsdWU6YX09YXdhaXQgby5uZXh0KCk7aWYoQil7bCgpLHAuY2xvc2UoKTtyZXR1cm59bGV0IHM9YS5ieXRlTGVuZ3RoO2lmKHQpe2xldCBRPWkrPXM7dChRKX1wLmVucXVldWUobmV3IFVpbnQ4QXJyYXkoYSkpfWNhdGNoKEIpe3Rocm93IGwoQiksQn19LGNhbmNlbChwKXtyZXR1cm4gbChwKSxvLnJldHVybigpfX0se2hpZ2hXYXRlck1hcms6Mn0pfTt2YXIgSEE9dHlwZW9mIGZldGNoPT0iZnVuY3Rpb24iJiZ0eXBlb2YgUmVxdWVzdD09ImZ1bmN0aW9uIiYmdHlwZW9mIFJlc3BvbnNlPT0iZnVuY3Rpb24iLHByPUhBJiZ0eXBlb2YgUmVhZGFibGVTdHJlYW09PSJmdW5jdGlvbiIsRG89SEEmJih0eXBlb2YgVGV4dEVuY29kZXI9PSJmdW5jdGlvbiI/KEE9PmU9PkEuZW5jb2RlKGUpKShuZXcgVGV4dEVuY29kZXIpOmFzeW5jIEE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBSZXNwb25zZShBKS5hcnJheUJ1ZmZlcigpKSksbXI9KEEsLi4uZSk9Pnt0cnl7cmV0dXJuISFBKC4uLmUpfWNhdGNoe3JldHVybiExfX0sUm89cHImJm1yKCgpPT57bGV0IEE9ITEsZT1uZXcgUmVxdWVzdChSLm9yaWdpbix7Ym9keTpuZXcgUmVhZGFibGVTdHJlYW0sbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIEE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gQSYmIWV9KSxFcj02NCoxMDI0LERlPXByJiZtcigoKT0+RS5pc1JlYWRhYmxlU3RyZWFtKG5ldyBSZXNwb25zZSgiIikuYm9keSkpLFRBPXtzdHJlYW06RGUmJihBPT5BLmJvZHkpfTtIQSYmKEE9PntbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goZT0+eyFUQVtlXSYmKFRBW2VdPUUuaXNGdW5jdGlvbihBW2VdKT90PT50W2VdKCk6KHQscik9Pnt0aHJvdyBuZXcgaChgUmVzcG9uc2UgdHlwZSAnJHtlfScgaXMgbm90IHN1cHBvcnRlZGAsaC5FUlJfTk9UX1NVUFBPUlQscil9KX0pfSkobmV3IFJlc3BvbnNlKTt2YXIga289YXN5bmMgQT0+e2lmKEE9PW51bGwpcmV0dXJuIDA7aWYoRS5pc0Jsb2IoQSkpcmV0dXJuIEEuc2l6ZTtpZihFLmlzU3BlY0NvbXBsaWFudEZvcm0oQSkpcmV0dXJuKGF3YWl0IG5ldyBSZXF1ZXN0KFIub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6QX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoRS5pc0FycmF5QnVmZmVyVmlldyhBKXx8RS5pc0FycmF5QnVmZmVyKEEpKXJldHVybiBBLmJ5dGVMZW5ndGg7aWYoRS5pc1VSTFNlYXJjaFBhcmFtcyhBKSYmKEE9QSsiIiksRS5pc1N0cmluZyhBKSlyZXR1cm4oYXdhaXQgRG8oQSkpLmJ5dGVMZW5ndGh9LEZvPWFzeW5jKEEsZSk9PntsZXQgdD1FLnRvRmluaXRlTnVtYmVyKEEuZ2V0Q29udGVudExlbmd0aCgpKTtyZXR1cm4gdD8/a28oZSl9LHVyPUhBJiYoYXN5bmMgQT0+e2xldHt1cmw6ZSxtZXRob2Q6dCxkYXRhOnIsc2lnbmFsOm8sY2FuY2VsVG9rZW46aSx0aW1lb3V0Om4sb25Eb3dubG9hZFByb2dyZXNzOmwsb25VcGxvYWRQcm9ncmVzczpwLHJlc3BvbnNlVHlwZTpCLGhlYWRlcnM6YSx3aXRoQ3JlZGVudGlhbHM6cz0ic2FtZS1vcmlnaW4iLGZldGNoT3B0aW9uczpRfT1NQShBKTtCPUI/KEIrIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBJPVFyKFtvLGkmJmkudG9BYm9ydFNpZ25hbCgpXSxuKSxnLHU9SSYmSS51bnN1YnNjcmliZSYmKCgpPT57SS51bnN1YnNjcmliZSgpfSksbTt0cnl7aWYocCYmUm8mJnQhPT0iZ2V0IiYmdCE9PSJoZWFkIiYmKG09YXdhaXQgRm8oYSxyKSkhPT0wKXtsZXQgRz1uZXcgUmVxdWVzdChlLHttZXRob2Q6IlBPU1QiLGJvZHk6cixkdXBsZXg6ImhhbGYifSkscTtpZihFLmlzRm9ybURhdGEocikmJihxPUcuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmYS5zZXRDb250ZW50VHlwZShxKSxHLmJvZHkpe2xldFtaLHdBXT1jZShtLGlBKGRlKHApKSk7cj13ZShHLmJvZHksRXIsWix3QSl9fUUuaXNTdHJpbmcocyl8fChzPXM/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IEQ9ImNyZWRlbnRpYWxzImluIFJlcXVlc3QucHJvdG90eXBlO2c9bmV3IFJlcXVlc3QoZSx7Li4uUSxzaWduYWw6SSxtZXRob2Q6dC50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6YS5ub3JtYWxpemUoKS50b0pTT04oKSxib2R5OnIsZHVwbGV4OiJoYWxmIixjcmVkZW50aWFsczpEP3M6dm9pZCAwfSk7bGV0IGs9YXdhaXQgZmV0Y2goZyksRj1EZSYmKEI9PT0ic3RyZWFtInx8Qj09PSJyZXNwb25zZSIpO2lmKERlJiYobHx8RiYmdSkpe2xldCBHPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKFV0PT57R1tVdF09a1tVdF19KTtsZXQgcT1FLnRvRmluaXRlTnVtYmVyKGsuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtaLHdBXT1sJiZjZShxLGlBKGRlKGwpLCEwKSl8fFtdO2s9bmV3IFJlc3BvbnNlKHdlKGsuYm9keSxFcixaLCgpPT57d0EmJndBKCksdSYmdSgpfSksRyl9Qj1CfHwidGV4dCI7bGV0IEg9YXdhaXQgVEFbRS5maW5kS2V5KFRBLEIpfHwidGV4dCJdKGssQSk7cmV0dXJuIUYmJnUmJnUoKSxhd2FpdCBuZXcgUHJvbWlzZSgoRyxxKT0+e21BKEcscSx7ZGF0YTpILGhlYWRlcnM6Uy5mcm9tKGsuaGVhZGVycyksc3RhdHVzOmsuc3RhdHVzLHN0YXR1c1RleHQ6ay5zdGF0dXNUZXh0LGNvbmZpZzpBLHJlcXVlc3Q6Z30pfSl9Y2F0Y2goRCl7dGhyb3cgdSYmdSgpLEQmJkQubmFtZT09PSJUeXBlRXJyb3IiJiYvZmV0Y2gvaS50ZXN0KEQubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgaCgiTmV0d29yayBFcnJvciIsaC5FUlJfTkVUV09SSyxBLGcpLHtjYXVzZTpELmNhdXNlfHxEfSk6aC5mcm9tKEQsRCYmRC5jb2RlLEEsZyl9fSk7dmFyIFJlPXtodHRwOk9BLHhocjpscixmZXRjaDp1cn07RS5mb3JFYWNoKFJlLChBLGUpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6ZX0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTplfSl9fSk7dmFyIGZyPUE9PmAtICR7QX1gLFVvPUE9PkUuaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxZQT17Z2V0QWRhcHRlcjpBPT57QT1FLmlzQXJyYXkoQSk/QTpbQV07bGV0e2xlbmd0aDplfT1BLHQscixvPXt9O2ZvcihsZXQgaT0wO2k8ZTtpKyspe3Q9QVtpXTtsZXQgbjtpZihyPXQsIVVvKHQpJiYocj1SZVsobj1TdHJpbmcodCkpLnRvTG93ZXJDYXNlKCldLHI9PT12b2lkIDApKXRocm93IG5ldyBoKGBVbmtub3duIGFkYXB0ZXIgJyR7bn0nYCk7aWYocilicmVhaztvW258fCIjIitpXT1yfWlmKCFyKXtsZXQgaT1PYmplY3QuZW50cmllcyhvKS5tYXAoKFtsLHBdKT0+YGFkYXB0ZXIgJHtsfSBgKyhwPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSksbj1lP2kubGVuZ3RoPjE/YHNpbmNlIDoKYCtpLm1hcChmcikuam9pbihgCmApOiIgIitmcihpWzBdKToiYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQiO3Rocm93IG5ldyBoKCJUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIrbiwiRVJSX05PVF9TVVBQT1JUIil9cmV0dXJuIHJ9LGFkYXB0ZXJzOlJlfTtmdW5jdGlvbiBrZShBKXtpZihBLmNhbmNlbFRva2VuJiZBLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxBLnNpZ25hbCYmQS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgeChudWxsLEEpfWZ1bmN0aW9uIHFBKEEpe3JldHVybiBrZShBKSxBLmhlYWRlcnM9Uy5mcm9tKEEuaGVhZGVycyksQS5kYXRhPUVBLmNhbGwoQSxBLnRyYW5zZm9ybVJlcXVlc3QpLFsicG9zdCIsInB1dCIsInBhdGNoIl0uaW5kZXhPZihBLm1ldGhvZCkhPT0tMSYmQS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCExKSxZQS5nZXRBZGFwdGVyKEEuYWRhcHRlcnx8dEEuYWRhcHRlcikoQSkudGhlbihmdW5jdGlvbihyKXtyZXR1cm4ga2UoQSksci5kYXRhPUVBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLHIpLHIuaGVhZGVycz1TLmZyb20oci5oZWFkZXJzKSxyfSxmdW5jdGlvbihyKXtyZXR1cm4gcEEocil8fChrZShBKSxyJiZyLnJlc3BvbnNlJiYoci5yZXNwb25zZS5kYXRhPUVBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLHIucmVzcG9uc2UpLHIucmVzcG9uc2UuaGVhZGVycz1TLmZyb20oci5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KHIpfSl9dmFyIEtBPSIxLjguNCI7dmFyIGpBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSxlKT0+e2pBW0FdPWZ1bmN0aW9uKHIpe3JldHVybiB0eXBlb2Ygcj09PUF8fCJhIisoZTwxPyJuICI6IiAiKStBfX0pO3ZhciBjcj17fTtqQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSx0LHIpe2Z1bmN0aW9uIG8oaSxuKXtyZXR1cm4iW0F4aW9zIHYiK0tBKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIraSsiJyIrbisocj8iLiAiK3I6IiIpfXJldHVybihpLG4sbCk9PntpZihlPT09ITEpdGhyb3cgbmV3IGgobyhuLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKHQ/IiBpbiAiK3Q6IiIpKSxoLkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gdCYmIWNyW25dJiYoY3Jbbl09ITAsY29uc29sZS53YXJuKG8obiwiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrdCsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSxlP2UoaSxuLGwpOiEwfX07akEuc3BlbGxpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuKHQscik9Pihjb25zb2xlLndhcm4oYCR7cn0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHtlfWApLCEwKX07ZnVuY3Rpb24gTm8oQSxlLHQpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgaCgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsaC5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IHI9T2JqZWN0LmtleXMoQSksbz1yLmxlbmd0aDtmb3IoO28tLSA+MDspe2xldCBpPXJbb10sbj1lW2ldO2lmKG4pe2xldCBsPUFbaV0scD1sPT09dm9pZCAwfHxuKGwsaSxBKTtpZihwIT09ITApdGhyb3cgbmV3IGgoIm9wdGlvbiAiK2krIiBtdXN0IGJlICIrcCxoLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZih0IT09ITApdGhyb3cgbmV3IGgoIlVua25vd24gb3B0aW9uICIraSxoLkVSUl9CQURfT1BUSU9OKX19dmFyIGZBPXthc3NlcnRPcHRpb25zOk5vLHZhbGlkYXRvcnM6akF9O3ZhciBNPWZBLnZhbGlkYXRvcnMsb0E9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5kZWZhdWx0cz1lLHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBDZSxyZXNwb25zZTpuZXcgQ2V9fWFzeW5jIHJlcXVlc3QoZSx0KXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QoZSx0KX1jYXRjaChyKXtpZihyIGluc3RhbmNlb2YgRXJyb3Ipe2xldCBvPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKG8pOm89bmV3IEVycm9yO2xldCBpPW8uc3RhY2s/by5zdGFjay5yZXBsYWNlKC9eLitcbi8sIiIpOiIiO3RyeXtyLnN0YWNrP2kmJiFTdHJpbmcoci5zdGFjaykuZW5kc1dpdGgoaS5yZXBsYWNlKC9eLitcbi4rXG4vLCIiKSkmJihyLnN0YWNrKz1gCmAraSk6ci5zdGFjaz1pfWNhdGNoe319dGhyb3cgcn19X3JlcXVlc3QoZSx0KXt0eXBlb2YgZT09InN0cmluZyI/KHQ9dHx8e30sdC51cmw9ZSk6dD1lfHx7fSx0PVAodGhpcy5kZWZhdWx0cyx0KTtsZXR7dHJhbnNpdGlvbmFsOnIscGFyYW1zU2VyaWFsaXplcjpvLGhlYWRlcnM6aX09dDtyIT09dm9pZCAwJiZmQS5hc3NlcnRPcHRpb25zKHIse3NpbGVudEpTT05QYXJzaW5nOk0udHJhbnNpdGlvbmFsKE0uYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6TS50cmFuc2l0aW9uYWwoTS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOk0udHJhbnNpdGlvbmFsKE0uYm9vbGVhbil9LCExKSxvIT1udWxsJiYoRS5pc0Z1bmN0aW9uKG8pP3QucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOm99OmZBLmFzc2VydE9wdGlvbnMobyx7ZW5jb2RlOk0uZnVuY3Rpb24sc2VyaWFsaXplOk0uZnVuY3Rpb259LCEwKSksdC5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/dC5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOnQuYWxsb3dBYnNvbHV0ZVVybHM9ITApLGZBLmFzc2VydE9wdGlvbnModCx7YmFzZVVybDpNLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpNLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSx0Lm1ldGhvZD0odC5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgbj1pJiZFLm1lcmdlKGkuY29tbW9uLGlbdC5tZXRob2RdKTtpJiZFLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sZz0+e2RlbGV0ZSBpW2ddfSksdC5oZWFkZXJzPVMuY29uY2F0KG4saSk7bGV0IGw9W10scD0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24odSl7dHlwZW9mIHUucnVuV2hlbj09ImZ1bmN0aW9uIiYmdS5ydW5XaGVuKHQpPT09ITF8fChwPXAmJnUuc3luY2hyb25vdXMsbC51bnNoaWZ0KHUuZnVsZmlsbGVkLHUucmVqZWN0ZWQpKX0pO2xldCBCPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24odSl7Qi5wdXNoKHUuZnVsZmlsbGVkLHUucmVqZWN0ZWQpfSk7bGV0IGEscz0wLFE7aWYoIXApe2xldCBnPVtxQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKGcudW5zaGlmdC5hcHBseShnLGwpLGcucHVzaC5hcHBseShnLEIpLFE9Zy5sZW5ndGgsYT1Qcm9taXNlLnJlc29sdmUodCk7czxROylhPWEudGhlbihnW3MrK10sZ1tzKytdKTtyZXR1cm4gYX1RPWwubGVuZ3RoO2xldCBJPXQ7Zm9yKHM9MDtzPFE7KXtsZXQgZz1sW3MrK10sdT1sW3MrK107dHJ5e0k9ZyhJKX1jYXRjaChtKXt1LmNhbGwodGhpcyxtKTticmVha319dHJ5e2E9cUEuY2FsbCh0aGlzLEkpfWNhdGNoKGcpe3JldHVybiBQcm9taXNlLnJlamVjdChnKX1mb3Iocz0wLFE9Qi5sZW5ndGg7czxROylhPWEudGhlbihCW3MrK10sQltzKytdKTtyZXR1cm4gYX1nZXRVcmkoZSl7ZT1QKHRoaXMuZGVmYXVsdHMsZSk7bGV0IHQ9dUEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiBsQSh0LGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcil9fTtFLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKGUpe29BLnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLnJlcXVlc3QoUChyfHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YToocnx8e30pLmRhdGF9KSl9fSk7RS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyKXtyZXR1cm4gZnVuY3Rpb24oaSxuLGwpe3JldHVybiB0aGlzLnJlcXVlc3QoUChsfHx7fSx7bWV0aG9kOmUsaGVhZGVyczpyP3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDppLGRhdGE6bn0pKX19b0EucHJvdG90eXBlW2VdPXQoKSxvQS5wcm90b3R5cGVbZSsiRm9ybSJdPXQoITApfSk7dmFyIGNBPW9BO3ZhciBGZT1jbGFzcyBBe2NvbnN0cnVjdG9yKGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtsZXQgdDt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oaSl7dD1pfSk7bGV0IHI9dGhpczt0aGlzLnByb21pc2UudGhlbihvPT57aWYoIXIuX2xpc3RlbmVycylyZXR1cm47bGV0IGk9ci5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO2ktLSA+MDspci5fbGlzdGVuZXJzW2ldKG8pO3IuX2xpc3RlbmVycz1udWxsfSksdGhpcy5wcm9taXNlLnRoZW49bz0+e2xldCBpLG49bmV3IFByb21pc2UobD0+e3Iuc3Vic2NyaWJlKGwpLGk9bH0pLnRoZW4obyk7cmV0dXJuIG4uY2FuY2VsPWZ1bmN0aW9uKCl7ci51bnN1YnNjcmliZShpKX0sbn0sZShmdW5jdGlvbihpLG4sbCl7ci5yZWFzb258fChyLnJlYXNvbj1uZXcgeChpLG4sbCksdChyLnJlYXNvbikpfSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZShlKXtpZih0aGlzLnJlYXNvbil7ZSh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaChlKTp0aGlzLl9saXN0ZW5lcnM9W2VdfXVuc3Vic2NyaWJlKGUpe2lmKCF0aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2xldCB0PXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKGUpO3QhPT0tMSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZSh0LDEpfXRvQWJvcnRTaWduYWwoKXtsZXQgZT1uZXcgQWJvcnRDb250cm9sbGVyLHQ9cj0+e2UuYWJvcnQocil9O3JldHVybiB0aGlzLnN1YnNjcmliZSh0KSxlLnNpZ25hbC51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZSh0KSxlLnNpZ25hbH1zdGF0aWMgc291cmNlKCl7bGV0IGU7cmV0dXJue3Rva2VuOm5ldyBBKGZ1bmN0aW9uKG8pe2U9b30pLGNhbmNlbDplfX19LGRyPUZlO2Z1bmN0aW9uIFVlKEEpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gQS5hcHBseShudWxsLHQpfX1mdW5jdGlvbiBOZShBKXtyZXR1cm4gRS5pc09iamVjdChBKSYmQS5pc0F4aW9zRXJyb3I9PT0hMH12YXIgU2U9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKFNlKS5mb3JFYWNoKChbQSxlXSk9PntTZVtlXT1BfSk7dmFyIHlyPVNlO2Z1bmN0aW9uIGhyKEEpe2xldCBlPW5ldyBjQShBKSx0PWdBKGNBLnByb3RvdHlwZS5yZXF1ZXN0LGUpO3JldHVybiBFLmV4dGVuZCh0LGNBLnByb3RvdHlwZSxlLHthbGxPd25LZXlzOiEwfSksRS5leHRlbmQodCxlLG51bGwse2FsbE93bktleXM6ITB9KSx0LmNyZWF0ZT1mdW5jdGlvbihvKXtyZXR1cm4gaHIoUChBLG8pKX0sdH12YXIgVT1ocih0QSk7VS5BeGlvcz1jQTtVLkNhbmNlbGVkRXJyb3I9eDtVLkNhbmNlbFRva2VuPWRyO1UuaXNDYW5jZWw9cEE7VS5WRVJTSU9OPUtBO1UudG9Gb3JtRGF0YT1qO1UuQXhpb3NFcnJvcj1oO1UuQ2FuY2VsPVUuQ2FuY2VsZWRFcnJvcjtVLmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9O1Uuc3ByZWFkPVVlO1UuaXNBeGlvc0Vycm9yPU5lO1UubWVyZ2VDb25maWc9UDtVLkF4aW9zSGVhZGVycz1TO1UuZm9ybVRvSlNPTj1BPT5QQShFLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO1UuZ2V0QWRhcHRlcj1ZQS5nZXRBZGFwdGVyO1UuSHR0cFN0YXR1c0NvZGU9eXI7VS5kZWZhdWx0PVU7dmFyIFQ9VTt2YXJ7QXhpb3M6dmcsQXhpb3NFcnJvcjpaZyxDYW5jZWxlZEVycm9yOlZnLGlzQ2FuY2VsOnpnLENhbmNlbFRva2VuOlhnLFZFUlNJT046X2csYWxsOiRnLENhbmNlbDpBQixpc0F4aW9zRXJyb3I6ZUIsc3ByZWFkOnRCLHRvRm9ybURhdGE6ckIsQXhpb3NIZWFkZXJzOmlCLEh0dHBTdGF0dXNDb2RlOm9CLGZvcm1Ub0pTT046YUIsZ2V0QWRhcHRlcjpuQixtZXJnZUNvbmZpZzpJQn09VDthc3luYyBmdW5jdGlvbiBTbyhBLGUpe2xldCB0PUEscj1udWxsO2lmKHQ9PW51bGwpcj1uZXcgV29ya2VyKG5ldyBVUkwoIi4vd2ViLXdvcmtlcnMvaXRrLXdhc20tcGlwZWxpbmUud29ya2VyLmpzIixpbXBvcnQubWV0YS51cmwpLHt0eXBlOiJtb2R1bGUifSk7ZWxzZSBpZih0LnN0YXJ0c1dpdGgoImh0dHAiKSl7bGV0IG89YXdhaXQgVC5nZXQodCx7cmVzcG9uc2VUeXBlOiJibG9iIixwYXJhbXM6ZX0pLGk9VVJMLmNyZWF0ZU9iamVjdFVSTChvLmRhdGEpO3I9bmV3IFdvcmtlcihpLHt0eXBlOiJtb2R1bGUifSl9ZWxzZSByPW5ldyBXb3JrZXIodCx7dHlwZToibW9kdWxlIn0pO3JldHVybiByfXZhciBkQT1TbztmdW5jdGlvbiB3cihBKXtsZXQgZT1hZShBKSx0PUE7cmV0dXJuIHQudGVybWluYXRlZD0hMSx0LndvcmtlclByb3h5PWUsdC5vcmlnaW5hbFRlcm1pbmF0ZT10LnRlcm1pbmF0ZSx0LnRlcm1pbmF0ZT0oKT0+e3QudGVybWluYXRlZD0hMCx0LndvcmtlclByb3h5W29lXSgpLHQub3JpZ2luYWxUZXJtaW5hdGUoKX0se3dvcmtlclByb3h5OmUsd29ya2VyOnR9fWFzeW5jIGZ1bmN0aW9uIGJvKEEsZSx0KXtsZXQgcjtpZihBIT1udWxsKXtsZXQgaT1BO3JldHVybiBpLndvcmtlclByb3h5IT09dm9pZCAwPyhyPWkud29ya2VyUHJveHkse3dvcmtlclByb3h5OnIsd29ya2VyOml9KTp3cihBKX1sZXQgbz1hd2FpdCBkQShlLHQpO3JldHVybiB3cihvKX12YXIgRHI9Ym87dmFyIHlBLFksV2UsYmU9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXtXZT1uZXcgVWludDhBcnJheShZLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sdkE9Y2xhc3N7aW5pdCgpe3JldHVybiB5QXx8KHR5cGVvZiBmZXRjaDwidSI/eUE9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitScikudGhlbihlPT5lLmFycmF5QnVmZmVyKCkpLnRoZW4oZT0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoZSxiZSkpLnRoZW4odGhpcy5faW5pdCk6eUE9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oUnIsImJhc2U2NCIpLGJlKS50aGVuKHRoaXMuX2luaXQpLHlBKX1faW5pdChlKXtZPWUuaW5zdGFuY2UsYmUuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKGUsdD0wKXtpZighWSl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgcj1lLmJ5dGVMZW5ndGgsbz1ZLmV4cG9ydHMubWFsbG9jKHIpO1dlLnNldChlLG8pLHQ9dHx8TnVtYmVyKFkuZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKG8scikpO2xldCBpPVkuZXhwb3J0cy5tYWxsb2ModCksbj1ZLmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKGksdCxvLHIpLGw9V2Uuc2xpY2UoaSxpK24pO3JldHVybiBZLmV4cG9ydHMuZnJlZShvKSxZLmV4cG9ydHMuZnJlZShpKSxsfX0sUnI9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIga3I9bmV3IHZBLEZyPSExO2FzeW5jIGZ1bmN0aW9uIFdvKEEsZSx0KXtsZXQgcj0idW5rbm93biI7dHlwZW9mIEEhPSJzdHJpbmciP3I9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP3I9QTpyPXR5cGVvZiBlPCJ1Ij9gJHtlfS8ke0F9YDpBLHIuZW5kc1dpdGgoIi5qcyIpJiYocj1yLnN1YnN0cmluZygwLHIubGVuZ3RoLTMpKSxyLmVuZHNXaXRoKCIud2FzbSIpJiYocj1yLnN1YnN0cmluZygwLHIubGVuZ3RoLTUpKSxyLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC05KSk7bGV0IG89YCR7cn0ud2FzbWAsaT1hd2FpdCBULmdldChgJHtvfS56c3RgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIixwYXJhbXM6dH0pO0ZyfHwoYXdhaXQga3IuaW5pdCgpLEZyPSEwKTtsZXQgbD1rci5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoaS5kYXRhKSkuYnVmZmVyO3JldHVybihhd2FpdCBpbXBvcnQoYCR7cn0uanNgKSkuZGVmYXVsdCh7d2FzbUJpbmFyeTpsfSl9dmFyIFVyPVdvO3ZhciBOcj1hc3luYygpPT5XZWJBc3NlbWJseS52YWxpZGF0ZShuZXcgVWludDhBcnJheShbMCw5NywxMTUsMTA5LDEsMCwwLDAsMSw1LDEsOTYsMCwxLDEyMywzLDIsMSwwLDEwLDEwLDEsOCwwLDY1LDAsMjUzLDE1LDI1Myw5OCwxMV0pKTt2YXIgV3I9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI9PSJmdW5jdGlvbiIsU3I9bmV3IFRleHRFbmNvZGVyLGJyPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKTtmdW5jdGlvbiBHbyhBLGUpe2xldCB0PXtmbGFnczoiciIsZW5jb2Rpbmc6ImJpbmFyeSJ9LHI9QS5mc19vcGVuKGUsdC5mbGFncyksaT1BLmZzX3N0YXQoZSkuc2l6ZSxuPW51bGw7V3I/bj1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoaSk6bj1uZXcgQXJyYXlCdWZmZXIoaSk7bGV0IGw9bmV3IFVpbnQ4QXJyYXkobik7cmV0dXJuIEEuZnNfcmVhZChyLGwsMCxpLDApLEEuZnNfY2xvc2UociksbH1mdW5jdGlvbiBHcihBLGUsdCl7bGV0IHI9bnVsbDtXcj9yPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcih0KTpyPW5ldyBBcnJheUJ1ZmZlcih0KTtsZXQgbz1uZXcgVWludDhBcnJheShyKSxpPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixlLHQpO3JldHVybiBvLnNldChpKSxvfWZ1bmN0aW9uIE4oQSxlLHQscil7bGV0IG89MDtyZXR1cm4gZSE9PW51bGwmJihvPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2FycmF5X2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQscixlLmJ1ZmZlci5ieXRlTGVuZ3RoXSksQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KGUuYnVmZmVyKSxvKSksb31mdW5jdGlvbiB2KEEsZSx0KXtsZXQgcj1KU09OLnN0cmluZ2lmeShlKSxvPUEubGVuZ3RoQnl0ZXNVVEY4KHIpKzEsaT1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsb10pO0Euc3RyaW5nVG9VVEY4KHIsaSxvKX1mdW5jdGlvbiBXKEEsZSx0LHIpe2xldCBvPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsdF0pLGk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksbj1HcihBLG8saSk7cmV0dXJuIE8ocixuLmJ1ZmZlcil9ZnVuY3Rpb24gaEEoQSxlKXtsZXQgdD1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLGVdKSxyPUEuVVRGOFRvU3RyaW5nKHQpO3JldHVybiBKU09OLnBhcnNlKHIpfWZ1bmN0aW9uIE9vKEEsZSx0LHIpe3IhPW51bGwmJnIubGVuZ3RoPjAmJnIuZm9yRWFjaChmdW5jdGlvbihCLGEpe3N3aXRjaChCLnR5cGUpe2Nhc2UgQy5UZXh0U3RyZWFtOntsZXQgcz1Tci5lbmNvZGUoQi5kYXRhLmRhdGEpLFE9TihBLHMsYSwwKSxJPXtzaXplOnMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YH07dihBLEksYSk7YnJlYWt9Y2FzZSBDLkpzb25Db21wYXRpYmxlOntsZXQgcz1Tci5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoQi5kYXRhKSksUT1OKEEscyxhLDApLEk9e3NpemU6cy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gfTt2KEEsSSxhKTticmVha31jYXNlIEMuQmluYXJ5U3RyZWFtOntsZXQgcz1CLmRhdGEuZGF0YSxRPU4oQSxzLGEsMCksST17c2l6ZTpzLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWB9O3YoQSxJLGEpO2JyZWFrfWNhc2UgQy5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgQy5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBDLkltYWdlOntsZXQgcz1CLmRhdGEsUT1OKEEscy5kYXRhLGEsMCksST1OKEEscy5kaXJlY3Rpb24sYSwxKSxnPXR5cGVvZiBzLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKHMubWV0YWRhdGEuZW50cmllcygpKTpbXSx1PXtpbWFnZVR5cGU6cy5pbWFnZVR5cGUsbmFtZTpzLm5hbWUsb3JpZ2luOnMub3JpZ2luLHNwYWNpbmc6cy5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0l9YCxzaXplOnMuc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG1ldGFkYXRhOmd9O3YoQSx1LGEpO2JyZWFrfWNhc2UgQy5NZXNoOntsZXQgcz1CLmRhdGEsUT1OKEEscy5wb2ludHMsYSwwKSxJPU4oQSxzLmNlbGxzLGEsMSksZz1OKEEscy5wb2ludERhdGEsYSwyKSx1PU4oQSxzLmNlbGxEYXRhLGEsMyksbT17bWVzaFR5cGU6cy5tZXNoVHlwZSxuYW1lOnMubmFtZSxudW1iZXJPZlBvaW50czpzLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxudW1iZXJPZkNlbGxzOnMubnVtYmVyT2ZDZWxscyxjZWxsczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0l9YCxjZWxsQnVmZmVyU2l6ZTpzLmNlbGxCdWZmZXJTaXplLG51bWJlck9mUG9pbnRQaXhlbHM6cy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2d9YCxudW1iZXJPZkNlbGxQaXhlbHM6cy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWB9O3YoQSxtLGEpO2JyZWFrfWNhc2UgQy5Qb2ludFNldDp7bGV0IHM9Qi5kYXRhLFE9TihBLHMucG9pbnRzLGEsMCksST1OKEEscy5wb2ludERhdGEsYSwxKSxnPXtwb2ludFNldFR5cGU6cy5wb2ludFNldFR5cGUsbmFtZTpzLm5hbWUsbnVtYmVyT2ZQb2ludHM6cy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpzLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7SX1gfTt2KEEsZyxhKTticmVha31jYXNlIEMuVHJhbnNmb3JtTGlzdDp7bGV0IHM9Qi5kYXRhLFE9W10sST0wO3MuZm9yRWFjaChnPT57bGV0IHU9IiIsbT0iIjtnLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYodT1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke04oQSxnLmZpeGVkUGFyYW1ldGVycyxhLEkpfWAsSSs9MSxtPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7TihBLGcucGFyYW1ldGVycyxhLEkpfWAsSSs9MSk7bGV0IEQ9e3RyYW5zZm9ybVR5cGU6Zy50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOmcubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOmcubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6Zy5uYW1lLGlucHV0U3BhY2VOYW1lOmcuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOmcub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6bSxmaXhlZFBhcmFtZXRlcnM6dX07US5wdXNoKEQpfSksdihBLFEsYSk7YnJlYWt9Y2FzZSBDLlBvbHlEYXRhOntsZXQgcz1CLmRhdGEsUT1OKEEscy5wb2ludHMsYSwwKSxJPU4oQSxzLnZlcnRpY2VzLGEsMSksZz1OKEEscy5saW5lcyxhLDIpLHU9TihBLHMucG9seWdvbnMsYSwzKSxtPU4oQSxzLnRyaWFuZ2xlU3RyaXBzLGEsNCksRD1OKEEscy5wb2ludERhdGEsYSw1KSxrPU4oQSxzLnBvaW50RGF0YSxhLDYpLEY9e3BvbHlEYXRhVHlwZTpzLnBvbHlEYXRhVHlwZSxuYW1lOnMubmFtZSxudW1iZXJPZlBvaW50czpzLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCx2ZXJ0aWNlc0J1ZmZlclNpemU6cy52ZXJ0aWNlc0J1ZmZlclNpemUsdmVydGljZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtJfWAsbGluZXNCdWZmZXJTaXplOnMubGluZXNCdWZmZXJTaXplLGxpbmVzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Z31gLHBvbHlnb25zQnVmZmVyU2l6ZTpzLnBvbHlnb25zQnVmZmVyU2l6ZSxwb2x5Z29uczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YCx0cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU6cy50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemUsdHJpYW5nbGVTdHJpcHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHttfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpzLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7RH1gLG51bWJlck9mQ2VsbFBpeGVsczpzLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2t9YH07dihBLEYsYSk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IG89QS5zdGFja1NhdmUoKSxpPTA7dHJ5e2k9QS5jYWxsTWFpbihlLnNsaWNlKCkpfWNhdGNoKEIpe3Rocm93IHR5cGVvZiBCPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKEIpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLEJ9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShvKX1sZXQgbj1BLmdldE1vZHVsZVN0ZG91dCgpLGw9QS5nZXRNb2R1bGVTdGRlcnIoKSxwPVtdO3JldHVybiB0IT1udWxsJiZ0Lmxlbmd0aD4wJiZpPT09MCYmdC5mb3JFYWNoKGZ1bmN0aW9uKEIsYSl7bGV0IHM9bnVsbDtzd2l0Y2goQi50eXBlKXtjYXNlIEMuVGV4dFN0cmVhbTp7bGV0IEk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsYSwwXSksZz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxhLDBdKSx1PW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixJLGcpO3M9e2RhdGE6YnIuZGVjb2RlKHUpfTticmVha31jYXNlIEMuSnNvbkNvbXBhdGlibGU6e2xldCBJPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGEsMF0pLGc9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsYSwwXSksdT1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsSSxnKTtzPUpTT04ucGFyc2UoYnIuZGVjb2RlKHUpKTticmVha31jYXNlIEMuQmluYXJ5U3RyZWFtOntsZXQgST1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxhLDBdKSxnPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGEsMF0pO3M9e2RhdGE6R3IoQSxJLGcpfTticmVha31jYXNlIEMuVGV4dEZpbGU6e3M9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKEIuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSBDLkJpbmFyeUZpbGU6e3M9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpHbyhBLEIuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSBDLkltYWdlOntsZXQgST1oQShBLGEpO0kuZGF0YT1XKEEsYSwwLEkuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLEkuZGlyZWN0aW9uPVcoQSxhLDEsYi5GbG9hdDY0KSxJLm1ldGFkYXRhPW5ldyBNYXAoSS5tZXRhZGF0YSkscz1JO2JyZWFrfWNhc2UgQy5NZXNoOntsZXQgST1oQShBLGEpO0kubnVtYmVyT2ZQb2ludHM+MD9JLnBvaW50cz1XKEEsYSwwLEkubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpJLnBvaW50cz1PKEkubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksSS5udW1iZXJPZkNlbGxzPjA/SS5jZWxscz1XKEEsYSwxLEkubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOkkuY2VsbHM9TyhJLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksSS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/SS5wb2ludERhdGE9VyhBLGEsMixJLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpJLnBvaW50RGF0YT1PKEkubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxJLm51bWJlck9mQ2VsbFBpeGVscz4wP0kuY2VsbERhdGE9VyhBLGEsMyxJLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkkuY2VsbERhdGE9TyhJLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxzPUk7YnJlYWt9Y2FzZSBDLlBvaW50U2V0OntsZXQgST1oQShBLGEpO0kubnVtYmVyT2ZQb2ludHM+MD9JLnBvaW50cz1XKEEsYSwwLEkucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6SS5wb2ludHM9TyhJLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxJLm51bWJlck9mUG9pbnRQaXhlbHM+MD9JLnBvaW50RGF0YT1XKEEsYSwxLEkucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpJLnBvaW50RGF0YT1PKEkucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSkscz1JO2JyZWFrfWNhc2UgQy5UcmFuc2Zvcm1MaXN0OntsZXQgST1oQShBLGEpLGc9MDtJLmZvckVhY2goKHUsbSk9Pnt1LnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYodS5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYoSVttXS5maXhlZFBhcmFtZXRlcnM9VyhBLGEsZyxiLkZsb2F0NjQpKSxnKz0xLHUubnVtYmVyT2ZQYXJhbWV0ZXJzPjAmJihJW21dLnBhcmFtZXRlcnM9VyhBLGEsZyx1LnRyYW5zZm9ybVR5cGUucGFyYW1ldGVyc1ZhbHVlVHlwZSkpLGcrPTEpfSkscz1JO2JyZWFrfWNhc2UgQy5Qb2x5RGF0YTp7bGV0IEk9aEEoQSxhKTtJLm51bWJlck9mUG9pbnRzPjA/SS5wb2ludHM9VyhBLGEsMCxiLkZsb2F0MzIpOkkucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXksSS52ZXJ0aWNlc0J1ZmZlclNpemU+MD9JLnZlcnRpY2VzPVcoQSxhLDEsdy5VSW50MzIpOkkudmVydGljZXM9bmV3IFVpbnQzMkFycmF5LEkubGluZXNCdWZmZXJTaXplPjA/SS5saW5lcz1XKEEsYSwyLHcuVUludDMyKTpJLmxpbmVzPW5ldyBVaW50MzJBcnJheSxJLnBvbHlnb25zQnVmZmVyU2l6ZT4wP0kucG9seWdvbnM9VyhBLGEsMyx3LlVJbnQzMik6SS5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXksSS50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9JLnRyaWFuZ2xlU3RyaXBzPVcoQSxhLDQsdy5VSW50MzIpOkkudHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LEkubnVtYmVyT2ZQb2ludFBpeGVscz4wP0kucG9pbnREYXRhPVcoQSxhLDUsSS5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkkucG9pbnREYXRhPU8oSS5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxJLm51bWJlck9mQ2VsbFBpeGVscz4wP0kuY2VsbERhdGE9VyhBLGEsNixJLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpJLmNlbGxEYXRhPU8oSS5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLHM9STticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBRPXt0eXBlOkIudHlwZSxkYXRhOnN9O3AucHVzaChRKX0pLHtyZXR1cm5WYWx1ZTppLHN0ZG91dDpuLHN0ZGVycjpsLG91dHB1dHM6cH19dmFyIE9yPU9vO3ZhciBMbz10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gSm8oQSxlKXtpZihBPT1udWxsKXJldHVybltdO2xldCB0PVtdO2ZvcihsZXQgcj0wO3I8QS5sZW5ndGg7cisrKXtsZXQgbz1QbyhBW3JdLGUpO28hPT1udWxsJiZ0LnB1c2gobyl9cmV0dXJuIHR9ZnVuY3Rpb24gUG8oQSxlKXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCB0PW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP3Q9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYodD1BKSxMbyYmdCBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6ZT90OnQuc2xpY2UoMCl9dmFyIExyPUpvO2Z1bmN0aW9uIHhvKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciBKcj14bztmdW5jdGlvbiBNbyhBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgUHI9TW87ZnVuY3Rpb24gVG8oQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIHhyPVRvO3ZhciBIbztmdW5jdGlvbiBaQSgpe3JldHVybiBIb312YXIgWW87ZnVuY3Rpb24gTXIoKXtyZXR1cm4gWW99dmFyIHFvO2Z1bmN0aW9uIFZBKCl7cmV0dXJuIHFvfXZhciBHZT1uZXcgTWFwO2Z1bmN0aW9uIEtvKCl7bGV0IEE9VkEoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1udWxsKSxBfWZ1bmN0aW9uIFRyKCl7bGV0IEE9WkEoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1uZXcgVVJMKCIvcGlwZWxpbmVzIixkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pLmhyZWYpLEF9ZnVuY3Rpb24gekEoKXtsZXQgQT1NcigpO3JldHVybiB0eXBlb2YgQT4idSImJihBPXt9KSxBfWFzeW5jIGZ1bmN0aW9uIGpvKEEsZSx0KXtsZXQgcj1BLG89QTtpZih0eXBlb2YgQSE9InN0cmluZyImJihyPW5ldyBVUkwoQS5ocmVmKSxvPXIuaHJlZiksR2UuaGFzKG8pKXJldHVybiBHZS5nZXQobyk7e2xldCBpPWF3YWl0IFVyKEEsZT8udG9TdHJpbmcoKT8/VHIoKSx0Pz96QSgpKTtyZXR1cm4gR2Uuc2V0KG8saSksaX19YXN5bmMgZnVuY3Rpb24gdm8oQSxlLHQscixvKXtpZighYXdhaXQgTnIoKSl7bGV0IG09IldlYkFzc2VtYmx5IFNJTUQgc3VwcG9ydCBpcyByZXF1aXJlZCAtLSBwbGVhc2UgdXBkYXRlIHlvdXIgYnJvd3Nlci4iO3Rocm93IGFsZXJ0KG0pLG5ldyBFcnJvcihtKX1sZXQgaT1vPy53ZWJXb3JrZXI/P251bGw7aWYoaT09PSExKXtsZXQgbT1hd2FpdCBqbyhBLnRvU3RyaW5nKCksbz8ucGlwZWxpbmVCYXNlVXJsLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P3pBKCkpO3JldHVybiBPcihtLGUsdCxyKX1sZXQgbj1pLGw9bz8ucGlwZWxpbmVXb3JrZXJVcmw/P0tvKCkscD10eXBlb2YgbCE9InN0cmluZyImJnR5cGVvZiBsPy5ocmVmPCJ1Ij9sLmhyZWY6bCx7d29ya2VyUHJveHk6Qix3b3JrZXI6YX09YXdhaXQgRHIobixwLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P3pBKCkpO249YTtsZXQgcz1bXTtyIT1udWxsJiZyLmxlbmd0aD4wJiZyLmZvckVhY2goZnVuY3Rpb24obSl7aWYobS50eXBlPT09Qy5CaW5hcnlTdHJlYW0pe2xldCBEPW0uZGF0YS5kYXRhO3MucHVzaChEKX1lbHNlIGlmKG0udHlwZT09PUMuQmluYXJ5RmlsZSl7bGV0IEQ9bS5kYXRhLmRhdGE7cy5wdXNoKEQpfWVsc2UgaWYobS50eXBlPT09Qy5JbWFnZSl7bGV0IEQ9bS5kYXRhO0QuZGF0YSE9PW51bGwmJnMucHVzaCguLi5KcihEKSl9ZWxzZSBpZihtLnR5cGU9PT1DLk1lc2gpe2xldCBEPW0uZGF0YTtzLnB1c2goLi4uUHIoRCkpfWVsc2UgaWYobS50eXBlPT09Qy5Qb2x5RGF0YSl7bGV0IEQ9bS5kYXRhO3MucHVzaCguLi54cihEKSl9fSk7bGV0IFE9bz8ucGlwZWxpbmVCYXNlVXJsPz9UcigpLEk9dHlwZW9mIFEhPSJzdHJpbmciJiZ0eXBlb2YgUT8uaHJlZjwidSI/US5ocmVmOlEsZz1yIT1udWxsP25lKHIsTHIocyxvPy5ub0NvcHkpKTpudWxsLHU9YXdhaXQgQi5ydW5QaXBlbGluZShBLnRvU3RyaW5nKCksSSxlLHQsZyxvPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz96QSgpKTtyZXR1cm57cmV0dXJuVmFsdWU6dS5yZXR1cm5WYWx1ZSxzdGRvdXQ6dS5zdGRvdXQsc3RkZXJyOnUuc3RkZXJyLG91dHB1dHM6dS5vdXRwdXRzLHdlYldvcmtlcjpufX12YXIgYz12bzt2YXIgWm89bnVsbDtmdW5jdGlvbiBIcigpe3JldHVybiBab312YXIgVm89IjEuNi4wIixZcj1Wbzt2YXIgT2Usem89YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vQGl0ay13YXNtL2ltYWdlLWlvQCR7WXJ9L2Rpc3QvcGlwZWxpbmVzYDtmdW5jdGlvbiBlQyhBKXtPZT1BfWZ1bmN0aW9uIGQoKXtpZih0eXBlb2YgT2U8InUiKXJldHVybiBPZTtsZXQgQT1aQSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTp6b312YXIgTGUsWG89bnVsbDtmdW5jdGlvbiBxcihBKXtMZT1BfWZ1bmN0aW9uIGYoKXtpZih0eXBlb2YgTGU8InUiKXJldHVybiBMZTtsZXQgQT1WQSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpYb312YXIgYUE9bnVsbDthc3luYyBmdW5jdGlvbiBLcigpe2xldCBBPWYoKSxlPXR5cGVvZiBBIT0ic3RyaW5nIiYmdHlwZW9mIEE/LmhyZWY8InUiP0EuaHJlZjpBO2FBPWF3YWl0IGRBKGUpfWZ1bmN0aW9uIElDKEEpe2FBPUF9YXN5bmMgZnVuY3Rpb24geSgpe2lmKGFBIT09bnVsbClyZXR1cm4gYUEudGVybWluYXRlZCYmYXdhaXQgS3IoKSxhQTtsZXQgQT1IcigpO3JldHVybiBBIT09bnVsbD9BOihhd2FpdCBLcigpLGFBKX1hc3luYyBmdW5jdGlvbiBfbyhBKXtsZXQgdD0oYXdhaXQgVC5nZXQoYCR7QX0vaW5kZXguanNvbmAse3Jlc3BvbnNlVHlwZToianNvbiJ9KSkuZGF0YSxyPWF3YWl0IFQuZ2V0KGAke0F9L2RhdGEvZGF0YS5yYXdgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIn0pO3QuZGF0YT1PKHQuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUsci5kYXRhKTtsZXQgbz1hd2FpdCBULmdldChgJHtBfS9kYXRhL2RpcmVjdGlvbi5yYXdgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIn0pO3JldHVybiB0LmRpcmVjdGlvbj1PKGIuRmxvYXQ2NCxvLmRhdGEpLHR9dmFyICRvPV9vO3ZhciBBYT1uZXcgTWFwKFtbImltYWdlL2pwZWciLCJqcGVnIl0sWyJpbWFnZS9wbmciLCJwbmciXSxbImltYWdlL3RpZmYiLCJ0aWZmIl0sWyJpbWFnZS94LW1zLWJtcCIsImJtcCJdLFsiaW1hZ2UveC1ibXAiLCJibXAiXSxbImltYWdlL2JtcCIsImJtcCJdLFsiYXBwbGljYXRpb24vZGljb20iLCJnZGNtIl1dKSxuQT1BYTthc3luYyBmdW5jdGlvbiBlYShBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJwbmctcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFJlYWQ6Z1swXT8uZGF0YSxpbWFnZTpnWzFdPy5kYXRhfX12YXIgSmU9ZWE7YXN5bmMgZnVuY3Rpb24gdGEoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJwbmctd3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpzLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpnfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOnMsY291bGRXcml0ZTpnWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpnWzFdPy5kYXRhfX12YXIgUGU9dGE7YXN5bmMgZnVuY3Rpb24gcmEoQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ibWV0YS1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkUmVhZDpnWzBdPy5kYXRhLGltYWdlOmdbMV0/LmRhdGF9fXZhciB4ZT1yYTthc3luYyBmdW5jdGlvbiBpYShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9Im1ldGEtd3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpzLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpnfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOnMsY291bGRXcml0ZTpnWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpnWzFdPy5kYXRhfX12YXIgTWU9aWE7YXN5bmMgZnVuY3Rpb24gb2EoQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0idGlmZi1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkUmVhZDpnWzBdPy5kYXRhLGltYWdlOmdbMV0/LmRhdGF9fXZhciBUZT1vYTthc3luYyBmdW5jdGlvbiBhYShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9InRpZmYtd3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpzLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpnfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOnMsY291bGRXcml0ZTpnWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpnWzFdPy5kYXRhfX12YXIgSGU9YWE7YXN5bmMgZnVuY3Rpb24gbmEoQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ibmlmdGktcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFJlYWQ6Z1swXT8uZGF0YSxpbWFnZTpnWzFdPy5kYXRhfX12YXIgWWU9bmE7YXN5bmMgZnVuY3Rpb24gSWEoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJuaWZ0aS13cml0ZS1pbWFnZSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFdyaXRlOmdbMF0/LmRhdGEsc2VyaWFsaXplZEltYWdlOmdbMV0/LmRhdGF9fXZhciBxZT1JYTthc3luYyBmdW5jdGlvbiBzYShBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJqcGVnLXJlYWQtaW1hZ2UiLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpzLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpnfT1hd2FpdCBjKEIsaSx0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOnMsY291bGRSZWFkOmdbMF0/LmRhdGEsaW1hZ2U6Z1sxXT8uZGF0YX19dmFyIEtlPXNhO2FzeW5jIGZ1bmN0aW9uIGdhKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOkMuSW1hZ2UsZGF0YTpBfV0saT1bXTtpLnB1c2goIjAiKSxpLnB1c2goIjAiKTtsZXQgcD1lO2kucHVzaChwKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJmkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0ianBlZy13cml0ZS1pbWFnZSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFdyaXRlOmdbMF0/LmRhdGEsc2VyaWFsaXplZEltYWdlOmdbMV0/LmRhdGF9fXZhciBqZT1nYTthc3luYyBmdW5jdGlvbiBCYShBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJucnJkLXJlYWQtaW1hZ2UiLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpzLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpnfT1hd2FpdCBjKEIsaSx0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOnMsY291bGRSZWFkOmdbMF0/LmRhdGEsaW1hZ2U6Z1sxXT8uZGF0YX19dmFyIHZlPUJhO2FzeW5jIGZ1bmN0aW9uIENhKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOkMuSW1hZ2UsZGF0YTpBfV0saT1bXTtpLnB1c2goIjAiKSxpLnB1c2goIjAiKTtsZXQgcD1lO2kucHVzaChwKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJmkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0ibnJyZC13cml0ZS1pbWFnZSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFdyaXRlOmdbMF0/LmRhdGEsc2VyaWFsaXplZEltYWdlOmdbMV0/LmRhdGF9fXZhciBaZT1DYTthc3luYyBmdW5jdGlvbiBsYShBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJ2dGstcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFJlYWQ6Z1swXT8uZGF0YSxpbWFnZTpnWzFdPy5kYXRhfX12YXIgVmU9bGE7YXN5bmMgZnVuY3Rpb24gUWEoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJ2dGstd3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpzLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpnfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOnMsY291bGRXcml0ZTpnWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpnWzFdPy5kYXRhfX12YXIgemU9UWE7YXN5bmMgZnVuY3Rpb24gRWEoQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0iYm1wLXJlYWQtaW1hZ2UiLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpzLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpnfT1hd2FpdCBjKEIsaSx0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOnMsY291bGRSZWFkOmdbMF0/LmRhdGEsaW1hZ2U6Z1sxXT8uZGF0YX19dmFyIFhlPUVhO2FzeW5jIGZ1bmN0aW9uIHBhKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOkMuSW1hZ2UsZGF0YTpBfV0saT1bXTtpLnB1c2goIjAiKSxpLnB1c2goIjAiKTtsZXQgcD1lO2kucHVzaChwKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJmkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0iYm1wLXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkV3JpdGU6Z1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6Z1sxXT8uZGF0YX19dmFyIF9lPXBhO2FzeW5jIGZ1bmN0aW9uIG1hKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9ImhkZjUtcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFJlYWQ6Z1swXT8uZGF0YSxpbWFnZTpnWzFdPy5kYXRhfX12YXIgJGU9bWE7YXN5bmMgZnVuY3Rpb24gdWEoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJoZGY1LXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkV3JpdGU6Z1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6Z1sxXT8uZGF0YX19dmFyIEF0PXVhO2FzeW5jIGZ1bmN0aW9uIGZhKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9Im1pbmMtcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFJlYWQ6Z1swXT8uZGF0YSxpbWFnZTpnWzFdPy5kYXRhfX12YXIgZXQ9ZmE7YXN5bmMgZnVuY3Rpb24gY2EoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJtaW5jLXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkV3JpdGU6Z1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6Z1sxXT8uZGF0YX19dmFyIHR0PWNhO2FzeW5jIGZ1bmN0aW9uIGRhKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9Im1yYy1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkUmVhZDpnWzBdPy5kYXRhLGltYWdlOmdbMV0/LmRhdGF9fXZhciBydD1kYTthc3luYyBmdW5jdGlvbiB5YShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9Im1yYy13cml0ZS1pbWFnZSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFdyaXRlOmdbMF0/LmRhdGEsc2VyaWFsaXplZEltYWdlOmdbMV0/LmRhdGF9fXZhciBpdD15YTthc3luYyBmdW5jdGlvbiBoYShBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJsc20tcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFJlYWQ6Z1swXT8uZGF0YSxpbWFnZTpnWzFdPy5kYXRhfX12YXIgb3Q9aGE7YXN5bmMgZnVuY3Rpb24gd2EoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJsc20td3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpzLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpnfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOnMsY291bGRXcml0ZTpnWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpnWzFdPy5kYXRhfX12YXIgYXQ9d2E7YXN5bmMgZnVuY3Rpb24gRGEoQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ibWdoLXJlYWQtaW1hZ2UiLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpzLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpnfT1hd2FpdCBjKEIsaSx0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOnMsY291bGRSZWFkOmdbMF0/LmRhdGEsaW1hZ2U6Z1sxXT8uZGF0YX19dmFyIG50PURhO2FzeW5jIGZ1bmN0aW9uIFJhKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOkMuSW1hZ2UsZGF0YTpBfV0saT1bXTtpLnB1c2goIjAiKSxpLnB1c2goIjAiKTtsZXQgcD1lO2kucHVzaChwKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJmkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0ibWdoLXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkV3JpdGU6Z1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6Z1sxXT8uZGF0YX19dmFyIEl0PVJhO2FzeW5jIGZ1bmN0aW9uIGthKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9ImJpby1yYWQtcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFJlYWQ6Z1swXT8uZGF0YSxpbWFnZTpnWzFdPy5kYXRhfX12YXIgc3Q9a2E7YXN5bmMgZnVuY3Rpb24gRmEoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJiaW8tcmFkLXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkV3JpdGU6Z1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6Z1sxXT8uZGF0YX19dmFyIGd0PUZhO2FzeW5jIGZ1bmN0aW9uIFVhKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9ImdpcGwtcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFJlYWQ6Z1swXT8uZGF0YSxpbWFnZTpnWzFdPy5kYXRhfX12YXIgQnQ9VWE7YXN5bmMgZnVuY3Rpb24gTmEoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJnaXBsLXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkV3JpdGU6Z1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6Z1sxXT8uZGF0YX19dmFyIEN0PU5hO2FzeW5jIGZ1bmN0aW9uIFNhKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9ImdlLWFkdy1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkUmVhZDpnWzBdPy5kYXRhLGltYWdlOmdbMV0/LmRhdGF9fXZhciBsdD1TYTthc3luYyBmdW5jdGlvbiBiYShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9ImdlLWFkdy13cml0ZS1pbWFnZSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFdyaXRlOmdbMF0/LmRhdGEsc2VyaWFsaXplZEltYWdlOmdbMV0/LmRhdGF9fXZhciBRdD1iYTthc3luYyBmdW5jdGlvbiBXYShBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJnZTQtcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFJlYWQ6Z1swXT8uZGF0YSxpbWFnZTpnWzFdPy5kYXRhfX12YXIgRXQ9V2E7YXN5bmMgZnVuY3Rpb24gR2EoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJnZTQtd3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpzLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpnfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOnMsY291bGRXcml0ZTpnWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpnWzFdPy5kYXRhfX12YXIgcHQ9R2E7YXN5bmMgZnVuY3Rpb24gT2EoQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0iZ2U1LXJlYWQtaW1hZ2UiLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpzLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpnfT1hd2FpdCBjKEIsaSx0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOnMsY291bGRSZWFkOmdbMF0/LmRhdGEsaW1hZ2U6Z1sxXT8uZGF0YX19dmFyIG10PU9hO2FzeW5jIGZ1bmN0aW9uIExhKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOkMuSW1hZ2UsZGF0YTpBfV0saT1bXTtpLnB1c2goIjAiKSxpLnB1c2goIjAiKTtsZXQgcD1lO2kucHVzaChwKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJmkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0iZ2U1LXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkV3JpdGU6Z1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6Z1sxXT8uZGF0YX19dmFyIHV0PUxhO2FzeW5jIGZ1bmN0aW9uIEphKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9ImdkY20tcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFJlYWQ6Z1swXT8uZGF0YSxpbWFnZTpnWzFdPy5kYXRhfX12YXIgZnQ9SmE7YXN5bmMgZnVuY3Rpb24gUGEoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJnZGNtLXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkV3JpdGU6Z1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6Z1sxXT8uZGF0YX19dmFyIGN0PVBhO2FzeW5jIGZ1bmN0aW9uIHhhKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9InNjYW5jby1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkUmVhZDpnWzBdPy5kYXRhLGltYWdlOmdbMV0/LmRhdGF9fXZhciBkdD14YTthc3luYyBmdW5jdGlvbiBNYShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9InNjYW5jby13cml0ZS1pbWFnZSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFdyaXRlOmdbMF0/LmRhdGEsc2VyaWFsaXplZEltYWdlOmdbMV0/LmRhdGF9fXZhciB5dD1NYTthc3luYyBmdW5jdGlvbiBUYShBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJmZGYtcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOnMscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOmd9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6cyxjb3VsZFJlYWQ6Z1swXT8uZGF0YSxpbWFnZTpnWzFdPy5kYXRhfX12YXIgaHQ9VGE7YXN5bmMgZnVuY3Rpb24gSGEoQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0id2FzbS1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkUmVhZDpnWzBdPy5kYXRhLGltYWdlOmdbMV0/LmRhdGF9fXZhciB3dD1IYTthc3luYyBmdW5jdGlvbiBZYShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9Indhc20td3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpzLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpnfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOnMsY291bGRXcml0ZTpnWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpnWzFdPy5kYXRhfX12YXIgRHQ9WWE7YXN5bmMgZnVuY3Rpb24gcWEoQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0id2FzbS16c3RkLXJlYWQtaW1hZ2UiLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpzLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpnfT1hd2FpdCBjKEIsaSx0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOnMsY291bGRSZWFkOmdbMF0/LmRhdGEsaW1hZ2U6Z1sxXT8uZGF0YX19dmFyIFJ0PXFhO2FzeW5jIGZ1bmN0aW9uIEthKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOkMuSW1hZ2UsZGF0YTpBfV0saT1bXTtpLnB1c2goIjAiKSxpLnB1c2goIjAiKTtsZXQgcD1lO2kucHVzaChwKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJmkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0id2FzbS16c3RkLXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkV3JpdGU6Z1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6Z1sxXT8uZGF0YX19dmFyIGt0PUthO3ZhciBqYT1uZXcgTWFwKFtbInBuZyIsW0plLFBlXV0sWyJtZXRhIixbeGUsTWVdXSxbInRpZmYiLFtUZSxIZV1dLFsibmlmdGkiLFtZZSxxZV1dLFsianBlZyIsW0tlLGplXV0sWyJucnJkIixbdmUsWmVdXSxbInZ0ayIsW1ZlLHplXV0sWyJibXAiLFtYZSxfZV1dLFsiaGRmNSIsWyRlLEF0XV0sWyJtbmMiLFtldCx0dF1dLFsibXJjIixbcnQsaXRdXSxbImxzbSIsW290LGF0XV0sWyJtZ2giLFtudCxJdF1dLFsiYmlvUmFkIixbc3QsZ3RdXSxbImdpcGwiLFtCdCxDdF1dLFsiZ2VBZHciLFtsdCxRdF1dLFsiZ2U0IixbRXQscHRdXSxbImdlNSIsW210LHV0XV0sWyJnZGNtIixbZnQsY3RdXSxbInNjYW5jbyIsW2R0LHl0XV0sWyJmZGYiLFtodCxudWxsXV0sWyJ3YXNtIixbd3QsRHRdXSxbIndhc21ac3RkIixbUnQsa3RdXV0pLElBPWphO2FzeW5jIGZ1bmN0aW9uIHZhKEEsZT17fSl7bGV0IHQ9QS50eXBlPz8iIixyPUEubmFtZT8/QS5wYXRoPz8iZmlsZU5hbWUiLG89c0EocikudG9Mb3dlckNhc2UoKSxpPWU/LndlYldvcmtlcixuPUE7aWYoQSBpbnN0YW5jZW9mIEJsb2Ipe2xldCBJPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtuPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KEkpfX1sZXQgbD1udWxsO2lmKHQmJm5BLmhhcyh0KSlsPW5BLmdldCh0KTtlbHNlIGlmKFYuaGFzKG8pKWw9Vi5nZXQobyk7ZWxzZSBmb3IobGV0IEkgb2YgSUEudmFsdWVzKCkpaWYoSVswXSE9PW51bGwpe2xldHt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6dSxpbWFnZTptfT1hd2FpdCBJWzBdKHtwYXRoOm4ucGF0aCxkYXRhOm4uZGF0YS5zbGljZSgpfSx7d2ViV29ya2VyOmksaW5mb3JtYXRpb25Pbmx5OmU/LmluZm9ybWF0aW9uT25seSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoaT1nLHUpcmV0dXJuIHR5cGVvZiBlPCJ1IiYmKG09SyhtLGUpKSx7d2ViV29ya2VyOmksaW1hZ2U6bX19aWYoIWwpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIElPIGZvcjogIityKTtsZXQgQj1JQS5nZXQobClbMF0se3dlYldvcmtlcjphLGNvdWxkUmVhZDpzLGltYWdlOlF9PWF3YWl0IEIobix7d2ViV29ya2VyOmksaW5mb3JtYXRpb25Pbmx5OmU/LmluZm9ybWF0aW9uT25seSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoaT1hLCFzKXRocm93IEVycm9yKCJDb3VsZCBub3QgcmVhZDogIityKTtyZXR1cm4gdHlwZW9mIGU8InUiJiYoUT1LKFEsZSkpLHt3ZWJXb3JrZXI6aSxpbWFnZTpRfX12YXIgRnQ9dmE7dmFyIFphPXR5cGVvZiBnbG9iYWxUaGlzLm5hdmlnYXRvcj8uaGFyZHdhcmVDb25jdXJyZW5jeT09Im51bWJlciI/Z2xvYmFsVGhpcy5uYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeTo2LGpyPW5ldyB0ZShaYSxGdCk7YXN5bmMgZnVuY3Rpb24gVmEoQSxlPXt9KXtsZXQgdD0xLHI9MCxvPSExO3R5cGVvZiBlPT0ib2JqZWN0IiYmKHR5cGVvZiBlLnpTcGFjaW5nPCJ1IiYmKHQ9ZS56U3BhY2luZyksdHlwZW9mIGUuek9yaWdpbjwidSImJihyPWUuek9yaWdpbiksdHlwZW9mIGUuc29ydGVkU2VyaWVzPCJ1IiYmKG89ZS5zb3J0ZWRTZXJpZXMpKTtsZXQgaT1BcnJheS5mcm9tKEEsYXN5bmMgZnVuY3Rpb24ocyl7aWYocyBpbnN0YW5jZW9mIEZpbGUpe2xldCBRPWF3YWl0IHMuYXJyYXlCdWZmZXIoKTtyZXR1cm57cGF0aDpzLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShRKX19cmV0dXJuIHN9KSxuPWF3YWl0IFByb21pc2UuYWxsKGkpO298fG4uc29ydCgocyxRKT0+cy5wYXRoPFEucGF0aD8tMTpzLnBhdGg+US5wYXRoPzE6MCk7bGV0IGw9W107Zm9yKGxldCBzPTA7czxuLmxlbmd0aDtzKyspbC5wdXNoKFtuW3NdLHt9XSk7bGV0IEI9KGF3YWl0IGpyLnJ1blRhc2tzKGwpLnByb21pc2UpLm1hcChzPT57bGV0IFE9cy5pbWFnZTtyZXR1cm4gUS5pbWFnZVR5cGUuZGltZW5zaW9uPTMsUS5zaXplLnB1c2goMSksUS5zcGFjaW5nLnB1c2godCksUS5vcmlnaW4ucHVzaChyKSxRLmRpcmVjdGlvbj1uZXcgRmxvYXQ2NEFycmF5KDkpLFEuZGlyZWN0aW9uLmZpbGwoMCksUS5kaXJlY3Rpb25bMF09MSxRLmRpcmVjdGlvbls0XT0xLFEuZGlyZWN0aW9uWzhdPTEsUX0pLGE9QWUoQik7cmV0dXJuIHR5cGVvZiBlPT0ib2JqZWN0IiYmKHR5cGVvZiBlLmNvbXBvbmVudFR5cGU8InUifHx0eXBlb2YgZS5waXhlbFR5cGU8InUiKSYmKGE9SyhhLGUpKSx7aW1hZ2U6YSx3ZWJXb3JrZXJQb29sOmpyfX12YXIgemE9VmE7YXN5bmMgZnVuY3Rpb24gWGEoQSxlLHQ9e30pe2xldCByPUE7KHR5cGVvZiB0LmNvbXBvbmVudFR5cGU8InUifHx0eXBlb2YgdC5waXhlbFR5cGU8InUiKSYmKHI9SyhBLHQpKTtsZXQgbz10Lm1pbWVUeXBlLGk9c0EoZSkudG9Mb3dlckNhc2UoKSxuPXQud2ViV29ya2VyLGw9bnVsbDtpZih0eXBlb2YgbzwidSImJm5BLmhhcyhvKSlsPW5BLmdldChvKTtlbHNlIGlmKFYuaGFzKGkpKWw9Vi5nZXQoaSk7ZWxzZSBmb3IobGV0IGcgb2YgSUEudmFsdWVzKCkpaWYoZ1sxXSE9PW51bGwpe2xldHt3ZWJXb3JrZXI6dSxjb3VsZFdyaXRlOm0sc2VyaWFsaXplZEltYWdlOkR9PWF3YWl0IGdbMV0oJEEociksZSx0KTtpZihuPXUsbSlyZXR1cm57d2ViV29ya2VyOm4sc2VyaWFsaXplZEltYWdlOkR9fWlmKCFsKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBJTyBmb3I6ICIrZSk7bGV0IEI9SUEuZ2V0KGwpWzFdLHt3ZWJXb3JrZXI6YSxjb3VsZFdyaXRlOnMsc2VyaWFsaXplZEltYWdlOlF9PWF3YWl0IEIocixlLHQpO2lmKG49YSwhcyl0aHJvdyBFcnJvcigiQ291bGQgbm90IHdyaXRlOiAiK2UpO3JldHVybnt3ZWJXb3JrZXI6bixzZXJpYWxpemVkSW1hZ2U6UX19dmFyIF9hPVhhO2FzeW5jIGZ1bmN0aW9uICRhKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOkMuSW1hZ2UsZGF0YTpBfV0saT1bXTtpLnB1c2goIjAiKSxpLnB1c2goIjAiKTtsZXQgcD1lO2kucHVzaChwKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJmkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0iZmRmLXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6cyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6Z309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpzLGNvdWxkV3JpdGU6Z1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6Z1sxXT8uZGF0YX19dmFyIEFuPSRhO3ZhciB2cj0nZGF0YTp0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD11dGYtOCx2YXIgRGU9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBkZT0oQSx0KT0+e2Zvcih2YXIgZSBpbiB0KURlKEEsZSx7Z2V0OnRbZV0sZW51bWVyYWJsZTohMH0pfTt2YXIgRXQ9U3ltYm9sKCJDb21saW5rLnByb3h5IiksaGU9U3ltYm9sKCJDb21saW5rLmVuZHBvaW50IikseWU9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLFlBPVN5bWJvbCgiQ29tbGluay5maW5hbGl6ZXIiKSxRQT1TeW1ib2woIkNvbWxpbmsudGhyb3duIiksY3Q9QT0+dHlwZW9mIEE9PSJvYmplY3QiJiZBIT09bnVsbHx8dHlwZW9mIEE9PSJmdW5jdGlvbiIsbWU9e2NhbkhhbmRsZTpBPT5jdChBKSYmQVtFdF0sc2VyaWFsaXplKEEpe2xldHtwb3J0MTp0LHBvcnQyOmV9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gbEEoQSx0KSxbZSxbZV1dfSxkZXNlcmlhbGl6ZShBKXtyZXR1cm4gQS5zdGFydCgpLEZlKEEpfX0sd2U9e2NhbkhhbmRsZTpBPT5jdChBKSYmUUEgaW4gQSxzZXJpYWxpemUoe3ZhbHVlOkF9KXtsZXQgdDtyZXR1cm4gQSBpbnN0YW5jZW9mIEVycm9yP3Q9e2lzRXJyb3I6ITAsdmFsdWU6e21lc3NhZ2U6QS5tZXNzYWdlLG5hbWU6QS5uYW1lLHN0YWNrOkEuc3RhY2t9fTp0PXtpc0Vycm9yOiExLHZhbHVlOkF9LFt0LFtdXX0sZGVzZXJpYWxpemUoQSl7dGhyb3cgQS5pc0Vycm9yP09iamVjdC5hc3NpZ24obmV3IEVycm9yKEEudmFsdWUubWVzc2FnZSksQS52YWx1ZSk6QS52YWx1ZX19LGZ0PW5ldyBNYXAoW1sicHJveHkiLG1lXSxbInRocm93Iix3ZV1dKTtmdW5jdGlvbiBwZShBLHQpe2ZvcihsZXQgZSBvZiBBKWlmKHQ9PT1lfHxlPT09IioifHxlIGluc3RhbmNlb2YgUmVnRXhwJiZlLnRlc3QodCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gbEEoQSx0PWdsb2JhbFRoaXMsZT1bIioiXSl7dC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKHIpe2lmKCFyfHwhci5kYXRhKXJldHVybjtpZighcGUoZSxyLm9yaWdpbikpe2NvbnNvbGUud2FybihgSW52YWxpZCBvcmlnaW4gXCcke3Iub3JpZ2lufVwnIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDpvLHR5cGU6ZyxwYXRoOkN9PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LHIuZGF0YSksRT0oci5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcChPKSxhO3RyeXtsZXQgcz1DLnNsaWNlKDAsLTEpLnJlZHVjZSgoZixCKT0+ZltCXSxBKSxuPUMucmVkdWNlKChmLEIpPT5mW0JdLEEpO3N3aXRjaChnKXtjYXNlIkdFVCI6YT1uO2JyZWFrO2Nhc2UiU0VUIjpzW0Muc2xpY2UoLTEpWzBdXT1PKHIuZGF0YS52YWx1ZSksYT0hMDticmVhaztjYXNlIkFQUExZIjphPW4uYXBwbHkocyxFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCBmPW5ldyBuKC4uLkUpO2E9R2UoZil9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTpmLHBvcnQyOkJ9PW5ldyBNZXNzYWdlQ2hhbm5lbDtsQShBLEIpLGE9TUEoZixbZl0pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6YT12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKHMpe2E9e3ZhbHVlOnMsW1FBXTowfX1Qcm9taXNlLnJlc29sdmUoYSkuY2F0Y2gocz0+KHt2YWx1ZTpzLFtRQV06MH0pKS50aGVuKHM9PntsZXRbbixmXT1mQShzKTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuKSx7aWQ6b30pLGYpLGc9PT0iUkVMRUFTRSImJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLGx0KHQpLFlBIGluIEEmJnR5cGVvZiBBW1lBXT09ImZ1bmN0aW9uIiYmQVtZQV0oKSl9KS5jYXRjaChzPT57bGV0W24sZl09ZkEoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFtRQV06MH0pO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtpZDpvfSksZil9KX0pLHQuc3RhcnQmJnQuc3RhcnQoKX1mdW5jdGlvbiBTZShBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBsdChBKXtTZShBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIEZlKEEsdCl7cmV0dXJuIHFBKEEsW10sdCl9ZnVuY3Rpb24gYUEoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIHV0KEEpe3JldHVybiBXKEEse3R5cGU6IlJFTEVBU0UifSkudGhlbigoKT0+e2x0KEEpfSl9dmFyIEVBPW5ldyBXZWFrTWFwLGNBPSJGaW5hbGl6YXRpb25SZWdpc3RyeSJpbiBnbG9iYWxUaGlzJiZuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoQT0+e2xldCB0PShFQS5nZXQoQSl8fDApLTE7RUEuc2V0KEEsdCksdD09PTAmJnV0KEEpfSk7ZnVuY3Rpb24gUmUoQSx0KXtsZXQgZT0oRUEuZ2V0KHQpfHwwKSsxO0VBLnNldCh0LGUpLGNBJiZjQS5yZWdpc3RlcihBLHQsQSl9ZnVuY3Rpb24gTmUoQSl7Y0EmJmNBLnVucmVnaXN0ZXIoQSl9ZnVuY3Rpb24gcUEoQSx0PVtdLGU9ZnVuY3Rpb24oKXt9KXtsZXQgST0hMSxyPW5ldyBQcm94eShlLHtnZXQobyxnKXtpZihhQShJKSxnPT09eWUpcmV0dXJuKCk9PntOZShyKSx1dChBKSxJPSEwfTtpZihnPT09InRoZW4iKXtpZih0Lmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9PnJ9O2xldCBDPVcoQSx7dHlwZToiR0VUIixwYXRoOnQubWFwKEU9PkUudG9TdHJpbmcoKSl9KS50aGVuKE8pO3JldHVybiBDLnRoZW4uYmluZChDKX1yZXR1cm4gcUEoQSxbLi4udCxnXSl9LHNldChvLGcsQyl7YUEoSSk7bGV0W0UsYV09ZkEoQyk7cmV0dXJuIFcoQSx7dHlwZToiU0VUIixwYXRoOlsuLi50LGddLm1hcChzPT5zLnRvU3RyaW5nKCkpLHZhbHVlOkV9LGEpLnRoZW4oTyl9LGFwcGx5KG8sZyxDKXthQShJKTtsZXQgRT10W3QubGVuZ3RoLTFdO2lmKEU9PT1oZSlyZXR1cm4gVyhBLHt0eXBlOiJFTkRQT0lOVCJ9KS50aGVuKE8pO2lmKEU9PT0iYmluZCIpcmV0dXJuIHFBKEEsdC5zbGljZSgwLC0xKSk7bGV0W2Esc109UXQoQyk7cmV0dXJuIFcoQSx7dHlwZToiQVBQTFkiLHBhdGg6dC5tYXAobj0+bi50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6YX0scykudGhlbihPKX0sY29uc3RydWN0KG8sZyl7YUEoSSk7bGV0W0MsRV09UXQoZyk7cmV0dXJuIFcoQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOnQubWFwKGE9PmEudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OkN9LEUpLnRoZW4oTyl9fSk7cmV0dXJuIFJlKHIsQSkscn1mdW5jdGlvbiBVZShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBRdChBKXtsZXQgdD1BLm1hcChmQSk7cmV0dXJuW3QubWFwKGU9PmVbMF0pLFVlKHQubWFwKGU9PmVbMV0pKV19dmFyIER0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIE1BKEEsdCl7cmV0dXJuIER0LnNldChBLHQpLEF9ZnVuY3Rpb24gR2UoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W0V0XTohMH0pfWZ1bmN0aW9uIGZBKEEpe2ZvcihsZXRbdCxlXW9mIGZ0KWlmKGUuY2FuSGFuZGxlKEEpKXtsZXRbSSxyXT1lLnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6dCx2YWx1ZTpJfSxyXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sRHQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gTyhBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBmdC5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIFcoQSx0LGUpe3JldHVybiBuZXcgUHJvbWlzZShJPT57bGV0IHI9a2UoKTtBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIG8oZyl7IWcuZGF0YXx8IWcuZGF0YS5pZHx8Zy5kYXRhLmlkIT09cnx8KEEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsbyksSShnLmRhdGEpKX0pLEEuc3RhcnQmJkEuc3RhcnQoKSxBLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOnJ9LHQpLGUpfSl9ZnVuY3Rpb24ga2UoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfWZ1bmN0aW9uIHYoQSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseSh0LGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzpMZX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6VEF9PU9iamVjdCxEQT0oQT0+dD0+e2xldCBlPUxlLmNhbGwodCk7cmV0dXJuIEFbZV18fChBW2VdPWUuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxHPUE9PihBPUEudG9Mb3dlckNhc2UoKSx0PT5EQSh0KT09PUEpLGRBPUE9PnQ9PnR5cGVvZiB0PT09QSx7aXNBcnJheTpqfT1BcnJheSwkPWRBKCJ1bmRlZmluZWQiKTtmdW5jdGlvbiBiZShBKXtyZXR1cm4gQSE9PW51bGwmJiEkKEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmISQoQS5jb25zdHJ1Y3RvcikmJlUoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIHl0PUcoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gSmUoQSl7bGV0IHQ7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz90PUFycmF5QnVmZmVyLmlzVmlldyhBKTp0PUEmJkEuYnVmZmVyJiZ5dChBLmJ1ZmZlciksdH12YXIgSGU9ZEEoInN0cmluZyIpLFU9ZEEoImZ1bmN0aW9uIiksbXQ9ZEEoIm51bWJlciIpLGhBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsWWU9QT0+QT09PSEwfHxBPT09ITEsdUE9QT0+e2lmKERBKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IHQ9VEEoQSk7cmV0dXJuKHQ9PT1udWxsfHx0PT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpPT09bnVsbCkmJiEoU3ltYm9sLnRvU3RyaW5nVGFnIGluIEEpJiYhKFN5bWJvbC5pdGVyYXRvciBpbiBBKX0scWU9RygiRGF0ZSIpLE1lPUcoIkZpbGUiKSxLZT1HKCJCbG9iIiksVGU9RygiRmlsZUxpc3QiKSxPZT1BPT5oQShBKSYmVShBLnBpcGUpLHhlPUE9PntsZXQgdDtyZXR1cm4gQSYmKHR5cGVvZiBGb3JtRGF0YT09ImZ1bmN0aW9uIiYmQSBpbnN0YW5jZW9mIEZvcm1EYXRhfHxVKEEuYXBwZW5kKSYmKCh0PURBKEEpKT09PSJmb3JtZGF0YSJ8fHQ9PT0ib2JqZWN0IiYmVShBLnRvU3RyaW5nKSYmQS50b1N0cmluZygpPT09IltvYmplY3QgRm9ybURhdGFdIikpfSxQZT1HKCJVUkxTZWFyY2hQYXJhbXMiKSxbV2UsamUsWmUsVmVdPVsiUmVhZGFibGVTdHJlYW0iLCJSZXF1ZXN0IiwiUmVzcG9uc2UiLCJIZWFkZXJzIl0ubWFwKEcpLFhlPUE9PkEudHJpbT9BLnRyaW0oKTpBLnJlcGxhY2UoL15bXFxzXFx1RkVGRlxceEEwXSt8W1xcc1xcdUZFRkZcXHhBMF0rJC9nLCIiKTtmdW5jdGlvbiBBQShBLHQse2FsbE93bktleXM6ZT0hMX09e30pe2lmKEE9PT1udWxsfHx0eXBlb2YgQT4idSIpcmV0dXJuO2xldCBJLHI7aWYodHlwZW9mIEEhPSJvYmplY3QiJiYoQT1bQV0pLGooQSkpZm9yKEk9MCxyPUEubGVuZ3RoO0k8cjtJKyspdC5jYWxsKG51bGwsQVtJXSxJLEEpO2Vsc2V7bGV0IG89ZT9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxnPW8ubGVuZ3RoLEM7Zm9yKEk9MDtJPGc7SSsrKUM9b1tJXSx0LmNhbGwobnVsbCxBW0NdLEMsQSl9fWZ1bmN0aW9uIHd0KEEsdCl7dD10LnRvTG93ZXJDYXNlKCk7bGV0IGU9T2JqZWN0LmtleXMoQSksST1lLmxlbmd0aCxyO2Zvcig7SS0tID4wOylpZihyPWVbSV0sdD09PXIudG9Mb3dlckNhc2UoKSlyZXR1cm4gcjtyZXR1cm4gbnVsbH12YXIgeD10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLHB0PUE9PiEkKEEpJiZBIT09eDtmdW5jdGlvbiBLQSgpe2xldHtjYXNlbGVzczpBfT1wdCh0aGlzKSYmdGhpc3x8e30sdD17fSxlPShJLHIpPT57bGV0IG89QSYmd3QodCxyKXx8cjt1QSh0W29dKSYmdUEoSSk/dFtvXT1LQSh0W29dLEkpOnVBKEkpP3Rbb109S0Eoe30sSSk6aihJKT90W29dPUkuc2xpY2UoKTp0W29dPUl9O2ZvcihsZXQgST0wLHI9YXJndW1lbnRzLmxlbmd0aDtJPHI7SSsrKWFyZ3VtZW50c1tJXSYmQUEoYXJndW1lbnRzW0ldLGUpO3JldHVybiB0fXZhciBfZT0oQSx0LGUse2FsbE93bktleXM6SX09e30pPT4oQUEodCwocixvKT0+e2UmJlUocik/QVtvXT12KHIsZSk6QVtvXT1yfSx7YWxsT3duS2V5czpJfSksQSksemU9QT0+KEEuY2hhckNvZGVBdCgwKT09PTY1Mjc5JiYoQT1BLnNsaWNlKDEpKSxBKSx2ZT0oQSx0LGUsSSk9PntBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlLEkpLEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPUEsT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInN1cGVyIix7dmFsdWU6dC5wcm90b3R5cGV9KSxlJiZPYmplY3QuYXNzaWduKEEucHJvdG90eXBlLGUpfSwkZT0oQSx0LGUsSSk9PntsZXQgcixvLGcsQz17fTtpZih0PXR8fHt9LEE9PW51bGwpcmV0dXJuIHQ7ZG97Zm9yKHI9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSksbz1yLmxlbmd0aDtvLS0gPjA7KWc9cltvXSwoIUl8fEkoZyxBLHQpKSYmIUNbZ10mJih0W2ddPUFbZ10sQ1tnXT0hMCk7QT1lIT09ITEmJlRBKEEpfXdoaWxlKEEmJighZXx8ZShBLHQpKSYmQSE9PU9iamVjdC5wcm90b3R5cGUpO3JldHVybiB0fSxBST0oQSx0LGUpPT57QT1TdHJpbmcoQSksKGU9PT12b2lkIDB8fGU+QS5sZW5ndGgpJiYoZT1BLmxlbmd0aCksZS09dC5sZW5ndGg7bGV0IEk9QS5pbmRleE9mKHQsZSk7cmV0dXJuIEkhPT0tMSYmST09PWV9LHRJPUE9PntpZighQSlyZXR1cm4gbnVsbDtpZihqKEEpKXJldHVybiBBO2xldCB0PUEubGVuZ3RoO2lmKCFtdCh0KSlyZXR1cm4gbnVsbDtsZXQgZT1uZXcgQXJyYXkodCk7Zm9yKDt0LS0gPjA7KWVbdF09QVt0XTtyZXR1cm4gZX0sZUk9KEE9PnQ9PkEmJnQgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJlRBKFVpbnQ4QXJyYXkpKSxJST0oQSx0KT0+e2xldCBJPShBJiZBW1N5bWJvbC5pdGVyYXRvcl0pLmNhbGwoQSkscjtmb3IoOyhyPUkubmV4dCgpKSYmIXIuZG9uZTspe2xldCBvPXIudmFsdWU7dC5jYWxsKEEsb1swXSxvWzFdKX19LHJJPShBLHQpPT57bGV0IGUsST1bXTtmb3IoOyhlPUEuZXhlYyh0KSkhPT1udWxsOylJLnB1c2goZSk7cmV0dXJuIEl9LG9JPUcoIkhUTUxGb3JtRWxlbWVudCIpLGdJPUE9PkEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9cXHNdKFthLXpcXGRdKShcXHcqKS9nLGZ1bmN0aW9uKGUsSSxyKXtyZXR1cm4gSS50b1VwcGVyQ2FzZSgpK3J9KSxodD0oKHtoYXNPd25Qcm9wZXJ0eTpBfSk9Pih0LGUpPT5BLmNhbGwodCxlKSkoT2JqZWN0LnByb3RvdHlwZSksaUk9RygiUmVnRXhwIiksU3Q9KEEsdCk9PntsZXQgZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhBKSxJPXt9O0FBKGUsKHIsbyk9PntsZXQgZzsoZz10KHIsbyxBKSkhPT0hMSYmKElbb109Z3x8cil9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBLEkpfSxzST1BPT57U3QoQSwodCxlKT0+e2lmKFUoQSkmJlsiYXJndW1lbnRzIiwiY2FsbGVyIiwiY2FsbGVlIl0uaW5kZXhPZihlKSE9PS0xKXJldHVybiExO2xldCBJPUFbZV07aWYoVShJKSl7aWYodC5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiB0KXt0LndyaXRhYmxlPSExO3JldHVybn10LnNldHx8KHQuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kIFwnIitlKyJcJyIpfSl9fSl9LG5JPShBLHQpPT57bGV0IGU9e30sST1yPT57ci5mb3JFYWNoKG89PntlW29dPSEwfSl9O3JldHVybiBqKEEpP0koQSk6SShTdHJpbmcoQSkuc3BsaXQodCkpLGV9LENJPSgpPT57fSxCST0oQSx0KT0+QSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKEE9K0EpP0E6dDtmdW5jdGlvbiBhSShBKXtyZXR1cm4hIShBJiZVKEEuYXBwZW5kKSYmQVtTeW1ib2wudG9TdHJpbmdUYWddPT09IkZvcm1EYXRhIiYmQVtTeW1ib2wuaXRlcmF0b3JdKX12YXIgUUk9QT0+e2xldCB0PW5ldyBBcnJheSgxMCksZT0oSSxyKT0+e2lmKGhBKEkpKXtpZih0LmluZGV4T2YoSSk+PTApcmV0dXJuO2lmKCEoInRvSlNPTiJpbiBJKSl7dFtyXT1JO2xldCBvPWooSSk/W106e307cmV0dXJuIEFBKEksKGcsQyk9PntsZXQgRT1lKGcscisxKTshJChFKSYmKG9bQ109RSl9KSx0W3JdPXZvaWQgMCxvfX1yZXR1cm4gSX07cmV0dXJuIGUoQSwwKX0sRUk9RygiQXN5bmNGdW5jdGlvbiIpLGNJPUE9PkEmJihoQShBKXx8VShBKSkmJlUoQS50aGVuKSYmVShBLmNhdGNoKSxGdD0oKEEsdCk9PkE/c2V0SW1tZWRpYXRlOnQ/KChlLEkpPT4oeC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoe3NvdXJjZTpyLGRhdGE6b30pPT57cj09PXgmJm89PT1lJiZJLmxlbmd0aCYmSS5zaGlmdCgpKCl9LCExKSxyPT57SS5wdXNoKHIpLHgucG9zdE1lc3NhZ2UoZSwiKiIpfSkpKGBheGlvc0Ake01hdGgucmFuZG9tKCl9YCxbXSk6ZT0+c2V0VGltZW91dChlKSkodHlwZW9mIHNldEltbWVkaWF0ZT09ImZ1bmN0aW9uIixVKHgucG9zdE1lc3NhZ2UpKSxmST10eXBlb2YgcXVldWVNaWNyb3Rhc2s8InUiP3F1ZXVlTWljcm90YXNrLmJpbmQoeCk6dHlwZW9mIHByb2Nlc3M8InUiJiZwcm9jZXNzLm5leHRUaWNrfHxGdCxpPXtpc0FycmF5OmosaXNBcnJheUJ1ZmZlcjp5dCxpc0J1ZmZlcjpiZSxpc0Zvcm1EYXRhOnhlLGlzQXJyYXlCdWZmZXJWaWV3OkplLGlzU3RyaW5nOkhlLGlzTnVtYmVyOm10LGlzQm9vbGVhbjpZZSxpc09iamVjdDpoQSxpc1BsYWluT2JqZWN0OnVBLGlzUmVhZGFibGVTdHJlYW06V2UsaXNSZXF1ZXN0OmplLGlzUmVzcG9uc2U6WmUsaXNIZWFkZXJzOlZlLGlzVW5kZWZpbmVkOiQsaXNEYXRlOnFlLGlzRmlsZTpNZSxpc0Jsb2I6S2UsaXNSZWdFeHA6aUksaXNGdW5jdGlvbjpVLGlzU3RyZWFtOk9lLGlzVVJMU2VhcmNoUGFyYW1zOlBlLGlzVHlwZWRBcnJheTplSSxpc0ZpbGVMaXN0OlRlLGZvckVhY2g6QUEsbWVyZ2U6S0EsZXh0ZW5kOl9lLHRyaW06WGUsc3RyaXBCT006emUsaW5oZXJpdHM6dmUsdG9GbGF0T2JqZWN0OiRlLGtpbmRPZjpEQSxraW5kT2ZUZXN0OkcsZW5kc1dpdGg6QUksdG9BcnJheTp0SSxmb3JFYWNoRW50cnk6SUksbWF0Y2hBbGw6ckksaXNIVE1MRm9ybTpvSSxoYXNPd25Qcm9wZXJ0eTpodCxoYXNPd25Qcm9wOmh0LHJlZHVjZURlc2NyaXB0b3JzOlN0LGZyZWV6ZU1ldGhvZHM6c0ksdG9PYmplY3RTZXQ6bkksdG9DYW1lbENhc2U6Z0ksbm9vcDpDSSx0b0Zpbml0ZU51bWJlcjpCSSxmaW5kS2V5Ond0LGdsb2JhbDp4LGlzQ29udGV4dERlZmluZWQ6cHQsaXNTcGVjQ29tcGxpYW50Rm9ybTphSSx0b0pTT05PYmplY3Q6UUksaXNBc3luY0ZuOkVJLGlzVGhlbmFibGU6Y0ksc2V0SW1tZWRpYXRlOkZ0LGFzYXA6Zkl9O2Z1bmN0aW9uIFooQSx0LGUsSSxyKXtFcnJvci5jYWxsKHRoaXMpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFjayx0aGlzLm1lc3NhZ2U9QSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLHQmJih0aGlzLmNvZGU9dCksZSYmKHRoaXMuY29uZmlnPWUpLEkmJih0aGlzLnJlcXVlc3Q9SSksciYmKHRoaXMucmVzcG9uc2U9cix0aGlzLnN0YXR1cz1yLnN0YXR1cz9yLnN0YXR1czpudWxsKX1pLmluaGVyaXRzKFosRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzppLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgUnQ9Wi5wcm90b3R5cGUsTnQ9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57TnRbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoWixOdCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFJ0LCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pO1ouZnJvbT0oQSx0LGUsSSxyLG8pPT57bGV0IGc9T2JqZWN0LmNyZWF0ZShSdCk7cmV0dXJuIGkudG9GbGF0T2JqZWN0KEEsZyxmdW5jdGlvbihFKXtyZXR1cm4gRSE9PUVycm9yLnByb3RvdHlwZX0sQz0+QyE9PSJpc0F4aW9zRXJyb3IiKSxaLmNhbGwoZyxBLm1lc3NhZ2UsdCxlLEksciksZy5jYXVzZT1BLGcubmFtZT1BLm5hbWUsbyYmT2JqZWN0LmFzc2lnbihnLG8pLGd9O3ZhciB1PVo7dmFyIHlBPW51bGw7ZnVuY3Rpb24gT0EoQSl7cmV0dXJuIGkuaXNQbGFpbk9iamVjdChBKXx8aS5pc0FycmF5KEEpfWZ1bmN0aW9uIEd0KEEpe3JldHVybiBpLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIFV0KEEsdCxlKXtyZXR1cm4gQT9BLmNvbmNhdCh0KS5tYXAoZnVuY3Rpb24ocixvKXtyZXR1cm4gcj1HdChyKSwhZSYmbz8iWyIrcisiXSI6cn0pLmpvaW4oZT8iLiI6IiIpOnR9ZnVuY3Rpb24gbEkoQSl7cmV0dXJuIGkuaXNBcnJheShBKSYmIUEuc29tZShPQSl9dmFyIHVJPWkudG9GbGF0T2JqZWN0KGkse30sbnVsbCxmdW5jdGlvbih0KXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QodCl9KTtmdW5jdGlvbiBESShBLHQsZSl7aWYoIWkuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7dD10fHxuZXcoeUF8fEZvcm1EYXRhKSxlPWkudG9GbGF0T2JqZWN0KGUse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihsLGMpe3JldHVybiFpLmlzVW5kZWZpbmVkKGNbbF0pfSk7bGV0IEk9ZS5tZXRhVG9rZW5zLHI9ZS52aXNpdG9yfHxzLG89ZS5kb3RzLGc9ZS5pbmRleGVzLEU9KGUuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmaS5pc1NwZWNDb21wbGlhbnRGb3JtKHQpO2lmKCFpLmlzRnVuY3Rpb24ocikpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBhKFEpe2lmKFE9PT1udWxsKXJldHVybiIiO2lmKGkuaXNEYXRlKFEpKXJldHVybiBRLnRvSVNPU3RyaW5nKCk7aWYoIUUmJmkuaXNCbG9iKFEpKXRocm93IG5ldyB1KCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBpLmlzQXJyYXlCdWZmZXIoUSl8fGkuaXNUeXBlZEFycmF5KFEpP0UmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtRXSk6QnVmZmVyLmZyb20oUSk6UX1mdW5jdGlvbiBzKFEsbCxjKXtsZXQgZD1RO2lmKFEmJiFjJiZ0eXBlb2YgUT09Im9iamVjdCIpe2lmKGkuZW5kc1dpdGgobCwie30iKSlsPUk/bDpsLnNsaWNlKDAsLTIpLFE9SlNPTi5zdHJpbmdpZnkoUSk7ZWxzZSBpZihpLmlzQXJyYXkoUSkmJmxJKFEpfHwoaS5pc0ZpbGVMaXN0KFEpfHxpLmVuZHNXaXRoKGwsIltdIikpJiYoZD1pLnRvQXJyYXkoUSkpKXJldHVybiBsPUd0KGwpLGQuZm9yRWFjaChmdW5jdGlvbihtLEgpeyEoaS5pc1VuZGVmaW5lZChtKXx8bT09PW51bGwpJiZ0LmFwcGVuZChnPT09ITA/VXQoW2xdLEgsbyk6Zz09PW51bGw/bDpsKyJbXSIsYShtKSl9KSwhMX1yZXR1cm4gT0EoUSk/ITA6KHQuYXBwZW5kKFV0KGMsbCxvKSxhKFEpKSwhMSl9bGV0IG49W10sZj1PYmplY3QuYXNzaWduKHVJLHtkZWZhdWx0VmlzaXRvcjpzLGNvbnZlcnRWYWx1ZTphLGlzVmlzaXRhYmxlOk9BfSk7ZnVuY3Rpb24gQihRLGwpe2lmKCFpLmlzVW5kZWZpbmVkKFEpKXtpZihuLmluZGV4T2YoUSkhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrbC5qb2luKCIuIikpO24ucHVzaChRKSxpLmZvckVhY2goUSxmdW5jdGlvbihkLHkpeyghKGkuaXNVbmRlZmluZWQoZCl8fGQ9PT1udWxsKSYmci5jYWxsKHQsZCxpLmlzU3RyaW5nKHkpP3kudHJpbSgpOnksbCxmKSk9PT0hMCYmQihkLGw/bC5jb25jYXQoeSk6W3ldKX0pLG4ucG9wKCl9fWlmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gQihBKSx0fXZhciBNPURJO2Z1bmN0aW9uIGt0KEEpe2xldCB0PXsiISI6IiUyNTIxIiwiXCciOiIlMjUyNyIsIigiOiIlMjUyOCIsIikiOiIlMjUyOSIsIn4iOiIlMjU3RSIsIiUyNTIwIjoiKyIsIiUyNTAwIjoiXFwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC9bIVwnKCl+XXwlMjUyMHwlMjUwMC9nLGZ1bmN0aW9uKEkpe3JldHVybiB0W0ldfSl9ZnVuY3Rpb24gTHQoQSx0KXt0aGlzLl9wYWlycz1bXSxBJiZNKEEsdGhpcyx0KX12YXIgYnQ9THQucHJvdG90eXBlO2J0LmFwcGVuZD1mdW5jdGlvbih0LGUpe3RoaXMuX3BhaXJzLnB1c2goW3QsZV0pfTtidC50b1N0cmluZz1mdW5jdGlvbih0KXtsZXQgZT10P2Z1bmN0aW9uKEkpe3JldHVybiB0LmNhbGwodGhpcyxJLGt0KX06a3Q7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gZShyWzBdKSsiPSIrZShyWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIG1BPUx0O2Z1bmN0aW9uIGRJKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTI1M0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjUyNC9nLCIkIikucmVwbGFjZSgvJTI1MkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjUyMC9nLCIrIikucmVwbGFjZSgvJTI1NUIvZ2ksIlsiKS5yZXBsYWNlKC8lMjU1RC9naSwiXSIpfWZ1bmN0aW9uIHRBKEEsdCxlKXtpZighdClyZXR1cm4gQTtsZXQgST1lJiZlLmVuY29kZXx8ZEk7aS5pc0Z1bmN0aW9uKGUpJiYoZT17c2VyaWFsaXplOmV9KTtsZXQgcj1lJiZlLnNlcmlhbGl6ZSxvO2lmKHI/bz1yKHQsZSk6bz1pLmlzVVJMU2VhcmNoUGFyYW1zKHQpP3QudG9TdHJpbmcoKTpuZXcgbUEodCxlKS50b1N0cmluZyhJKSxvKXtsZXQgZz1BLmluZGV4T2YoIiUyMyIpO2chPT0tMSYmKEE9QS5zbGljZSgwLGcpKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStvfXJldHVybiBBfXZhciB4QT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKHQsZSxJKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6dCxyZWplY3RlZDplLHN5bmNocm9ub3VzOkk/SS5zeW5jaHJvbm91czohMSxydW5XaGVuOkk/SS5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KHQpe3RoaXMuaGFuZGxlcnNbdF0mJih0aGlzLmhhbmRsZXJzW3RdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2godCl7aS5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24oSSl7SSE9PW51bGwmJnQoSSl9KX19LFBBPXhBO3ZhciB3QT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIEp0PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczptQTt2YXIgSHQ9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciBZdD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBxdD17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczpKdCxGb3JtRGF0YTpIdCxCbG9iOll0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIFpBPXt9O2RlKFpBLHtoYXNCcm93c2VyRW52OigpPT5qQSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PmhJLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+eUksbmF2aWdhdG9yOigpPT5XQSxvcmlnaW46KCk9Pm1JfSk7dmFyIGpBPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLFdBPXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCxoST1qQSYmKCFXQXx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZihXQS5wcm9kdWN0KTwwKSx5ST10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsbUk9akEmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIGg9ey4uLlpBLC4uLnF0fTtmdW5jdGlvbiBWQShBLHQpe3JldHVybiBNKEEsbmV3IGguY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMsT2JqZWN0LmFzc2lnbih7dmlzaXRvcjpmdW5jdGlvbihlLEkscixvKXtyZXR1cm4gaC5pc05vZGUmJmkuaXNCdWZmZXIoZSk/KHRoaXMuYXBwZW5kKEksZS50b1N0cmluZygiYmFzZTY0IikpLCExKTpvLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LHQpKX1mdW5jdGlvbiB3SShBKXtyZXR1cm4gaS5tYXRjaEFsbCgvXFx3K3xcXFsoXFx3KildL2csQSkubWFwKHQ9PnRbMF09PT0iW10iPyIiOnRbMV18fHRbMF0pfWZ1bmN0aW9uIHBJKEEpe2xldCB0PXt9LGU9T2JqZWN0LmtleXMoQSksSSxyPWUubGVuZ3RoLG87Zm9yKEk9MDtJPHI7SSsrKW89ZVtJXSx0W29dPUFbb107cmV0dXJuIHR9ZnVuY3Rpb24gU0koQSl7ZnVuY3Rpb24gdChlLEkscixvKXtsZXQgZz1lW28rK107aWYoZz09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBDPU51bWJlci5pc0Zpbml0ZSgrZyksRT1vPj1lLmxlbmd0aDtyZXR1cm4gZz0hZyYmaS5pc0FycmF5KHIpP3IubGVuZ3RoOmcsRT8oaS5oYXNPd25Qcm9wKHIsZyk/cltnXT1bcltnXSxJXTpyW2ddPUksIUMpOigoIXJbZ118fCFpLmlzT2JqZWN0KHJbZ10pKSYmKHJbZ109W10pLHQoZSxJLHJbZ10sbykmJmkuaXNBcnJheShyW2ddKSYmKHJbZ109cEkocltnXSkpLCFDKX1pZihpLmlzRm9ybURhdGEoQSkmJmkuaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgZT17fTtyZXR1cm4gaS5mb3JFYWNoRW50cnkoQSwoSSxyKT0+e3Qod0koSSkscixlLDApfSksZX1yZXR1cm4gbnVsbH12YXIgcEE9U0k7ZnVuY3Rpb24gRkkoQSx0LGUpe2lmKGkuaXNTdHJpbmcoQSkpdHJ5e3JldHVybih0fHxKU09OLnBhcnNlKShBKSxpLnRyaW0oQSl9Y2F0Y2goSSl7aWYoSS5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyBJfXJldHVybihlfHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIFhBPXt0cmFuc2l0aW9uYWw6d0EsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKHQsZSl7bGV0IEk9ZS5nZXRDb250ZW50VHlwZSgpfHwiIixyPUkuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLG89aS5pc09iamVjdCh0KTtpZihvJiZpLmlzSFRNTEZvcm0odCkmJih0PW5ldyBGb3JtRGF0YSh0KSksaS5pc0Zvcm1EYXRhKHQpKXJldHVybiByP0pTT04uc3RyaW5naWZ5KHBBKHQpKTp0O2lmKGkuaXNBcnJheUJ1ZmZlcih0KXx8aS5pc0J1ZmZlcih0KXx8aS5pc1N0cmVhbSh0KXx8aS5pc0ZpbGUodCl8fGkuaXNCbG9iKHQpfHxpLmlzUmVhZGFibGVTdHJlYW0odCkpcmV0dXJuIHQ7aWYoaS5pc0FycmF5QnVmZmVyVmlldyh0KSlyZXR1cm4gdC5idWZmZXI7aWYoaS5pc1VSTFNlYXJjaFBhcmFtcyh0KSlyZXR1cm4gZS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSx0LnRvU3RyaW5nKCk7bGV0IEM7aWYobyl7aWYoSS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gVkEodCx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChDPWkuaXNGaWxlTGlzdCh0KSl8fEkuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgRT10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIE0oQz97ImZpbGVzW10iOnR9OnQsRSYmbmV3IEUsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiBvfHxyPyhlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksRkkodCkpOnR9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24odCl7bGV0IGU9dGhpcy50cmFuc2l0aW9uYWx8fFhBLnRyYW5zaXRpb25hbCxJPWUmJmUuZm9yY2VkSlNPTlBhcnNpbmcscj10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihpLmlzUmVzcG9uc2UodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZih0JiZpLmlzU3RyaW5nKHQpJiYoSSYmIXRoaXMucmVzcG9uc2VUeXBlfHxyKSl7bGV0IGc9IShlJiZlLnNpbGVudEpTT05QYXJzaW5nKSYmcjt0cnl7cmV0dXJuIEpTT04ucGFyc2UodCl9Y2F0Y2goQyl7aWYoZyl0aHJvdyBDLm5hbWU9PT0iU3ludGF4RXJyb3IiP3UuZnJvbShDLHUuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6Q319cmV0dXJuIHR9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOmguY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOmguY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbih0KXtyZXR1cm4gdD49MjAwJiZ0PDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O2kuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57WEEuaGVhZGVyc1tBXT17fX0pO3ZhciBWPVhBO3ZhciBSST1pLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLE10PUE9PntsZXQgdD17fSxlLEkscjtyZXR1cm4gQSYmQS5zcGxpdChgJTBBYCkuZm9yRWFjaChmdW5jdGlvbihnKXtyPWcuaW5kZXhPZigiOiIpLGU9Zy5zdWJzdHJpbmcoMCxyKS50cmltKCkudG9Mb3dlckNhc2UoKSxJPWcuc3Vic3RyaW5nKHIrMSkudHJpbSgpLCEoIWV8fHRbZV0mJlJJW2VdKSYmKGU9PT0ic2V0LWNvb2tpZSI/dFtlXT90W2VdLnB1c2goSSk6dFtlXT1bSV06dFtlXT10W2VdP3RbZV0rIiwgIitJOkkpfSksdH07dmFyIEt0PVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gZUEoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBTQShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6aS5pc0FycmF5KEEpP0EubWFwKFNBKTpTdHJpbmcoQSl9ZnVuY3Rpb24gTkkoQSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKSxlPS8oW15cXHMsOz1dKylcXHMqKD86PVxccyooW14sO10rKSk/L2csSTtmb3IoO0k9ZS5leGVjKEEpOyl0W0lbMV1dPUlbMl07cmV0dXJuIHR9dmFyIFVJPUE9Pi9eWy1fYS16QS1aMC05XmB8fiwhJTIzJCUmXCcqKy5dKyQvLnRlc3QoQS50cmltKCkpO2Z1bmN0aW9uIF9BKEEsdCxlLEkscil7aWYoaS5pc0Z1bmN0aW9uKEkpKXJldHVybiBJLmNhbGwodGhpcyx0LGUpO2lmKHImJih0PWUpLCEhaS5pc1N0cmluZyh0KSl7aWYoaS5pc1N0cmluZyhJKSlyZXR1cm4gdC5pbmRleE9mKEkpIT09LTE7aWYoaS5pc1JlZ0V4cChJKSlyZXR1cm4gSS50ZXN0KHQpfX1mdW5jdGlvbiBHSShBKXtyZXR1cm4gQS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxcZF0pKFxcdyopL2csKHQsZSxJKT0+ZS50b1VwcGVyQ2FzZSgpK0kpfWZ1bmN0aW9uIGtJKEEsdCl7bGV0IGU9aS50b0NhbWVsQ2FzZSgiICIrdCk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKEk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJK2Use3ZhbHVlOmZ1bmN0aW9uKHIsbyxnKXtyZXR1cm4gdGhpc1tJXS5jYWxsKHRoaXMsdCxyLG8sZyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIFg9Y2xhc3N7Y29uc3RydWN0b3IodCl7dCYmdGhpcy5zZXQodCl9c2V0KHQsZSxJKXtsZXQgcj10aGlzO2Z1bmN0aW9uIG8oQyxFLGEpe2xldCBzPWVBKEUpO2lmKCFzKXRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgbj1pLmZpbmRLZXkocixzKTsoIW58fHJbbl09PT12b2lkIDB8fGE9PT0hMHx8YT09PXZvaWQgMCYmcltuXSE9PSExKSYmKHJbbnx8RV09U0EoQykpfWxldCBnPShDLEUpPT5pLmZvckVhY2goQywoYSxzKT0+byhhLHMsRSkpO2lmKGkuaXNQbGFpbk9iamVjdCh0KXx8dCBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpZyh0LGUpO2Vsc2UgaWYoaS5pc1N0cmluZyh0KSYmKHQ9dC50cmltKCkpJiYhVUkodCkpZyhNdCh0KSxlKTtlbHNlIGlmKGkuaXNIZWFkZXJzKHQpKWZvcihsZXRbQyxFXW9mIHQuZW50cmllcygpKW8oRSxDLEkpO2Vsc2UgdCE9bnVsbCYmbyhlLHQsSSk7cmV0dXJuIHRoaXN9Z2V0KHQsZSl7aWYodD1lQSh0KSx0KXtsZXQgST1pLmZpbmRLZXkodGhpcyx0KTtpZihJKXtsZXQgcj10aGlzW0ldO2lmKCFlKXJldHVybiByO2lmKGU9PT0hMClyZXR1cm4gTkkocik7aWYoaS5pc0Z1bmN0aW9uKGUpKXJldHVybiBlLmNhbGwodGhpcyxyLEkpO2lmKGkuaXNSZWdFeHAoZSkpcmV0dXJuIGUuZXhlYyhyKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKHQsZSl7aWYodD1lQSh0KSx0KXtsZXQgST1pLmZpbmRLZXkodGhpcyx0KTtyZXR1cm4hIShJJiZ0aGlzW0ldIT09dm9pZCAwJiYoIWV8fF9BKHRoaXMsdGhpc1tJXSxJLGUpKSl9cmV0dXJuITF9ZGVsZXRlKHQsZSl7bGV0IEk9dGhpcyxyPSExO2Z1bmN0aW9uIG8oZyl7aWYoZz1lQShnKSxnKXtsZXQgQz1pLmZpbmRLZXkoSSxnKTtDJiYoIWV8fF9BKEksSVtDXSxDLGUpKSYmKGRlbGV0ZSBJW0NdLHI9ITApfX1yZXR1cm4gaS5pc0FycmF5KHQpP3QuZm9yRWFjaChvKTpvKHQpLHJ9Y2xlYXIodCl7bGV0IGU9T2JqZWN0LmtleXModGhpcyksST1lLmxlbmd0aCxyPSExO2Zvcig7SS0tOyl7bGV0IG89ZVtJXTsoIXR8fF9BKHRoaXMsdGhpc1tvXSxvLHQsITApKSYmKGRlbGV0ZSB0aGlzW29dLHI9ITApfXJldHVybiByfW5vcm1hbGl6ZSh0KXtsZXQgZT10aGlzLEk9e307cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChyLG8pPT57bGV0IGc9aS5maW5kS2V5KEksbyk7aWYoZyl7ZVtnXT1TQShyKSxkZWxldGUgZVtvXTtyZXR1cm59bGV0IEM9dD9HSShvKTpTdHJpbmcobykudHJpbSgpO0MhPT1vJiZkZWxldGUgZVtvXSxlW0NdPVNBKHIpLElbQ109ITB9KSx0aGlzfWNvbmNhdCguLi50KXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi50KX10b0pTT04odCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gaS5mb3JFYWNoKHRoaXMsKEkscik9PntJIT1udWxsJiZJIT09ITEmJihlW3JdPXQmJmkuaXNBcnJheShJKT9JLmpvaW4oIiwgIik6SSl9KSxlfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKX10b1N0cmluZygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFt0LGVdKT0+dCsiOiAiK2UpLmpvaW4oYCUwQWApfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB0aGlzP3Q6bmV3IHRoaXModCl9c3RhdGljIGNvbmNhdCh0LC4uLmUpe2xldCBJPW5ldyB0aGlzKHQpO3JldHVybiBlLmZvckVhY2gocj0+SS5zZXQocikpLEl9c3RhdGljIGFjY2Vzc29yKHQpe2xldCBJPSh0aGlzW0t0XT10aGlzW0t0XT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLHI9dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gbyhnKXtsZXQgQz1lQShnKTtJW0NdfHwoa0kocixnKSxJW0NdPSEwKX1yZXR1cm4gaS5pc0FycmF5KHQpP3QuZm9yRWFjaChvKTpvKHQpLHRoaXN9fTtYLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtpLnJlZHVjZURlc2NyaXB0b3JzKFgucHJvdG90eXBlLCh7dmFsdWU6QX0sdCk9PntsZXQgZT10WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKTtyZXR1cm57Z2V0OigpPT5BLHNldChJKXt0aGlzW2VdPUl9fX0pO2kuZnJlZXplTWV0aG9kcyhYKTt2YXIgUz1YO2Z1bmN0aW9uIElBKEEsdCl7bGV0IGU9dGhpc3x8VixJPXR8fGUscj1TLmZyb20oSS5oZWFkZXJzKSxvPUkuZGF0YTtyZXR1cm4gaS5mb3JFYWNoKEEsZnVuY3Rpb24oQyl7bz1DLmNhbGwoZSxvLHIubm9ybWFsaXplKCksdD90LnN0YXR1czp2b2lkIDApfSksci5ub3JtYWxpemUoKSxvfWZ1bmN0aW9uIHJBKEEpe3JldHVybiEhKEEmJkEuX19DQU5DRUxfXyl9ZnVuY3Rpb24gVHQoQSx0LGUpe3UuY2FsbCh0aGlzLEE/PyJjYW5jZWxlZCIsdS5FUlJfQ0FOQ0VMRUQsdCxlKSx0aGlzLm5hbWU9IkNhbmNlbGVkRXJyb3IifWkuaW5oZXJpdHMoVHQsdSx7X19DQU5DRUxfXzohMH0pO3ZhciBMPVR0O2Z1bmN0aW9uIG9BKEEsdCxlKXtsZXQgST1lLmNvbmZpZy52YWxpZGF0ZVN0YXR1czshZS5zdGF0dXN8fCFJfHxJKGUuc3RhdHVzKT9BKGUpOnQobmV3IHUoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIitlLnN0YXR1cyxbdS5FUlJfQkFEX1JFUVVFU1QsdS5FUlJfQkFEX1JFU1BPTlNFXVtNYXRoLmZsb29yKGUuc3RhdHVzLzEwMCktNF0sZS5jb25maWcsZS5yZXF1ZXN0LGUpKX1mdW5jdGlvbiB6QShBKXtsZXQgdD0vXihbLStcXHddezEsMjV9KSg6P1xcL1xcL3w6KS8uZXhlYyhBKTtyZXR1cm4gdCYmdFsxXXx8IiJ9ZnVuY3Rpb24gTEkoQSx0KXtBPUF8fDEwO2xldCBlPW5ldyBBcnJheShBKSxJPW5ldyBBcnJheShBKSxyPTAsbz0wLGc7cmV0dXJuIHQ9dCE9PXZvaWQgMD90OjFlMyxmdW5jdGlvbihFKXtsZXQgYT1EYXRlLm5vdygpLHM9SVtvXTtnfHwoZz1hKSxlW3JdPUUsSVtyXT1hO2xldCBuPW8sZj0wO2Zvcig7biE9PXI7KWYrPWVbbisrXSxuPW4lQTtpZihyPShyKzEpJUEscj09PW8mJihvPShvKzEpJUEpLGEtZzx0KXJldHVybjtsZXQgQj1zJiZhLXM7cmV0dXJuIEI/TWF0aC5yb3VuZChmKjFlMy9CKTp2b2lkIDB9fXZhciBPdD1MSTtmdW5jdGlvbiBiSShBLHQpe2xldCBlPTAsST0xZTMvdCxyLG8sZz0oYSxzPURhdGUubm93KCkpPT57ZT1zLHI9bnVsbCxvJiYoY2xlYXJUaW1lb3V0KG8pLG89bnVsbCksQS5hcHBseShudWxsLGEpfTtyZXR1cm5bKC4uLmEpPT57bGV0IHM9RGF0ZS5ub3coKSxuPXMtZTtuPj1JP2coYSxzKToocj1hLG98fChvPXNldFRpbWVvdXQoKCk9PntvPW51bGwsZyhyKX0sSS1uKSkpfSwoKT0+ciYmZyhyKV19dmFyIHh0PWJJO3ZhciBfPShBLHQsZT0zKT0+e2xldCBJPTAscj1PdCg1MCwyNTApO3JldHVybiB4dChvPT57bGV0IGc9by5sb2FkZWQsQz1vLmxlbmd0aENvbXB1dGFibGU/by50b3RhbDp2b2lkIDAsRT1nLUksYT1yKEUpLHM9Zzw9QztJPWc7bGV0IG49e2xvYWRlZDpnLHRvdGFsOkMscHJvZ3Jlc3M6Qz9nL0M6dm9pZCAwLGJ5dGVzOkUscmF0ZTphfHx2b2lkIDAsZXN0aW1hdGVkOmEmJkMmJnM/KEMtZykvYTp2b2lkIDAsZXZlbnQ6byxsZW5ndGhDb21wdXRhYmxlOkMhPW51bGwsW3Q/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0Eobil9LGUpfSx2QT0oQSx0KT0+e2xldCBlPUEhPW51bGw7cmV0dXJuW0k9PnRbMF0oe2xlbmd0aENvbXB1dGFibGU6ZSx0b3RhbDpBLGxvYWRlZDpJfSksdFsxXV19LCRBPUE9PiguLi50KT0+aS5hc2FwKCgpPT5BKC4uLnQpKTt2YXIgUHQ9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLHQpPT5lPT4oZT1uZXcgVVJMKGUsaC5vcmlnaW4pLEEucHJvdG9jb2w9PT1lLnByb3RvY29sJiZBLmhvc3Q9PT1lLmhvc3QmJih0fHxBLnBvcnQ9PT1lLnBvcnQpKSkobmV3IFVSTChoLm9yaWdpbiksaC5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoaC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBXdD1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSx0LGUsSSxyLG8pe2xldCBnPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQodCldO2kuaXNOdW1iZXIoZSkmJmcucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKGUpLnRvR01UU3RyaW5nKCkpLGkuaXNTdHJpbmcoSSkmJmcucHVzaCgicGF0aD0iK0kpLGkuaXNTdHJpbmcocikmJmcucHVzaCgiZG9tYWluPSIrciksbz09PSEwJiZnLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1nLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXFxccyopKCIrQSsiKT0oW147XSopIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIEF0KEEpe3JldHVybi9eKFthLXpdW2EtelxcZCtcXC0uXSo6KT9cXC9cXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIHR0KEEsdCl7cmV0dXJuIHQ/QS5yZXBsYWNlKC9cXC8/XFwvJC8sIiIpKyIvIit0LnJlcGxhY2UoL15cXC8rLywiIik6QX1mdW5jdGlvbiBnQShBLHQsZSl7bGV0IEk9IUF0KHQpO3JldHVybiBBJiYoSXx8ZT09ITEpP3R0KEEsdCk6dH12YXIganQ9QT0+QSBpbnN0YW5jZW9mIFM/ey4uLkF9OkE7ZnVuY3Rpb24gayhBLHQpe3Q9dHx8e307bGV0IGU9e307ZnVuY3Rpb24gSShhLHMsbixmKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KGEpJiZpLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZS5jYWxsKHtjYXNlbGVzczpmfSxhLHMpOmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlKHt9LHMpOmkuaXNBcnJheShzKT9zLnNsaWNlKCk6c31mdW5jdGlvbiByKGEscyxuLGYpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKGEpKXJldHVybiBJKHZvaWQgMCxhLG4sZil9ZWxzZSByZXR1cm4gSShhLHMsbixmKX1mdW5jdGlvbiBvKGEscyl7aWYoIWkuaXNVbmRlZmluZWQocykpcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIGcoYSxzKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChhKSlyZXR1cm4gSSh2b2lkIDAsYSl9ZWxzZSByZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gQyhhLHMsbil7aWYobiBpbiB0KXJldHVybiBJKGEscyk7aWYobiBpbiBBKXJldHVybiBJKHZvaWQgMCxhKX1sZXQgRT17dXJsOm8sbWV0aG9kOm8sZGF0YTpvLGJhc2VVUkw6Zyx0cmFuc2Zvcm1SZXF1ZXN0OmcsdHJhbnNmb3JtUmVzcG9uc2U6ZyxwYXJhbXNTZXJpYWxpemVyOmcsdGltZW91dDpnLHRpbWVvdXRNZXNzYWdlOmcsd2l0aENyZWRlbnRpYWxzOmcsd2l0aFhTUkZUb2tlbjpnLGFkYXB0ZXI6ZyxyZXNwb25zZVR5cGU6Zyx4c3JmQ29va2llTmFtZTpnLHhzcmZIZWFkZXJOYW1lOmcsb25VcGxvYWRQcm9ncmVzczpnLG9uRG93bmxvYWRQcm9ncmVzczpnLGRlY29tcHJlc3M6ZyxtYXhDb250ZW50TGVuZ3RoOmcsbWF4Qm9keUxlbmd0aDpnLGJlZm9yZVJlZGlyZWN0OmcsdHJhbnNwb3J0OmcsaHR0cEFnZW50OmcsaHR0cHNBZ2VudDpnLGNhbmNlbFRva2VuOmcsc29ja2V0UGF0aDpnLHJlc3BvbnNlRW5jb2Rpbmc6Zyx2YWxpZGF0ZVN0YXR1czpDLGhlYWRlcnM6KGEscyxuKT0+cihqdChhKSxqdChzKSxuLCEwKX07cmV0dXJuIGkuZm9yRWFjaChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LEEsdCkpLGZ1bmN0aW9uKHMpe2xldCBuPUVbc118fHIsZj1uKEFbc10sdFtzXSxzKTtpLmlzVW5kZWZpbmVkKGYpJiZuIT09Q3x8KGVbc109Zil9KSxlfXZhciBGQT1BPT57bGV0IHQ9ayh7fSxBKSx7ZGF0YTplLHdpdGhYU1JGVG9rZW46SSx4c3JmSGVhZGVyTmFtZTpyLHhzcmZDb29raWVOYW1lOm8saGVhZGVyczpnLGF1dGg6Q309dDt0LmhlYWRlcnM9Zz1TLmZyb20oZyksdC51cmw9dEEoZ0EodC5iYXNlVVJMLHQudXJsLHQuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplciksQyYmZy5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKEMudXNlcm5hbWV8fCIiKSsiOiIrKEMucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEMucGFzc3dvcmQpKToiIikpKTtsZXQgRTtpZihpLmlzRm9ybURhdGEoZSkpe2lmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52fHxoLmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilnLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZigoRT1nLmdldENvbnRlbnRUeXBlKCkpIT09ITEpe2xldFthLC4uLnNdPUU/RS5zcGxpdCgiOyIpLm1hcChuPT5uLnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pOltdO2cuc2V0Q29udGVudFR5cGUoW2F8fCJtdWx0aXBhcnQvZm9ybS1kYXRhIiwuLi5zXS5qb2luKCI7ICIpKX19aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJihJJiZpLmlzRnVuY3Rpb24oSSkmJihJPUkodCkpLEl8fEkhPT0hMSYmUHQodC51cmwpKSl7bGV0IGE9ciYmbyYmV3QucmVhZChvKTthJiZnLnNldChyLGEpfXJldHVybiB0fTt2YXIgSkk9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixadD1KSSYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsSSl7bGV0IHI9RkEoQSksbz1yLmRhdGEsZz1TLmZyb20oci5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOkMsb25VcGxvYWRQcm9ncmVzczpFLG9uRG93bmxvYWRQcm9ncmVzczphfT1yLHMsbixmLEIsUTtmdW5jdGlvbiBsKCl7QiYmQigpLFEmJlEoKSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiZyLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscyl9bGV0IGM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Mub3BlbihyLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHIudXJsLCEwKSxjLnRpbWVvdXQ9ci50aW1lb3V0O2Z1bmN0aW9uIGQoKXtpZighYylyZXR1cm47bGV0IG09Uy5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gYyYmYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksUj17ZGF0YTohQ3x8Qz09PSJ0ZXh0Inx8Qz09PSJqc29uIj9jLnJlc3BvbnNlVGV4dDpjLnJlc3BvbnNlLHN0YXR1czpjLnN0YXR1cyxzdGF0dXNUZXh0OmMuc3RhdHVzVGV4dCxoZWFkZXJzOm0sY29uZmlnOkEscmVxdWVzdDpjfTtvQShmdW5jdGlvbihUKXtlKFQpLGwoKX0sZnVuY3Rpb24oVCl7SShUKSxsKCl9LFIpLGM9bnVsbH0ib25sb2FkZW5kImluIGM/Yy5vbmxvYWRlbmQ9ZDpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFjfHxjLnJlYWR5U3RhdGUhPT00fHxjLnN0YXR1cz09PTAmJiEoYy5yZXNwb25zZVVSTCYmYy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoZCl9LGMub25hYm9ydD1mdW5jdGlvbigpe2MmJihJKG5ldyB1KCJSZXF1ZXN0IGFib3J0ZWQiLHUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbCl9LGMub25lcnJvcj1mdW5jdGlvbigpe0kobmV3IHUoIk5ldHdvcmsgRXJyb3IiLHUuRVJSX05FVFdPUkssQSxjKSksYz1udWxsfSxjLm9udGltZW91dD1mdW5jdGlvbigpe2xldCBIPXIudGltZW91dD8idGltZW91dCBvZiAiK3IudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixSPXIudHJhbnNpdGlvbmFsfHx3QTtyLnRpbWVvdXRFcnJvck1lc3NhZ2UmJihIPXIudGltZW91dEVycm9yTWVzc2FnZSksSShuZXcgdShILFIuY2xhcmlmeVRpbWVvdXRFcnJvcj91LkVUSU1FRE9VVDp1LkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGx9LG89PT12b2lkIDAmJmcuc2V0Q29udGVudFR5cGUobnVsbCksInNldFJlcXVlc3RIZWFkZXIiaW4gYyYmaS5mb3JFYWNoKGcudG9KU09OKCksZnVuY3Rpb24oSCxSKXtjLnNldFJlcXVlc3RIZWFkZXIoUixIKX0pLGkuaXNVbmRlZmluZWQoci53aXRoQ3JlZGVudGlhbHMpfHwoYy53aXRoQ3JlZGVudGlhbHM9ISFyLndpdGhDcmVkZW50aWFscyksQyYmQyE9PSJqc29uIiYmKGMucmVzcG9uc2VUeXBlPXIucmVzcG9uc2VUeXBlKSxhJiYoW2YsUV09XyhhLCEwKSxjLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixmKSksRSYmYy51cGxvYWQmJihbbixCXT1fKEUpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixuKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixCKSksKHIuY2FuY2VsVG9rZW58fHIuc2lnbmFsKSYmKHM9bT0+e2MmJihJKCFtfHxtLnR5cGU/bmV3IEwobnVsbCxBLGMpOm0pLGMuYWJvcnQoKSxjPW51bGwpfSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnN1YnNjcmliZShzKSxyLnNpZ25hbCYmKHIuc2lnbmFsLmFib3J0ZWQ/cygpOnIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixzKSkpO2xldCB5PXpBKHIudXJsKTtpZih5JiZoLnByb3RvY29scy5pbmRleE9mKHkpPT09LTEpe0kobmV3IHUoIlVuc3VwcG9ydGVkIHByb3RvY29sICIreSsiOiIsdS5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1jLnNlbmQob3x8bnVsbCl9KX07dmFyIEhJPShBLHQpPT57bGV0e2xlbmd0aDplfT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYodHx8ZSl7bGV0IEk9bmV3IEFib3J0Q29udHJvbGxlcixyLG89ZnVuY3Rpb24oYSl7aWYoIXIpe3I9ITAsQygpO2xldCBzPWEgaW5zdGFuY2VvZiBFcnJvcj9hOnRoaXMucmVhc29uO0kuYWJvcnQocyBpbnN0YW5jZW9mIHU/czpuZXcgTChzIGluc3RhbmNlb2YgRXJyb3I/cy5tZXNzYWdlOnMpKX19LGc9dCYmc2V0VGltZW91dCgoKT0+e2c9bnVsbCxvKG5ldyB1KGB0aW1lb3V0ICR7dH0gb2YgbXMgZXhjZWVkZWRgLHUuRVRJTUVET1VUKSl9LHQpLEM9KCk9PntBJiYoZyYmY2xlYXJUaW1lb3V0KGcpLGc9bnVsbCxBLmZvckVhY2goYT0+e2EudW5zdWJzY3JpYmU/YS51bnN1YnNjcmliZShvKTphLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixvKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChhPT5hLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvKSk7bGV0e3NpZ25hbDpFfT1JO3JldHVybiBFLnVuc3Vic2NyaWJlPSgpPT5pLmFzYXAoQyksRX19LFZ0PUhJO3ZhciBZST1mdW5jdGlvbiooQSx0KXtsZXQgZT1BLmJ5dGVMZW5ndGg7aWYoIXR8fGU8dCl7eWllbGQgQTtyZXR1cm59bGV0IEk9MCxyO2Zvcig7STxlOylyPUkrdCx5aWVsZCBBLnNsaWNlKEksciksST1yfSxxST1hc3luYyBmdW5jdGlvbiooQSx0KXtmb3IgYXdhaXQobGV0IGUgb2YgTUkoQSkpeWllbGQqWUkoZSx0KX0sTUk9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgdD1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOmUsdmFsdWU6SX09YXdhaXQgdC5yZWFkKCk7aWYoZSlicmVhazt5aWVsZCBJfX1maW5hbGx5e2F3YWl0IHQuY2FuY2VsKCl9fSxldD0oQSx0LGUsSSk9PntsZXQgcj1xSShBLHQpLG89MCxnLEM9RT0+e2d8fChnPSEwLEkmJkkoRSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKEUpe3RyeXtsZXR7ZG9uZTphLHZhbHVlOnN9PWF3YWl0IHIubmV4dCgpO2lmKGEpe0MoKSxFLmNsb3NlKCk7cmV0dXJufWxldCBuPXMuYnl0ZUxlbmd0aDtpZihlKXtsZXQgZj1vKz1uO2UoZil9RS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHMpKX1jYXRjaChhKXt0aHJvdyBDKGEpLGF9fSxjYW5jZWwoRSl7cmV0dXJuIEMoRSksci5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIE5BPXR5cGVvZiBmZXRjaD09ImZ1bmN0aW9uIiYmdHlwZW9mIFJlcXVlc3Q9PSJmdW5jdGlvbiImJnR5cGVvZiBSZXNwb25zZT09ImZ1bmN0aW9uIixfdD1OQSYmdHlwZW9mIFJlYWRhYmxlU3RyZWFtPT0iZnVuY3Rpb24iLEtJPU5BJiYodHlwZW9mIFRleHRFbmNvZGVyPT0iZnVuY3Rpb24iPyhBPT50PT5BLmVuY29kZSh0KSkobmV3IFRleHRFbmNvZGVyKTphc3luYyBBPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgUmVzcG9uc2UoQSkuYXJyYXlCdWZmZXIoKSkpLHp0PShBLC4uLnQpPT57dHJ5e3JldHVybiEhQSguLi50KX1jYXRjaHtyZXR1cm4hMX19LFRJPV90JiZ6dCgoKT0+e2xldCBBPSExLHQ9bmV3IFJlcXVlc3QoaC5vcmlnaW4se2JvZHk6bmV3IFJlYWRhYmxlU3RyZWFtLG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBBPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIEEmJiF0fSksWHQ9NjQqMTAyNCxJdD1fdCYmenQoKCk9PmkuaXNSZWFkYWJsZVN0cmVhbShuZXcgUmVzcG9uc2UoIiIpLmJvZHkpKSxSQT17c3RyZWFtOkl0JiYoQT0+QS5ib2R5KX07TkEmJihBPT57WyJ0ZXh0IiwiYXJyYXlCdWZmZXIiLCJibG9iIiwiZm9ybURhdGEiLCJzdHJlYW0iXS5mb3JFYWNoKHQ9PnshUkFbdF0mJihSQVt0XT1pLmlzRnVuY3Rpb24oQVt0XSk/ZT0+ZVt0XSgpOihlLEkpPT57dGhyb3cgbmV3IHUoYFJlc3BvbnNlIHR5cGUgXCcke3R9XCcgaXMgbm90IHN1cHBvcnRlZGAsdS5FUlJfTk9UX1NVUFBPUlQsSSl9KX0pfSkobmV3IFJlc3BvbnNlKTt2YXIgT0k9YXN5bmMgQT0+e2lmKEE9PW51bGwpcmV0dXJuIDA7aWYoaS5pc0Jsb2IoQSkpcmV0dXJuIEEuc2l6ZTtpZihpLmlzU3BlY0NvbXBsaWFudEZvcm0oQSkpcmV0dXJuKGF3YWl0IG5ldyBSZXF1ZXN0KGgub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6QX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoaS5pc0FycmF5QnVmZmVyVmlldyhBKXx8aS5pc0FycmF5QnVmZmVyKEEpKXJldHVybiBBLmJ5dGVMZW5ndGg7aWYoaS5pc1VSTFNlYXJjaFBhcmFtcyhBKSYmKEE9QSsiIiksaS5pc1N0cmluZyhBKSlyZXR1cm4oYXdhaXQgS0koQSkpLmJ5dGVMZW5ndGh9LHhJPWFzeW5jKEEsdCk9PntsZXQgZT1pLnRvRmluaXRlTnVtYmVyKEEuZ2V0Q29udGVudExlbmd0aCgpKTtyZXR1cm4gZT8/T0kodCl9LHZ0PU5BJiYoYXN5bmMgQT0+e2xldHt1cmw6dCxtZXRob2Q6ZSxkYXRhOkksc2lnbmFsOnIsY2FuY2VsVG9rZW46byx0aW1lb3V0Omcsb25Eb3dubG9hZFByb2dyZXNzOkMsb25VcGxvYWRQcm9ncmVzczpFLHJlc3BvbnNlVHlwZTphLGhlYWRlcnM6cyx3aXRoQ3JlZGVudGlhbHM6bj0ic2FtZS1vcmlnaW4iLGZldGNoT3B0aW9uczpmfT1GQShBKTthPWE/KGErIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBCPVZ0KFtyLG8mJm8udG9BYm9ydFNpZ25hbCgpXSxnKSxRLGw9QiYmQi51bnN1YnNjcmliZSYmKCgpPT57Qi51bnN1YnNjcmliZSgpfSksYzt0cnl7aWYoRSYmVEkmJmUhPT0iZ2V0IiYmZSE9PSJoZWFkIiYmKGM9YXdhaXQgeEkocyxJKSkhPT0wKXtsZXQgUj1uZXcgUmVxdWVzdCh0LHttZXRob2Q6IlBPU1QiLGJvZHk6SSxkdXBsZXg6ImhhbGYifSkscTtpZihpLmlzRm9ybURhdGEoSSkmJihxPVIuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmcy5zZXRDb250ZW50VHlwZShxKSxSLmJvZHkpe2xldFtULEJBXT12QShjLF8oJEEoRSkpKTtJPWV0KFIuYm9keSxYdCxULEJBKX19aS5pc1N0cmluZyhuKXx8KG49bj8iaW5jbHVkZSI6Im9taXQiKTtsZXQgZD0iY3JlZGVudGlhbHMiaW4gUmVxdWVzdC5wcm90b3R5cGU7UT1uZXcgUmVxdWVzdCh0LHsuLi5mLHNpZ25hbDpCLG1ldGhvZDplLnRvVXBwZXJDYXNlKCksaGVhZGVyczpzLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6SSxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOmQ/bjp2b2lkIDB9KTtsZXQgeT1hd2FpdCBmZXRjaChRKSxtPUl0JiYoYT09PSJzdHJlYW0ifHxhPT09InJlc3BvbnNlIik7aWYoSXQmJihDfHxtJiZsKSl7bGV0IFI9e307WyJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyJdLmZvckVhY2goYXQ9PntSW2F0XT15W2F0XX0pO2xldCBxPWkudG9GaW5pdGVOdW1iZXIoeS5oZWFkZXJzLmdldCgiY29udGVudC1sZW5ndGgiKSksW1QsQkFdPUMmJnZBKHEsXygkQShDKSwhMCkpfHxbXTt5PW5ldyBSZXNwb25zZShldCh5LmJvZHksWHQsVCwoKT0+e0JBJiZCQSgpLGwmJmwoKX0pLFIpfWE9YXx8InRleHQiO2xldCBIPWF3YWl0IFJBW2kuZmluZEtleShSQSxhKXx8InRleHQiXSh5LEEpO3JldHVybiFtJiZsJiZsKCksYXdhaXQgbmV3IFByb21pc2UoKFIscSk9PntvQShSLHEse2RhdGE6SCxoZWFkZXJzOlMuZnJvbSh5LmhlYWRlcnMpLHN0YXR1czp5LnN0YXR1cyxzdGF0dXNUZXh0Onkuc3RhdHVzVGV4dCxjb25maWc6QSxyZXF1ZXN0OlF9KX0pfWNhdGNoKGQpe3Rocm93IGwmJmwoKSxkJiZkLm5hbWU9PT0iVHlwZUVycm9yIiYmL2ZldGNoL2kudGVzdChkLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IHUoIk5ldHdvcmsgRXJyb3IiLHUuRVJSX05FVFdPUkssQSxRKSx7Y2F1c2U6ZC5jYXVzZXx8ZH0pOnUuZnJvbShkLGQmJmQuY29kZSxBLFEpfX0pO3ZhciBydD17aHR0cDp5QSx4aHI6WnQsZmV0Y2g6dnR9O2kuZm9yRWFjaChydCwoQSx0KT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOnR9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6dH0pfX0pO3ZhciAkdD1BPT5gLSAke0F9YCxQST1BPT5pLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsVUE9e2dldEFkYXB0ZXI6QT0+e0E9aS5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6dH09QSxlLEkscj17fTtmb3IobGV0IG89MDtvPHQ7bysrKXtlPUFbb107bGV0IGc7aWYoST1lLCFQSShlKSYmKEk9cnRbKGc9U3RyaW5nKGUpKS50b0xvd2VyQ2FzZSgpXSxJPT09dm9pZCAwKSl0aHJvdyBuZXcgdShgVW5rbm93biBhZGFwdGVyIFwnJHtnfVwnYCk7aWYoSSlicmVhaztyW2d8fCIlMjMiK29dPUl9aWYoIUkpe2xldCBvPU9iamVjdC5lbnRyaWVzKHIpLm1hcCgoW0MsRV0pPT5gYWRhcHRlciAke0N9IGArKEU9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxnPXQ/by5sZW5ndGg+MT9gc2luY2UgOiUwQWArby5tYXAoJHQpLmpvaW4oYCUwQWApOiIgIiskdChvWzBdKToiYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQiO3Rocm93IG5ldyB1KCJUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIrZywiRVJSX05PVF9TVVBQT1JUIil9cmV0dXJuIEl9LGFkYXB0ZXJzOnJ0fTtmdW5jdGlvbiBvdChBKXtpZihBLmNhbmNlbFRva2VuJiZBLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxBLnNpZ25hbCYmQS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgTChudWxsLEEpfWZ1bmN0aW9uIEdBKEEpe3JldHVybiBvdChBKSxBLmhlYWRlcnM9Uy5mcm9tKEEuaGVhZGVycyksQS5kYXRhPUlBLmNhbGwoQSxBLnRyYW5zZm9ybVJlcXVlc3QpLFsicG9zdCIsInB1dCIsInBhdGNoIl0uaW5kZXhPZihBLm1ldGhvZCkhPT0tMSYmQS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCExKSxVQS5nZXRBZGFwdGVyKEEuYWRhcHRlcnx8Vi5hZGFwdGVyKShBKS50aGVuKGZ1bmN0aW9uKEkpe3JldHVybiBvdChBKSxJLmRhdGE9SUEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsSSksSS5oZWFkZXJzPVMuZnJvbShJLmhlYWRlcnMpLEl9LGZ1bmN0aW9uKEkpe3JldHVybiByQShJKXx8KG90KEEpLEkmJkkucmVzcG9uc2UmJihJLnJlc3BvbnNlLmRhdGE9SUEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsSS5yZXNwb25zZSksSS5yZXNwb25zZS5oZWFkZXJzPVMuZnJvbShJLnJlc3BvbnNlLmhlYWRlcnMpKSksUHJvbWlzZS5yZWplY3QoSSl9KX12YXIga0E9IjEuOC40Ijt2YXIgTEE9e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChBLHQpPT57TEFbQV09ZnVuY3Rpb24oSSl7cmV0dXJuIHR5cGVvZiBJPT09QXx8ImEiKyh0PDE/Im4gIjoiICIpK0F9fSk7dmFyIEFlPXt9O0xBLnRyYW5zaXRpb25hbD1mdW5jdGlvbih0LGUsSSl7ZnVuY3Rpb24gcihvLGcpe3JldHVybiJbQXhpb3MgdiIra0ErIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiBcJyIrbysiXCciK2crKEk/Ii4gIitJOiIiKX1yZXR1cm4obyxnLEMpPT57aWYodD09PSExKXRocm93IG5ldyB1KHIoZywiIGhhcyBiZWVuIHJlbW92ZWQiKyhlPyIgaW4gIitlOiIiKSksdS5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIGUmJiFBZVtnXSYmKEFlW2ddPSEwLGNvbnNvbGUud2FybihyKGcsIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK2UrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksdD90KG8sZyxDKTohMH19O0xBLnNwZWxsaW5nPWZ1bmN0aW9uKHQpe3JldHVybihlLEkpPT4oY29uc29sZS53YXJuKGAke0l9IGlzIGxpa2VseSBhIG1pc3NwZWxsaW5nIG9mICR7dH1gKSwhMCl9O2Z1bmN0aW9uIFdJKEEsdCxlKXtpZih0eXBlb2YgQSE9Im9iamVjdCIpdGhyb3cgbmV3IHUoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2xldCBJPU9iamVjdC5rZXlzKEEpLHI9SS5sZW5ndGg7Zm9yKDtyLS0gPjA7KXtsZXQgbz1JW3JdLGc9dFtvXTtpZihnKXtsZXQgQz1BW29dLEU9Qz09PXZvaWQgMHx8ZyhDLG8sQSk7aWYoRSE9PSEwKXRocm93IG5ldyB1KCJvcHRpb24gIitvKyIgbXVzdCBiZSAiK0UsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYoZSE9PSEwKXRocm93IG5ldyB1KCJVbmtub3duIG9wdGlvbiAiK28sdS5FUlJfQkFEX09QVElPTil9fXZhciBpQT17YXNzZXJ0T3B0aW9uczpXSSx2YWxpZGF0b3JzOkxBfTt2YXIgYj1pQS52YWxpZGF0b3JzLHo9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5kZWZhdWx0cz10LHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBQQSxyZXNwb25zZTpuZXcgUEF9fWFzeW5jIHJlcXVlc3QodCxlKXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QodCxlKX1jYXRjaChJKXtpZihJIGluc3RhbmNlb2YgRXJyb3Ipe2xldCByPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHIpOnI9bmV3IEVycm9yO2xldCBvPXIuc3RhY2s/ci5zdGFjay5yZXBsYWNlKC9eLitcXG4vLCIiKToiIjt0cnl7SS5zdGFjaz9vJiYhU3RyaW5nKEkuc3RhY2spLmVuZHNXaXRoKG8ucmVwbGFjZSgvXi4rXFxuLitcXG4vLCIiKSkmJihJLnN0YWNrKz1gJTBBYCtvKTpJLnN0YWNrPW99Y2F0Y2h7fX10aHJvdyBJfX1fcmVxdWVzdCh0LGUpe3R5cGVvZiB0PT0ic3RyaW5nIj8oZT1lfHx7fSxlLnVybD10KTplPXR8fHt9LGU9ayh0aGlzLmRlZmF1bHRzLGUpO2xldHt0cmFuc2l0aW9uYWw6SSxwYXJhbXNTZXJpYWxpemVyOnIsaGVhZGVyczpvfT1lO0khPT12b2lkIDAmJmlBLmFzc2VydE9wdGlvbnMoSSx7c2lsZW50SlNPTlBhcnNpbmc6Yi50cmFuc2l0aW9uYWwoYi5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpiLnRyYW5zaXRpb25hbChiLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6Yi50cmFuc2l0aW9uYWwoYi5ib29sZWFuKX0sITEpLHIhPW51bGwmJihpLmlzRnVuY3Rpb24ocik/ZS5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6cn06aUEuYXNzZXJ0T3B0aW9ucyhyLHtlbmNvZGU6Yi5mdW5jdGlvbixzZXJpYWxpemU6Yi5mdW5jdGlvbn0sITApKSxlLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD9lLmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6ZS5hbGxvd0Fic29sdXRlVXJscz0hMCksaUEuYXNzZXJ0T3B0aW9ucyhlLHtiYXNlVXJsOmIuc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOmIuc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLGUubWV0aG9kPShlLm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBnPW8mJmkubWVyZ2Uoby5jb21tb24sb1tlLm1ldGhvZF0pO28mJmkuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxRPT57ZGVsZXRlIG9bUV19KSxlLmhlYWRlcnM9Uy5jb25jYXQoZyxvKTtsZXQgQz1bXSxFPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihsKXt0eXBlb2YgbC5ydW5XaGVuPT0iZnVuY3Rpb24iJiZsLnJ1bldoZW4oZSk9PT0hMXx8KEU9RSYmbC5zeW5jaHJvbm91cyxDLnVuc2hpZnQobC5mdWxmaWxsZWQsbC5yZWplY3RlZCkpfSk7bGV0IGE9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihsKXthLnB1c2gobC5mdWxmaWxsZWQsbC5yZWplY3RlZCl9KTtsZXQgcyxuPTAsZjtpZighRSl7bGV0IFE9W0dBLmJpbmQodGhpcyksdm9pZCAwXTtmb3IoUS51bnNoaWZ0LmFwcGx5KFEsQyksUS5wdXNoLmFwcGx5KFEsYSksZj1RLmxlbmd0aCxzPVByb21pc2UucmVzb2x2ZShlKTtuPGY7KXM9cy50aGVuKFFbbisrXSxRW24rK10pO3JldHVybiBzfWY9Qy5sZW5ndGg7bGV0IEI9ZTtmb3Iobj0wO248Zjspe2xldCBRPUNbbisrXSxsPUNbbisrXTt0cnl7Qj1RKEIpfWNhdGNoKGMpe2wuY2FsbCh0aGlzLGMpO2JyZWFrfX10cnl7cz1HQS5jYWxsKHRoaXMsQil9Y2F0Y2goUSl7cmV0dXJuIFByb21pc2UucmVqZWN0KFEpfWZvcihuPTAsZj1hLmxlbmd0aDtuPGY7KXM9cy50aGVuKGFbbisrXSxhW24rK10pO3JldHVybiBzfWdldFVyaSh0KXt0PWsodGhpcy5kZWZhdWx0cyx0KTtsZXQgZT1nQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIHRBKGUsdC5wYXJhbXMsdC5wYXJhbXNTZXJpYWxpemVyKX19O2kuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24odCl7ei5wcm90b3R5cGVbdF09ZnVuY3Rpb24oZSxJKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGsoSXx8e30se21ldGhvZDp0LHVybDplLGRhdGE6KEl8fHt9KS5kYXRhfSkpfX0pO2kuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoSSl7cmV0dXJuIGZ1bmN0aW9uKG8sZyxDKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGsoQ3x8e30se21ldGhvZDp0LGhlYWRlcnM6ST97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6byxkYXRhOmd9KSl9fXoucHJvdG90eXBlW3RdPWUoKSx6LnByb3RvdHlwZVt0KyJGb3JtIl09ZSghMCl9KTt2YXIgc0E9ejt2YXIgZ3Q9Y2xhc3MgQXtjb25zdHJ1Y3Rvcih0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IGU7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG8pe2U9b30pO2xldCBJPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4ocj0+e2lmKCFJLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBvPUkuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtvLS0gPjA7KUkuX2xpc3RlbmVyc1tvXShyKTtJLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPXI9PntsZXQgbyxnPW5ldyBQcm9taXNlKEM9PntJLnN1YnNjcmliZShDKSxvPUN9KS50aGVuKHIpO3JldHVybiBnLmNhbmNlbD1mdW5jdGlvbigpe0kudW5zdWJzY3JpYmUobyl9LGd9LHQoZnVuY3Rpb24obyxnLEMpe0kucmVhc29ufHwoSS5yZWFzb249bmV3IEwobyxnLEMpLGUoSS5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUodCl7aWYodGhpcy5yZWFzb24pe3QodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2godCk6dGhpcy5fbGlzdGVuZXJzPVt0XX11bnN1YnNjcmliZSh0KXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgZT10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZih0KTtlIT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UoZSwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IHQ9bmV3IEFib3J0Q29udHJvbGxlcixlPUk9Pnt0LmFib3J0KEkpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUoZSksdC5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUoZSksdC5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCB0O3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihyKXt0PXJ9KSxjYW5jZWw6dH19fSx0ZT1ndDtmdW5jdGlvbiBpdChBKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIEEuYXBwbHkobnVsbCxlKX19ZnVuY3Rpb24gc3QoQSl7cmV0dXJuIGkuaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIG50PXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhudCkuZm9yRWFjaCgoW0EsdF0pPT57bnRbdF09QX0pO3ZhciBlZT1udDtmdW5jdGlvbiBJZShBKXtsZXQgdD1uZXcgc0EoQSksZT12KHNBLnByb3RvdHlwZS5yZXF1ZXN0LHQpO3JldHVybiBpLmV4dGVuZChlLHNBLnByb3RvdHlwZSx0LHthbGxPd25LZXlzOiEwfSksaS5leHRlbmQoZSx0LG51bGwse2FsbE93bktleXM6ITB9KSxlLmNyZWF0ZT1mdW5jdGlvbihyKXtyZXR1cm4gSWUoayhBLHIpKX0sZX12YXIgdz1JZShWKTt3LkF4aW9zPXNBO3cuQ2FuY2VsZWRFcnJvcj1MO3cuQ2FuY2VsVG9rZW49dGU7dy5pc0NhbmNlbD1yQTt3LlZFUlNJT049a0E7dy50b0Zvcm1EYXRhPU07dy5BeGlvc0Vycm9yPXU7dy5DYW5jZWw9dy5DYW5jZWxlZEVycm9yO3cuYWxsPWZ1bmN0aW9uKHQpe3JldHVybiBQcm9taXNlLmFsbCh0KX07dy5zcHJlYWQ9aXQ7dy5pc0F4aW9zRXJyb3I9c3Q7dy5tZXJnZUNvbmZpZz1rO3cuQXhpb3NIZWFkZXJzPVM7dy5mb3JtVG9KU09OPUE9PnBBKGkuaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7dy5nZXRBZGFwdGVyPVVBLmdldEFkYXB0ZXI7dy5IdHRwU3RhdHVzQ29kZT1lZTt3LmRlZmF1bHQ9dzt2YXIgYkE9dzt2YXJ7QXhpb3M6QmksQXhpb3NFcnJvcjphaSxDYW5jZWxlZEVycm9yOlFpLGlzQ2FuY2VsOkVpLENhbmNlbFRva2VuOmNpLFZFUlNJT046ZmksYWxsOmxpLENhbmNlbDp1aSxpc0F4aW9zRXJyb3I6RGksc3ByZWFkOmRpLHRvRm9ybURhdGE6aGksQXhpb3NIZWFkZXJzOnlpLEh0dHBTdGF0dXNDb2RlOm1pLGZvcm1Ub0pTT046d2ksZ2V0QWRhcHRlcjpwaSxtZXJnZUNvbmZpZzpTaX09YkE7dmFyIG5BLFksQnQsQ3Q9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXtCdD1uZXcgVWludDhBcnJheShZLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sSkE9Y2xhc3N7aW5pdCgpe3JldHVybiBuQXx8KHR5cGVvZiBmZXRjaDwidSI/bkE9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIityZSkudGhlbih0PT50LmFycmF5QnVmZmVyKCkpLnRoZW4odD0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUodCxDdCkpLnRoZW4odGhpcy5faW5pdCk6bkE9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20ocmUsImJhc2U2NCIpLEN0KS50aGVuKHRoaXMuX2luaXQpLG5BKX1faW5pdCh0KXtZPXQuaW5zdGFuY2UsQ3QuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKHQsZT0wKXtpZighWSl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgST10LmJ5dGVMZW5ndGgscj1ZLmV4cG9ydHMubWFsbG9jKEkpO0J0LnNldCh0LHIpLGU9ZXx8TnVtYmVyKFkuZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKHIsSSkpO2xldCBvPVkuZXhwb3J0cy5tYWxsb2MoZSksZz1ZLmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKG8sZSxyLEkpLEM9QnQuc2xpY2UobyxvK2cpO3JldHVybiBZLmV4cG9ydHMuZnJlZShyKSxZLmV4cG9ydHMuZnJlZShvKSxDfX0scmU9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgb2U9bmV3IEpBLGdlPSExO2FzeW5jIGZ1bmN0aW9uIGpJKEEsdCxlKXtsZXQgST1udWxsO3R5cGVvZiBBIT0ic3RyaW5nIj9JPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9JPUE6ST1gJHt0fS8ke0F9YCxJLmVuZHNXaXRoKCIuanMiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC0zKSksSS5lbmRzV2l0aCgiLndhc20iKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC01KSksSS5lbmRzV2l0aCgiLndhc20uenN0IikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtOSkpO2xldCByPWAke0l9Lndhc21gLG89YXdhaXQgYkEuZ2V0KGAke3J9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczplfSk7Z2V8fChhd2FpdCBvZS5pbml0KCksZ2U9ITApO2xldCBDPW9lLmRlY29kZShuZXcgVWludDhBcnJheShvLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtJfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5OkN9KX12YXIgaWU9akk7dmFyIEhBPW5ldyBNYXA7YXN5bmMgZnVuY3Rpb24gWkkoQSx0LGUpe2xldCBJPUEscj1BLG89bnVsbDtyZXR1cm4gdHlwZW9mIEEhPSJzdHJpbmciJiYoST1uZXcgVVJMKEEuaHJlZikscj1JLmhyZWYpLEhBLmhhcyhyKT9vPWF3YWl0IEhBLmdldChyKTooSEEuc2V0KHIsaWUoSSx0LGUpKSxvPWF3YWl0IEhBLmdldChyKSksb312YXIgc2U9Wkk7dmFyIFZJPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxEPVZJO3ZhciBYST17SW50ODoiaW50OCIsVUludDg6InVpbnQ4IixJbnQxNjoiaW50MTYiLFVJbnQxNjoidWludDE2IixJbnQzMjoiaW50MzIiLFVJbnQzMjoidWludDMyIixJbnQ2NDoiaW50NjQiLFVJbnQ2NDoidWludDY0IixTaXplVmFsdWVUeXBlOiJ1aW50NjQiLElkZW50aWZpZXJUeXBlOiJ1aW50NjQiLEluZGV4VmFsdWVUeXBlOiJpbnQ2NCIsT2Zmc2V0VmFsdWVUeXBlOiJpbnQ2NCJ9LE49WEk7dmFyIF9JPXtGbG9hdDMyOiJmbG9hdDMyIixGbG9hdDY0OiJmbG9hdDY0IixTcGFjZVByZWNpc2lvblR5cGU6ImZsb2F0NjQifSxQPV9JO2Z1bmN0aW9uIHpJKEEsdCl7bGV0IGU9bnVsbDtzd2l0Y2goQSl7Y2FzZSBOLlVJbnQ4OntlPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgTi5JbnQ4OntlPW5ldyBJbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBOLlVJbnQxNjp7ZT1uZXcgVWludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBOLkludDE2OntlPW5ldyBJbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgTi5VSW50MzI6e2U9bmV3IFVpbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgTi5JbnQzMjp7ZT1uZXcgSW50MzJBcnJheSh0KTticmVha31jYXNlIE4uVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdVaW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgTi5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdJbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBQLkZsb2F0MzI6e2U9bmV3IEZsb2F0MzJBcnJheSh0KTticmVha31jYXNlIFAuRmxvYXQ2NDp7ZT1uZXcgRmxvYXQ2NEFycmF5KHQpO2JyZWFrfWNhc2UibnVsbCI6e2U9bnVsbDticmVha31jYXNlIG51bGw6e2U9bnVsbDticmVha31kZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZSBpcyBub3Qgc3VwcG9ydGVkIGFzIGEgVHlwZWRBcnJheSIpfXJldHVybiBlfXZhciBKPXpJO3ZhciBCZT10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixuZT1uZXcgVGV4dEVuY29kZXIsQ2U9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIHZJKEEsdCl7bGV0IGU9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0sST1BLmZzX29wZW4odCxlLmZsYWdzKSxvPUEuZnNfc3RhdCh0KS5zaXplLGc9bnVsbDtCZT9nPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihvKTpnPW5ldyBBcnJheUJ1ZmZlcihvKTtsZXQgQz1uZXcgVWludDhBcnJheShnKTtyZXR1cm4gQS5mc19yZWFkKEksQywwLG8sMCksQS5mc19jbG9zZShJKSxDfWZ1bmN0aW9uIGFlKEEsdCxlKXtsZXQgST1udWxsO0JlP0k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKGUpOkk9bmV3IEFycmF5QnVmZmVyKGUpO2xldCByPW5ldyBVaW50OEFycmF5KEkpLG89bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLHQsZSk7cmV0dXJuIHIuc2V0KG8pLHJ9ZnVuY3Rpb24gcChBLHQsZSxJKXtsZXQgcj0wO3JldHVybiB0IT09bnVsbCYmKHI9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxJLHQuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkodC5idWZmZXIpLHIpKSxyfWZ1bmN0aW9uIEsoQSx0LGUpe2xldCBJPUpTT04uc3RyaW5naWZ5KHQpLHI9QS5sZW5ndGhCeXRlc1VURjgoSSkrMSxvPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxyXSk7QS5zdHJpbmdUb1VURjgoSSxvLHIpfWZ1bmN0aW9uIEYoQSx0LGUsSSl7bGV0IHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksbz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxnPWFlKEEscixvKTtyZXR1cm4gSihJLGcuYnVmZmVyKX1mdW5jdGlvbiBDQShBLHQpe2xldCBlPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsdF0pLEk9QS5VVEY4VG9TdHJpbmcoZSk7cmV0dXJuIEpTT04ucGFyc2UoSSl9ZnVuY3Rpb24gJEkoQSx0LGUsSSl7SSE9bnVsbCYmSS5sZW5ndGg+MCYmSS5mb3JFYWNoKGZ1bmN0aW9uKGEscyl7c3dpdGNoKGEudHlwZSl7Y2FzZSBELlRleHRTdHJlYW06e2xldCBuPW5lLmVuY29kZShhLmRhdGEuZGF0YSksZj1wKEEsbixzLDApLEI9e3NpemU6bi5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtLKEEsQixzKTticmVha31jYXNlIEQuSnNvbkNvbXBhdGlibGU6e2xldCBuPW5lLmVuY29kZShKU09OLnN0cmluZ2lmeShhLmRhdGEpKSxmPXAoQSxuLHMsMCksQj17c2l6ZTpuLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O0soQSxCLHMpO2JyZWFrfWNhc2UgRC5CaW5hcnlTdHJlYW06e2xldCBuPWEuZGF0YS5kYXRhLGY9cChBLG4scywwKSxCPXtzaXplOm4uYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07SyhBLEIscyk7YnJlYWt9Y2FzZSBELlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShhLmRhdGEucGF0aCxhLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBELkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKGEuZGF0YS5wYXRoLGEuZGF0YS5kYXRhKTticmVha31jYXNlIEQuSW1hZ2U6e2xldCBuPWEuZGF0YSxmPXAoQSxuLmRhdGEscywwKSxCPXAoQSxuLmRpcmVjdGlvbixzLDEpLFE9dHlwZW9mIG4ubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20obi5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGw9e2ltYWdlVHlwZTpuLmltYWdlVHlwZSxuYW1lOm4ubmFtZSxvcmlnaW46bi5vcmlnaW4sc3BhY2luZzpuLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLHNpemU6bi5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsbWV0YWRhdGE6UX07SyhBLGwscyk7YnJlYWt9Y2FzZSBELk1lc2g6e2xldCBuPWEuZGF0YSxmPXAoQSxuLnBvaW50cyxzLDApLEI9cChBLG4uY2VsbHMscywxKSxRPXAoQSxuLnBvaW50RGF0YSxzLDIpLGw9cChBLG4uY2VsbERhdGEscywzKSxjPXttZXNoVHlwZTpuLm1lc2hUeXBlLG5hbWU6bi5uYW1lLG51bWJlck9mUG9pbnRzOm4ubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLG51bWJlck9mQ2VsbHM6bi5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLGNlbGxCdWZmZXJTaXplOm4uY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczpuLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczpuLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07SyhBLGMscyk7YnJlYWt9Y2FzZSBELlBvaW50U2V0OntsZXQgbj1hLmRhdGEsZj1wKEEsbi5wb2ludHMscywwKSxCPXAoQSxuLnBvaW50RGF0YSxzLDEpLFE9e3BvaW50U2V0VHlwZTpuLnBvaW50U2V0VHlwZSxuYW1lOm4ubmFtZSxudW1iZXJPZlBvaW50czpuLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCxudW1iZXJPZlBvaW50UGl4ZWxzOm4ubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWB9O0soQSxRLHMpO2JyZWFrfWNhc2UgRC5UcmFuc2Zvcm1MaXN0OntsZXQgbj1hLmRhdGEsZj1bXSxCPTA7bi5mb3JFYWNoKFE9PntsZXQgbD0iIixjPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihsPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7cChBLFEuZml4ZWRQYXJhbWV0ZXJzLHMsQil9YCxCKz0xLGM9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtwKEEsUS5wYXJhbWV0ZXJzLHMsQil9YCxCKz0xKTtsZXQgZD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpjLGZpeGVkUGFyYW1ldGVyczpsfTtmLnB1c2goZCl9KSxLKEEsZixzKTticmVha31jYXNlIEQuUG9seURhdGE6e2xldCBuPWEuZGF0YSxmPXAoQSxuLnBvaW50cyxzLDApLEI9cChBLG4udmVydGljZXMscywxKSxRPXAoQSxuLmxpbmVzLHMsMiksbD1wKEEsbi5wb2x5Z29ucyxzLDMpLGM9cChBLG4udHJpYW5nbGVTdHJpcHMscyw0KSxkPXAoQSxuLnBvaW50RGF0YSxzLDUpLHk9cChBLG4ucG9pbnREYXRhLHMsNiksbT17cG9seURhdGFUeXBlOm4ucG9seURhdGFUeXBlLG5hbWU6bi5uYW1lLG51bWJlck9mUG9pbnRzOm4ubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLHZlcnRpY2VzQnVmZmVyU2l6ZTpuLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxsaW5lc0J1ZmZlclNpemU6bi5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOm4ucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTpuLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOm4ubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtkfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOm4ubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7eX1gfTtLKEEsbSxzKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgcj1BLnN0YWNrU2F2ZSgpLG89MDt0cnl7bz1BLmNhbGxNYWluKHQuc2xpY2UoKSl9Y2F0Y2goYSl7dGhyb3cgdHlwZW9mIGE9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoYSkpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksYX1maW5hbGx5e0Euc3RhY2tSZXN0b3JlKHIpfWxldCBnPUEuZ2V0TW9kdWxlU3Rkb3V0KCksQz1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIGUhPW51bGwmJmUubGVuZ3RoPjAmJm89PT0wJiZlLmZvckVhY2goZnVuY3Rpb24oYSxzKXtsZXQgbj1udWxsO3N3aXRjaChhLnR5cGUpe2Nhc2UgRC5UZXh0U3RyZWFtOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGw9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEIsUSk7bj17ZGF0YTpDZS5kZWNvZGUobCl9O2JyZWFrfWNhc2UgRC5Kc29uQ29tcGF0aWJsZTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxsPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixCLFEpO249SlNPTi5wYXJzZShDZS5kZWNvZGUobCkpO2JyZWFrfWNhc2UgRC5CaW5hcnlTdHJlYW06e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSk7bj17ZGF0YTphZShBLEIsUSl9O2JyZWFrfWNhc2UgRC5UZXh0RmlsZTp7bj17cGF0aDphLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoYS5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIEQuQmluYXJ5RmlsZTp7bj17cGF0aDphLmRhdGEucGF0aCxkYXRhOnZJKEEsYS5kYXRhLnBhdGgpfTticmVha31jYXNlIEQuSW1hZ2U6e2xldCBCPUNBKEEscyk7Qi5kYXRhPUYoQSxzLDAsQi5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksQi5kaXJlY3Rpb249RihBLHMsMSxQLkZsb2F0NjQpLEIubWV0YWRhdGE9bmV3IE1hcChCLm1ldGFkYXRhKSxuPUI7YnJlYWt9Y2FzZSBELk1lc2g6e2xldCBCPUNBKEEscyk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPUYoQSxzLDAsQi5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkIucG9pbnRzPUooQi5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mQ2VsbHM+MD9CLmNlbGxzPUYoQSxzLDEsQi5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6Qi5jZWxscz1KKEIubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1GKEEscywyLEIubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkIucG9pbnREYXRhPUooQi5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qi5jZWxsRGF0YT1GKEEscywzLEIubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5jZWxsRGF0YT1KKEIubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLG49QjticmVha31jYXNlIEQuUG9pbnRTZXQ6e2xldCBCPUNBKEEscyk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPUYoQSxzLDAsQi5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpCLnBvaW50cz1KKEIucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPUYoQSxzLDEsQi5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkIucG9pbnREYXRhPUooQi5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuPUI7YnJlYWt9Y2FzZSBELlRyYW5zZm9ybUxpc3Q6e2xldCBCPUNBKEEscyksUT0wO0IuZm9yRWFjaCgobCxjKT0+e2wudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihsLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihCW2NdLmZpeGVkUGFyYW1ldGVycz1GKEEscyxRLFAuRmxvYXQ2NCkpLFErPTEsbC5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKEJbY10ucGFyYW1ldGVycz1GKEEscyxRLGwudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxuPUI7YnJlYWt9Y2FzZSBELlBvbHlEYXRhOntsZXQgQj1DQShBLHMpO0IubnVtYmVyT2ZQb2ludHM+MD9CLnBvaW50cz1GKEEscywwLFAuRmxvYXQzMik6Qi5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxCLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP0IudmVydGljZXM9RihBLHMsMSxOLlVJbnQzMik6Qi52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksQi5saW5lc0J1ZmZlclNpemU+MD9CLmxpbmVzPUYoQSxzLDIsTi5VSW50MzIpOkIubGluZXM9bmV3IFVpbnQzMkFycmF5LEIucG9seWdvbnNCdWZmZXJTaXplPjA/Qi5wb2x5Z29ucz1GKEEscywzLE4uVUludDMyKTpCLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxCLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP0IudHJpYW5nbGVTdHJpcHM9RihBLHMsNCxOLlVJbnQzMik6Qi50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9RihBLHMsNSxCLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SihCLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/Qi5jZWxsRGF0YT1GKEEscyw2LEIucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkIuY2VsbERhdGE9SihCLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksbj1CO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IGY9e3R5cGU6YS50eXBlLGRhdGE6bn07RS5wdXNoKGYpfSkse3JldHVyblZhbHVlOm8sc3Rkb3V0Omcsc3RkZXJyOkMsb3V0cHV0czpFfX12YXIgUWU9JEk7dmFyIEFyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiB0cihBLHQpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IGU9W107Zm9yKGxldCBJPTA7STxBLmxlbmd0aDtJKyspe2xldCByPWVyKEFbSV0sdCk7ciE9PW51bGwmJmUucHVzaChyKX1yZXR1cm4gZX1mdW5jdGlvbiBlcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IGU9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/ZT1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJihlPUEpLEFyJiZlIGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDp0P2U6ZS5zbGljZSgwKX12YXIgRWU9dHI7ZnVuY3Rpb24gSXIoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIGNlPUlyO2Z1bmN0aW9uIHJyKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBmZT1ycjtmdW5jdGlvbiBvcihBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgbGU9b3I7YXN5bmMgZnVuY3Rpb24gZ3IoQSx0LGUsSSl7bGV0IHI9UWUoQSx0LGUsSSksbz1bXTtyZXR1cm4gci5vdXRwdXRzLmZvckVhY2goZnVuY3Rpb24oZyl7aWYoZy50eXBlPT09RC5CaW5hcnlTdHJlYW18fGcudHlwZT09PUQuQmluYXJ5RmlsZSl7bGV0IEM9Zy5kYXRhO28ucHVzaChDKX1lbHNlIGlmKGcudHlwZT09PUQuSW1hZ2Upe2xldCBDPWcuZGF0YTtvLnB1c2goLi4uY2UoQykpfWVsc2UgaWYoZy50eXBlPT09RC5NZXNoKXtsZXQgQz1nLmRhdGE7by5wdXNoKC4uLmZlKEMpKX1lbHNlIGlmKGcudHlwZT09PUQuUG9seURhdGEpe2xldCBDPWcuZGF0YTtvLnB1c2goLi4ubGUoQykpfX0pLE1BKHIsRWUobywhMCkpfXZhciB1ZT1ncjt2YXIgaXI9e3J1blBpcGVsaW5lOmFzeW5jIGZ1bmN0aW9uKEEsdCxlLEkscixvKXtsZXQgZz1hd2FpdCBzZShBLHQsbyk7cmV0dXJuIGF3YWl0IHVlKGcsZSxJLHIpfX07bEEoaXIpOyUwQS8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246JTBBJTBBY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczolMEEgICgqKiUwQSAgICogQGxpY2Vuc2UlMEEgICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMlMEEgICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wJTBBICAgKiklMEEqLyUwQSc7cXIodnIpO2V4cG9ydHtzdCBhcyBiaW9SYWRSZWFkSW1hZ2UsZ3QgYXMgYmlvUmFkV3JpdGVJbWFnZSxYZSBhcyBibXBSZWFkSW1hZ2UsX2UgYXMgYm1wV3JpdGVJbWFnZSxWIGFzIGV4dGVuc2lvblRvSW1hZ2VJbyxodCBhcyBmZGZSZWFkSW1hZ2UsQW4gYXMgZmRmV3JpdGVJbWFnZSxmdCBhcyBnZGNtUmVhZEltYWdlLGN0IGFzIGdkY21Xcml0ZUltYWdlLEV0IGFzIGdlNFJlYWRJbWFnZSxwdCBhcyBnZTRXcml0ZUltYWdlLG10IGFzIGdlNVJlYWRJbWFnZSx1dCBhcyBnZTVXcml0ZUltYWdlLGx0IGFzIGdlQWR3UmVhZEltYWdlLFF0IGFzIGdlQWR3V3JpdGVJbWFnZSx5IGFzIGdldERlZmF1bHRXZWJXb3JrZXIsZiBhcyBnZXRQaXBlbGluZVdvcmtlclVybCxkIGFzIGdldFBpcGVsaW5lc0Jhc2VVcmwsQnQgYXMgZ2lwbFJlYWRJbWFnZSxDdCBhcyBnaXBsV3JpdGVJbWFnZSwkZSBhcyBoZGY1UmVhZEltYWdlLEF0IGFzIGhkZjVXcml0ZUltYWdlLEtlIGFzIGpwZWdSZWFkSW1hZ2UsamUgYXMganBlZ1dyaXRlSW1hZ2Usb3QgYXMgbHNtUmVhZEltYWdlLGF0IGFzIGxzbVdyaXRlSW1hZ2UseGUgYXMgbWV0YVJlYWRJbWFnZSxNZSBhcyBtZXRhV3JpdGVJbWFnZSxudCBhcyBtZ2hSZWFkSW1hZ2UsSXQgYXMgbWdoV3JpdGVJbWFnZSxldCBhcyBtaW5jUmVhZEltYWdlLHR0IGFzIG1pbmNXcml0ZUltYWdlLHJ0IGFzIG1yY1JlYWRJbWFnZSxpdCBhcyBtcmNXcml0ZUltYWdlLFllIGFzIG5pZnRpUmVhZEltYWdlLHFlIGFzIG5pZnRpV3JpdGVJbWFnZSx2ZSBhcyBucnJkUmVhZEltYWdlLFplIGFzIG5ycmRXcml0ZUltYWdlLEplIGFzIHBuZ1JlYWRJbWFnZSxQZSBhcyBwbmdXcml0ZUltYWdlLEZ0IGFzIHJlYWRJbWFnZSx6YSBhcyByZWFkSW1hZ2VGaWxlU2VyaWVzLCRvIGFzIHJlYWRJbWFnZUh0dHAsZHQgYXMgc2NhbmNvUmVhZEltYWdlLHl0IGFzIHNjYW5jb1dyaXRlSW1hZ2UsSUMgYXMgc2V0RGVmYXVsdFdlYldvcmtlcixxciBhcyBzZXRQaXBlbGluZVdvcmtlclVybCxlQyBhcyBzZXRQaXBlbGluZXNCYXNlVXJsLFRlIGFzIHRpZmZSZWFkSW1hZ2UsSGUgYXMgdGlmZldyaXRlSW1hZ2UsVmUgYXMgdnRrUmVhZEltYWdlLHplIGFzIHZ0a1dyaXRlSW1hZ2Usd3QgYXMgd2FzbVJlYWRJbWFnZSxEdCBhcyB3YXNtV3JpdGVJbWFnZSxSdCBhcyB3YXNtWnN0ZFJlYWRJbWFnZSxrdCBhcyB3YXNtWnN0ZFdyaXRlSW1hZ2UsX2EgYXMgd3JpdGVJbWFnZX07Ci8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246Cgpjb21saW5rL2Rpc3QvZXNtL2NvbWxpbmsubWpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiAgICopCiovCg==""" +default_js_module = """data:text/javascript;base64,dmFyIENpPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgbGk9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlDaShBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIFFpPW5ldyBNYXAoW1siYm1wIiwiYm1wIl0sWyJkY20iLCJnZGNtIl0sWyJnaXBsIiwiZ2lwbCJdLFsiZ2lwbC5neiIsImdpcGwiXSxbImhkZjUiLCJoZGY1Il0sWyJqcGciLCJqcGVnIl0sWyJqcGVnIiwianBlZyJdLFsiaXdpIiwid2FzbSJdLFsiaXdpLmNib3IiLCJ3YXNtIl0sWyJpd2kuY2Jvci56c3QiLCJ3YXNtWnN0ZCJdLFsibHNtIiwibHNtIl0sWyJtbmMiLCJtbmMiXSxbIm1uYy5neiIsIm1uYyJdLFsibW5jMiIsIm1uYyJdLFsibWdoIiwibWdoIl0sWyJtZ3oiLCJtZ2giXSxbIm1naC5neiIsIm1naCJdLFsibWhhIiwibWV0YSJdLFsibWhkIiwibWV0YSJdLFsibXJjIiwibXJjIl0sWyJuaWEiLCJuaWZ0aSJdLFsibmlpIiwibmlmdGkiXSxbIm5paS5neiIsIm5pZnRpIl0sWyJoZHIiLCJuaWZ0aSJdLFsibnJyZCIsIm5ycmQiXSxbIm5oZHIiLCJucnJkIl0sWyJwbmciLCJwbmciXSxbInBpYyIsImJpb1JhZCJdLFsidGlmIiwidGlmZiJdLFsidGlmZiIsInRpZmYiXSxbInZ0ayIsInZ0ayJdLFsiaXNxIiwic2NhbmNvIl0sWyJhaW0iLCJzY2FuY28iXSxbImZkZiIsImZkZiJdXSksJD1RaTt2YXIgRWk9e0ludDg6ImludDgiLFVJbnQ4OiJ1aW50OCIsSW50MTY6ImludDE2IixVSW50MTY6InVpbnQxNiIsSW50MzI6ImludDMyIixVSW50MzI6InVpbnQzMiIsSW50NjQ6ImludDY0IixVSW50NjQ6InVpbnQ2NCIsU2l6ZVZhbHVlVHlwZToidWludDY0IixJZGVudGlmaWVyVHlwZToidWludDY0IixJbmRleFZhbHVlVHlwZToiaW50NjQiLE9mZnNldFZhbHVlVHlwZToiaW50NjQifSx3PUVpO3ZhciBwaT17RmxvYXQzMjoiZmxvYXQzMiIsRmxvYXQ2NDoiZmxvYXQ2NCIsU3BhY2VQcmVjaXNpb25UeXBlOiJmbG9hdDY0In0sUz1waTtmdW5jdGlvbiBtaShBLGUpe2xldCB0PW51bGw7c3dpdGNoKEEpe2Nhc2Ugdy5VSW50ODp7dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIHcuSW50ODp7dD1uZXcgSW50OEFycmF5KGUpO2JyZWFrfWNhc2Ugdy5VSW50MTY6e3Q9bmV3IFVpbnQxNkFycmF5KGUpO2JyZWFrfWNhc2Ugdy5JbnQxNjp7dD1uZXcgSW50MTZBcnJheShlKTticmVha31jYXNlIHcuVUludDMyOnt0PW5ldyBVaW50MzJBcnJheShlKTticmVha31jYXNlIHcuSW50MzI6e3Q9bmV3IEludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSB3LlVJbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnVWludDY0QXJyYXk9PSJmdW5jdGlvbiI/dD1uZXcgQmlnVWludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIHcuSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ0ludDY0QXJyYXk9PSJmdW5jdGlvbiI/dD1uZXcgQmlnSW50NjRBcnJheShlKTp0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgUy5GbG9hdDMyOnt0PW5ldyBGbG9hdDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBTLkZsb2F0NjQ6e3Q9bmV3IEZsb2F0NjRBcnJheShlKTticmVha31jYXNlIm51bGwiOnt0PW51bGw7YnJlYWt9Y2FzZSBudWxsOnt0PW51bGw7YnJlYWt9ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlR5cGUgaXMgbm90IHN1cHBvcnRlZCBhcyBhIFR5cGVkQXJyYXkiKX1yZXR1cm4gdH12YXIgTz1taTt2YXIgdWk9e1Vua25vd246IlVua25vd24iLFNjYWxhcjoiU2NhbGFyIixSR0I6IlJHQiIsUkdCQToiUkdCQSIsT2Zmc2V0OiJPZmZzZXQiLFZlY3RvcjoiVmVjdG9yIixQb2ludDoiUG9pbnQiLENvdmFyaWFudFZlY3RvcjoiQ292YXJpYW50VmVjdG9yIixTeW1tZXRyaWNTZWNvbmRSYW5rVGVuc29yOiJTeW1tZXRyaWNTZWNvbmRSYW5rVGVuc29yIixEaWZmdXNpb25UZW5zb3IzRDoiRGlmZnVzaW9uVGVuc29yM0QiLENvbXBsZXg6IkNvbXBsZXgiLEZpeGVkQXJyYXk6IkZpeGVkQXJyYXkiLEFycmF5OiJBcnJheSIsTWF0cml4OiJNYXRyaXgiLFZhcmlhYmxlTGVuZ3RoVmVjdG9yOiJWYXJpYWJsZUxlbmd0aFZlY3RvciIsVmFyaWFibGVTaXplTWF0cml4OiJWYXJpYWJsZVNpemVNYXRyaXgifSxPQT11aTt2YXIgSWU9Y2xhc3N7ZGltZW5zaW9uO2NvbXBvbmVudFR5cGU7cGl4ZWxUeXBlO2NvbXBvbmVudHM7Y29uc3RydWN0b3IoZT0yLHQ9dy5VSW50OCxyPU9BLlNjYWxhcixvPTEpe3RoaXMuZGltZW5zaW9uPWUsdGhpcy5jb21wb25lbnRUeXBlPXQsdGhpcy5waXhlbFR5cGU9cix0aGlzLmNvbXBvbmVudHM9b319LEt0PUllO2Z1bmN0aW9uIGZpKEEsZSx0LHIsbyl7QVtyK3QqZV09b312YXIganQ9Zmk7dmFyIHNlPWNsYXNze2ltYWdlVHlwZTtuYW1lPSJJbWFnZSI7b3JpZ2luO3NwYWNpbmc7ZGlyZWN0aW9uO3NpemU7bWV0YWRhdGE7ZGF0YTtjb25zdHJ1Y3RvcihlPW5ldyBLdCl7dGhpcy5pbWFnZVR5cGU9ZTtsZXQgdD1lLmRpbWVuc2lvbjt0aGlzLm9yaWdpbj1uZXcgQXJyYXkodCksdGhpcy5vcmlnaW4uZmlsbCgwKSx0aGlzLnNwYWNpbmc9bmV3IEFycmF5KHQpLHRoaXMuc3BhY2luZy5maWxsKDEpLHRoaXMuZGlyZWN0aW9uPW5ldyBGbG9hdDY0QXJyYXkodCp0KSx0aGlzLmRpcmVjdGlvbi5maWxsKDApO2ZvcihsZXQgcj0wO3I8dDtyKyspanQodGhpcy5kaXJlY3Rpb24sdCxyLHIsMSk7dGhpcy5zaXplPW5ldyBBcnJheSh0KSx0aGlzLnNpemUuZmlsbCgwKSx0aGlzLm1ldGFkYXRhPW5ldyBNYXAsdGhpcy5kYXRhPW51bGx9fSxyQT1zZTtmdW5jdGlvbiBjaShBKXtsZXQgZT1uZXcgckEoQS5pbWFnZVR5cGUpO2lmKGUubmFtZT1BLm5hbWUsZS5vcmlnaW49QXJyYXkuZnJvbShBLm9yaWdpbiksZS5zcGFjaW5nPUFycmF5LmZyb20oQS5zcGFjaW5nKSxlLmRpcmVjdGlvbj1BLmRpcmVjdGlvbi5zbGljZSgpLGUuc2l6ZT1BcnJheS5mcm9tKEEuc2l6ZSksQS5kYXRhIT09bnVsbCl7bGV0IHQ9QS5kYXRhLmNvbnN0cnVjdG9yO2UuZGF0YT1uZXcgdChBLmRhdGEubGVuZ3RoKSxlLmRhdGEhPW51bGwmJmUuZGF0YS5zZXQoQS5kYXRhLDApfXJldHVybiBlfXZhciBnZT1jaTtmdW5jdGlvbiBkaShBKXtpZihBLmxlbmd0aDwxKXRocm93IEVycm9yKCJBdCBsZWFzdCBvbmUgaW1hZ2VzIGlzIHJlcXVpcmVkLiIpO2xldCBlPUFbMF07aWYoZS5kYXRhPT09bnVsbCl0aHJvdyBFcnJvcigiSW1hZ2UgZGF0YSBpcyBudWxsLiIpO2xldCB0PW5ldyByQShlLmltYWdlVHlwZSk7dC5vcmlnaW49QXJyYXkuZnJvbShlLm9yaWdpbiksdC5zcGFjaW5nPUFycmF5LmZyb20oZS5zcGFjaW5nKTtsZXQgcj10LmltYWdlVHlwZS5kaW1lbnNpb247dC5kaXJlY3Rpb249ZS5kaXJlY3Rpb24uc2xpY2UoKTtsZXQgbz1yLTE7dC5zaXplPUFycmF5LmZyb20oZS5zaXplKTtsZXQgaT1BLnJlZHVjZSgoYSxnKT0+YStnLnNpemVbb10sMCk7dC5zaXplW29dPWk7bGV0IG49dC5zaXplLnJlZHVjZSgoYSxnKT0+YSpnLDEpKnQuaW1hZ2VUeXBlLmNvbXBvbmVudHMsbD1lLmRhdGEuY29uc3RydWN0b3I7dC5kYXRhPW5ldyBsKG4pO2xldCBwPXQuaW1hZ2VUeXBlLmNvbXBvbmVudHM7Zm9yKGxldCBhPTA7YTx0LnNpemUubGVuZ3RoLTE7YSsrKXAqPXQuc2l6ZVthXTtsZXQgQj0wO2lmKHQuZGF0YSE9bnVsbClmb3IobGV0IGE9MDthPEEubGVuZ3RoO2ErKyl0LmRhdGEuc2V0KEFbYV0uZGF0YSxwKkIpLEIrPUFbYV0uc2l6ZVtvXTtlbHNlIHRocm93IEVycm9yKCJDb3VsZCBub3QgY3JlYXRlIHJlc3VsdCBpbWFnZSBkYXRhLiIpO3JldHVybiB0fXZhciBCZT1kaTtmdW5jdGlvbiB5aShBKXtsZXQgZT1BLnNsaWNlKChBLmxhc3RJbmRleE9mKCIuIiktMT4+PjApKzIpO2lmKGUudG9Mb3dlckNhc2UoKT09PSJneiIpe2xldCB0PUEuc2xpY2UoMCwtMykubGFzdEluZGV4T2YoIi4iKTtlPUEuc2xpY2UoKHQtMT4+PjApKzIpfWVsc2UgaWYoZS50b0xvd2VyQ2FzZSgpPT09ImNib3IiKXtsZXQgdD1BLnNsaWNlKDAsLTUpLmxhc3RJbmRleE9mKCIuIik7ZT1BLnNsaWNlKCh0LTE+Pj4wKSsyKX1lbHNlIGlmKGUudG9Mb3dlckNhc2UoKT09PSJ6c3QiKXtsZXQgdD1BLnNsaWNlKDAsLTEwKS5sYXN0SW5kZXhPZigiLiIpO2U9QS5zbGljZSgodC0xPj4+MCkrMil9ZWxzZSBpZihlLnRvTG93ZXJDYXNlKCk9PT0iemlwIil7bGV0IHQ9QS5zbGljZSgwLC00KS5sYXN0SW5kZXhPZigiLiIpO2U9QS5zbGljZSgodC0xPj4+MCkrMil9cmV0dXJuIGV9dmFyIHBBPXlpO2Z1bmN0aW9uIGhpKEEsZSl7bGV0IHQ9ey4uLkEuaW1hZ2VUeXBlfTtpZih0eXBlb2YgZTwidSImJnR5cGVvZiBlLnBpeGVsVHlwZTwidSImJih0LnBpeGVsVHlwZT1lLnBpeGVsVHlwZSxlLnBpeGVsVHlwZT09PU9BLlNjYWxhciYmdC5jb21wb25lbnRzIT09MSkpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY2FzdCBtdWx0aS1jb21wb25lbnQgaW1hZ2UgdG8gYSBzY2FsYXIgaW1hZ2UiKTt0eXBlb2YgZTwidSImJnR5cGVvZiBlLmNvbXBvbmVudFR5cGU8InUiJiZlLmNvbXBvbmVudFR5cGUhPT1BLmltYWdlVHlwZS5jb21wb25lbnRUeXBlJiYodC5jb21wb25lbnRUeXBlPWUuY29tcG9uZW50VHlwZSk7bGV0IHI9bmV3IHJBKHQpO2lmKHIubmFtZT1BLm5hbWUsci5vcmlnaW49QXJyYXkuZnJvbShBLm9yaWdpbiksci5zcGFjaW5nPUFycmF5LmZyb20oQS5zcGFjaW5nKSxyLmRpcmVjdGlvbj1BLmRpcmVjdGlvbi5zbGljZSgpLHIuc2l6ZT1BcnJheS5mcm9tKEEuc2l6ZSksci5tZXRhZGF0YT1uZXcgTWFwKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoQXJyYXkuZnJvbShBLm1ldGFkYXRhKSkpKSxBLmRhdGEhPT1udWxsKWlmKHR5cGVvZiBlPCJ1IiYmdHlwZW9mIGUuY29tcG9uZW50VHlwZTwidSImJmUuY29tcG9uZW50VHlwZSE9PUEuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpc3dpdGNoKEEuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpe2Nhc2Ugdy5VSW50ODpjYXNlIHcuSW50ODpjYXNlIHcuVUludDE2OmNhc2Ugdy5JbnQxNjpjYXNlIHcuVUludDMyOmNhc2Ugdy5JbnQzMjpjYXNlIFMuRmxvYXQzMjpjYXNlIFMuRmxvYXQ2NDpzd2l0Y2goci5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSl7Y2FzZSB3LlVJbnQ4OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXtyLmRhdGE9bmV3IFVpbnQ4QXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxyLmRhdGEubGVuZ3RoO28rKylyLmRhdGFbb109TnVtYmVyKEEuZGF0YVtvXSl9ZWxzZSByLmRhdGE9bmV3IFVpbnQ4QXJyYXkoQS5kYXRhKTticmVhaztjYXNlIHcuSW50ODppZihBLmRhdGEgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxBLmRhdGEgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSl7ci5kYXRhPW5ldyBJbnQ4QXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxyLmRhdGEubGVuZ3RoO28rKylyLmRhdGFbb109TnVtYmVyKEEuZGF0YVtvXSl9ZWxzZSByLmRhdGE9bmV3IEludDhBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2Ugdy5VSW50MTY6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3IuZGF0YT1uZXcgVWludDE2QXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxyLmRhdGEubGVuZ3RoO28rKylyLmRhdGFbb109TnVtYmVyKEEuZGF0YVtvXSl9ZWxzZSByLmRhdGE9bmV3IFVpbnQxNkFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSB3LkludDE2OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXtyLmRhdGE9bmV3IEludDE2QXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxyLmRhdGEubGVuZ3RoO28rKylyLmRhdGFbb109TnVtYmVyKEEuZGF0YVtvXSl9ZWxzZSByLmRhdGE9bmV3IEludDE2QXJyYXkoQS5kYXRhKTticmVhaztjYXNlIHcuVUludDMyOmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXtyLmRhdGE9bmV3IFVpbnQzMkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgbz0wO288ci5kYXRhLmxlbmd0aDtvKyspci5kYXRhW29dPU51bWJlcihBLmRhdGFbb10pfWVsc2Ugci5kYXRhPW5ldyBVaW50MzJBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2Ugdy5JbnQzMjppZihBLmRhdGEgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxBLmRhdGEgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSl7ci5kYXRhPW5ldyBJbnQzMkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgbz0wO288ci5kYXRhLmxlbmd0aDtvKyspci5kYXRhW29dPU51bWJlcihBLmRhdGFbb10pfWVsc2Ugci5kYXRhPW5ldyBJbnQzMkFycmF5KEEuZGF0YSk7YnJlYWs7Y2FzZSBTLkZsb2F0MzI6aWYoQS5kYXRhIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8QS5kYXRhIGluc3RhbmNlb2YgQmlnVWludDY0QXJyYXkpe3IuZGF0YT1uZXcgRmxvYXQzMkFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgbz0wO288ci5kYXRhLmxlbmd0aDtvKyspci5kYXRhW29dPU51bWJlcihBLmRhdGFbb10pfWVsc2Ugci5kYXRhPW5ldyBGbG9hdDMyQXJyYXkoQS5kYXRhKTticmVhaztjYXNlIFMuRmxvYXQ2NDppZihBLmRhdGEgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxBLmRhdGEgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSl7ci5kYXRhPW5ldyBGbG9hdDY0QXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxyLmRhdGEubGVuZ3RoO28rKylyLmRhdGFbb109TnVtYmVyKEEuZGF0YVtvXSl9ZWxzZSByLmRhdGE9bmV3IEZsb2F0NjRBcnJheShBLmRhdGEpO2JyZWFrO2Nhc2Ugdy5VSW50NjQ6ci5kYXRhPW5ldyBCaWdVaW50NjRBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1CaWdJbnQuYXNJbnROKDY0LEJpZ0ludChBLmRhdGFbb10pKTticmVhaztjYXNlIHcuSW50NjQ6ci5kYXRhPW5ldyBCaWdJbnQ2NEFycmF5KEEuZGF0YS5sZW5ndGgpO2ZvcihsZXQgbz0wO288ci5kYXRhLmxlbmd0aDtvKyspci5kYXRhW29dPUJpZ0ludC5hc1VpbnROKDY0LEJpZ0ludChBLmRhdGFbb10pKTticmVha31icmVhaztjYXNlIHcuVUludDY0OmNhc2Ugdy5JbnQ2NDpzd2l0Y2goci5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSl7Y2FzZSB3LlVJbnQ4OnIuZGF0YT1uZXcgVWludDhBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1OdW1iZXIoQS5kYXRhW29dKTticmVhaztjYXNlIHcuSW50ODpyLmRhdGE9bmV3IEludDhBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1OdW1iZXIoQS5kYXRhW29dKTticmVhaztjYXNlIHcuVUludDE2OnIuZGF0YT1uZXcgVWludDE2QXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxyLmRhdGEubGVuZ3RoO28rKylyLmRhdGFbb109TnVtYmVyKEEuZGF0YVtvXSk7YnJlYWs7Y2FzZSB3LkludDE2OnIuZGF0YT1uZXcgSW50MTZBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1OdW1iZXIoQS5kYXRhW29dKTticmVhaztjYXNlIHcuVUludDMyOnIuZGF0YT1uZXcgVWludDMyQXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxyLmRhdGEubGVuZ3RoO28rKylyLmRhdGFbb109TnVtYmVyKEEuZGF0YVtvXSk7YnJlYWs7Y2FzZSB3LkludDMyOnIuZGF0YT1uZXcgSW50MzJBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1OdW1iZXIoQS5kYXRhW29dKTticmVhaztjYXNlIFMuRmxvYXQzMjpyLmRhdGE9bmV3IEZsb2F0MzJBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1OdW1iZXIoQS5kYXRhW29dKTticmVhaztjYXNlIFMuRmxvYXQ2NDpyLmRhdGE9bmV3IEZsb2F0NjRBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1OdW1iZXIoQS5kYXRhW29dKTticmVhaztjYXNlIHcuVUludDY0OmlmKEEuZGF0YSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXl8fEEuZGF0YSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KXIuZGF0YT1uZXcgQmlnVWludDY0QXJyYXkoQS5kYXRhKTtlbHNle3IuZGF0YT1uZXcgQmlnVWludDY0QXJyYXkoQS5kYXRhLmxlbmd0aCk7Zm9yKGxldCBvPTA7bzxyLmRhdGEubGVuZ3RoO28rKylyLmRhdGFbb109QmlnSW50LmFzVWludE4oNjQsQmlnSW50KEEuZGF0YVtvXSkpfWJyZWFrO2Nhc2Ugdy5JbnQ2NDppZihBLmRhdGEgaW5zdGFuY2VvZiBCaWdJbnQ2NEFycmF5fHxBLmRhdGEgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSlyLmRhdGE9bmV3IEJpZ0ludDY0QXJyYXkoQS5kYXRhKTtlbHNle3IuZGF0YT1uZXcgQmlnSW50NjRBcnJheShBLmRhdGEubGVuZ3RoKTtmb3IobGV0IG89MDtvPHIuZGF0YS5sZW5ndGg7bysrKXIuZGF0YVtvXT1CaWdJbnQuYXNJbnROKDY0LEJpZ0ludChBLmRhdGFbb10pKX1icmVha31icmVha31lbHNle2xldCBvPUEuZGF0YS5jb25zdHJ1Y3RvcjtyLmRhdGE9bmV3IG8oQS5kYXRhLmxlbmd0aCksci5kYXRhIT1udWxsJiZyLmRhdGEuc2V0KEEuZGF0YSwwKX1yZXR1cm4gcn12YXIgWj1oaTt2YXIgQ2U9Y2xhc3N7ZmNuO3dvcmtlclF1ZXVlO3J1bkluZm87Y29uc3RydWN0b3IoZSx0KXt0aGlzLmZjbj10LHRoaXMud29ya2VyUXVldWU9bmV3IEFycmF5KGUpLHRoaXMud29ya2VyUXVldWUuZmlsbChudWxsKSx0aGlzLnJ1bkluZm89W119cnVuVGFza3MoZSx0PW51bGwpe2xldCByPXt0YXNrUXVldWU6W10scmVzdWx0czpbXSxhZGRpbmdUYXNrczohMSxwb3N0cG9uZWQ6ITEscnVubmluZ1dvcmtlcnM6MCxpbmRleDowLGNvbXBsZXRlZFRhc2tzOjAscHJvZ3Jlc3NDYWxsYmFjazp0LGNhbmNlbGVkOiExfTtyZXR1cm4gdGhpcy5ydW5JbmZvLnB1c2gociksci5pbmRleD10aGlzLnJ1bkluZm8ubGVuZ3RoLTEse3Byb21pc2U6bmV3IFByb21pc2UoKG8saSk9PntyLnJlc29sdmU9byxyLnJlamVjdD1pLHIucmVzdWx0cz1uZXcgQXJyYXkoZS5sZW5ndGgpLHIuY29tcGxldGVkVGFza3M9MCxyLmFkZGluZ1Rhc2tzPSEwLGUuZm9yRWFjaCgobixsKT0+e3RoaXMuYWRkVGFzayhyLmluZGV4LGwsbil9KSxyLmFkZGluZ1Rhc2tzPSExfSkscnVuSWQ6ci5pbmRleH19dGVybWluYXRlV29ya2Vycygpe2ZvcihsZXQgZT0wO2U8dGhpcy53b3JrZXJRdWV1ZS5sZW5ndGg7ZSsrKXtsZXQgdD10aGlzLndvcmtlclF1ZXVlW2VdO3Q/LnRlcm1pbmF0ZSgpLHRoaXMud29ya2VyUXVldWVbZV09bnVsbH19Y2FuY2VsKGUpe2xldCB0PXRoaXMucnVuSW5mb1tlXTt0IT1udWxsJiYodC5jYW5jZWxlZD0hMCl9YWRkVGFzayhlLHQscil7bGV0IG89dGhpcy5ydW5JbmZvW2VdO2lmKG8/LmNhbmNlbGVkPT09ITApe28ucmVqZWN0KCJSZW1haW5pbmcgdGFza3MgY2FuY2VsZWQiKSx0aGlzLmNsZWFyVGFzayhvLmluZGV4KTtyZXR1cm59aWYodGhpcy53b3JrZXJRdWV1ZS5sZW5ndGg+MCl7bGV0IGk9dGhpcy53b3JrZXJRdWV1ZS5wb3AoKTtvLnJ1bm5pbmdXb3JrZXJzKysscltyLmxlbmd0aC0xXS53ZWJXb3JrZXI9aSx0aGlzLmZjbiguLi5yKS50aGVuKCh7d2ViV29ya2VyOm4sLi4ubH0pPT57aWYodGhpcy53b3JrZXJRdWV1ZS5wdXNoKG4pLHRoaXMucnVuSW5mb1tlXSE9PW51bGwpe2lmKG8ucnVubmluZ1dvcmtlcnMtLSxvLnJlc3VsdHNbdF09bCxvLmNvbXBsZXRlZFRhc2tzKyssby5wcm9ncmVzc0NhbGxiYWNrIT1udWxsJiZvLnByb2dyZXNzQ2FsbGJhY2soby5jb21wbGV0ZWRUYXNrcyxvLnJlc3VsdHMubGVuZ3RoKSxvLnRhc2tRdWV1ZS5sZW5ndGg+MCl7bGV0IHA9by50YXNrUXVldWUuc2hpZnQoKTt0aGlzLmFkZFRhc2soZSxwWzBdLHBbMV0pfWVsc2UgaWYoIW8uYWRkaW5nVGFza3MmJm8ucnVubmluZ1dvcmtlcnM9PT0wKXtsZXQgcD1vLnJlc3VsdHM7by5yZXNvbHZlKHApLHRoaXMuY2xlYXJUYXNrKG8uaW5kZXgpfX19KS5jYXRjaChuPT57by5yZWplY3QobiksdGhpcy5jbGVhclRhc2soby5pbmRleCl9KX1lbHNlIG8ucnVubmluZ1dvcmtlcnMhPT0wfHxvLnBvc3Rwb25lZD9vLnRhc2tRdWV1ZS5wdXNoKFt0LHJdKTooby5wb3N0cG9uZWQ9ITAsc2V0VGltZW91dCgoKT0+e28ucG9zdHBvbmVkPSExLHRoaXMuYWRkVGFzayhvLmluZGV4LHQscil9LDUwKSl9Y2xlYXJUYXNrKGUpe3RoaXMucnVuSW5mb1tlXS5yZXN1bHRzPVtdLHRoaXMucnVuSW5mb1tlXS50YXNrUXVldWU9W10sdGhpcy5ydW5JbmZvW2VdLnByb2dyZXNzQ2FsbGJhY2s9bnVsbCx0aGlzLnJ1bkluZm9bZV0uY2FuY2VsZWQ9bnVsbCx0aGlzLnJ1bkluZm9bZV0ucmVqZWN0PSgpPT57fSx0aGlzLnJ1bkluZm9bZV0ucmVzb2x2ZT0oKT0+e319fSxsZT1DZTt2YXIgd2k9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LEM9d2k7dmFyIFp0PVN5bWJvbCgiQ29tbGluay5wcm94eSIpLERpPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLHBlPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxRZT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksSkE9U3ltYm9sKCJDb21saW5rLnRocm93biIpLFZ0PUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLFJpPXtjYW5IYW5kbGU6QT0+VnQoQSkmJkFbWnRdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6ZSxwb3J0Mjp0fT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIFh0KEEsZSksW3QsW3RdXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxtZShBKX19LGtpPXtjYW5IYW5kbGU6QT0+VnQoQSkmJkpBIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IGU7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTpBfSxbZSxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSx6dD1uZXcgTWFwKFtbInByb3h5IixSaV0sWyJ0aHJvdyIsa2ldXSk7ZnVuY3Rpb24gRmkoQSxlKXtmb3IobGV0IHQgb2YgQSlpZihlPT09dHx8dD09PSIqInx8dCBpbnN0YW5jZW9mIFJlZ0V4cCYmdC50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIFh0KEEsZT1nbG9iYWxUaGlzLHQ9WyIqIl0pe2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gcihvKXtpZighb3x8IW8uZGF0YSlyZXR1cm47aWYoIUZpKHQsby5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luICcke28ub3JpZ2lufScgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOmksdHlwZTpuLHBhdGg6bH09T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sby5kYXRhKSxwPShvLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKEFBKSxCO3RyeXtsZXQgYT1sLnNsaWNlKDAsLTEpLnJlZHVjZSgoUSxJKT0+UVtJXSxBKSxnPWwucmVkdWNlKChRLEkpPT5RW0ldLEEpO3N3aXRjaChuKXtjYXNlIkdFVCI6Qj1nO2JyZWFrO2Nhc2UiU0VUIjphW2wuc2xpY2UoLTEpWzBdXT1BQShvLmRhdGEudmFsdWUpLEI9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6Qj1nLmFwcGx5KGEscCk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgUT1uZXcgZyguLi5wKTtCPVdpKFEpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6USxwb3J0MjpJfT1uZXcgTWVzc2FnZUNoYW5uZWw7WHQoQSxJKSxCPXVlKFEsW1FdKX1icmVhaztjYXNlIlJFTEVBU0UiOkI9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChhKXtCPXt2YWx1ZTphLFtKQV06MH19UHJvbWlzZS5yZXNvbHZlKEIpLmNhdGNoKGE9Pih7dmFsdWU6YSxbSkFdOjB9KSkudGhlbihhPT57bGV0W2csUV09TUEoYSk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZykse2lkOml9KSxRKSxuPT09IlJFTEVBU0UiJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKSxfdChlKSxRZSBpbiBBJiZ0eXBlb2YgQVtRZV09PSJmdW5jdGlvbiImJkFbUWVdKCkpfSkuY2F0Y2goYT0+e2xldFtnLFFdPU1BKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxbSkFdOjB9KTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSx7aWQ6aX0pLFEpfSl9KSxlLnN0YXJ0JiZlLnN0YXJ0KCl9ZnVuY3Rpb24gVWkoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gX3QoQSl7VWkoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBtZShBLGUpe3JldHVybiBFZShBLFtdLGUpfWZ1bmN0aW9uIExBKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiAkdChBKXtyZXR1cm4gaUEoQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57X3QoQSl9KX12YXIgUEE9bmV3IFdlYWtNYXAseEE9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IGU9KFBBLmdldChBKXx8MCktMTtQQS5zZXQoQSxlKSxlPT09MCYmJHQoQSl9KTtmdW5jdGlvbiBOaShBLGUpe2xldCB0PShQQS5nZXQoZSl8fDApKzE7UEEuc2V0KGUsdCkseEEmJnhBLnJlZ2lzdGVyKEEsZSxBKX1mdW5jdGlvbiBTaShBKXt4QSYmeEEudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBFZShBLGU9W10sdD1mdW5jdGlvbigpe30pe2xldCByPSExLG89bmV3IFByb3h5KHQse2dldChpLG4pe2lmKExBKHIpLG49PT1wZSlyZXR1cm4oKT0+e1NpKG8pLCR0KEEpLHI9ITB9O2lmKG49PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+b307bGV0IGw9aUEoQSx7dHlwZToiR0VUIixwYXRoOmUubWFwKHA9PnAudG9TdHJpbmcoKSl9KS50aGVuKEFBKTtyZXR1cm4gbC50aGVuLmJpbmQobCl9cmV0dXJuIEVlKEEsWy4uLmUsbl0pfSxzZXQoaSxuLGwpe0xBKHIpO2xldFtwLEJdPU1BKGwpO3JldHVybiBpQShBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLmUsbl0ubWFwKGE9PmEudG9TdHJpbmcoKSksdmFsdWU6cH0sQikudGhlbihBQSl9LGFwcGx5KGksbixsKXtMQShyKTtsZXQgcD1lW2UubGVuZ3RoLTFdO2lmKHA9PT1EaSlyZXR1cm4gaUEoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbihBQSk7aWYocD09PSJiaW5kIilyZXR1cm4gRWUoQSxlLnNsaWNlKDAsLTEpKTtsZXRbQixhXT12dChsKTtyZXR1cm4gaUEoQSx7dHlwZToiQVBQTFkiLHBhdGg6ZS5tYXAoZz0+Zy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0sYSkudGhlbihBQSl9LGNvbnN0cnVjdChpLG4pe0xBKHIpO2xldFtsLHBdPXZ0KG4pO3JldHVybiBpQShBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6ZS5tYXAoQj0+Qi50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6bH0scCkudGhlbihBQSl9fSk7cmV0dXJuIE5pKG8sQSksb31mdW5jdGlvbiBiaShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiB2dChBKXtsZXQgZT1BLm1hcChNQSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLGJpKGUubWFwKHQ9PnRbMV0pKV19dmFyIEFyPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHVlKEEsZSl7cmV0dXJuIEFyLnNldChBLGUpLEF9ZnVuY3Rpb24gV2koQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W1p0XTohMH0pfWZ1bmN0aW9uIE1BKEEpe2ZvcihsZXRbZSx0XW9mIHp0KWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbcixvXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTpyfSxvXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sQXIuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gQUEoQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4genQuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiBpQShBLGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKHI9PntsZXQgbz1HaSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gaShuKXshbi5kYXRhfHwhbi5kYXRhLmlkfHxuLmRhdGEuaWQhPT1vfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixpKSxyKG4uZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6b30sZSksdCl9KX1mdW5jdGlvbiBHaSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gbUEoQSxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShlLGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzpPaX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6Y2V9PU9iamVjdCx7aXRlcmF0b3I6SEEsdG9TdHJpbmdUYWc6cnJ9PVN5bWJvbCxZQT0oQT0+ZT0+e2xldCB0PU9pLmNhbGwoZSk7cmV0dXJuIEFbdF18fChBW3RdPXQuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSx4PUE9PihBPUEudG9Mb3dlckNhc2UoKSxlPT5ZQShlKT09PUEpLHFBPUE9PmU9PnR5cGVvZiBlPT09QSx7aXNBcnJheTphQX09QXJyYXksb0E9cUEoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIHVBKEEpe3JldHVybiBBIT09bnVsbCYmIW9BKEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIW9BKEEuY29uc3RydWN0b3IpJiZMKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciBpcj14KCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIExpKEEpe2xldCBlO3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/ZT1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6ZT1BJiZBLmJ1ZmZlciYmaXIoQS5idWZmZXIpLGV9dmFyIEppPXFBKCJzdHJpbmciKSxMPXFBKCJmdW5jdGlvbiIpLG9yPXFBKCJudW1iZXIiKSxmQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLFBpPUE9PkE9PT0hMHx8QT09PSExLFRBPUE9PntpZihZQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCBlPWNlKEEpO3JldHVybihlPT09bnVsbHx8ZT09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PW51bGwpJiYhKHJyIGluIEEpJiYhKEhBIGluIEEpfSx4aT1BPT57aWYoIWZBKEEpfHx1QShBKSlyZXR1cm4hMTt0cnl7cmV0dXJuIE9iamVjdC5rZXlzKEEpLmxlbmd0aD09PTAmJk9iamVjdC5nZXRQcm90b3R5cGVPZihBKT09PU9iamVjdC5wcm90b3R5cGV9Y2F0Y2h7cmV0dXJuITF9fSxNaT14KCJEYXRlIiksVGk9eCgiRmlsZSIpLEhpPXgoIkJsb2IiKSxZaT14KCJGaWxlTGlzdCIpLHFpPUE9PmZBKEEpJiZMKEEucGlwZSksS2k9QT0+e2xldCBlO3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fEwoQS5hcHBlbmQpJiYoKGU9WUEoQSkpPT09ImZvcm1kYXRhInx8ZT09PSJvYmplY3QiJiZMKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LGppPXgoIlVSTFNlYXJjaFBhcmFtcyIpLFt2aSxaaSxWaSx6aV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoeCksWGk9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2csIiIpO2Z1bmN0aW9uIGNBKEEsZSx7YWxsT3duS2V5czp0PSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IHIsbztpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksYUEoQSkpZm9yKHI9MCxvPUEubGVuZ3RoO3I8bztyKyspZS5jYWxsKG51bGwsQVtyXSxyLEEpO2Vsc2V7aWYodUEoQSkpcmV0dXJuO2xldCBpPXQ/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSk6T2JqZWN0LmtleXMoQSksbj1pLmxlbmd0aCxsO2ZvcihyPTA7cjxuO3IrKylsPWlbcl0sZS5jYWxsKG51bGwsQVtsXSxsLEEpfX1mdW5jdGlvbiBhcihBLGUpe2lmKHVBKEEpKXJldHVybiBudWxsO2U9ZS50b0xvd2VyQ2FzZSgpO2xldCB0PU9iamVjdC5rZXlzKEEpLHI9dC5sZW5ndGgsbztmb3IoO3ItLSA+MDspaWYobz10W3JdLGU9PT1vLnRvTG93ZXJDYXNlKCkpcmV0dXJuIG87cmV0dXJuIG51bGx9dmFyIGVBPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsbnI9QT0+IW9BKEEpJiZBIT09ZUE7ZnVuY3Rpb24gZmUoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOmV9PW5yKHRoaXMpJiZ0aGlzfHx7fSx0PXt9LHI9KG8saSk9PntsZXQgbj1BJiZhcih0LGkpfHxpO1RBKHRbbl0pJiZUQShvKT90W25dPWZlKHRbbl0sbyk6VEEobyk/dFtuXT1mZSh7fSxvKTphQShvKT90W25dPW8uc2xpY2UoKTooIWV8fCFvQShvKSkmJih0W25dPW8pfTtmb3IobGV0IG89MCxpPWFyZ3VtZW50cy5sZW5ndGg7bzxpO28rKylhcmd1bWVudHNbb10mJmNBKGFyZ3VtZW50c1tvXSxyKTtyZXR1cm4gdH12YXIgX2k9KEEsZSx0LHthbGxPd25LZXlzOnJ9PXt9KT0+KGNBKGUsKG8saSk9Pnt0JiZMKG8pP0FbaV09bUEobyx0KTpBW2ldPW99LHthbGxPd25LZXlzOnJ9KSxBKSwkaT1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLEFvPShBLGUsdCxyKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUsciksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLHQmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsdCl9LGVvPShBLGUsdCxyKT0+e2xldCBvLGksbixsPXt9O2lmKGU9ZXx8e30sQT09bnVsbClyZXR1cm4gZTtkb3tmb3Iobz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxpPW8ubGVuZ3RoO2ktLSA+MDspbj1vW2ldLCghcnx8cihuLEEsZSkpJiYhbFtuXSYmKGVbbl09QVtuXSxsW25dPSEwKTtBPXQhPT0hMSYmY2UoQSl9d2hpbGUoQSYmKCF0fHx0KEEsZSkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LHRvPShBLGUsdCk9PntBPVN0cmluZyhBKSwodD09PXZvaWQgMHx8dD5BLmxlbmd0aCkmJih0PUEubGVuZ3RoKSx0LT1lLmxlbmd0aDtsZXQgcj1BLmluZGV4T2YoZSx0KTtyZXR1cm4gciE9PS0xJiZyPT09dH0scm89QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKGFBKEEpKXJldHVybiBBO2xldCBlPUEubGVuZ3RoO2lmKCFvcihlKSlyZXR1cm4gbnVsbDtsZXQgdD1uZXcgQXJyYXkoZSk7Zm9yKDtlLS0gPjA7KXRbZV09QVtlXTtyZXR1cm4gdH0saW89KEE9PmU9PkEmJmUgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJmNlKFVpbnQ4QXJyYXkpKSxvbz0oQSxlKT0+e2xldCByPShBJiZBW0hBXSkuY2FsbChBKSxvO2Zvcig7KG89ci5uZXh0KCkpJiYhby5kb25lOyl7bGV0IGk9by52YWx1ZTtlLmNhbGwoQSxpWzBdLGlbMV0pfX0sYW89KEEsZSk9PntsZXQgdCxyPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KXIucHVzaCh0KTtyZXR1cm4gcn0sbm89eCgiSFRNTEZvcm1FbGVtZW50IiksSW89QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxyLG8pe3JldHVybiByLnRvVXBwZXJDYXNlKCkrb30pLHRyPSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxzbz14KCJSZWdFeHAiKSxJcj0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLHI9e307Y0EodCwobyxpKT0+e2xldCBuOyhuPWUobyxpLEEpKSE9PSExJiYocltpXT1ufHxvKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEscil9LGdvPUE9PntJcihBLChlLHQpPT57aWYoTChBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IHI9QVt0XTtpZihMKHIpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LEJvPShBLGUpPT57bGV0IHQ9e30scj1vPT57by5mb3JFYWNoKGk9Pnt0W2ldPSEwfSl9O3JldHVybiBhQShBKT9yKEEpOnIoU3RyaW5nKEEpLnNwbGl0KGUpKSx0fSxDbz0oKT0+e30sbG89KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gUW8oQSl7cmV0dXJuISEoQSYmTChBLmFwcGVuZCkmJkFbcnJdPT09IkZvcm1EYXRhIiYmQVtIQV0pfXZhciBFbz1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSx0PShyLG8pPT57aWYoZkEocikpe2lmKGUuaW5kZXhPZihyKT49MClyZXR1cm47aWYodUEocikpcmV0dXJuIHI7aWYoISgidG9KU09OImluIHIpKXtlW29dPXI7bGV0IGk9YUEocik/W106e307cmV0dXJuIGNBKHIsKG4sbCk9PntsZXQgcD10KG4sbysxKTshb0EocCkmJihpW2xdPXApfSksZVtvXT12b2lkIDAsaX19cmV0dXJuIHJ9O3JldHVybiB0KEEsMCl9LHBvPXgoIkFzeW5jRnVuY3Rpb24iKSxtbz1BPT5BJiYoZkEoQSl8fEwoQSkpJiZMKEEudGhlbikmJkwoQS5jYXRjaCksc3I9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxyKT0+KGVBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOm8sZGF0YTppfSk9PntvPT09ZUEmJmk9PT10JiZyLmxlbmd0aCYmci5zaGlmdCgpKCl9LCExKSxvPT57ci5wdXNoKG8pLGVBLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTChlQS5wb3N0TWVzc2FnZSkpLHVvPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChlQSk6dHlwZW9mIHByb2Nlc3M8InUiJiZwcm9jZXNzLm5leHRUaWNrfHxzcixmbz1BPT5BIT1udWxsJiZMKEFbSEFdKSxFPXtpc0FycmF5OmFBLGlzQXJyYXlCdWZmZXI6aXIsaXNCdWZmZXI6dUEsaXNGb3JtRGF0YTpLaSxpc0FycmF5QnVmZmVyVmlldzpMaSxpc1N0cmluZzpKaSxpc051bWJlcjpvcixpc0Jvb2xlYW46UGksaXNPYmplY3Q6ZkEsaXNQbGFpbk9iamVjdDpUQSxpc0VtcHR5T2JqZWN0OnhpLGlzUmVhZGFibGVTdHJlYW06dmksaXNSZXF1ZXN0OlppLGlzUmVzcG9uc2U6VmksaXNIZWFkZXJzOnppLGlzVW5kZWZpbmVkOm9BLGlzRGF0ZTpNaSxpc0ZpbGU6VGksaXNCbG9iOkhpLGlzUmVnRXhwOnNvLGlzRnVuY3Rpb246TCxpc1N0cmVhbTpxaSxpc1VSTFNlYXJjaFBhcmFtczpqaSxpc1R5cGVkQXJyYXk6aW8saXNGaWxlTGlzdDpZaSxmb3JFYWNoOmNBLG1lcmdlOmZlLGV4dGVuZDpfaSx0cmltOlhpLHN0cmlwQk9NOiRpLGluaGVyaXRzOkFvLHRvRmxhdE9iamVjdDplbyxraW5kT2Y6WUEsa2luZE9mVGVzdDp4LGVuZHNXaXRoOnRvLHRvQXJyYXk6cm8sZm9yRWFjaEVudHJ5Om9vLG1hdGNoQWxsOmFvLGlzSFRNTEZvcm06bm8saGFzT3duUHJvcGVydHk6dHIsaGFzT3duUHJvcDp0cixyZWR1Y2VEZXNjcmlwdG9yczpJcixmcmVlemVNZXRob2RzOmdvLHRvT2JqZWN0U2V0OkJvLHRvQ2FtZWxDYXNlOklvLG5vb3A6Q28sdG9GaW5pdGVOdW1iZXI6bG8sZmluZEtleTphcixnbG9iYWw6ZUEsaXNDb250ZXh0RGVmaW5lZDpucixpc1NwZWNDb21wbGlhbnRGb3JtOlFvLHRvSlNPTk9iamVjdDpFbyxpc0FzeW5jRm46cG8saXNUaGVuYWJsZTptbyxzZXRJbW1lZGlhdGU6c3IsYXNhcDp1byxpc0l0ZXJhYmxlOmZvfTtmdW5jdGlvbiBuQShBLGUsdCxyLG8pe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsZSYmKHRoaXMuY29kZT1lKSx0JiYodGhpcy5jb25maWc9dCksciYmKHRoaXMucmVxdWVzdD1yKSxvJiYodGhpcy5yZXNwb25zZT1vLHRoaXMuc3RhdHVzPW8uc3RhdHVzP28uc3RhdHVzOm51bGwpfUUuaW5oZXJpdHMobkEsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzpFLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgZ3I9bkEucHJvdG90eXBlLEJyPXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e0JyW0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG5BLEJyKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZ3IsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7bkEuZnJvbT0oQSxlLHQscixvLGkpPT57bGV0IG49T2JqZWN0LmNyZWF0ZShncik7RS50b0ZsYXRPYmplY3QoQSxuLGZ1bmN0aW9uKGEpe3JldHVybiBhIT09RXJyb3IucHJvdG90eXBlfSxCPT5CIT09ImlzQXhpb3NFcnJvciIpO2xldCBsPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixwPWU9PW51bGwmJkE/QS5jb2RlOmU7cmV0dXJuIG5BLmNhbGwobixsLHAsdCxyLG8pLEEmJm4uY2F1c2U9PW51bGwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJjYXVzZSIse3ZhbHVlOkEsY29uZmlndXJhYmxlOiEwfSksbi5uYW1lPUEmJkEubmFtZXx8IkVycm9yIixpJiZPYmplY3QuYXNzaWduKG4saSksbn07dmFyIGg9bkE7dmFyIEtBPW51bGw7ZnVuY3Rpb24gZGUoQSl7cmV0dXJuIEUuaXNQbGFpbk9iamVjdChBKXx8RS5pc0FycmF5KEEpfWZ1bmN0aW9uIGxyKEEpe3JldHVybiBFLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIENyKEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24obyxpKXtyZXR1cm4gbz1scihvKSwhdCYmaT8iWyIrbysiXSI6b30pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gY28oQSl7cmV0dXJuIEUuaXNBcnJheShBKSYmIUEuc29tZShkZSl9dmFyIHlvPUUudG9GbGF0T2JqZWN0KEUse30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiBobyhBLGUsdCl7aWYoIUUuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoS0F8fEZvcm1EYXRhKSx0PUUudG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbih1LG0pe3JldHVybiFFLmlzVW5kZWZpbmVkKG1bdV0pfSk7bGV0IHI9dC5tZXRhVG9rZW5zLG89dC52aXNpdG9yfHxhLGk9dC5kb3RzLG49dC5pbmRleGVzLHA9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmRS5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFFLmlzRnVuY3Rpb24obykpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBCKHMpe2lmKHM9PT1udWxsKXJldHVybiIiO2lmKEUuaXNEYXRlKHMpKXJldHVybiBzLnRvSVNPU3RyaW5nKCk7aWYoRS5pc0Jvb2xlYW4ocykpcmV0dXJuIHMudG9TdHJpbmcoKTtpZighcCYmRS5pc0Jsb2IocykpdGhyb3cgbmV3IGgoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIEUuaXNBcnJheUJ1ZmZlcihzKXx8RS5pc1R5cGVkQXJyYXkocyk/cCYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW3NdKTpCdWZmZXIuZnJvbShzKTpzfWZ1bmN0aW9uIGEocyx1LG0pe2xldCBEPXM7aWYocyYmIW0mJnR5cGVvZiBzPT0ib2JqZWN0Iil7aWYoRS5lbmRzV2l0aCh1LCJ7fSIpKXU9cj91OnUuc2xpY2UoMCwtMikscz1KU09OLnN0cmluZ2lmeShzKTtlbHNlIGlmKEUuaXNBcnJheShzKSYmY28ocyl8fChFLmlzRmlsZUxpc3Qocyl8fEUuZW5kc1dpdGgodSwiW10iKSkmJihEPUUudG9BcnJheShzKSkpcmV0dXJuIHU9bHIodSksRC5mb3JFYWNoKGZ1bmN0aW9uKGssRyl7IShFLmlzVW5kZWZpbmVkKGspfHxrPT09bnVsbCkmJmUuYXBwZW5kKG49PT0hMD9DcihbdV0sRyxpKTpuPT09bnVsbD91OnUrIltdIixCKGspKX0pLCExfXJldHVybiBkZShzKT8hMDooZS5hcHBlbmQoQ3IobSx1LGkpLEIocykpLCExKX1sZXQgZz1bXSxRPU9iamVjdC5hc3NpZ24oeW8se2RlZmF1bHRWaXNpdG9yOmEsY29udmVydFZhbHVlOkIsaXNWaXNpdGFibGU6ZGV9KTtmdW5jdGlvbiBJKHMsdSl7aWYoIUUuaXNVbmRlZmluZWQocykpe2lmKGcuaW5kZXhPZihzKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIit1LmpvaW4oIi4iKSk7Zy5wdXNoKHMpLEUuZm9yRWFjaChzLGZ1bmN0aW9uKEQsVyl7KCEoRS5pc1VuZGVmaW5lZChEKXx8RD09PW51bGwpJiZvLmNhbGwoZSxELEUuaXNTdHJpbmcoVyk/Vy50cmltKCk6Vyx1LFEpKT09PSEwJiZJKEQsdT91LmNvbmNhdChXKTpbV10pfSksZy5wb3AoKX19aWYoIUUuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBJKEEpLGV9dmFyIFY9aG87ZnVuY3Rpb24gUXIoQSl7bGV0IGU9eyIhIjoiJTIxIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwifiI6IiU3RSIsIiUyMCI6IisiLCIlMDAiOiJcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csZnVuY3Rpb24ocil7cmV0dXJuIGVbcl19KX1mdW5jdGlvbiBFcihBLGUpe3RoaXMuX3BhaXJzPVtdLEEmJlYoQSx0aGlzLGUpfXZhciBwcj1Fci5wcm90b3R5cGU7cHIuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9O3ByLnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCB0PWU/ZnVuY3Rpb24ocil7cmV0dXJuIGUuY2FsbCh0aGlzLHIsUXIpfTpRcjtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKG8pe3JldHVybiB0KG9bMF0pKyI9Iit0KG9bMV0pfSwiIikuam9pbigiJiIpfTt2YXIgakE9RXI7ZnVuY3Rpb24gd28oQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIil9ZnVuY3Rpb24gZEEoQSxlLHQpe2lmKCFlKXJldHVybiBBO2xldCByPXQmJnQuZW5jb2RlfHx3bztFLmlzRnVuY3Rpb24odCkmJih0PXtzZXJpYWxpemU6dH0pO2xldCBvPXQmJnQuc2VyaWFsaXplLGk7aWYobz9pPW8oZSx0KTppPUUuaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyBqQShlLHQpLnRvU3RyaW5nKHIpLGkpe2xldCBuPUEuaW5kZXhPZigiIyIpO24hPT0tMSYmKEE9QS5zbGljZSgwLG4pKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStpfXJldHVybiBBfXZhciB5ZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsdCxyKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOnI/ci5zeW5jaHJvbm91czohMSxydW5XaGVuOnI/ci5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goZSl7RS5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24ocil7ciE9PW51bGwmJmUocil9KX19LGhlPXllO3ZhciB2QT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIG1yPXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpqQTt2YXIgdXI9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciBmcj10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBjcj17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczptcixGb3JtRGF0YTp1cixCbG9iOmZyfSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIFJlPXt9O2xpKFJlLHtoYXNCcm93c2VyRW52OigpPT5EZSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PkRvLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+Um8sbmF2aWdhdG9yOigpPT53ZSxvcmlnaW46KCk9PmtvfSk7dmFyIERlPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLHdlPXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCxEbz1EZSYmKCF3ZXx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZih3ZS5wcm9kdWN0KTwwKSxSbz10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsa289RGUmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIFI9ey4uLlJlLC4uLmNyfTtmdW5jdGlvbiBrZShBLGUpe3JldHVybiBWKEEsbmV3IFIuY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMse3Zpc2l0b3I6ZnVuY3Rpb24odCxyLG8saSl7cmV0dXJuIFIuaXNOb2RlJiZFLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChyLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6aS5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LC4uLmV9KX1mdW5jdGlvbiBGbyhBKXtyZXR1cm4gRS5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csQSkubWFwKGU9PmVbMF09PT0iW10iPyIiOmVbMV18fGVbMF0pfWZ1bmN0aW9uIFVvKEEpe2xldCBlPXt9LHQ9T2JqZWN0LmtleXMoQSkscixvPXQubGVuZ3RoLGk7Zm9yKHI9MDtyPG87cisrKWk9dFtyXSxlW2ldPUFbaV07cmV0dXJuIGV9ZnVuY3Rpb24gTm8oQSl7ZnVuY3Rpb24gZSh0LHIsbyxpKXtsZXQgbj10W2krK107aWYobj09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBsPU51bWJlci5pc0Zpbml0ZSgrbikscD1pPj10Lmxlbmd0aDtyZXR1cm4gbj0hbiYmRS5pc0FycmF5KG8pP28ubGVuZ3RoOm4scD8oRS5oYXNPd25Qcm9wKG8sbik/b1tuXT1bb1tuXSxyXTpvW25dPXIsIWwpOigoIW9bbl18fCFFLmlzT2JqZWN0KG9bbl0pKSYmKG9bbl09W10pLGUodCxyLG9bbl0saSkmJkUuaXNBcnJheShvW25dKSYmKG9bbl09VW8ob1tuXSkpLCFsKX1pZihFLmlzRm9ybURhdGEoQSkmJkUuaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgdD17fTtyZXR1cm4gRS5mb3JFYWNoRW50cnkoQSwocixvKT0+e2UoRm8ociksbyx0LDApfSksdH1yZXR1cm4gbnVsbH12YXIgWkE9Tm87ZnVuY3Rpb24gU28oQSxlLHQpe2lmKEUuaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxFLnRyaW0oQSl9Y2F0Y2gocil7aWYoci5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyByfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIEZlPXt0cmFuc2l0aW9uYWw6dkEsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7bGV0IHI9dC5nZXRDb250ZW50VHlwZSgpfHwiIixvPXIuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLGk9RS5pc09iamVjdChlKTtpZihpJiZFLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSksRS5pc0Zvcm1EYXRhKGUpKXJldHVybiBvP0pTT04uc3RyaW5naWZ5KFpBKGUpKTplO2lmKEUuaXNBcnJheUJ1ZmZlcihlKXx8RS5pc0J1ZmZlcihlKXx8RS5pc1N0cmVhbShlKXx8RS5pc0ZpbGUoZSl8fEUuaXNCbG9iKGUpfHxFLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoRS5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYoRS5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gdC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IGw7aWYoaSl7aWYoci5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4ga2UoZSx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChsPUUuaXNGaWxlTGlzdChlKSl8fHIuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgcD10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIFYobD97ImZpbGVzW10iOmV9OmUscCYmbmV3IHAsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiBpfHxvPyh0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksU28oZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7bGV0IHQ9dGhpcy50cmFuc2l0aW9uYWx8fEZlLnRyYW5zaXRpb25hbCxyPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcsbz10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihFLmlzUmVzcG9uc2UoZSl8fEUuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZFLmlzU3RyaW5nKGUpJiYociYmIXRoaXMucmVzcG9uc2VUeXBlfHxvKSl7bGV0IG49ISh0JiZ0LnNpbGVudEpTT05QYXJzaW5nKSYmbzt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2gobCl7aWYobil0aHJvdyBsLm5hbWU9PT0iU3ludGF4RXJyb3IiP2guZnJvbShsLGguRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6bH19cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOlIuY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOlIuY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O0UuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57RmUuaGVhZGVyc1tBXT17fX0pO3ZhciBJQT1GZTt2YXIgYm89RS50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSxkcj1BPT57bGV0IGU9e30sdCxyLG87cmV0dXJuIEEmJkEuc3BsaXQoYApgKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe289bi5pbmRleE9mKCI6IiksdD1uLnN1YnN0cmluZygwLG8pLnRyaW0oKS50b0xvd2VyQ2FzZSgpLHI9bi5zdWJzdHJpbmcobysxKS50cmltKCksISghdHx8ZVt0XSYmYm9bdF0pJiYodD09PSJzZXQtY29va2llIj9lW3RdP2VbdF0ucHVzaChyKTplW3RdPVtyXTplW3RdPWVbdF0/ZVt0XSsiLCAiK3I6cil9KSxlfTt2YXIgeXI9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiB5QShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFZBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTpFLmlzQXJyYXkoQSk/QS5tYXAoVkEpOlN0cmluZyhBKX1mdW5jdGlvbiBXbyhBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxyO2Zvcig7cj10LmV4ZWMoQSk7KWVbclsxXV09clsyXTtyZXR1cm4gZX12YXIgR289QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gVWUoQSxlLHQscixvKXtpZihFLmlzRnVuY3Rpb24ocikpcmV0dXJuIHIuY2FsbCh0aGlzLGUsdCk7aWYobyYmKGU9dCksISFFLmlzU3RyaW5nKGUpKXtpZihFLmlzU3RyaW5nKHIpKXJldHVybiBlLmluZGV4T2YocikhPT0tMTtpZihFLmlzUmVnRXhwKHIpKXJldHVybiByLnRlc3QoZSl9fWZ1bmN0aW9uIE9vKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxyKT0+dC50b1VwcGVyQ2FzZSgpK3IpfWZ1bmN0aW9uIExvKEEsZSl7bGV0IHQ9RS50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKHI9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxyK3Qse3ZhbHVlOmZ1bmN0aW9uKG8saSxuKXtyZXR1cm4gdGhpc1tyXS5jYWxsKHRoaXMsZSxvLGksbil9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIHNBPWNsYXNze2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQscil7bGV0IG89dGhpcztmdW5jdGlvbiBpKGwscCxCKXtsZXQgYT15QShwKTtpZighYSl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IGc9RS5maW5kS2V5KG8sYSk7KCFnfHxvW2ddPT09dm9pZCAwfHxCPT09ITB8fEI9PT12b2lkIDAmJm9bZ10hPT0hMSkmJihvW2d8fHBdPVZBKGwpKX1sZXQgbj0obCxwKT0+RS5mb3JFYWNoKGwsKEIsYSk9PmkoQixhLHApKTtpZihFLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKW4oZSx0KTtlbHNlIGlmKEUuaXNTdHJpbmcoZSkmJihlPWUudHJpbSgpKSYmIUdvKGUpKW4oZHIoZSksdCk7ZWxzZSBpZihFLmlzT2JqZWN0KGUpJiZFLmlzSXRlcmFibGUoZSkpe2xldCBsPXt9LHAsQjtmb3IobGV0IGEgb2YgZSl7aWYoIUUuaXNBcnJheShhKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7bFtCPWFbMF1dPShwPWxbQl0pP0UuaXNBcnJheShwKT9bLi4ucCxhWzFdXTpbcCxhWzFdXTphWzFdfW4obCx0KX1lbHNlIGUhPW51bGwmJmkodCxlLHIpO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9eUEoZSksZSl7bGV0IHI9RS5maW5kS2V5KHRoaXMsZSk7aWYocil7bGV0IG89dGhpc1tyXTtpZighdClyZXR1cm4gbztpZih0PT09ITApcmV0dXJuIFdvKG8pO2lmKEUuaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsbyxyKTtpZihFLmlzUmVnRXhwKHQpKXJldHVybiB0LmV4ZWMobyk7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhlLHQpe2lmKGU9eUEoZSksZSl7bGV0IHI9RS5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEociYmdGhpc1tyXSE9PXZvaWQgMCYmKCF0fHxVZSh0aGlzLHRoaXNbcl0scix0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCByPXRoaXMsbz0hMTtmdW5jdGlvbiBpKG4pe2lmKG49eUEobiksbil7bGV0IGw9RS5maW5kS2V5KHIsbik7bCYmKCF0fHxVZShyLHJbbF0sbCx0KSkmJihkZWxldGUgcltsXSxvPSEwKX19cmV0dXJuIEUuaXNBcnJheShlKT9lLmZvckVhY2goaSk6aShlKSxvfWNsZWFyKGUpe2xldCB0PU9iamVjdC5rZXlzKHRoaXMpLHI9dC5sZW5ndGgsbz0hMTtmb3IoO3ItLTspe2xldCBpPXRbcl07KCFlfHxVZSh0aGlzLHRoaXNbaV0saSxlLCEwKSkmJihkZWxldGUgdGhpc1tpXSxvPSEwKX1yZXR1cm4gb31ub3JtYWxpemUoZSl7bGV0IHQ9dGhpcyxyPXt9O3JldHVybiBFLmZvckVhY2godGhpcywobyxpKT0+e2xldCBuPUUuZmluZEtleShyLGkpO2lmKG4pe3Rbbl09VkEobyksZGVsZXRlIHRbaV07cmV0dXJufWxldCBsPWU/T28oaSk6U3RyaW5nKGkpLnRyaW0oKTtsIT09aSYmZGVsZXRlIHRbaV0sdFtsXT1WQShvKSxyW2xdPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIEUuZm9yRWFjaCh0aGlzLChyLG8pPT57ciE9bnVsbCYmciE9PSExJiYodFtvXT1lJiZFLmlzQXJyYXkocik/ci5qb2luKCIsICIpOnIpfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrIjogIit0KS5qb2luKGAKYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCByPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2gobz0+ci5zZXQobykpLHJ9c3RhdGljIGFjY2Vzc29yKGUpe2xldCByPSh0aGlzW3lyXT10aGlzW3lyXT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLG89dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gaShuKXtsZXQgbD15QShuKTtyW2xdfHwoTG8obyxuKSxyW2xdPSEwKX1yZXR1cm4gRS5pc0FycmF5KGUpP2UuZm9yRWFjaChpKTppKGUpLHRoaXN9fTtzQS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7RS5yZWR1Y2VEZXNjcmlwdG9ycyhzQS5wcm90b3R5cGUsKHt2YWx1ZTpBfSxlKT0+e2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KHIpe3RoaXNbdF09cn19fSk7RS5mcmVlemVNZXRob2RzKHNBKTt2YXIgTj1zQTtmdW5jdGlvbiBoQShBLGUpe2xldCB0PXRoaXN8fElBLHI9ZXx8dCxvPU4uZnJvbShyLmhlYWRlcnMpLGk9ci5kYXRhO3JldHVybiBFLmZvckVhY2goQSxmdW5jdGlvbihsKXtpPWwuY2FsbCh0LGksby5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxvLm5vcm1hbGl6ZSgpLGl9ZnVuY3Rpb24gd0EoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBocihBLGUsdCl7aC5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIixoLkVSUl9DQU5DRUxFRCxlLHQpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9RS5pbmhlcml0cyhocixoLHtfX0NBTkNFTF9fOiEwfSk7dmFyIEg9aHI7ZnVuY3Rpb24gREEoQSxlLHQpe2xldCByPXQuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyF0LnN0YXR1c3x8IXJ8fHIodC5zdGF0dXMpP0EodCk6ZShuZXcgaCgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Quc3RhdHVzLFtoLkVSUl9CQURfUkVRVUVTVCxoLkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IodC5zdGF0dXMvMTAwKS00XSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIE5lKEEpe2xldCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBKbyhBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLHI9bmV3IEFycmF5KEEpLG89MCxpPTAsbjtyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKHApe2xldCBCPURhdGUubm93KCksYT1yW2ldO258fChuPUIpLHRbb109cCxyW29dPUI7bGV0IGc9aSxRPTA7Zm9yKDtnIT09bzspUSs9dFtnKytdLGc9ZyVBO2lmKG89KG8rMSklQSxvPT09aSYmKGk9KGkrMSklQSksQi1uPGUpcmV0dXJuO2xldCBJPWEmJkItYTtyZXR1cm4gST9NYXRoLnJvdW5kKFEqMWUzL0kpOnZvaWQgMH19dmFyIHdyPUpvO2Z1bmN0aW9uIFBvKEEsZSl7bGV0IHQ9MCxyPTFlMy9lLG8saSxuPShCLGE9RGF0ZS5ub3coKSk9Pnt0PWEsbz1udWxsLGkmJihjbGVhclRpbWVvdXQoaSksaT1udWxsKSxBKC4uLkIpfTtyZXR1cm5bKC4uLkIpPT57bGV0IGE9RGF0ZS5ub3coKSxnPWEtdDtnPj1yP24oQixhKToobz1CLGl8fChpPXNldFRpbWVvdXQoKCk9PntpPW51bGwsbihvKX0sci1nKSkpfSwoKT0+byYmbihvKV19dmFyIERyPVBvO3ZhciBnQT0oQSxlLHQ9Myk9PntsZXQgcj0wLG89d3IoNTAsMjUwKTtyZXR1cm4gRHIoaT0+e2xldCBuPWkubG9hZGVkLGw9aS5sZW5ndGhDb21wdXRhYmxlP2kudG90YWw6dm9pZCAwLHA9bi1yLEI9byhwKSxhPW48PWw7cj1uO2xldCBnPXtsb2FkZWQ6bix0b3RhbDpsLHByb2dyZXNzOmw/bi9sOnZvaWQgMCxieXRlczpwLHJhdGU6Qnx8dm9pZCAwLGVzdGltYXRlZDpCJiZsJiZhPyhsLW4pL0I6dm9pZCAwLGV2ZW50OmksbGVuZ3RoQ29tcHV0YWJsZTpsIT1udWxsLFtlPyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKGcpfSx0KX0sU2U9KEEsZSk9PntsZXQgdD1BIT1udWxsO3JldHVybltyPT5lWzBdKHtsZW5ndGhDb21wdXRhYmxlOnQsdG90YWw6QSxsb2FkZWQ6cn0pLGVbMV1dfSxiZT1BPT4oLi4uZSk9PkUuYXNhcCgoKT0+QSguLi5lKSk7dmFyIFJyPVIuaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSxlKT0+dD0+KHQ9bmV3IFVSTCh0LFIub3JpZ2luKSxBLnByb3RvY29sPT09dC5wcm90b2NvbCYmQS5ob3N0PT09dC5ob3N0JiYoZXx8QS5wb3J0PT09dC5wb3J0KSkpKG5ldyBVUkwoUi5vcmlnaW4pLFIubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KFIubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIga3I9Ui5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsZSx0LHIsbyxpKXtsZXQgbj1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpXTtFLmlzTnVtYmVyKHQpJiZuLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZSh0KS50b0dNVFN0cmluZygpKSxFLmlzU3RyaW5nKHIpJiZuLnB1c2goInBhdGg9IityKSxFLmlzU3RyaW5nKG8pJiZuLnB1c2goImRvbWFpbj0iK28pLGk9PT0hMCYmbi5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9bi5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCBlPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIGU/ZGVjb2RlVVJJQ29tcG9uZW50KGVbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gV2UoQSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChBKX1mdW5jdGlvbiBHZShBLGUpe3JldHVybiBlP0EucmVwbGFjZSgvXC8/XC8kLywiIikrIi8iK2UucmVwbGFjZSgvXlwvKy8sIiIpOkF9ZnVuY3Rpb24gUkEoQSxlLHQpe2xldCByPSFXZShlKTtyZXR1cm4gQSYmKHJ8fHQ9PSExKT9HZShBLGUpOmV9dmFyIEZyPUE9PkEgaW5zdGFuY2VvZiBOP3suLi5BfTpBO2Z1bmN0aW9uIE0oQSxlKXtlPWV8fHt9O2xldCB0PXt9O2Z1bmN0aW9uIHIoQixhLGcsUSl7cmV0dXJuIEUuaXNQbGFpbk9iamVjdChCKSYmRS5pc1BsYWluT2JqZWN0KGEpP0UubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6UX0sQixhKTpFLmlzUGxhaW5PYmplY3QoYSk/RS5tZXJnZSh7fSxhKTpFLmlzQXJyYXkoYSk/YS5zbGljZSgpOmF9ZnVuY3Rpb24gbyhCLGEsZyxRKXtpZihFLmlzVW5kZWZpbmVkKGEpKXtpZighRS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gcih2b2lkIDAsQixnLFEpfWVsc2UgcmV0dXJuIHIoQixhLGcsUSl9ZnVuY3Rpb24gaShCLGEpe2lmKCFFLmlzVW5kZWZpbmVkKGEpKXJldHVybiByKHZvaWQgMCxhKX1mdW5jdGlvbiBuKEIsYSl7aWYoRS5pc1VuZGVmaW5lZChhKSl7aWYoIUUuaXNVbmRlZmluZWQoQikpcmV0dXJuIHIodm9pZCAwLEIpfWVsc2UgcmV0dXJuIHIodm9pZCAwLGEpfWZ1bmN0aW9uIGwoQixhLGcpe2lmKGcgaW4gZSlyZXR1cm4gcihCLGEpO2lmKGcgaW4gQSlyZXR1cm4gcih2b2lkIDAsQil9bGV0IHA9e3VybDppLG1ldGhvZDppLGRhdGE6aSxiYXNlVVJMOm4sdHJhbnNmb3JtUmVxdWVzdDpuLHRyYW5zZm9ybVJlc3BvbnNlOm4scGFyYW1zU2VyaWFsaXplcjpuLHRpbWVvdXQ6bix0aW1lb3V0TWVzc2FnZTpuLHdpdGhDcmVkZW50aWFsczpuLHdpdGhYU1JGVG9rZW46bixhZGFwdGVyOm4scmVzcG9uc2VUeXBlOm4seHNyZkNvb2tpZU5hbWU6bix4c3JmSGVhZGVyTmFtZTpuLG9uVXBsb2FkUHJvZ3Jlc3M6bixvbkRvd25sb2FkUHJvZ3Jlc3M6bixkZWNvbXByZXNzOm4sbWF4Q29udGVudExlbmd0aDpuLG1heEJvZHlMZW5ndGg6bixiZWZvcmVSZWRpcmVjdDpuLHRyYW5zcG9ydDpuLGh0dHBBZ2VudDpuLGh0dHBzQWdlbnQ6bixjYW5jZWxUb2tlbjpuLHNvY2tldFBhdGg6bixyZXNwb25zZUVuY29kaW5nOm4sdmFsaWRhdGVTdGF0dXM6bCxoZWFkZXJzOihCLGEsZyk9Pm8oRnIoQiksRnIoYSksZywhMCl9O3JldHVybiBFLmZvckVhY2goT2JqZWN0LmtleXMoey4uLkEsLi4uZX0pLGZ1bmN0aW9uKGEpe2xldCBnPXBbYV18fG8sUT1nKEFbYV0sZVthXSxhKTtFLmlzVW5kZWZpbmVkKFEpJiZnIT09bHx8KHRbYV09USl9KSx0fXZhciB6QT1BPT57bGV0IGU9TSh7fSxBKSx7ZGF0YTp0LHdpdGhYU1JGVG9rZW46cix4c3JmSGVhZGVyTmFtZTpvLHhzcmZDb29raWVOYW1lOmksaGVhZGVyczpuLGF1dGg6bH09ZTtpZihlLmhlYWRlcnM9bj1OLmZyb20obiksZS51cmw9ZEEoUkEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplciksbCYmbi5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKGwudXNlcm5hbWV8fCIiKSsiOiIrKGwucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGwucGFzc3dvcmQpKToiIikpKSxFLmlzRm9ybURhdGEodCkpe2lmKFIuaGFzU3RhbmRhcmRCcm93c2VyRW52fHxSLmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudiluLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZihFLmlzRnVuY3Rpb24odC5nZXRIZWFkZXJzKSl7bGV0IHA9dC5nZXRIZWFkZXJzKCksQj1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07T2JqZWN0LmVudHJpZXMocCkuZm9yRWFjaCgoW2EsZ10pPT57Qi5pbmNsdWRlcyhhLnRvTG93ZXJDYXNlKCkpJiZuLnNldChhLGcpfSl9fWlmKFIuaGFzU3RhbmRhcmRCcm93c2VyRW52JiYociYmRS5pc0Z1bmN0aW9uKHIpJiYocj1yKGUpKSxyfHxyIT09ITEmJlJyKGUudXJsKSkpe2xldCBwPW8mJmkmJmtyLnJlYWQoaSk7cCYmbi5zZXQobyxwKX1yZXR1cm4gZX07dmFyIHhvPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsVXI9eG8mJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LHIpe2xldCBvPXpBKEEpLGk9by5kYXRhLG49Ti5mcm9tKG8uaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpsLG9uVXBsb2FkUHJvZ3Jlc3M6cCxvbkRvd25sb2FkUHJvZ3Jlc3M6Qn09byxhLGcsUSxJLHM7ZnVuY3Rpb24gdSgpe0kmJkkoKSxzJiZzKCksby5jYW5jZWxUb2tlbiYmby5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShhKSxvLnNpZ25hbCYmby5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGEpfWxldCBtPW5ldyBYTUxIdHRwUmVxdWVzdDttLm9wZW4oby5tZXRob2QudG9VcHBlckNhc2UoKSxvLnVybCwhMCksbS50aW1lb3V0PW8udGltZW91dDtmdW5jdGlvbiBEKCl7aWYoIW0pcmV0dXJuO2xldCBrPU4uZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIG0mJm0uZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLFA9e2RhdGE6IWx8fGw9PT0idGV4dCJ8fGw9PT0ianNvbiI/bS5yZXNwb25zZVRleHQ6bS5yZXNwb25zZSxzdGF0dXM6bS5zdGF0dXMsc3RhdHVzVGV4dDptLnN0YXR1c1RleHQsaGVhZGVyczprLGNvbmZpZzpBLHJlcXVlc3Q6bX07REEoZnVuY3Rpb24oSil7dChKKSx1KCl9LGZ1bmN0aW9uKEope3IoSiksdSgpfSxQKSxtPW51bGx9Im9ubG9hZGVuZCJpbiBtP20ub25sb2FkZW5kPUQ6bS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshbXx8bS5yZWFkeVN0YXRlIT09NHx8bS5zdGF0dXM9PT0wJiYhKG0ucmVzcG9uc2VVUkwmJm0ucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KEQpfSxtLm9uYWJvcnQ9ZnVuY3Rpb24oKXttJiYocihuZXcgaCgiUmVxdWVzdCBhYm9ydGVkIixoLkVDT05OQUJPUlRFRCxBLG0pKSxtPW51bGwpfSxtLm9uZXJyb3I9ZnVuY3Rpb24oRyl7bGV0IFA9RyYmRy5tZXNzYWdlP0cubWVzc2FnZToiTmV0d29yayBFcnJvciIsWD1uZXcgaChQLGguRVJSX05FVFdPUkssQSxtKTtYLmV2ZW50PUd8fG51bGwscihYKSxtPW51bGx9LG0ub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IEc9by50aW1lb3V0PyJ0aW1lb3V0IG9mICIrby50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLFA9by50cmFuc2l0aW9uYWx8fHZBO28udGltZW91dEVycm9yTWVzc2FnZSYmKEc9by50aW1lb3V0RXJyb3JNZXNzYWdlKSxyKG5ldyBoKEcsUC5jbGFyaWZ5VGltZW91dEVycm9yP2guRVRJTUVET1VUOmguRUNPTk5BQk9SVEVELEEsbSkpLG09bnVsbH0saT09PXZvaWQgMCYmbi5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBtJiZFLmZvckVhY2gobi50b0pTT04oKSxmdW5jdGlvbihHLFApe20uc2V0UmVxdWVzdEhlYWRlcihQLEcpfSksRS5pc1VuZGVmaW5lZChvLndpdGhDcmVkZW50aWFscyl8fChtLndpdGhDcmVkZW50aWFscz0hIW8ud2l0aENyZWRlbnRpYWxzKSxsJiZsIT09Impzb24iJiYobS5yZXNwb25zZVR5cGU9by5yZXNwb25zZVR5cGUpLEImJihbUSxzXT1nQShCLCEwKSxtLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixRKSkscCYmbS51cGxvYWQmJihbZyxJXT1nQShwKSxtLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZyksbS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsSSkpLChvLmNhbmNlbFRva2VufHxvLnNpZ25hbCkmJihhPWs9PnttJiYocigha3x8ay50eXBlP25ldyBIKG51bGwsQSxtKTprKSxtLmFib3J0KCksbT1udWxsKX0sby5jYW5jZWxUb2tlbiYmby5jYW5jZWxUb2tlbi5zdWJzY3JpYmUoYSksby5zaWduYWwmJihvLnNpZ25hbC5hYm9ydGVkP2EoKTpvLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsYSkpKTtsZXQgVz1OZShvLnVybCk7aWYoVyYmUi5wcm90b2NvbHMuaW5kZXhPZihXKT09PS0xKXtyKG5ldyBoKCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK1crIjoiLGguRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59bS5zZW5kKGl8fG51bGwpfSl9O3ZhciBNbz0oQSxlKT0+e2xldHtsZW5ndGg6dH09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKGV8fHQpe2xldCByPW5ldyBBYm9ydENvbnRyb2xsZXIsbyxpPWZ1bmN0aW9uKEIpe2lmKCFvKXtvPSEwLGwoKTtsZXQgYT1CIGluc3RhbmNlb2YgRXJyb3I/Qjp0aGlzLnJlYXNvbjtyLmFib3J0KGEgaW5zdGFuY2VvZiBoP2E6bmV3IEgoYSBpbnN0YW5jZW9mIEVycm9yP2EubWVzc2FnZTphKSl9fSxuPWUmJnNldFRpbWVvdXQoKCk9PntuPW51bGwsaShuZXcgaChgdGltZW91dCAke2V9IG9mIG1zIGV4Y2VlZGVkYCxoLkVUSU1FRE9VVCkpfSxlKSxsPSgpPT57QSYmKG4mJmNsZWFyVGltZW91dChuKSxuPW51bGwsQS5mb3JFYWNoKEI9PntCLnVuc3Vic2NyaWJlP0IudW5zdWJzY3JpYmUoaSk6Qi5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsaSl9KSxBPW51bGwpfTtBLmZvckVhY2goQj0+Qi5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsaSkpO2xldHtzaWduYWw6cH09cjtyZXR1cm4gcC51bnN1YnNjcmliZT0oKT0+RS5hc2FwKGwpLHB9fSxOcj1Nbzt2YXIgVG89ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCByPTAsbztmb3IoO3I8dDspbz1yK2UseWllbGQgQS5zbGljZShyLG8pLHI9b30sSG89YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mIFlvKEEpKXlpZWxkKlRvKHQsZSl9LFlvPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOnJ9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgcn19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0sT2U9KEEsZSx0LHIpPT57bGV0IG89SG8oQSxlKSxpPTAsbixsPXA9PntufHwobj0hMCxyJiZyKHApKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChwKXt0cnl7bGV0e2RvbmU6Qix2YWx1ZTphfT1hd2FpdCBvLm5leHQoKTtpZihCKXtsKCkscC5jbG9zZSgpO3JldHVybn1sZXQgZz1hLmJ5dGVMZW5ndGg7aWYodCl7bGV0IFE9aSs9Zzt0KFEpfXAuZW5xdWV1ZShuZXcgVWludDhBcnJheShhKSl9Y2F0Y2goQil7dGhyb3cgbChCKSxCfX0sY2FuY2VsKHApe3JldHVybiBsKHApLG8ucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBTcj02NCoxMDI0LHtpc0Z1bmN0aW9uOlhBfT1FLE9yPSgoe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOnR9KT0+KHtmZXRjaDpBLFJlcXVlc3Q6ZSxSZXNwb25zZTp0fSkpKEUuZ2xvYmFsKSx7UmVhZGFibGVTdHJlYW06YnIsVGV4dEVuY29kZXI6V3J9PUUuZ2xvYmFsLEdyPShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LHFvPUE9PntsZXR7ZmV0Y2g6ZSxSZXF1ZXN0OnQsUmVzcG9uc2U6cn09T2JqZWN0LmFzc2lnbih7fSxPcixBKSxvPVhBKGUpLGk9WEEodCksbj1YQShyKTtpZighbylyZXR1cm4hMTtsZXQgbD1vJiZYQShicikscD1vJiYodHlwZW9mIFdyPT0iZnVuY3Rpb24iPyhzPT51PT5zLmVuY29kZSh1KSkobmV3IFdyKTphc3luYyBzPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgdChzKS5hcnJheUJ1ZmZlcigpKSksQj1pJiZsJiZHcigoKT0+e2xldCBzPSExLHU9bmV3IHQoUi5vcmlnaW4se2JvZHk6bmV3IGJyLG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBzPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIHMmJiF1fSksYT1uJiZsJiZHcigoKT0+RS5pc1JlYWRhYmxlU3RyZWFtKG5ldyByKCIiKS5ib2R5KSksZz17c3RyZWFtOmEmJihzPT5zLmJvZHkpfTtvJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2gocz0+eyFnW3NdJiYoZ1tzXT0odSxtKT0+e2xldCBEPXUmJnVbc107aWYoRClyZXR1cm4gRC5jYWxsKHUpO3Rocm93IG5ldyBoKGBSZXNwb25zZSB0eXBlICcke3N9JyBpcyBub3Qgc3VwcG9ydGVkYCxoLkVSUl9OT1RfU1VQUE9SVCxtKX0pfSk7bGV0IFE9YXN5bmMgcz0+e2lmKHM9PW51bGwpcmV0dXJuIDA7aWYoRS5pc0Jsb2IocykpcmV0dXJuIHMuc2l6ZTtpZihFLmlzU3BlY0NvbXBsaWFudEZvcm0ocykpcmV0dXJuKGF3YWl0IG5ldyB0KFIub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6c30pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoRS5pc0FycmF5QnVmZmVyVmlldyhzKXx8RS5pc0FycmF5QnVmZmVyKHMpKXJldHVybiBzLmJ5dGVMZW5ndGg7aWYoRS5pc1VSTFNlYXJjaFBhcmFtcyhzKSYmKHM9cysiIiksRS5pc1N0cmluZyhzKSlyZXR1cm4oYXdhaXQgcChzKSkuYnl0ZUxlbmd0aH0sST1hc3luYyhzLHUpPT57bGV0IG09RS50b0Zpbml0ZU51bWJlcihzLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIG0/P1EodSl9O3JldHVybiBhc3luYyBzPT57bGV0e3VybDp1LG1ldGhvZDptLGRhdGE6RCxzaWduYWw6VyxjYW5jZWxUb2tlbjprLHRpbWVvdXQ6RyxvbkRvd25sb2FkUHJvZ3Jlc3M6UCxvblVwbG9hZFByb2dyZXNzOlgscmVzcG9uc2VUeXBlOkosaGVhZGVyczphZSx3aXRoQ3JlZGVudGlhbHM6YkE9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6TXR9PXpBKHMpO0o9Sj8oSisiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IFdBPU5yKFtXLGsmJmsudG9BYm9ydFNpZ25hbCgpXSxHKSxFQT1udWxsLF89V0EmJldBLnVuc3Vic2NyaWJlJiYoKCk9PntXQS51bnN1YnNjcmliZSgpfSksVHQ7dHJ5e2lmKFgmJkImJm0hPT0iZ2V0IiYmbSE9PSJoZWFkIiYmKFR0PWF3YWl0IEkoYWUsRCkpIT09MCl7bGV0IHY9bmV3IHQodSx7bWV0aG9kOiJQT1NUIixib2R5OkQsZHVwbGV4OiJoYWxmIn0pLHRBO2lmKEUuaXNGb3JtRGF0YShEKSYmKHRBPXYuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmYWUuc2V0Q29udGVudFR5cGUodEEpLHYuYm9keSl7bGV0W25lLEdBXT1TZShUdCxnQShiZShYKSkpO0Q9T2Uodi5ib2R5LFNyLG5lLEdBKX19RS5pc1N0cmluZyhiQSl8fChiQT1iQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgVD1pJiYiY3JlZGVudGlhbHMiaW4gdC5wcm90b3R5cGUsSHQ9ey4uLk10LHNpZ25hbDpXQSxtZXRob2Q6bS50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6YWUubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpELGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6VD9iQTp2b2lkIDB9O0VBPWkmJm5ldyB0KHUsSHQpO2xldCBqPWF3YWl0KGk/ZShFQSxNdCk6ZSh1LEh0KSksWXQ9YSYmKEo9PT0ic3RyZWFtInx8Sj09PSJyZXNwb25zZSIpO2lmKGEmJihQfHxZdCYmXykpe2xldCB2PXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKHF0PT57dltxdF09altxdF19KTtsZXQgdEE9RS50b0Zpbml0ZU51bWJlcihqLmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbbmUsR0FdPVAmJlNlKHRBLGdBKGJlKFApLCEwKSl8fFtdO2o9bmV3IHIoT2Uoai5ib2R5LFNyLG5lLCgpPT57R0EmJkdBKCksXyYmXygpfSksdil9Sj1KfHwidGV4dCI7bGV0IEJpPWF3YWl0IGdbRS5maW5kS2V5KGcsSil8fCJ0ZXh0Il0oaixzKTtyZXR1cm4hWXQmJl8mJl8oKSxhd2FpdCBuZXcgUHJvbWlzZSgodix0QSk9PntEQSh2LHRBLHtkYXRhOkJpLGhlYWRlcnM6Ti5mcm9tKGouaGVhZGVycyksc3RhdHVzOmouc3RhdHVzLHN0YXR1c1RleHQ6ai5zdGF0dXNUZXh0LGNvbmZpZzpzLHJlcXVlc3Q6RUF9KX0pfWNhdGNoKFQpe3Rocm93IF8mJl8oKSxUJiZULm5hbWU9PT0iVHlwZUVycm9yIiYmL0xvYWQgZmFpbGVkfGZldGNoL2kudGVzdChULm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IGgoIk5ldHdvcmsgRXJyb3IiLGguRVJSX05FVFdPUksscyxFQSkse2NhdXNlOlQuY2F1c2V8fFR9KTpoLmZyb20oVCxUJiZULmNvZGUscyxFQSl9fX0sS289bmV3IE1hcCxMZT1BPT57bGV0IGU9RS5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSxPcixBP0EuZW52Om51bGwpLHtmZXRjaDp0LFJlcXVlc3Q6cixSZXNwb25zZTpvfT1lLGk9W3Isbyx0XSxuPWkubGVuZ3RoLGw9bixwLEIsYT1Lbztmb3IoO2wtLTspcD1pW2xdLEI9YS5nZXQocCksQj09PXZvaWQgMCYmYS5zZXQocCxCPWw/bmV3IE1hcDpxbyhlKSksYT1CO3JldHVybiBCfSxsZz1MZSgpO3ZhciBKZT17aHR0cDpLQSx4aHI6VXIsZmV0Y2g6e2dldDpMZX19O0UuZm9yRWFjaChKZSwoQSxlKT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOmV9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6ZX0pfX0pO3ZhciBMcj1BPT5gLSAke0F9YCx2bz1BPT5FLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsX0E9e2dldEFkYXB0ZXI6KEEsZSk9PntBPUUuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOnR9PUEscixvLGk9e307Zm9yKGxldCBuPTA7bjx0O24rKyl7cj1BW25dO2xldCBsO2lmKG89ciwhdm8ocikmJihvPUplWyhsPVN0cmluZyhyKSkudG9Mb3dlckNhc2UoKV0sbz09PXZvaWQgMCkpdGhyb3cgbmV3IGgoYFVua25vd24gYWRhcHRlciAnJHtsfSdgKTtpZihvJiYoRS5pc0Z1bmN0aW9uKG8pfHwobz1vLmdldChlKSkpKWJyZWFrO2lbbHx8IiMiK25dPW99aWYoIW8pe2xldCBuPU9iamVjdC5lbnRyaWVzKGkpLm1hcCgoW3AsQl0pPT5gYWRhcHRlciAke3B9IGArKEI9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxsPXQ/bi5sZW5ndGg+MT9gc2luY2UgOgpgK24ubWFwKExyKS5qb2luKGAKYCk6IiAiK0xyKG5bMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IGgoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitsLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gb30sYWRhcHRlcnM6SmV9O2Z1bmN0aW9uIFBlKEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBIKG51bGwsQSl9ZnVuY3Rpb24gJEEoQSl7cmV0dXJuIFBlKEEpLEEuaGVhZGVycz1OLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9aEEuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLF9BLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxJQS5hZGFwdGVyLEEpKEEpLnRoZW4oZnVuY3Rpb24ocil7cmV0dXJuIFBlKEEpLHIuZGF0YT1oQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxyKSxyLmhlYWRlcnM9Ti5mcm9tKHIuaGVhZGVycykscn0sZnVuY3Rpb24ocil7cmV0dXJuIHdBKHIpfHwoUGUoQSksciYmci5yZXNwb25zZSYmKHIucmVzcG9uc2UuZGF0YT1oQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxyLnJlc3BvbnNlKSxyLnJlc3BvbnNlLmhlYWRlcnM9Ti5mcm9tKHIucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChyKX0pfXZhciBBZT0iMS4xMi4wIjt2YXIgZWU9e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChBLGUpPT57ZWVbQV09ZnVuY3Rpb24ocil7cmV0dXJuIHR5cGVvZiByPT09QXx8ImEiKyhlPDE/Im4gIjoiICIpK0F9fSk7dmFyIEpyPXt9O2VlLnRyYW5zaXRpb25hbD1mdW5jdGlvbihlLHQscil7ZnVuY3Rpb24gbyhpLG4pe3JldHVybiJbQXhpb3MgdiIrQWUrIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiAnIitpKyInIituKyhyPyIuICIrcjoiIil9cmV0dXJuKGksbixsKT0+e2lmKGU9PT0hMSl0aHJvdyBuZXcgaChvKG4sIiBoYXMgYmVlbiByZW1vdmVkIisodD8iIGluICIrdDoiIikpLGguRVJSX0RFUFJFQ0FURUQpO3JldHVybiB0JiYhSnJbbl0mJihKcltuXT0hMCxjb25zb2xlLndhcm4obyhuLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2Iit0KyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLGU/ZShpLG4sbCk6ITB9fTtlZS5zcGVsbGluZz1mdW5jdGlvbihlKXtyZXR1cm4odCxyKT0+KGNvbnNvbGUud2FybihgJHtyfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke2V9YCksITApfTtmdW5jdGlvbiBabyhBLGUsdCl7aWYodHlwZW9mIEEhPSJvYmplY3QiKXRocm93IG5ldyBoKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0IixoLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgcj1PYmplY3Qua2V5cyhBKSxvPXIubGVuZ3RoO2Zvcig7by0tID4wOyl7bGV0IGk9cltvXSxuPWVbaV07aWYobil7bGV0IGw9QVtpXSxwPWw9PT12b2lkIDB8fG4obCxpLEEpO2lmKHAhPT0hMCl0aHJvdyBuZXcgaCgib3B0aW9uICIraSsiIG11c3QgYmUgIitwLGguRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnRpbnVlfWlmKHQhPT0hMCl0aHJvdyBuZXcgaCgiVW5rbm93biBvcHRpb24gIitpLGguRVJSX0JBRF9PUFRJT04pfX12YXIga0E9e2Fzc2VydE9wdGlvbnM6Wm8sdmFsaWRhdG9yczplZX07dmFyIFk9a0EudmFsaWRhdG9ycyxCQT1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmRlZmF1bHRzPWV8fHt9LHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBoZSxyZXNwb25zZTpuZXcgaGV9fWFzeW5jIHJlcXVlc3QoZSx0KXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QoZSx0KX1jYXRjaChyKXtpZihyIGluc3RhbmNlb2YgRXJyb3Ipe2xldCBvPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKG8pOm89bmV3IEVycm9yO2xldCBpPW8uc3RhY2s/by5zdGFjay5yZXBsYWNlKC9eLitcbi8sIiIpOiIiO3RyeXtyLnN0YWNrP2kmJiFTdHJpbmcoci5zdGFjaykuZW5kc1dpdGgoaS5yZXBsYWNlKC9eLitcbi4rXG4vLCIiKSkmJihyLnN0YWNrKz1gCmAraSk6ci5zdGFjaz1pfWNhdGNoe319dGhyb3cgcn19X3JlcXVlc3QoZSx0KXt0eXBlb2YgZT09InN0cmluZyI/KHQ9dHx8e30sdC51cmw9ZSk6dD1lfHx7fSx0PU0odGhpcy5kZWZhdWx0cyx0KTtsZXR7dHJhbnNpdGlvbmFsOnIscGFyYW1zU2VyaWFsaXplcjpvLGhlYWRlcnM6aX09dDtyIT09dm9pZCAwJiZrQS5hc3NlcnRPcHRpb25zKHIse3NpbGVudEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbil9LCExKSxvIT1udWxsJiYoRS5pc0Z1bmN0aW9uKG8pP3QucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOm99OmtBLmFzc2VydE9wdGlvbnMobyx7ZW5jb2RlOlkuZnVuY3Rpb24sc2VyaWFsaXplOlkuZnVuY3Rpb259LCEwKSksdC5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/dC5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOnQuYWxsb3dBYnNvbHV0ZVVybHM9ITApLGtBLmFzc2VydE9wdGlvbnModCx7YmFzZVVybDpZLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpZLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSx0Lm1ldGhvZD0odC5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgbj1pJiZFLm1lcmdlKGkuY29tbW9uLGlbdC5tZXRob2RdKTtpJiZFLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0scz0+e2RlbGV0ZSBpW3NdfSksdC5oZWFkZXJzPU4uY29uY2F0KG4saSk7bGV0IGw9W10scD0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24odSl7dHlwZW9mIHUucnVuV2hlbj09ImZ1bmN0aW9uIiYmdS5ydW5XaGVuKHQpPT09ITF8fChwPXAmJnUuc3luY2hyb25vdXMsbC51bnNoaWZ0KHUuZnVsZmlsbGVkLHUucmVqZWN0ZWQpKX0pO2xldCBCPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24odSl7Qi5wdXNoKHUuZnVsZmlsbGVkLHUucmVqZWN0ZWQpfSk7bGV0IGEsZz0wLFE7aWYoIXApe2xldCBzPVskQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKHMudW5zaGlmdCguLi5sKSxzLnB1c2goLi4uQiksUT1zLmxlbmd0aCxhPVByb21pc2UucmVzb2x2ZSh0KTtnPFE7KWE9YS50aGVuKHNbZysrXSxzW2crK10pO3JldHVybiBhfVE9bC5sZW5ndGg7bGV0IEk9dDtmb3IoZz0wO2c8UTspe2xldCBzPWxbZysrXSx1PWxbZysrXTt0cnl7ST1zKEkpfWNhdGNoKG0pe3UuY2FsbCh0aGlzLG0pO2JyZWFrfX10cnl7YT0kQS5jYWxsKHRoaXMsSSl9Y2F0Y2gocyl7cmV0dXJuIFByb21pc2UucmVqZWN0KHMpfWZvcihnPTAsUT1CLmxlbmd0aDtnPFE7KWE9YS50aGVuKEJbZysrXSxCW2crK10pO3JldHVybiBhfWdldFVyaShlKXtlPU0odGhpcy5kZWZhdWx0cyxlKTtsZXQgdD1SQShlLmJhc2VVUkwsZS51cmwsZS5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIGRBKHQsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKX19O0UuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24oZSl7QkEucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMucmVxdWVzdChNKHJ8fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOihyfHx7fSkuZGF0YX0pKX19KTtFLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHIpe3JldHVybiBmdW5jdGlvbihpLG4sbCl7cmV0dXJuIHRoaXMucmVxdWVzdChNKGx8fHt9LHttZXRob2Q6ZSxoZWFkZXJzOnI/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOmksZGF0YTpufSkpfX1CQS5wcm90b3R5cGVbZV09dCgpLEJBLnByb3RvdHlwZVtlKyJGb3JtIl09dCghMCl9KTt2YXIgRkE9QkE7dmFyIHhlPWNsYXNzIEF7Y29uc3RydWN0b3IoZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCB0O3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihpKXt0PWl9KTtsZXQgcj10aGlzO3RoaXMucHJvbWlzZS50aGVuKG89PntpZighci5fbGlzdGVuZXJzKXJldHVybjtsZXQgaT1yLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7aS0tID4wOylyLl9saXN0ZW5lcnNbaV0obyk7ci5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1vPT57bGV0IGksbj1uZXcgUHJvbWlzZShsPT57ci5zdWJzY3JpYmUobCksaT1sfSkudGhlbihvKTtyZXR1cm4gbi5jYW5jZWw9ZnVuY3Rpb24oKXtyLnVuc3Vic2NyaWJlKGkpfSxufSxlKGZ1bmN0aW9uKGksbixsKXtyLnJlYXNvbnx8KHIucmVhc29uPW5ldyBIKGksbixsKSx0KHIucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKGUpe2lmKHRoaXMucmVhc29uKXtlKHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19dW5zdWJzY3JpYmUoZSl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IHQ9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoZSk7dCE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKHQsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCBlPW5ldyBBYm9ydENvbnRyb2xsZXIsdD1yPT57ZS5hYm9ydChyKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKHQpLGUuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKHQpLGUuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgZTtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24obyl7ZT1vfSksY2FuY2VsOmV9fX0sUHI9eGU7ZnVuY3Rpb24gTWUoQSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBBLmFwcGx5KG51bGwsdCl9fWZ1bmN0aW9uIFRlKEEpe3JldHVybiBFLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBIZT17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoSGUpLmZvckVhY2goKFtBLGVdKT0+e0hlW2VdPUF9KTt2YXIgeHI9SGU7ZnVuY3Rpb24gTXIoQSl7bGV0IGU9bmV3IEZBKEEpLHQ9bUEoRkEucHJvdG90eXBlLnJlcXVlc3QsZSk7cmV0dXJuIEUuZXh0ZW5kKHQsRkEucHJvdG90eXBlLGUse2FsbE93bktleXM6ITB9KSxFLmV4dGVuZCh0LGUsbnVsbCx7YWxsT3duS2V5czohMH0pLHQuY3JlYXRlPWZ1bmN0aW9uKG8pe3JldHVybiBNcihNKEEsbykpfSx0fXZhciBGPU1yKElBKTtGLkF4aW9zPUZBO0YuQ2FuY2VsZWRFcnJvcj1IO0YuQ2FuY2VsVG9rZW49UHI7Ri5pc0NhbmNlbD13QTtGLlZFUlNJT049QWU7Ri50b0Zvcm1EYXRhPVY7Ri5BeGlvc0Vycm9yPWg7Ri5DYW5jZWw9Ri5DYW5jZWxlZEVycm9yO0YuYWxsPWZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChlKX07Ri5zcHJlYWQ9TWU7Ri5pc0F4aW9zRXJyb3I9VGU7Ri5tZXJnZUNvbmZpZz1NO0YuQXhpb3NIZWFkZXJzPU47Ri5mb3JtVG9KU09OPUE9PlpBKEUuaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7Ri5nZXRBZGFwdGVyPV9BLmdldEFkYXB0ZXI7Ri5IdHRwU3RhdHVzQ29kZT14cjtGLmRlZmF1bHQ9Rjt2YXIgcT1GO3ZhcntBeGlvczpnQixBeGlvc0Vycm9yOkJCLENhbmNlbGVkRXJyb3I6Q0IsaXNDYW5jZWw6bEIsQ2FuY2VsVG9rZW46UUIsVkVSU0lPTjpFQixhbGw6cEIsQ2FuY2VsOm1CLGlzQXhpb3NFcnJvcjp1QixzcHJlYWQ6ZkIsdG9Gb3JtRGF0YTpjQixBeGlvc0hlYWRlcnM6ZEIsSHR0cFN0YXR1c0NvZGU6eUIsZm9ybVRvSlNPTjpoQixnZXRBZGFwdGVyOndCLG1lcmdlQ29uZmlnOkRCfT1xO2FzeW5jIGZ1bmN0aW9uIFZvKEEsZSl7bGV0IHQ9QSxyPW51bGw7aWYodD09bnVsbClyPW5ldyBXb3JrZXIobmV3IFVSTCgiLi93ZWItd29ya2Vycy9pdGstd2FzbS1waXBlbGluZS53b3JrZXIuanMiLGltcG9ydC5tZXRhLnVybCkse3R5cGU6Im1vZHVsZSJ9KTtlbHNlIGlmKHQuc3RhcnRzV2l0aCgiaHR0cCIpKXtsZXQgbz1hd2FpdCBxLmdldCh0LHtyZXNwb25zZVR5cGU6ImJsb2IiLHBhcmFtczplfSksaT1VUkwuY3JlYXRlT2JqZWN0VVJMKG8uZGF0YSk7cj1uZXcgV29ya2VyKGkse3R5cGU6Im1vZHVsZSJ9KX1lbHNlIHI9bmV3IFdvcmtlcih0LHt0eXBlOiJtb2R1bGUifSk7cmV0dXJuIHJ9dmFyIFVBPVZvO2Z1bmN0aW9uIFRyKEEpe2xldCBlPW1lKEEpLHQ9QTtyZXR1cm4gdC50ZXJtaW5hdGVkPSExLHQud29ya2VyUHJveHk9ZSx0Lm9yaWdpbmFsVGVybWluYXRlPXQudGVybWluYXRlLHQudGVybWluYXRlPSgpPT57dC50ZXJtaW5hdGVkPSEwLHQud29ya2VyUHJveHlbcGVdKCksdC5vcmlnaW5hbFRlcm1pbmF0ZSgpfSx7d29ya2VyUHJveHk6ZSx3b3JrZXI6dH19YXN5bmMgZnVuY3Rpb24gem8oQSxlLHQpe2xldCByO2lmKEEhPW51bGwpe2xldCBpPUE7cmV0dXJuIGkud29ya2VyUHJveHkhPT12b2lkIDA/KHI9aS53b3JrZXJQcm94eSx7d29ya2VyUHJveHk6cix3b3JrZXI6aX0pOlRyKEEpfWxldCBvPWF3YWl0IFVBKGUsdCk7cmV0dXJuIFRyKG8pfXZhciBIcj16bzt2YXIgTkEsSyxxZSxZZT17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe3FlPW5ldyBVaW50OEFycmF5KEsuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSx0ZT1jbGFzc3tpbml0KCl7cmV0dXJuIE5BfHwodHlwZW9mIGZldGNoPCJ1Ij9OQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK1lyKS50aGVuKGU9PmUuYXJyYXlCdWZmZXIoKSkudGhlbihlPT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShlLFllKSkudGhlbih0aGlzLl9pbml0KTpOQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShZciwiYmFzZTY0IiksWWUpLnRoZW4odGhpcy5faW5pdCksTkEpfV9pbml0KGUpe0s9ZS5pbnN0YW5jZSxZZS5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUoZSx0PTApe2lmKCFLKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCByPWUuYnl0ZUxlbmd0aCxvPUsuZXhwb3J0cy5tYWxsb2Mocik7cWUuc2V0KGUsbyksdD10fHxOdW1iZXIoSy5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUobyxyKSk7bGV0IGk9Sy5leHBvcnRzLm1hbGxvYyh0KSxuPUsuZXhwb3J0cy5aU1REX2RlY29tcHJlc3MoaSx0LG8sciksbD1xZS5zbGljZShpLGkrbik7cmV0dXJuIEsuZXhwb3J0cy5mcmVlKG8pLEsuZXhwb3J0cy5mcmVlKGkpLGx9fSxZcj0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciBxcj1uZXcgdGUsS3I9ITE7YXN5bmMgZnVuY3Rpb24gWG8oQSxlLHQpe2xldCByPSJ1bmtub3duIjt0eXBlb2YgQSE9InN0cmluZyI/cj1BLmhyZWY6QS5zdGFydHNXaXRoKCJodHRwIik/cj1BOnI9dHlwZW9mIGU8InUiP2Ake2V9LyR7QX1gOkEsci5lbmRzV2l0aCgiLmpzIikmJihyPXIuc3Vic3RyaW5nKDAsci5sZW5ndGgtMykpLHIuZW5kc1dpdGgoIi53YXNtIikmJihyPXIuc3Vic3RyaW5nKDAsci5sZW5ndGgtNSkpLHIuZW5kc1dpdGgoIi53YXNtLnpzdCIpJiYocj1yLnN1YnN0cmluZygwLHIubGVuZ3RoLTkpKTtsZXQgbz1gJHtyfS53YXNtYCxpPWF3YWl0IHEuZ2V0KGAke299LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczp0fSk7S3J8fChhd2FpdCBxci5pbml0KCksS3I9ITApO2xldCBsPXFyLmRlY29kZShuZXcgVWludDhBcnJheShpLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtyfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5Omx9KX12YXIganI9WG87dmFyIHZyPWFzeW5jKCk9PldlYkFzc2VtYmx5LnZhbGlkYXRlKG5ldyBVaW50OEFycmF5KFswLDk3LDExNSwxMDksMSwwLDAsMCwxLDUsMSw5NiwwLDEsMTIzLDMsMiwxLDAsMTAsMTAsMSw4LDAsNjUsMCwyNTMsMTUsMjUzLDk4LDExXSkpO3ZhciB6cj10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixacj1uZXcgVGV4dEVuY29kZXIsVnI9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIF9vKEEsZSl7bGV0IHQ9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0scj1BLmZzX29wZW4oZSx0LmZsYWdzKSxpPUEuZnNfc3RhdChlKS5zaXplLG49bnVsbDt6cj9uPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihpKTpuPW5ldyBBcnJheUJ1ZmZlcihpKTtsZXQgbD1uZXcgVWludDhBcnJheShuKTtyZXR1cm4gQS5mc19yZWFkKHIsbCwwLGksMCksQS5mc19jbG9zZShyKSxsfWZ1bmN0aW9uIFhyKEEsZSx0KXtsZXQgcj1udWxsO3pyP3I9bmV3IFNoYXJlZEFycmF5QnVmZmVyKHQpOnI9bmV3IEFycmF5QnVmZmVyKHQpO2xldCBvPW5ldyBVaW50OEFycmF5KHIpLGk9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGUsdCk7cmV0dXJuIG8uc2V0KGkpLG99ZnVuY3Rpb24gVShBLGUsdCxyKXtsZXQgbz0wO3JldHVybiBlIT09bnVsbCYmKG89QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxyLGUuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpLG8pKSxvfWZ1bmN0aW9uIHooQSxlLHQpe2xldCByPUpTT04uc3RyaW5naWZ5KGUpLG89QS5sZW5ndGhCeXRlc1VURjgocikrMSxpPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxvXSk7QS5zdHJpbmdUb1VURjgocixpLG8pfWZ1bmN0aW9uIGIoQSxlLHQscil7bGV0IG89QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksaT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKSxuPVhyKEEsbyxpKTtyZXR1cm4gTyhyLG4uYnVmZmVyKX1mdW5jdGlvbiBTQShBLGUpe2xldCB0PUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsZV0pLHI9QS5VVEY4VG9TdHJpbmcodCk7cmV0dXJuIEpTT04ucGFyc2Uocil9ZnVuY3Rpb24gJG8oQSxlLHQscil7ciE9bnVsbCYmci5sZW5ndGg+MCYmci5mb3JFYWNoKGZ1bmN0aW9uKEIsYSl7c3dpdGNoKEIudHlwZSl7Y2FzZSBDLlRleHRTdHJlYW06e2xldCBnPVpyLmVuY29kZShCLmRhdGEuZGF0YSksUT1VKEEsZyxhLDApLEk9e3NpemU6Zy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gfTt6KEEsSSxhKTticmVha31jYXNlIEMuSnNvbkNvbXBhdGlibGU6e2xldCBnPVpyLmVuY29kZShKU09OLnN0cmluZ2lmeShCLmRhdGEpKSxRPVUoQSxnLGEsMCksST17c2l6ZTpnLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWB9O3ooQSxJLGEpO2JyZWFrfWNhc2UgQy5CaW5hcnlTdHJlYW06e2xldCBnPUIuZGF0YS5kYXRhLFE9VShBLGcsYSwwKSxJPXtzaXplOmcuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YH07eihBLEksYSk7YnJlYWt9Y2FzZSBDLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBDLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIEMuSW1hZ2U6e2xldCBnPUIuZGF0YSxRPVUoQSxnLmRhdGEsYSwwKSxJPVUoQSxnLmRpcmVjdGlvbixhLDEpLHM9dHlwZW9mIGcubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oZy5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLHU9e2ltYWdlVHlwZTpnLmltYWdlVHlwZSxuYW1lOmcubmFtZSxvcmlnaW46Zy5vcmlnaW4sc3BhY2luZzpnLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7SX1gLHNpemU6Zy5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbWV0YWRhdGE6c307eihBLHUsYSk7YnJlYWt9Y2FzZSBDLk1lc2g6e2xldCBnPUIuZGF0YSxRPVUoQSxnLnBvaW50cyxhLDApLEk9VShBLGcuY2VsbHMsYSwxKSxzPVUoQSxnLnBvaW50RGF0YSxhLDIpLHU9VShBLGcuY2VsbERhdGEsYSwzKSxtPXttZXNoVHlwZTpnLm1lc2hUeXBlLG5hbWU6Zy5uYW1lLG51bWJlck9mUG9pbnRzOmcubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbHM6Zy5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7SX1gLGNlbGxCdWZmZXJTaXplOmcuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczpnLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7c31gLG51bWJlck9mQ2VsbFBpeGVsczpnLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3V9YH07eihBLG0sYSk7YnJlYWt9Y2FzZSBDLlBvaW50U2V0OntsZXQgZz1CLmRhdGEsUT1VKEEsZy5wb2ludHMsYSwwKSxJPVUoQSxnLnBvaW50RGF0YSxhLDEpLHM9e3BvaW50U2V0VHlwZTpnLnBvaW50U2V0VHlwZSxuYW1lOmcubmFtZSxudW1iZXJPZlBvaW50czpnLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxudW1iZXJPZlBvaW50UGl4ZWxzOmcubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtJfWB9O3ooQSxzLGEpO2JyZWFrfWNhc2UgQy5UcmFuc2Zvcm1MaXN0OntsZXQgZz1CLmRhdGEsUT1bXSxJPTA7Zy5mb3JFYWNoKHM9PntsZXQgdT0iIixtPSIiO3MudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJih1PWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7VShBLHMuZml4ZWRQYXJhbWV0ZXJzLGEsSSl9YCxJKz0xLG09YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtVKEEscy5wYXJhbWV0ZXJzLGEsSSl9YCxJKz0xKTtsZXQgRD17dHJhbnNmb3JtVHlwZTpzLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6cy5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6cy5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpzLm5hbWUsaW5wdXRTcGFjZU5hbWU6cy5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6cy5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczptLGZpeGVkUGFyYW1ldGVyczp1fTtRLnB1c2goRCl9KSx6KEEsUSxhKTticmVha31jYXNlIEMuUG9seURhdGE6e2xldCBnPUIuZGF0YSxRPVUoQSxnLnBvaW50cyxhLDApLEk9VShBLGcudmVydGljZXMsYSwxKSxzPVUoQSxnLmxpbmVzLGEsMiksdT1VKEEsZy5wb2x5Z29ucyxhLDMpLG09VShBLGcudHJpYW5nbGVTdHJpcHMsYSw0KSxEPVUoQSxnLnBvaW50RGF0YSxhLDUpLFc9VShBLGcucG9pbnREYXRhLGEsNiksaz17cG9seURhdGFUeXBlOmcucG9seURhdGFUeXBlLG5hbWU6Zy5uYW1lLG51bWJlck9mUG9pbnRzOmcubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLHZlcnRpY2VzQnVmZmVyU2l6ZTpnLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0l9YCxsaW5lc0J1ZmZlclNpemU6Zy5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtzfWAscG9seWdvbnNCdWZmZXJTaXplOmcucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTpnLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke219YCxudW1iZXJPZlBvaW50UGl4ZWxzOmcubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtEfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOmcubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7V31gfTt6KEEsayxhKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgbz1BLnN0YWNrU2F2ZSgpLGk9MDt0cnl7aT1BLmNhbGxNYWluKGUuc2xpY2UoKSl9Y2F0Y2goQil7dGhyb3cgdHlwZW9mIEI9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoQikpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksQn1maW5hbGx5e0Euc3RhY2tSZXN0b3JlKG8pfWxldCBuPUEuZ2V0TW9kdWxlU3Rkb3V0KCksbD1BLmdldE1vZHVsZVN0ZGVycigpLHA9W107cmV0dXJuIHQhPW51bGwmJnQubGVuZ3RoPjAmJmk9PT0wJiZ0LmZvckVhY2goZnVuY3Rpb24oQixhKXtsZXQgZz1udWxsO3N3aXRjaChCLnR5cGUpe2Nhc2UgQy5UZXh0U3RyZWFtOntsZXQgST1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxhLDBdKSxzPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGEsMF0pLHU9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEkscyk7Zz17ZGF0YTpWci5kZWNvZGUodSl9O2JyZWFrfWNhc2UgQy5Kc29uQ29tcGF0aWJsZTp7bGV0IEk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsYSwwXSkscz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxhLDBdKSx1PW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixJLHMpO2c9SlNPTi5wYXJzZShWci5kZWNvZGUodSkpO2JyZWFrfWNhc2UgQy5CaW5hcnlTdHJlYW06e2xldCBJPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGEsMF0pLHM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsYSwwXSk7Zz17ZGF0YTpYcihBLEkscyl9O2JyZWFrfWNhc2UgQy5UZXh0RmlsZTp7Zz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoQi5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIEMuQmluYXJ5RmlsZTp7Zz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOl9vKEEsQi5kYXRhLnBhdGgpfTticmVha31jYXNlIEMuSW1hZ2U6e2xldCBJPVNBKEEsYSk7SS5kYXRhPWIoQSxhLDAsSS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksSS5kaXJlY3Rpb249YihBLGEsMSxTLkZsb2F0NjQpLEkubWV0YWRhdGE9bmV3IE1hcChJLm1ldGFkYXRhKSxnPUk7YnJlYWt9Y2FzZSBDLk1lc2g6e2xldCBJPVNBKEEsYSk7SS5udW1iZXJPZlBvaW50cz4wP0kucG9pbnRzPWIoQSxhLDAsSS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkkucG9pbnRzPU8oSS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxJLm51bWJlck9mQ2VsbHM+MD9JLmNlbGxzPWIoQSxhLDEsSS5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6SS5jZWxscz1PKEkubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxJLm51bWJlck9mUG9pbnRQaXhlbHM+MD9JLnBvaW50RGF0YT1iKEEsYSwyLEkubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkkucG9pbnREYXRhPU8oSS5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEkubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/SS5jZWxsRGF0YT1iKEEsYSwzLEkubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6SS5jZWxsRGF0YT1PKEkubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGc9STticmVha31jYXNlIEMuUG9pbnRTZXQ6e2xldCBJPVNBKEEsYSk7SS5udW1iZXJPZlBvaW50cz4wP0kucG9pbnRzPWIoQSxhLDAsSS5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpJLnBvaW50cz1PKEkucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEkubnVtYmVyT2ZQb2ludFBpeGVscz4wP0kucG9pbnREYXRhPWIoQSxhLDEsSS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkkucG9pbnREYXRhPU8oSS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxnPUk7YnJlYWt9Y2FzZSBDLlRyYW5zZm9ybUxpc3Q6e2xldCBJPVNBKEEsYSkscz0wO0kuZm9yRWFjaCgodSxtKT0+e3UudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJih1Lm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihJW21dLmZpeGVkUGFyYW1ldGVycz1iKEEsYSxzLFMuRmxvYXQ2NCkpLHMrPTEsdS5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKElbbV0ucGFyYW1ldGVycz1iKEEsYSxzLHUudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSkscys9MSl9KSxnPUk7YnJlYWt9Y2FzZSBDLlBvbHlEYXRhOntsZXQgST1TQShBLGEpO0kubnVtYmVyT2ZQb2ludHM+MD9JLnBvaW50cz1iKEEsYSwwLFMuRmxvYXQzMik6SS5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxJLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP0kudmVydGljZXM9YihBLGEsMSx3LlVJbnQzMik6SS52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksSS5saW5lc0J1ZmZlclNpemU+MD9JLmxpbmVzPWIoQSxhLDIsdy5VSW50MzIpOkkubGluZXM9bmV3IFVpbnQzMkFycmF5LEkucG9seWdvbnNCdWZmZXJTaXplPjA/SS5wb2x5Z29ucz1iKEEsYSwzLHcuVUludDMyKTpJLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxJLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP0kudHJpYW5nbGVTdHJpcHM9YihBLGEsNCx3LlVJbnQzMik6SS50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksSS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/SS5wb2ludERhdGE9YihBLGEsNSxJLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6SS5wb2ludERhdGE9TyhJLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEkubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/SS5jZWxsRGF0YT1iKEEsYSw2LEkucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkkuY2VsbERhdGE9TyhJLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksZz1JO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IFE9e3R5cGU6Qi50eXBlLGRhdGE6Z307cC5wdXNoKFEpfSkse3JldHVyblZhbHVlOmksc3Rkb3V0Om4sc3RkZXJyOmwsb3V0cHV0czpwfX12YXIgX3I9JG87dmFyIEFhPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBlYShBLGUpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IHQ9W107Zm9yKGxldCByPTA7cjxBLmxlbmd0aDtyKyspe2xldCBvPXRhKEFbcl0sZSk7byE9PW51bGwmJnQucHVzaChvKX1yZXR1cm4gdH1mdW5jdGlvbiB0YShBLGUpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IHQ9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/dD1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJih0PUEpLEFhJiZ0IGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDplP3Q6dC5zbGljZSgwKX12YXIgJHI9ZWE7ZnVuY3Rpb24gcmEoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIEFpPXJhO2Z1bmN0aW9uIGlhKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBlaT1pYTtmdW5jdGlvbiBvYShBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgdGk9b2E7dmFyIGFhO2Z1bmN0aW9uIHJlKCl7cmV0dXJuIGFhfXZhciBuYTtmdW5jdGlvbiByaSgpe3JldHVybiBuYX12YXIgSWE7ZnVuY3Rpb24gaWUoKXtyZXR1cm4gSWF9dmFyIEtlPW5ldyBNYXA7ZnVuY3Rpb24gc2EoKXtsZXQgQT1pZSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW51bGwpLEF9ZnVuY3Rpb24gaWkoKXtsZXQgQT1yZSgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPW5ldyBVUkwoIi9waXBlbGluZXMiLGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbikuaHJlZiksQX1mdW5jdGlvbiBvZSgpe2xldCBBPXJpKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9e30pLEF9YXN5bmMgZnVuY3Rpb24gZ2EoQSxlLHQpe2xldCByPUEsbz1BO2lmKHR5cGVvZiBBIT0ic3RyaW5nIiYmKHI9bmV3IFVSTChBLmhyZWYpLG89ci5ocmVmKSxLZS5oYXMobykpcmV0dXJuIEtlLmdldChvKTt7bGV0IGk9YXdhaXQganIoQSxlPy50b1N0cmluZygpPz9paSgpLHQ/P29lKCkpO3JldHVybiBLZS5zZXQobyxpKSxpfX1hc3luYyBmdW5jdGlvbiBCYShBLGUsdCxyLG8pe2lmKCFhd2FpdCB2cigpKXtsZXQgbT0iV2ViQXNzZW1ibHkgU0lNRCBzdXBwb3J0IGlzIHJlcXVpcmVkIC0tIHBsZWFzZSB1cGRhdGUgeW91ciBicm93c2VyLiI7dGhyb3cgYWxlcnQobSksbmV3IEVycm9yKG0pfWxldCBpPW8/LndlYldvcmtlcj8/bnVsbDtpZihpPT09ITEpe2xldCBtPWF3YWl0IGdhKEEudG9TdHJpbmcoKSxvPy5waXBlbGluZUJhc2VVcmwsbz8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/b2UoKSk7cmV0dXJuIF9yKG0sZSx0LHIpfWxldCBuPWksbD1vPy5waXBlbGluZVdvcmtlclVybD8/c2EoKSxwPXR5cGVvZiBsIT0ic3RyaW5nIiYmdHlwZW9mIGw/LmhyZWY8InUiP2wuaHJlZjpsLHt3b3JrZXJQcm94eTpCLHdvcmtlcjphfT1hd2FpdCBIcihuLHAsbz8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/b2UoKSk7bj1hO2xldCBnPVtdO3IhPW51bGwmJnIubGVuZ3RoPjAmJnIuZm9yRWFjaChmdW5jdGlvbihtKXtpZihtLnR5cGU9PT1DLkJpbmFyeVN0cmVhbSl7bGV0IEQ9bS5kYXRhLmRhdGE7Zy5wdXNoKEQpfWVsc2UgaWYobS50eXBlPT09Qy5CaW5hcnlGaWxlKXtsZXQgRD1tLmRhdGEuZGF0YTtnLnB1c2goRCl9ZWxzZSBpZihtLnR5cGU9PT1DLkltYWdlKXtsZXQgRD1tLmRhdGE7RC5kYXRhIT09bnVsbCYmZy5wdXNoKC4uLkFpKEQpKX1lbHNlIGlmKG0udHlwZT09PUMuTWVzaCl7bGV0IEQ9bS5kYXRhO2cucHVzaCguLi5laShEKSl9ZWxzZSBpZihtLnR5cGU9PT1DLlBvbHlEYXRhKXtsZXQgRD1tLmRhdGE7Zy5wdXNoKC4uLnRpKEQpKX19KTtsZXQgUT1vPy5waXBlbGluZUJhc2VVcmw/P2lpKCksST10eXBlb2YgUSE9InN0cmluZyImJnR5cGVvZiBRPy5ocmVmPCJ1Ij9RLmhyZWY6USxzPXIhPW51bGw/dWUociwkcihnLG8/Lm5vQ29weSkpOm51bGwsdT1hd2FpdCBCLnJ1blBpcGVsaW5lKEEudG9TdHJpbmcoKSxJLGUsdCxzLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P29lKCkpO3JldHVybntyZXR1cm5WYWx1ZTp1LnJldHVyblZhbHVlLHN0ZG91dDp1LnN0ZG91dCxzdGRlcnI6dS5zdGRlcnIsb3V0cHV0czp1Lm91dHB1dHMsd2ViV29ya2VyOm59fXZhciBjPUJhO3ZhciBDYT1udWxsO2Z1bmN0aW9uIG9pKCl7cmV0dXJuIENhfXZhciBsYT0iMS42LjAiLGFpPWxhO3ZhciBqZSxRYT1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AaXRrLXdhc20vaW1hZ2UtaW9AJHthaX0vZGlzdC9waXBlbGluZXNgO2Z1bmN0aW9uIHVDKEEpe2plPUF9ZnVuY3Rpb24gZCgpe2lmKHR5cGVvZiBqZTwidSIpcmV0dXJuIGplO2xldCBBPXJlKCk7cmV0dXJuIHR5cGVvZiBBPCJ1Ij9BOlFhfXZhciB2ZSxFYT1udWxsO2Z1bmN0aW9uIG5pKEEpe3ZlPUF9ZnVuY3Rpb24gZigpe2lmKHR5cGVvZiB2ZTwidSIpcmV0dXJuIHZlO2xldCBBPWllKCk7cmV0dXJuIHR5cGVvZiBBPCJ1Ij9BOkVhfXZhciBDQT1udWxsO2FzeW5jIGZ1bmN0aW9uIElpKCl7bGV0IEE9ZigpLGU9dHlwZW9mIEEhPSJzdHJpbmciJiZ0eXBlb2YgQT8uaHJlZjwidSI/QS5ocmVmOkE7Q0E9YXdhaXQgVUEoZSl9ZnVuY3Rpb24gREMoQSl7Q0E9QX1hc3luYyBmdW5jdGlvbiB5KCl7aWYoQ0EhPT1udWxsKXJldHVybiBDQS50ZXJtaW5hdGVkJiZhd2FpdCBJaSgpLENBO2xldCBBPW9pKCk7cmV0dXJuIEEhPT1udWxsP0E6KGF3YWl0IElpKCksQ0EpfWFzeW5jIGZ1bmN0aW9uIHBhKEEpe2xldCB0PShhd2FpdCBxLmdldChgJHtBfS9pbmRleC5qc29uYCx7cmVzcG9uc2VUeXBlOiJqc29uIn0pKS5kYXRhLHI9YXdhaXQgcS5nZXQoYCR7QX0vZGF0YS9kYXRhLnJhd2Ase3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIifSk7dC5kYXRhPU8odC5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSxyLmRhdGEpO2xldCBvPWF3YWl0IHEuZ2V0KGAke0F9L2RhdGEvZGlyZWN0aW9uLnJhd2Ase3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIifSk7cmV0dXJuIHQuZGlyZWN0aW9uPU8oUy5GbG9hdDY0LG8uZGF0YSksdH12YXIgbWE9cGE7dmFyIHVhPW5ldyBNYXAoW1siaW1hZ2UvanBlZyIsImpwZWciXSxbImltYWdlL3BuZyIsInBuZyJdLFsiaW1hZ2UvdGlmZiIsInRpZmYiXSxbImltYWdlL3gtbXMtYm1wIiwiYm1wIl0sWyJpbWFnZS94LWJtcCIsImJtcCJdLFsiaW1hZ2UvYm1wIiwiYm1wIl0sWyJhcHBsaWNhdGlvbi9kaWNvbSIsImdkY20iXV0pLGxBPXVhO2FzeW5jIGZ1bmN0aW9uIGZhKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9InBuZy1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpzWzBdPy5kYXRhLGltYWdlOnNbMV0/LmRhdGF9fXZhciBaZT1mYTthc3luYyBmdW5jdGlvbiBjYShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9InBuZy13cml0ZS1pbWFnZSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOnN9PWF3YWl0IGMoQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOnNbMF0/LmRhdGEsc2VyaWFsaXplZEltYWdlOnNbMV0/LmRhdGF9fXZhciBWZT1jYTthc3luYyBmdW5jdGlvbiBkYShBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJtZXRhLXJlYWQtaW1hZ2UiLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSx0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOnNbMF0/LmRhdGEsaW1hZ2U6c1sxXT8uZGF0YX19dmFyIHplPWRhO2FzeW5jIGZ1bmN0aW9uIHlhKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOkMuSW1hZ2UsZGF0YTpBfV0saT1bXTtpLnB1c2goIjAiKSxpLnB1c2goIjAiKTtsZXQgcD1lO2kucHVzaChwKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJmkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0ibWV0YS13cml0ZS1pbWFnZSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOnN9PWF3YWl0IGMoQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOnNbMF0/LmRhdGEsc2VyaWFsaXplZEltYWdlOnNbMV0/LmRhdGF9fXZhciBYZT15YTthc3luYyBmdW5jdGlvbiBoYShBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJ0aWZmLXJlYWQtaW1hZ2UiLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSx0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOnNbMF0/LmRhdGEsaW1hZ2U6c1sxXT8uZGF0YX19dmFyIF9lPWhhO2FzeW5jIGZ1bmN0aW9uIHdhKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOkMuSW1hZ2UsZGF0YTpBfV0saT1bXTtpLnB1c2goIjAiKSxpLnB1c2goIjAiKTtsZXQgcD1lO2kucHVzaChwKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJmkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0idGlmZi13cml0ZS1pbWFnZSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOnN9PWF3YWl0IGMoQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOnNbMF0/LmRhdGEsc2VyaWFsaXplZEltYWdlOnNbMV0/LmRhdGF9fXZhciAkZT13YTthc3luYyBmdW5jdGlvbiBEYShBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJuaWZ0aS1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpzWzBdPy5kYXRhLGltYWdlOnNbMV0/LmRhdGF9fXZhciBBdD1EYTthc3luYyBmdW5jdGlvbiBSYShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9Im5pZnRpLXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6c1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6c1sxXT8uZGF0YX19dmFyIGV0PVJhO2FzeW5jIGZ1bmN0aW9uIGthKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9ImpwZWctcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOnN9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6c1swXT8uZGF0YSxpbWFnZTpzWzFdPy5kYXRhfX12YXIgdHQ9a2E7YXN5bmMgZnVuY3Rpb24gRmEoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJqcGVnLXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6c1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6c1sxXT8uZGF0YX19dmFyIHJ0PUZhO2FzeW5jIGZ1bmN0aW9uIFVhKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9Im5ycmQtcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOnN9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6c1swXT8uZGF0YSxpbWFnZTpzWzFdPy5kYXRhfX12YXIgaXQ9VWE7YXN5bmMgZnVuY3Rpb24gTmEoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJucnJkLXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6c1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6c1sxXT8uZGF0YX19dmFyIG90PU5hO2FzeW5jIGZ1bmN0aW9uIFNhKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9InZ0ay1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpzWzBdPy5kYXRhLGltYWdlOnNbMV0/LmRhdGF9fXZhciBhdD1TYTthc3luYyBmdW5jdGlvbiBiYShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9InZ0ay13cml0ZS1pbWFnZSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOnN9PWF3YWl0IGMoQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOnNbMF0/LmRhdGEsc2VyaWFsaXplZEltYWdlOnNbMV0/LmRhdGF9fXZhciBudD1iYTthc3luYyBmdW5jdGlvbiBXYShBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJibXAtcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOnN9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6c1swXT8uZGF0YSxpbWFnZTpzWzFdPy5kYXRhfX12YXIgSXQ9V2E7YXN5bmMgZnVuY3Rpb24gR2EoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJibXAtd3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpzWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpzWzFdPy5kYXRhfX12YXIgc3Q9R2E7YXN5bmMgZnVuY3Rpb24gT2EoQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0iaGRmNS1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpzWzBdPy5kYXRhLGltYWdlOnNbMV0/LmRhdGF9fXZhciBndD1PYTthc3luYyBmdW5jdGlvbiBMYShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9ImhkZjUtd3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpzWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpzWzFdPy5kYXRhfX12YXIgQnQ9TGE7YXN5bmMgZnVuY3Rpb24gSmEoQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ibWluYy1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpzWzBdPy5kYXRhLGltYWdlOnNbMV0/LmRhdGF9fXZhciBDdD1KYTthc3luYyBmdW5jdGlvbiBQYShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9Im1pbmMtd3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpzWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpzWzFdPy5kYXRhfX12YXIgbHQ9UGE7YXN5bmMgZnVuY3Rpb24geGEoQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ibXJjLXJlYWQtaW1hZ2UiLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSx0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOnNbMF0/LmRhdGEsaW1hZ2U6c1sxXT8uZGF0YX19dmFyIFF0PXhhO2FzeW5jIGZ1bmN0aW9uIE1hKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOkMuSW1hZ2UsZGF0YTpBfV0saT1bXTtpLnB1c2goIjAiKSxpLnB1c2goIjAiKTtsZXQgcD1lO2kucHVzaChwKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJmkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0ibXJjLXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6c1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6c1sxXT8uZGF0YX19dmFyIEV0PU1hO2FzeW5jIGZ1bmN0aW9uIFRhKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9ImxzbS1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpzWzBdPy5kYXRhLGltYWdlOnNbMV0/LmRhdGF9fXZhciBwdD1UYTthc3luYyBmdW5jdGlvbiBIYShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9ImxzbS13cml0ZS1pbWFnZSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOnN9PWF3YWl0IGMoQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOnNbMF0/LmRhdGEsc2VyaWFsaXplZEltYWdlOnNbMV0/LmRhdGF9fXZhciBtdD1IYTthc3luYyBmdW5jdGlvbiBZYShBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJtZ2gtcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOnN9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6c1swXT8uZGF0YSxpbWFnZTpzWzFdPy5kYXRhfX12YXIgdXQ9WWE7YXN5bmMgZnVuY3Rpb24gcWEoQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJtZ2gtd3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpzWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpzWzFdPy5kYXRhfX12YXIgZnQ9cWE7YXN5bmMgZnVuY3Rpb24gS2EoQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0iYmlvLXJhZC1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpzWzBdPy5kYXRhLGltYWdlOnNbMV0/LmRhdGF9fXZhciBjdD1LYTthc3luYyBmdW5jdGlvbiBqYShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9ImJpby1yYWQtd3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpzWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpzWzFdPy5kYXRhfX12YXIgZHQ9amE7YXN5bmMgZnVuY3Rpb24gdmEoQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0iZ2lwbC1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpzWzBdPy5kYXRhLGltYWdlOnNbMV0/LmRhdGF9fXZhciB5dD12YTthc3luYyBmdW5jdGlvbiBaYShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9ImdpcGwtd3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpzWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpzWzFdPy5kYXRhfX12YXIgaHQ9WmE7YXN5bmMgZnVuY3Rpb24gVmEoQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0iZ2UtYWR3LXJlYWQtaW1hZ2UiLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSx0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOnNbMF0/LmRhdGEsaW1hZ2U6c1sxXT8uZGF0YX19dmFyIHd0PVZhO2FzeW5jIGZ1bmN0aW9uIHphKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOkMuSW1hZ2UsZGF0YTpBfV0saT1bXTtpLnB1c2goIjAiKSxpLnB1c2goIjAiKTtsZXQgcD1lO2kucHVzaChwKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJmkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0iZ2UtYWR3LXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6c1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6c1sxXT8uZGF0YX19dmFyIER0PXphO2FzeW5jIGZ1bmN0aW9uIFhhKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9ImdlNC1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpzWzBdPy5kYXRhLGltYWdlOnNbMV0/LmRhdGF9fXZhciBSdD1YYTthc3luYyBmdW5jdGlvbiBfYShBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9ImdlNC13cml0ZS1pbWFnZSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOnN9PWF3YWl0IGMoQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOnNbMF0/LmRhdGEsc2VyaWFsaXplZEltYWdlOnNbMV0/LmRhdGF9fXZhciBrdD1fYTthc3luYyBmdW5jdGlvbiAkYShBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJnZTUtcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOnN9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6c1swXT8uZGF0YSxpbWFnZTpzWzFdPy5kYXRhfX12YXIgRnQ9JGE7YXN5bmMgZnVuY3Rpb24gQW4oQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJnZTUtd3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpzWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpzWzFdPy5kYXRhfX12YXIgVXQ9QW47YXN5bmMgZnVuY3Rpb24gZW4oQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0iZ2RjbS1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpzWzBdPy5kYXRhLGltYWdlOnNbMV0/LmRhdGF9fXZhciBOdD1lbjthc3luYyBmdW5jdGlvbiB0bihBLGUsdD17fSl7bGV0IHI9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpDLkltYWdlLGRhdGE6QX1dLGk9W107aS5wdXNoKCIwIiksaS5wdXNoKCIwIik7bGV0IHA9ZTtpLnB1c2gocCksaS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZpLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9ImdkY20td3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpzWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpzWzFdPy5kYXRhfX12YXIgU3Q9dG47YXN5bmMgZnVuY3Rpb24gcm4oQSxlPXt9KXtsZXQgdD1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5JbWFnZX1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IG09YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobSl9fWxldCBvPVt7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTpyfV0saT1bXSxuPXIucGF0aDtpLnB1c2gobiksaS5wdXNoKCIwIiksaS5wdXNoKCIxIiksaS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmaS5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ic2NhbmNvLXJlYWQtaW1hZ2UiLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSx0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOnNbMF0/LmRhdGEsaW1hZ2U6c1sxXT8uZGF0YX19dmFyIGJ0PXJuO2FzeW5jIGZ1bmN0aW9uIG9uKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOkMuSW1hZ2UsZGF0YTpBfV0saT1bXTtpLnB1c2goIjAiKSxpLnB1c2goIjAiKTtsZXQgcD1lO2kucHVzaChwKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJmkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0ic2NhbmNvLXdyaXRlLWltYWdlIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGkscixvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6c1swXT8uZGF0YSxzZXJpYWxpemVkSW1hZ2U6c1sxXT8uZGF0YX19dmFyIFd0PW9uO2FzeW5jIGZ1bmN0aW9uIGFuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOkMuSnNvbkNvbXBhdGlibGV9LHt0eXBlOkMuSW1hZ2V9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBtPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG0pfX1sZXQgbz1be3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6cn1dLGk9W10sbj1yLnBhdGg7aS5wdXNoKG4pLGkucHVzaCgiMCIpLGkucHVzaCgiMSIpLGkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9ImZkZi1yZWFkLWltYWdlIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpRLHN0ZGVycjpJLG91dHB1dHM6c309YXdhaXQgYyhCLGksdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmYoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoUSE9PTAmJkkhPT0iIil0aHJvdyBuZXcgRXJyb3IoSSk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpzWzBdPy5kYXRhLGltYWdlOnNbMV0/LmRhdGF9fXZhciBHdD1hbjthc3luYyBmdW5jdGlvbiBubihBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJ3YXNtLXJlYWQtaW1hZ2UiLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSx0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOnNbMF0/LmRhdGEsaW1hZ2U6c1sxXT8uZGF0YX19dmFyIE90PW5uO2FzeW5jIGZ1bmN0aW9uIEluKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6Qy5Kc29uQ29tcGF0aWJsZX0se3R5cGU6Qy5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOkMuSW1hZ2UsZGF0YTpBfV0saT1bXTtpLnB1c2goIjAiKSxpLnB1c2goIjAiKTtsZXQgcD1lO2kucHVzaChwKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJmkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0id2FzbS13cml0ZS1pbWFnZSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOnN9PWF3YWl0IGMoQixpLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOnNbMF0/LmRhdGEsc2VyaWFsaXplZEltYWdlOnNbMV0/LmRhdGF9fXZhciBMdD1Jbjthc3luYyBmdW5jdGlvbiBzbihBLGU9e30pe2xldCB0PVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkltYWdlfV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShtKX19bGV0IG89W3t0eXBlOkMuQmluYXJ5RmlsZSxkYXRhOnJ9XSxpPVtdLG49ci5wYXRoO2kucHVzaChuKSxpLnB1c2goIjAiKSxpLnB1c2goIjEiKSxpLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZpLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJ3YXNtLXpzdGQtcmVhZC1pbWFnZSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6USxzdGRlcnI6SSxvdXRwdXRzOnN9PWF3YWl0IGMoQixpLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpmKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKFEhPT0wJiZJIT09IiIpdGhyb3cgbmV3IEVycm9yKEkpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6c1swXT8uZGF0YSxpbWFnZTpzWzFdPy5kYXRhfX12YXIgSnQ9c247YXN5bmMgZnVuY3Rpb24gZ24oQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJ3YXNtLXpzdGQtd3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpzWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpzWzFdPy5kYXRhfX12YXIgUHQ9Z247dmFyIEJuPW5ldyBNYXAoW1sicG5nIixbWmUsVmVdXSxbIm1ldGEiLFt6ZSxYZV1dLFsidGlmZiIsW19lLCRlXV0sWyJuaWZ0aSIsW0F0LGV0XV0sWyJqcGVnIixbdHQscnRdXSxbIm5ycmQiLFtpdCxvdF1dLFsidnRrIixbYXQsbnRdXSxbImJtcCIsW0l0LHN0XV0sWyJoZGY1IixbZ3QsQnRdXSxbIm1uYyIsW0N0LGx0XV0sWyJtcmMiLFtRdCxFdF1dLFsibHNtIixbcHQsbXRdXSxbIm1naCIsW3V0LGZ0XV0sWyJiaW9SYWQiLFtjdCxkdF1dLFsiZ2lwbCIsW3l0LGh0XV0sWyJnZUFkdyIsW3d0LER0XV0sWyJnZTQiLFtSdCxrdF1dLFsiZ2U1IixbRnQsVXRdXSxbImdkY20iLFtOdCxTdF1dLFsic2NhbmNvIixbYnQsV3RdXSxbImZkZiIsW0d0LG51bGxdXSxbIndhc20iLFtPdCxMdF1dLFsid2FzbVpzdGQiLFtKdCxQdF1dXSksUUE9Qm47YXN5bmMgZnVuY3Rpb24gQ24oQSxlPXt9KXtsZXQgdD1BLnR5cGU/PyIiLHI9QS5uYW1lPz9BLnBhdGg/PyJmaWxlTmFtZSIsbz1wQShyKS50b0xvd2VyQ2FzZSgpLGk9ZT8ud2ViV29ya2VyLG49QTtpZihBIGluc3RhbmNlb2YgQmxvYil7bGV0IEk9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO249e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoSSl9fWxldCBsPW51bGw7aWYodCYmbEEuaGFzKHQpKWw9bEEuZ2V0KHQpO2Vsc2UgaWYoJC5oYXMobykpbD0kLmdldChvKTtlbHNlIGZvcihsZXQgSSBvZiBRQS52YWx1ZXMoKSlpZihJWzBdIT09bnVsbCl7bGV0e3dlYldvcmtlcjpzLGNvdWxkUmVhZDp1LGltYWdlOm19PWF3YWl0IElbMF0oe3BhdGg6bi5wYXRoLGRhdGE6bi5kYXRhLnNsaWNlKCl9LHt3ZWJXb3JrZXI6aSxpbmZvcm1hdGlvbk9ubHk6ZT8uaW5mb3JtYXRpb25Pbmx5LG5vQ29weTplPy5ub0NvcHl9KTtpZihpPXMsdSlyZXR1cm4gdHlwZW9mIGU8InUiJiYobT1aKG0sZSkpLHt3ZWJXb3JrZXI6aSxpbWFnZTptfX1pZighbCl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgSU8gZm9yOiAiK3IpO2xldCBCPVFBLmdldChsKVswXSx7d2ViV29ya2VyOmEsY291bGRSZWFkOmcsaW1hZ2U6UX09YXdhaXQgQihuLHt3ZWJXb3JrZXI6aSxpbmZvcm1hdGlvbk9ubHk6ZT8uaW5mb3JtYXRpb25Pbmx5LG5vQ29weTplPy5ub0NvcHl9KTtpZihpPWEsIWcpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCByZWFkOiAiK3IpO3JldHVybiB0eXBlb2YgZTwidSImJihRPVooUSxlKSkse3dlYldvcmtlcjppLGltYWdlOlF9fXZhciB4dD1Dbjt2YXIgbG49dHlwZW9mIGdsb2JhbFRoaXMubmF2aWdhdG9yPy5oYXJkd2FyZUNvbmN1cnJlbmN5PT0ibnVtYmVyIj9nbG9iYWxUaGlzLm5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5OjYsc2k9bmV3IGxlKGxuLHh0KTthc3luYyBmdW5jdGlvbiBRbihBLGU9e30pe2xldCB0PTEscj0wLG89ITE7dHlwZW9mIGU9PSJvYmplY3QiJiYodHlwZW9mIGUuelNwYWNpbmc8InUiJiYodD1lLnpTcGFjaW5nKSx0eXBlb2YgZS56T3JpZ2luPCJ1IiYmKHI9ZS56T3JpZ2luKSx0eXBlb2YgZS5zb3J0ZWRTZXJpZXM8InUiJiYobz1lLnNvcnRlZFNlcmllcykpO2xldCBpPUFycmF5LmZyb20oQSxhc3luYyBmdW5jdGlvbihnKXtpZihnIGluc3RhbmNlb2YgRmlsZSl7bGV0IFE9YXdhaXQgZy5hcnJheUJ1ZmZlcigpO3JldHVybntwYXRoOmcubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KFEpfX1yZXR1cm4gZ30pLG49YXdhaXQgUHJvbWlzZS5hbGwoaSk7b3x8bi5zb3J0KChnLFEpPT5nLnBhdGg8US5wYXRoPy0xOmcucGF0aD5RLnBhdGg/MTowKTtsZXQgbD1bXTtmb3IobGV0IGc9MDtnPG4ubGVuZ3RoO2crKylsLnB1c2goW25bZ10se31dKTtsZXQgQj0oYXdhaXQgc2kucnVuVGFza3MobCkucHJvbWlzZSkubWFwKGc9PntsZXQgUT1nLmltYWdlO3JldHVybiBRLmltYWdlVHlwZS5kaW1lbnNpb249MyxRLnNpemUucHVzaCgxKSxRLnNwYWNpbmcucHVzaCh0KSxRLm9yaWdpbi5wdXNoKHIpLFEuZGlyZWN0aW9uPW5ldyBGbG9hdDY0QXJyYXkoOSksUS5kaXJlY3Rpb24uZmlsbCgwKSxRLmRpcmVjdGlvblswXT0xLFEuZGlyZWN0aW9uWzRdPTEsUS5kaXJlY3Rpb25bOF09MSxRfSksYT1CZShCKTtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiJiYodHlwZW9mIGUuY29tcG9uZW50VHlwZTwidSJ8fHR5cGVvZiBlLnBpeGVsVHlwZTwidSIpJiYoYT1aKGEsZSkpLHtpbWFnZTphLHdlYldvcmtlclBvb2w6c2l9fXZhciBFbj1Rbjthc3luYyBmdW5jdGlvbiBwbihBLGUsdD17fSl7bGV0IHI9QTsodHlwZW9mIHQuY29tcG9uZW50VHlwZTwidSJ8fHR5cGVvZiB0LnBpeGVsVHlwZTwidSIpJiYocj1aKEEsdCkpO2xldCBvPXQubWltZVR5cGUsaT1wQShlKS50b0xvd2VyQ2FzZSgpLG49dC53ZWJXb3JrZXIsbD1udWxsO2lmKHR5cGVvZiBvPCJ1IiYmbEEuaGFzKG8pKWw9bEEuZ2V0KG8pO2Vsc2UgaWYoJC5oYXMoaSkpbD0kLmdldChpKTtlbHNlIGZvcihsZXQgcyBvZiBRQS52YWx1ZXMoKSlpZihzWzFdIT09bnVsbCl7bGV0e3dlYldvcmtlcjp1LGNvdWxkV3JpdGU6bSxzZXJpYWxpemVkSW1hZ2U6RH09YXdhaXQgc1sxXShnZShyKSxlLHQpO2lmKG49dSxtKXJldHVybnt3ZWJXb3JrZXI6bixzZXJpYWxpemVkSW1hZ2U6RH19aWYoIWwpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIElPIGZvcjogIitlKTtsZXQgQj1RQS5nZXQobClbMV0se3dlYldvcmtlcjphLGNvdWxkV3JpdGU6ZyxzZXJpYWxpemVkSW1hZ2U6UX09YXdhaXQgQihyLGUsdCk7aWYobj1hLCFnKXRocm93IEVycm9yKCJDb3VsZCBub3Qgd3JpdGU6ICIrZSk7cmV0dXJue3dlYldvcmtlcjpuLHNlcmlhbGl6ZWRJbWFnZTpRfX12YXIgbW49cG47YXN5bmMgZnVuY3Rpb24gdW4oQSxlLHQ9e30pe2xldCByPVt7dHlwZTpDLkpzb25Db21wYXRpYmxlfSx7dHlwZTpDLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6Qy5JbWFnZSxkYXRhOkF9XSxpPVtdO2kucHVzaCgiMCIpLGkucHVzaCgiMCIpO2xldCBwPWU7aS5wdXNoKHApLGkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJmkucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmaS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJmZGYtd3JpdGUtaW1hZ2UiLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOlEsc3RkZXJyOkksb3V0cHV0czpzfT1hd2FpdCBjKEIsaSxyLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6ZigpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihRIT09MCYmSSE9PSIiKXRocm93IG5ldyBFcnJvcihJKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpzWzBdPy5kYXRhLHNlcmlhbGl6ZWRJbWFnZTpzWzFdPy5kYXRhfX12YXIgZm49dW47dmFyIGdpPSdkYXRhOnRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0Zi04LHZhciBZZT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIHFlPShBLHQpPT57Zm9yKHZhciBlIGluIHQpWWUoQSxlLHtnZXQ6dFtlXSxlbnVtZXJhYmxlOiEwfSl9O3ZhciBOdD1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxNZT1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSxLZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksVkE9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLG1BPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxVdD1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixPZT17Y2FuSGFuZGxlOkE9PlV0KEEpJiZBW050XSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOnQscG9ydDI6ZX09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBGQShBLHQpLFtlLFtlXV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksamUoQSl9fSxUZT17Y2FuSGFuZGxlOkE9PlV0KEEpJiZtQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCB0O3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/dD17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OnQ9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW3QsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sR3Q9bmV3IE1hcChbWyJwcm94eSIsT2VdLFsidGhyb3ciLFRlXV0pO2Z1bmN0aW9uIHhlKEEsdCl7Zm9yKGxldCBlIG9mIEEpaWYodD09PWV8fGU9PT0iKiJ8fGUgaW5zdGFuY2VvZiBSZWdFeHAmJmUudGVzdCh0KSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBGQShBLHQ9Z2xvYmFsVGhpcyxlPVsiKiJdKXt0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIEkocil7aWYoIXJ8fCFyLmRhdGEpcmV0dXJuO2lmKCF4ZShlLHIub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiBcJyR7ci5vcmlnaW59XCcgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOmcsdHlwZTpvLHBhdGg6bn09T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sci5kYXRhKSxFPShyLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKFcpLEI7dHJ5e2xldCBzPW4uc2xpY2UoMCwtMSkucmVkdWNlKChsLGEpPT5sW2FdLEEpLEM9bi5yZWR1Y2UoKGwsYSk9PmxbYV0sQSk7c3dpdGNoKG8pe2Nhc2UiR0VUIjpCPUM7YnJlYWs7Y2FzZSJTRVQiOnNbbi5zbGljZSgtMSlbMF1dPVcoci5kYXRhLnZhbHVlKSxCPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOkI9Qy5hcHBseShzLEUpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGw9bmV3IEMoLi4uRSk7Qj1YZShsKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmwscG9ydDI6YX09bmV3IE1lc3NhZ2VDaGFubmVsO0ZBKEEsYSksQj1fQShsLFtsXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjpCPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2gocyl7Qj17dmFsdWU6cyxbbUFdOjB9fVByb21pc2UucmVzb2x2ZShCKS5jYXRjaChzPT4oe3ZhbHVlOnMsW21BXTowfSkpLnRoZW4ocz0+e2xldFtDLGxdPVNBKHMpO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEMpLHtpZDpnfSksbCksbz09PSJSRUxFQVNFIiYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsSSksa3QodCksVkEgaW4gQSYmdHlwZW9mIEFbVkFdPT0iZnVuY3Rpb24iJiZBW1ZBXSgpKX0pLmNhdGNoKHM9PntsZXRbQyxsXT1TQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW21BXTowfSk7dC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sQykse2lkOmd9KSxsKX0pfSksdC5zdGFydCYmdC5zdGFydCgpfWZ1bmN0aW9uIFBlKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGt0KEEpe1BlKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gamUoQSx0KXtyZXR1cm4gWEEoQSxbXSx0KX1mdW5jdGlvbiB5QShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gTHQoQSl7cmV0dXJuIF8oQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57a3QoQSl9KX12YXIgd0E9bmV3IFdlYWtNYXAscEE9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IHQ9KHdBLmdldChBKXx8MCktMTt3QS5zZXQoQSx0KSx0PT09MCYmTHQoQSl9KTtmdW5jdGlvbiBXZShBLHQpe2xldCBlPSh3QS5nZXQodCl8fDApKzE7d0Euc2V0KHQsZSkscEEmJnBBLnJlZ2lzdGVyKEEsdCxBKX1mdW5jdGlvbiBaZShBKXtwQSYmcEEudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBYQShBLHQ9W10sZT1mdW5jdGlvbigpe30pe2xldCBJPSExLHI9bmV3IFByb3h5KGUse2dldChnLG8pe2lmKHlBKEkpLG89PT1LZSlyZXR1cm4oKT0+e1plKHIpLEx0KEEpLEk9ITB9O2lmKG89PT0idGhlbiIpe2lmKHQubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+cn07bGV0IG49XyhBLHt0eXBlOiJHRVQiLHBhdGg6dC5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oVyk7cmV0dXJuIG4udGhlbi5iaW5kKG4pfXJldHVybiBYQShBLFsuLi50LG9dKX0sc2V0KGcsbyxuKXt5QShJKTtsZXRbRSxCXT1TQShuKTtyZXR1cm4gXyhBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLnQsb10ubWFwKHM9PnMudG9TdHJpbmcoKSksdmFsdWU6RX0sQikudGhlbihXKX0sYXBwbHkoZyxvLG4pe3lBKEkpO2xldCBFPXRbdC5sZW5ndGgtMV07aWYoRT09PU1lKXJldHVybiBfKEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oVyk7aWYoRT09PSJiaW5kIilyZXR1cm4gWEEoQSx0LnNsaWNlKDAsLTEpKTtsZXRbQixzXT1SdChuKTtyZXR1cm4gXyhBLHt0eXBlOiJBUFBMWSIscGF0aDp0Lm1hcChDPT5DLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpCfSxzKS50aGVuKFcpfSxjb25zdHJ1Y3QoZyxvKXt5QShJKTtsZXRbbixFXT1SdChvKTtyZXR1cm4gXyhBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6dC5tYXAoQj0+Qi50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6bn0sRSkudGhlbihXKX19KTtyZXR1cm4gV2UocixBKSxyfWZ1bmN0aW9uIFZlKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIFJ0KEEpe2xldCB0PUEubWFwKFNBKTtyZXR1cm5bdC5tYXAoZT0+ZVswXSksVmUodC5tYXAoZT0+ZVsxXSkpXX12YXIgYnQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gX0EoQSx0KXtyZXR1cm4gYnQuc2V0KEEsdCksQX1mdW5jdGlvbiBYZShBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbTnRdOiEwfSl9ZnVuY3Rpb24gU0EoQSl7Zm9yKGxldFt0LGVdb2YgR3QpaWYoZS5jYW5IYW5kbGUoQSkpe2xldFtJLHJdPWUuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTp0LHZhbHVlOkl9LHJdfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxidC5nZXQoQSl8fFtdXX1mdW5jdGlvbiBXKEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuIEd0LmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24gXyhBLHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKEk9PntsZXQgcj1fZSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gZyhvKXshby5kYXRhfHwhby5kYXRhLmlkfHxvLmRhdGEuaWQhPT1yfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixnKSxJKG8uZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6cn0sdCksZSl9KX1mdW5jdGlvbiBfZSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gb0EoQSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseSh0LGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzp6ZX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6dkF9PU9iamVjdCx7aXRlcmF0b3I6TkEsdG9TdHJpbmdUYWc6WXR9PVN5bWJvbCxVQT0oQT0+dD0+e2xldCBlPXplLmNhbGwodCk7cmV0dXJuIEFbZV18fChBW2VdPWUuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxMPUE9PihBPUEudG9Mb3dlckNhc2UoKSx0PT5VQSh0KT09PUEpLEdBPUE9PnQ9PnR5cGVvZiB0PT09QSx7aXNBcnJheTp2fT1BcnJheSx6PUdBKCJ1bmRlZmluZWQiKTtmdW5jdGlvbiBnQShBKXtyZXR1cm4gQSE9PW51bGwmJiF6KEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIXooQS5jb25zdHJ1Y3RvcikmJk4oQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIHF0PUwoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gdmUoQSl7bGV0IHQ7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz90PUFycmF5QnVmZmVyLmlzVmlldyhBKTp0PUEmJkEuYnVmZmVyJiZxdChBLmJ1ZmZlciksdH12YXIgJGU9R0EoInN0cmluZyIpLE49R0EoImZ1bmN0aW9uIiksTXQ9R0EoIm51bWJlciIpLGlBPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsQUk9QT0+QT09PSEwfHxBPT09ITEsUkE9QT0+e2lmKFVBKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IHQ9dkEoQSk7cmV0dXJuKHQ9PT1udWxsfHx0PT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpPT09bnVsbCkmJiEoWXQgaW4gQSkmJiEoTkEgaW4gQSl9LHRJPUE9PntpZighaUEoQSl8fGdBKEEpKXJldHVybiExO3RyeXtyZXR1cm4gT2JqZWN0LmtleXMoQSkubGVuZ3RoPT09MCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKEEpPT09T2JqZWN0LnByb3RvdHlwZX1jYXRjaHtyZXR1cm4hMX19LGVJPUwoIkRhdGUiKSxJST1MKCJGaWxlIiksckk9TCgiQmxvYiIpLG9JPUwoIkZpbGVMaXN0IiksZ0k9QT0+aUEoQSkmJk4oQS5waXBlKSxpST1BPT57bGV0IHQ7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8TihBLmFwcGVuZCkmJigodD1VQShBKSk9PT0iZm9ybWRhdGEifHx0PT09Im9iamVjdCImJk4oQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sc0k9TCgiVVJMU2VhcmNoUGFyYW1zIiksW25JLENJLEJJLGFJXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChMKSxRST1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZywiIik7ZnVuY3Rpb24gc0EoQSx0LHthbGxPd25LZXlzOmU9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgSSxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSx2KEEpKWZvcihJPTAscj1BLmxlbmd0aDtJPHI7SSsrKXQuY2FsbChudWxsLEFbSV0sSSxBKTtlbHNle2lmKGdBKEEpKXJldHVybjtsZXQgZz1lP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLG89Zy5sZW5ndGgsbjtmb3IoST0wO0k8bztJKyspbj1nW0ldLHQuY2FsbChudWxsLEFbbl0sbixBKX19ZnVuY3Rpb24gS3QoQSx0KXtpZihnQShBKSlyZXR1cm4gbnVsbDt0PXQudG9Mb3dlckNhc2UoKTtsZXQgZT1PYmplY3Qua2V5cyhBKSxJPWUubGVuZ3RoLHI7Zm9yKDtJLS0gPjA7KWlmKHI9ZVtJXSx0PT09ci50b0xvd2VyQ2FzZSgpKXJldHVybiByO3JldHVybiBudWxsfXZhciBaPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsT3Q9QT0+IXooQSkmJkEhPT1aO2Z1bmN0aW9uIHpBKCl7bGV0e2Nhc2VsZXNzOkEsc2tpcFVuZGVmaW5lZDp0fT1PdCh0aGlzKSYmdGhpc3x8e30sZT17fSxJPShyLGcpPT57bGV0IG89QSYmS3QoZSxnKXx8ZztSQShlW29dKSYmUkEocik/ZVtvXT16QShlW29dLHIpOlJBKHIpP2Vbb109ekEoe30scik6dihyKT9lW29dPXIuc2xpY2UoKTooIXR8fCF6KHIpKSYmKGVbb109cil9O2ZvcihsZXQgcj0wLGc9YXJndW1lbnRzLmxlbmd0aDtyPGc7cisrKWFyZ3VtZW50c1tyXSYmc0EoYXJndW1lbnRzW3JdLEkpO3JldHVybiBlfXZhciBFST0oQSx0LGUse2FsbE93bktleXM6SX09e30pPT4oc0EodCwocixnKT0+e2UmJk4ocik/QVtnXT1vQShyLGUpOkFbZ109cn0se2FsbE93bktleXM6SX0pLEEpLGNJPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksZkk9KEEsdCxlLEkpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSxJKSxBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse3ZhbHVlOnQucHJvdG90eXBlfSksZSYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSxlKX0sbEk9KEEsdCxlLEkpPT57bGV0IHIsZyxvLG49e307aWYodD10fHx7fSxBPT1udWxsKXJldHVybiB0O2Rve2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLGc9ci5sZW5ndGg7Zy0tID4wOylvPXJbZ10sKCFJfHxJKG8sQSx0KSkmJiFuW29dJiYodFtvXT1BW29dLG5bb109ITApO0E9ZSE9PSExJiZ2QShBKX13aGlsZShBJiYoIWV8fGUoQSx0KSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gdH0sdUk9KEEsdCxlKT0+e0E9U3RyaW5nKEEpLChlPT09dm9pZCAwfHxlPkEubGVuZ3RoKSYmKGU9QS5sZW5ndGgpLGUtPXQubGVuZ3RoO2xldCBJPUEuaW5kZXhPZih0LGUpO3JldHVybiBJIT09LTEmJkk9PT1lfSxkST1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYodihBKSlyZXR1cm4gQTtsZXQgdD1BLmxlbmd0aDtpZighTXQodCkpcmV0dXJuIG51bGw7bGV0IGU9bmV3IEFycmF5KHQpO2Zvcig7dC0tID4wOyllW3RdPUFbdF07cmV0dXJuIGV9LERJPShBPT50PT5BJiZ0IGluc3RhbmNlb2YgQSkodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZ2QShVaW50OEFycmF5KSksaEk9KEEsdCk9PntsZXQgST0oQSYmQVtOQV0pLmNhbGwoQSkscjtmb3IoOyhyPUkubmV4dCgpKSYmIXIuZG9uZTspe2xldCBnPXIudmFsdWU7dC5jYWxsKEEsZ1swXSxnWzFdKX19LHlJPShBLHQpPT57bGV0IGUsST1bXTtmb3IoOyhlPUEuZXhlYyh0KSkhPT1udWxsOylJLnB1c2goZSk7cmV0dXJuIEl9LG1JPUwoIkhUTUxGb3JtRWxlbWVudCIpLHdJPUE9PkEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV9cXHNdKFthLXpcXGRdKShcXHcqKS9nLGZ1bmN0aW9uKGUsSSxyKXtyZXR1cm4gSS50b1VwcGVyQ2FzZSgpK3J9KSxIdD0oKHtoYXNPd25Qcm9wZXJ0eTpBfSk9Pih0LGUpPT5BLmNhbGwodCxlKSkoT2JqZWN0LnByb3RvdHlwZSkscEk9TCgiUmVnRXhwIiksVHQ9KEEsdCk9PntsZXQgZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhBKSxJPXt9O3NBKGUsKHIsZyk9PntsZXQgbzsobz10KHIsZyxBKSkhPT0hMSYmKElbZ109b3x8cil9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBLEkpfSxTST1BPT57VHQoQSwodCxlKT0+e2lmKE4oQSkmJlsiYXJndW1lbnRzIiwiY2FsbGVyIiwiY2FsbGVlIl0uaW5kZXhPZihlKSE9PS0xKXJldHVybiExO2xldCBJPUFbZV07aWYoTihJKSl7aWYodC5lbnVtZXJhYmxlPSExLCJ3cml0YWJsZSJpbiB0KXt0LndyaXRhYmxlPSExO3JldHVybn10LnNldHx8KHQuc2V0PSgpPT57dGhyb3cgRXJyb3IoIkNhbiBub3QgcmV3cml0ZSByZWFkLW9ubHkgbWV0aG9kIFwnIitlKyJcJyIpfSl9fSl9LEZJPShBLHQpPT57bGV0IGU9e30sST1yPT57ci5mb3JFYWNoKGc9PntlW2ddPSEwfSl9O3JldHVybiB2KEEpP0koQSk6SShTdHJpbmcoQSkuc3BsaXQodCkpLGV9LFJJPSgpPT57fSxOST0oQSx0KT0+QSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKEE9K0EpP0E6dDtmdW5jdGlvbiBVSShBKXtyZXR1cm4hIShBJiZOKEEuYXBwZW5kKSYmQVtZdF09PT0iRm9ybURhdGEiJiZBW05BXSl9dmFyIEdJPUE9PntsZXQgdD1uZXcgQXJyYXkoMTApLGU9KEkscik9PntpZihpQShJKSl7aWYodC5pbmRleE9mKEkpPj0wKXJldHVybjtpZihnQShJKSlyZXR1cm4gSTtpZighKCJ0b0pTT04iaW4gSSkpe3Rbcl09STtsZXQgZz12KEkpP1tdOnt9O3JldHVybiBzQShJLChvLG4pPT57bGV0IEU9ZShvLHIrMSk7IXooRSkmJihnW25dPUUpfSksdFtyXT12b2lkIDAsZ319cmV0dXJuIEl9O3JldHVybiBlKEEsMCl9LGtJPUwoIkFzeW5jRnVuY3Rpb24iKSxMST1BPT5BJiYoaUEoQSl8fE4oQSkpJiZOKEEudGhlbikmJk4oQS5jYXRjaCkseHQ9KChBLHQpPT5BP3NldEltbWVkaWF0ZTp0PygoZSxJKT0+KFouYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6cixkYXRhOmd9KT0+e3I9PT1aJiZnPT09ZSYmSS5sZW5ndGgmJkkuc2hpZnQoKSgpfSwhMSkscj0+e0kucHVzaChyKSxaLnBvc3RNZXNzYWdlKGUsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOmU9PnNldFRpbWVvdXQoZSkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTihaLnBvc3RNZXNzYWdlKSksYkk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKFopOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8eHQsSkk9QT0+QSE9bnVsbCYmTihBW05BXSksaT17aXNBcnJheTp2LGlzQXJyYXlCdWZmZXI6cXQsaXNCdWZmZXI6Z0EsaXNGb3JtRGF0YTppSSxpc0FycmF5QnVmZmVyVmlldzp2ZSxpc1N0cmluZzokZSxpc051bWJlcjpNdCxpc0Jvb2xlYW46QUksaXNPYmplY3Q6aUEsaXNQbGFpbk9iamVjdDpSQSxpc0VtcHR5T2JqZWN0OnRJLGlzUmVhZGFibGVTdHJlYW06bkksaXNSZXF1ZXN0OkNJLGlzUmVzcG9uc2U6QkksaXNIZWFkZXJzOmFJLGlzVW5kZWZpbmVkOnosaXNEYXRlOmVJLGlzRmlsZTpJSSxpc0Jsb2I6ckksaXNSZWdFeHA6cEksaXNGdW5jdGlvbjpOLGlzU3RyZWFtOmdJLGlzVVJMU2VhcmNoUGFyYW1zOnNJLGlzVHlwZWRBcnJheTpESSxpc0ZpbGVMaXN0Om9JLGZvckVhY2g6c0EsbWVyZ2U6ekEsZXh0ZW5kOkVJLHRyaW06UUksc3RyaXBCT006Y0ksaW5oZXJpdHM6ZkksdG9GbGF0T2JqZWN0OmxJLGtpbmRPZjpVQSxraW5kT2ZUZXN0OkwsZW5kc1dpdGg6dUksdG9BcnJheTpkSSxmb3JFYWNoRW50cnk6aEksbWF0Y2hBbGw6eUksaXNIVE1MRm9ybTptSSxoYXNPd25Qcm9wZXJ0eTpIdCxoYXNPd25Qcm9wOkh0LHJlZHVjZURlc2NyaXB0b3JzOlR0LGZyZWV6ZU1ldGhvZHM6U0ksdG9PYmplY3RTZXQ6RkksdG9DYW1lbENhc2U6d0ksbm9vcDpSSSx0b0Zpbml0ZU51bWJlcjpOSSxmaW5kS2V5Okt0LGdsb2JhbDpaLGlzQ29udGV4dERlZmluZWQ6T3QsaXNTcGVjQ29tcGxpYW50Rm9ybTpVSSx0b0pTT05PYmplY3Q6R0ksaXNBc3luY0ZuOmtJLGlzVGhlbmFibGU6TEksc2V0SW1tZWRpYXRlOnh0LGFzYXA6YkksaXNJdGVyYWJsZTpKSX07ZnVuY3Rpb24gJChBLHQsZSxJLHIpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsdCYmKHRoaXMuY29kZT10KSxlJiYodGhpcy5jb25maWc9ZSksSSYmKHRoaXMucmVxdWVzdD1JKSxyJiYodGhpcy5yZXNwb25zZT1yLHRoaXMuc3RhdHVzPXIuc3RhdHVzP3Iuc3RhdHVzOm51bGwpfWkuaW5oZXJpdHMoJCxFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOmkudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX0pO3ZhciBQdD0kLnByb3RvdHlwZSxqdD17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiLCJFUlJfTk9UX1NVUFBPUlQiLCJFUlJfSU5WQUxJRF9VUkwiXS5mb3JFYWNoKEE9PntqdFtBXT17dmFsdWU6QX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcygkLGp0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUHQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7JC5mcm9tPShBLHQsZSxJLHIsZyk9PntsZXQgbz1PYmplY3QuY3JlYXRlKFB0KTtpLnRvRmxhdE9iamVjdChBLG8sZnVuY3Rpb24ocyl7cmV0dXJuIHMhPT1FcnJvci5wcm90b3R5cGV9LEI9PkIhPT0iaXNBeGlvc0Vycm9yIik7bGV0IG49QSYmQS5tZXNzYWdlP0EubWVzc2FnZToiRXJyb3IiLEU9dD09bnVsbCYmQT9BLmNvZGU6dDtyZXR1cm4gJC5jYWxsKG8sbixFLGUsSSxyKSxBJiZvLmNhdXNlPT1udWxsJiZPYmplY3QuZGVmaW5lUHJvcGVydHkobywiY2F1c2UiLHt2YWx1ZTpBLGNvbmZpZ3VyYWJsZTohMH0pLG8ubmFtZT1BJiZBLm5hbWV8fCJFcnJvciIsZyYmT2JqZWN0LmFzc2lnbihvLGcpLG99O3ZhciB1PSQ7dmFyIGtBPW51bGw7ZnVuY3Rpb24gJEEoQSl7cmV0dXJuIGkuaXNQbGFpbk9iamVjdChBKXx8aS5pc0FycmF5KEEpfWZ1bmN0aW9uIFp0KEEpe3JldHVybiBpLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIFd0KEEsdCxlKXtyZXR1cm4gQT9BLmNvbmNhdCh0KS5tYXAoZnVuY3Rpb24ocixnKXtyZXR1cm4gcj1adChyKSwhZSYmZz8iWyIrcisiXSI6cn0pLmpvaW4oZT8iLiI6IiIpOnR9ZnVuY3Rpb24gSEkoQSl7cmV0dXJuIGkuaXNBcnJheShBKSYmIUEuc29tZSgkQSl9dmFyIFlJPWkudG9GbGF0T2JqZWN0KGkse30sbnVsbCxmdW5jdGlvbih0KXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QodCl9KTtmdW5jdGlvbiBxSShBLHQsZSl7aWYoIWkuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7dD10fHxuZXcoa0F8fEZvcm1EYXRhKSxlPWkudG9GbGF0T2JqZWN0KGUse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihmLGMpe3JldHVybiFpLmlzVW5kZWZpbmVkKGNbZl0pfSk7bGV0IEk9ZS5tZXRhVG9rZW5zLHI9ZS52aXNpdG9yfHxzLGc9ZS5kb3RzLG89ZS5pbmRleGVzLEU9KGUuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmaS5pc1NwZWNDb21wbGlhbnRGb3JtKHQpO2lmKCFpLmlzRnVuY3Rpb24ocikpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBCKFEpe2lmKFE9PT1udWxsKXJldHVybiIiO2lmKGkuaXNEYXRlKFEpKXJldHVybiBRLnRvSVNPU3RyaW5nKCk7aWYoaS5pc0Jvb2xlYW4oUSkpcmV0dXJuIFEudG9TdHJpbmcoKTtpZighRSYmaS5pc0Jsb2IoUSkpdGhyb3cgbmV3IHUoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIGkuaXNBcnJheUJ1ZmZlcihRKXx8aS5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIHMoUSxmLGMpe2xldCBEPVE7aWYoUSYmIWMmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYoaS5lbmRzV2l0aChmLCJ7fSIpKWY9ST9mOmYuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKGkuaXNBcnJheShRKSYmSEkoUSl8fChpLmlzRmlsZUxpc3QoUSl8fGkuZW5kc1dpdGgoZiwiW10iKSkmJihEPWkudG9BcnJheShRKSkpcmV0dXJuIGY9WnQoZiksRC5mb3JFYWNoKGZ1bmN0aW9uKHksUil7IShpLmlzVW5kZWZpbmVkKHkpfHx5PT09bnVsbCkmJnQuYXBwZW5kKG89PT0hMD9XdChbZl0sUixnKTpvPT09bnVsbD9mOmYrIltdIixCKHkpKX0pLCExfXJldHVybiAkQShRKT8hMDoodC5hcHBlbmQoV3QoYyxmLGcpLEIoUSkpLCExKX1sZXQgQz1bXSxsPU9iamVjdC5hc3NpZ24oWUkse2RlZmF1bHRWaXNpdG9yOnMsY29udmVydFZhbHVlOkIsaXNWaXNpdGFibGU6JEF9KTtmdW5jdGlvbiBhKFEsZil7aWYoIWkuaXNVbmRlZmluZWQoUSkpe2lmKEMuaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitmLmpvaW4oIi4iKSk7Qy5wdXNoKFEpLGkuZm9yRWFjaChRLGZ1bmN0aW9uKEQsRil7KCEoaS5pc1VuZGVmaW5lZChEKXx8RD09PW51bGwpJiZyLmNhbGwodCxELGkuaXNTdHJpbmcoRik/Ri50cmltKCk6RixmLGwpKT09PSEwJiZhKEQsZj9mLmNvbmNhdChGKTpbRl0pfSksQy5wb3AoKX19aWYoIWkuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBhKEEpLHR9dmFyIFQ9cUk7ZnVuY3Rpb24gVnQoQSl7bGV0IHQ9eyIhIjoiJTI1MjEiLCJcJyI6IiUyNTI3IiwiKCI6IiUyNTI4IiwiKSI6IiUyNTI5IiwifiI6IiUyNTdFIiwiJTI1MjAiOiIrIiwiJTI1MDAiOiJcXDAifTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoL1shXCcoKX5dfCUyNTIwfCUyNTAwL2csZnVuY3Rpb24oSSl7cmV0dXJuIHRbSV19KX1mdW5jdGlvbiBYdChBLHQpe3RoaXMuX3BhaXJzPVtdLEEmJlQoQSx0aGlzLHQpfXZhciBfdD1YdC5wcm90b3R5cGU7X3QuYXBwZW5kPWZ1bmN0aW9uKHQsZSl7dGhpcy5fcGFpcnMucHVzaChbdCxlXSl9O190LnRvU3RyaW5nPWZ1bmN0aW9uKHQpe2xldCBlPXQ/ZnVuY3Rpb24oSSl7cmV0dXJuIHQuY2FsbCh0aGlzLEksVnQpfTpWdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBlKHJbMF0pKyI9IitlKHJbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgTEE9WHQ7ZnVuY3Rpb24gTUkoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lMjUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNTI0L2csIiQiKS5yZXBsYWNlKC8lMjUyQy9naSwiLCIpLnJlcGxhY2UoLyUyNTIwL2csIisiKX1mdW5jdGlvbiBuQShBLHQsZSl7aWYoIXQpcmV0dXJuIEE7bGV0IEk9ZSYmZS5lbmNvZGV8fE1JO2kuaXNGdW5jdGlvbihlKSYmKGU9e3NlcmlhbGl6ZTplfSk7bGV0IHI9ZSYmZS5zZXJpYWxpemUsZztpZihyP2c9cih0LGUpOmc9aS5pc1VSTFNlYXJjaFBhcmFtcyh0KT90LnRvU3RyaW5nKCk6bmV3IExBKHQsZSkudG9TdHJpbmcoSSksZyl7bGV0IG89QS5pbmRleE9mKCIlMjMiKTtvIT09LTEmJihBPUEuc2xpY2UoMCxvKSksQSs9KEEuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikrZ31yZXR1cm4gQX12YXIgQXQ9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmhhbmRsZXJzPVtdfXVzZSh0LGUsSSl7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOnQscmVqZWN0ZWQ6ZSxzeW5jaHJvbm91czpJP0kuc3luY2hyb25vdXM6ITEscnVuV2hlbjpJP0kucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX1lamVjdCh0KXt0aGlzLmhhbmRsZXJzW3RdJiYodGhpcy5oYW5kbGVyc1t0XT1udWxsKX1jbGVhcigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX1mb3JFYWNoKHQpe2kuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKEkpe0khPT1udWxsJiZ0KEkpfSl9fSx0dD1BdDt2YXIgYkE9e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9O3ZhciB6dD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6TEE7dmFyIHZ0PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgJHQ9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgQWU9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6enQsRm9ybURhdGE6dnQsQmxvYjokdH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBydD17fTtxZShydCx7aGFzQnJvd3NlckVudjooKT0+SXQsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5LSSxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9Pk9JLG5hdmlnYXRvcjooKT0+ZXQsb3JpZ2luOigpPT5USX0pO3ZhciBJdD10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1IixldD10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsS0k9SXQmJighZXR8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2YoZXQucHJvZHVjdCk8MCksT0k9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLFRJPUl0JiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBoPXsuLi5ydCwuLi5BZX07ZnVuY3Rpb24gb3QoQSx0KXtyZXR1cm4gVChBLG5ldyBoLmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLHt2aXNpdG9yOmZ1bmN0aW9uKGUsSSxyLGcpe3JldHVybiBoLmlzTm9kZSYmaS5pc0J1ZmZlcihlKT8odGhpcy5hcHBlbmQoSSxlLnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOmcuZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwuLi50fSl9ZnVuY3Rpb24geEkoQSl7cmV0dXJuIGkubWF0Y2hBbGwoL1xcdyt8XFxbKFxcdyopXS9nLEEpLm1hcCh0PT50WzBdPT09IltdIj8iIjp0WzFdfHx0WzBdKX1mdW5jdGlvbiBQSShBKXtsZXQgdD17fSxlPU9iamVjdC5rZXlzKEEpLEkscj1lLmxlbmd0aCxnO2ZvcihJPTA7STxyO0krKylnPWVbSV0sdFtnXT1BW2ddO3JldHVybiB0fWZ1bmN0aW9uIGpJKEEpe2Z1bmN0aW9uIHQoZSxJLHIsZyl7bGV0IG89ZVtnKytdO2lmKG89PT0iX19wcm90b19fIilyZXR1cm4hMDtsZXQgbj1OdW1iZXIuaXNGaW5pdGUoK28pLEU9Zz49ZS5sZW5ndGg7cmV0dXJuIG89IW8mJmkuaXNBcnJheShyKT9yLmxlbmd0aDpvLEU/KGkuaGFzT3duUHJvcChyLG8pP3Jbb109W3Jbb10sSV06cltvXT1JLCFuKTooKCFyW29dfHwhaS5pc09iamVjdChyW29dKSkmJihyW29dPVtdKSx0KGUsSSxyW29dLGcpJiZpLmlzQXJyYXkocltvXSkmJihyW29dPVBJKHJbb10pKSwhbil9aWYoaS5pc0Zvcm1EYXRhKEEpJiZpLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IGU9e307cmV0dXJuIGkuZm9yRWFjaEVudHJ5KEEsKEkscik9Pnt0KHhJKEkpLHIsZSwwKX0pLGV9cmV0dXJuIG51bGx9dmFyIEpBPWpJO2Z1bmN0aW9uIFdJKEEsdCxlKXtpZihpLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4odHx8SlNPTi5wYXJzZSkoQSksaS50cmltKEEpfWNhdGNoKEkpe2lmKEkubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgSX1yZXR1cm4oZXx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBndD17dHJhbnNpdGlvbmFsOmJBLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbih0LGUpe2xldCBJPWUuZ2V0Q29udGVudFR5cGUoKXx8IiIscj1JLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxnPWkuaXNPYmplY3QodCk7aWYoZyYmaS5pc0hUTUxGb3JtKHQpJiYodD1uZXcgRm9ybURhdGEodCkpLGkuaXNGb3JtRGF0YSh0KSlyZXR1cm4gcj9KU09OLnN0cmluZ2lmeShKQSh0KSk6dDtpZihpLmlzQXJyYXlCdWZmZXIodCl8fGkuaXNCdWZmZXIodCl8fGkuaXNTdHJlYW0odCl8fGkuaXNGaWxlKHQpfHxpLmlzQmxvYih0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcodCkpcmV0dXJuIHQuYnVmZmVyO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXModCkpcmV0dXJuIGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksdC50b1N0cmluZygpO2xldCBuO2lmKGcpe2lmKEkuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik+LTEpcmV0dXJuIG90KHQsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigobj1pLmlzRmlsZUxpc3QodCkpfHxJLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7bGV0IEU9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBUKG4/eyJmaWxlc1tdIjp0fTp0LEUmJm5ldyBFLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gZ3x8cj8oZS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLFdJKHQpKTp0fV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKHQpe2xldCBlPXRoaXMudHJhbnNpdGlvbmFsfHxndC50cmFuc2l0aW9uYWwsST1lJiZlLmZvcmNlZEpTT05QYXJzaW5nLHI9dGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYoaS5pc1Jlc3BvbnNlKHQpfHxpLmlzUmVhZGFibGVTdHJlYW0odCkpcmV0dXJuIHQ7aWYodCYmaS5pc1N0cmluZyh0KSYmKEkmJiF0aGlzLnJlc3BvbnNlVHlwZXx8cikpe2xldCBvPSEoZSYmZS5zaWxlbnRKU09OUGFyc2luZykmJnI7dHJ5e3JldHVybiBKU09OLnBhcnNlKHQsdGhpcy5wYXJzZVJldml2ZXIpfWNhdGNoKG4pe2lmKG8pdGhyb3cgbi5uYW1lPT09IlN5bnRheEVycm9yIj91LmZyb20obix1LkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpOm59fXJldHVybiB0fV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpoLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpoLmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTIwMCYmdDwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIl0sQT0+e2d0LmhlYWRlcnNbQV09e319KTt2YXIgQUE9Z3Q7dmFyIFpJPWkudG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksdGU9QT0+e2xldCB0PXt9LGUsSSxyO3JldHVybiBBJiZBLnNwbGl0KGAlMEFgKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3I9by5pbmRleE9mKCI6IiksZT1vLnN1YnN0cmluZygwLHIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLEk9by5zdWJzdHJpbmcocisxKS50cmltKCksISghZXx8dFtlXSYmWklbZV0pJiYoZT09PSJzZXQtY29va2llIj90W2VdP3RbZV0ucHVzaChJKTp0W2VdPVtJXTp0W2VdPXRbZV0/dFtlXSsiLCAiK0k6SSl9KSx0fTt2YXIgZWU9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBDQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIEhBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTppLmlzQXJyYXkoQSk/QS5tYXAoSEEpOlN0cmluZyhBKX1mdW5jdGlvbiBWSShBKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpLGU9LyhbXlxccyw7PV0rKVxccyooPzo9XFxzKihbXiw7XSspKT8vZyxJO2Zvcig7ST1lLmV4ZWMoQSk7KXRbSVsxXV09SVsyXTtyZXR1cm4gdH12YXIgWEk9QT0+L15bLV9hLXpBLVowLTleYHx+LCElMjMkJSZcJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gaXQoQSx0LGUsSSxyKXtpZihpLmlzRnVuY3Rpb24oSSkpcmV0dXJuIEkuY2FsbCh0aGlzLHQsZSk7aWYociYmKHQ9ZSksISFpLmlzU3RyaW5nKHQpKXtpZihpLmlzU3RyaW5nKEkpKXJldHVybiB0LmluZGV4T2YoSSkhPT0tMTtpZihpLmlzUmVnRXhwKEkpKXJldHVybiBJLnRlc3QodCl9fWZ1bmN0aW9uIF9JKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XFxkXSkoXFx3KikvZywodCxlLEkpPT5lLnRvVXBwZXJDYXNlKCkrSSl9ZnVuY3Rpb24gekkoQSx0KXtsZXQgZT1pLnRvQ2FtZWxDYXNlKCIgIit0KTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2goST0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLEkrZSx7dmFsdWU6ZnVuY3Rpb24ocixnLG8pe3JldHVybiB0aGlzW0ldLmNhbGwodGhpcyx0LHIsZyxvKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgdEE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dCYmdGhpcy5zZXQodCl9c2V0KHQsZSxJKXtsZXQgcj10aGlzO2Z1bmN0aW9uIGcobixFLEIpe2xldCBzPUNBKEUpO2lmKCFzKXRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgQz1pLmZpbmRLZXkocixzKTsoIUN8fHJbQ109PT12b2lkIDB8fEI9PT0hMHx8Qj09PXZvaWQgMCYmcltDXSE9PSExKSYmKHJbQ3x8RV09SEEobikpfWxldCBvPShuLEUpPT5pLmZvckVhY2gobiwoQixzKT0+ZyhCLHMsRSkpO2lmKGkuaXNQbGFpbk9iamVjdCh0KXx8dCBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3Ipbyh0LGUpO2Vsc2UgaWYoaS5pc1N0cmluZyh0KSYmKHQ9dC50cmltKCkpJiYhWEkodCkpbyh0ZSh0KSxlKTtlbHNlIGlmKGkuaXNPYmplY3QodCkmJmkuaXNJdGVyYWJsZSh0KSl7bGV0IG49e30sRSxCO2ZvcihsZXQgcyBvZiB0KXtpZighaS5pc0FycmF5KHMpKXRocm93IFR5cGVFcnJvcigiT2JqZWN0IGl0ZXJhdG9yIG11c3QgcmV0dXJuIGEga2V5LXZhbHVlIHBhaXIiKTtuW0I9c1swXV09KEU9bltCXSk/aS5pc0FycmF5KEUpP1suLi5FLHNbMV1dOltFLHNbMV1dOnNbMV19byhuLGUpfWVsc2UgdCE9bnVsbCYmZyhlLHQsSSk7cmV0dXJuIHRoaXN9Z2V0KHQsZSl7aWYodD1DQSh0KSx0KXtsZXQgST1pLmZpbmRLZXkodGhpcyx0KTtpZihJKXtsZXQgcj10aGlzW0ldO2lmKCFlKXJldHVybiByO2lmKGU9PT0hMClyZXR1cm4gVkkocik7aWYoaS5pc0Z1bmN0aW9uKGUpKXJldHVybiBlLmNhbGwodGhpcyxyLEkpO2lmKGkuaXNSZWdFeHAoZSkpcmV0dXJuIGUuZXhlYyhyKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKHQsZSl7aWYodD1DQSh0KSx0KXtsZXQgST1pLmZpbmRLZXkodGhpcyx0KTtyZXR1cm4hIShJJiZ0aGlzW0ldIT09dm9pZCAwJiYoIWV8fGl0KHRoaXMsdGhpc1tJXSxJLGUpKSl9cmV0dXJuITF9ZGVsZXRlKHQsZSl7bGV0IEk9dGhpcyxyPSExO2Z1bmN0aW9uIGcobyl7aWYobz1DQShvKSxvKXtsZXQgbj1pLmZpbmRLZXkoSSxvKTtuJiYoIWV8fGl0KEksSVtuXSxuLGUpKSYmKGRlbGV0ZSBJW25dLHI9ITApfX1yZXR1cm4gaS5pc0FycmF5KHQpP3QuZm9yRWFjaChnKTpnKHQpLHJ9Y2xlYXIodCl7bGV0IGU9T2JqZWN0LmtleXModGhpcyksST1lLmxlbmd0aCxyPSExO2Zvcig7SS0tOyl7bGV0IGc9ZVtJXTsoIXR8fGl0KHRoaXMsdGhpc1tnXSxnLHQsITApKSYmKGRlbGV0ZSB0aGlzW2ddLHI9ITApfXJldHVybiByfW5vcm1hbGl6ZSh0KXtsZXQgZT10aGlzLEk9e307cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChyLGcpPT57bGV0IG89aS5maW5kS2V5KEksZyk7aWYobyl7ZVtvXT1IQShyKSxkZWxldGUgZVtnXTtyZXR1cm59bGV0IG49dD9fSShnKTpTdHJpbmcoZykudHJpbSgpO24hPT1nJiZkZWxldGUgZVtnXSxlW25dPUhBKHIpLElbbl09ITB9KSx0aGlzfWNvbmNhdCguLi50KXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi50KX10b0pTT04odCl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gaS5mb3JFYWNoKHRoaXMsKEkscik9PntJIT1udWxsJiZJIT09ITEmJihlW3JdPXQmJmkuaXNBcnJheShJKT9JLmpvaW4oIiwgIik6SSl9KSxlfVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKX10b1N0cmluZygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFt0LGVdKT0+dCsiOiAiK2UpLmpvaW4oYCUwQWApfWdldFNldENvb2tpZSgpe3JldHVybiB0aGlzLmdldCgic2V0LWNvb2tpZSIpfHxbXX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJBeGlvc0hlYWRlcnMifXN0YXRpYyBmcm9tKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpcz90Om5ldyB0aGlzKHQpfXN0YXRpYyBjb25jYXQodCwuLi5lKXtsZXQgST1uZXcgdGhpcyh0KTtyZXR1cm4gZS5mb3JFYWNoKHI9Pkkuc2V0KHIpKSxJfXN0YXRpYyBhY2Nlc3Nvcih0KXtsZXQgST0odGhpc1tlZV09dGhpc1tlZV09e2FjY2Vzc29yczp7fX0pLmFjY2Vzc29ycyxyPXRoaXMucHJvdG90eXBlO2Z1bmN0aW9uIGcobyl7bGV0IG49Q0Eobyk7SVtuXXx8KHpJKHIsbyksSVtuXT0hMCl9cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2goZyk6Zyh0KSx0aGlzfX07dEEuYWNjZXNzb3IoWyJDb250ZW50LVR5cGUiLCJDb250ZW50LUxlbmd0aCIsIkFjY2VwdCIsIkFjY2VwdC1FbmNvZGluZyIsIlVzZXItQWdlbnQiLCJBdXRob3JpemF0aW9uIl0pO2kucmVkdWNlRGVzY3JpcHRvcnModEEucHJvdG90eXBlLCh7dmFsdWU6QX0sdCk9PntsZXQgZT10WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKTtyZXR1cm57Z2V0OigpPT5BLHNldChJKXt0aGlzW2VdPUl9fX0pO2kuZnJlZXplTWV0aG9kcyh0QSk7dmFyIHA9dEE7ZnVuY3Rpb24gQkEoQSx0KXtsZXQgZT10aGlzfHxBQSxJPXR8fGUscj1wLmZyb20oSS5oZWFkZXJzKSxnPUkuZGF0YTtyZXR1cm4gaS5mb3JFYWNoKEEsZnVuY3Rpb24obil7Zz1uLmNhbGwoZSxnLHIubm9ybWFsaXplKCksdD90LnN0YXR1czp2b2lkIDApfSksci5ub3JtYWxpemUoKSxnfWZ1bmN0aW9uIGFBKEEpe3JldHVybiEhKEEmJkEuX19DQU5DRUxfXyl9ZnVuY3Rpb24gSWUoQSx0LGUpe3UuY2FsbCh0aGlzLEE/PyJjYW5jZWxlZCIsdS5FUlJfQ0FOQ0VMRUQsdCxlKSx0aGlzLm5hbWU9IkNhbmNlbGVkRXJyb3IifWkuaW5oZXJpdHMoSWUsdSx7X19DQU5DRUxfXzohMH0pO3ZhciBIPUllO2Z1bmN0aW9uIFFBKEEsdCxlKXtsZXQgST1lLmNvbmZpZy52YWxpZGF0ZVN0YXR1czshZS5zdGF0dXN8fCFJfHxJKGUuc3RhdHVzKT9BKGUpOnQobmV3IHUoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIitlLnN0YXR1cyxbdS5FUlJfQkFEX1JFUVVFU1QsdS5FUlJfQkFEX1JFU1BPTlNFXVtNYXRoLmZsb29yKGUuc3RhdHVzLzEwMCktNF0sZS5jb25maWcsZS5yZXF1ZXN0LGUpKX1mdW5jdGlvbiBzdChBKXtsZXQgdD0vXihbLStcXHddezEsMjV9KSg6P1xcL1xcL3w6KS8uZXhlYyhBKTtyZXR1cm4gdCYmdFsxXXx8IiJ9ZnVuY3Rpb24gdkkoQSx0KXtBPUF8fDEwO2xldCBlPW5ldyBBcnJheShBKSxJPW5ldyBBcnJheShBKSxyPTAsZz0wLG87cmV0dXJuIHQ9dCE9PXZvaWQgMD90OjFlMyxmdW5jdGlvbihFKXtsZXQgQj1EYXRlLm5vdygpLHM9SVtnXTtvfHwobz1CKSxlW3JdPUUsSVtyXT1CO2xldCBDPWcsbD0wO2Zvcig7QyE9PXI7KWwrPWVbQysrXSxDPUMlQTtpZihyPShyKzEpJUEscj09PWcmJihnPShnKzEpJUEpLEItbzx0KXJldHVybjtsZXQgYT1zJiZCLXM7cmV0dXJuIGE/TWF0aC5yb3VuZChsKjFlMy9hKTp2b2lkIDB9fXZhciByZT12STtmdW5jdGlvbiAkSShBLHQpe2xldCBlPTAsST0xZTMvdCxyLGcsbz0oQixzPURhdGUubm93KCkpPT57ZT1zLHI9bnVsbCxnJiYoY2xlYXJUaW1lb3V0KGcpLGc9bnVsbCksQSguLi5CKX07cmV0dXJuWyguLi5CKT0+e2xldCBzPURhdGUubm93KCksQz1zLWU7Qz49ST9vKEIscyk6KHI9QixnfHwoZz1zZXRUaW1lb3V0KCgpPT57Zz1udWxsLG8ocil9LEktQykpKX0sKCk9PnImJm8ocildfXZhciBvZT0kSTt2YXIgZUE9KEEsdCxlPTMpPT57bGV0IEk9MCxyPXJlKDUwLDI1MCk7cmV0dXJuIG9lKGc9PntsZXQgbz1nLmxvYWRlZCxuPWcubGVuZ3RoQ29tcHV0YWJsZT9nLnRvdGFsOnZvaWQgMCxFPW8tSSxCPXIoRSkscz1vPD1uO0k9bztsZXQgQz17bG9hZGVkOm8sdG90YWw6bixwcm9ncmVzczpuP28vbjp2b2lkIDAsYnl0ZXM6RSxyYXRlOkJ8fHZvaWQgMCxlc3RpbWF0ZWQ6QiYmbiYmcz8obi1vKS9COnZvaWQgMCxldmVudDpnLGxlbmd0aENvbXB1dGFibGU6biE9bnVsbCxbdD8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH07QShDKX0sZSl9LG50PShBLHQpPT57bGV0IGU9QSE9bnVsbDtyZXR1cm5bST0+dFswXSh7bGVuZ3RoQ29tcHV0YWJsZTplLHRvdGFsOkEsbG9hZGVkOkl9KSx0WzFdXX0sQ3Q9QT0+KC4uLnQpPT5pLmFzYXAoKCk9PkEoLi4udCkpO3ZhciBnZT1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKEEsdCk9PmU9PihlPW5ldyBVUkwoZSxoLm9yaWdpbiksQS5wcm90b2NvbD09PWUucHJvdG9jb2wmJkEuaG9zdD09PWUuaG9zdCYmKHR8fEEucG9ydD09PWUucG9ydCkpKShuZXcgVVJMKGgub3JpZ2luKSxoLm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChoLm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITA7dmFyIGllPWguaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShBLHQsZSxJLHIsZyl7bGV0IG89W0ErIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0KV07aS5pc051bWJlcihlKSYmby5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUoZSkudG9HTVRTdHJpbmcoKSksaS5pc1N0cmluZyhJKSYmby5wdXNoKCJwYXRoPSIrSSksaS5pc1N0cmluZyhyKSYmby5wdXNoKCJkb21haW49IityKSxnPT09ITAmJm8ucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPW8uam9pbigiOyAiKX0scmVhZChBKXtsZXQgdD1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xcXFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIHQ/ZGVjb2RlVVJJQ29tcG9uZW50KHRbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gQnQoQSl7cmV0dXJuL14oW2Etel1bYS16XFxkK1xcLS5dKjopP1xcL1xcLy9pLnRlc3QoQSl9ZnVuY3Rpb24gYXQoQSx0KXtyZXR1cm4gdD9BLnJlcGxhY2UoL1xcLz9cXC8kLywiIikrIi8iK3QucmVwbGFjZSgvXlxcLysvLCIiKTpBfWZ1bmN0aW9uIEVBKEEsdCxlKXtsZXQgST0hQnQodCk7cmV0dXJuIEEmJihJfHxlPT0hMSk/YXQoQSx0KTp0fXZhciBzZT1BPT5BIGluc3RhbmNlb2YgcD97Li4uQX06QTtmdW5jdGlvbiBiKEEsdCl7dD10fHx7fTtsZXQgZT17fTtmdW5jdGlvbiBJKEIscyxDLGwpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQikmJmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlLmNhbGwoe2Nhc2VsZXNzOmx9LEIscyk6aS5pc1BsYWluT2JqZWN0KHMpP2kubWVyZ2Uoe30scyk6aS5pc0FycmF5KHMpP3Muc2xpY2UoKTpzfWZ1bmN0aW9uIHIoQixzLEMsbCl7aWYoaS5pc1VuZGVmaW5lZChzKSl7aWYoIWkuaXNVbmRlZmluZWQoQikpcmV0dXJuIEkodm9pZCAwLEIsQyxsKX1lbHNlIHJldHVybiBJKEIscyxDLGwpfWZ1bmN0aW9uIGcoQixzKXtpZighaS5pc1VuZGVmaW5lZChzKSlyZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gbyhCLHMpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKEIpKXJldHVybiBJKHZvaWQgMCxCKX1lbHNlIHJldHVybiBJKHZvaWQgMCxzKX1mdW5jdGlvbiBuKEIscyxDKXtpZihDIGluIHQpcmV0dXJuIEkoQixzKTtpZihDIGluIEEpcmV0dXJuIEkodm9pZCAwLEIpfWxldCBFPXt1cmw6ZyxtZXRob2Q6ZyxkYXRhOmcsYmFzZVVSTDpvLHRyYW5zZm9ybVJlcXVlc3Q6byx0cmFuc2Zvcm1SZXNwb25zZTpvLHBhcmFtc1NlcmlhbGl6ZXI6byx0aW1lb3V0Om8sdGltZW91dE1lc3NhZ2U6byx3aXRoQ3JlZGVudGlhbHM6byx3aXRoWFNSRlRva2VuOm8sYWRhcHRlcjpvLHJlc3BvbnNlVHlwZTpvLHhzcmZDb29raWVOYW1lOm8seHNyZkhlYWRlck5hbWU6byxvblVwbG9hZFByb2dyZXNzOm8sb25Eb3dubG9hZFByb2dyZXNzOm8sZGVjb21wcmVzczpvLG1heENvbnRlbnRMZW5ndGg6byxtYXhCb2R5TGVuZ3RoOm8sYmVmb3JlUmVkaXJlY3Q6byx0cmFuc3BvcnQ6byxodHRwQWdlbnQ6byxodHRwc0FnZW50Om8sY2FuY2VsVG9rZW46byxzb2NrZXRQYXRoOm8scmVzcG9uc2VFbmNvZGluZzpvLHZhbGlkYXRlU3RhdHVzOm4saGVhZGVyczooQixzLEMpPT5yKHNlKEIpLHNlKHMpLEMsITApfTtyZXR1cm4gaS5mb3JFYWNoKE9iamVjdC5rZXlzKHsuLi5BLC4uLnR9KSxmdW5jdGlvbihzKXtsZXQgQz1FW3NdfHxyLGw9QyhBW3NdLHRbc10scyk7aS5pc1VuZGVmaW5lZChsKSYmQyE9PW58fChlW3NdPWwpfSksZX12YXIgWUE9QT0+e2xldCB0PWIoe30sQSkse2RhdGE6ZSx3aXRoWFNSRlRva2VuOkkseHNyZkhlYWRlck5hbWU6cix4c3JmQ29va2llTmFtZTpnLGhlYWRlcnM6byxhdXRoOm59PXQ7aWYodC5oZWFkZXJzPW89cC5mcm9tKG8pLHQudXJsPW5BKEVBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKSxBLnBhcmFtcyxBLnBhcmFtc1NlcmlhbGl6ZXIpLG4mJm8uc2V0KCJBdXRob3JpemF0aW9uIiwiQmFzaWMgIitidG9hKChuLnVzZXJuYW1lfHwiIikrIjoiKyhuLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChuLnBhc3N3b3JkKSk6IiIpKSksaS5pc0Zvcm1EYXRhKGUpKXtpZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudnx8aC5oYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYpby5zZXRDb250ZW50VHlwZSh2b2lkIDApO2Vsc2UgaWYoaS5pc0Z1bmN0aW9uKGUuZ2V0SGVhZGVycykpe2xldCBFPWUuZ2V0SGVhZGVycygpLEI9WyJjb250ZW50LXR5cGUiLCJjb250ZW50LWxlbmd0aCJdO09iamVjdC5lbnRyaWVzKEUpLmZvckVhY2goKFtzLENdKT0+e0IuaW5jbHVkZXMocy50b0xvd2VyQ2FzZSgpKSYmby5zZXQocyxDKX0pfX1pZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKEkmJmkuaXNGdW5jdGlvbihJKSYmKEk9SSh0KSksSXx8SSE9PSExJiZnZSh0LnVybCkpKXtsZXQgRT1yJiZnJiZpZS5yZWFkKGcpO0UmJm8uc2V0KHIsRSl9cmV0dXJuIHR9O3ZhciBBcj10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUiLG5lPUFyJiZmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxJKXtsZXQgcj1ZQShBKSxnPXIuZGF0YSxvPXAuZnJvbShyLmhlYWRlcnMpLm5vcm1hbGl6ZSgpLHtyZXNwb25zZVR5cGU6bixvblVwbG9hZFByb2dyZXNzOkUsb25Eb3dubG9hZFByb2dyZXNzOkJ9PXIscyxDLGwsYSxRO2Z1bmN0aW9uIGYoKXthJiZhKCksUSYmUSgpLHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUocyksci5zaWduYWwmJnIuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixzKX1sZXQgYz1uZXcgWE1MSHR0cFJlcXVlc3Q7Yy5vcGVuKHIubWV0aG9kLnRvVXBwZXJDYXNlKCksci51cmwsITApLGMudGltZW91dD1yLnRpbWVvdXQ7ZnVuY3Rpb24gRCgpe2lmKCFjKXJldHVybjtsZXQgeT1wLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBjJiZjLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxrPXtkYXRhOiFufHxuPT09InRleHQifHxuPT09Impzb24iP2MucmVzcG9uc2VUZXh0OmMucmVzcG9uc2Usc3RhdHVzOmMuc3RhdHVzLHN0YXR1c1RleHQ6Yy5zdGF0dXNUZXh0LGhlYWRlcnM6eSxjb25maWc6QSxyZXF1ZXN0OmN9O1FBKGZ1bmN0aW9uKEcpe2UoRyksZigpfSxmdW5jdGlvbihHKXtJKEcpLGYoKX0sayksYz1udWxsfSJvbmxvYWRlbmQiaW4gYz9jLm9ubG9hZGVuZD1EOmMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IWN8fGMucmVhZHlTdGF0ZSE9PTR8fGMuc3RhdHVzPT09MCYmIShjLnJlc3BvbnNlVVJMJiZjLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6Iik9PT0wKXx8c2V0VGltZW91dChEKX0sYy5vbmFib3J0PWZ1bmN0aW9uKCl7YyYmKEkobmV3IHUoIlJlcXVlc3QgYWJvcnRlZCIsdS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsKX0sYy5vbmVycm9yPWZ1bmN0aW9uKFIpe2xldCBrPVImJlIubWVzc2FnZT9SLm1lc3NhZ2U6Ik5ldHdvcmsgRXJyb3IiLFA9bmV3IHUoayx1LkVSUl9ORVRXT1JLLEEsYyk7UC5ldmVudD1SfHxudWxsLEkoUCksYz1udWxsfSxjLm9udGltZW91dD1mdW5jdGlvbigpe2xldCBSPXIudGltZW91dD8idGltZW91dCBvZiAiK3IudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixrPXIudHJhbnNpdGlvbmFsfHxiQTtyLnRpbWVvdXRFcnJvck1lc3NhZ2UmJihSPXIudGltZW91dEVycm9yTWVzc2FnZSksSShuZXcgdShSLGsuY2xhcmlmeVRpbWVvdXRFcnJvcj91LkVUSU1FRE9VVDp1LkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGx9LGc9PT12b2lkIDAmJm8uc2V0Q29udGVudFR5cGUobnVsbCksInNldFJlcXVlc3RIZWFkZXIiaW4gYyYmaS5mb3JFYWNoKG8udG9KU09OKCksZnVuY3Rpb24oUixrKXtjLnNldFJlcXVlc3RIZWFkZXIoayxSKX0pLGkuaXNVbmRlZmluZWQoci53aXRoQ3JlZGVudGlhbHMpfHwoYy53aXRoQ3JlZGVudGlhbHM9ISFyLndpdGhDcmVkZW50aWFscyksbiYmbiE9PSJqc29uIiYmKGMucmVzcG9uc2VUeXBlPXIucmVzcG9uc2VUeXBlKSxCJiYoW2wsUV09ZUEoQiwhMCksYy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsbCkpLEUmJmMudXBsb2FkJiYoW0MsYV09ZUEoRSksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLEMpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLGEpKSwoci5jYW5jZWxUb2tlbnx8ci5zaWduYWwpJiYocz15PT57YyYmKEkoIXl8fHkudHlwZT9uZXcgSChudWxsLEEsYyk6eSksYy5hYm9ydCgpLGM9bnVsbCl9LHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiYoci5zaWduYWwuYWJvcnRlZD9zKCk6ci5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpKSk7bGV0IEY9c3Qoci51cmwpO2lmKEYmJmgucHJvdG9jb2xzLmluZGV4T2YoRik9PT0tMSl7SShuZXcgdSgiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIitGKyI6Iix1LkVSUl9CQURfUkVRVUVTVCxBKSk7cmV0dXJufWMuc2VuZChnfHxudWxsKX0pfTt2YXIgdHI9KEEsdCk9PntsZXR7bGVuZ3RoOmV9PUE9QT9BLmZpbHRlcihCb29sZWFuKTpbXTtpZih0fHxlKXtsZXQgST1uZXcgQWJvcnRDb250cm9sbGVyLHIsZz1mdW5jdGlvbihCKXtpZighcil7cj0hMCxuKCk7bGV0IHM9QiBpbnN0YW5jZW9mIEVycm9yP0I6dGhpcy5yZWFzb247SS5hYm9ydChzIGluc3RhbmNlb2YgdT9zOm5ldyBIKHMgaW5zdGFuY2VvZiBFcnJvcj9zLm1lc3NhZ2U6cykpfX0sbz10JiZzZXRUaW1lb3V0KCgpPT57bz1udWxsLGcobmV3IHUoYHRpbWVvdXQgJHt0fSBvZiBtcyBleGNlZWRlZGAsdS5FVElNRURPVVQpKX0sdCksbj0oKT0+e0EmJihvJiZjbGVhclRpbWVvdXQobyksbz1udWxsLEEuZm9yRWFjaChCPT57Qi51bnN1YnNjcmliZT9CLnVuc3Vic2NyaWJlKGcpOkIucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGcpfSksQT1udWxsKX07QS5mb3JFYWNoKEI9PkIuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGcpKTtsZXR7c2lnbmFsOkV9PUk7cmV0dXJuIEUudW5zdWJzY3JpYmU9KCk9PmkuYXNhcChuKSxFfX0sQ2U9dHI7dmFyIGVyPWZ1bmN0aW9uKihBLHQpe2xldCBlPUEuYnl0ZUxlbmd0aDtpZighdHx8ZTx0KXt5aWVsZCBBO3JldHVybn1sZXQgST0wLHI7Zm9yKDtJPGU7KXI9SSt0LHlpZWxkIEEuc2xpY2UoSSxyKSxJPXJ9LElyPWFzeW5jIGZ1bmN0aW9uKihBLHQpe2ZvciBhd2FpdChsZXQgZSBvZiBycihBKSl5aWVsZCplcihlLHQpfSxycj1hc3luYyBmdW5jdGlvbiooQSl7aWYoQVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pe3lpZWxkKkE7cmV0dXJufWxldCB0PUEuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6ZSx2YWx1ZTpJfT1hd2FpdCB0LnJlYWQoKTtpZihlKWJyZWFrO3lpZWxkIEl9fWZpbmFsbHl7YXdhaXQgdC5jYW5jZWwoKX19LFF0PShBLHQsZSxJKT0+e2xldCByPUlyKEEsdCksZz0wLG8sbj1FPT57b3x8KG89ITAsSSYmSShFKSl9O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwoRSl7dHJ5e2xldHtkb25lOkIsdmFsdWU6c309YXdhaXQgci5uZXh0KCk7aWYoQil7bigpLEUuY2xvc2UoKTtyZXR1cm59bGV0IEM9cy5ieXRlTGVuZ3RoO2lmKGUpe2xldCBsPWcrPUM7ZShsKX1FLmVucXVldWUobmV3IFVpbnQ4QXJyYXkocykpfWNhdGNoKEIpe3Rocm93IG4oQiksQn19LGNhbmNlbChFKXtyZXR1cm4gbihFKSxyLnJldHVybigpfX0se2hpZ2hXYXRlck1hcms6Mn0pfTt2YXIgQmU9NjQqMTAyNCx7aXNGdW5jdGlvbjpxQX09aSxjZT0oKHtmZXRjaDpBLFJlcXVlc3Q6dCxSZXNwb25zZTplfSk9Pih7ZmV0Y2g6QSxSZXF1ZXN0OnQsUmVzcG9uc2U6ZX0pKShpLmdsb2JhbCkse1JlYWRhYmxlU3RyZWFtOmFlLFRleHRFbmNvZGVyOlFlfT1pLmdsb2JhbCxFZT0oQSwuLi50KT0+e3RyeXtyZXR1cm4hIUEoLi4udCl9Y2F0Y2h7cmV0dXJuITF9fSxvcj1BPT57bGV0e2ZldGNoOnQsUmVxdWVzdDplLFJlc3BvbnNlOkl9PU9iamVjdC5hc3NpZ24oe30sY2UsQSkscj1xQSh0KSxnPXFBKGUpLG89cUEoSSk7aWYoIXIpcmV0dXJuITE7bGV0IG49ciYmcUEoYWUpLEU9ciYmKHR5cGVvZiBRZT09ImZ1bmN0aW9uIj8oUT0+Zj0+US5lbmNvZGUoZikpKG5ldyBRZSk6YXN5bmMgUT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IGUoUSkuYXJyYXlCdWZmZXIoKSkpLEI9ZyYmbiYmRWUoKCk9PntsZXQgUT0hMSxmPW5ldyBlKGgub3JpZ2luLHtib2R5Om5ldyBhZSxtZXRob2Q6IlBPU1QiLGdldCBkdXBsZXgoKXtyZXR1cm4gUT0hMCwiaGFsZiJ9fSkuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpO3JldHVybiBRJiYhZn0pLHM9byYmbiYmRWUoKCk9PmkuaXNSZWFkYWJsZVN0cmVhbShuZXcgSSgiIikuYm9keSkpLEM9e3N0cmVhbTpzJiYoUT0+US5ib2R5KX07ciYmWyJ0ZXh0IiwiYXJyYXlCdWZmZXIiLCJibG9iIiwiZm9ybURhdGEiLCJzdHJlYW0iXS5mb3JFYWNoKFE9PnshQ1tRXSYmKENbUV09KGYsYyk9PntsZXQgRD1mJiZmW1FdO2lmKEQpcmV0dXJuIEQuY2FsbChmKTt0aHJvdyBuZXcgdShgUmVzcG9uc2UgdHlwZSBcJyR7UX1cJyBpcyBub3Qgc3VwcG9ydGVkYCx1LkVSUl9OT1RfU1VQUE9SVCxjKX0pfSk7bGV0IGw9YXN5bmMgUT0+e2lmKFE9PW51bGwpcmV0dXJuIDA7aWYoaS5pc0Jsb2IoUSkpcmV0dXJuIFEuc2l6ZTtpZihpLmlzU3BlY0NvbXBsaWFudEZvcm0oUSkpcmV0dXJuKGF3YWl0IG5ldyBlKGgub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6UX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoaS5pc0FycmF5QnVmZmVyVmlldyhRKXx8aS5pc0FycmF5QnVmZmVyKFEpKXJldHVybiBRLmJ5dGVMZW5ndGg7aWYoaS5pc1VSTFNlYXJjaFBhcmFtcyhRKSYmKFE9USsiIiksaS5pc1N0cmluZyhRKSlyZXR1cm4oYXdhaXQgRShRKSkuYnl0ZUxlbmd0aH0sYT1hc3luYyhRLGYpPT57bGV0IGM9aS50b0Zpbml0ZU51bWJlcihRLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGM/P2woZil9O3JldHVybiBhc3luYyBRPT57bGV0e3VybDpmLG1ldGhvZDpjLGRhdGE6RCxzaWduYWw6RixjYW5jZWxUb2tlbjp5LHRpbWVvdXQ6UixvbkRvd25sb2FkUHJvZ3Jlc3M6ayxvblVwbG9hZFByb2dyZXNzOlAscmVzcG9uc2VUeXBlOkcsaGVhZGVyczpXQSx3aXRoQ3JlZGVudGlhbHM6ZEE9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6bXR9PVlBKFEpO0c9Rz8oRysiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IERBPUNlKFtGLHkmJnkudG9BYm9ydFNpZ25hbCgpXSxSKSxyQT1udWxsLGo9REEmJkRBLnVuc3Vic2NyaWJlJiYoKCk9PntEQS51bnN1YnNjcmliZSgpfSksd3Q7dHJ5e2lmKFAmJkImJmMhPT0iZ2V0IiYmYyE9PSJoZWFkIiYmKHd0PWF3YWl0IGEoV0EsRCkpIT09MCl7bGV0IE89bmV3IGUoZix7bWV0aG9kOiJQT1NUIixib2R5OkQsZHVwbGV4OiJoYWxmIn0pLFg7aWYoaS5pc0Zvcm1EYXRhKEQpJiYoWD1PLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJldBLnNldENvbnRlbnRUeXBlKFgpLE8uYm9keSl7bGV0W1pBLGhBXT1udCh3dCxlQShDdChQKSkpO0Q9UXQoTy5ib2R5LEJlLFpBLGhBKX19aS5pc1N0cmluZyhkQSl8fChkQT1kQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgSj1nJiYiY3JlZGVudGlhbHMiaW4gZS5wcm90b3R5cGUscHQ9ey4uLm10LHNpZ25hbDpEQSxtZXRob2Q6Yy50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6V0Eubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpELGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6Sj9kQTp2b2lkIDB9O3JBPWcmJm5ldyBlKGYscHQpO2xldCBLPWF3YWl0KGc/dChyQSxtdCk6dChmLHB0KSksU3Q9cyYmKEc9PT0ic3RyZWFtInx8Rz09PSJyZXNwb25zZSIpO2lmKHMmJihrfHxTdCYmaikpe2xldCBPPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKEZ0PT57T1tGdF09S1tGdF19KTtsZXQgWD1pLnRvRmluaXRlTnVtYmVyKEsuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtaQSxoQV09ayYmbnQoWCxlQShDdChrKSwhMCkpfHxbXTtLPW5ldyBJKFF0KEsuYm9keSxCZSxaQSwoKT0+e2hBJiZoQSgpLGomJmooKX0pLE8pfUc9R3x8InRleHQiO2xldCBIZT1hd2FpdCBDW2kuZmluZEtleShDLEcpfHwidGV4dCJdKEssUSk7cmV0dXJuIVN0JiZqJiZqKCksYXdhaXQgbmV3IFByb21pc2UoKE8sWCk9PntRQShPLFgse2RhdGE6SGUsaGVhZGVyczpwLmZyb20oSy5oZWFkZXJzKSxzdGF0dXM6Sy5zdGF0dXMsc3RhdHVzVGV4dDpLLnN0YXR1c1RleHQsY29uZmlnOlEscmVxdWVzdDpyQX0pfSl9Y2F0Y2goSil7dGhyb3cgaiYmaigpLEomJkoubmFtZT09PSJUeXBlRXJyb3IiJiYvTG9hZCBmYWlsZWR8ZmV0Y2gvaS50ZXN0KEoubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxRLHJBKSx7Y2F1c2U6Si5jYXVzZXx8Sn0pOnUuZnJvbShKLEomJkouY29kZSxRLHJBKX19fSxncj1uZXcgTWFwLEV0PUE9PntsZXQgdD1pLm1lcmdlLmNhbGwoe3NraXBVbmRlZmluZWQ6ITB9LGNlLEE/QS5lbnY6bnVsbCkse2ZldGNoOmUsUmVxdWVzdDpJLFJlc3BvbnNlOnJ9PXQsZz1bSSxyLGVdLG89Zy5sZW5ndGgsbj1vLEUsQixzPWdyO2Zvcig7bi0tOylFPWdbbl0sQj1zLmdldChFKSxCPT09dm9pZCAwJiZzLnNldChFLEI9bj9uZXcgTWFwOm9yKHQpKSxzPUI7cmV0dXJuIEJ9LEdnPUV0KCk7dmFyIGN0PXtodHRwOmtBLHhocjpuZSxmZXRjaDp7Z2V0OkV0fX07aS5mb3JFYWNoKGN0LChBLHQpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6dH0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTp0fSl9fSk7dmFyIGZlPUE9PmAtICR7QX1gLHNyPUE9PmkuaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxNQT17Z2V0QWRhcHRlcjooQSx0KT0+e0E9aS5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6ZX09QSxJLHIsZz17fTtmb3IobGV0IG89MDtvPGU7bysrKXtJPUFbb107bGV0IG47aWYocj1JLCFzcihJKSYmKHI9Y3RbKG49U3RyaW5nKEkpKS50b0xvd2VyQ2FzZSgpXSxyPT09dm9pZCAwKSl0aHJvdyBuZXcgdShgVW5rbm93biBhZGFwdGVyIFwnJHtufVwnYCk7aWYociYmKGkuaXNGdW5jdGlvbihyKXx8KHI9ci5nZXQodCkpKSlicmVhaztnW258fCIlMjMiK29dPXJ9aWYoIXIpe2xldCBvPU9iamVjdC5lbnRyaWVzKGcpLm1hcCgoW0UsQl0pPT5gYWRhcHRlciAke0V9IGArKEI9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxuPWU/by5sZW5ndGg+MT9gc2luY2UgOiUwQWArby5tYXAoZmUpLmpvaW4oYCUwQWApOiIgIitmZShvWzBdKToiYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQiO3Rocm93IG5ldyB1KCJUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIrbiwiRVJSX05PVF9TVVBQT1JUIil9cmV0dXJuIHJ9LGFkYXB0ZXJzOmN0fTtmdW5jdGlvbiBmdChBKXtpZihBLmNhbmNlbFRva2VuJiZBLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxBLnNpZ25hbCYmQS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgSChudWxsLEEpfWZ1bmN0aW9uIEtBKEEpe3JldHVybiBmdChBKSxBLmhlYWRlcnM9cC5mcm9tKEEuaGVhZGVycyksQS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlcXVlc3QpLFsicG9zdCIsInB1dCIsInBhdGNoIl0uaW5kZXhPZihBLm1ldGhvZCkhPT0tMSYmQS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCExKSxNQS5nZXRBZGFwdGVyKEEuYWRhcHRlcnx8QUEuYWRhcHRlcixBKShBKS50aGVuKGZ1bmN0aW9uKEkpe3JldHVybiBmdChBKSxJLmRhdGE9QkEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsSSksSS5oZWFkZXJzPXAuZnJvbShJLmhlYWRlcnMpLEl9LGZ1bmN0aW9uKEkpe3JldHVybiBhQShJKXx8KGZ0KEEpLEkmJkkucmVzcG9uc2UmJihJLnJlc3BvbnNlLmRhdGE9QkEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2UsSS5yZXNwb25zZSksSS5yZXNwb25zZS5oZWFkZXJzPXAuZnJvbShJLnJlc3BvbnNlLmhlYWRlcnMpKSksUHJvbWlzZS5yZWplY3QoSSl9KX12YXIgT0E9IjEuMTIuMCI7dmFyIFRBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSx0KT0+e1RBW0FdPWZ1bmN0aW9uKEkpe3JldHVybiB0eXBlb2YgST09PUF8fCJhIisodDwxPyJuICI6IiAiKStBfX0pO3ZhciBsZT17fTtUQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24odCxlLEkpe2Z1bmN0aW9uIHIoZyxvKXtyZXR1cm4iW0F4aW9zIHYiK09BKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gXCciK2crIlwnIitvKyhJPyIuICIrSToiIil9cmV0dXJuKGcsbyxuKT0+e2lmKHQ9PT0hMSl0aHJvdyBuZXcgdShyKG8sIiBoYXMgYmVlbiByZW1vdmVkIisoZT8iIGluICIrZToiIikpLHUuRVJSX0RFUFJFQ0FURUQpO3JldHVybiBlJiYhbGVbb10mJihsZVtvXT0hMCxjb25zb2xlLndhcm4ocihvLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2IitlKyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLHQ/dChnLG8sbik6ITB9fTtUQS5zcGVsbGluZz1mdW5jdGlvbih0KXtyZXR1cm4oZSxJKT0+KGNvbnNvbGUud2FybihgJHtJfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke3R9YCksITApfTtmdW5jdGlvbiBucihBLHQsZSl7aWYodHlwZW9mIEEhPSJvYmplY3QiKXRocm93IG5ldyB1KCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iix1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgST1PYmplY3Qua2V5cyhBKSxyPUkubGVuZ3RoO2Zvcig7ci0tID4wOyl7bGV0IGc9SVtyXSxvPXRbZ107aWYobyl7bGV0IG49QVtnXSxFPW49PT12b2lkIDB8fG8obixnLEEpO2lmKEUhPT0hMCl0aHJvdyBuZXcgdSgib3B0aW9uICIrZysiIG11c3QgYmUgIitFLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnRpbnVlfWlmKGUhPT0hMCl0aHJvdyBuZXcgdSgiVW5rbm93biBvcHRpb24gIitnLHUuRVJSX0JBRF9PUFRJT04pfX12YXIgY0E9e2Fzc2VydE9wdGlvbnM6bnIsdmFsaWRhdG9yczpUQX07dmFyIFk9Y0EudmFsaWRhdG9ycyxJQT1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmRlZmF1bHRzPXR8fHt9LHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyB0dCxyZXNwb25zZTpuZXcgdHR9fWFzeW5jIHJlcXVlc3QodCxlKXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QodCxlKX1jYXRjaChJKXtpZihJIGluc3RhbmNlb2YgRXJyb3Ipe2xldCByPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHIpOnI9bmV3IEVycm9yO2xldCBnPXIuc3RhY2s/ci5zdGFjay5yZXBsYWNlKC9eLitcXG4vLCIiKToiIjt0cnl7SS5zdGFjaz9nJiYhU3RyaW5nKEkuc3RhY2spLmVuZHNXaXRoKGcucmVwbGFjZSgvXi4rXFxuLitcXG4vLCIiKSkmJihJLnN0YWNrKz1gJTBBYCtnKTpJLnN0YWNrPWd9Y2F0Y2h7fX10aHJvdyBJfX1fcmVxdWVzdCh0LGUpe3R5cGVvZiB0PT0ic3RyaW5nIj8oZT1lfHx7fSxlLnVybD10KTplPXR8fHt9LGU9Yih0aGlzLmRlZmF1bHRzLGUpO2xldHt0cmFuc2l0aW9uYWw6SSxwYXJhbXNTZXJpYWxpemVyOnIsaGVhZGVyczpnfT1lO0khPT12b2lkIDAmJmNBLmFzc2VydE9wdGlvbnMoSSx7c2lsZW50SlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpZLnRyYW5zaXRpb25hbChZLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKX0sITEpLHIhPW51bGwmJihpLmlzRnVuY3Rpb24ocik/ZS5wYXJhbXNTZXJpYWxpemVyPXtzZXJpYWxpemU6cn06Y0EuYXNzZXJ0T3B0aW9ucyhyLHtlbmNvZGU6WS5mdW5jdGlvbixzZXJpYWxpemU6WS5mdW5jdGlvbn0sITApKSxlLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwfHwodGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMD9lLmFsbG93QWJzb2x1dGVVcmxzPXRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHM6ZS5hbGxvd0Fic29sdXRlVXJscz0hMCksY0EuYXNzZXJ0T3B0aW9ucyhlLHtiYXNlVXJsOlkuc3BlbGxpbmcoImJhc2VVUkwiKSx3aXRoWHNyZlRva2VuOlkuc3BlbGxpbmcoIndpdGhYU1JGVG9rZW4iKX0sITApLGUubWV0aG9kPShlLm1ldGhvZHx8dGhpcy5kZWZhdWx0cy5tZXRob2R8fCJnZXQiKS50b0xvd2VyQ2FzZSgpO2xldCBvPWcmJmkubWVyZ2UoZy5jb21tb24sZ1tlLm1ldGhvZF0pO2cmJmkuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxRPT57ZGVsZXRlIGdbUV19KSxlLmhlYWRlcnM9cC5jb25jYXQobyxnKTtsZXQgbj1bXSxFPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihmKXt0eXBlb2YgZi5ydW5XaGVuPT0iZnVuY3Rpb24iJiZmLnJ1bldoZW4oZSk9PT0hMXx8KEU9RSYmZi5zeW5jaHJvbm91cyxuLnVuc2hpZnQoZi5mdWxmaWxsZWQsZi5yZWplY3RlZCkpfSk7bGV0IEI9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihmKXtCLnB1c2goZi5mdWxmaWxsZWQsZi5yZWplY3RlZCl9KTtsZXQgcyxDPTAsbDtpZighRSl7bGV0IFE9W0tBLmJpbmQodGhpcyksdm9pZCAwXTtmb3IoUS51bnNoaWZ0KC4uLm4pLFEucHVzaCguLi5CKSxsPVEubGVuZ3RoLHM9UHJvbWlzZS5yZXNvbHZlKGUpO0M8bDspcz1zLnRoZW4oUVtDKytdLFFbQysrXSk7cmV0dXJuIHN9bD1uLmxlbmd0aDtsZXQgYT1lO2ZvcihDPTA7QzxsOyl7bGV0IFE9bltDKytdLGY9bltDKytdO3RyeXthPVEoYSl9Y2F0Y2goYyl7Zi5jYWxsKHRoaXMsYyk7YnJlYWt9fXRyeXtzPUtBLmNhbGwodGhpcyxhKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKEM9MCxsPUIubGVuZ3RoO0M8bDspcz1zLnRoZW4oQltDKytdLEJbQysrXSk7cmV0dXJuIHN9Z2V0VXJpKHQpe3Q9Yih0aGlzLmRlZmF1bHRzLHQpO2xldCBlPUVBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gbkEoZSx0LnBhcmFtcyx0LnBhcmFtc1NlcmlhbGl6ZXIpfX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbih0KXtJQS5wcm90b3R5cGVbdF09ZnVuY3Rpb24oZSxJKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGIoSXx8e30se21ldGhvZDp0LHVybDplLGRhdGE6KEl8fHt9KS5kYXRhfSkpfX0pO2kuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoSSl7cmV0dXJuIGZ1bmN0aW9uKGcsbyxuKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGIobnx8e30se21ldGhvZDp0LGhlYWRlcnM6ST97IkNvbnRlbnQtVHlwZSI6Im11bHRpcGFydC9mb3JtLWRhdGEifTp7fSx1cmw6ZyxkYXRhOm99KSl9fUlBLnByb3RvdHlwZVt0XT1lKCksSUEucHJvdG90eXBlW3QrIkZvcm0iXT1lKCEwKX0pO3ZhciBmQT1JQTt2YXIgbHQ9Y2xhc3MgQXtjb25zdHJ1Y3Rvcih0KXtpZih0eXBlb2YgdCE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7bGV0IGU7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGcpe2U9Z30pO2xldCBJPXRoaXM7dGhpcy5wcm9taXNlLnRoZW4ocj0+e2lmKCFJLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBnPUkuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKDtnLS0gPjA7KUkuX2xpc3RlbmVyc1tnXShyKTtJLl9saXN0ZW5lcnM9bnVsbH0pLHRoaXMucHJvbWlzZS50aGVuPXI9PntsZXQgZyxvPW5ldyBQcm9taXNlKG49PntJLnN1YnNjcmliZShuKSxnPW59KS50aGVuKHIpO3JldHVybiBvLmNhbmNlbD1mdW5jdGlvbigpe0kudW5zdWJzY3JpYmUoZyl9LG99LHQoZnVuY3Rpb24oZyxvLG4pe0kucmVhc29ufHwoSS5yZWFzb249bmV3IEgoZyxvLG4pLGUoSS5yZWFzb24pKX0pfXRocm93SWZSZXF1ZXN0ZWQoKXtpZih0aGlzLnJlYXNvbil0aHJvdyB0aGlzLnJlYXNvbn1zdWJzY3JpYmUodCl7aWYodGhpcy5yZWFzb24pe3QodGhpcy5yZWFzb24pO3JldHVybn10aGlzLl9saXN0ZW5lcnM/dGhpcy5fbGlzdGVuZXJzLnB1c2godCk6dGhpcy5fbGlzdGVuZXJzPVt0XX11bnN1YnNjcmliZSh0KXtpZighdGhpcy5fbGlzdGVuZXJzKXJldHVybjtsZXQgZT10aGlzLl9saXN0ZW5lcnMuaW5kZXhPZih0KTtlIT09LTEmJnRoaXMuX2xpc3RlbmVycy5zcGxpY2UoZSwxKX10b0Fib3J0U2lnbmFsKCl7bGV0IHQ9bmV3IEFib3J0Q29udHJvbGxlcixlPUk9Pnt0LmFib3J0KEkpfTtyZXR1cm4gdGhpcy5zdWJzY3JpYmUoZSksdC5zaWduYWwudW5zdWJzY3JpYmU9KCk9PnRoaXMudW5zdWJzY3JpYmUoZSksdC5zaWduYWx9c3RhdGljIHNvdXJjZSgpe2xldCB0O3JldHVybnt0b2tlbjpuZXcgQShmdW5jdGlvbihyKXt0PXJ9KSxjYW5jZWw6dH19fSx1ZT1sdDtmdW5jdGlvbiB1dChBKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIEEuYXBwbHkobnVsbCxlKX19ZnVuY3Rpb24gZHQoQSl7cmV0dXJuIGkuaXNPYmplY3QoQSkmJkEuaXNBeGlvc0Vycm9yPT09ITB9dmFyIER0PXtDb250aW51ZToxMDAsU3dpdGNoaW5nUHJvdG9jb2xzOjEwMSxQcm9jZXNzaW5nOjEwMixFYXJseUhpbnRzOjEwMyxPazoyMDAsQ3JlYXRlZDoyMDEsQWNjZXB0ZWQ6MjAyLE5vbkF1dGhvcml0YXRpdmVJbmZvcm1hdGlvbjoyMDMsTm9Db250ZW50OjIwNCxSZXNldENvbnRlbnQ6MjA1LFBhcnRpYWxDb250ZW50OjIwNixNdWx0aVN0YXR1czoyMDcsQWxyZWFkeVJlcG9ydGVkOjIwOCxJbVVzZWQ6MjI2LE11bHRpcGxlQ2hvaWNlczozMDAsTW92ZWRQZXJtYW5lbnRseTozMDEsRm91bmQ6MzAyLFNlZU90aGVyOjMwMyxOb3RNb2RpZmllZDozMDQsVXNlUHJveHk6MzA1LFVudXNlZDozMDYsVGVtcG9yYXJ5UmVkaXJlY3Q6MzA3LFBlcm1hbmVudFJlZGlyZWN0OjMwOCxCYWRSZXF1ZXN0OjQwMCxVbmF1dGhvcml6ZWQ6NDAxLFBheW1lbnRSZXF1aXJlZDo0MDIsRm9yYmlkZGVuOjQwMyxOb3RGb3VuZDo0MDQsTWV0aG9kTm90QWxsb3dlZDo0MDUsTm90QWNjZXB0YWJsZTo0MDYsUHJveHlBdXRoZW50aWNhdGlvblJlcXVpcmVkOjQwNyxSZXF1ZXN0VGltZW91dDo0MDgsQ29uZmxpY3Q6NDA5LEdvbmU6NDEwLExlbmd0aFJlcXVpcmVkOjQxMSxQcmVjb25kaXRpb25GYWlsZWQ6NDEyLFBheWxvYWRUb29MYXJnZTo0MTMsVXJpVG9vTG9uZzo0MTQsVW5zdXBwb3J0ZWRNZWRpYVR5cGU6NDE1LFJhbmdlTm90U2F0aXNmaWFibGU6NDE2LEV4cGVjdGF0aW9uRmFpbGVkOjQxNyxJbUFUZWFwb3Q6NDE4LE1pc2RpcmVjdGVkUmVxdWVzdDo0MjEsVW5wcm9jZXNzYWJsZUVudGl0eTo0MjIsTG9ja2VkOjQyMyxGYWlsZWREZXBlbmRlbmN5OjQyNCxUb29FYXJseTo0MjUsVXBncmFkZVJlcXVpcmVkOjQyNixQcmVjb25kaXRpb25SZXF1aXJlZDo0MjgsVG9vTWFueVJlcXVlc3RzOjQyOSxSZXF1ZXN0SGVhZGVyRmllbGRzVG9vTGFyZ2U6NDMxLFVuYXZhaWxhYmxlRm9yTGVnYWxSZWFzb25zOjQ1MSxJbnRlcm5hbFNlcnZlckVycm9yOjUwMCxOb3RJbXBsZW1lbnRlZDo1MDEsQmFkR2F0ZXdheTo1MDIsU2VydmljZVVuYXZhaWxhYmxlOjUwMyxHYXRld2F5VGltZW91dDo1MDQsSHR0cFZlcnNpb25Ob3RTdXBwb3J0ZWQ6NTA1LFZhcmlhbnRBbHNvTmVnb3RpYXRlczo1MDYsSW5zdWZmaWNpZW50U3RvcmFnZTo1MDcsTG9vcERldGVjdGVkOjUwOCxOb3RFeHRlbmRlZDo1MTAsTmV0d29ya0F1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NTExfTtPYmplY3QuZW50cmllcyhEdCkuZm9yRWFjaCgoW0EsdF0pPT57RHRbdF09QX0pO3ZhciBkZT1EdDtmdW5jdGlvbiBEZShBKXtsZXQgdD1uZXcgZkEoQSksZT1vQShmQS5wcm90b3R5cGUucmVxdWVzdCx0KTtyZXR1cm4gaS5leHRlbmQoZSxmQS5wcm90b3R5cGUsdCx7YWxsT3duS2V5czohMH0pLGkuZXh0ZW5kKGUsdCxudWxsLHthbGxPd25LZXlzOiEwfSksZS5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIERlKGIoQSxyKSl9LGV9dmFyIG09RGUoQUEpO20uQXhpb3M9ZkE7bS5DYW5jZWxlZEVycm9yPUg7bS5DYW5jZWxUb2tlbj11ZTttLmlzQ2FuY2VsPWFBO20uVkVSU0lPTj1PQTttLnRvRm9ybURhdGE9VDttLkF4aW9zRXJyb3I9dTttLkNhbmNlbD1tLkNhbmNlbGVkRXJyb3I7bS5hbGw9ZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UuYWxsKHQpfTttLnNwcmVhZD11dDttLmlzQXhpb3NFcnJvcj1kdDttLm1lcmdlQ29uZmlnPWI7bS5BeGlvc0hlYWRlcnM9cDttLmZvcm1Ub0pTT049QT0+SkEoaS5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTttLmdldEFkYXB0ZXI9TUEuZ2V0QWRhcHRlcjttLkh0dHBTdGF0dXNDb2RlPWRlO20uZGVmYXVsdD1tO3ZhciB4QT1tO3ZhcntBeGlvczpSaSxBeGlvc0Vycm9yOk5pLENhbmNlbGVkRXJyb3I6VWksaXNDYW5jZWw6R2ksQ2FuY2VsVG9rZW46a2ksVkVSU0lPTjpMaSxhbGw6YmksQ2FuY2VsOkppLGlzQXhpb3NFcnJvcjpIaSxzcHJlYWQ6WWksdG9Gb3JtRGF0YTpxaSxBeGlvc0hlYWRlcnM6TWksSHR0cFN0YXR1c0NvZGU6S2ksZm9ybVRvSlNPTjpPaSxnZXRBZGFwdGVyOlRpLG1lcmdlQ29uZmlnOnhpfT14QTt2YXIgbEEsTSx5dCxodD17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe3l0PW5ldyBVaW50OEFycmF5KE0uZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSxQQT1jbGFzc3tpbml0KCl7cmV0dXJuIGxBfHwodHlwZW9mIGZldGNoPCJ1Ij9sQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK2hlKS50aGVuKHQ9PnQuYXJyYXlCdWZmZXIoKSkudGhlbih0PT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZSh0LGh0KSkudGhlbih0aGlzLl9pbml0KTpsQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShoZSwiYmFzZTY0IiksaHQpLnRoZW4odGhpcy5faW5pdCksbEEpfV9pbml0KHQpe009dC5pbnN0YW5jZSxodC5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUodCxlPTApe2lmKCFNKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCBJPXQuYnl0ZUxlbmd0aCxyPU0uZXhwb3J0cy5tYWxsb2MoSSk7eXQuc2V0KHQsciksZT1lfHxOdW1iZXIoTS5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUocixJKSk7bGV0IGc9TS5leHBvcnRzLm1hbGxvYyhlKSxvPU0uZXhwb3J0cy5aU1REX2RlY29tcHJlc3MoZyxlLHIsSSksbj15dC5zbGljZShnLGcrbyk7cmV0dXJuIE0uZXhwb3J0cy5mcmVlKHIpLE0uZXhwb3J0cy5mcmVlKGcpLG59fSxoZT0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciB5ZT1uZXcgUEEsbWU9ITE7YXN5bmMgZnVuY3Rpb24gQ3IoQSx0LGUpe2xldCBJPW51bGw7dHlwZW9mIEEhPSJzdHJpbmciP0k9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP0k9QTpJPWAke3R9LyR7QX1gLEkuZW5kc1dpdGgoIi5qcyIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTMpKSxJLmVuZHNXaXRoKCIud2FzbSIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTUpKSxJLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC05KSk7bGV0IHI9YCR7SX0ud2FzbWAsZz1hd2FpdCB4QS5nZXQoYCR7cn0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOmV9KTttZXx8KGF3YWl0IHllLmluaXQoKSxtZT0hMCk7bGV0IG49eWUuZGVjb2RlKG5ldyBVaW50OEFycmF5KGcuZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke0l9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6bn0pfXZhciB3ZT1Dcjt2YXIgakE9bmV3IE1hcDthc3luYyBmdW5jdGlvbiBCcihBLHQsZSl7bGV0IEk9QSxyPUEsZz1udWxsO3JldHVybiB0eXBlb2YgQSE9InN0cmluZyImJihJPW5ldyBVUkwoQS5ocmVmKSxyPUkuaHJlZiksakEuaGFzKHIpP2c9YXdhaXQgakEuZ2V0KHIpOihqQS5zZXQocix3ZShJLHQsZSkpLGc9YXdhaXQgakEuZ2V0KHIpKSxnfXZhciBwZT1Ccjt2YXIgYXI9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LGQ9YXI7dmFyIFFyPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sVT1Rcjt2YXIgRXI9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFY9RXI7ZnVuY3Rpb24gY3IoQSx0KXtsZXQgZT1udWxsO3N3aXRjaChBKXtjYXNlIFUuVUludDg6e2U9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDg6e2U9bmV3IEludDhBcnJheSh0KTticmVha31jYXNlIFUuVUludDE2OntlPW5ldyBVaW50MTZBcnJheSh0KTticmVha31jYXNlIFUuSW50MTY6e2U9bmV3IEludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQzMjp7ZT1uZXcgVWludDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDMyOntlPW5ldyBJbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ1VpbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ0ludDY0QXJyYXkodCk6ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIFYuRmxvYXQzMjp7ZT1uZXcgRmxvYXQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVi5GbG9hdDY0OntlPW5ldyBGbG9hdDY0QXJyYXkodCk7YnJlYWt9Y2FzZSJudWxsIjp7ZT1udWxsO2JyZWFrfWNhc2UgbnVsbDp7ZT1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIGV9dmFyIHE9Y3I7dmFyIFJlPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLFNlPW5ldyBUZXh0RW5jb2RlcixGZT1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gZnIoQSx0KXtsZXQgZT17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSxJPUEuZnNfb3Blbih0LGUuZmxhZ3MpLGc9QS5mc19zdGF0KHQpLnNpemUsbz1udWxsO1JlP289bmV3IFNoYXJlZEFycmF5QnVmZmVyKGcpOm89bmV3IEFycmF5QnVmZmVyKGcpO2xldCBuPW5ldyBVaW50OEFycmF5KG8pO3JldHVybiBBLmZzX3JlYWQoSSxuLDAsZywwKSxBLmZzX2Nsb3NlKEkpLG59ZnVuY3Rpb24gTmUoQSx0LGUpe2xldCBJPW51bGw7UmU/ST1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoZSk6ST1uZXcgQXJyYXlCdWZmZXIoZSk7bGV0IHI9bmV3IFVpbnQ4QXJyYXkoSSksZz1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsdCxlKTtyZXR1cm4gci5zZXQoZykscn1mdW5jdGlvbiB3KEEsdCxlLEkpe2xldCByPTA7cmV0dXJuIHQhPT1udWxsJiYocj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLEksdC5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheSh0LmJ1ZmZlcikscikpLHJ9ZnVuY3Rpb24geChBLHQsZSl7bGV0IEk9SlNPTi5zdHJpbmdpZnkodCkscj1BLmxlbmd0aEJ5dGVzVVRGOChJKSsxLGc9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHJdKTtBLnN0cmluZ1RvVVRGOChJLGcscil9ZnVuY3Rpb24gUyhBLHQsZSxJKXtsZXQgcj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxnPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsZV0pLG89TmUoQSxyLGcpO3JldHVybiBxKEksby5idWZmZXIpfWZ1bmN0aW9uIHVBKEEsdCl7bGV0IGU9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCx0XSksST1BLlVURjhUb1N0cmluZyhlKTtyZXR1cm4gSlNPTi5wYXJzZShJKX1mdW5jdGlvbiBscihBLHQsZSxJKXtJIT1udWxsJiZJLmxlbmd0aD4wJiZJLmZvckVhY2goZnVuY3Rpb24oQixzKXtzd2l0Y2goQi50eXBlKXtjYXNlIGQuVGV4dFN0cmVhbTp7bGV0IEM9U2UuZW5jb2RlKEIuZGF0YS5kYXRhKSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IEM9U2UuZW5jb2RlKEpTT04uc3RyaW5naWZ5KEIuZGF0YSkpLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLkJpbmFyeVN0cmVhbTp7bGV0IEM9Qi5kYXRhLmRhdGEsbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgZC5JbWFnZTp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMuZGF0YSxzLDApLGE9dyhBLEMuZGlyZWN0aW9uLHMsMSksUT10eXBlb2YgQy5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShDLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sZj17aW1hZ2VUeXBlOkMuaW1hZ2VUeXBlLG5hbWU6Qy5uYW1lLG9yaWdpbjpDLm9yaWdpbixzcGFjaW5nOkMuc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWAsc2l6ZTpDLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxtZXRhZGF0YTpRfTt4KEEsZixzKTticmVha31jYXNlIGQuTWVzaDp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMucG9pbnRzLHMsMCksYT13KEEsQy5jZWxscyxzLDEpLFE9dyhBLEMucG9pbnREYXRhLHMsMiksZj13KEEsQy5jZWxsRGF0YSxzLDMpLGM9e21lc2hUeXBlOkMubWVzaFR5cGUsbmFtZTpDLm5hbWUsbnVtYmVyT2ZQb2ludHM6Qy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZDZWxsczpDLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWAsY2VsbEJ1ZmZlclNpemU6Qy5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOkMubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTt4KEEsYyxzKTticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMucG9pbnREYXRhLHMsMSksUT17cG9pbnRTZXRUeXBlOkMucG9pbnRTZXRUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mUG9pbnRQaXhlbHM6Qy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YH07eChBLFEscyk7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBDPUIuZGF0YSxsPVtdLGE9MDtDLmZvckVhY2goUT0+e2xldCBmPSIiLGM9IiI7US50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGY9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5maXhlZFBhcmFtZXRlcnMscyxhKX1gLGErPTEsYz1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3coQSxRLnBhcmFtZXRlcnMscyxhKX1gLGErPTEpO2xldCBEPXt0cmFuc2Zvcm1UeXBlOlEudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpRLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpRLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOlEubmFtZSxpbnB1dFNwYWNlTmFtZTpRLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpRLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmMsZml4ZWRQYXJhbWV0ZXJzOmZ9O2wucHVzaChEKX0pLHgoQSxsLHMpO2JyZWFrfWNhc2UgZC5Qb2x5RGF0YTp7bGV0IEM9Qi5kYXRhLGw9dyhBLEMucG9pbnRzLHMsMCksYT13KEEsQy52ZXJ0aWNlcyxzLDEpLFE9dyhBLEMubGluZXMscywyKSxmPXcoQSxDLnBvbHlnb25zLHMsMyksYz13KEEsQy50cmlhbmdsZVN0cmlwcyxzLDQpLEQ9dyhBLEMucG9pbnREYXRhLHMsNSksRj13KEEsQy5wb2ludERhdGEscyw2KSx5PXtwb2x5RGF0YVR5cGU6Qy5wb2x5RGF0YVR5cGUsbmFtZTpDLm5hbWUsbnVtYmVyT2ZQb2ludHM6Qy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsdmVydGljZXNCdWZmZXJTaXplOkMudmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLGxpbmVzQnVmZmVyU2l6ZTpDLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxwb2x5Z29uc0J1ZmZlclNpemU6Qy5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOkMudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mUG9pbnRQaXhlbHM6Qy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0R9YCxudW1iZXJPZkNlbGxQaXhlbHM6Qy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtGfWB9O3goQSx5LHMpO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCByPUEuc3RhY2tTYXZlKCksZz0wO3RyeXtnPUEuY2FsbE1haW4odC5zbGljZSgpKX1jYXRjaChCKXt0aHJvdyB0eXBlb2YgQj09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShCKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxCfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUocil9bGV0IG89QS5nZXRNb2R1bGVTdGRvdXQoKSxuPUEuZ2V0TW9kdWxlU3RkZXJyKCksRT1bXTtyZXR1cm4gZSE9bnVsbCYmZS5sZW5ndGg+MCYmZz09PTAmJmUuZm9yRWFjaChmdW5jdGlvbihCLHMpe2xldCBDPW51bGw7c3dpdGNoKEIudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsYSxRKTtDPXtkYXRhOkZlLmRlY29kZShmKX07YnJlYWt9Y2FzZSBkLkpzb25Db21wYXRpYmxlOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGEsUSk7Qz1KU09OLnBhcnNlKEZlLmRlY29kZShmKSk7YnJlYWt9Y2FzZSBkLkJpbmFyeVN0cmVhbTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKTtDPXtkYXRhOk5lKEEsYSxRKX07YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntDPXtwYXRoOkIuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShCLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgZC5CaW5hcnlGaWxlOntDPXtwYXRoOkIuZGF0YS5wYXRoLGRhdGE6ZnIoQSxCLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgZC5JbWFnZTp7bGV0IGE9dUEoQSxzKTthLmRhdGE9UyhBLHMsMCxhLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxhLmRpcmVjdGlvbj1TKEEscywxLFYuRmxvYXQ2NCksYS5tZXRhZGF0YT1uZXcgTWFwKGEubWV0YWRhdGEpLEM9YTticmVha31jYXNlIGQuTWVzaDp7bGV0IGE9dUEoQSxzKTthLm51bWJlck9mUG9pbnRzPjA/YS5wb2ludHM9UyhBLHMsMCxhLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6YS5wb2ludHM9cShhLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxscz4wP2EuY2VsbHM9UyhBLHMsMSxhLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTphLmNlbGxzPXEoYS5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDIsYS5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZkNlbGxQaXhlbHM+MD9hLmNlbGxEYXRhPVMoQSxzLDMsYS5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTphLmNlbGxEYXRhPXEoYS5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWNhc2UgZC5Qb2ludFNldDp7bGV0IGE9dUEoQSxzKTthLm51bWJlck9mUG9pbnRzPjA/YS5wb2ludHM9UyhBLHMsMCxhLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOmEucG9pbnRzPXEoYS5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsMSxhLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31jYXNlIGQuVHJhbnNmb3JtTGlzdDp7bGV0IGE9dUEoQSxzKSxRPTA7YS5mb3JFYWNoKChmLGMpPT57Zi50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGYubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKGFbY10uZml4ZWRQYXJhbWV0ZXJzPVMoQSxzLFEsVi5GbG9hdDY0KSksUSs9MSxmLm51bWJlck9mUGFyYW1ldGVycz4wJiYoYVtjXS5wYXJhbWV0ZXJzPVMoQSxzLFEsZi50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxRKz0xKX0pLEM9YTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsVi5GbG9hdDMyKTphLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LGEudmVydGljZXNCdWZmZXJTaXplPjA/YS52ZXJ0aWNlcz1TKEEscywxLFUuVUludDMyKTphLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxhLmxpbmVzQnVmZmVyU2l6ZT4wP2EubGluZXM9UyhBLHMsMixVLlVJbnQzMik6YS5saW5lcz1uZXcgVWludDMyQXJyYXksYS5wb2x5Z29uc0J1ZmZlclNpemU+MD9hLnBvbHlnb25zPVMoQSxzLDMsVS5VSW50MzIpOmEucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LGEudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/YS50cmlhbmdsZVN0cmlwcz1TKEEscyw0LFUuVUludDMyKTphLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscyw1LGEucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTphLnBvaW50RGF0YT1xKGEucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksYS5udW1iZXJPZkNlbGxQaXhlbHM+MD9hLmNlbGxEYXRhPVMoQSxzLDYsYS5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6YS5jZWxsRGF0YT1xKGEucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgbD17dHlwZTpCLnR5cGUsZGF0YTpDfTtFLnB1c2gobCl9KSx7cmV0dXJuVmFsdWU6ZyxzdGRvdXQ6byxzdGRlcnI6bixvdXRwdXRzOkV9fXZhciBVZT1scjt2YXIgdXI9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uIGRyKEEsdCl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgZT1bXTtmb3IobGV0IEk9MDtJPEEubGVuZ3RoO0krKyl7bGV0IHI9RHIoQVtJXSx0KTtyIT09bnVsbCYmZS5wdXNoKHIpfXJldHVybiBlfWZ1bmN0aW9uIERyKEEsdCl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgZT1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD9lPUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKGU9QSksdXImJmUgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOnQ/ZTplLnNsaWNlKDApfXZhciBHZT1kcjtmdW5jdGlvbiBocihBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIga2U9aHI7ZnVuY3Rpb24geXIoQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIExlPXlyO2Z1bmN0aW9uIG1yKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBiZT1tcjthc3luYyBmdW5jdGlvbiB3cihBLHQsZSxJKXtsZXQgcj1VZShBLHQsZSxJKSxnPVtdO3JldHVybiByLm91dHB1dHMuZm9yRWFjaChmdW5jdGlvbihvKXtpZihvLnR5cGU9PT1kLkJpbmFyeVN0cmVhbXx8by50eXBlPT09ZC5CaW5hcnlGaWxlKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKG4pfWVsc2UgaWYoby50eXBlPT09ZC5JbWFnZSl7bGV0IG49by5kYXRhO2cucHVzaCguLi5rZShuKSl9ZWxzZSBpZihvLnR5cGU9PT1kLk1lc2gpe2xldCBuPW8uZGF0YTtnLnB1c2goLi4uTGUobikpfWVsc2UgaWYoby50eXBlPT09ZC5Qb2x5RGF0YSl7bGV0IG49by5kYXRhO2cucHVzaCguLi5iZShuKSl9fSksX0EocixHZShnLCEwKSl9dmFyIEplPXdyO3ZhciBwcj17cnVuUGlwZWxpbmU6YXN5bmMgZnVuY3Rpb24oQSx0LGUsSSxyLGcpe2xldCBvPWF3YWl0IHBlKEEsdCxnKTtyZXR1cm4gYXdhaXQgSmUobyxlLEkscil9fTtGQShwcik7JTBBLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjolMEElMEFjb21saW5rL2Rpc3QvZXNtL2NvbWxpbmsubWpzOiUwQSAgKCoqJTBBICAgKiBAbGljZW5zZSUwQSAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQyUwQSAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAlMEEgICAqKSUwQSovJTBBJztuaShnaSk7ZXhwb3J0e2N0IGFzIGJpb1JhZFJlYWRJbWFnZSxkdCBhcyBiaW9SYWRXcml0ZUltYWdlLEl0IGFzIGJtcFJlYWRJbWFnZSxzdCBhcyBibXBXcml0ZUltYWdlLCQgYXMgZXh0ZW5zaW9uVG9JbWFnZUlvLEd0IGFzIGZkZlJlYWRJbWFnZSxmbiBhcyBmZGZXcml0ZUltYWdlLE50IGFzIGdkY21SZWFkSW1hZ2UsU3QgYXMgZ2RjbVdyaXRlSW1hZ2UsUnQgYXMgZ2U0UmVhZEltYWdlLGt0IGFzIGdlNFdyaXRlSW1hZ2UsRnQgYXMgZ2U1UmVhZEltYWdlLFV0IGFzIGdlNVdyaXRlSW1hZ2Usd3QgYXMgZ2VBZHdSZWFkSW1hZ2UsRHQgYXMgZ2VBZHdXcml0ZUltYWdlLHkgYXMgZ2V0RGVmYXVsdFdlYldvcmtlcixmIGFzIGdldFBpcGVsaW5lV29ya2VyVXJsLGQgYXMgZ2V0UGlwZWxpbmVzQmFzZVVybCx5dCBhcyBnaXBsUmVhZEltYWdlLGh0IGFzIGdpcGxXcml0ZUltYWdlLGd0IGFzIGhkZjVSZWFkSW1hZ2UsQnQgYXMgaGRmNVdyaXRlSW1hZ2UsdHQgYXMganBlZ1JlYWRJbWFnZSxydCBhcyBqcGVnV3JpdGVJbWFnZSxwdCBhcyBsc21SZWFkSW1hZ2UsbXQgYXMgbHNtV3JpdGVJbWFnZSx6ZSBhcyBtZXRhUmVhZEltYWdlLFhlIGFzIG1ldGFXcml0ZUltYWdlLHV0IGFzIG1naFJlYWRJbWFnZSxmdCBhcyBtZ2hXcml0ZUltYWdlLEN0IGFzIG1pbmNSZWFkSW1hZ2UsbHQgYXMgbWluY1dyaXRlSW1hZ2UsUXQgYXMgbXJjUmVhZEltYWdlLEV0IGFzIG1yY1dyaXRlSW1hZ2UsQXQgYXMgbmlmdGlSZWFkSW1hZ2UsZXQgYXMgbmlmdGlXcml0ZUltYWdlLGl0IGFzIG5ycmRSZWFkSW1hZ2Usb3QgYXMgbnJyZFdyaXRlSW1hZ2UsWmUgYXMgcG5nUmVhZEltYWdlLFZlIGFzIHBuZ1dyaXRlSW1hZ2UseHQgYXMgcmVhZEltYWdlLEVuIGFzIHJlYWRJbWFnZUZpbGVTZXJpZXMsbWEgYXMgcmVhZEltYWdlSHR0cCxidCBhcyBzY2FuY29SZWFkSW1hZ2UsV3QgYXMgc2NhbmNvV3JpdGVJbWFnZSxEQyBhcyBzZXREZWZhdWx0V2ViV29ya2VyLG5pIGFzIHNldFBpcGVsaW5lV29ya2VyVXJsLHVDIGFzIHNldFBpcGVsaW5lc0Jhc2VVcmwsX2UgYXMgdGlmZlJlYWRJbWFnZSwkZSBhcyB0aWZmV3JpdGVJbWFnZSxhdCBhcyB2dGtSZWFkSW1hZ2UsbnQgYXMgdnRrV3JpdGVJbWFnZSxPdCBhcyB3YXNtUmVhZEltYWdlLEx0IGFzIHdhc21Xcml0ZUltYWdlLEp0IGFzIHdhc21ac3RkUmVhZEltYWdlLFB0IGFzIHdhc21ac3RkV3JpdGVJbWFnZSxtbiBhcyB3cml0ZUltYWdlfTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCmNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKICAgKikKKi8K""" default_config = JsPackageConfig(default_js_module) js_package = JsPackage(default_config) diff --git a/packages/mesh-filters/package.json b/packages/mesh-filters/package.json index eb12f6ccb..078941b96 100644 --- a/packages/mesh-filters/package.json +++ b/packages/mesh-filters/package.json @@ -9,6 +9,8 @@ "wasi-docker-image": "quay.io/itkwasm/wasi:latest", "test-data-hash": "bafybeifwrjzye5jvpsrqd5jsjvo5oyly7yfj3f7csqclpcehrhhlj4r2qm", "test-data-urls": [ + "https://itk.mypinata.cloud/ipfs/bafybeiap5odqqkh5rmplnkrlk4yme75mvvsubceoco3kelmr77zd77v4by/data.tar.gz", + "https://bafybeiap5odqqkh5rmplnkrlk4yme75mvvsubceoco3kelmr77zd77v4by.ipfs.w3s.link/data.tar.gz", "https://bafybeiap5odqqkh5rmplnkrlk4yme75mvvsubceoco3kelmr77zd77v4by.ipfs.w3s.link/ipfs/bafybeiap5odqqkh5rmplnkrlk4yme75mvvsubceoco3kelmr77zd77v4by/data.tar.gz" ], "typescript-package-name": "@itk-wasm/mesh-filters", diff --git a/packages/mesh-io/package.json b/packages/mesh-io/package.json index a500b7aeb..0ef6a782a 100644 --- a/packages/mesh-io/package.json +++ b/packages/mesh-io/package.json @@ -7,6 +7,7 @@ "itk-wasm": { "test-data-hash": "bafkreiey5fjpunmy6lkmfa5a4mc4ghyfxogfuwcixm7jdtf65pjxmwhaim", "test-data-urls": [ + "https://itk.mypinata.cloud/ipfs/bafybeibc5xkdxpu2vwpcmbmu34jfdnr4grnpcrhnnjoeq546zovvfeuixu/data.tar.gz", "https://bafybeibc5xkdxpu2vwpcmbmu34jfdnr4grnpcrhnnjoeq546zovvfeuixu.ipfs.w3s.link/ipfs/bafybeibc5xkdxpu2vwpcmbmu34jfdnr4grnpcrhnnjoeq546zovvfeuixu/data.tar.gz" ], "emscripten-docker-image": "quay.io/itkwasm/emscripten:latest", diff --git a/packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/js_package.py b/packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/js_package.py index 2cb333743..f05418a44 100644 --- a/packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/js_package.py +++ b/packages/mesh-io/python/itkwasm-mesh-io-emscripten/itkwasm_mesh_io_emscripten/js_package.py @@ -3,6 +3,6 @@ from itkwasm.pyodide import JsPackageConfig, JsPackage from ._version import __version__ -default_js_module = """data:text/javascript;base64,dmFyIFJyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgRnI9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlScihBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIGtyPW5ldyBNYXAoW1sidnRrIiwidnRrIl0sWyJieXUiLCJieXUiXSxbImZzYSIsImZyZWUtc3VyZmVyLWFzY2lpIl0sWyJmc2IiLCJmcmVlLXN1cmZlci1iaW5hcnkiXSxbIm16MyIsIm16MyJdLFsib2JqIiwib2JqIl0sWyJvZmYiLCJvZmYiXSxbInN0bCIsInN0bCJdLFsic3djIiwic3djIl0sWyJpd20iLCJ3YXNtIl0sWyJpd20uY2JvciIsIndhc20iXSxbIml3bS5jYm9yLnpzdCIsIndhc20tenN0ZCJdXSksdj1rcjt2YXIgVXI9bmV3IE1hcChbWyJ2dGsiLCJ2dGsiXSxbIm9iaiIsIm9iaiJdLFsib2ZmIiwib2ZmIl0sWyJtejMiLCJtejMiXSxbIml3bSIsIndhc20iXSxbIml3bS5jYm9yIiwid2FzbSJdLFsiaXdtLmNib3IuenN0Iiwid2FzbS16c3RkIl1dKSxaPVVyO3ZhciBicj17SW50ODoiaW50OCIsVUludDg6InVpbnQ4IixJbnQxNjoiaW50MTYiLFVJbnQxNjoidWludDE2IixJbnQzMjoiaW50MzIiLFVJbnQzMjoidWludDMyIixJbnQ2NDoiaW50NjQiLFVJbnQ2NDoidWludDY0IixTaXplVmFsdWVUeXBlOiJ1aW50NjQiLElkZW50aWZpZXJUeXBlOiJ1aW50NjQiLEluZGV4VmFsdWVUeXBlOiJpbnQ2NCIsT2Zmc2V0VmFsdWVUeXBlOiJpbnQ2NCJ9LEc9YnI7dmFyIE5yPXtGbG9hdDMyOiJmbG9hdDMyIixGbG9hdDY0OiJmbG9hdDY0IixTcGFjZVByZWNpc2lvblR5cGU6ImZsb2F0NjQifSxWPU5yO2Z1bmN0aW9uIEdyKEEsZSl7bGV0IHQ9bnVsbDtzd2l0Y2goQSl7Y2FzZSBHLlVJbnQ4Ont0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgRy5JbnQ4Ont0PW5ldyBJbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBHLlVJbnQxNjp7dD1uZXcgVWludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBHLkludDE2Ont0PW5ldyBJbnQxNkFycmF5KGUpO2JyZWFrfWNhc2UgRy5VSW50MzI6e3Q9bmV3IFVpbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgRy5JbnQzMjp7dD1uZXcgSW50MzJBcnJheShlKTticmVha31jYXNlIEcuVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdVaW50NjRBcnJheShlKTp0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgRy5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdJbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBWLkZsb2F0MzI6e3Q9bmV3IEZsb2F0MzJBcnJheShlKTticmVha31jYXNlIFYuRmxvYXQ2NDp7dD1uZXcgRmxvYXQ2NEFycmF5KGUpO2JyZWFrfWNhc2UibnVsbCI6e3Q9bnVsbDticmVha31jYXNlIG51bGw6e3Q9bnVsbDticmVha31kZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZSBpcyBub3Qgc3VwcG9ydGVkIGFzIGEgVHlwZWRBcnJheSIpfXJldHVybiB0fXZhciBPPUdyO2Z1bmN0aW9uIE1yKEEpe2xldCBlPUEuc2xpY2UoKEEubGFzdEluZGV4T2YoIi4iKS0xPj4+MCkrMik7aWYoZS50b0xvd2VyQ2FzZSgpPT09Imd6Iil7bGV0IHQ9QS5zbGljZSgwLC0zKS5sYXN0SW5kZXhPZigiLiIpO2U9QS5zbGljZSgodC0xPj4+MCkrMil9ZWxzZSBpZihlLnRvTG93ZXJDYXNlKCk9PT0iY2JvciIpe2xldCB0PUEuc2xpY2UoMCwtNSkubGFzdEluZGV4T2YoIi4iKTtlPUEuc2xpY2UoKHQtMT4+PjApKzIpfWVsc2UgaWYoZS50b0xvd2VyQ2FzZSgpPT09InpzdCIpe2xldCB0PUEuc2xpY2UoMCwtMTApLmxhc3RJbmRleE9mKCIuIik7ZT1BLnNsaWNlKCh0LTE+Pj4wKSsyKX1lbHNlIGlmKGUudG9Mb3dlckNhc2UoKT09PSJ6aXAiKXtsZXQgdD1BLnNsaWNlKDAsLTQpLmxhc3RJbmRleE9mKCIuIik7ZT1BLnNsaWNlKCh0LTE+Pj4wKSsyKX1yZXR1cm4gZX12YXIgWT1Ncjt2YXIgV3I9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LFE9V3I7dmFyIFF0PVN5bWJvbCgiQ29tbGluay5wcm94eSIpLFByPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLCRBPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxYQT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksUkE9U3ltYm9sKCJDb21saW5rLnRocm93biIpLEV0PUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLE9yPXtjYW5IYW5kbGU6QT0+RXQoQSkmJkFbUXRdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6ZSxwb3J0Mjp0fT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIHB0KEEsZSksW3QsW3RdXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxBZShBKX19LExyPXtjYW5IYW5kbGU6QT0+RXQoQSkmJlJBIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IGU7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTpBfSxbZSxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSxsdD1uZXcgTWFwKFtbInByb3h5IixPcl0sWyJ0aHJvdyIsTHJdXSk7ZnVuY3Rpb24gSnIoQSxlKXtmb3IobGV0IHQgb2YgQSlpZihlPT09dHx8dD09PSIqInx8dCBpbnN0YW5jZW9mIFJlZ0V4cCYmdC50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIHB0KEEsZT1nbG9iYWxUaGlzLHQ9WyIqIl0pe2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gaShvKXtpZighb3x8IW8uZGF0YSlyZXR1cm47aWYoIUpyKHQsby5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luICcke28ub3JpZ2lufScgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOnIsdHlwZTphLHBhdGg6Q309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sby5kYXRhKSxwPShvLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKHopLGc7dHJ5e2xldCBuPUMuc2xpY2UoMCwtMSkucmVkdWNlKChsLHMpPT5sW3NdLEEpLEk9Qy5yZWR1Y2UoKGwscyk9Pmxbc10sQSk7c3dpdGNoKGEpe2Nhc2UiR0VUIjpnPUk7YnJlYWs7Y2FzZSJTRVQiOm5bQy5zbGljZSgtMSlbMF1dPXooby5kYXRhLnZhbHVlKSxnPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOmc9SS5hcHBseShuLHApO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGw9bmV3IEkoLi4ucCk7Zz1xcihsKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmwscG9ydDI6c309bmV3IE1lc3NhZ2VDaGFubmVsO3B0KEEscyksZz1lZShsLFtsXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjpnPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2gobil7Zz17dmFsdWU6bixbUkFdOjB9fVByb21pc2UucmVzb2x2ZShnKS5jYXRjaChuPT4oe3ZhbHVlOm4sW1JBXTowfSkpLnRoZW4obj0+e2xldFtJLGxdPVVBKG4pO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEkpLHtpZDpyfSksbCksYT09PSJSRUxFQVNFIiYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsaSksdXQoZSksWEEgaW4gQSYmdHlwZW9mIEFbWEFdPT0iZnVuY3Rpb24iJiZBW1hBXSgpKX0pLmNhdGNoKG49PntsZXRbSSxsXT1VQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW1JBXTowfSk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sSSkse2lkOnJ9KSxsKX0pfSksZS5zdGFydCYmZS5zdGFydCgpfWZ1bmN0aW9uIHhyKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIHV0KEEpe3hyKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gQWUoQSxlKXtyZXR1cm4gX0EoQSxbXSxlKX1mdW5jdGlvbiBTQShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gZnQoQSl7cmV0dXJuIF8oQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57dXQoQSl9KX12YXIgRkE9bmV3IFdlYWtNYXAsa0E9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IGU9KEZBLmdldChBKXx8MCktMTtGQS5zZXQoQSxlKSxlPT09MCYmZnQoQSl9KTtmdW5jdGlvbiBZcihBLGUpe2xldCB0PShGQS5nZXQoZSl8fDApKzE7RkEuc2V0KGUsdCksa0EmJmtBLnJlZ2lzdGVyKEEsZSxBKX1mdW5jdGlvbiBIcihBKXtrQSYma0EudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBfQShBLGU9W10sdD1mdW5jdGlvbigpe30pe2xldCBpPSExLG89bmV3IFByb3h5KHQse2dldChyLGEpe2lmKFNBKGkpLGE9PT0kQSlyZXR1cm4oKT0+e0hyKG8pLGZ0KEEpLGk9ITB9O2lmKGE9PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+b307bGV0IEM9XyhBLHt0eXBlOiJHRVQiLHBhdGg6ZS5tYXAocD0+cC50b1N0cmluZygpKX0pLnRoZW4oeik7cmV0dXJuIEMudGhlbi5iaW5kKEMpfXJldHVybiBfQShBLFsuLi5lLGFdKX0sc2V0KHIsYSxDKXtTQShpKTtsZXRbcCxnXT1VQShDKTtyZXR1cm4gXyhBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLmUsYV0ubWFwKG49Pm4udG9TdHJpbmcoKSksdmFsdWU6cH0sZykudGhlbih6KX0sYXBwbHkocixhLEMpe1NBKGkpO2xldCBwPWVbZS5sZW5ndGgtMV07aWYocD09PVByKXJldHVybiBfKEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oeik7aWYocD09PSJiaW5kIilyZXR1cm4gX0EoQSxlLnNsaWNlKDAsLTEpKTtsZXRbZyxuXT1DdChDKTtyZXR1cm4gXyhBLHt0eXBlOiJBUFBMWSIscGF0aDplLm1hcChJPT5JLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpnfSxuKS50aGVuKHopfSxjb25zdHJ1Y3QocixhKXtTQShpKTtsZXRbQyxwXT1DdChhKTtyZXR1cm4gXyhBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6ZS5tYXAoZz0+Zy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Q30scCkudGhlbih6KX19KTtyZXR1cm4gWXIobyxBKSxvfWZ1bmN0aW9uIFRyKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIEN0KEEpe2xldCBlPUEubWFwKFVBKTtyZXR1cm5bZS5tYXAodD0+dFswXSksVHIoZS5tYXAodD0+dFsxXSkpXX12YXIgY3Q9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gZWUoQSxlKXtyZXR1cm4gY3Quc2V0KEEsZSksQX1mdW5jdGlvbiBxcihBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbUXRdOiEwfSl9ZnVuY3Rpb24gVUEoQSl7Zm9yKGxldFtlLHRdb2YgbHQpaWYodC5jYW5IYW5kbGUoQSkpe2xldFtpLG9dPXQuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTplLHZhbHVlOml9LG9dfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxjdC5nZXQoQSl8fFtdXX1mdW5jdGlvbiB6KEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuIGx0LmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24gXyhBLGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKGk9PntsZXQgbz1LcigpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gcihhKXshYS5kYXRhfHwhYS5kYXRhLmlkfHxhLmRhdGEuaWQhPT1vfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKSxpKGEuZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6b30sZSksdCl9KX1mdW5jdGlvbiBLcigpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gQkEoQSxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShlLGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzpqcn09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6cmV9PU9iamVjdCxOQT0oQT0+ZT0+e2xldCB0PWpyLmNhbGwoZSk7cmV0dXJuIEFbdF18fChBW3RdPXQuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxXPUE9PihBPUEudG9Mb3dlckNhc2UoKSxlPT5OQShlKT09PUEpLEdBPUE9PmU9PnR5cGVvZiBlPT09QSx7aXNBcnJheTokfT1BcnJheSxDQT1HQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gdnIoQSl7cmV0dXJuIEEhPT1udWxsJiYhQ0EoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhQ0EoQS5jb25zdHJ1Y3RvcikmJk0oQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIHl0PVcoIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24gWnIoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZ5dChBLmJ1ZmZlciksZX12YXIgVnI9R0EoInN0cmluZyIpLE09R0EoImZ1bmN0aW9uIiksaHQ9R0EoIm51bWJlciIpLE1BPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsenI9QT0+QT09PSEwfHxBPT09ITEsYkE9QT0+e2lmKE5BKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IGU9cmUoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEoU3ltYm9sLnRvU3RyaW5nVGFnIGluIEEpJiYhKFN5bWJvbC5pdGVyYXRvciBpbiBBKX0sWHI9VygiRGF0ZSIpLF9yPVcoIkZpbGUiKSwkcj1XKCJCbG9iIiksQWk9VygiRmlsZUxpc3QiKSxlaT1BPT5NQShBKSYmTShBLnBpcGUpLHRpPUE9PntsZXQgZTtyZXR1cm4gQSYmKHR5cGVvZiBGb3JtRGF0YT09ImZ1bmN0aW9uIiYmQSBpbnN0YW5jZW9mIEZvcm1EYXRhfHxNKEEuYXBwZW5kKSYmKChlPU5BKEEpKT09PSJmb3JtZGF0YSJ8fGU9PT0ib2JqZWN0IiYmTShBLnRvU3RyaW5nKSYmQS50b1N0cmluZygpPT09IltvYmplY3QgRm9ybURhdGFdIikpfSxyaT1XKCJVUkxTZWFyY2hQYXJhbXMiKSxbaWksb2ksbmksYWldPVsiUmVhZGFibGVTdHJlYW0iLCJSZXF1ZXN0IiwiUmVzcG9uc2UiLCJIZWFkZXJzIl0ubWFwKFcpLHNpPUE9PkEudHJpbT9BLnRyaW0oKTpBLnJlcGxhY2UoL15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLCIiKTtmdW5jdGlvbiBRQShBLGUse2FsbE93bktleXM6dD0hMX09e30pe2lmKEE9PT1udWxsfHx0eXBlb2YgQT4idSIpcmV0dXJuO2xldCBpLG87aWYodHlwZW9mIEEhPSJvYmplY3QiJiYoQT1bQV0pLCQoQSkpZm9yKGk9MCxvPUEubGVuZ3RoO2k8bztpKyspZS5jYWxsKG51bGwsQVtpXSxpLEEpO2Vsc2V7bGV0IHI9dD9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxhPXIubGVuZ3RoLEM7Zm9yKGk9MDtpPGE7aSsrKUM9cltpXSxlLmNhbGwobnVsbCxBW0NdLEMsQSl9fWZ1bmN0aW9uIHd0KEEsZSl7ZT1lLnRvTG93ZXJDYXNlKCk7bGV0IHQ9T2JqZWN0LmtleXMoQSksaT10Lmxlbmd0aCxvO2Zvcig7aS0tID4wOylpZihvPXRbaV0sZT09PW8udG9Mb3dlckNhc2UoKSlyZXR1cm4gbztyZXR1cm4gbnVsbH12YXIgWD10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLER0PUE9PiFDQShBKSYmQSE9PVg7ZnVuY3Rpb24gdGUoKXtsZXR7Y2FzZWxlc3M6QX09RHQodGhpcykmJnRoaXN8fHt9LGU9e30sdD0oaSxvKT0+e2xldCByPUEmJnd0KGUsbyl8fG87YkEoZVtyXSkmJmJBKGkpP2Vbcl09dGUoZVtyXSxpKTpiQShpKT9lW3JdPXRlKHt9LGkpOiQoaSk/ZVtyXT1pLnNsaWNlKCk6ZVtyXT1pfTtmb3IobGV0IGk9MCxvPWFyZ3VtZW50cy5sZW5ndGg7aTxvO2krKylhcmd1bWVudHNbaV0mJlFBKGFyZ3VtZW50c1tpXSx0KTtyZXR1cm4gZX12YXIgSWk9KEEsZSx0LHthbGxPd25LZXlzOml9PXt9KT0+KFFBKGUsKG8scik9Pnt0JiZNKG8pP0Fbcl09QkEobyx0KTpBW3JdPW99LHthbGxPd25LZXlzOml9KSxBKSxnaT1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLEJpPShBLGUsdCxpKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUsaSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLHQmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsdCl9LENpPShBLGUsdCxpKT0+e2xldCBvLHIsYSxDPXt9O2lmKGU9ZXx8e30sQT09bnVsbClyZXR1cm4gZTtkb3tmb3Iobz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxyPW8ubGVuZ3RoO3ItLSA+MDspYT1vW3JdLCghaXx8aShhLEEsZSkpJiYhQ1thXSYmKGVbYV09QVthXSxDW2FdPSEwKTtBPXQhPT0hMSYmcmUoQSl9d2hpbGUoQSYmKCF0fHx0KEEsZSkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LFFpPShBLGUsdCk9PntBPVN0cmluZyhBKSwodD09PXZvaWQgMHx8dD5BLmxlbmd0aCkmJih0PUEubGVuZ3RoKSx0LT1lLmxlbmd0aDtsZXQgaT1BLmluZGV4T2YoZSx0KTtyZXR1cm4gaSE9PS0xJiZpPT09dH0sRWk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKCQoQSkpcmV0dXJuIEE7bGV0IGU9QS5sZW5ndGg7aWYoIWh0KGUpKXJldHVybiBudWxsO2xldCB0PW5ldyBBcnJheShlKTtmb3IoO2UtLSA+MDspdFtlXT1BW2VdO3JldHVybiB0fSxsaT0oQT0+ZT0+QSYmZSBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmcmUoVWludDhBcnJheSkpLHBpPShBLGUpPT57bGV0IGk9KEEmJkFbU3ltYm9sLml0ZXJhdG9yXSkuY2FsbChBKSxvO2Zvcig7KG89aS5uZXh0KCkpJiYhby5kb25lOyl7bGV0IHI9by52YWx1ZTtlLmNhbGwoQSxyWzBdLHJbMV0pfX0sdWk9KEEsZSk9PntsZXQgdCxpPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KWkucHVzaCh0KTtyZXR1cm4gaX0sZmk9VygiSFRNTEZvcm1FbGVtZW50IiksY2k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxpLG8pe3JldHVybiBpLnRvVXBwZXJDYXNlKCkrb30pLGR0PSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxtaT1XKCJSZWdFeHAiKSxTdD0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLGk9e307UUEodCwobyxyKT0+e2xldCBhOyhhPWUobyxyLEEpKSE9PSExJiYoaVtyXT1hfHxvKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsaSl9LGRpPUE9PntTdChBLChlLHQpPT57aWYoTShBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IGk9QVt0XTtpZihNKGkpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LHlpPShBLGUpPT57bGV0IHQ9e30saT1vPT57by5mb3JFYWNoKHI9Pnt0W3JdPSEwfSl9O3JldHVybiAkKEEpP2koQSk6aShTdHJpbmcoQSkuc3BsaXQoZSkpLHR9LGhpPSgpPT57fSx3aT0oQSxlKT0+QSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKEE9K0EpP0E6ZTtmdW5jdGlvbiBEaShBKXtyZXR1cm4hIShBJiZNKEEuYXBwZW5kKSYmQVtTeW1ib2wudG9TdHJpbmdUYWddPT09IkZvcm1EYXRhIiYmQVtTeW1ib2wuaXRlcmF0b3JdKX12YXIgU2k9QT0+e2xldCBlPW5ldyBBcnJheSgxMCksdD0oaSxvKT0+e2lmKE1BKGkpKXtpZihlLmluZGV4T2YoaSk+PTApcmV0dXJuO2lmKCEoInRvSlNPTiJpbiBpKSl7ZVtvXT1pO2xldCByPSQoaSk/W106e307cmV0dXJuIFFBKGksKGEsQyk9PntsZXQgcD10KGEsbysxKTshQ0EocCkmJihyW0NdPXApfSksZVtvXT12b2lkIDAscn19cmV0dXJuIGl9O3JldHVybiB0KEEsMCl9LFJpPVcoIkFzeW5jRnVuY3Rpb24iKSxGaT1BPT5BJiYoTUEoQSl8fE0oQSkpJiZNKEEudGhlbikmJk0oQS5jYXRjaCksUnQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxpKT0+KFguYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6byxkYXRhOnJ9KT0+e289PT1YJiZyPT09dCYmaS5sZW5ndGgmJmkuc2hpZnQoKSgpfSwhMSksbz0+e2kucHVzaChvKSxYLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTShYLnBvc3RNZXNzYWdlKSksa2k9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKFgpOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8UnQsRT17aXNBcnJheTokLGlzQXJyYXlCdWZmZXI6eXQsaXNCdWZmZXI6dnIsaXNGb3JtRGF0YTp0aSxpc0FycmF5QnVmZmVyVmlldzpacixpc1N0cmluZzpWcixpc051bWJlcjpodCxpc0Jvb2xlYW46enIsaXNPYmplY3Q6TUEsaXNQbGFpbk9iamVjdDpiQSxpc1JlYWRhYmxlU3RyZWFtOmlpLGlzUmVxdWVzdDpvaSxpc1Jlc3BvbnNlOm5pLGlzSGVhZGVyczphaSxpc1VuZGVmaW5lZDpDQSxpc0RhdGU6WHIsaXNGaWxlOl9yLGlzQmxvYjokcixpc1JlZ0V4cDptaSxpc0Z1bmN0aW9uOk0saXNTdHJlYW06ZWksaXNVUkxTZWFyY2hQYXJhbXM6cmksaXNUeXBlZEFycmF5OmxpLGlzRmlsZUxpc3Q6QWksZm9yRWFjaDpRQSxtZXJnZTp0ZSxleHRlbmQ6SWksdHJpbTpzaSxzdHJpcEJPTTpnaSxpbmhlcml0czpCaSx0b0ZsYXRPYmplY3Q6Q2ksa2luZE9mOk5BLGtpbmRPZlRlc3Q6VyxlbmRzV2l0aDpRaSx0b0FycmF5OkVpLGZvckVhY2hFbnRyeTpwaSxtYXRjaEFsbDp1aSxpc0hUTUxGb3JtOmZpLGhhc093blByb3BlcnR5OmR0LGhhc093blByb3A6ZHQscmVkdWNlRGVzY3JpcHRvcnM6U3QsZnJlZXplTWV0aG9kczpkaSx0b09iamVjdFNldDp5aSx0b0NhbWVsQ2FzZTpjaSxub29wOmhpLHRvRmluaXRlTnVtYmVyOndpLGZpbmRLZXk6d3QsZ2xvYmFsOlgsaXNDb250ZXh0RGVmaW5lZDpEdCxpc1NwZWNDb21wbGlhbnRGb3JtOkRpLHRvSlNPTk9iamVjdDpTaSxpc0FzeW5jRm46UmksaXNUaGVuYWJsZTpGaSxzZXRJbW1lZGlhdGU6UnQsYXNhcDpraX07ZnVuY3Rpb24gQUEoQSxlLHQsaSxvKXtFcnJvci5jYWxsKHRoaXMpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFjayx0aGlzLm1lc3NhZ2U9QSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLGUmJih0aGlzLmNvZGU9ZSksdCYmKHRoaXMuY29uZmlnPXQpLGkmJih0aGlzLnJlcXVlc3Q9aSksbyYmKHRoaXMucmVzcG9uc2U9byx0aGlzLnN0YXR1cz1vLnN0YXR1cz9vLnN0YXR1czpudWxsKX1FLmluaGVyaXRzKEFBLEVycm9yLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6RS50b0pTT05PYmplY3QodGhpcy5jb25maWcpLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnN0YXR1c319fSk7dmFyIEZ0PUFBLnByb3RvdHlwZSxrdD17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiLCJFUlJfTk9UX1NVUFBPUlQiLCJFUlJfSU5WQUxJRF9VUkwiXS5mb3JFYWNoKEE9PntrdFtBXT17dmFsdWU6QX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhBQSxrdCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KEZ0LCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pO0FBLmZyb209KEEsZSx0LGksbyxyKT0+e2xldCBhPU9iamVjdC5jcmVhdGUoRnQpO3JldHVybiBFLnRvRmxhdE9iamVjdChBLGEsZnVuY3Rpb24ocCl7cmV0dXJuIHAhPT1FcnJvci5wcm90b3R5cGV9LEM9PkMhPT0iaXNBeGlvc0Vycm9yIiksQUEuY2FsbChhLEEubWVzc2FnZSxlLHQsaSxvKSxhLmNhdXNlPUEsYS5uYW1lPUEubmFtZSxyJiZPYmplY3QuYXNzaWduKGEsciksYX07dmFyIGg9QUE7dmFyIFdBPW51bGw7ZnVuY3Rpb24gaWUoQSl7cmV0dXJuIEUuaXNQbGFpbk9iamVjdChBKXx8RS5pc0FycmF5KEEpfWZ1bmN0aW9uIGJ0KEEpe3JldHVybiBFLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIFV0KEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24obyxyKXtyZXR1cm4gbz1idChvKSwhdCYmcj8iWyIrbysiXSI6b30pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gVWkoQSl7cmV0dXJuIEUuaXNBcnJheShBKSYmIUEuc29tZShpZSl9dmFyIGJpPUUudG9GbGF0T2JqZWN0KEUse30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiBOaShBLGUsdCl7aWYoIUUuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoV0F8fEZvcm1EYXRhKSx0PUUudG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihmLHUpe3JldHVybiFFLmlzVW5kZWZpbmVkKHVbZl0pfSk7bGV0IGk9dC5tZXRhVG9rZW5zLG89dC52aXNpdG9yfHxuLHI9dC5kb3RzLGE9dC5pbmRleGVzLHA9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmRS5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFFLmlzRnVuY3Rpb24obykpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBnKEIpe2lmKEI9PT1udWxsKXJldHVybiIiO2lmKEUuaXNEYXRlKEIpKXJldHVybiBCLnRvSVNPU3RyaW5nKCk7aWYoIXAmJkUuaXNCbG9iKEIpKXRocm93IG5ldyBoKCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBFLmlzQXJyYXlCdWZmZXIoQil8fEUuaXNUeXBlZEFycmF5KEIpP3AmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtCXSk6QnVmZmVyLmZyb20oQik6Qn1mdW5jdGlvbiBuKEIsZix1KXtsZXQgdz1CO2lmKEImJiF1JiZ0eXBlb2YgQj09Im9iamVjdCIpe2lmKEUuZW5kc1dpdGgoZiwie30iKSlmPWk/ZjpmLnNsaWNlKDAsLTIpLEI9SlNPTi5zdHJpbmdpZnkoQik7ZWxzZSBpZihFLmlzQXJyYXkoQikmJlVpKEIpfHwoRS5pc0ZpbGVMaXN0KEIpfHxFLmVuZHNXaXRoKGYsIltdIikpJiYodz1FLnRvQXJyYXkoQikpKXJldHVybiBmPWJ0KGYpLHcuZm9yRWFjaChmdW5jdGlvbihSLHgpeyEoRS5pc1VuZGVmaW5lZChSKXx8Uj09PW51bGwpJiZlLmFwcGVuZChhPT09ITA/VXQoW2ZdLHgscik6YT09PW51bGw/ZjpmKyJbXSIsZyhSKSl9KSwhMX1yZXR1cm4gaWUoQik/ITA6KGUuYXBwZW5kKFV0KHUsZixyKSxnKEIpKSwhMSl9bGV0IEk9W10sbD1PYmplY3QuYXNzaWduKGJpLHtkZWZhdWx0VmlzaXRvcjpuLGNvbnZlcnRWYWx1ZTpnLGlzVmlzaXRhYmxlOmllfSk7ZnVuY3Rpb24gcyhCLGYpe2lmKCFFLmlzVW5kZWZpbmVkKEIpKXtpZihJLmluZGV4T2YoQikhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrZi5qb2luKCIuIikpO0kucHVzaChCKSxFLmZvckVhY2goQixmdW5jdGlvbih3LFMpeyghKEUuaXNVbmRlZmluZWQodyl8fHc9PT1udWxsKSYmby5jYWxsKGUsdyxFLmlzU3RyaW5nKFMpP1MudHJpbSgpOlMsZixsKSk9PT0hMCYmcyh3LGY/Zi5jb25jYXQoUyk6W1NdKX0pLEkucG9wKCl9fWlmKCFFLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gcyhBKSxlfXZhciBxPU5pO2Z1bmN0aW9uIE50KEEpe2xldCBlPXsiISI6IiUyMSIsIiciOiIlMjciLCIoIjoiJTI4IiwiKSI6IiUyOSIsIn4iOiIlN0UiLCIlMjAiOiIrIiwiJTAwIjoiXDAifTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoL1shJygpfl18JTIwfCUwMC9nLGZ1bmN0aW9uKGkpe3JldHVybiBlW2ldfSl9ZnVuY3Rpb24gR3QoQSxlKXt0aGlzLl9wYWlycz1bXSxBJiZxKEEsdGhpcyxlKX12YXIgTXQ9R3QucHJvdG90eXBlO010LmFwcGVuZD1mdW5jdGlvbihlLHQpe3RoaXMuX3BhaXJzLnB1c2goW2UsdF0pfTtNdC50b1N0cmluZz1mdW5jdGlvbihlKXtsZXQgdD1lP2Z1bmN0aW9uKGkpe3JldHVybiBlLmNhbGwodGhpcyxpLE50KX06TnQ7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gdChvWzBdKSsiPSIrdChvWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIFBBPUd0O2Z1bmN0aW9uIEdpKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpLnJlcGxhY2UoLyU1Qi9naSwiWyIpLnJlcGxhY2UoLyU1RC9naSwiXSIpfWZ1bmN0aW9uIEVBKEEsZSx0KXtpZighZSlyZXR1cm4gQTtsZXQgaT10JiZ0LmVuY29kZXx8R2k7RS5pc0Z1bmN0aW9uKHQpJiYodD17c2VyaWFsaXplOnR9KTtsZXQgbz10JiZ0LnNlcmlhbGl6ZSxyO2lmKG8/cj1vKGUsdCk6cj1FLmlzVVJMU2VhcmNoUGFyYW1zKGUpP2UudG9TdHJpbmcoKTpuZXcgUEEoZSx0KS50b1N0cmluZyhpKSxyKXtsZXQgYT1BLmluZGV4T2YoIiMiKTthIT09LTEmJihBPUEuc2xpY2UoMCxhKSksQSs9KEEuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikrcn1yZXR1cm4gQX12YXIgb2U9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmhhbmRsZXJzPVtdfXVzZShlLHQsaSl7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOmUscmVqZWN0ZWQ6dCxzeW5jaHJvbm91czppP2kuc3luY2hyb25vdXM6ITEscnVuV2hlbjppP2kucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX1lamVjdChlKXt0aGlzLmhhbmRsZXJzW2VdJiYodGhpcy5oYW5kbGVyc1tlXT1udWxsKX1jbGVhcigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX1mb3JFYWNoKGUpe0UuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKGkpe2khPT1udWxsJiZlKGkpfSl9fSxuZT1vZTt2YXIgT0E9e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9O3ZhciBXdD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6UEE7dmFyIFB0PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgT3Q9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgTHQ9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6V3QsRm9ybURhdGE6UHQsQmxvYjpPdH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBJZT17fTtGcihJZSx7aGFzQnJvd3NlckVudjooKT0+c2UsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5NaSxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9PldpLG5hdmlnYXRvcjooKT0+YWUsb3JpZ2luOigpPT5QaX0pO3ZhciBzZT10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1IixhZT10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsTWk9c2UmJighYWV8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2YoYWUucHJvZHVjdCk8MCksV2k9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLFBpPXNlJiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBEPXsuLi5JZSwuLi5MdH07ZnVuY3Rpb24gZ2UoQSxlKXtyZXR1cm4gcShBLG5ldyBELmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLE9iamVjdC5hc3NpZ24oe3Zpc2l0b3I6ZnVuY3Rpb24odCxpLG8scil7cmV0dXJuIEQuaXNOb2RlJiZFLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChpLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6ci5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxlKSl9ZnVuY3Rpb24gT2koQSl7cmV0dXJuIEUubWF0Y2hBbGwoL1x3K3xcWyhcdyopXS9nLEEpLm1hcChlPT5lWzBdPT09IltdIj8iIjplWzFdfHxlWzBdKX1mdW5jdGlvbiBMaShBKXtsZXQgZT17fSx0PU9iamVjdC5rZXlzKEEpLGksbz10Lmxlbmd0aCxyO2ZvcihpPTA7aTxvO2krKylyPXRbaV0sZVtyXT1BW3JdO3JldHVybiBlfWZ1bmN0aW9uIEppKEEpe2Z1bmN0aW9uIGUodCxpLG8scil7bGV0IGE9dFtyKytdO2lmKGE9PT0iX19wcm90b19fIilyZXR1cm4hMDtsZXQgQz1OdW1iZXIuaXNGaW5pdGUoK2EpLHA9cj49dC5sZW5ndGg7cmV0dXJuIGE9IWEmJkUuaXNBcnJheShvKT9vLmxlbmd0aDphLHA/KEUuaGFzT3duUHJvcChvLGEpP29bYV09W29bYV0saV06b1thXT1pLCFDKTooKCFvW2FdfHwhRS5pc09iamVjdChvW2FdKSkmJihvW2FdPVtdKSxlKHQsaSxvW2FdLHIpJiZFLmlzQXJyYXkob1thXSkmJihvW2FdPUxpKG9bYV0pKSwhQyl9aWYoRS5pc0Zvcm1EYXRhKEEpJiZFLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IHQ9e307cmV0dXJuIEUuZm9yRWFjaEVudHJ5KEEsKGksbyk9PntlKE9pKGkpLG8sdCwwKX0pLHR9cmV0dXJuIG51bGx9dmFyIExBPUppO2Z1bmN0aW9uIHhpKEEsZSx0KXtpZihFLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4oZXx8SlNPTi5wYXJzZSkoQSksRS50cmltKEEpfWNhdGNoKGkpe2lmKGkubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgaX1yZXR1cm4odHx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBCZT17dHJhbnNpdGlvbmFsOk9BLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe2xldCBpPXQuZ2V0Q29udGVudFR5cGUoKXx8IiIsbz1pLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxyPUUuaXNPYmplY3QoZSk7aWYociYmRS5pc0hUTUxGb3JtKGUpJiYoZT1uZXcgRm9ybURhdGEoZSkpLEUuaXNGb3JtRGF0YShlKSlyZXR1cm4gbz9KU09OLnN0cmluZ2lmeShMQShlKSk6ZTtpZihFLmlzQXJyYXlCdWZmZXIoZSl8fEUuaXNCdWZmZXIoZSl8fEUuaXNTdHJlYW0oZSl8fEUuaXNGaWxlKGUpfHxFLmlzQmxvYihlKXx8RS5pc1JlYWRhYmxlU3RyZWFtKGUpKXJldHVybiBlO2lmKEUuaXNBcnJheUJ1ZmZlclZpZXcoZSkpcmV0dXJuIGUuYnVmZmVyO2lmKEUuaXNVUkxTZWFyY2hQYXJhbXMoZSkpcmV0dXJuIHQuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksZS50b1N0cmluZygpO2xldCBDO2lmKHIpe2lmKGkuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik+LTEpcmV0dXJuIGdlKGUsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigoQz1FLmlzRmlsZUxpc3QoZSkpfHxpLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7bGV0IHA9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBxKEM/eyJmaWxlc1tdIjplfTplLHAmJm5ldyBwLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gcnx8bz8odC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLHhpKGUpKTplfV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKGUpe2xldCB0PXRoaXMudHJhbnNpdGlvbmFsfHxCZS50cmFuc2l0aW9uYWwsaT10JiZ0LmZvcmNlZEpTT05QYXJzaW5nLG89dGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYoRS5pc1Jlc3BvbnNlKGUpfHxFLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoZSYmRS5pc1N0cmluZyhlKSYmKGkmJiF0aGlzLnJlc3BvbnNlVHlwZXx8bykpe2xldCBhPSEodCYmdC5zaWxlbnRKU09OUGFyc2luZykmJm87dHJ5e3JldHVybiBKU09OLnBhcnNlKGUpfWNhdGNoKEMpe2lmKGEpdGhyb3cgQy5uYW1lPT09IlN5bnRheEVycm9yIj9oLmZyb20oQyxoLkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpOkN9fXJldHVybiBlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpELmNsYXNzZXMuRm9ybURhdGEsQmxvYjpELmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGU+PTIwMCYmZTwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtFLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIl0sQT0+e0JlLmhlYWRlcnNbQV09e319KTt2YXIgZUE9QmU7dmFyIFlpPUUudG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksSnQ9QT0+e2xldCBlPXt9LHQsaSxvO3JldHVybiBBJiZBLnNwbGl0KGAKYCkuZm9yRWFjaChmdW5jdGlvbihhKXtvPWEuaW5kZXhPZigiOiIpLHQ9YS5zdWJzdHJpbmcoMCxvKS50cmltKCkudG9Mb3dlckNhc2UoKSxpPWEuc3Vic3RyaW5nKG8rMSkudHJpbSgpLCEoIXR8fGVbdF0mJllpW3RdKSYmKHQ9PT0ic2V0LWNvb2tpZSI/ZVt0XT9lW3RdLnB1c2goaSk6ZVt0XT1baV06ZVt0XT1lW3RdP2VbdF0rIiwgIitpOmkpfSksZX07dmFyIHh0PVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gbEEoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBKQShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6RS5pc0FycmF5KEEpP0EubWFwKEpBKTpTdHJpbmcoQSl9ZnVuY3Rpb24gSGkoQSl7bGV0IGU9T2JqZWN0LmNyZWF0ZShudWxsKSx0PS8oW15ccyw7PV0rKVxzKig/Oj1ccyooW14sO10rKSk/L2csaTtmb3IoO2k9dC5leGVjKEEpOyllW2lbMV1dPWlbMl07cmV0dXJuIGV9dmFyIFRpPUE9Pi9eWy1fYS16QS1aMC05XmB8fiwhIyQlJicqKy5dKyQvLnRlc3QoQS50cmltKCkpO2Z1bmN0aW9uIENlKEEsZSx0LGksbyl7aWYoRS5pc0Z1bmN0aW9uKGkpKXJldHVybiBpLmNhbGwodGhpcyxlLHQpO2lmKG8mJihlPXQpLCEhRS5pc1N0cmluZyhlKSl7aWYoRS5pc1N0cmluZyhpKSlyZXR1cm4gZS5pbmRleE9mKGkpIT09LTE7aWYoRS5pc1JlZ0V4cChpKSlyZXR1cm4gaS50ZXN0KGUpfX1mdW5jdGlvbiBxaShBKXtyZXR1cm4gQS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxkXSkoXHcqKS9nLChlLHQsaSk9PnQudG9VcHBlckNhc2UoKStpKX1mdW5jdGlvbiBLaShBLGUpe2xldCB0PUUudG9DYW1lbENhc2UoIiAiK2UpO1siZ2V0Iiwic2V0IiwiaGFzIl0uZm9yRWFjaChpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsaSt0LHt2YWx1ZTpmdW5jdGlvbihvLHIsYSl7cmV0dXJuIHRoaXNbaV0uY2FsbCh0aGlzLGUsbyxyLGEpfSxjb25maWd1cmFibGU6ITB9KX0pfXZhciB0QT1jbGFzc3tjb25zdHJ1Y3RvcihlKXtlJiZ0aGlzLnNldChlKX1zZXQoZSx0LGkpe2xldCBvPXRoaXM7ZnVuY3Rpb24gcihDLHAsZyl7bGV0IG49bEEocCk7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2xldCBJPUUuZmluZEtleShvLG4pOyghSXx8b1tJXT09PXZvaWQgMHx8Zz09PSEwfHxnPT09dm9pZCAwJiZvW0ldIT09ITEpJiYob1tJfHxwXT1KQShDKSl9bGV0IGE9KEMscCk9PkUuZm9yRWFjaChDLChnLG4pPT5yKGcsbixwKSk7aWYoRS5pc1BsYWluT2JqZWN0KGUpfHxlIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3RvcilhKGUsdCk7ZWxzZSBpZihFLmlzU3RyaW5nKGUpJiYoZT1lLnRyaW0oKSkmJiFUaShlKSlhKEp0KGUpLHQpO2Vsc2UgaWYoRS5pc0hlYWRlcnMoZSkpZm9yKGxldFtDLHBdb2YgZS5lbnRyaWVzKCkpcihwLEMsaSk7ZWxzZSBlIT1udWxsJiZyKHQsZSxpKTtyZXR1cm4gdGhpc31nZXQoZSx0KXtpZihlPWxBKGUpLGUpe2xldCBpPUUuZmluZEtleSh0aGlzLGUpO2lmKGkpe2xldCBvPXRoaXNbaV07aWYoIXQpcmV0dXJuIG87aWYodD09PSEwKXJldHVybiBIaShvKTtpZihFLmlzRnVuY3Rpb24odCkpcmV0dXJuIHQuY2FsbCh0aGlzLG8saSk7aWYoRS5pc1JlZ0V4cCh0KSlyZXR1cm4gdC5leGVjKG8pO3Rocm93IG5ldyBUeXBlRXJyb3IoInBhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uIil9fX1oYXMoZSx0KXtpZihlPWxBKGUpLGUpe2xldCBpPUUuZmluZEtleSh0aGlzLGUpO3JldHVybiEhKGkmJnRoaXNbaV0hPT12b2lkIDAmJighdHx8Q2UodGhpcyx0aGlzW2ldLGksdCkpKX1yZXR1cm4hMX1kZWxldGUoZSx0KXtsZXQgaT10aGlzLG89ITE7ZnVuY3Rpb24gcihhKXtpZihhPWxBKGEpLGEpe2xldCBDPUUuZmluZEtleShpLGEpO0MmJighdHx8Q2UoaSxpW0NdLEMsdCkpJiYoZGVsZXRlIGlbQ10sbz0hMCl9fXJldHVybiBFLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKHIpOnIoZSksb31jbGVhcihlKXtsZXQgdD1PYmplY3Qua2V5cyh0aGlzKSxpPXQubGVuZ3RoLG89ITE7Zm9yKDtpLS07KXtsZXQgcj10W2ldOyghZXx8Q2UodGhpcyx0aGlzW3JdLHIsZSwhMCkpJiYoZGVsZXRlIHRoaXNbcl0sbz0hMCl9cmV0dXJuIG99bm9ybWFsaXplKGUpe2xldCB0PXRoaXMsaT17fTtyZXR1cm4gRS5mb3JFYWNoKHRoaXMsKG8scik9PntsZXQgYT1FLmZpbmRLZXkoaSxyKTtpZihhKXt0W2FdPUpBKG8pLGRlbGV0ZSB0W3JdO3JldHVybn1sZXQgQz1lP3FpKHIpOlN0cmluZyhyKS50cmltKCk7QyE9PXImJmRlbGV0ZSB0W3JdLHRbQ109SkEobyksaVtDXT0hMH0pLHRoaXN9Y29uY2F0KC4uLmUpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLmNvbmNhdCh0aGlzLC4uLmUpfXRvSlNPTihlKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBFLmZvckVhY2godGhpcywoaSxvKT0+e2khPW51bGwmJmkhPT0hMSYmKHRbb109ZSYmRS5pc0FycmF5KGkpP2kuam9pbigiLCAiKTppKX0pLHR9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSlbU3ltYm9sLml0ZXJhdG9yXSgpfXRvU3RyaW5nKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpLm1hcCgoW2UsdF0pPT5lKyI6ICIrdCkuam9pbihgCmApfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCBpPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2gobz0+aS5zZXQobykpLGl9c3RhdGljIGFjY2Vzc29yKGUpe2xldCBpPSh0aGlzW3h0XT10aGlzW3h0XT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLG89dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gcihhKXtsZXQgQz1sQShhKTtpW0NdfHwoS2kobyxhKSxpW0NdPSEwKX1yZXR1cm4gRS5pc0FycmF5KGUpP2UuZm9yRWFjaChyKTpyKGUpLHRoaXN9fTt0QS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7RS5yZWR1Y2VEZXNjcmlwdG9ycyh0QS5wcm90b3R5cGUsKHt2YWx1ZTpBfSxlKT0+e2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KGkpe3RoaXNbdF09aX19fSk7RS5mcmVlemVNZXRob2RzKHRBKTt2YXIgVT10QTtmdW5jdGlvbiBwQShBLGUpe2xldCB0PXRoaXN8fGVBLGk9ZXx8dCxvPVUuZnJvbShpLmhlYWRlcnMpLHI9aS5kYXRhO3JldHVybiBFLmZvckVhY2goQSxmdW5jdGlvbihDKXtyPUMuY2FsbCh0LHIsby5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxvLm5vcm1hbGl6ZSgpLHJ9ZnVuY3Rpb24gdUEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBZdChBLGUsdCl7aC5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIixoLkVSUl9DQU5DRUxFRCxlLHQpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9RS5pbmhlcml0cyhZdCxoLHtfX0NBTkNFTF9fOiEwfSk7dmFyIEw9WXQ7ZnVuY3Rpb24gZkEoQSxlLHQpe2xldCBpPXQuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyF0LnN0YXR1c3x8IWl8fGkodC5zdGF0dXMpP0EodCk6ZShuZXcgaCgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Quc3RhdHVzLFtoLkVSUl9CQURfUkVRVUVTVCxoLkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IodC5zdGF0dXMvMTAwKS00XSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIFFlKEEpe2xldCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBqaShBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLGk9bmV3IEFycmF5KEEpLG89MCxyPTAsYTtyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKHApe2xldCBnPURhdGUubm93KCksbj1pW3JdO2F8fChhPWcpLHRbb109cCxpW29dPWc7bGV0IEk9cixsPTA7Zm9yKDtJIT09bzspbCs9dFtJKytdLEk9SSVBO2lmKG89KG8rMSklQSxvPT09ciYmKHI9KHIrMSklQSksZy1hPGUpcmV0dXJuO2xldCBzPW4mJmctbjtyZXR1cm4gcz9NYXRoLnJvdW5kKGwqMWUzL3MpOnZvaWQgMH19dmFyIEh0PWppO2Z1bmN0aW9uIHZpKEEsZSl7bGV0IHQ9MCxpPTFlMy9lLG8scixhPShnLG49RGF0ZS5ub3coKSk9Pnt0PW4sbz1udWxsLHImJihjbGVhclRpbWVvdXQocikscj1udWxsKSxBLmFwcGx5KG51bGwsZyl9O3JldHVyblsoLi4uZyk9PntsZXQgbj1EYXRlLm5vdygpLEk9bi10O0k+PWk/YShnLG4pOihvPWcscnx8KHI9c2V0VGltZW91dCgoKT0+e3I9bnVsbCxhKG8pfSxpLUkpKSl9LCgpPT5vJiZhKG8pXX12YXIgVHQ9dmk7dmFyIHJBPShBLGUsdD0zKT0+e2xldCBpPTAsbz1IdCg1MCwyNTApO3JldHVybiBUdChyPT57bGV0IGE9ci5sb2FkZWQsQz1yLmxlbmd0aENvbXB1dGFibGU/ci50b3RhbDp2b2lkIDAscD1hLWksZz1vKHApLG49YTw9QztpPWE7bGV0IEk9e2xvYWRlZDphLHRvdGFsOkMscHJvZ3Jlc3M6Qz9hL0M6dm9pZCAwLGJ5dGVzOnAscmF0ZTpnfHx2b2lkIDAsZXN0aW1hdGVkOmcmJkMmJm4/KEMtYSkvZzp2b2lkIDAsZXZlbnQ6cixsZW5ndGhDb21wdXRhYmxlOkMhPW51bGwsW2U/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0EoSSl9LHQpfSxFZT0oQSxlKT0+e2xldCB0PUEhPW51bGw7cmV0dXJuW2k9PmVbMF0oe2xlbmd0aENvbXB1dGFibGU6dCx0b3RhbDpBLGxvYWRlZDppfSksZVsxXV19LGxlPUE9PiguLi5lKT0+RS5hc2FwKCgpPT5BKC4uLmUpKTt2YXIgcXQ9RC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLGUpPT50PT4odD1uZXcgVVJMKHQsRC5vcmlnaW4pLEEucHJvdG9jb2w9PT10LnByb3RvY29sJiZBLmhvc3Q9PT10Lmhvc3QmJihlfHxBLnBvcnQ9PT10LnBvcnQpKSkobmV3IFVSTChELm9yaWdpbiksRC5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoRC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBLdD1ELmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSxlLHQsaSxvLHIpe2xldCBhPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQoZSldO0UuaXNOdW1iZXIodCkmJmEucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKHQpLnRvR01UU3RyaW5nKCkpLEUuaXNTdHJpbmcoaSkmJmEucHVzaCgicGF0aD0iK2kpLEUuaXNTdHJpbmcobykmJmEucHVzaCgiZG9tYWluPSIrbykscj09PSEwJiZhLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1hLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IGU9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMqKSgiK0ErIik9KFteO10qKSIpKTtyZXR1cm4gZT9kZWNvZGVVUklDb21wb25lbnQoZVszXSk6bnVsbH0scmVtb3ZlKEEpe3RoaXMud3JpdGUoQSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiBwZShBKXtyZXR1cm4vXihbYS16XVthLXpcZCtcLS5dKjopP1wvXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIHVlKEEsZSl7cmV0dXJuIGU/QS5yZXBsYWNlKC9cLz9cLyQvLCIiKSsiLyIrZS5yZXBsYWNlKC9eXC8rLywiIik6QX1mdW5jdGlvbiBjQShBLGUsdCl7bGV0IGk9IXBlKGUpO3JldHVybiBBJiYoaXx8dD09ITEpP3VlKEEsZSk6ZX12YXIganQ9QT0+QSBpbnN0YW5jZW9mIFU/ey4uLkF9OkE7ZnVuY3Rpb24gUChBLGUpe2U9ZXx8e307bGV0IHQ9e307ZnVuY3Rpb24gaShnLG4sSSxsKXtyZXR1cm4gRS5pc1BsYWluT2JqZWN0KGcpJiZFLmlzUGxhaW5PYmplY3Qobik/RS5tZXJnZS5jYWxsKHtjYXNlbGVzczpsfSxnLG4pOkUuaXNQbGFpbk9iamVjdChuKT9FLm1lcmdlKHt9LG4pOkUuaXNBcnJheShuKT9uLnNsaWNlKCk6bn1mdW5jdGlvbiBvKGcsbixJLGwpe2lmKEUuaXNVbmRlZmluZWQobikpe2lmKCFFLmlzVW5kZWZpbmVkKGcpKXJldHVybiBpKHZvaWQgMCxnLEksbCl9ZWxzZSByZXR1cm4gaShnLG4sSSxsKX1mdW5jdGlvbiByKGcsbil7aWYoIUUuaXNVbmRlZmluZWQobikpcmV0dXJuIGkodm9pZCAwLG4pfWZ1bmN0aW9uIGEoZyxuKXtpZihFLmlzVW5kZWZpbmVkKG4pKXtpZighRS5pc1VuZGVmaW5lZChnKSlyZXR1cm4gaSh2b2lkIDAsZyl9ZWxzZSByZXR1cm4gaSh2b2lkIDAsbil9ZnVuY3Rpb24gQyhnLG4sSSl7aWYoSSBpbiBlKXJldHVybiBpKGcsbik7aWYoSSBpbiBBKXJldHVybiBpKHZvaWQgMCxnKX1sZXQgcD17dXJsOnIsbWV0aG9kOnIsZGF0YTpyLGJhc2VVUkw6YSx0cmFuc2Zvcm1SZXF1ZXN0OmEsdHJhbnNmb3JtUmVzcG9uc2U6YSxwYXJhbXNTZXJpYWxpemVyOmEsdGltZW91dDphLHRpbWVvdXRNZXNzYWdlOmEsd2l0aENyZWRlbnRpYWxzOmEsd2l0aFhTUkZUb2tlbjphLGFkYXB0ZXI6YSxyZXNwb25zZVR5cGU6YSx4c3JmQ29va2llTmFtZTphLHhzcmZIZWFkZXJOYW1lOmEsb25VcGxvYWRQcm9ncmVzczphLG9uRG93bmxvYWRQcm9ncmVzczphLGRlY29tcHJlc3M6YSxtYXhDb250ZW50TGVuZ3RoOmEsbWF4Qm9keUxlbmd0aDphLGJlZm9yZVJlZGlyZWN0OmEsdHJhbnNwb3J0OmEsaHR0cEFnZW50OmEsaHR0cHNBZ2VudDphLGNhbmNlbFRva2VuOmEsc29ja2V0UGF0aDphLHJlc3BvbnNlRW5jb2Rpbmc6YSx2YWxpZGF0ZVN0YXR1czpDLGhlYWRlcnM6KGcsbixJKT0+byhqdChnKSxqdChuKSxJLCEwKX07cmV0dXJuIEUuZm9yRWFjaChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LEEsZSkpLGZ1bmN0aW9uKG4pe2xldCBJPXBbbl18fG8sbD1JKEFbbl0sZVtuXSxuKTtFLmlzVW5kZWZpbmVkKGwpJiZJIT09Q3x8KHRbbl09bCl9KSx0fXZhciB4QT1BPT57bGV0IGU9UCh7fSxBKSx7ZGF0YTp0LHdpdGhYU1JGVG9rZW46aSx4c3JmSGVhZGVyTmFtZTpvLHhzcmZDb29raWVOYW1lOnIsaGVhZGVyczphLGF1dGg6Q309ZTtlLmhlYWRlcnM9YT1VLmZyb20oYSksZS51cmw9RUEoY0EoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplciksQyYmYS5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKEMudXNlcm5hbWV8fCIiKSsiOiIrKEMucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEMucGFzc3dvcmQpKToiIikpKTtsZXQgcDtpZihFLmlzRm9ybURhdGEodCkpe2lmKEQuaGFzU3RhbmRhcmRCcm93c2VyRW52fHxELmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilhLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZigocD1hLmdldENvbnRlbnRUeXBlKCkpIT09ITEpe2xldFtnLC4uLm5dPXA/cC5zcGxpdCgiOyIpLm1hcChJPT5JLnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pOltdO2Euc2V0Q29udGVudFR5cGUoW2d8fCJtdWx0aXBhcnQvZm9ybS1kYXRhIiwuLi5uXS5qb2luKCI7ICIpKX19aWYoRC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJihpJiZFLmlzRnVuY3Rpb24oaSkmJihpPWkoZSkpLGl8fGkhPT0hMSYmcXQoZS51cmwpKSl7bGV0IGc9byYmciYmS3QucmVhZChyKTtnJiZhLnNldChvLGcpfXJldHVybiBlfTt2YXIgWmk9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1Iix2dD1aaSYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsaSl7bGV0IG89eEEoQSkscj1vLmRhdGEsYT1VLmZyb20oby5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOkMsb25VcGxvYWRQcm9ncmVzczpwLG9uRG93bmxvYWRQcm9ncmVzczpnfT1vLG4sSSxsLHMsQjtmdW5jdGlvbiBmKCl7cyYmcygpLEImJkIoKSxvLmNhbmNlbFRva2VuJiZvLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKG4pLG8uc2lnbmFsJiZvLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsbil9bGV0IHU9bmV3IFhNTEh0dHBSZXF1ZXN0O3Uub3BlbihvLm1ldGhvZC50b1VwcGVyQ2FzZSgpLG8udXJsLCEwKSx1LnRpbWVvdXQ9by50aW1lb3V0O2Z1bmN0aW9uIHcoKXtpZighdSlyZXR1cm47bGV0IFI9VS5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gdSYmdS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksTj17ZGF0YTohQ3x8Qz09PSJ0ZXh0Inx8Qz09PSJqc29uIj91LnJlc3BvbnNlVGV4dDp1LnJlc3BvbnNlLHN0YXR1czp1LnN0YXR1cyxzdGF0dXNUZXh0OnUuc3RhdHVzVGV4dCxoZWFkZXJzOlIsY29uZmlnOkEscmVxdWVzdDp1fTtmQShmdW5jdGlvbihqKXt0KGopLGYoKX0sZnVuY3Rpb24oail7aShqKSxmKCl9LE4pLHU9bnVsbH0ib25sb2FkZW5kImluIHU/dS5vbmxvYWRlbmQ9dzp1Lm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyF1fHx1LnJlYWR5U3RhdGUhPT00fHx1LnN0YXR1cz09PTAmJiEodS5yZXNwb25zZVVSTCYmdS5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQodyl9LHUub25hYm9ydD1mdW5jdGlvbigpe3UmJihpKG5ldyBoKCJSZXF1ZXN0IGFib3J0ZWQiLGguRUNPTk5BQk9SVEVELEEsdSkpLHU9bnVsbCl9LHUub25lcnJvcj1mdW5jdGlvbigpe2kobmV3IGgoIk5ldHdvcmsgRXJyb3IiLGguRVJSX05FVFdPUkssQSx1KSksdT1udWxsfSx1Lm9udGltZW91dD1mdW5jdGlvbigpe2xldCB4PW8udGltZW91dD8idGltZW91dCBvZiAiK28udGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIixOPW8udHJhbnNpdGlvbmFsfHxPQTtvLnRpbWVvdXRFcnJvck1lc3NhZ2UmJih4PW8udGltZW91dEVycm9yTWVzc2FnZSksaShuZXcgaCh4LE4uY2xhcmlmeVRpbWVvdXRFcnJvcj9oLkVUSU1FRE9VVDpoLkVDT05OQUJPUlRFRCxBLHUpKSx1PW51bGx9LHI9PT12b2lkIDAmJmEuc2V0Q29udGVudFR5cGUobnVsbCksInNldFJlcXVlc3RIZWFkZXIiaW4gdSYmRS5mb3JFYWNoKGEudG9KU09OKCksZnVuY3Rpb24oeCxOKXt1LnNldFJlcXVlc3RIZWFkZXIoTix4KX0pLEUuaXNVbmRlZmluZWQoby53aXRoQ3JlZGVudGlhbHMpfHwodS53aXRoQ3JlZGVudGlhbHM9ISFvLndpdGhDcmVkZW50aWFscyksQyYmQyE9PSJqc29uIiYmKHUucmVzcG9uc2VUeXBlPW8ucmVzcG9uc2VUeXBlKSxnJiYoW2wsQl09ckEoZywhMCksdS5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsbCkpLHAmJnUudXBsb2FkJiYoW0ksc109ckEocCksdS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLEkpLHUudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLHMpKSwoby5jYW5jZWxUb2tlbnx8by5zaWduYWwpJiYobj1SPT57dSYmKGkoIVJ8fFIudHlwZT9uZXcgTChudWxsLEEsdSk6UiksdS5hYm9ydCgpLHU9bnVsbCl9LG8uY2FuY2VsVG9rZW4mJm8uY2FuY2VsVG9rZW4uc3Vic2NyaWJlKG4pLG8uc2lnbmFsJiYoby5zaWduYWwuYWJvcnRlZD9uKCk6by5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG4pKSk7bGV0IFM9UWUoby51cmwpO2lmKFMmJkQucHJvdG9jb2xzLmluZGV4T2YoUyk9PT0tMSl7aShuZXcgaCgiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIitTKyI6IixoLkVSUl9CQURfUkVRVUVTVCxBKSk7cmV0dXJufXUuc2VuZChyfHxudWxsKX0pfTt2YXIgVmk9KEEsZSk9PntsZXR7bGVuZ3RoOnR9PUE9QT9BLmZpbHRlcihCb29sZWFuKTpbXTtpZihlfHx0KXtsZXQgaT1uZXcgQWJvcnRDb250cm9sbGVyLG8scj1mdW5jdGlvbihnKXtpZighbyl7bz0hMCxDKCk7bGV0IG49ZyBpbnN0YW5jZW9mIEVycm9yP2c6dGhpcy5yZWFzb247aS5hYm9ydChuIGluc3RhbmNlb2YgaD9uOm5ldyBMKG4gaW5zdGFuY2VvZiBFcnJvcj9uLm1lc3NhZ2U6bikpfX0sYT1lJiZzZXRUaW1lb3V0KCgpPT57YT1udWxsLHIobmV3IGgoYHRpbWVvdXQgJHtlfSBvZiBtcyBleGNlZWRlZGAsaC5FVElNRURPVVQpKX0sZSksQz0oKT0+e0EmJihhJiZjbGVhclRpbWVvdXQoYSksYT1udWxsLEEuZm9yRWFjaChnPT57Zy51bnN1YnNjcmliZT9nLnVuc3Vic2NyaWJlKHIpOmcucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHIpfSksQT1udWxsKX07QS5mb3JFYWNoKGc9PmcuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHIpKTtsZXR7c2lnbmFsOnB9PWk7cmV0dXJuIHAudW5zdWJzY3JpYmU9KCk9PkUuYXNhcChDKSxwfX0sWnQ9Vmk7dmFyIHppPWZ1bmN0aW9uKihBLGUpe2xldCB0PUEuYnl0ZUxlbmd0aDtpZighZXx8dDxlKXt5aWVsZCBBO3JldHVybn1sZXQgaT0wLG87Zm9yKDtpPHQ7KW89aStlLHlpZWxkIEEuc2xpY2UoaSxvKSxpPW99LFhpPWFzeW5jIGZ1bmN0aW9uKihBLGUpe2ZvciBhd2FpdChsZXQgdCBvZiBfaShBKSl5aWVsZCp6aSh0LGUpfSxfaT1hc3luYyBmdW5jdGlvbiooQSl7aWYoQVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pe3lpZWxkKkE7cmV0dXJufWxldCBlPUEuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6dCx2YWx1ZTppfT1hd2FpdCBlLnJlYWQoKTtpZih0KWJyZWFrO3lpZWxkIGl9fWZpbmFsbHl7YXdhaXQgZS5jYW5jZWwoKX19LGZlPShBLGUsdCxpKT0+e2xldCBvPVhpKEEsZSkscj0wLGEsQz1wPT57YXx8KGE9ITAsaSYmaShwKSl9O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwocCl7dHJ5e2xldHtkb25lOmcsdmFsdWU6bn09YXdhaXQgby5uZXh0KCk7aWYoZyl7QygpLHAuY2xvc2UoKTtyZXR1cm59bGV0IEk9bi5ieXRlTGVuZ3RoO2lmKHQpe2xldCBsPXIrPUk7dChsKX1wLmVucXVldWUobmV3IFVpbnQ4QXJyYXkobikpfWNhdGNoKGcpe3Rocm93IEMoZyksZ319LGNhbmNlbChwKXtyZXR1cm4gQyhwKSxvLnJldHVybigpfX0se2hpZ2hXYXRlck1hcms6Mn0pfTt2YXIgSEE9dHlwZW9mIGZldGNoPT0iZnVuY3Rpb24iJiZ0eXBlb2YgUmVxdWVzdD09ImZ1bmN0aW9uIiYmdHlwZW9mIFJlc3BvbnNlPT0iZnVuY3Rpb24iLHp0PUhBJiZ0eXBlb2YgUmVhZGFibGVTdHJlYW09PSJmdW5jdGlvbiIsJGk9SEEmJih0eXBlb2YgVGV4dEVuY29kZXI9PSJmdW5jdGlvbiI/KEE9PmU9PkEuZW5jb2RlKGUpKShuZXcgVGV4dEVuY29kZXIpOmFzeW5jIEE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBSZXNwb25zZShBKS5hcnJheUJ1ZmZlcigpKSksWHQ9KEEsLi4uZSk9Pnt0cnl7cmV0dXJuISFBKC4uLmUpfWNhdGNoe3JldHVybiExfX0sQW89enQmJlh0KCgpPT57bGV0IEE9ITEsZT1uZXcgUmVxdWVzdChELm9yaWdpbix7Ym9keTpuZXcgUmVhZGFibGVTdHJlYW0sbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIEE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gQSYmIWV9KSxWdD02NCoxMDI0LGNlPXp0JiZYdCgoKT0+RS5pc1JlYWRhYmxlU3RyZWFtKG5ldyBSZXNwb25zZSgiIikuYm9keSkpLFlBPXtzdHJlYW06Y2UmJihBPT5BLmJvZHkpfTtIQSYmKEE9PntbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goZT0+eyFZQVtlXSYmKFlBW2VdPUUuaXNGdW5jdGlvbihBW2VdKT90PT50W2VdKCk6KHQsaSk9Pnt0aHJvdyBuZXcgaChgUmVzcG9uc2UgdHlwZSAnJHtlfScgaXMgbm90IHN1cHBvcnRlZGAsaC5FUlJfTk9UX1NVUFBPUlQsaSl9KX0pfSkobmV3IFJlc3BvbnNlKTt2YXIgZW89YXN5bmMgQT0+e2lmKEE9PW51bGwpcmV0dXJuIDA7aWYoRS5pc0Jsb2IoQSkpcmV0dXJuIEEuc2l6ZTtpZihFLmlzU3BlY0NvbXBsaWFudEZvcm0oQSkpcmV0dXJuKGF3YWl0IG5ldyBSZXF1ZXN0KEQub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6QX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoRS5pc0FycmF5QnVmZmVyVmlldyhBKXx8RS5pc0FycmF5QnVmZmVyKEEpKXJldHVybiBBLmJ5dGVMZW5ndGg7aWYoRS5pc1VSTFNlYXJjaFBhcmFtcyhBKSYmKEE9QSsiIiksRS5pc1N0cmluZyhBKSlyZXR1cm4oYXdhaXQgJGkoQSkpLmJ5dGVMZW5ndGh9LHRvPWFzeW5jKEEsZSk9PntsZXQgdD1FLnRvRmluaXRlTnVtYmVyKEEuZ2V0Q29udGVudExlbmd0aCgpKTtyZXR1cm4gdD8/ZW8oZSl9LF90PUhBJiYoYXN5bmMgQT0+e2xldHt1cmw6ZSxtZXRob2Q6dCxkYXRhOmksc2lnbmFsOm8sY2FuY2VsVG9rZW46cix0aW1lb3V0OmEsb25Eb3dubG9hZFByb2dyZXNzOkMsb25VcGxvYWRQcm9ncmVzczpwLHJlc3BvbnNlVHlwZTpnLGhlYWRlcnM6bix3aXRoQ3JlZGVudGlhbHM6ST0ic2FtZS1vcmlnaW4iLGZldGNoT3B0aW9uczpsfT14QShBKTtnPWc/KGcrIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBzPVp0KFtvLHImJnIudG9BYm9ydFNpZ25hbCgpXSxhKSxCLGY9cyYmcy51bnN1YnNjcmliZSYmKCgpPT57cy51bnN1YnNjcmliZSgpfSksdTt0cnl7aWYocCYmQW8mJnQhPT0iZ2V0IiYmdCE9PSJoZWFkIiYmKHU9YXdhaXQgdG8obixpKSkhPT0wKXtsZXQgTj1uZXcgUmVxdWVzdChlLHttZXRob2Q6IlBPU1QiLGJvZHk6aSxkdXBsZXg6ImhhbGYifSksVDtpZihFLmlzRm9ybURhdGEoaSkmJihUPU4uaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmbi5zZXRDb250ZW50VHlwZShUKSxOLmJvZHkpe2xldFtqLERBXT1FZSh1LHJBKGxlKHApKSk7aT1mZShOLmJvZHksVnQsaixEQSl9fUUuaXNTdHJpbmcoSSl8fChJPUk/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IHc9ImNyZWRlbnRpYWxzImluIFJlcXVlc3QucHJvdG90eXBlO0I9bmV3IFJlcXVlc3QoZSx7Li4ubCxzaWduYWw6cyxtZXRob2Q6dC50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6bi5ub3JtYWxpemUoKS50b0pTT04oKSxib2R5OmksZHVwbGV4OiJoYWxmIixjcmVkZW50aWFsczp3P0k6dm9pZCAwfSk7bGV0IFM9YXdhaXQgZmV0Y2goQiksUj1jZSYmKGc9PT0ic3RyZWFtInx8Zz09PSJyZXNwb25zZSIpO2lmKGNlJiYoQ3x8UiYmZikpe2xldCBOPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKEJ0PT57TltCdF09U1tCdF19KTtsZXQgVD1FLnRvRmluaXRlTnVtYmVyKFMuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtqLERBXT1DJiZFZShULHJBKGxlKEMpLCEwKSl8fFtdO1M9bmV3IFJlc3BvbnNlKGZlKFMuYm9keSxWdCxqLCgpPT57REEmJkRBKCksZiYmZigpfSksTil9Zz1nfHwidGV4dCI7bGV0IHg9YXdhaXQgWUFbRS5maW5kS2V5KFlBLGcpfHwidGV4dCJdKFMsQSk7cmV0dXJuIVImJmYmJmYoKSxhd2FpdCBuZXcgUHJvbWlzZSgoTixUKT0+e2ZBKE4sVCx7ZGF0YTp4LGhlYWRlcnM6VS5mcm9tKFMuaGVhZGVycyksc3RhdHVzOlMuc3RhdHVzLHN0YXR1c1RleHQ6Uy5zdGF0dXNUZXh0LGNvbmZpZzpBLHJlcXVlc3Q6Qn0pfSl9Y2F0Y2godyl7dGhyb3cgZiYmZigpLHcmJncubmFtZT09PSJUeXBlRXJyb3IiJiYvZmV0Y2gvaS50ZXN0KHcubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgaCgiTmV0d29yayBFcnJvciIsaC5FUlJfTkVUV09SSyxBLEIpLHtjYXVzZTp3LmNhdXNlfHx3fSk6aC5mcm9tKHcsdyYmdy5jb2RlLEEsQil9fSk7dmFyIG1lPXtodHRwOldBLHhocjp2dCxmZXRjaDpfdH07RS5mb3JFYWNoKG1lLChBLGUpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6ZX0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTplfSl9fSk7dmFyICR0PUE9PmAtICR7QX1gLHJvPUE9PkUuaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxUQT17Z2V0QWRhcHRlcjpBPT57QT1FLmlzQXJyYXkoQSk/QTpbQV07bGV0e2xlbmd0aDplfT1BLHQsaSxvPXt9O2ZvcihsZXQgcj0wO3I8ZTtyKyspe3Q9QVtyXTtsZXQgYTtpZihpPXQsIXJvKHQpJiYoaT1tZVsoYT1TdHJpbmcodCkpLnRvTG93ZXJDYXNlKCldLGk9PT12b2lkIDApKXRocm93IG5ldyBoKGBVbmtub3duIGFkYXB0ZXIgJyR7YX0nYCk7aWYoaSlicmVhaztvW2F8fCIjIityXT1pfWlmKCFpKXtsZXQgcj1PYmplY3QuZW50cmllcyhvKS5tYXAoKFtDLHBdKT0+YGFkYXB0ZXIgJHtDfSBgKyhwPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSksYT1lP3IubGVuZ3RoPjE/YHNpbmNlIDoKYCtyLm1hcCgkdCkuam9pbihgCmApOiIgIiskdChyWzBdKToiYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQiO3Rocm93IG5ldyBoKCJUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIrYSwiRVJSX05PVF9TVVBQT1JUIil9cmV0dXJuIGl9LGFkYXB0ZXJzOm1lfTtmdW5jdGlvbiBkZShBKXtpZihBLmNhbmNlbFRva2VuJiZBLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxBLnNpZ25hbCYmQS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgTChudWxsLEEpfWZ1bmN0aW9uIHFBKEEpe3JldHVybiBkZShBKSxBLmhlYWRlcnM9VS5mcm9tKEEuaGVhZGVycyksQS5kYXRhPXBBLmNhbGwoQSxBLnRyYW5zZm9ybVJlcXVlc3QpLFsicG9zdCIsInB1dCIsInBhdGNoIl0uaW5kZXhPZihBLm1ldGhvZCkhPT0tMSYmQS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCExKSxUQS5nZXRBZGFwdGVyKEEuYWRhcHRlcnx8ZUEuYWRhcHRlcikoQSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gZGUoQSksaS5kYXRhPXBBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLGkpLGkuaGVhZGVycz1VLmZyb20oaS5oZWFkZXJzKSxpfSxmdW5jdGlvbihpKXtyZXR1cm4gdUEoaSl8fChkZShBKSxpJiZpLnJlc3BvbnNlJiYoaS5yZXNwb25zZS5kYXRhPXBBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLGkucmVzcG9uc2UpLGkucmVzcG9uc2UuaGVhZGVycz1VLmZyb20oaS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KGkpfSl9dmFyIEtBPSIxLjguNCI7dmFyIGpBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSxlKT0+e2pBW0FdPWZ1bmN0aW9uKGkpe3JldHVybiB0eXBlb2YgaT09PUF8fCJhIisoZTwxPyJuICI6IiAiKStBfX0pO3ZhciBBcj17fTtqQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSx0LGkpe2Z1bmN0aW9uIG8ocixhKXtyZXR1cm4iW0F4aW9zIHYiK0tBKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIrcisiJyIrYSsoaT8iLiAiK2k6IiIpfXJldHVybihyLGEsQyk9PntpZihlPT09ITEpdGhyb3cgbmV3IGgobyhhLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKHQ/IiBpbiAiK3Q6IiIpKSxoLkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gdCYmIUFyW2FdJiYoQXJbYV09ITAsY29uc29sZS53YXJuKG8oYSwiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrdCsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSxlP2UocixhLEMpOiEwfX07akEuc3BlbGxpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuKHQsaSk9Pihjb25zb2xlLndhcm4oYCR7aX0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHtlfWApLCEwKX07ZnVuY3Rpb24gaW8oQSxlLHQpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgaCgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsaC5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IGk9T2JqZWN0LmtleXMoQSksbz1pLmxlbmd0aDtmb3IoO28tLSA+MDspe2xldCByPWlbb10sYT1lW3JdO2lmKGEpe2xldCBDPUFbcl0scD1DPT09dm9pZCAwfHxhKEMscixBKTtpZihwIT09ITApdGhyb3cgbmV3IGgoIm9wdGlvbiAiK3IrIiBtdXN0IGJlICIrcCxoLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZih0IT09ITApdGhyb3cgbmV3IGgoIlVua25vd24gb3B0aW9uICIrcixoLkVSUl9CQURfT1BUSU9OKX19dmFyIG1BPXthc3NlcnRPcHRpb25zOmlvLHZhbGlkYXRvcnM6akF9O3ZhciBKPW1BLnZhbGlkYXRvcnMsaUE9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5kZWZhdWx0cz1lLHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBuZSxyZXNwb25zZTpuZXcgbmV9fWFzeW5jIHJlcXVlc3QoZSx0KXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QoZSx0KX1jYXRjaChpKXtpZihpIGluc3RhbmNlb2YgRXJyb3Ipe2xldCBvPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKG8pOm89bmV3IEVycm9yO2xldCByPW8uc3RhY2s/by5zdGFjay5yZXBsYWNlKC9eLitcbi8sIiIpOiIiO3RyeXtpLnN0YWNrP3ImJiFTdHJpbmcoaS5zdGFjaykuZW5kc1dpdGgoci5yZXBsYWNlKC9eLitcbi4rXG4vLCIiKSkmJihpLnN0YWNrKz1gCmArcik6aS5zdGFjaz1yfWNhdGNoe319dGhyb3cgaX19X3JlcXVlc3QoZSx0KXt0eXBlb2YgZT09InN0cmluZyI/KHQ9dHx8e30sdC51cmw9ZSk6dD1lfHx7fSx0PVAodGhpcy5kZWZhdWx0cyx0KTtsZXR7dHJhbnNpdGlvbmFsOmkscGFyYW1zU2VyaWFsaXplcjpvLGhlYWRlcnM6cn09dDtpIT09dm9pZCAwJiZtQS5hc3NlcnRPcHRpb25zKGkse3NpbGVudEpTT05QYXJzaW5nOkoudHJhbnNpdGlvbmFsKEouYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6Si50cmFuc2l0aW9uYWwoSi5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOkoudHJhbnNpdGlvbmFsKEouYm9vbGVhbil9LCExKSxvIT1udWxsJiYoRS5pc0Z1bmN0aW9uKG8pP3QucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOm99Om1BLmFzc2VydE9wdGlvbnMobyx7ZW5jb2RlOkouZnVuY3Rpb24sc2VyaWFsaXplOkouZnVuY3Rpb259LCEwKSksdC5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/dC5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOnQuYWxsb3dBYnNvbHV0ZVVybHM9ITApLG1BLmFzc2VydE9wdGlvbnModCx7YmFzZVVybDpKLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpKLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSx0Lm1ldGhvZD0odC5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgYT1yJiZFLm1lcmdlKHIuY29tbW9uLHJbdC5tZXRob2RdKTtyJiZFLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sQj0+e2RlbGV0ZSByW0JdfSksdC5oZWFkZXJzPVUuY29uY2F0KGEscik7bGV0IEM9W10scD0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oZil7dHlwZW9mIGYucnVuV2hlbj09ImZ1bmN0aW9uIiYmZi5ydW5XaGVuKHQpPT09ITF8fChwPXAmJmYuc3luY2hyb25vdXMsQy51bnNoaWZ0KGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpKX0pO2xldCBnPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oZil7Zy5wdXNoKGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpfSk7bGV0IG4sST0wLGw7aWYoIXApe2xldCBCPVtxQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKEIudW5zaGlmdC5hcHBseShCLEMpLEIucHVzaC5hcHBseShCLGcpLGw9Qi5sZW5ndGgsbj1Qcm9taXNlLnJlc29sdmUodCk7STxsOyluPW4udGhlbihCW0krK10sQltJKytdKTtyZXR1cm4gbn1sPUMubGVuZ3RoO2xldCBzPXQ7Zm9yKEk9MDtJPGw7KXtsZXQgQj1DW0krK10sZj1DW0krK107dHJ5e3M9QihzKX1jYXRjaCh1KXtmLmNhbGwodGhpcyx1KTticmVha319dHJ5e249cUEuY2FsbCh0aGlzLHMpfWNhdGNoKEIpe3JldHVybiBQcm9taXNlLnJlamVjdChCKX1mb3IoST0wLGw9Zy5sZW5ndGg7STxsOyluPW4udGhlbihnW0krK10sZ1tJKytdKTtyZXR1cm4gbn1nZXRVcmkoZSl7ZT1QKHRoaXMuZGVmYXVsdHMsZSk7bGV0IHQ9Y0EoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiBFQSh0LGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcil9fTtFLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKGUpe2lBLnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LGkpe3JldHVybiB0aGlzLnJlcXVlc3QoUChpfHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YTooaXx8e30pLmRhdGF9KSl9fSk7RS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChpKXtyZXR1cm4gZnVuY3Rpb24ocixhLEMpe3JldHVybiB0aGlzLnJlcXVlc3QoUChDfHx7fSx7bWV0aG9kOmUsaGVhZGVyczppP3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDpyLGRhdGE6YX0pKX19aUEucHJvdG90eXBlW2VdPXQoKSxpQS5wcm90b3R5cGVbZSsiRm9ybSJdPXQoITApfSk7dmFyIGRBPWlBO3ZhciB5ZT1jbGFzcyBBe2NvbnN0cnVjdG9yKGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtsZXQgdDt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24ocil7dD1yfSk7bGV0IGk9dGhpczt0aGlzLnByb21pc2UudGhlbihvPT57aWYoIWkuX2xpc3RlbmVycylyZXR1cm47bGV0IHI9aS5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO3ItLSA+MDspaS5fbGlzdGVuZXJzW3JdKG8pO2kuX2xpc3RlbmVycz1udWxsfSksdGhpcy5wcm9taXNlLnRoZW49bz0+e2xldCByLGE9bmV3IFByb21pc2UoQz0+e2kuc3Vic2NyaWJlKEMpLHI9Q30pLnRoZW4obyk7cmV0dXJuIGEuY2FuY2VsPWZ1bmN0aW9uKCl7aS51bnN1YnNjcmliZShyKX0sYX0sZShmdW5jdGlvbihyLGEsQyl7aS5yZWFzb258fChpLnJlYXNvbj1uZXcgTChyLGEsQyksdChpLnJlYXNvbikpfSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZShlKXtpZih0aGlzLnJlYXNvbil7ZSh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaChlKTp0aGlzLl9saXN0ZW5lcnM9W2VdfXVuc3Vic2NyaWJlKGUpe2lmKCF0aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2xldCB0PXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKGUpO3QhPT0tMSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZSh0LDEpfXRvQWJvcnRTaWduYWwoKXtsZXQgZT1uZXcgQWJvcnRDb250cm9sbGVyLHQ9aT0+e2UuYWJvcnQoaSl9O3JldHVybiB0aGlzLnN1YnNjcmliZSh0KSxlLnNpZ25hbC51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZSh0KSxlLnNpZ25hbH1zdGF0aWMgc291cmNlKCl7bGV0IGU7cmV0dXJue3Rva2VuOm5ldyBBKGZ1bmN0aW9uKG8pe2U9b30pLGNhbmNlbDplfX19LGVyPXllO2Z1bmN0aW9uIGhlKEEpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gQS5hcHBseShudWxsLHQpfX1mdW5jdGlvbiB3ZShBKXtyZXR1cm4gRS5pc09iamVjdChBKSYmQS5pc0F4aW9zRXJyb3I9PT0hMH12YXIgRGU9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKERlKS5mb3JFYWNoKChbQSxlXSk9PntEZVtlXT1BfSk7dmFyIHRyPURlO2Z1bmN0aW9uIHJyKEEpe2xldCBlPW5ldyBkQShBKSx0PUJBKGRBLnByb3RvdHlwZS5yZXF1ZXN0LGUpO3JldHVybiBFLmV4dGVuZCh0LGRBLnByb3RvdHlwZSxlLHthbGxPd25LZXlzOiEwfSksRS5leHRlbmQodCxlLG51bGwse2FsbE93bktleXM6ITB9KSx0LmNyZWF0ZT1mdW5jdGlvbihvKXtyZXR1cm4gcnIoUChBLG8pKX0sdH12YXIgRj1ycihlQSk7Ri5BeGlvcz1kQTtGLkNhbmNlbGVkRXJyb3I9TDtGLkNhbmNlbFRva2VuPWVyO0YuaXNDYW5jZWw9dUE7Ri5WRVJTSU9OPUtBO0YudG9Gb3JtRGF0YT1xO0YuQXhpb3NFcnJvcj1oO0YuQ2FuY2VsPUYuQ2FuY2VsZWRFcnJvcjtGLmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9O0Yuc3ByZWFkPWhlO0YuaXNBeGlvc0Vycm9yPXdlO0YubWVyZ2VDb25maWc9UDtGLkF4aW9zSGVhZGVycz1VO0YuZm9ybVRvSlNPTj1BPT5MQShFLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO0YuZ2V0QWRhcHRlcj1UQS5nZXRBZGFwdGVyO0YuSHR0cFN0YXR1c0NvZGU9dHI7Ri5kZWZhdWx0PUY7dmFyIG9BPUY7dmFye0F4aW9zOkhJLEF4aW9zRXJyb3I6VEksQ2FuY2VsZWRFcnJvcjpxSSxpc0NhbmNlbDpLSSxDYW5jZWxUb2tlbjpqSSxWRVJTSU9OOnZJLGFsbDpaSSxDYW5jZWw6VkksaXNBeGlvc0Vycm9yOnpJLHNwcmVhZDpYSSx0b0Zvcm1EYXRhOl9JLEF4aW9zSGVhZGVyczokSSxIdHRwU3RhdHVzQ29kZTpBZyxmb3JtVG9KU09OOmVnLGdldEFkYXB0ZXI6dGcsbWVyZ2VDb25maWc6cmd9PW9BO2FzeW5jIGZ1bmN0aW9uIG9vKEEsZSl7bGV0IHQ9QSxpPW51bGw7aWYodD09bnVsbClpPW5ldyBXb3JrZXIobmV3IFVSTCgiLi93ZWItd29ya2Vycy9pdGstd2FzbS1waXBlbGluZS53b3JrZXIuanMiLGltcG9ydC5tZXRhLnVybCkse3R5cGU6Im1vZHVsZSJ9KTtlbHNlIGlmKHQuc3RhcnRzV2l0aCgiaHR0cCIpKXtsZXQgbz1hd2FpdCBvQS5nZXQodCx7cmVzcG9uc2VUeXBlOiJibG9iIixwYXJhbXM6ZX0pLHI9VVJMLmNyZWF0ZU9iamVjdFVSTChvLmRhdGEpO2k9bmV3IFdvcmtlcihyLHt0eXBlOiJtb2R1bGUifSl9ZWxzZSBpPW5ldyBXb3JrZXIodCx7dHlwZToibW9kdWxlIn0pO3JldHVybiBpfXZhciB5QT1vbztmdW5jdGlvbiBpcihBKXtsZXQgZT1BZShBKSx0PUE7cmV0dXJuIHQudGVybWluYXRlZD0hMSx0LndvcmtlclByb3h5PWUsdC5vcmlnaW5hbFRlcm1pbmF0ZT10LnRlcm1pbmF0ZSx0LnRlcm1pbmF0ZT0oKT0+e3QudGVybWluYXRlZD0hMCx0LndvcmtlclByb3h5WyRBXSgpLHQub3JpZ2luYWxUZXJtaW5hdGUoKX0se3dvcmtlclByb3h5OmUsd29ya2VyOnR9fWFzeW5jIGZ1bmN0aW9uIG5vKEEsZSx0KXtsZXQgaTtpZihBIT1udWxsKXtsZXQgcj1BO3JldHVybiByLndvcmtlclByb3h5IT09dm9pZCAwPyhpPXIud29ya2VyUHJveHkse3dvcmtlclByb3h5Omksd29ya2VyOnJ9KTppcihBKX1sZXQgbz1hd2FpdCB5QShlLHQpO3JldHVybiBpcihvKX12YXIgb3I9bm87dmFyIGhBLEgsUmUsU2U9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXtSZT1uZXcgVWludDhBcnJheShILmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sdkE9Y2xhc3N7aW5pdCgpe3JldHVybiBoQXx8KHR5cGVvZiBmZXRjaDwidSI/aEE9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitucikudGhlbihlPT5lLmFycmF5QnVmZmVyKCkpLnRoZW4oZT0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoZSxTZSkpLnRoZW4odGhpcy5faW5pdCk6aEE9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20obnIsImJhc2U2NCIpLFNlKS50aGVuKHRoaXMuX2luaXQpLGhBKX1faW5pdChlKXtIPWUuaW5zdGFuY2UsU2UuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKGUsdD0wKXtpZighSCl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgaT1lLmJ5dGVMZW5ndGgsbz1ILmV4cG9ydHMubWFsbG9jKGkpO1JlLnNldChlLG8pLHQ9dHx8TnVtYmVyKEguZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKG8saSkpO2xldCByPUguZXhwb3J0cy5tYWxsb2ModCksYT1ILmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKHIsdCxvLGkpLEM9UmUuc2xpY2UocixyK2EpO3JldHVybiBILmV4cG9ydHMuZnJlZShvKSxILmV4cG9ydHMuZnJlZShyKSxDfX0sbnI9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgYXI9bmV3IHZBLHNyPSExO2FzeW5jIGZ1bmN0aW9uIGFvKEEsZSx0KXtsZXQgaT0idW5rbm93biI7dHlwZW9mIEEhPSJzdHJpbmciP2k9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP2k9QTppPXR5cGVvZiBlPCJ1Ij9gJHtlfS8ke0F9YDpBLGkuZW5kc1dpdGgoIi5qcyIpJiYoaT1pLnN1YnN0cmluZygwLGkubGVuZ3RoLTMpKSxpLmVuZHNXaXRoKCIud2FzbSIpJiYoaT1pLnN1YnN0cmluZygwLGkubGVuZ3RoLTUpKSxpLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKGk9aS5zdWJzdHJpbmcoMCxpLmxlbmd0aC05KSk7bGV0IG89YCR7aX0ud2FzbWAscj1hd2FpdCBvQS5nZXQoYCR7b30uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOnR9KTtzcnx8KGF3YWl0IGFyLmluaXQoKSxzcj0hMCk7bGV0IEM9YXIuZGVjb2RlKG5ldyBVaW50OEFycmF5KHIuZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke2l9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6Q30pfXZhciBJcj1hbzt2YXIgZ3I9YXN5bmMoKT0+V2ViQXNzZW1ibHkudmFsaWRhdGUobmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwLDEsNSwxLDk2LDAsMSwxMjMsMywyLDEsMCwxMCwxMCwxLDgsMCw2NSwwLDI1MywxNSwyNTMsOTgsMTFdKSk7dmFyIFFyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLEJyPW5ldyBUZXh0RW5jb2RlcixDcj1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gc28oQSxlKXtsZXQgdD17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSxpPUEuZnNfb3BlbihlLHQuZmxhZ3MpLHI9QS5mc19zdGF0KGUpLnNpemUsYT1udWxsO1FyP2E9bmV3IFNoYXJlZEFycmF5QnVmZmVyKHIpOmE9bmV3IEFycmF5QnVmZmVyKHIpO2xldCBDPW5ldyBVaW50OEFycmF5KGEpO3JldHVybiBBLmZzX3JlYWQoaSxDLDAsciwwKSxBLmZzX2Nsb3NlKGkpLEN9ZnVuY3Rpb24gRXIoQSxlLHQpe2xldCBpPW51bGw7UXI/aT1uZXcgU2hhcmVkQXJyYXlCdWZmZXIodCk6aT1uZXcgQXJyYXlCdWZmZXIodCk7bGV0IG89bmV3IFVpbnQ4QXJyYXkoaSkscj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsZSx0KTtyZXR1cm4gby5zZXQociksb31mdW5jdGlvbiBrKEEsZSx0LGkpe2xldCBvPTA7cmV0dXJuIGUhPT1udWxsJiYobz1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGksZS5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheShlLmJ1ZmZlciksbykpLG99ZnVuY3Rpb24gSyhBLGUsdCl7bGV0IGk9SlNPTi5zdHJpbmdpZnkoZSksbz1BLmxlbmd0aEJ5dGVzVVRGOChpKSsxLHI9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LG9dKTtBLnN0cmluZ1RvVVRGOChpLHIsbyl9ZnVuY3Rpb24gYihBLGUsdCxpKXtsZXQgbz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKSxyPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsdF0pLGE9RXIoQSxvLHIpO3JldHVybiBPKGksYS5idWZmZXIpfWZ1bmN0aW9uIHdBKEEsZSl7bGV0IHQ9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCxlXSksaT1BLlVURjhUb1N0cmluZyh0KTtyZXR1cm4gSlNPTi5wYXJzZShpKX1mdW5jdGlvbiBJbyhBLGUsdCxpKXtpIT1udWxsJiZpLmxlbmd0aD4wJiZpLmZvckVhY2goZnVuY3Rpb24oZyxuKXtzd2l0Y2goZy50eXBlKXtjYXNlIFEuVGV4dFN0cmVhbTp7bGV0IEk9QnIuZW5jb2RlKGcuZGF0YS5kYXRhKSxsPWsoQSxJLG4sMCkscz17c2l6ZTpJLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O0soQSxzLG4pO2JyZWFrfWNhc2UgUS5Kc29uQ29tcGF0aWJsZTp7bGV0IEk9QnIuZW5jb2RlKEpTT04uc3RyaW5naWZ5KGcuZGF0YSkpLGw9ayhBLEksbiwwKSxzPXtzaXplOkkuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07SyhBLHMsbik7YnJlYWt9Y2FzZSBRLkJpbmFyeVN0cmVhbTp7bGV0IEk9Zy5kYXRhLmRhdGEsbD1rKEEsSSxuLDApLHM9e3NpemU6SS5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTtLKEEscyxuKTticmVha31jYXNlIFEuVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKGcuZGF0YS5wYXRoLGcuZGF0YS5kYXRhKTticmVha31jYXNlIFEuQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoZy5kYXRhLnBhdGgsZy5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgUS5JbWFnZTp7bGV0IEk9Zy5kYXRhLGw9ayhBLEkuZGF0YSxuLDApLHM9ayhBLEkuZGlyZWN0aW9uLG4sMSksQj10eXBlb2YgSS5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShJLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sZj17aW1hZ2VUeXBlOkkuaW1hZ2VUeXBlLG5hbWU6SS5uYW1lLG9yaWdpbjpJLm9yaWdpbixzcGFjaW5nOkkuc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtzfWAsc2l6ZTpJLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxtZXRhZGF0YTpCfTtLKEEsZixuKTticmVha31jYXNlIFEuTWVzaDp7bGV0IEk9Zy5kYXRhLGw9ayhBLEkucG9pbnRzLG4sMCkscz1rKEEsSS5jZWxscyxuLDEpLEI9ayhBLEkucG9pbnREYXRhLG4sMiksZj1rKEEsSS5jZWxsRGF0YSxuLDMpLHU9e21lc2hUeXBlOkkubWVzaFR5cGUsbmFtZTpJLm5hbWUsbnVtYmVyT2ZQb2ludHM6SS5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZDZWxsczpJLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtzfWAsY2VsbEJ1ZmZlclNpemU6SS5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOkkubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOkkubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtLKEEsdSxuKTticmVha31jYXNlIFEuUG9pbnRTZXQ6e2xldCBJPWcuZGF0YSxsPWsoQSxJLnBvaW50cyxuLDApLHM9ayhBLEkucG9pbnREYXRhLG4sMSksQj17cG9pbnRTZXRUeXBlOkkucG9pbnRTZXRUeXBlLG5hbWU6SS5uYW1lLG51bWJlck9mUG9pbnRzOkkubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mUG9pbnRQaXhlbHM6SS5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3N9YH07SyhBLEIsbik7YnJlYWt9Y2FzZSBRLlRyYW5zZm9ybUxpc3Q6e2xldCBJPWcuZGF0YSxsPVtdLHM9MDtJLmZvckVhY2goQj0+e2xldCBmPSIiLHU9IiI7Qi50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGY9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtrKEEsQi5maXhlZFBhcmFtZXRlcnMsbixzKX1gLHMrPTEsdT1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2soQSxCLnBhcmFtZXRlcnMsbixzKX1gLHMrPTEpO2xldCB3PXt0cmFuc2Zvcm1UeXBlOkIudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpCLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpCLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOkIubmFtZSxpbnB1dFNwYWNlTmFtZTpCLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpCLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOnUsZml4ZWRQYXJhbWV0ZXJzOmZ9O2wucHVzaCh3KX0pLEsoQSxsLG4pO2JyZWFrfWNhc2UgUS5Qb2x5RGF0YTp7bGV0IEk9Zy5kYXRhLGw9ayhBLEkucG9pbnRzLG4sMCkscz1rKEEsSS52ZXJ0aWNlcyxuLDEpLEI9ayhBLEkubGluZXMsbiwyKSxmPWsoQSxJLnBvbHlnb25zLG4sMyksdT1rKEEsSS50cmlhbmdsZVN0cmlwcyxuLDQpLHc9ayhBLEkucG9pbnREYXRhLG4sNSksUz1rKEEsSS5wb2ludERhdGEsbiw2KSxSPXtwb2x5RGF0YVR5cGU6SS5wb2x5RGF0YVR5cGUsbmFtZTpJLm5hbWUsbnVtYmVyT2ZQb2ludHM6SS5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsdmVydGljZXNCdWZmZXJTaXplOkkudmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7c31gLGxpbmVzQnVmZmVyU2l6ZTpJLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxwb2x5Z29uc0J1ZmZlclNpemU6SS5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOkkudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dX1gLG51bWJlck9mUG9pbnRQaXhlbHM6SS5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3d9YCxudW1iZXJPZkNlbGxQaXhlbHM6SS5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtTfWB9O0soQSxSLG4pO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCBvPUEuc3RhY2tTYXZlKCkscj0wO3RyeXtyPUEuY2FsbE1haW4oZS5zbGljZSgpKX1jYXRjaChnKXt0aHJvdyB0eXBlb2YgZz09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShnKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxnfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUobyl9bGV0IGE9QS5nZXRNb2R1bGVTdGRvdXQoKSxDPUEuZ2V0TW9kdWxlU3RkZXJyKCkscD1bXTtyZXR1cm4gdCE9bnVsbCYmdC5sZW5ndGg+MCYmcj09PTAmJnQuZm9yRWFjaChmdW5jdGlvbihnLG4pe2xldCBJPW51bGw7c3dpdGNoKGcudHlwZSl7Y2FzZSBRLlRleHRTdHJlYW06e2xldCBzPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIscyxCKTtJPXtkYXRhOkNyLmRlY29kZShmKX07YnJlYWt9Y2FzZSBRLkpzb25Db21wYXRpYmxlOntsZXQgcz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLHMsQik7ST1KU09OLnBhcnNlKENyLmRlY29kZShmKSk7YnJlYWt9Y2FzZSBRLkJpbmFyeVN0cmVhbTp7bGV0IHM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSksQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKTtJPXtkYXRhOkVyKEEscyxCKX07YnJlYWt9Y2FzZSBRLlRleHRGaWxlOntJPXtwYXRoOmcuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShnLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgUS5CaW5hcnlGaWxlOntJPXtwYXRoOmcuZGF0YS5wYXRoLGRhdGE6c28oQSxnLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgUS5JbWFnZTp7bGV0IHM9d0EoQSxuKTtzLmRhdGE9YihBLG4sMCxzLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxzLmRpcmVjdGlvbj1iKEEsbiwxLFYuRmxvYXQ2NCkscy5tZXRhZGF0YT1uZXcgTWFwKHMubWV0YWRhdGEpLEk9czticmVha31jYXNlIFEuTWVzaDp7bGV0IHM9d0EoQSxuKTtzLm51bWJlck9mUG9pbnRzPjA/cy5wb2ludHM9YihBLG4sMCxzLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6cy5wb2ludHM9TyhzLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLHMubnVtYmVyT2ZDZWxscz4wP3MuY2VsbHM9YihBLG4sMSxzLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTpzLmNlbGxzPU8ocy5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLHMubnVtYmVyT2ZQb2ludFBpeGVscz4wP3MucG9pbnREYXRhPWIoQSxuLDIscy5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6cy5wb2ludERhdGE9TyhzLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSkscy5udW1iZXJPZkNlbGxQaXhlbHM+MD9zLmNlbGxEYXRhPWIoQSxuLDMscy5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpzLmNlbGxEYXRhPU8ocy5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksST1zO2JyZWFrfWNhc2UgUS5Qb2ludFNldDp7bGV0IHM9d0EoQSxuKTtzLm51bWJlck9mUG9pbnRzPjA/cy5wb2ludHM9YihBLG4sMCxzLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOnMucG9pbnRzPU8ocy5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSkscy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/cy5wb2ludERhdGE9YihBLG4sMSxzLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6cy5wb2ludERhdGE9TyhzLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEk9czticmVha31jYXNlIFEuVHJhbnNmb3JtTGlzdDp7bGV0IHM9d0EoQSxuKSxCPTA7cy5mb3JFYWNoKChmLHUpPT57Zi50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGYubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKHNbdV0uZml4ZWRQYXJhbWV0ZXJzPWIoQSxuLEIsVi5GbG9hdDY0KSksQis9MSxmLm51bWJlck9mUGFyYW1ldGVycz4wJiYoc1t1XS5wYXJhbWV0ZXJzPWIoQSxuLEIsZi50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxCKz0xKX0pLEk9czticmVha31jYXNlIFEuUG9seURhdGE6e2xldCBzPXdBKEEsbik7cy5udW1iZXJPZlBvaW50cz4wP3MucG9pbnRzPWIoQSxuLDAsVi5GbG9hdDMyKTpzLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LHMudmVydGljZXNCdWZmZXJTaXplPjA/cy52ZXJ0aWNlcz1iKEEsbiwxLEcuVUludDMyKTpzLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxzLmxpbmVzQnVmZmVyU2l6ZT4wP3MubGluZXM9YihBLG4sMixHLlVJbnQzMik6cy5saW5lcz1uZXcgVWludDMyQXJyYXkscy5wb2x5Z29uc0J1ZmZlclNpemU+MD9zLnBvbHlnb25zPWIoQSxuLDMsRy5VSW50MzIpOnMucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LHMudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/cy50cmlhbmdsZVN0cmlwcz1iKEEsbiw0LEcuVUludDMyKTpzLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxzLm51bWJlck9mUG9pbnRQaXhlbHM+MD9zLnBvaW50RGF0YT1iKEEsbiw1LHMucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpzLnBvaW50RGF0YT1PKHMucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSkscy5udW1iZXJPZkNlbGxQaXhlbHM+MD9zLmNlbGxEYXRhPWIoQSxuLDYscy5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6cy5jZWxsRGF0YT1PKHMucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxJPXM7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgbD17dHlwZTpnLnR5cGUsZGF0YTpJfTtwLnB1c2gobCl9KSx7cmV0dXJuVmFsdWU6cixzdGRvdXQ6YSxzdGRlcnI6QyxvdXRwdXRzOnB9fXZhciBscj1Jbzt2YXIgZ289dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uIEJvKEEsZSl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgdD1bXTtmb3IobGV0IGk9MDtpPEEubGVuZ3RoO2krKyl7bGV0IG89Q28oQVtpXSxlKTtvIT09bnVsbCYmdC5wdXNoKG8pfXJldHVybiB0fWZ1bmN0aW9uIENvKEEsZSl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgdD1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD90PUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKHQ9QSksZ28mJnQgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOmU/dDp0LnNsaWNlKDApfXZhciBwcj1CbztmdW5jdGlvbiBRbyhBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIgdXI9UW87ZnVuY3Rpb24gRW8oQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIGZyPUVvO2Z1bmN0aW9uIGxvKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBjcj1sbzt2YXIgcG87ZnVuY3Rpb24gWkEoKXtyZXR1cm4gcG99dmFyIHVvO2Z1bmN0aW9uIG1yKCl7cmV0dXJuIHVvfXZhciBmbztmdW5jdGlvbiBWQSgpe3JldHVybiBmb312YXIgRmU9bmV3IE1hcDtmdW5jdGlvbiBjbygpe2xldCBBPVZBKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bnVsbCksQX1mdW5jdGlvbiBkcigpe2xldCBBPVpBKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bmV3IFVSTCgiL3BpcGVsaW5lcyIsZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luKS5ocmVmKSxBfWZ1bmN0aW9uIHpBKCl7bGV0IEE9bXIoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT17fSksQX1hc3luYyBmdW5jdGlvbiBtbyhBLGUsdCl7bGV0IGk9QSxvPUE7aWYodHlwZW9mIEEhPSJzdHJpbmciJiYoaT1uZXcgVVJMKEEuaHJlZiksbz1pLmhyZWYpLEZlLmhhcyhvKSlyZXR1cm4gRmUuZ2V0KG8pO3tsZXQgcj1hd2FpdCBJcihBLGU/LnRvU3RyaW5nKCk/P2RyKCksdD8/ekEoKSk7cmV0dXJuIEZlLnNldChvLHIpLHJ9fWFzeW5jIGZ1bmN0aW9uIHlvKEEsZSx0LGksbyl7aWYoIWF3YWl0IGdyKCkpe2xldCB1PSJXZWJBc3NlbWJseSBTSU1EIHN1cHBvcnQgaXMgcmVxdWlyZWQgLS0gcGxlYXNlIHVwZGF0ZSB5b3VyIGJyb3dzZXIuIjt0aHJvdyBhbGVydCh1KSxuZXcgRXJyb3IodSl9bGV0IHI9bz8ud2ViV29ya2VyPz9udWxsO2lmKHI9PT0hMSl7bGV0IHU9YXdhaXQgbW8oQS50b1N0cmluZygpLG8/LnBpcGVsaW5lQmFzZVVybCxvPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz96QSgpKTtyZXR1cm4gbHIodSxlLHQsaSl9bGV0IGE9cixDPW8/LnBpcGVsaW5lV29ya2VyVXJsPz9jbygpLHA9dHlwZW9mIEMhPSJzdHJpbmciJiZ0eXBlb2YgQz8uaHJlZjwidSI/Qy5ocmVmOkMse3dvcmtlclByb3h5Omcsd29ya2VyOm59PWF3YWl0IG9yKGEscCxvPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz96QSgpKTthPW47bGV0IEk9W107aSE9bnVsbCYmaS5sZW5ndGg+MCYmaS5mb3JFYWNoKGZ1bmN0aW9uKHUpe2lmKHUudHlwZT09PVEuQmluYXJ5U3RyZWFtKXtsZXQgdz11LmRhdGEuZGF0YTtJLnB1c2godyl9ZWxzZSBpZih1LnR5cGU9PT1RLkJpbmFyeUZpbGUpe2xldCB3PXUuZGF0YS5kYXRhO0kucHVzaCh3KX1lbHNlIGlmKHUudHlwZT09PVEuSW1hZ2Upe2xldCB3PXUuZGF0YTt3LmRhdGEhPT1udWxsJiZJLnB1c2goLi4udXIodykpfWVsc2UgaWYodS50eXBlPT09US5NZXNoKXtsZXQgdz11LmRhdGE7SS5wdXNoKC4uLmZyKHcpKX1lbHNlIGlmKHUudHlwZT09PVEuUG9seURhdGEpe2xldCB3PXUuZGF0YTtJLnB1c2goLi4uY3IodykpfX0pO2xldCBsPW8/LnBpcGVsaW5lQmFzZVVybD8/ZHIoKSxzPXR5cGVvZiBsIT0ic3RyaW5nIiYmdHlwZW9mIGw/LmhyZWY8InUiP2wuaHJlZjpsLEI9aSE9bnVsbD9lZShpLHByKEksbz8ubm9Db3B5KSk6bnVsbCxmPWF3YWl0IGcucnVuUGlwZWxpbmUoQS50b1N0cmluZygpLHMsZSx0LEIsbz8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/ekEoKSk7cmV0dXJue3JldHVyblZhbHVlOmYucmV0dXJuVmFsdWUsc3Rkb3V0OmYuc3Rkb3V0LHN0ZGVycjpmLnN0ZGVycixvdXRwdXRzOmYub3V0cHV0cyx3ZWJXb3JrZXI6YX19dmFyIG09eW87dmFyIGhvPW51bGw7ZnVuY3Rpb24geXIoKXtyZXR1cm4gaG99dmFyIHdvPW5ldyBNYXAoW10pLG5BPXdvO3ZhciBEbz0iMS43LjAiLGhyPURvO3ZhciBrZSxTbz1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AaXRrLXdhc20vbWVzaC1pb0Ake2hyfS9kaXN0L3BpcGVsaW5lc2A7ZnVuY3Rpb24gWGcoQSl7a2U9QX1mdW5jdGlvbiBkKCl7aWYodHlwZW9mIGtlPCJ1IilyZXR1cm4ga2U7bGV0IEE9WkEoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6U299dmFyIFVlLFJvPW51bGw7ZnVuY3Rpb24gd3IoQSl7VWU9QX1mdW5jdGlvbiBjKCl7aWYodHlwZW9mIFVlPCJ1IilyZXR1cm4gVWU7bGV0IEE9VkEoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6Um99dmFyIGFBPW51bGw7YXN5bmMgZnVuY3Rpb24gRHIoKXtsZXQgQT1jKCksZT10eXBlb2YgQSE9InN0cmluZyImJnR5cGVvZiBBPy5ocmVmPCJ1Ij9BLmhyZWY6QTthQT1hd2FpdCB5QShlKX1mdW5jdGlvbiBpQihBKXthQT1BfWFzeW5jIGZ1bmN0aW9uIHkoKXtpZihhQSE9PW51bGwpcmV0dXJuIGFBLnRlcm1pbmF0ZWQmJmF3YWl0IERyKCksYUE7bGV0IEE9eXIoKTtyZXR1cm4gQSE9PW51bGw/QTooYXdhaXQgRHIoKSxhQSl9YXN5bmMgZnVuY3Rpb24gRm8oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5NZXNofV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBnPSJ2dGstcG9seS1kYXRhLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOkkscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkJ9PWF3YWl0IG0oZyxyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6SSxjb3VsZFJlYWQ6QlswXT8uZGF0YSxtZXNoOkJbMV0/LmRhdGF9fXZhciBiZT1Gbzthc3luYyBmdW5jdGlvbiBrbyhBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBnPSJ2dGstcG9seS1kYXRhLXdyaXRlLW1lc2giLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscixpLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRXcml0ZTpCWzBdPy5kYXRhLHNlcmlhbGl6ZWRNZXNoOkJbMV0/LmRhdGF9fXZhciBOZT1rbzthc3luYyBmdW5jdGlvbiBVbyhBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLk1lc2h9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IGc9Im9iai1yZWFkLW1lc2giLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRSZWFkOkJbMF0/LmRhdGEsbWVzaDpCWzFdPy5kYXRhfX12YXIgR2U9VW87YXN5bmMgZnVuY3Rpb24gYm8oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5NZXNoLGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgZz0ib2JqLXdyaXRlLW1lc2giLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscixpLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRXcml0ZTpCWzBdPy5kYXRhLHNlcmlhbGl6ZWRNZXNoOkJbMV0/LmRhdGF9fXZhciBNZT1ibzthc3luYyBmdW5jdGlvbiBObyhBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLk1lc2h9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IGc9InN0bC1yZWFkLW1lc2giLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRSZWFkOkJbMF0/LmRhdGEsbWVzaDpCWzFdPy5kYXRhfX12YXIgV2U9Tm87YXN5bmMgZnVuY3Rpb24gR28oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5NZXNoLGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgZz0ic3RsLXdyaXRlLW1lc2giLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscixpLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRXcml0ZTpCWzBdPy5kYXRhLHNlcmlhbGl6ZWRNZXNoOkJbMV0/LmRhdGF9fXZhciBQZT1Hbzthc3luYyBmdW5jdGlvbiBNbyhBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLk1lc2h9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IGc9Im9mZi1yZWFkLW1lc2giLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRSZWFkOkJbMF0/LmRhdGEsbWVzaDpCWzFdPy5kYXRhfX12YXIgT2U9TW87YXN5bmMgZnVuY3Rpb24gV28oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5NZXNoLGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgZz0ib2ZmLXdyaXRlLW1lc2giLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscixpLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRXcml0ZTpCWzBdPy5kYXRhLHNlcmlhbGl6ZWRNZXNoOkJbMV0/LmRhdGF9fXZhciBMZT1Xbzthc3luYyBmdW5jdGlvbiBQbyhBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLk1lc2h9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IGc9Im16My1yZWFkLW1lc2giLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRSZWFkOkJbMF0/LmRhdGEsbWVzaDpCWzFdPy5kYXRhfX12YXIgSmU9UG87YXN5bmMgZnVuY3Rpb24gT28oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5NZXNoLGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgZz0ibXozLXdyaXRlLW1lc2giLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscixpLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRXcml0ZTpCWzBdPy5kYXRhLHNlcmlhbGl6ZWRNZXNoOkJbMV0/LmRhdGF9fXZhciB4ZT1Pbzthc3luYyBmdW5jdGlvbiBMbyhBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLk1lc2h9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IGc9Indhc20tcmVhZC1tZXNoIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6SSxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6Qn09YXdhaXQgbShnLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpJLGNvdWxkUmVhZDpCWzBdPy5kYXRhLG1lc2g6QlsxXT8uZGF0YX19dmFyIFllPUxvO2FzeW5jIGZ1bmN0aW9uIEpvKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuTWVzaCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IGc9Indhc20td3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOkkscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkJ9PWF3YWl0IG0oZyxyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6SSxjb3VsZFdyaXRlOkJbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6QlsxXT8uZGF0YX19dmFyIEhlPUpvO2FzeW5jIGZ1bmN0aW9uIHhvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgZz0id2FzbS16c3RkLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOkkscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkJ9PWF3YWl0IG0oZyxyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6SSxjb3VsZFJlYWQ6QlswXT8uZGF0YSxtZXNoOkJbMV0/LmRhdGF9fXZhciBUZT14bzthc3luYyBmdW5jdGlvbiBZbyhBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBnPSJ3YXNtLXpzdGQtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOkkscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkJ9PWF3YWl0IG0oZyxyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6SSxjb3VsZFdyaXRlOkJbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6QlsxXT8uZGF0YX19dmFyIHFlPVlvO2FzeW5jIGZ1bmN0aW9uIEhvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgZz0ic3djLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOkkscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkJ9PWF3YWl0IG0oZyxyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6SSxjb3VsZFJlYWQ6QlswXT8uZGF0YSxtZXNoOkJbMV0/LmRhdGF9fXZhciBLZT1Ibzthc3luYyBmdW5jdGlvbiBUbyhBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBnPSJzd2Mtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOkkscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkJ9PWF3YWl0IG0oZyxyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6SSxjb3VsZFdyaXRlOkJbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6QlsxXT8uZGF0YX19dmFyIGplPVRvO2FzeW5jIGZ1bmN0aW9uIHFvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgZz0iYnl1LXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOkkscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkJ9PWF3YWl0IG0oZyxyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6SSxjb3VsZFJlYWQ6QlswXT8uZGF0YSxtZXNoOkJbMV0/LmRhdGF9fXZhciB2ZT1xbzthc3luYyBmdW5jdGlvbiBLbyhBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBnPSJieXUtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOkkscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkJ9PWF3YWl0IG0oZyxyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6SSxjb3VsZFdyaXRlOkJbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6QlsxXT8uZGF0YX19dmFyIFplPUtvO2FzeW5jIGZ1bmN0aW9uIGpvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgZz0iZnJlZS1zdXJmZXItYXNjaWktcmVhZC1tZXNoIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6SSxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6Qn09YXdhaXQgbShnLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpJLGNvdWxkUmVhZDpCWzBdPy5kYXRhLG1lc2g6QlsxXT8uZGF0YX19dmFyIFZlPWpvO2FzeW5jIGZ1bmN0aW9uIHZvKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuTWVzaCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IGc9ImZyZWUtc3VyZmVyLWFzY2lpLXdyaXRlLW1lc2giLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscixpLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRXcml0ZTpCWzBdPy5kYXRhLHNlcmlhbGl6ZWRNZXNoOkJbMV0/LmRhdGF9fXZhciB6ZT12bzthc3luYyBmdW5jdGlvbiBabyhBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLk1lc2h9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IGc9ImZyZWUtc3VyZmVyLWJpbmFyeS1yZWFkLW1lc2giLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRSZWFkOkJbMF0/LmRhdGEsbWVzaDpCWzFdPy5kYXRhfX12YXIgWGU9Wm87YXN5bmMgZnVuY3Rpb24gVm8oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5NZXNoLGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgZz0iZnJlZS1zdXJmZXItYmluYXJ5LXdyaXRlLW1lc2giLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscixpLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRXcml0ZTpCWzBdPy5kYXRhLHNlcmlhbGl6ZWRNZXNoOkJbMV0/LmRhdGF9fXZhciBfZT1Wbzt2YXIgem89bmV3IE1hcChbWyJ2dGsiLFtiZSxOZV1dLFsib2JqIixbR2UsTWVdXSxbInN0bCIsW1dlLFBlXV0sWyJvZmYiLFtPZSxMZV1dLFsibXozIixbSmUseGVdXSxbIndhc20iLFtZZSxIZV1dLFsid2FzbVpzdGQiLFtUZSxxZV1dLFsic3djIixbS2UsamVdXSxbImJ5dSIsW3ZlLFplXV0sWyJmcmVlU3VyZmVyQXNjaWkiLFtWZSx6ZV1dLFsiZnJlZVN1cmZlckJpbmFyeSIsW1hlLF9lXV1dKSxzQT16bzthc3luYyBmdW5jdGlvbiBYbyhBLGU9e30pe2xldCB0PUEudHlwZT8/IiIsaT1BLm5hbWU/P0EucGF0aD8/ImZpbGVOYW1lIixvPVkoaSkudG9Mb3dlckNhc2UoKSxyPWU/LndlYldvcmtlcixhPUE7aWYoQSBpbnN0YW5jZW9mIEJsb2Ipe2xldCBzPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTthPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHMpfX1sZXQgQz1udWxsO2lmKHQmJm5BLmhhcyh0KSlDPW5BLmdldCh0KTtlbHNlIGlmKHYuaGFzKG8pKUM9di5nZXQobyk7ZWxzZSBmb3IobGV0IHMgb2Ygc0EudmFsdWVzKCkpaWYoc1swXSE9PW51bGwpe2xldHt3ZWJXb3JrZXI6Qixjb3VsZFJlYWQ6ZixtZXNoOnV9PWF3YWl0IHNbMF0oe3BhdGg6YS5wYXRoLGRhdGE6YS5kYXRhLnNsaWNlKCl9LHtpbmZvcm1hdGlvbk9ubHk6ZS5pbmZvcm1hdGlvbk9ubHksd2ViV29ya2VyOnIsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKHI9QixmKXJldHVybnt3ZWJXb3JrZXI6cixtZXNoOnV9fWlmKCFDKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBJTyBmb3I6ICIraSk7bGV0IGc9c0EuZ2V0KEMpWzBdLHt3ZWJXb3JrZXI6bixjb3VsZFJlYWQ6SSxtZXNoOmx9PWF3YWl0IGcoYSx7aW5mb3JtYXRpb25Pbmx5OmUuaW5mb3JtYXRpb25Pbmx5LHdlYldvcmtlcjpyLG5vQ29weTplPy5ub0NvcHl9KTtpZihyPW4sIUkpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCByZWFkOiAiK2kpO3JldHVybnt3ZWJXb3JrZXI6cixtZXNoOmx9fXZhciBfbz1Ybzthc3luYyBmdW5jdGlvbiAkbyhBLGUsdD17fSl7bGV0IGk9QSxvPXQubWltZVR5cGUscj1ZKGUpLnRvTG93ZXJDYXNlKCksYT10LndlYldvcmtlcixDPW51bGw7aWYodHlwZW9mIG88InUiJiZuQS5oYXMobykpQz1uQS5nZXQobyk7ZWxzZSBpZih2LmhhcyhyKSlDPXYuZ2V0KHIpO2Vsc2UgZm9yKGxldCBCIG9mIHNBLnZhbHVlcygpKWlmKEJbMV0hPT1udWxsKXtsZXR7d2ViV29ya2VyOmYsY291bGRXcml0ZTp1LHNlcmlhbGl6ZWRNZXNoOnd9PWF3YWl0IEJbMV0oaSxlLHQpO2lmKGE9Zix1KXJldHVybnt3ZWJXb3JrZXI6YSxzZXJpYWxpemVkTWVzaDp3fX1pZighQyl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgSU8gZm9yOiAiK2UpO2xldCBnPXNBLmdldChDKVsxXSx7d2ViV29ya2VyOm4sY291bGRXcml0ZTpJLHNlcmlhbGl6ZWRNZXNoOmx9PWF3YWl0IGcoaSxlLHQpO2lmKGE9biwhSSl0aHJvdyBFcnJvcigiQ291bGQgbm90IHdyaXRlOiAiK2UpO3JldHVybnt3ZWJXb3JrZXI6YSxzZXJpYWxpemVkTWVzaDpsfX12YXIgQW49JG87dmFyIGVuPW5ldyBNYXAoW10pLElBPWVuO2FzeW5jIGZ1bmN0aW9uIHRuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuUG9pbnRTZXR9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IGc9InZ0ay1wb2x5LWRhdGEtcmVhZC1wb2ludC1zZXQiLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRSZWFkOkJbMF0/LmRhdGEscG9pbnRTZXQ6QlsxXT8uZGF0YX19dmFyICRlPXRuO2FzeW5jIGZ1bmN0aW9uIHJuKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuUG9pbnRTZXQsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBnPSJ2dGstcG9seS1kYXRhLXdyaXRlLXBvaW50LXNldCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOkkscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkJ9PWF3YWl0IG0oZyxyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6SSxjb3VsZFdyaXRlOkJbMF0/LmRhdGEsc2VyaWFsaXplZFBvaW50U2V0OkJbMV0/LmRhdGF9fXZhciBBdD1ybjthc3luYyBmdW5jdGlvbiBvbihBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLlBvaW50U2V0fV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBnPSJtejMtcmVhZC1wb2ludC1zZXQiLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRSZWFkOkJbMF0/LmRhdGEscG9pbnRTZXQ6QlsxXT8uZGF0YX19dmFyIGV0PW9uO2FzeW5jIGZ1bmN0aW9uIG5uKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuUG9pbnRTZXQsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBnPSJtejMtd3JpdGUtcG9pbnQtc2V0IixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6SSxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6Qn09YXdhaXQgbShnLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpJLGNvdWxkV3JpdGU6QlswXT8uZGF0YSxzZXJpYWxpemVkUG9pbnRTZXQ6QlsxXT8uZGF0YX19dmFyIHR0PW5uO2FzeW5jIGZ1bmN0aW9uIGFuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuUG9pbnRTZXR9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IGc9Im9iai1yZWFkLXBvaW50LXNldCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOkkscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkJ9PWF3YWl0IG0oZyxyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6SSxjb3VsZFJlYWQ6QlswXT8uZGF0YSxwb2ludFNldDpCWzFdPy5kYXRhfX12YXIgcnQ9YW47YXN5bmMgZnVuY3Rpb24gc24oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5Qb2ludFNldCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IGc9Im9iai13cml0ZS1wb2ludC1zZXQiLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscixpLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRXcml0ZTpCWzBdPy5kYXRhLHNlcmlhbGl6ZWRQb2ludFNldDpCWzFdPy5kYXRhfX12YXIgaXQ9c247YXN5bmMgZnVuY3Rpb24gSW4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5Qb2ludFNldH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgZz0ib2ZmLXJlYWQtcG9pbnQtc2V0IixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6SSxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6Qn09YXdhaXQgbShnLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpJLGNvdWxkUmVhZDpCWzBdPy5kYXRhLHBvaW50U2V0OkJbMV0/LmRhdGF9fXZhciBvdD1Jbjthc3luYyBmdW5jdGlvbiBnbihBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLlBvaW50U2V0LGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgZz0ib2ZmLXdyaXRlLXBvaW50LXNldCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOkkscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkJ9PWF3YWl0IG0oZyxyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6SSxjb3VsZFdyaXRlOkJbMF0/LmRhdGEsc2VyaWFsaXplZFBvaW50U2V0OkJbMV0/LmRhdGF9fXZhciBudD1nbjthc3luYyBmdW5jdGlvbiBCbihBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLlBvaW50U2V0fV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBnPSJ3YXNtLXJlYWQtcG9pbnQtc2V0IixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6SSxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6Qn09YXdhaXQgbShnLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpJLGNvdWxkUmVhZDpCWzBdPy5kYXRhLHBvaW50U2V0OkJbMV0/LmRhdGF9fXZhciBhdD1Cbjthc3luYyBmdW5jdGlvbiBDbihBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLlBvaW50U2V0LGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgZz0id2FzbS13cml0ZS1wb2ludC1zZXQiLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpJLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpCfT1hd2FpdCBtKGcscixpLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOkksY291bGRXcml0ZTpCWzBdPy5kYXRhLHNlcmlhbGl6ZWRQb2ludFNldDpCWzFdPy5kYXRhfX12YXIgc3Q9Q247YXN5bmMgZnVuY3Rpb24gUW4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5Qb2ludFNldH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgZz0id2FzbS16c3RkLXJlYWQtcG9pbnQtc2V0IixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6SSxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6Qn09YXdhaXQgbShnLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpJLGNvdWxkUmVhZDpCWzBdPy5kYXRhLHBvaW50U2V0OkJbMV0/LmRhdGF9fXZhciBJdD1Rbjthc3luYyBmdW5jdGlvbiBFbihBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLlBvaW50U2V0LGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgZz0id2FzbS16c3RkLXdyaXRlLXBvaW50LXNldCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOkkscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkJ9PWF3YWl0IG0oZyxyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6SSxjb3VsZFdyaXRlOkJbMF0/LmRhdGEsc2VyaWFsaXplZFBvaW50U2V0OkJbMV0/LmRhdGF9fXZhciBndD1Fbjt2YXIgbG49bmV3IE1hcChbWyJ2dGsiLFskZSxBdF1dLFsibXozIixbZXQsdHRdXSxbIm9iaiIsW3J0LGl0XV0sWyJvZmYiLFtvdCxudF1dLFsid2FzbSIsW2F0LHN0XV0sWyJ3YXNtLXpzdCIsW0l0LGd0XV1dKSxnQT1sbjthc3luYyBmdW5jdGlvbiBwbihBLGU9e30pe2xldCB0PUEudHlwZT8/IiIsaT1BLm5hbWU/P0EucGF0aD8/ImZpbGVOYW1lIixvPVkoaSkudG9Mb3dlckNhc2UoKSxyPWU/LndlYldvcmtlcixhPUE7aWYoQSBpbnN0YW5jZW9mIEJsb2Ipe2xldCBzPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTthPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHMpfX1sZXQgQz1udWxsO2lmKHQmJklBLmhhcyh0KSlDPUlBLmdldCh0KTtlbHNlIGlmKFouaGFzKG8pKUM9Wi5nZXQobyk7ZWxzZSBmb3IobGV0IHMgb2YgZ0EudmFsdWVzKCkpaWYoc1swXSE9PW51bGwpe2xldHt3ZWJXb3JrZXI6Qixjb3VsZFJlYWQ6Zixwb2ludFNldDp1fT1hd2FpdCBzWzBdKHtwYXRoOmEucGF0aCxkYXRhOmEuZGF0YS5zbGljZSgpfSx7aW5mb3JtYXRpb25Pbmx5OmUuaW5mb3JtYXRpb25Pbmx5LHdlYldvcmtlcjpyLG5vQ29weTplPy5ub0NvcHl9KTtpZihyPUIsZilyZXR1cm57d2ViV29ya2VyOnIscG9pbnRTZXQ6dX19aWYoIUMpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIElPIGZvcjogIitpKTtsZXQgZz1nQS5nZXQoQylbMF0se3dlYldvcmtlcjpuLGNvdWxkUmVhZDpJLHBvaW50U2V0Omx9PWF3YWl0IGcoYSx7aW5mb3JtYXRpb25Pbmx5OmUuaW5mb3JtYXRpb25Pbmx5LHdlYldvcmtlcjpyLG5vQ29weTplPy5ub0NvcHl9KTtpZihyPW4sIUkpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCByZWFkOiAiK2kpO3JldHVybnt3ZWJXb3JrZXI6cixwb2ludFNldDpsfX12YXIgdW49cG47YXN5bmMgZnVuY3Rpb24gZm4oQSxlLHQ9e30pe2xldCBpPUEsbz10Lm1pbWVUeXBlLHI9WShlKS50b0xvd2VyQ2FzZSgpLGE9dC53ZWJXb3JrZXIsQz1udWxsO2lmKHR5cGVvZiBvPCJ1IiYmSUEuaGFzKG8pKUM9SUEuZ2V0KG8pO2Vsc2UgaWYoWi5oYXMocikpQz1aLmdldChyKTtlbHNlIGZvcihsZXQgQiBvZiBnQS52YWx1ZXMoKSlpZihCWzFdIT09bnVsbCl7bGV0e3dlYldvcmtlcjpmLGNvdWxkV3JpdGU6dSxzZXJpYWxpemVkUG9pbnRTZXQ6d309YXdhaXQgQlsxXShpLGUsdCk7aWYoYT1mLHUpcmV0dXJue3dlYldvcmtlcjphLHNlcmlhbGl6ZWRQb2ludFNldDp3fX1pZighQyl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgSU8gZm9yOiAiK2UpO2xldCBnPWdBLmdldChDKVsxXSx7d2ViV29ya2VyOm4sY291bGRXcml0ZTpJLHNlcmlhbGl6ZWRQb2ludFNldDpsfT1hd2FpdCBnKGksZSx0KTtpZihhPW4sIUkpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCB3cml0ZTogIitlKTtyZXR1cm57d2ViV29ya2VyOmEsc2VyaWFsaXplZFBvaW50U2V0Omx9fXZhciBjbj1mbjt2YXIgU3I9J2RhdGE6dGV4dC9qYXZhc2NyaXB0O2NoYXJzZXQ9dXRmLTgsdmFyIERlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZGU9KEEsdCk9Pntmb3IodmFyIGUgaW4gdClEZShBLGUse2dldDp0W2VdLGVudW1lcmFibGU6ITB9KX07dmFyIEV0PVN5bWJvbCgiQ29tbGluay5wcm94eSIpLGhlPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLHllPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxZQT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksUUE9U3ltYm9sKCJDb21saW5rLnRocm93biIpLGN0PUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLG1lPXtjYW5IYW5kbGU6QT0+Y3QoQSkmJkFbRXRdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6dCxwb3J0MjplfT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIGxBKEEsdCksW2UsW2VdXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxGZShBKX19LHdlPXtjYW5IYW5kbGU6QT0+Y3QoQSkmJlFBIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IHQ7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj90PXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06dD17aXNFcnJvcjohMSx2YWx1ZTpBfSxbdCxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSxmdD1uZXcgTWFwKFtbInByb3h5IixtZV0sWyJ0aHJvdyIsd2VdXSk7ZnVuY3Rpb24gcGUoQSx0KXtmb3IobGV0IGUgb2YgQSlpZih0PT09ZXx8ZT09PSIqInx8ZSBpbnN0YW5jZW9mIFJlZ0V4cCYmZS50ZXN0KHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGxBKEEsdD1nbG9iYWxUaGlzLGU9WyIqIl0pe3QuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gSShyKXtpZighcnx8IXIuZGF0YSlyZXR1cm47aWYoIXBlKGUsci5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luIFwnJHtyLm9yaWdpbn1cJyBmb3IgY29tbGluayBwcm94eWApO3JldHVybn1sZXR7aWQ6byx0eXBlOmcscGF0aDpDfT1PYmplY3QuYXNzaWduKHtwYXRoOltdfSxyLmRhdGEpLEU9KHIuZGF0YS5hcmd1bWVudExpc3R8fFtdKS5tYXAoTyksYTt0cnl7bGV0IHM9Qy5zbGljZSgwLC0xKS5yZWR1Y2UoKGYsQik9PmZbQl0sQSksbj1DLnJlZHVjZSgoZixCKT0+ZltCXSxBKTtzd2l0Y2goZyl7Y2FzZSJHRVQiOmE9bjticmVhaztjYXNlIlNFVCI6c1tDLnNsaWNlKC0xKVswXV09TyhyLmRhdGEudmFsdWUpLGE9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6YT1uLmFwcGx5KHMsRSk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgZj1uZXcgbiguLi5FKTthPUdlKGYpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6Zixwb3J0MjpCfT1uZXcgTWVzc2FnZUNoYW5uZWw7bEEoQSxCKSxhPU1BKGYsW2ZdKX1icmVhaztjYXNlIlJFTEVBU0UiOmE9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChzKXthPXt2YWx1ZTpzLFtRQV06MH19UHJvbWlzZS5yZXNvbHZlKGEpLmNhdGNoKHM9Pih7dmFsdWU6cyxbUUFdOjB9KSkudGhlbihzPT57bGV0W24sZl09ZkEocyk7dC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2lkOm99KSxmKSxnPT09IlJFTEVBU0UiJiYodC5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixJKSxsdCh0KSxZQSBpbiBBJiZ0eXBlb2YgQVtZQV09PSJmdW5jdGlvbiImJkFbWUFdKCkpfSkuY2F0Y2gocz0+e2xldFtuLGZdPWZBKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxbUUFdOjB9KTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxuKSx7aWQ6b30pLGYpfSl9KSx0LnN0YXJ0JiZ0LnN0YXJ0KCl9ZnVuY3Rpb24gU2UoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gbHQoQSl7U2UoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBGZShBLHQpe3JldHVybiBxQShBLFtdLHQpfWZ1bmN0aW9uIGFBKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiB1dChBKXtyZXR1cm4gVyhBLHt0eXBlOiJSRUxFQVNFIn0pLnRoZW4oKCk9PntsdChBKX0pfXZhciBFQT1uZXcgV2Vha01hcCxjQT0iRmluYWxpemF0aW9uUmVnaXN0cnkiaW4gZ2xvYmFsVGhpcyYmbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KEE9PntsZXQgdD0oRUEuZ2V0KEEpfHwwKS0xO0VBLnNldChBLHQpLHQ9PT0wJiZ1dChBKX0pO2Z1bmN0aW9uIFJlKEEsdCl7bGV0IGU9KEVBLmdldCh0KXx8MCkrMTtFQS5zZXQodCxlKSxjQSYmY0EucmVnaXN0ZXIoQSx0LEEpfWZ1bmN0aW9uIE5lKEEpe2NBJiZjQS51bnJlZ2lzdGVyKEEpfWZ1bmN0aW9uIHFBKEEsdD1bXSxlPWZ1bmN0aW9uKCl7fSl7bGV0IEk9ITEscj1uZXcgUHJveHkoZSx7Z2V0KG8sZyl7aWYoYUEoSSksZz09PXllKXJldHVybigpPT57TmUociksdXQoQSksST0hMH07aWYoZz09PSJ0aGVuIil7aWYodC5sZW5ndGg9PT0wKXJldHVybnt0aGVuOigpPT5yfTtsZXQgQz1XKEEse3R5cGU6IkdFVCIscGF0aDp0Lm1hcChFPT5FLnRvU3RyaW5nKCkpfSkudGhlbihPKTtyZXR1cm4gQy50aGVuLmJpbmQoQyl9cmV0dXJuIHFBKEEsWy4uLnQsZ10pfSxzZXQobyxnLEMpe2FBKEkpO2xldFtFLGFdPWZBKEMpO3JldHVybiBXKEEse3R5cGU6IlNFVCIscGF0aDpbLi4udCxnXS5tYXAocz0+cy50b1N0cmluZygpKSx2YWx1ZTpFfSxhKS50aGVuKE8pfSxhcHBseShvLGcsQyl7YUEoSSk7bGV0IEU9dFt0Lmxlbmd0aC0xXTtpZihFPT09aGUpcmV0dXJuIFcoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbihPKTtpZihFPT09ImJpbmQiKXJldHVybiBxQShBLHQuc2xpY2UoMCwtMSkpO2xldFthLHNdPVF0KEMpO3JldHVybiBXKEEse3R5cGU6IkFQUExZIixwYXRoOnQubWFwKG49Pm4udG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OmF9LHMpLnRoZW4oTyl9LGNvbnN0cnVjdChvLGcpe2FBKEkpO2xldFtDLEVdPVF0KGcpO3JldHVybiBXKEEse3R5cGU6IkNPTlNUUlVDVCIscGF0aDp0Lm1hcChhPT5hLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpDfSxFKS50aGVuKE8pfX0pO3JldHVybiBSZShyLEEpLHJ9ZnVuY3Rpb24gVWUoQSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sQSl9ZnVuY3Rpb24gUXQoQSl7bGV0IHQ9QS5tYXAoZkEpO3JldHVyblt0Lm1hcChlPT5lWzBdKSxVZSh0Lm1hcChlPT5lWzFdKSldfXZhciBEdD1uZXcgV2Vha01hcDtmdW5jdGlvbiBNQShBLHQpe3JldHVybiBEdC5zZXQoQSx0KSxBfWZ1bmN0aW9uIEdlKEEpe3JldHVybiBPYmplY3QuYXNzaWduKEEse1tFdF06ITB9KX1mdW5jdGlvbiBmQShBKXtmb3IobGV0W3QsZV1vZiBmdClpZihlLmNhbkhhbmRsZShBKSl7bGV0W0kscl09ZS5zZXJpYWxpemUoQSk7cmV0dXJuW3t0eXBlOiJIQU5ETEVSIixuYW1lOnQsdmFsdWU6SX0scl19cmV0dXJuW3t0eXBlOiJSQVciLHZhbHVlOkF9LER0LmdldChBKXx8W11dfWZ1bmN0aW9uIE8oQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4gZnQuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiBXKEEsdCxlKXtyZXR1cm4gbmV3IFByb21pc2UoST0+e2xldCByPWtlKCk7QS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBvKGcpeyFnLmRhdGF8fCFnLmRhdGEuaWR8fGcuZGF0YS5pZCE9PXJ8fChBLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG8pLEkoZy5kYXRhKSl9KSxBLnN0YXJ0JiZBLnN0YXJ0KCksQS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHtpZDpyfSx0KSxlKX0pfWZ1bmN0aW9uIGtlKCl7cmV0dXJuIG5ldyBBcnJheSg0KS5maWxsKDApLm1hcCgoKT0+TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oIi0iKX1mdW5jdGlvbiB2KEEsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkodCxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6TGV9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOlRBfT1PYmplY3QsREE9KEE9PnQ9PntsZXQgZT1MZS5jYWxsKHQpO3JldHVybiBBW2VdfHwoQVtlXT1lLnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksRz1BPT4oQT1BLnRvTG93ZXJDYXNlKCksdD0+REEodCk9PT1BKSxkQT1BPT50PT50eXBlb2YgdD09PUEse2lzQXJyYXk6an09QXJyYXksJD1kQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gYmUoQSl7cmV0dXJuIEEhPT1udWxsJiYhJChBKSYmQS5jb25zdHJ1Y3RvciE9PW51bGwmJiEkKEEuY29uc3RydWN0b3IpJiZVKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciB5dD1HKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIEplKEEpe2xldCB0O3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/dD1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6dD1BJiZBLmJ1ZmZlciYmeXQoQS5idWZmZXIpLHR9dmFyIEhlPWRBKCJzdHJpbmciKSxVPWRBKCJmdW5jdGlvbiIpLG10PWRBKCJudW1iZXIiKSxoQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLFllPUE9PkE9PT0hMHx8QT09PSExLHVBPUE9PntpZihEQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCB0PVRBKEEpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpJiYhKFN5bWJvbC50b1N0cmluZ1RhZyBpbiBBKSYmIShTeW1ib2wuaXRlcmF0b3IgaW4gQSl9LHFlPUcoIkRhdGUiKSxNZT1HKCJGaWxlIiksS2U9RygiQmxvYiIpLFRlPUcoIkZpbGVMaXN0IiksT2U9QT0+aEEoQSkmJlUoQS5waXBlKSx4ZT1BPT57bGV0IHQ7cmV0dXJuIEEmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJkEgaW5zdGFuY2VvZiBGb3JtRGF0YXx8VShBLmFwcGVuZCkmJigodD1EQShBKSk9PT0iZm9ybWRhdGEifHx0PT09Im9iamVjdCImJlUoQS50b1N0cmluZykmJkEudG9TdHJpbmcoKT09PSJbb2JqZWN0IEZvcm1EYXRhXSIpKX0sUGU9RygiVVJMU2VhcmNoUGFyYW1zIiksW1dlLGplLFplLFZlXT1bIlJlYWRhYmxlU3RyZWFtIiwiUmVxdWVzdCIsIlJlc3BvbnNlIiwiSGVhZGVycyJdLm1hcChHKSxYZT1BPT5BLnRyaW0/QS50cmltKCk6QS5yZXBsYWNlKC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZywiIik7ZnVuY3Rpb24gQUEoQSx0LHthbGxPd25LZXlzOmU9ITF9PXt9KXtpZihBPT09bnVsbHx8dHlwZW9mIEE+InUiKXJldHVybjtsZXQgSSxyO2lmKHR5cGVvZiBBIT0ib2JqZWN0IiYmKEE9W0FdKSxqKEEpKWZvcihJPTAscj1BLmxlbmd0aDtJPHI7SSsrKXQuY2FsbChudWxsLEFbSV0sSSxBKTtlbHNle2xldCBvPWU/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSk6T2JqZWN0LmtleXMoQSksZz1vLmxlbmd0aCxDO2ZvcihJPTA7STxnO0krKylDPW9bSV0sdC5jYWxsKG51bGwsQVtDXSxDLEEpfX1mdW5jdGlvbiB3dChBLHQpe3Q9dC50b0xvd2VyQ2FzZSgpO2xldCBlPU9iamVjdC5rZXlzKEEpLEk9ZS5sZW5ndGgscjtmb3IoO0ktLSA+MDspaWYocj1lW0ldLHQ9PT1yLnRvTG93ZXJDYXNlKCkpcmV0dXJuIHI7cmV0dXJuIG51bGx9dmFyIHg9dHlwZW9mIGdsb2JhbFRoaXM8InUiP2dsb2JhbFRoaXM6dHlwZW9mIHNlbGY8InUiP3NlbGY6dHlwZW9mIHdpbmRvdzwidSI/d2luZG93Omdsb2JhbCxwdD1BPT4hJChBKSYmQSE9PXg7ZnVuY3Rpb24gS0EoKXtsZXR7Y2FzZWxlc3M6QX09cHQodGhpcykmJnRoaXN8fHt9LHQ9e30sZT0oSSxyKT0+e2xldCBvPUEmJnd0KHQscil8fHI7dUEodFtvXSkmJnVBKEkpP3Rbb109S0EodFtvXSxJKTp1QShJKT90W29dPUtBKHt9LEkpOmooSSk/dFtvXT1JLnNsaWNlKCk6dFtvXT1JfTtmb3IobGV0IEk9MCxyPWFyZ3VtZW50cy5sZW5ndGg7STxyO0krKylhcmd1bWVudHNbSV0mJkFBKGFyZ3VtZW50c1tJXSxlKTtyZXR1cm4gdH12YXIgX2U9KEEsdCxlLHthbGxPd25LZXlzOkl9PXt9KT0+KEFBKHQsKHIsbyk9PntlJiZVKHIpP0Fbb109dihyLGUpOkFbb109cn0se2FsbE93bktleXM6SX0pLEEpLHplPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksdmU9KEEsdCxlLEkpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0LnByb3RvdHlwZSxJKSxBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse3ZhbHVlOnQucHJvdG90eXBlfSksZSYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSxlKX0sJGU9KEEsdCxlLEkpPT57bGV0IHIsbyxnLEM9e307aWYodD10fHx7fSxBPT1udWxsKXJldHVybiB0O2Rve2ZvcihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLG89ci5sZW5ndGg7by0tID4wOylnPXJbb10sKCFJfHxJKGcsQSx0KSkmJiFDW2ddJiYodFtnXT1BW2ddLENbZ109ITApO0E9ZSE9PSExJiZUQShBKX13aGlsZShBJiYoIWV8fGUoQSx0KSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gdH0sQUk9KEEsdCxlKT0+e0E9U3RyaW5nKEEpLChlPT09dm9pZCAwfHxlPkEubGVuZ3RoKSYmKGU9QS5sZW5ndGgpLGUtPXQubGVuZ3RoO2xldCBJPUEuaW5kZXhPZih0LGUpO3JldHVybiBJIT09LTEmJkk9PT1lfSx0ST1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYoaihBKSlyZXR1cm4gQTtsZXQgdD1BLmxlbmd0aDtpZighbXQodCkpcmV0dXJuIG51bGw7bGV0IGU9bmV3IEFycmF5KHQpO2Zvcig7dC0tID4wOyllW3RdPUFbdF07cmV0dXJuIGV9LGVJPShBPT50PT5BJiZ0IGluc3RhbmNlb2YgQSkodHlwZW9mIFVpbnQ4QXJyYXk8InUiJiZUQShVaW50OEFycmF5KSksSUk9KEEsdCk9PntsZXQgST0oQSYmQVtTeW1ib2wuaXRlcmF0b3JdKS5jYWxsKEEpLHI7Zm9yKDsocj1JLm5leHQoKSkmJiFyLmRvbmU7KXtsZXQgbz1yLnZhbHVlO3QuY2FsbChBLG9bMF0sb1sxXSl9fSxyST0oQSx0KT0+e2xldCBlLEk9W107Zm9yKDsoZT1BLmV4ZWModCkpIT09bnVsbDspSS5wdXNoKGUpO3JldHVybiBJfSxvST1HKCJIVE1MRm9ybUVsZW1lbnQiKSxnST1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXFxzXShbYS16XFxkXSkoXFx3KikvZyxmdW5jdGlvbihlLEkscil7cmV0dXJuIEkudG9VcHBlckNhc2UoKStyfSksaHQ9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4odCxlKT0+QS5jYWxsKHQsZSkpKE9iamVjdC5wcm90b3R5cGUpLGlJPUcoIlJlZ0V4cCIpLFN0PShBLHQpPT57bGV0IGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSksST17fTtBQShlLChyLG8pPT57bGV0IGc7KGc9dChyLG8sQSkpIT09ITEmJihJW29dPWd8fHIpfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxJKX0sc0k9QT0+e1N0KEEsKHQsZSk9PntpZihVKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YoZSkhPT0tMSlyZXR1cm4hMTtsZXQgST1BW2VdO2lmKFUoSSkpe2lmKHQuZW51bWVyYWJsZT0hMSwid3JpdGFibGUiaW4gdCl7dC53cml0YWJsZT0hMTtyZXR1cm59dC5zZXR8fCh0LnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCBcJyIrZSsiXCciKX0pfX0pfSxuST0oQSx0KT0+e2xldCBlPXt9LEk9cj0+e3IuZm9yRWFjaChvPT57ZVtvXT0hMH0pfTtyZXR1cm4gaihBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KHQpKSxlfSxDST0oKT0+e30sQkk9KEEsdCk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOnQ7ZnVuY3Rpb24gYUkoQSl7cmV0dXJuISEoQSYmVShBLmFwcGVuZCkmJkFbU3ltYm9sLnRvU3RyaW5nVGFnXT09PSJGb3JtRGF0YSImJkFbU3ltYm9sLml0ZXJhdG9yXSl9dmFyIFFJPUE9PntsZXQgdD1uZXcgQXJyYXkoMTApLGU9KEkscik9PntpZihoQShJKSl7aWYodC5pbmRleE9mKEkpPj0wKXJldHVybjtpZighKCJ0b0pTT04iaW4gSSkpe3Rbcl09STtsZXQgbz1qKEkpP1tdOnt9O3JldHVybiBBQShJLChnLEMpPT57bGV0IEU9ZShnLHIrMSk7ISQoRSkmJihvW0NdPUUpfSksdFtyXT12b2lkIDAsb319cmV0dXJuIEl9O3JldHVybiBlKEEsMCl9LEVJPUcoIkFzeW5jRnVuY3Rpb24iKSxjST1BPT5BJiYoaEEoQSl8fFUoQSkpJiZVKEEudGhlbikmJlUoQS5jYXRjaCksRnQ9KChBLHQpPT5BP3NldEltbWVkaWF0ZTp0PygoZSxJKT0+KHguYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6cixkYXRhOm99KT0+e3I9PT14JiZvPT09ZSYmSS5sZW5ndGgmJkkuc2hpZnQoKSgpfSwhMSkscj0+e0kucHVzaChyKSx4LnBvc3RNZXNzYWdlKGUsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOmU9PnNldFRpbWVvdXQoZSkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsVSh4LnBvc3RNZXNzYWdlKSksZkk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKHgpOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8RnQsaT17aXNBcnJheTpqLGlzQXJyYXlCdWZmZXI6eXQsaXNCdWZmZXI6YmUsaXNGb3JtRGF0YTp4ZSxpc0FycmF5QnVmZmVyVmlldzpKZSxpc1N0cmluZzpIZSxpc051bWJlcjptdCxpc0Jvb2xlYW46WWUsaXNPYmplY3Q6aEEsaXNQbGFpbk9iamVjdDp1QSxpc1JlYWRhYmxlU3RyZWFtOldlLGlzUmVxdWVzdDpqZSxpc1Jlc3BvbnNlOlplLGlzSGVhZGVyczpWZSxpc1VuZGVmaW5lZDokLGlzRGF0ZTpxZSxpc0ZpbGU6TWUsaXNCbG9iOktlLGlzUmVnRXhwOmlJLGlzRnVuY3Rpb246VSxpc1N0cmVhbTpPZSxpc1VSTFNlYXJjaFBhcmFtczpQZSxpc1R5cGVkQXJyYXk6ZUksaXNGaWxlTGlzdDpUZSxmb3JFYWNoOkFBLG1lcmdlOktBLGV4dGVuZDpfZSx0cmltOlhlLHN0cmlwQk9NOnplLGluaGVyaXRzOnZlLHRvRmxhdE9iamVjdDokZSxraW5kT2Y6REEsa2luZE9mVGVzdDpHLGVuZHNXaXRoOkFJLHRvQXJyYXk6dEksZm9yRWFjaEVudHJ5OklJLG1hdGNoQWxsOnJJLGlzSFRNTEZvcm06b0ksaGFzT3duUHJvcGVydHk6aHQsaGFzT3duUHJvcDpodCxyZWR1Y2VEZXNjcmlwdG9yczpTdCxmcmVlemVNZXRob2RzOnNJLHRvT2JqZWN0U2V0Om5JLHRvQ2FtZWxDYXNlOmdJLG5vb3A6Q0ksdG9GaW5pdGVOdW1iZXI6QkksZmluZEtleTp3dCxnbG9iYWw6eCxpc0NvbnRleHREZWZpbmVkOnB0LGlzU3BlY0NvbXBsaWFudEZvcm06YUksdG9KU09OT2JqZWN0OlFJLGlzQXN5bmNGbjpFSSxpc1RoZW5hYmxlOmNJLHNldEltbWVkaWF0ZTpGdCxhc2FwOmZJfTtmdW5jdGlvbiBaKEEsdCxlLEkscil7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2ssdGhpcy5tZXNzYWdlPUEsdGhpcy5uYW1lPSJBeGlvc0Vycm9yIix0JiYodGhpcy5jb2RlPXQpLGUmJih0aGlzLmNvbmZpZz1lKSxJJiYodGhpcy5yZXF1ZXN0PUkpLHImJih0aGlzLnJlc3BvbnNlPXIsdGhpcy5zdGF0dXM9ci5zdGF0dXM/ci5zdGF0dXM6bnVsbCl9aS5pbmhlcml0cyhaLEVycm9yLHt0b0pTT046ZnVuY3Rpb24oKXtyZXR1cm57bWVzc2FnZTp0aGlzLm1lc3NhZ2UsbmFtZTp0aGlzLm5hbWUsZGVzY3JpcHRpb246dGhpcy5kZXNjcmlwdGlvbixudW1iZXI6dGhpcy5udW1iZXIsZmlsZU5hbWU6dGhpcy5maWxlTmFtZSxsaW5lTnVtYmVyOnRoaXMubGluZU51bWJlcixjb2x1bW5OdW1iZXI6dGhpcy5jb2x1bW5OdW1iZXIsc3RhY2s6dGhpcy5zdGFjayxjb25maWc6aS50b0pTT05PYmplY3QodGhpcy5jb25maWcpLGNvZGU6dGhpcy5jb2RlLHN0YXR1czp0aGlzLnN0YXR1c319fSk7dmFyIFJ0PVoucHJvdG90eXBlLE50PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e050W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFosTnQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShSdCwiaXNBeGlvc0Vycm9yIix7dmFsdWU6ITB9KTtaLmZyb209KEEsdCxlLEkscixvKT0+e2xldCBnPU9iamVjdC5jcmVhdGUoUnQpO3JldHVybiBpLnRvRmxhdE9iamVjdChBLGcsZnVuY3Rpb24oRSl7cmV0dXJuIEUhPT1FcnJvci5wcm90b3R5cGV9LEM9PkMhPT0iaXNBeGlvc0Vycm9yIiksWi5jYWxsKGcsQS5tZXNzYWdlLHQsZSxJLHIpLGcuY2F1c2U9QSxnLm5hbWU9QS5uYW1lLG8mJk9iamVjdC5hc3NpZ24oZyxvKSxnfTt2YXIgdT1aO3ZhciB5QT1udWxsO2Z1bmN0aW9uIE9BKEEpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQSl8fGkuaXNBcnJheShBKX1mdW5jdGlvbiBHdChBKXtyZXR1cm4gaS5lbmRzV2l0aChBLCJbXSIpP0Euc2xpY2UoMCwtMik6QX1mdW5jdGlvbiBVdChBLHQsZSl7cmV0dXJuIEE/QS5jb25jYXQodCkubWFwKGZ1bmN0aW9uKHIsbyl7cmV0dXJuIHI9R3QociksIWUmJm8/IlsiK3IrIl0iOnJ9KS5qb2luKGU/Ii4iOiIiKTp0fWZ1bmN0aW9uIGxJKEEpe3JldHVybiBpLmlzQXJyYXkoQSkmJiFBLnNvbWUoT0EpfXZhciB1ST1pLnRvRmxhdE9iamVjdChpLHt9LG51bGwsZnVuY3Rpb24odCl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KHQpfSk7ZnVuY3Rpb24gREkoQSx0LGUpe2lmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdCIpO3Q9dHx8bmV3KHlBfHxGb3JtRGF0YSksZT1pLnRvRmxhdE9iamVjdChlLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsZnVuY3Rpb24obCxjKXtyZXR1cm4haS5pc1VuZGVmaW5lZChjW2xdKX0pO2xldCBJPWUubWV0YVRva2VucyxyPWUudmlzaXRvcnx8cyxvPWUuZG90cyxnPWUuaW5kZXhlcyxFPShlLkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYikmJmkuaXNTcGVjQ29tcGxpYW50Rm9ybSh0KTtpZighaS5pc0Z1bmN0aW9uKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gYShRKXtpZihRPT09bnVsbClyZXR1cm4iIjtpZihpLmlzRGF0ZShRKSlyZXR1cm4gUS50b0lTT1N0cmluZygpO2lmKCFFJiZpLmlzQmxvYihRKSl0aHJvdyBuZXcgdSgiQmxvYiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYSBCdWZmZXIgaW5zdGVhZC4iKTtyZXR1cm4gaS5pc0FycmF5QnVmZmVyKFEpfHxpLmlzVHlwZWRBcnJheShRKT9FJiZ0eXBlb2YgQmxvYj09ImZ1bmN0aW9uIj9uZXcgQmxvYihbUV0pOkJ1ZmZlci5mcm9tKFEpOlF9ZnVuY3Rpb24gcyhRLGwsYyl7bGV0IGQ9UTtpZihRJiYhYyYmdHlwZW9mIFE9PSJvYmplY3QiKXtpZihpLmVuZHNXaXRoKGwsInt9IikpbD1JP2w6bC5zbGljZSgwLC0yKSxRPUpTT04uc3RyaW5naWZ5KFEpO2Vsc2UgaWYoaS5pc0FycmF5KFEpJiZsSShRKXx8KGkuaXNGaWxlTGlzdChRKXx8aS5lbmRzV2l0aChsLCJbXSIpKSYmKGQ9aS50b0FycmF5KFEpKSlyZXR1cm4gbD1HdChsKSxkLmZvckVhY2goZnVuY3Rpb24obSxIKXshKGkuaXNVbmRlZmluZWQobSl8fG09PT1udWxsKSYmdC5hcHBlbmQoZz09PSEwP1V0KFtsXSxILG8pOmc9PT1udWxsP2w6bCsiW10iLGEobSkpfSksITF9cmV0dXJuIE9BKFEpPyEwOih0LmFwcGVuZChVdChjLGwsbyksYShRKSksITEpfWxldCBuPVtdLGY9T2JqZWN0LmFzc2lnbih1SSx7ZGVmYXVsdFZpc2l0b3I6cyxjb252ZXJ0VmFsdWU6YSxpc1Zpc2l0YWJsZTpPQX0pO2Z1bmN0aW9uIEIoUSxsKXtpZighaS5pc1VuZGVmaW5lZChRKSl7aWYobi5pbmRleE9mKFEpIT09LTEpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAiK2wuam9pbigiLiIpKTtuLnB1c2goUSksaS5mb3JFYWNoKFEsZnVuY3Rpb24oZCx5KXsoIShpLmlzVW5kZWZpbmVkKGQpfHxkPT09bnVsbCkmJnIuY2FsbCh0LGQsaS5pc1N0cmluZyh5KT95LnRyaW0oKTp5LGwsZikpPT09ITAmJkIoZCxsP2wuY29uY2F0KHkpOlt5XSl9KSxuLnBvcCgpfX1pZighaS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJkYXRhIG11c3QgYmUgYW4gb2JqZWN0Iik7cmV0dXJuIEIoQSksdH12YXIgTT1ESTtmdW5jdGlvbiBrdChBKXtsZXQgdD17IiEiOiIlMjUyMSIsIlwnIjoiJTI1MjciLCIoIjoiJTI1MjgiLCIpIjoiJTI1MjkiLCJ+IjoiJTI1N0UiLCIlMjUyMCI6IisiLCIlMjUwMCI6IlxcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyFcJygpfl18JTI1MjB8JTI1MDAvZyxmdW5jdGlvbihJKXtyZXR1cm4gdFtJXX0pfWZ1bmN0aW9uIEx0KEEsdCl7dGhpcy5fcGFpcnM9W10sQSYmTShBLHRoaXMsdCl9dmFyIGJ0PUx0LnByb3RvdHlwZTtidC5hcHBlbmQ9ZnVuY3Rpb24odCxlKXt0aGlzLl9wYWlycy5wdXNoKFt0LGVdKX07YnQudG9TdHJpbmc9ZnVuY3Rpb24odCl7bGV0IGU9dD9mdW5jdGlvbihJKXtyZXR1cm4gdC5jYWxsKHRoaXMsSSxrdCl9Omt0O3JldHVybiB0aGlzLl9wYWlycy5tYXAoZnVuY3Rpb24ocil7cmV0dXJuIGUoclswXSkrIj0iK2UoclsxXSl9LCIiKS5qb2luKCImIil9O3ZhciBtQT1MdDtmdW5jdGlvbiBkSShBKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoLyUyNTNBL2dpLCI6IikucmVwbGFjZSgvJTI1MjQvZywiJCIpLnJlcGxhY2UoLyUyNTJDL2dpLCIsIikucmVwbGFjZSgvJTI1MjAvZywiKyIpLnJlcGxhY2UoLyUyNTVCL2dpLCJbIikucmVwbGFjZSgvJTI1NUQvZ2ksIl0iKX1mdW5jdGlvbiB0QShBLHQsZSl7aWYoIXQpcmV0dXJuIEE7bGV0IEk9ZSYmZS5lbmNvZGV8fGRJO2kuaXNGdW5jdGlvbihlKSYmKGU9e3NlcmlhbGl6ZTplfSk7bGV0IHI9ZSYmZS5zZXJpYWxpemUsbztpZihyP289cih0LGUpOm89aS5pc1VSTFNlYXJjaFBhcmFtcyh0KT90LnRvU3RyaW5nKCk6bmV3IG1BKHQsZSkudG9TdHJpbmcoSSksbyl7bGV0IGc9QS5pbmRleE9mKCIlMjMiKTtnIT09LTEmJihBPUEuc2xpY2UoMCxnKSksQSs9KEEuaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikrb31yZXR1cm4gQX12YXIgeEE9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLmhhbmRsZXJzPVtdfXVzZSh0LGUsSSl7cmV0dXJuIHRoaXMuaGFuZGxlcnMucHVzaCh7ZnVsZmlsbGVkOnQscmVqZWN0ZWQ6ZSxzeW5jaHJvbm91czpJP0kuc3luY2hyb25vdXM6ITEscnVuV2hlbjpJP0kucnVuV2hlbjpudWxsfSksdGhpcy5oYW5kbGVycy5sZW5ndGgtMX1lamVjdCh0KXt0aGlzLmhhbmRsZXJzW3RdJiYodGhpcy5oYW5kbGVyc1t0XT1udWxsKX1jbGVhcigpe3RoaXMuaGFuZGxlcnMmJih0aGlzLmhhbmRsZXJzPVtdKX1mb3JFYWNoKHQpe2kuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKEkpe0khPT1udWxsJiZ0KEkpfSl9fSxQQT14QTt2YXIgd0E9e3NpbGVudEpTT05QYXJzaW5nOiEwLGZvcmNlZEpTT05QYXJzaW5nOiEwLGNsYXJpZnlUaW1lb3V0RXJyb3I6ITF9O3ZhciBKdD10eXBlb2YgVVJMU2VhcmNoUGFyYW1zPCJ1Ij9VUkxTZWFyY2hQYXJhbXM6bUE7dmFyIEh0PXR5cGVvZiBGb3JtRGF0YTwidSI/Rm9ybURhdGE6bnVsbDt2YXIgWXQ9dHlwZW9mIEJsb2I8InUiP0Jsb2I6bnVsbDt2YXIgcXQ9e2lzQnJvd3NlcjohMCxjbGFzc2VzOntVUkxTZWFyY2hQYXJhbXM6SnQsRm9ybURhdGE6SHQsQmxvYjpZdH0scHJvdG9jb2xzOlsiaHR0cCIsImh0dHBzIiwiZmlsZSIsImJsb2IiLCJ1cmwiLCJkYXRhIl19O3ZhciBaQT17fTtkZShaQSx7aGFzQnJvd3NlckVudjooKT0+akEsaGFzU3RhbmRhcmRCcm93c2VyRW52OigpPT5oSSxoYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnY6KCk9PnlJLG5hdmlnYXRvcjooKT0+V0Esb3JpZ2luOigpPT5tSX0pO3ZhciBqQT10eXBlb2Ygd2luZG93PCJ1IiYmdHlwZW9mIGRvY3VtZW50PCJ1IixXQT10eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmbmF2aWdhdG9yfHx2b2lkIDAsaEk9akEmJighV0F8fFsiUmVhY3ROYXRpdmUiLCJOYXRpdmVTY3JpcHQiLCJOUyJdLmluZGV4T2YoV0EucHJvZHVjdCk8MCkseUk9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlPCJ1IiYmc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZ0eXBlb2Ygc2VsZi5pbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLG1JPWpBJiZ3aW5kb3cubG9jYXRpb24uaHJlZnx8Imh0dHA6Ly9sb2NhbGhvc3QiO3ZhciBoPXsuLi5aQSwuLi5xdH07ZnVuY3Rpb24gVkEoQSx0KXtyZXR1cm4gTShBLG5ldyBoLmNsYXNzZXMuVVJMU2VhcmNoUGFyYW1zLE9iamVjdC5hc3NpZ24oe3Zpc2l0b3I6ZnVuY3Rpb24oZSxJLHIsbyl7cmV0dXJuIGguaXNOb2RlJiZpLmlzQnVmZmVyKGUpPyh0aGlzLmFwcGVuZChJLGUudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6by5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSx0KSl9ZnVuY3Rpb24gd0koQSl7cmV0dXJuIGkubWF0Y2hBbGwoL1xcdyt8XFxbKFxcdyopXS9nLEEpLm1hcCh0PT50WzBdPT09IltdIj8iIjp0WzFdfHx0WzBdKX1mdW5jdGlvbiBwSShBKXtsZXQgdD17fSxlPU9iamVjdC5rZXlzKEEpLEkscj1lLmxlbmd0aCxvO2ZvcihJPTA7STxyO0krKylvPWVbSV0sdFtvXT1BW29dO3JldHVybiB0fWZ1bmN0aW9uIFNJKEEpe2Z1bmN0aW9uIHQoZSxJLHIsbyl7bGV0IGc9ZVtvKytdO2lmKGc9PT0iX19wcm90b19fIilyZXR1cm4hMDtsZXQgQz1OdW1iZXIuaXNGaW5pdGUoK2cpLEU9bz49ZS5sZW5ndGg7cmV0dXJuIGc9IWcmJmkuaXNBcnJheShyKT9yLmxlbmd0aDpnLEU/KGkuaGFzT3duUHJvcChyLGcpP3JbZ109W3JbZ10sSV06cltnXT1JLCFDKTooKCFyW2ddfHwhaS5pc09iamVjdChyW2ddKSkmJihyW2ddPVtdKSx0KGUsSSxyW2ddLG8pJiZpLmlzQXJyYXkocltnXSkmJihyW2ddPXBJKHJbZ10pKSwhQyl9aWYoaS5pc0Zvcm1EYXRhKEEpJiZpLmlzRnVuY3Rpb24oQS5lbnRyaWVzKSl7bGV0IGU9e307cmV0dXJuIGkuZm9yRWFjaEVudHJ5KEEsKEkscik9Pnt0KHdJKEkpLHIsZSwwKX0pLGV9cmV0dXJuIG51bGx9dmFyIHBBPVNJO2Z1bmN0aW9uIEZJKEEsdCxlKXtpZihpLmlzU3RyaW5nKEEpKXRyeXtyZXR1cm4odHx8SlNPTi5wYXJzZSkoQSksaS50cmltKEEpfWNhdGNoKEkpe2lmKEkubmFtZSE9PSJTeW50YXhFcnJvciIpdGhyb3cgSX1yZXR1cm4oZXx8SlNPTi5zdHJpbmdpZnkpKEEpfXZhciBYQT17dHJhbnNpdGlvbmFsOndBLGFkYXB0ZXI6WyJ4aHIiLCJodHRwIiwiZmV0Y2giXSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbih0LGUpe2xldCBJPWUuZ2V0Q29udGVudFR5cGUoKXx8IiIscj1JLmluZGV4T2YoImFwcGxpY2F0aW9uL2pzb24iKT4tMSxvPWkuaXNPYmplY3QodCk7aWYobyYmaS5pc0hUTUxGb3JtKHQpJiYodD1uZXcgRm9ybURhdGEodCkpLGkuaXNGb3JtRGF0YSh0KSlyZXR1cm4gcj9KU09OLnN0cmluZ2lmeShwQSh0KSk6dDtpZihpLmlzQXJyYXlCdWZmZXIodCl8fGkuaXNCdWZmZXIodCl8fGkuaXNTdHJlYW0odCl8fGkuaXNGaWxlKHQpfHxpLmlzQmxvYih0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcodCkpcmV0dXJuIHQuYnVmZmVyO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXModCkpcmV0dXJuIGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04IiwhMSksdC50b1N0cmluZygpO2xldCBDO2lmKG8pe2lmKEkuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik+LTEpcmV0dXJuIFZBKHQsdGhpcy5mb3JtU2VyaWFsaXplcikudG9TdHJpbmcoKTtpZigoQz1pLmlzRmlsZUxpc3QodCkpfHxJLmluZGV4T2YoIm11bHRpcGFydC9mb3JtLWRhdGEiKT4tMSl7bGV0IEU9dGhpcy5lbnYmJnRoaXMuZW52LkZvcm1EYXRhO3JldHVybiBNKEM/eyJmaWxlc1tdIjp0fTp0LEUmJm5ldyBFLHRoaXMuZm9ybVNlcmlhbGl6ZXIpfX1yZXR1cm4gb3x8cj8oZS5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24vanNvbiIsITEpLEZJKHQpKTp0fV0sdHJhbnNmb3JtUmVzcG9uc2U6W2Z1bmN0aW9uKHQpe2xldCBlPXRoaXMudHJhbnNpdGlvbmFsfHxYQS50cmFuc2l0aW9uYWwsST1lJiZlLmZvcmNlZEpTT05QYXJzaW5nLHI9dGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYoaS5pc1Jlc3BvbnNlKHQpfHxpLmlzUmVhZGFibGVTdHJlYW0odCkpcmV0dXJuIHQ7aWYodCYmaS5pc1N0cmluZyh0KSYmKEkmJiF0aGlzLnJlc3BvbnNlVHlwZXx8cikpe2xldCBnPSEoZSYmZS5zaWxlbnRKU09OUGFyc2luZykmJnI7dHJ5e3JldHVybiBKU09OLnBhcnNlKHQpfWNhdGNoKEMpe2lmKGcpdGhyb3cgQy5uYW1lPT09IlN5bnRheEVycm9yIj91LmZyb20oQyx1LkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpOkN9fXJldHVybiB0fV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVuZ3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsZW52OntGb3JtRGF0YTpoLmNsYXNzZXMuRm9ybURhdGEsQmxvYjpoLmNsYXNzZXMuQmxvYn0sdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTIwMCYmdDwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoiLCJDb250ZW50LVR5cGUiOnZvaWQgMH19fTtpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIl0sQT0+e1hBLmhlYWRlcnNbQV09e319KTt2YXIgVj1YQTt2YXIgUkk9aS50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSxNdD1BPT57bGV0IHQ9e30sZSxJLHI7cmV0dXJuIEEmJkEuc3BsaXQoYCUwQWApLmZvckVhY2goZnVuY3Rpb24oZyl7cj1nLmluZGV4T2YoIjoiKSxlPWcuc3Vic3RyaW5nKDAscikudHJpbSgpLnRvTG93ZXJDYXNlKCksST1nLnN1YnN0cmluZyhyKzEpLnRyaW0oKSwhKCFlfHx0W2VdJiZSSVtlXSkmJihlPT09InNldC1jb29raWUiP3RbZV0/dFtlXS5wdXNoKEkpOnRbZV09W0ldOnRbZV09dFtlXT90W2VdKyIsICIrSTpJKX0pLHR9O3ZhciBLdD1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIGVBKEEpe3JldHVybiBBJiZTdHJpbmcoQSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gU0EoQSl7cmV0dXJuIEE9PT0hMXx8QT09bnVsbD9BOmkuaXNBcnJheShBKT9BLm1hcChTQSk6U3RyaW5nKEEpfWZ1bmN0aW9uIE5JKEEpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCksZT0vKFteXFxzLDs9XSspXFxzKig/Oj1cXHMqKFteLDtdKykpPy9nLEk7Zm9yKDtJPWUuZXhlYyhBKTspdFtJWzFdXT1JWzJdO3JldHVybiB0fXZhciBVST1BPT4vXlstX2EtekEtWjAtOV5gfH4sISUyMyQlJlwnKisuXSskLy50ZXN0KEEudHJpbSgpKTtmdW5jdGlvbiBfQShBLHQsZSxJLHIpe2lmKGkuaXNGdW5jdGlvbihJKSlyZXR1cm4gSS5jYWxsKHRoaXMsdCxlKTtpZihyJiYodD1lKSwhIWkuaXNTdHJpbmcodCkpe2lmKGkuaXNTdHJpbmcoSSkpcmV0dXJuIHQuaW5kZXhPZihJKSE9PS0xO2lmKGkuaXNSZWdFeHAoSSkpcmV0dXJuIEkudGVzdCh0KX19ZnVuY3Rpb24gR0koQSl7cmV0dXJuIEEudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcXGRdKShcXHcqKS9nLCh0LGUsSSk9PmUudG9VcHBlckNhc2UoKStJKX1mdW5jdGlvbiBrSShBLHQpe2xldCBlPWkudG9DYW1lbENhc2UoIiAiK3QpO1siZ2V0Iiwic2V0IiwiaGFzIl0uZm9yRWFjaChJPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsSStlLHt2YWx1ZTpmdW5jdGlvbihyLG8sZyl7cmV0dXJuIHRoaXNbSV0uY2FsbCh0aGlzLHQscixvLGcpfSxjb25maWd1cmFibGU6ITB9KX0pfXZhciBYPWNsYXNze2NvbnN0cnVjdG9yKHQpe3QmJnRoaXMuc2V0KHQpfXNldCh0LGUsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBvKEMsRSxhKXtsZXQgcz1lQShFKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IG49aS5maW5kS2V5KHIscyk7KCFufHxyW25dPT09dm9pZCAwfHxhPT09ITB8fGE9PT12b2lkIDAmJnJbbl0hPT0hMSkmJihyW258fEVdPVNBKEMpKX1sZXQgZz0oQyxFKT0+aS5mb3JFYWNoKEMsKGEscyk9Pm8oYSxzLEUpKTtpZihpLmlzUGxhaW5PYmplY3QodCl8fHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKWcodCxlKTtlbHNlIGlmKGkuaXNTdHJpbmcodCkmJih0PXQudHJpbSgpKSYmIVVJKHQpKWcoTXQodCksZSk7ZWxzZSBpZihpLmlzSGVhZGVycyh0KSlmb3IobGV0W0MsRV1vZiB0LmVudHJpZXMoKSlvKEUsQyxJKTtlbHNlIHQhPW51bGwmJm8oZSx0LEkpO3JldHVybiB0aGlzfWdldCh0LGUpe2lmKHQ9ZUEodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighZSlyZXR1cm4gcjtpZihlPT09ITApcmV0dXJuIE5JKHIpO2lmKGkuaXNGdW5jdGlvbihlKSlyZXR1cm4gZS5jYWxsKHRoaXMscixJKTtpZihpLmlzUmVnRXhwKGUpKXJldHVybiBlLmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyh0LGUpe2lmKHQ9ZUEodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCFlfHxfQSh0aGlzLHRoaXNbSV0sSSxlKSkpfXJldHVybiExfWRlbGV0ZSh0LGUpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBvKGcpe2lmKGc9ZUEoZyksZyl7bGV0IEM9aS5maW5kS2V5KEksZyk7QyYmKCFlfHxfQShJLElbQ10sQyxlKSkmJihkZWxldGUgSVtDXSxyPSEwKX19cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2gobyk6byh0KSxyfWNsZWFyKHQpe2xldCBlPU9iamVjdC5rZXlzKHRoaXMpLEk9ZS5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBvPWVbSV07KCF0fHxfQSh0aGlzLHRoaXNbb10sbyx0LCEwKSkmJihkZWxldGUgdGhpc1tvXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUodCl7bGV0IGU9dGhpcyxJPXt9O3JldHVybiBpLmZvckVhY2godGhpcywocixvKT0+e2xldCBnPWkuZmluZEtleShJLG8pO2lmKGcpe2VbZ109U0EociksZGVsZXRlIGVbb107cmV0dXJufWxldCBDPXQ/R0kobyk6U3RyaW5nKG8pLnRyaW0oKTtDIT09byYmZGVsZXRlIGVbb10sZVtDXT1TQShyKSxJW0NdPSEwfSksdGhpc31jb25jYXQoLi4udCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4udCl9dG9KU09OKHQpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYoZVtyXT10JiZpLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksZX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbdCxlXSk9PnQrIjogIitlKS5qb2luKGAlMEFgKX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJBeGlvc0hlYWRlcnMifXN0YXRpYyBmcm9tKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpcz90Om5ldyB0aGlzKHQpfXN0YXRpYyBjb25jYXQodCwuLi5lKXtsZXQgST1uZXcgdGhpcyh0KTtyZXR1cm4gZS5mb3JFYWNoKHI9Pkkuc2V0KHIpKSxJfXN0YXRpYyBhY2Nlc3Nvcih0KXtsZXQgST0odGhpc1tLdF09dGhpc1tLdF09e2FjY2Vzc29yczp7fX0pLmFjY2Vzc29ycyxyPXRoaXMucHJvdG90eXBlO2Z1bmN0aW9uIG8oZyl7bGV0IEM9ZUEoZyk7SVtDXXx8KGtJKHIsZyksSVtDXT0hMCl9cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2gobyk6byh0KSx0aGlzfX07WC5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7aS5yZWR1Y2VEZXNjcmlwdG9ycyhYLnByb3RvdHlwZSwoe3ZhbHVlOkF9LHQpPT57bGV0IGU9dFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQoSSl7dGhpc1tlXT1JfX19KTtpLmZyZWV6ZU1ldGhvZHMoWCk7dmFyIFM9WDtmdW5jdGlvbiBJQShBLHQpe2xldCBlPXRoaXN8fFYsST10fHxlLHI9Uy5mcm9tKEkuaGVhZGVycyksbz1JLmRhdGE7cmV0dXJuIGkuZm9yRWFjaChBLGZ1bmN0aW9uKEMpe289Qy5jYWxsKGUsbyxyLm5vcm1hbGl6ZSgpLHQ/dC5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksb31mdW5jdGlvbiByQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIFR0KEEsdCxlKXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELHQsZSksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1pLmluaGVyaXRzKFR0LHUse19fQ0FOQ0VMX186ITB9KTt2YXIgTD1UdDtmdW5jdGlvbiBvQShBLHQsZSl7bGV0IEk9ZS5jb25maWcudmFsaWRhdGVTdGF0dXM7IWUuc3RhdHVzfHwhSXx8SShlLnN0YXR1cyk/QShlKTp0KG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZS5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihlLnN0YXR1cy8xMDApLTRdLGUuY29uZmlnLGUucmVxdWVzdCxlKSl9ZnVuY3Rpb24gekEoQSl7bGV0IHQ9L14oWy0rXFx3XXsxLDI1fSkoOj9cXC9cXC98OikvLmV4ZWMoQSk7cmV0dXJuIHQmJnRbMV18fCIifWZ1bmN0aW9uIExJKEEsdCl7QT1BfHwxMDtsZXQgZT1uZXcgQXJyYXkoQSksST1uZXcgQXJyYXkoQSkscj0wLG89MCxnO3JldHVybiB0PXQhPT12b2lkIDA/dDoxZTMsZnVuY3Rpb24oRSl7bGV0IGE9RGF0ZS5ub3coKSxzPUlbb107Z3x8KGc9YSksZVtyXT1FLElbcl09YTtsZXQgbj1vLGY9MDtmb3IoO24hPT1yOylmKz1lW24rK10sbj1uJUE7aWYocj0ocisxKSVBLHI9PT1vJiYobz0obysxKSVBKSxhLWc8dClyZXR1cm47bGV0IEI9cyYmYS1zO3JldHVybiBCP01hdGgucm91bmQoZioxZTMvQik6dm9pZCAwfX12YXIgT3Q9TEk7ZnVuY3Rpb24gYkkoQSx0KXtsZXQgZT0wLEk9MWUzL3QscixvLGc9KGEscz1EYXRlLm5vdygpKT0+e2U9cyxyPW51bGwsbyYmKGNsZWFyVGltZW91dChvKSxvPW51bGwpLEEuYXBwbHkobnVsbCxhKX07cmV0dXJuWyguLi5hKT0+e2xldCBzPURhdGUubm93KCksbj1zLWU7bj49ST9nKGEscyk6KHI9YSxvfHwobz1zZXRUaW1lb3V0KCgpPT57bz1udWxsLGcocil9LEktbikpKX0sKCk9PnImJmcocildfXZhciB4dD1iSTt2YXIgXz0oQSx0LGU9Myk9PntsZXQgST0wLHI9T3QoNTAsMjUwKTtyZXR1cm4geHQobz0+e2xldCBnPW8ubG9hZGVkLEM9by5sZW5ndGhDb21wdXRhYmxlP28udG90YWw6dm9pZCAwLEU9Zy1JLGE9cihFKSxzPWc8PUM7ST1nO2xldCBuPXtsb2FkZWQ6Zyx0b3RhbDpDLHByb2dyZXNzOkM/Zy9DOnZvaWQgMCxieXRlczpFLHJhdGU6YXx8dm9pZCAwLGVzdGltYXRlZDphJiZDJiZzPyhDLWcpL2E6dm9pZCAwLGV2ZW50Om8sbGVuZ3RoQ29tcHV0YWJsZTpDIT1udWxsLFt0PyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKG4pfSxlKX0sdkE9KEEsdCk9PntsZXQgZT1BIT1udWxsO3JldHVybltJPT50WzBdKHtsZW5ndGhDb21wdXRhYmxlOmUsdG90YWw6QSxsb2FkZWQ6SX0pLHRbMV1dfSwkQT1BPT4oLi4udCk9PmkuYXNhcCgoKT0+QSguLi50KSk7dmFyIFB0PWguaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSx0KT0+ZT0+KGU9bmV3IFVSTChlLGgub3JpZ2luKSxBLnByb3RvY29sPT09ZS5wcm90b2NvbCYmQS5ob3N0PT09ZS5ob3N0JiYodHx8QS5wb3J0PT09ZS5wb3J0KSkpKG5ldyBVUkwoaC5vcmlnaW4pLGgubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KGgubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgV3Q9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsdCxlLEkscixvKXtsZXQgZz1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpXTtpLmlzTnVtYmVyKGUpJiZnLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZShlKS50b0dNVFN0cmluZygpKSxpLmlzU3RyaW5nKEkpJiZnLnB1c2goInBhdGg9IitJKSxpLmlzU3RyaW5nKHIpJiZnLnB1c2goImRvbWFpbj0iK3IpLG89PT0hMCYmZy5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9Zy5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCB0PWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxcXHMqKSgiK0ErIik9KFteO10qKSIpKTtyZXR1cm4gdD9kZWNvZGVVUklDb21wb25lbnQodFszXSk6bnVsbH0scmVtb3ZlKEEpe3RoaXMud3JpdGUoQSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiBBdChBKXtyZXR1cm4vXihbYS16XVthLXpcXGQrXFwtLl0qOik/XFwvXFwvL2kudGVzdChBKX1mdW5jdGlvbiB0dChBLHQpe3JldHVybiB0P0EucmVwbGFjZSgvXFwvP1xcLyQvLCIiKSsiLyIrdC5yZXBsYWNlKC9eXFwvKy8sIiIpOkF9ZnVuY3Rpb24gZ0EoQSx0LGUpe2xldCBJPSFBdCh0KTtyZXR1cm4gQSYmKEl8fGU9PSExKT90dChBLHQpOnR9dmFyIGp0PUE9PkEgaW5zdGFuY2VvZiBTP3suLi5BfTpBO2Z1bmN0aW9uIGsoQSx0KXt0PXR8fHt9O2xldCBlPXt9O2Z1bmN0aW9uIEkoYSxzLG4sZil7cmV0dXJuIGkuaXNQbGFpbk9iamVjdChhKSYmaS5pc1BsYWluT2JqZWN0KHMpP2kubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6Zn0sYSxzKTppLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZSh7fSxzKTppLmlzQXJyYXkocyk/cy5zbGljZSgpOnN9ZnVuY3Rpb24gcihhLHMsbixmKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChhKSlyZXR1cm4gSSh2b2lkIDAsYSxuLGYpfWVsc2UgcmV0dXJuIEkoYSxzLG4sZil9ZnVuY3Rpb24gbyhhLHMpe2lmKCFpLmlzVW5kZWZpbmVkKHMpKXJldHVybiBJKHZvaWQgMCxzKX1mdW5jdGlvbiBnKGEscyl7aWYoaS5pc1VuZGVmaW5lZChzKSl7aWYoIWkuaXNVbmRlZmluZWQoYSkpcmV0dXJuIEkodm9pZCAwLGEpfWVsc2UgcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIEMoYSxzLG4pe2lmKG4gaW4gdClyZXR1cm4gSShhLHMpO2lmKG4gaW4gQSlyZXR1cm4gSSh2b2lkIDAsYSl9bGV0IEU9e3VybDpvLG1ldGhvZDpvLGRhdGE6byxiYXNlVVJMOmcsdHJhbnNmb3JtUmVxdWVzdDpnLHRyYW5zZm9ybVJlc3BvbnNlOmcscGFyYW1zU2VyaWFsaXplcjpnLHRpbWVvdXQ6Zyx0aW1lb3V0TWVzc2FnZTpnLHdpdGhDcmVkZW50aWFsczpnLHdpdGhYU1JGVG9rZW46ZyxhZGFwdGVyOmcscmVzcG9uc2VUeXBlOmcseHNyZkNvb2tpZU5hbWU6Zyx4c3JmSGVhZGVyTmFtZTpnLG9uVXBsb2FkUHJvZ3Jlc3M6ZyxvbkRvd25sb2FkUHJvZ3Jlc3M6ZyxkZWNvbXByZXNzOmcsbWF4Q29udGVudExlbmd0aDpnLG1heEJvZHlMZW5ndGg6ZyxiZWZvcmVSZWRpcmVjdDpnLHRyYW5zcG9ydDpnLGh0dHBBZ2VudDpnLGh0dHBzQWdlbnQ6ZyxjYW5jZWxUb2tlbjpnLHNvY2tldFBhdGg6ZyxyZXNwb25zZUVuY29kaW5nOmcsdmFsaWRhdGVTdGF0dXM6QyxoZWFkZXJzOihhLHMsbik9PnIoanQoYSksanQocyksbiwhMCl9O3JldHVybiBpLmZvckVhY2goT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSxBLHQpKSxmdW5jdGlvbihzKXtsZXQgbj1FW3NdfHxyLGY9bihBW3NdLHRbc10scyk7aS5pc1VuZGVmaW5lZChmKSYmbiE9PUN8fChlW3NdPWYpfSksZX12YXIgRkE9QT0+e2xldCB0PWsoe30sQSkse2RhdGE6ZSx3aXRoWFNSRlRva2VuOkkseHNyZkhlYWRlck5hbWU6cix4c3JmQ29va2llTmFtZTpvLGhlYWRlcnM6ZyxhdXRoOkN9PXQ7dC5oZWFkZXJzPWc9Uy5mcm9tKGcpLHQudXJsPXRBKGdBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKSxBLnBhcmFtcyxBLnBhcmFtc1NlcmlhbGl6ZXIpLEMmJmcuc2V0KCJBdXRob3JpemF0aW9uIiwiQmFzaWMgIitidG9hKChDLnVzZXJuYW1lfHwiIikrIjoiKyhDLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChDLnBhc3N3b3JkKSk6IiIpKSk7bGV0IEU7aWYoaS5pc0Zvcm1EYXRhKGUpKXtpZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudnx8aC5oYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYpZy5zZXRDb250ZW50VHlwZSh2b2lkIDApO2Vsc2UgaWYoKEU9Zy5nZXRDb250ZW50VHlwZSgpKSE9PSExKXtsZXRbYSwuLi5zXT1FP0Uuc3BsaXQoIjsiKS5tYXAobj0+bi50cmltKCkpLmZpbHRlcihCb29sZWFuKTpbXTtnLnNldENvbnRlbnRUeXBlKFthfHwibXVsdGlwYXJ0L2Zvcm0tZGF0YSIsLi4uc10uam9pbigiOyAiKSl9fWlmKGguaGFzU3RhbmRhcmRCcm93c2VyRW52JiYoSSYmaS5pc0Z1bmN0aW9uKEkpJiYoST1JKHQpKSxJfHxJIT09ITEmJlB0KHQudXJsKSkpe2xldCBhPXImJm8mJld0LnJlYWQobyk7YSYmZy5zZXQocixhKX1yZXR1cm4gdH07dmFyIEpJPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsWnQ9SkkmJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLEkpe2xldCByPUZBKEEpLG89ci5kYXRhLGc9Uy5mcm9tKHIuaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpDLG9uVXBsb2FkUHJvZ3Jlc3M6RSxvbkRvd25sb2FkUHJvZ3Jlc3M6YX09cixzLG4sZixCLFE7ZnVuY3Rpb24gbCgpe0ImJkIoKSxRJiZRKCksci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShzKSxyLnNpZ25hbCYmci5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpfWxldCBjPW5ldyBYTUxIdHRwUmVxdWVzdDtjLm9wZW4oci5tZXRob2QudG9VcHBlckNhc2UoKSxyLnVybCwhMCksYy50aW1lb3V0PXIudGltZW91dDtmdW5jdGlvbiBkKCl7aWYoIWMpcmV0dXJuO2xldCBtPVMuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGMmJmMuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLFI9e2RhdGE6IUN8fEM9PT0idGV4dCJ8fEM9PT0ianNvbiI/Yy5yZXNwb25zZVRleHQ6Yy5yZXNwb25zZSxzdGF0dXM6Yy5zdGF0dXMsc3RhdHVzVGV4dDpjLnN0YXR1c1RleHQsaGVhZGVyczptLGNvbmZpZzpBLHJlcXVlc3Q6Y307b0EoZnVuY3Rpb24oVCl7ZShUKSxsKCl9LGZ1bmN0aW9uKFQpe0koVCksbCgpfSxSKSxjPW51bGx9Im9ubG9hZGVuZCJpbiBjP2Mub25sb2FkZW5kPWQ6Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshY3x8Yy5yZWFkeVN0YXRlIT09NHx8Yy5zdGF0dXM9PT0wJiYhKGMucmVzcG9uc2VVUkwmJmMucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KGQpfSxjLm9uYWJvcnQ9ZnVuY3Rpb24oKXtjJiYoSShuZXcgdSgiUmVxdWVzdCBhYm9ydGVkIix1LkVDT05OQUJPUlRFRCxBLGMpKSxjPW51bGwpfSxjLm9uZXJyb3I9ZnVuY3Rpb24oKXtJKG5ldyB1KCJOZXR3b3JrIEVycm9yIix1LkVSUl9ORVRXT1JLLEEsYykpLGM9bnVsbH0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgSD1yLnRpbWVvdXQ/InRpbWVvdXQgb2YgIityLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsUj1yLnRyYW5zaXRpb25hbHx8d0E7ci50aW1lb3V0RXJyb3JNZXNzYWdlJiYoSD1yLnRpbWVvdXRFcnJvck1lc3NhZ2UpLEkobmV3IHUoSCxSLmNsYXJpZnlUaW1lb3V0RXJyb3I/dS5FVElNRURPVVQ6dS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsfSxvPT09dm9pZCAwJiZnLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGMmJmkuZm9yRWFjaChnLnRvSlNPTigpLGZ1bmN0aW9uKEgsUil7Yy5zZXRSZXF1ZXN0SGVhZGVyKFIsSCl9KSxpLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGMud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLEMmJkMhPT0ianNvbiImJihjLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksYSYmKFtmLFFdPV8oYSwhMCksYy5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZikpLEUmJmMudXBsb2FkJiYoW24sQl09XyhFKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsbiksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsQikpLChyLmNhbmNlbFRva2VufHxyLnNpZ25hbCkmJihzPW09PntjJiYoSSghbXx8bS50eXBlP25ldyBMKG51bGwsQSxjKTptKSxjLmFib3J0KCksYz1udWxsKX0sci5jYW5jZWxUb2tlbiYmci5jYW5jZWxUb2tlbi5zdWJzY3JpYmUocyksci5zaWduYWwmJihyLnNpZ25hbC5hYm9ydGVkP3MoKTpyLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIscykpKTtsZXQgeT16QShyLnVybCk7aWYoeSYmaC5wcm90b2NvbHMuaW5kZXhPZih5KT09PS0xKXtJKG5ldyB1KCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK3krIjoiLHUuRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59Yy5zZW5kKG98fG51bGwpfSl9O3ZhciBIST0oQSx0KT0+e2xldHtsZW5ndGg6ZX09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKHR8fGUpe2xldCBJPW5ldyBBYm9ydENvbnRyb2xsZXIscixvPWZ1bmN0aW9uKGEpe2lmKCFyKXtyPSEwLEMoKTtsZXQgcz1hIGluc3RhbmNlb2YgRXJyb3I/YTp0aGlzLnJlYXNvbjtJLmFib3J0KHMgaW5zdGFuY2VvZiB1P3M6bmV3IEwocyBpbnN0YW5jZW9mIEVycm9yP3MubWVzc2FnZTpzKSl9fSxnPXQmJnNldFRpbWVvdXQoKCk9PntnPW51bGwsbyhuZXcgdShgdGltZW91dCAke3R9IG9mIG1zIGV4Y2VlZGVkYCx1LkVUSU1FRE9VVCkpfSx0KSxDPSgpPT57QSYmKGcmJmNsZWFyVGltZW91dChnKSxnPW51bGwsQS5mb3JFYWNoKGE9PnthLnVuc3Vic2NyaWJlP2EudW5zdWJzY3JpYmUobyk6YS5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsbyl9KSxBPW51bGwpfTtBLmZvckVhY2goYT0+YS5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbykpO2xldHtzaWduYWw6RX09STtyZXR1cm4gRS51bnN1YnNjcmliZT0oKT0+aS5hc2FwKEMpLEV9fSxWdD1ISTt2YXIgWUk9ZnVuY3Rpb24qKEEsdCl7bGV0IGU9QS5ieXRlTGVuZ3RoO2lmKCF0fHxlPHQpe3lpZWxkIEE7cmV0dXJufWxldCBJPTAscjtmb3IoO0k8ZTspcj1JK3QseWllbGQgQS5zbGljZShJLHIpLEk9cn0scUk9YXN5bmMgZnVuY3Rpb24qKEEsdCl7Zm9yIGF3YWl0KGxldCBlIG9mIE1JKEEpKXlpZWxkKllJKGUsdCl9LE1JPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IHQ9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTplLHZhbHVlOkl9PWF3YWl0IHQucmVhZCgpO2lmKGUpYnJlYWs7eWllbGQgSX19ZmluYWxseXthd2FpdCB0LmNhbmNlbCgpfX0sZXQ9KEEsdCxlLEkpPT57bGV0IHI9cUkoQSx0KSxvPTAsZyxDPUU9PntnfHwoZz0hMCxJJiZJKEUpKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChFKXt0cnl7bGV0e2RvbmU6YSx2YWx1ZTpzfT1hd2FpdCByLm5leHQoKTtpZihhKXtDKCksRS5jbG9zZSgpO3JldHVybn1sZXQgbj1zLmJ5dGVMZW5ndGg7aWYoZSl7bGV0IGY9bys9bjtlKGYpfUUuZW5xdWV1ZShuZXcgVWludDhBcnJheShzKSl9Y2F0Y2goYSl7dGhyb3cgQyhhKSxhfX0sY2FuY2VsKEUpe3JldHVybiBDKEUpLHIucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBOQT10eXBlb2YgZmV0Y2g9PSJmdW5jdGlvbiImJnR5cGVvZiBSZXF1ZXN0PT0iZnVuY3Rpb24iJiZ0eXBlb2YgUmVzcG9uc2U9PSJmdW5jdGlvbiIsX3Q9TkEmJnR5cGVvZiBSZWFkYWJsZVN0cmVhbT09ImZ1bmN0aW9uIixLST1OQSYmKHR5cGVvZiBUZXh0RW5jb2Rlcj09ImZ1bmN0aW9uIj8oQT0+dD0+QS5lbmNvZGUodCkpKG5ldyBUZXh0RW5jb2Rlcik6YXN5bmMgQT0+bmV3IFVpbnQ4QXJyYXkoYXdhaXQgbmV3IFJlc3BvbnNlKEEpLmFycmF5QnVmZmVyKCkpKSx6dD0oQSwuLi50KT0+e3RyeXtyZXR1cm4hIUEoLi4udCl9Y2F0Y2h7cmV0dXJuITF9fSxUST1fdCYmenQoKCk9PntsZXQgQT0hMSx0PW5ldyBSZXF1ZXN0KGgub3JpZ2luLHtib2R5Om5ldyBSZWFkYWJsZVN0cmVhbSxtZXRob2Q6IlBPU1QiLGdldCBkdXBsZXgoKXtyZXR1cm4gQT0hMCwiaGFsZiJ9fSkuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpO3JldHVybiBBJiYhdH0pLFh0PTY0KjEwMjQsSXQ9X3QmJnp0KCgpPT5pLmlzUmVhZGFibGVTdHJlYW0obmV3IFJlc3BvbnNlKCIiKS5ib2R5KSksUkE9e3N0cmVhbTpJdCYmKEE9PkEuYm9keSl9O05BJiYoQT0+e1sidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaCh0PT57IVJBW3RdJiYoUkFbdF09aS5pc0Z1bmN0aW9uKEFbdF0pP2U9PmVbdF0oKTooZSxJKT0+e3Rocm93IG5ldyB1KGBSZXNwb25zZSB0eXBlIFwnJHt0fVwnIGlzIG5vdCBzdXBwb3J0ZWRgLHUuRVJSX05PVF9TVVBQT1JULEkpfSl9KX0pKG5ldyBSZXNwb25zZSk7dmFyIE9JPWFzeW5jIEE9PntpZihBPT1udWxsKXJldHVybiAwO2lmKGkuaXNCbG9iKEEpKXJldHVybiBBLnNpemU7aWYoaS5pc1NwZWNDb21wbGlhbnRGb3JtKEEpKXJldHVybihhd2FpdCBuZXcgUmVxdWVzdChoLm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OkF9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcoQSl8fGkuaXNBcnJheUJ1ZmZlcihBKSlyZXR1cm4gQS5ieXRlTGVuZ3RoO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXMoQSkmJihBPUErIiIpLGkuaXNTdHJpbmcoQSkpcmV0dXJuKGF3YWl0IEtJKEEpKS5ieXRlTGVuZ3RofSx4ST1hc3luYyhBLHQpPT57bGV0IGU9aS50b0Zpbml0ZU51bWJlcihBLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIGU/P09JKHQpfSx2dD1OQSYmKGFzeW5jIEE9PntsZXR7dXJsOnQsbWV0aG9kOmUsZGF0YTpJLHNpZ25hbDpyLGNhbmNlbFRva2VuOm8sdGltZW91dDpnLG9uRG93bmxvYWRQcm9ncmVzczpDLG9uVXBsb2FkUHJvZ3Jlc3M6RSxyZXNwb25zZVR5cGU6YSxoZWFkZXJzOnMsd2l0aENyZWRlbnRpYWxzOm49InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6Zn09RkEoQSk7YT1hPyhhKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgQj1WdChbcixvJiZvLnRvQWJvcnRTaWduYWwoKV0sZyksUSxsPUImJkIudW5zdWJzY3JpYmUmJigoKT0+e0IudW5zdWJzY3JpYmUoKX0pLGM7dHJ5e2lmKEUmJlRJJiZlIT09ImdldCImJmUhPT0iaGVhZCImJihjPWF3YWl0IHhJKHMsSSkpIT09MCl7bGV0IFI9bmV3IFJlcXVlc3QodCx7bWV0aG9kOiJQT1NUIixib2R5OkksZHVwbGV4OiJoYWxmIn0pLHE7aWYoaS5pc0Zvcm1EYXRhKEkpJiYocT1SLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJnMuc2V0Q29udGVudFR5cGUocSksUi5ib2R5KXtsZXRbVCxCQV09dkEoYyxfKCRBKEUpKSk7ST1ldChSLmJvZHksWHQsVCxCQSl9fWkuaXNTdHJpbmcobil8fChuPW4/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IGQ9ImNyZWRlbnRpYWxzImluIFJlcXVlc3QucHJvdG90eXBlO1E9bmV3IFJlcXVlc3QodCx7Li4uZixzaWduYWw6QixtZXRob2Q6ZS50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6cy5ub3JtYWxpemUoKS50b0pTT04oKSxib2R5OkksZHVwbGV4OiJoYWxmIixjcmVkZW50aWFsczpkP246dm9pZCAwfSk7bGV0IHk9YXdhaXQgZmV0Y2goUSksbT1JdCYmKGE9PT0ic3RyZWFtInx8YT09PSJyZXNwb25zZSIpO2lmKEl0JiYoQ3x8bSYmbCkpe2xldCBSPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKGF0PT57UlthdF09eVthdF19KTtsZXQgcT1pLnRvRmluaXRlTnVtYmVyKHkuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIikpLFtULEJBXT1DJiZ2QShxLF8oJEEoQyksITApKXx8W107eT1uZXcgUmVzcG9uc2UoZXQoeS5ib2R5LFh0LFQsKCk9PntCQSYmQkEoKSxsJiZsKCl9KSxSKX1hPWF8fCJ0ZXh0IjtsZXQgSD1hd2FpdCBSQVtpLmZpbmRLZXkoUkEsYSl8fCJ0ZXh0Il0oeSxBKTtyZXR1cm4hbSYmbCYmbCgpLGF3YWl0IG5ldyBQcm9taXNlKChSLHEpPT57b0EoUixxLHtkYXRhOkgsaGVhZGVyczpTLmZyb20oeS5oZWFkZXJzKSxzdGF0dXM6eS5zdGF0dXMsc3RhdHVzVGV4dDp5LnN0YXR1c1RleHQsY29uZmlnOkEscmVxdWVzdDpRfSl9KX1jYXRjaChkKXt0aHJvdyBsJiZsKCksZCYmZC5uYW1lPT09IlR5cGVFcnJvciImJi9mZXRjaC9pLnRlc3QoZC5tZXNzYWdlKT9PYmplY3QuYXNzaWduKG5ldyB1KCJOZXR3b3JrIEVycm9yIix1LkVSUl9ORVRXT1JLLEEsUSkse2NhdXNlOmQuY2F1c2V8fGR9KTp1LmZyb20oZCxkJiZkLmNvZGUsQSxRKX19KTt2YXIgcnQ9e2h0dHA6eUEseGhyOlp0LGZldGNoOnZ0fTtpLmZvckVhY2gocnQsKEEsdCk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHt2YWx1ZTp0fSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse3ZhbHVlOnR9KX19KTt2YXIgJHQ9QT0+YC0gJHtBfWAsUEk9QT0+aS5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExLFVBPXtnZXRBZGFwdGVyOkE9PntBPWkuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOnR9PUEsZSxJLHI9e307Zm9yKGxldCBvPTA7bzx0O28rKyl7ZT1BW29dO2xldCBnO2lmKEk9ZSwhUEkoZSkmJihJPXJ0WyhnPVN0cmluZyhlKSkudG9Mb3dlckNhc2UoKV0sST09PXZvaWQgMCkpdGhyb3cgbmV3IHUoYFVua25vd24gYWRhcHRlciBcJyR7Z31cJ2ApO2lmKEkpYnJlYWs7cltnfHwiJTIzIitvXT1JfWlmKCFJKXtsZXQgbz1PYmplY3QuZW50cmllcyhyKS5tYXAoKFtDLEVdKT0+YGFkYXB0ZXIgJHtDfSBgKyhFPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSksZz10P28ubGVuZ3RoPjE/YHNpbmNlIDolMEFgK28ubWFwKCR0KS5qb2luKGAlMEFgKToiICIrJHQob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK2csIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiBJfSxhZGFwdGVyczpydH07ZnVuY3Rpb24gb3QoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEwobnVsbCxBKX1mdW5jdGlvbiBHQShBKXtyZXR1cm4gb3QoQSksQS5oZWFkZXJzPVMuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1JQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksVUEuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fFYuYWRhcHRlcikoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gb3QoQSksSS5kYXRhPUlBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1TLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gckEoSSl8fChvdChBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPUlBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1TLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIGtBPSIxLjguNCI7dmFyIExBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSx0KT0+e0xBW0FdPWZ1bmN0aW9uKEkpe3JldHVybiB0eXBlb2YgST09PUF8fCJhIisodDwxPyJuICI6IiAiKStBfX0pO3ZhciBBZT17fTtMQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24odCxlLEkpe2Z1bmN0aW9uIHIobyxnKXtyZXR1cm4iW0F4aW9zIHYiK2tBKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gXCciK28rIlwnIitnKyhJPyIuICIrSToiIil9cmV0dXJuKG8sZyxDKT0+e2lmKHQ9PT0hMSl0aHJvdyBuZXcgdShyKGcsIiBoYXMgYmVlbiByZW1vdmVkIisoZT8iIGluICIrZToiIikpLHUuRVJSX0RFUFJFQ0FURUQpO3JldHVybiBlJiYhQWVbZ10mJihBZVtnXT0hMCxjb25zb2xlLndhcm4ocihnLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2IitlKyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLHQ/dChvLGcsQyk6ITB9fTtMQS5zcGVsbGluZz1mdW5jdGlvbih0KXtyZXR1cm4oZSxJKT0+KGNvbnNvbGUud2FybihgJHtJfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke3R9YCksITApfTtmdW5jdGlvbiBXSShBLHQsZSl7aWYodHlwZW9mIEEhPSJvYmplY3QiKXRocm93IG5ldyB1KCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0Iix1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgST1PYmplY3Qua2V5cyhBKSxyPUkubGVuZ3RoO2Zvcig7ci0tID4wOyl7bGV0IG89SVtyXSxnPXRbb107aWYoZyl7bGV0IEM9QVtvXSxFPUM9PT12b2lkIDB8fGcoQyxvLEEpO2lmKEUhPT0hMCl0aHJvdyBuZXcgdSgib3B0aW9uICIrbysiIG11c3QgYmUgIitFLHUuRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnRpbnVlfWlmKGUhPT0hMCl0aHJvdyBuZXcgdSgiVW5rbm93biBvcHRpb24gIitvLHUuRVJSX0JBRF9PUFRJT04pfX12YXIgaUE9e2Fzc2VydE9wdGlvbnM6V0ksdmFsaWRhdG9yczpMQX07dmFyIGI9aUEudmFsaWRhdG9ycyx6PWNsYXNze2NvbnN0cnVjdG9yKHQpe3RoaXMuZGVmYXVsdHM9dCx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgUEEscmVzcG9uc2U6bmV3IFBBfX1hc3luYyByZXF1ZXN0KHQsZSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KHQsZSl9Y2F0Y2goSSl7aWYoSSBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgbz1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXFxuLywiIik6IiI7dHJ5e0kuc3RhY2s/byYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChvLnJlcGxhY2UoL14uK1xcbi4rXFxuLywiIikpJiYoSS5zdGFjays9YCUwQWArbyk6SS5zdGFjaz1vfWNhdGNoe319dGhyb3cgSX19X3JlcXVlc3QodCxlKXt0eXBlb2YgdD09InN0cmluZyI/KGU9ZXx8e30sZS51cmw9dCk6ZT10fHx7fSxlPWsodGhpcy5kZWZhdWx0cyxlKTtsZXR7dHJhbnNpdGlvbmFsOkkscGFyYW1zU2VyaWFsaXplcjpyLGhlYWRlcnM6b309ZTtJIT09dm9pZCAwJiZpQS5hc3NlcnRPcHRpb25zKEkse3NpbGVudEpTT05QYXJzaW5nOmIudHJhbnNpdGlvbmFsKGIuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6Yi50cmFuc2l0aW9uYWwoYi5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOmIudHJhbnNpdGlvbmFsKGIuYm9vbGVhbil9LCExKSxyIT1udWxsJiYoaS5pc0Z1bmN0aW9uKHIpP2UucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOnJ9OmlBLmFzc2VydE9wdGlvbnMocix7ZW5jb2RlOmIuZnVuY3Rpb24sc2VyaWFsaXplOmIuZnVuY3Rpb259LCEwKSksZS5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/ZS5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOmUuYWxsb3dBYnNvbHV0ZVVybHM9ITApLGlBLmFzc2VydE9wdGlvbnMoZSx7YmFzZVVybDpiLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpiLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSxlLm1ldGhvZD0oZS5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgZz1vJiZpLm1lcmdlKG8uY29tbW9uLG9bZS5tZXRob2RdKTtvJiZpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sUT0+e2RlbGV0ZSBvW1FdfSksZS5oZWFkZXJzPVMuY29uY2F0KGcsbyk7bGV0IEM9W10sRT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24obCl7dHlwZW9mIGwucnVuV2hlbj09ImZ1bmN0aW9uIiYmbC5ydW5XaGVuKGUpPT09ITF8fChFPUUmJmwuc3luY2hyb25vdXMsQy51bnNoaWZ0KGwuZnVsZmlsbGVkLGwucmVqZWN0ZWQpKX0pO2xldCBhPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24obCl7YS5wdXNoKGwuZnVsZmlsbGVkLGwucmVqZWN0ZWQpfSk7bGV0IHMsbj0wLGY7aWYoIUUpe2xldCBRPVtHQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKFEudW5zaGlmdC5hcHBseShRLEMpLFEucHVzaC5hcHBseShRLGEpLGY9US5sZW5ndGgscz1Qcm9taXNlLnJlc29sdmUoZSk7bjxmOylzPXMudGhlbihRW24rK10sUVtuKytdKTtyZXR1cm4gc31mPUMubGVuZ3RoO2xldCBCPWU7Zm9yKG49MDtuPGY7KXtsZXQgUT1DW24rK10sbD1DW24rK107dHJ5e0I9UShCKX1jYXRjaChjKXtsLmNhbGwodGhpcyxjKTticmVha319dHJ5e3M9R0EuY2FsbCh0aGlzLEIpfWNhdGNoKFEpe3JldHVybiBQcm9taXNlLnJlamVjdChRKX1mb3Iobj0wLGY9YS5sZW5ndGg7bjxmOylzPXMudGhlbihhW24rK10sYVtuKytdKTtyZXR1cm4gc31nZXRVcmkodCl7dD1rKHRoaXMuZGVmYXVsdHMsdCk7bGV0IGU9Z0EodC5iYXNlVVJMLHQudXJsLHQuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiB0QShlLHQucGFyYW1zLHQucGFyYW1zU2VyaWFsaXplcil9fTtpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKHQpe3oucHJvdG90eXBlW3RdPWZ1bmN0aW9uKGUsSSl7cmV0dXJuIHRoaXMucmVxdWVzdChrKEl8fHt9LHttZXRob2Q6dCx1cmw6ZSxkYXRhOihJfHx7fSkuZGF0YX0pKX19KTtpLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKEkpe3JldHVybiBmdW5jdGlvbihvLGcsQyl7cmV0dXJuIHRoaXMucmVxdWVzdChrKEN8fHt9LHttZXRob2Q6dCxoZWFkZXJzOkk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOm8sZGF0YTpnfSkpfX16LnByb3RvdHlwZVt0XT1lKCksei5wcm90b3R5cGVbdCsiRm9ybSJdPWUoITApfSk7dmFyIHNBPXo7dmFyIGd0PWNsYXNzIEF7Y29uc3RydWN0b3IodCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCBlO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihvKXtlPW99KTtsZXQgST10aGlzO3RoaXMucHJvbWlzZS50aGVuKHI9PntpZighSS5fbGlzdGVuZXJzKXJldHVybjtsZXQgbz1JLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7by0tID4wOylJLl9saXN0ZW5lcnNbb10ocik7SS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1yPT57bGV0IG8sZz1uZXcgUHJvbWlzZShDPT57SS5zdWJzY3JpYmUoQyksbz1DfSkudGhlbihyKTtyZXR1cm4gZy5jYW5jZWw9ZnVuY3Rpb24oKXtJLnVuc3Vic2NyaWJlKG8pfSxnfSx0KGZ1bmN0aW9uKG8sZyxDKXtJLnJlYXNvbnx8KEkucmVhc29uPW5ldyBMKG8sZyxDKSxlKEkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKHQpe2lmKHRoaXMucmVhc29uKXt0KHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKHQpOnRoaXMuX2xpc3RlbmVycz1bdF19dW5zdWJzY3JpYmUodCl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IGU9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YodCk7ZSE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKGUsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCB0PW5ldyBBYm9ydENvbnRyb2xsZXIsZT1JPT57dC5hYm9ydChJKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKGUpLHQuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKGUpLHQuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgdDtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24ocil7dD1yfSksY2FuY2VsOnR9fX0sdGU9Z3Q7ZnVuY3Rpb24gaXQoQSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBBLmFwcGx5KG51bGwsZSl9fWZ1bmN0aW9uIHN0KEEpe3JldHVybiBpLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBudD17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMobnQpLmZvckVhY2goKFtBLHRdKT0+e250W3RdPUF9KTt2YXIgZWU9bnQ7ZnVuY3Rpb24gSWUoQSl7bGV0IHQ9bmV3IHNBKEEpLGU9dihzQS5wcm90b3R5cGUucmVxdWVzdCx0KTtyZXR1cm4gaS5leHRlbmQoZSxzQS5wcm90b3R5cGUsdCx7YWxsT3duS2V5czohMH0pLGkuZXh0ZW5kKGUsdCxudWxsLHthbGxPd25LZXlzOiEwfSksZS5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIEllKGsoQSxyKSl9LGV9dmFyIHc9SWUoVik7dy5BeGlvcz1zQTt3LkNhbmNlbGVkRXJyb3I9TDt3LkNhbmNlbFRva2VuPXRlO3cuaXNDYW5jZWw9ckE7dy5WRVJTSU9OPWtBO3cudG9Gb3JtRGF0YT1NO3cuQXhpb3NFcnJvcj11O3cuQ2FuY2VsPXcuQ2FuY2VsZWRFcnJvcjt3LmFsbD1mdW5jdGlvbih0KXtyZXR1cm4gUHJvbWlzZS5hbGwodCl9O3cuc3ByZWFkPWl0O3cuaXNBeGlvc0Vycm9yPXN0O3cubWVyZ2VDb25maWc9azt3LkF4aW9zSGVhZGVycz1TO3cuZm9ybVRvSlNPTj1BPT5wQShpLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO3cuZ2V0QWRhcHRlcj1VQS5nZXRBZGFwdGVyO3cuSHR0cFN0YXR1c0NvZGU9ZWU7dy5kZWZhdWx0PXc7dmFyIGJBPXc7dmFye0F4aW9zOkJpLEF4aW9zRXJyb3I6YWksQ2FuY2VsZWRFcnJvcjpRaSxpc0NhbmNlbDpFaSxDYW5jZWxUb2tlbjpjaSxWRVJTSU9OOmZpLGFsbDpsaSxDYW5jZWw6dWksaXNBeGlvc0Vycm9yOkRpLHNwcmVhZDpkaSx0b0Zvcm1EYXRhOmhpLEF4aW9zSGVhZGVyczp5aSxIdHRwU3RhdHVzQ29kZTptaSxmb3JtVG9KU09OOndpLGdldEFkYXB0ZXI6cGksbWVyZ2VDb25maWc6U2l9PWJBO3ZhciBuQSxZLEJ0LEN0PXtlbnY6e2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGg6ZnVuY3Rpb24oQSl7QnQ9bmV3IFVpbnQ4QXJyYXkoWS5leHBvcnRzLm1lbW9yeS5idWZmZXIpfX19LEpBPWNsYXNze2luaXQoKXtyZXR1cm4gbkF8fCh0eXBlb2YgZmV0Y2g8InUiP25BPWZldGNoKCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LCIrcmUpLnRoZW4odD0+dC5hcnJheUJ1ZmZlcigpKS50aGVuKHQ9PldlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKHQsQ3QpKS50aGVuKHRoaXMuX2luaXQpOm5BPVdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEJ1ZmZlci5mcm9tKHJlLCJiYXNlNjQiKSxDdCkudGhlbih0aGlzLl9pbml0KSxuQSl9X2luaXQodCl7WT10Lmluc3RhbmNlLEN0LmVudi5lbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoKDApfWRlY29kZSh0LGU9MCl7aWYoIVkpdGhyb3cgbmV3IEVycm9yKCJaU1RERGVjb2RlcjogQXdhaXQgLmluaXQoKSBiZWZvcmUgZGVjb2RpbmcuIik7bGV0IEk9dC5ieXRlTGVuZ3RoLHI9WS5leHBvcnRzLm1hbGxvYyhJKTtCdC5zZXQodCxyKSxlPWV8fE51bWJlcihZLmV4cG9ydHMuWlNURF9maW5kRGVjb21wcmVzc2VkU2l6ZShyLEkpKTtsZXQgbz1ZLmV4cG9ydHMubWFsbG9jKGUpLGc9WS5leHBvcnRzLlpTVERfZGVjb21wcmVzcyhvLGUscixJKSxDPUJ0LnNsaWNlKG8sbytnKTtyZXR1cm4gWS5leHBvcnRzLmZyZWUociksWS5leHBvcnRzLmZyZWUobyksQ319LHJlPSJBR0Z6YlFFQUFBQUJiZzVnQTM5L2Z3Ri9ZQUYvQVg5Z0FuOS9BR0FCZndCZ0JYOS9mMzkvQVg5Z0EzOS9md0JnQkg5L2YzOEJmMkFBQVg5Z0FuOS9BWDlnQjM5L2YzOS9mMzhCZjJBQ2YzOEJmbUFJZjM5L2YzOS9mMzhCZjJBRmYzOS9mMzhBWUE1L2YzOS9mMzkvZjM5L2YzOS9md0YvQWljQkEyVnVkaDlsYlhOamNtbHdkR1Z1WDI1dmRHbG1lVjl0WlcxdmNubGZaM0p2ZDNSb0FBTURJeUlIQUFBQkFRTUhBd0VBQ1FRQUJRRUlDQUVGQmdRRUJBTUdBQUFLQUFVTERBMEdCQVVCY0FFQkFRVUhBUUdBQW9DQUFnWUlBWDhCUVlDakJBc0hyZ0VMQm0xbGJXOXllUUlBQm0xaGJHeHZZd0FGQkdaeVpXVUFCZ3hhVTFSRVgybHpSWEp5YjNJQUVobGFVMVJFWDJacGJtUkVaV052YlhCeVpYTnpaV1JUYVhwbEFCd1BXbE5VUkY5a1pXTnZiWEJ5WlhOekFDSVpYMTlwYm1ScGNtVmpkRjltZFc1amRHbHZibDkwWVdKc1pRRUFFRjlmWlhKeWJtOWZiRzlqWVhScGIyNEFBUWx6ZEdGamExTmhkbVVBQnd4emRHRmphMUpsYzNSdmNtVUFDQXB6ZEdGamEwRnNiRzlqQUFrS2kvSUJJZ1VBUVlRZkN6TUJBWDhnQWdSQUlBQWhBd05BSUFNZ0FTMEFBRG9BQUNBRFFRRnFJUU1nQVVFQmFpRUJJQUpCQVdzaUFnMEFDd3NnQUFzcEFRRi9JQUlFUUNBQUlRTURRQ0FESUFFNkFBQWdBMEVCYWlFRElBSkJBV3NpQWcwQUN3c2dBQXRzQVFKL1FZQWZLQUlBSWdFZ0FFRUhha0Y0Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQS9BRUVRZEd0Qi8vOERha0VRZGtBQVFYOUdCSDlCQUFWQkFCQUFRUUVMUlEwQkMwR0FIeUFBTmdJQUlBRVBDMEdFSDBFd05nSUFRWDhMdVNjQkMzOGpBRUVRYXlJS0pBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUJCOUFGTkJFQkJpQjhvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUJVRURkaUlBZGlJQlFRTnhCRUFDUUNBQlFYOXpRUUZ4SUFCcUlnSkJBM1FpQVVHd0gyb2lBQ0FCUWJnZmFpZ0NBQ0lCS0FJSUlnUkdCRUJCaUI4Z0JrRitJQUozY1RZQ0FBd0JDeUFFSUFBMkFnd2dBQ0FFTmdJSUN5QUJRUWhxSVFBZ0FTQUNRUU4wSWdKQkEzSTJBZ1FnQVNBQ2FpSUJJQUVvQWdSQkFYSTJBZ1FNRHdzZ0JVR1FIeWdDQUNJSFRRMEJJQUVFUUFKQVFRSWdBSFFpQWtFQUlBSnJjaUFCSUFCMGNXZ2lBVUVEZENJQVFiQWZhaUlDSUFCQnVCOXFLQUlBSWdBb0FnZ2lCRVlFUUVHSUh5QUdRWDRnQVhkeElnWTJBZ0FNQVFzZ0JDQUNOZ0lNSUFJZ0JEWUNDQXNnQUNBRlFRTnlOZ0lFSUFBZ0JXb2lDQ0FCUVFOMElnRWdCV3NpQkVFQmNqWUNCQ0FBSUFGcUlBUTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRRkJuQjhvQWdBaEFnSi9JQVpCQVNBSFFRTjJkQ0lEY1VVRVFFR0lIeUFESUFaeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQXlBQklBSTJBZ2dnQXlBQ05nSU1JQUlnQVRZQ0RDQUNJQU0yQWdnTElBQkJDR29oQUVHY0h5QUlOZ0lBUVpBZklBUTJBZ0FNRHd0QmpCOG9BZ0FpQzBVTkFTQUxhRUVDZEVHNElXb29BZ0FpQWlnQ0JFRjRjU0FGYXlFRElBSWhBUU5BQWtBZ0FTZ0NFQ0lBUlFSQUlBRW9BaFFpQUVVTkFRc2dBQ2dDQkVGNGNTQUZheUlCSUFNZ0FTQURTU0lCR3lFRElBQWdBaUFCR3lFQ0lBQWhBUXdCQ3dzZ0FpZ0NHQ0VKSUFJZ0FpZ0NEQ0lFUndSQVFaZ2ZLQUlBR2lBQ0tBSUlJZ0FnQkRZQ0RDQUVJQUEyQWdnTURnc2dBa0VVYWlJQktBSUFJZ0JGQkVBZ0FpZ0NFQ0lBUlEwRElBSkJFR29oQVFzRFFDQUJJUWdnQUNJRVFSUnFJZ0VvQWdBaUFBMEFJQVJCRUdvaEFTQUVLQUlRSWdBTkFBc2dDRUVBTmdJQURBMExRWDhoQlNBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFRlFZd2ZLQUlBSWdoRkRRQkJBQ0FGYXlFREFrQUNRQUpBQW45QkFDQUZRWUFDU1EwQUdrRWZJQVZCLy8vL0Iwc05BQm9nQlVFbUlBQkJDSFpuSWdCcmRrRUJjU0FBUVFGMGEwRSthZ3NpQjBFQ2RFRzRJV29vQWdBaUFVVUVRRUVBSVFBTUFRdEJBQ0VBSUFWQkdTQUhRUUYyYTBFQUlBZEJIMGNiZENFQ0EwQUNRQ0FCS0FJRVFYaHhJQVZySWdZZ0EwOE5BQ0FCSVFRZ0JpSUREUUJCQUNFRElBRWhBQXdEQ3lBQUlBRW9BaFFpQmlBR0lBRWdBa0VkZGtFRWNXb29BaEFpQVVZYklBQWdCaHNoQUNBQ1FRRjBJUUlnQVEwQUN3c2dBQ0FFY2tVRVFFRUFJUVJCQWlBSGRDSUFRUUFnQUd0eUlBaHhJZ0JGRFFNZ0FHaEJBblJCdUNGcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJQ0lBTkpJUUVnQWlBRElBRWJJUU1nQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBRFFaQWZLQUlBSUFWclR3MEFJQVFvQWhnaEJ5QUVJQVFvQWd3aUFrY0VRRUdZSHlnQ0FCb2dCQ2dDQ0NJQUlBSTJBZ3dnQWlBQU5nSUlEQXdMSUFSQkZHb2lBU2dDQUNJQVJRUkFJQVFvQWhBaUFFVU5BeUFFUVJCcUlRRUxBMEFnQVNFR0lBQWlBa0VVYWlJQktBSUFJZ0FOQUNBQ1FSQnFJUUVnQWlnQ0VDSUFEUUFMSUFaQkFEWUNBQXdMQ3lBRlFaQWZLQUlBSWdSTkJFQkJuQjhvQWdBaEFBSkFJQVFnQldzaUFVRVFUd1JBSUFBZ0JXb2lBaUFCUVFGeU5nSUVJQUFnQkdvZ0FUWUNBQ0FBSUFWQkEzSTJBZ1FNQVFzZ0FDQUVRUU55TmdJRUlBQWdCR29pQVNBQktBSUVRUUZ5TmdJRVFRQWhBa0VBSVFFTFFaQWZJQUUyQWdCQm5COGdBallDQUNBQVFRaHFJUUFNRFFzZ0JVR1VIeWdDQUNJQ1NRUkFRWlFmSUFJZ0JXc2lBVFlDQUVHZ0gwR2dIeWdDQUNJQUlBVnFJZ0kyQWdBZ0FpQUJRUUZ5TmdJRUlBQWdCVUVEY2pZQ0JDQUFRUWhxSVFBTURRdEJBQ0VBSUFWQkwyb2lBd0ovUWVBaUtBSUFCRUJCNkNJb0FnQU1BUXRCN0NKQ2Z6Y0NBRUhrSWtLQW9JQ0FnSUFFTndJQVFlQWlJQXBCREdwQmNIRkIyS3JWcWdWek5nSUFRZlFpUVFBMkFnQkJ4Q0pCQURZQ0FFR0FJQXNpQVdvaUJrRUFJQUZySWdoeElnRWdCVTBOREVIQUlpZ0NBQ0lFQkVCQnVDSW9BZ0FpQnlBQmFpSUpJQWROSUFRZ0NVbHlEUTBMQWtCQnhDSXRBQUJCQkhGRkJFQUNRQUpBQWtBQ1FFR2dIeWdDQUNJRUJFQkJ5Q0loQUFOQUlBUWdBQ2dDQUNJSFR3UkFJQWNnQUNnQ0JHb2dCRXNOQXdzZ0FDZ0NDQ0lBRFFBTEMwRUFFQVFpQWtGL1JnMERJQUVoQmtIa0lpZ0NBQ0lBUVFGcklnUWdBbkVFUUNBQklBSnJJQUlnQkdwQkFDQUFhM0ZxSVFZTElBVWdCazhOQTBIQUlpZ0NBQ0lBQkVCQnVDSW9BZ0FpQkNBR2FpSUlJQVJOSUFBZ0NFbHlEUVFMSUFZUUJDSUFJQUpIRFFFTUJRc2dCaUFDYXlBSWNTSUdFQVFpQWlBQUtBSUFJQUFvQWdScVJnMEJJQUloQUFzZ0FFRi9SZzBCSUFWQk1Hb2dCazBFUUNBQUlRSU1CQXRCNkNJb0FnQWlBaUFESUFacmFrRUFJQUpyY1NJQ0VBUkJmMFlOQVNBQ0lBWnFJUVlnQUNFQ0RBTUxJQUpCZjBjTkFndEJ4Q0pCeENJb0FnQkJCSEkyQWdBTElBRVFCQ0lDUVg5R1FRQVFCQ0lBUVg5R2NpQUFJQUpOY2cwRklBQWdBbXNpQmlBRlFTaHFUUTBGQzBHNElrRzRJaWdDQUNBR2FpSUFOZ0lBUWJ3aUtBSUFJQUJKQkVCQnZDSWdBRFlDQUFzQ1FFR2dIeWdDQUNJREJFQkJ5Q0loQUFOQUlBSWdBQ2dDQUNJQklBQW9BZ1FpQkdwR0RRSWdBQ2dDQ0NJQURRQUxEQVFMUVpnZktBSUFJZ0JCQUNBQUlBSk5HMFVFUUVHWUh5QUNOZ0lBQzBFQUlRQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFhZ2ZRWDgyQWdCQnJCOUI0Q0lvQWdBMkFnQkIxQ0pCQURZQ0FBTkFJQUJCQTNRaUFVRzRIMm9nQVVHd0gyb2lCRFlDQUNBQlFid2ZhaUFFTmdJQUlBQkJBV29pQUVFZ1J3MEFDMEdVSHlBR1FTaHJJZ0JCZUNBQ2EwRUhjU0lCYXlJRU5nSUFRYUFmSUFFZ0Ftb2lBVFlDQUNBQklBUkJBWEkyQWdRZ0FDQUNha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQVFMSUFJZ0EwMGdBU0FEUzNJTkFpQUFLQUlNUVFoeERRSWdBQ0FFSUFacU5nSUVRYUFmSUFOQmVDQURhMEVIY1NJQWFpSUJOZ0lBUVpRZlFaUWZLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFNTFFRQWhCQXdLQzBFQUlRSU1DQXRCbUI4b0FnQWdBa3NFUUVHWUh5QUNOZ0lBQ3lBQ0lBWnFJUUZCeUNJaEFBSkFBa0FDUUFOQUlBRWdBQ2dDQUVjRVFDQUFLQUlJSWdBTkFRd0NDd3NnQUMwQURFRUljVVVOQVF0QnlDSWhBQU5BSUFNZ0FDZ0NBQ0lCVHdSQUlBRWdBQ2dDQkdvaUJDQURTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUkyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUpCZUNBQ2EwRUhjV29pQnlBRlFRTnlOZ0lFSUFGQmVDQUJhMEVIY1dvaUJpQUZJQWRxSWdWcklRQWdBeUFHUmdSQVFhQWZJQVUyQWdCQmxCOUJsQjhvQWdBZ0FHb2lBRFlDQUNBRklBQkJBWEkyQWdRTUNBdEJuQjhvQWdBZ0JrWUVRRUdjSHlBRk5nSUFRWkFmUVpBZktBSUFJQUJxSWdBMkFnQWdCU0FBUVFGeU5nSUVJQUFnQldvZ0FEWUNBQXdJQ3lBR0tBSUVJZ05CQTNGQkFVY05CaUFEUVhoeElRa2dBMEgvQVUwRVFDQUdLQUlNSWdFZ0JpZ0NDQ0lDUmdSQVFZZ2ZRWWdmS0FJQVFYNGdBMEVEZG5keE5nSUFEQWNMSUFJZ0FUWUNEQ0FCSUFJMkFnZ01CZ3NnQmlnQ0dDRUlJQVlnQmlnQ0RDSUNSd1JBSUFZb0FnZ2lBU0FDTmdJTUlBSWdBVFlDQ0F3RkN5QUdRUlJxSWdFb0FnQWlBMFVFUUNBR0tBSVFJZ05GRFFRZ0JrRVFhaUVCQ3dOQUlBRWhCQ0FESWdKQkZHb2lBU2dDQUNJRERRQWdBa0VRYWlFQklBSW9BaEFpQXcwQUN5QUVRUUEyQWdBTUJBdEJsQjhnQmtFb2F5SUFRWGdnQW10QkIzRWlBV3NpQ0RZQ0FFR2dIeUFCSUFKcUlnRTJBZ0FnQVNBSVFRRnlOZ0lFSUFBZ0FtcEJLRFlDQkVHa0gwSHdJaWdDQURZQ0FDQURJQVJCSnlBRWEwRUhjV3BCTDJzaUFDQUFJQU5CRUdwSkd5SUJRUnMyQWdRZ0FVSFFJaWtDQURjQ0VDQUJRY2dpS1FJQU53SUlRZEFpSUFGQkNHbzJBZ0JCekNJZ0JqWUNBRUhJSWlBQ05nSUFRZFFpUVFBMkFnQWdBVUVZYWlFQUEwQWdBRUVITmdJRUlBQkJDR29nQUVFRWFpRUFJQVJKRFFBTElBRWdBMFlOQUNBQklBRW9BZ1JCZm5FMkFnUWdBeUFCSUFOcklnSkJBWEkyQWdRZ0FTQUNOZ0lBSUFKQi93Rk5CRUFnQWtGNGNVR3dIMm9oQUFKL1FZZ2ZLQUlBSWdGQkFTQUNRUU4yZENJQ2NVVUVRRUdJSHlBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFTQUFJQU0yQWdnZ0FTQUROZ0lNSUFNZ0FEWUNEQ0FESUFFMkFnZ01BUXRCSHlFQUlBSkIvLy8vQjAwRVFDQUNRU1lnQWtFSWRtY2lBR3QyUVFGeElBQkJBWFJyUVQ1cUlRQUxJQU1nQURZQ0hDQURRZ0EzQWhBZ0FFRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlCRUVCSUFCMElnWnhSUVJBUVl3ZklBUWdCbkkyQWdBZ0FTQUROZ0lBREFFTElBSkJHU0FBUVFGMmEwRUFJQUJCSDBjYmRDRUFJQUVvQWdBaEJBTkFJQVFpQVNnQ0JFRjRjU0FDUmcwQ0lBQkJIWFloQkNBQVFRRjBJUUFnQVNBRVFRUnhhaUlHS0FJUUlnUU5BQXNnQmlBRE5nSVFDeUFESUFFMkFoZ2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUJLQUlJSWdBZ0F6WUNEQ0FCSUFNMkFnZ2dBMEVBTmdJWUlBTWdBVFlDRENBRElBQTJBZ2dMUVpRZktBSUFJZ0FnQlUwTkFFR1VIeUFBSUFWcklnRTJBZ0JCb0I5Qm9COG9BZ0FpQUNBRmFpSUNOZ0lBSUFJZ0FVRUJjallDQkNBQUlBVkJBM0kyQWdRZ0FFRUlhaUVBREFnTFFZUWZRVEEyQWdCQkFDRUFEQWNMUVFBaEFnc2dDRVVOQUFKQUlBWW9BaHdpQVVFQ2RFRzRJV29pQkNnQ0FDQUdSZ1JBSUFRZ0FqWUNBQ0FDRFFGQmpCOUJqQjhvQWdCQmZpQUJkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FHUmh0cUlBSTJBZ0FnQWtVTkFRc2dBaUFJTmdJWUlBWW9BaEFpQVFSQUlBSWdBVFlDRUNBQklBSTJBaGdMSUFZb0FoUWlBVVVOQUNBQ0lBRTJBaFFnQVNBQ05nSVlDeUFBSUFscUlRQWdCaUFKYWlJR0tBSUVJUU1MSUFZZ0EwRitjVFlDQkNBRklBQkJBWEkyQWdRZ0FDQUZhaUFBTmdJQUlBQkIvd0ZOQkVBZ0FFRjRjVUd3SDJvaEFRSi9RWWdmS0FJQUlnSkJBU0FBUVFOMmRDSUFjVVVFUUVHSUh5QUFJQUp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBQ0FCSUFVMkFnZ2dBQ0FGTmdJTUlBVWdBVFlDRENBRklBQTJBZ2dNQVF0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFVZ0F6WUNIQ0FGUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQWtFQklBTjBJZ1J4UlFSQVFZd2ZJQUlnQkhJMkFnQWdBU0FGTmdJQURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBZ05BSUFJaUFTZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFpQURRUUYwSVFNZ0FTQUNRUVJ4YWlJRUtBSVFJZ0lOQUFzZ0JDQUZOZ0lRQ3lBRklBRTJBaGdnQlNBRk5nSU1JQVVnQlRZQ0NBd0JDeUFCS0FJSUlnQWdCVFlDRENBQklBVTJBZ2dnQlVFQU5nSVlJQVVnQVRZQ0RDQUZJQUEyQWdnTElBZEJDR29oQUF3Q0N3SkFJQWRGRFFBQ1FDQUVLQUljSWdCQkFuUkJ1Q0ZxSWdFb0FnQWdCRVlFUUNBQklBSTJBZ0FnQWcwQlFZd2ZJQWhCZmlBQWQzRWlDRFlDQUF3Q0N5QUhRUkJCRkNBSEtBSVFJQVJHRzJvZ0FqWUNBQ0FDUlEwQkN5QUNJQWMyQWhnZ0JDZ0NFQ0lBQkVBZ0FpQUFOZ0lRSUFBZ0FqWUNHQXNnQkNnQ0ZDSUFSUTBBSUFJZ0FEWUNGQ0FBSUFJMkFoZ0xBa0FnQTBFUFRRUkFJQVFnQXlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnSWdBMEVCY2pZQ0JDQUNJQU5xSUFNMkFnQWdBMEgvQVUwRVFDQURRWGh4UWJBZmFpRUFBbjlCaUI4b0FnQWlBVUVCSUFOQkEzWjBJZ054UlFSQVFZZ2ZJQUVnQTNJMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0FqWUNDQ0FCSUFJMkFnd2dBaUFBTmdJTUlBSWdBVFlDQ0F3QkMwRWZJUUFnQTBILy8vOEhUUVJBSUFOQkppQURRUWgyWnlJQWEzWkJBWEVnQUVFQmRHdEJQbW9oQUFzZ0FpQUFOZ0ljSUFKQ0FEY0NFQ0FBUVFKMFFiZ2hhaUVCQWtBQ1FDQUlRUUVnQUhRaUJuRkZCRUJCakI4Z0JpQUljallDQUNBQklBSTJBZ0FNQVFzZ0EwRVpJQUJCQVhaclFRQWdBRUVmUnh0MElRQWdBU2dDQUNFRkEwQWdCU0lCS0FJRVFYaHhJQU5HRFFJZ0FFRWRkaUVHSUFCQkFYUWhBQ0FCSUFaQkJIRnFJZ1lvQWhBaUJRMEFDeUFHSUFJMkFoQUxJQUlnQVRZQ0dDQUNJQUkyQWd3Z0FpQUNOZ0lJREFFTElBRW9BZ2dpQUNBQ05nSU1JQUVnQWpZQ0NDQUNRUUEyQWhnZ0FpQUJOZ0lNSUFJZ0FEWUNDQXNnQkVFSWFpRUFEQUVMQWtBZ0NVVU5BQUpBSUFJb0Fod2lBRUVDZEVHNElXb2lBU2dDQUNBQ1JnUkFJQUVnQkRZQ0FDQUVEUUZCakI4Z0MwRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFKR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBaWdDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FpZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFJZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQW1vaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFJZ0JVRURjallDQkNBQ0lBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQndSQUlBZEJlSEZCc0I5cUlRQkJuQjhvQWdBaEFRSi9RUUVnQjBFRGRuUWlCU0FHY1VVRVFFR0lIeUFGSUFaeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQmlBQUlBRTJBZ2dnQmlBQk5nSU1JQUVnQURZQ0RDQUJJQVkyQWdnTFFad2ZJQVEyQWdCQmtCOGdBellDQUFzZ0FrRUlhaUVBQ3lBS1FSQnFKQUFnQUF2U0N3RUhmd0pBSUFCRkRRQWdBRUVJYXlJQ0lBQkJCR3NvQWdBaUFVRjRjU0lBYWlFRkFrQWdBVUVCY1EwQUlBRkJBM0ZGRFFFZ0FpQUNLQUlBSWdGcklnSkJtQjhvQWdCSkRRRWdBQ0FCYWlFQUFrQUNRRUdjSHlnQ0FDQUNSd1JBSUFGQi93Rk5CRUFnQVVFRGRpRUVJQUlvQWd3aUFTQUNLQUlJSWdOR0JFQkJpQjlCaUI4b0FnQkJmaUFFZDNFMkFnQU1CUXNnQXlBQk5nSU1JQUVnQXpZQ0NBd0VDeUFDS0FJWUlRWWdBaUFDS0FJTUlnRkhCRUFnQWlnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBSkJGR29pQkNnQ0FDSURSUVJBSUFJb0FoQWlBMFVOQWlBQ1FSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZLQUlFSWdGQkEzRkJBMGNOQWtHUUh5QUFOZ0lBSUFVZ0FVRitjVFlDQkNBQ0lBQkJBWEkyQWdRZ0JTQUFOZ0lBRHd0QkFDRUJDeUFHUlEwQUFrQWdBaWdDSENJRFFRSjBRYmdoYWlJRUtBSUFJQUpHQkVBZ0JDQUJOZ0lBSUFFTkFVR01IMEdNSHlnQ0FFRitJQU4zY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFKR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFZMkFoZ2dBaWdDRUNJREJFQWdBU0FETmdJUUlBTWdBVFlDR0FzZ0FpZ0NGQ0lEUlEwQUlBRWdBellDRkNBRElBRTJBaGdMSUFJZ0JVOE5BQ0FGS0FJRUlnRkJBWEZGRFFBQ1FBSkFBa0FDUUNBQlFRSnhSUVJBUWFBZktBSUFJQVZHQkVCQm9COGdBallDQUVHVUgwR1VIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQ1Fad2ZLQUlBUncwR1FaQWZRUUEyQWdCQm5COUJBRFlDQUE4TFFad2ZLQUlBSUFWR0JFQkJuQjhnQWpZQ0FFR1FIMEdRSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUFJQUpxSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFnQVVIL0FVMEVRQ0FCUVFOMklRUWdCU2dDRENJQklBVW9BZ2dpQTBZRVFFR0lIMEdJSHlnQ0FFRitJQVIzY1RZQ0FBd0ZDeUFESUFFMkFnd2dBU0FETmdJSURBUUxJQVVvQWhnaEJpQUZJQVVvQWd3aUFVY0VRRUdZSHlnQ0FCb2dCU2dDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFWQkZHb2lCQ2dDQUNJRFJRUkFJQVVvQWhBaUEwVU5BaUFGUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRklBRkJmbkUyQWdRZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FBd0RDMEVBSVFFTElBWkZEUUFDUUNBRktBSWNJZ05CQW5SQnVDRnFJZ1FvQWdBZ0JVWUVRQ0FFSUFFMkFnQWdBUTBCUVl3ZlFZd2ZLQUlBUVg0Z0EzZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ01FUUNBQklBTTJBaEFnQXlBQk5nSVlDeUFGS0FJVUlnTkZEUUFnQVNBRE5nSVVJQU1nQVRZQ0dBc2dBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQ0FDUVp3ZktBSUFSdzBBUVpBZklBQTJBZ0FQQ3lBQVFmOEJUUVJBSUFCQmVIRkJzQjlxSVFFQ2YwR0lIeWdDQUNJRFFRRWdBRUVEZG5RaUFIRkZCRUJCaUI4Z0FDQURjallDQUNBQkRBRUxJQUVvQWdnTElRQWdBU0FDTmdJSUlBQWdBallDRENBQ0lBRTJBZ3dnQWlBQU5nSUlEd3RCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQUlnQXpZQ0hDQUNRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0FDUUVHTUh5Z0NBQ0lFUVFFZ0EzUWlCM0ZGQkVCQmpCOGdCQ0FIY2pZQ0FDQUJJQUkyQWdBZ0FpQUJOZ0lZREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFRTkFJQUVpQkNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQVNBRFFRRjBJUU1nQkNBQlFRUnhhaUlIUVJCcUtBSUFJZ0VOQUFzZ0J5QUNOZ0lRSUFJZ0JEWUNHQXNnQWlBQ05nSU1JQUlnQWpZQ0NBd0JDeUFFS0FJSUlnQWdBallDRENBRUlBSTJBZ2dnQWtFQU5nSVlJQUlnQkRZQ0RDQUNJQUEyQWdnTFFhZ2ZRYWdmS0FJQVFRRnJJZ0JCZnlBQUd6WUNBQXNMQkFBakFBc0dBQ0FBSkFBTEVBQWpBQ0FBYTBGd2NTSUFKQUFnQUF0S0FRRi9JQUFnQVVrRVFDQUFJQUVnQWhBQ0R3c2dBZ1JBSUFBZ0Ftb2hBeUFCSUFKcUlRRURRQ0FEUVFGcklnTWdBVUVCYXlJQkxRQUFPZ0FBSUFKQkFXc2lBZzBBQ3dzZ0FBdjlEZ0lSZndGK0l3QkJNR3NpQnlRQVFiaC9JUWdDUUNBRlJRMEFJQVFzQUFBaUNVSC9BWEVoQ3dKQUlBbEJBRWdFUUNBTFFmNEFhMEVCZGlJR0lBVlBEUUpCYkNFSUlBdEIvd0JySWd0Qi93RkxEUUlnQkVFQmFpRUlRUUFoQlFOQUlBVWdDMDhFUUNBTElRZ2dCaUVMREFNRklBQWdCV29nQ0NBRlFRRjJhaUlFTFFBQVFRUjJPZ0FBSUFBZ0JVRUJjbW9nQkMwQUFFRVBjVG9BQUNBRlFRSnFJUVVNQVFzQUN3QUxJQVVnQzAwTkFTQUhRZjhCTmdJRUlBWWdCMEVFYWlBSFFRaHFJQVJCQVdvaURpQUxFQXdpQkVHSWYwc0VRQ0FFSVFnTUFndEJWQ0VJSUFjb0FnZ2lFRUVHU3cwQklBY29BZ1FpRVVFQmRDSUpRUUpxclVJQklCQ3RoaUlZUVFFZ0VIUWlEVUVCYWlJRnJVSUNobng4UWd0OFF2ei8vLy8vLy8vLy93Q0RRdVFDVmcwQlFWSWhDQ0FSUWY4QlN3MEJJQTFCZjNOQkFuUkI1QUpxclNBUlFRRnFJaFZCQVhTdElCaDhRZ2g4VkEwQklBc2dCR3NoRmlBRUlBNXFJUmNnQmtHQUJHb2lFaUFGUVFKMGFpSVJJQWxxUVFKcUlRNGdCa0dFQkdvaEUwR0FnQUlnRUhSQkVIWWhDVUVBSVFWQkFTRVBJQTFCQVdzaUZDRUtBMEFnQlNBVlJrVUVRQUpBSUFZZ0JVRUJkQ0lJYWk4QkFDSUVRZi8vQTBZRVFDQVRJQXBCQW5ScUlBVTZBQUlnQ2tFQmF5RUtRUUVoQkF3QkN5QVBRUUFnQ1NBRXdVb2JJUThMSUFnZ0VXb2dCRHNCQUNBRlFRRnFJUVVNQVFzTElBWWdEenNCZ2dRZ0JpQVFPd0dBQkFKQUlBb2dGRVlFUUNBTlFRTjJJUWhDQUNFWVFRQWhEd05BSUF3Z0ZVWUVRQ0FJSUExQkFYWnFRUU5xSWdsQkFYUWhDRUVBSVFSQkFDRUtBMEJCQUNFRklBb2dEVThOQkFOQUlBVkJBa1pGQkVBZ0V5QUZJQWxzSUFScUlCUnhRUUowYWlBT0lBVWdDbXBxTFFBQU9nQUNJQVZCQVdvaEJRd0JDd3NnQ2tFQ2FpRUtJQVFnQ0dvZ0ZIRWhCQXdBQ3dBRklBWWdERUVCZEdvdUFRQWhDU0FPSUE5cUlnUWdHRGNBQUVFSUlRVURRQ0FGSUFsT1JRUkFJQVFnQldvZ0dEY0FBQ0FGUVFocUlRVU1BUXNMSUJoQ2dZS0VpSkNnd0lBQmZDRVlJQXhCQVdvaERDQUpJQTlxSVE4TUFRc0FDd0FMSUExQkEzWWdEVUVCZG1wQkEyb2hDRUVBSVFVRFFDQU1JQlZHUlFSQVFRQWhDU0FHSUF4QkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FKUmtVRVFDQVRJQVZCQW5ScUlBdzZBQUlEUUNBRklBaHFJQlJ4SWdVZ0Nrc05BQXNnQ1VFQmFpRUpEQUVMQ3lBTVFRRnFJUXdNQVFzTFFYOGhDQ0FGRFFJTElCQkJBV29oQ0VFQUlRVURRQ0FGSUExR1JRUkFJQkVnRXlBRlFRSjBhaUlPTFFBQ1FRRjBhaUlFSUFRdkFRQWlDVUVCYWpzQkFDQU9JQWdnQ1dkQllITnFJZ1E2QUFNZ0RpQUpJQVIwSUExck93RUFJQVZCQVdvaEJRd0JDd3NDUUFKQUlBWXZBWUlFQkVBZ0IwRWNhaUlFSUJjZ0ZoQU5JZ2hCaUg5TERRSWdCMEVVYWlBRUlCSVFEaUFIUVF4cUlBUWdFaEFPUVFBaEJRTkFJQWRCSEdvaUJCQVBJQVZCK3dGTGNnMENJQUFnQldvaUJpQUhRUlJxSUFRUUVEb0FBQ0FHSUFkQkRHb2dCQkFRT2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVU1Bd1VnQUNBRWFpQUhRUlJxSUFkQkhHb2lCQkFRT2dBQUlBWWdCMEVNYWlBRUVCQTZBQU1nQlVFRWFpRUZEQUVMQUFzQUN5QUhRUnhxSWdRZ0Z5QVdFQTBpQ0VHSWYwc05BU0FIUVJScUlBUWdFaEFPSUFkQkRHb2dCQ0FTRUE1QkFDRUZBMEFnQjBFY2FpSUVFQThnQlVIN0FVdHlSUVJBSUFBZ0JXb2lCaUFIUVJScUlBUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVGSUFBZ0JHb2dCMEVVYWlBSFFSeHFJZ1FRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FESUFWQkJHb2hCUXdDQ3dzTEFuOERRRUc2ZnlFSUlBVkIvUUZMRFFNZ0FDQUZhaUlHSUFkQkZHb2dCMEVjYWlJSkVCRTZBQUFnQmtFQmFpRUVJQWtRRDBFRFJnUkFJQWRCREdvaENFRUNEQUlMSUFWQi9BRkxEUU1nQmlBSFFReHFJQWRCSEdvaUJCQVJPZ0FCSUFWQkFtb2hCU0FFRUE5QkEwY05BQXNnQUNBRmFpRUVJQWRCRkdvaENFRURDeUFFSUFnZ0IwRWNhaEFST2dBQUlBWnFJQUJySVFnTUFRc0Nmd05BUWJwL0lRZ2dCVUg5QVVzTkFpQUFJQVZxSWdZZ0IwRVVhaUFIUVJ4cUlna1FFRG9BQUNBR1FRRnFJUVFnQ1JBUFFRTkdCRUFnQjBFTWFpRUlRUUlNQWdzZ0JVSDhBVXNOQWlBR0lBZEJER29nQjBFY2FpSUVFQkE2QUFFZ0JVRUNhaUVGSUFRUUQwRURSdzBBQ3lBQUlBVnFJUVFnQjBFVWFpRUlRUU1MSUFRZ0NDQUhRUnhxRUJBNkFBQWdCbW9nQUdzaENBc2dDRUdJZjBzTkFRc2dDQ0VFUVFBaEJTQUJRUUJCTkJBRElRbEJBQ0VLQTBBZ0JDQUZSd1JBSUFBZ0JXb2lCaTBBQUNJQlFRdExCRUJCYkNFSURBTUZJQWtnQVVFQ2RHb2lBU0FCS0FJQVFRRnFOZ0lBSUFWQkFXb2hCVUVCSUFZdEFBQjBRUUYxSUFwcUlRb01BZ3NBQ3d0QmJDRUlJQXBGRFFBZ0NtY2lCVUVmY3lJQlFRdExEUUFnQTBFZ0lBVnJOZ0lBUVFGQkFpQUJkQ0FLYXlJRFowRWZjeUlCZENBRFJ3MEFJQUFnQkdvZ0FVRUJhaUlBT2dBQUlBa2dBRUVDZEdvaUFDQUFLQUlBUVFGcU5nSUFJQWtvQWdRaUFFRUNTU0FBUVFGeGNnMEFJQUlnQkVFQmFqWUNBQ0FMUVFGcUlRZ0xJQWRCTUdva0FDQUlDNkFGQVF4L0l3QkJFR3NpRENRQUFuOGdCRUVIVFFSQUlBeENBRGNEQ0NBTVFRaHFJZ1VnQXlBRUVBSWFRV3dnQUNBQklBSWdCVUVJRUF3aUFDQUFJQVJMR3lBQUlBQkJpWDlKR3d3QkN5QUFRUUFnQVNnQ0FFRUJhaUlOUVFGMEVBTWhEMEZVSUFNb0FBQWlCa0VQY1NJQVFRcExEUUFhSUFJZ0FFRUZhallDQUNBRElBUnFJZ0pCQkdzaEJ5QUNRUWRySVFzZ0FFRUdhaUVPUVFRaEFpQUdRUVIySVFWQklDQUFkQ0lJUVFGeUlRbEJBQ0VBUVFFaEJpQURJUVFEUUFKQUlBWkJBWEZGQkVBRFFDQUZRWDl6UVlDQWdJQjRjbWdpQmtFWVNVVUVRQ0FBUVNScUlRQWdCQ0FMVFFSL0lBUkJBMm9GSUFRZ0MydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xJQUlnQmtFZWNTSUtha0VDYWlFQ0lBWkJBWFpCQTJ3Z0FHb2dCU0FLZGtFRGNXb2lBQ0FOVHcwQkFuOGdCQ0FMU3lBQ1FRTjJJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBUWdCMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVUxJQVVnQ0VFQmEzRWlCaUFJUVFGMFFRRnJJZ29nQ1dzaUVFa0VmeUFPUVFGckJTQUZJQXB4SWdVZ0VFRUFJQVVnQ0U0YmF5RUdJQTRMSVFVZ0R5QUFRUUYwYWlBR1FRRnJJZ283QVFBZ0FFRUJhaUVBSUFJZ0JXb2hBaUFJUVFFZ0Jtc2dDaUFHUVFCS0d5QUphaUlKU2dSQUlBbEJBa2dOQVVFZ0lBbG5JZ1ZySVE1QkFTQUZRUjl6ZENFSUN5QUFJQTFQRFFBZ0NrRUFSeUVHQW44Z0JDQUxTeUFDUVFOMUlBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFJZ0JDQUhhMEVEZEdwQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTUFRc0xRV3dnQ1VFQlJ3MEFHa0ZRSUFBZ0RVc05BQnBCYkNBQ1FTQktEUUFhSUFFZ0FFRUJhellDQUNBRUlBSkJCMnBCQTNWcUlBTnJDeUFNUVJCcUpBQUw4Z0VCQVg4Z0FrVUVRQ0FBUWdBM0FnQWdBRUVBTmdJUUlBQkNBRGNDQ0VHNGZ3OExJQUFnQVRZQ0RDQUFJQUZCQkdvMkFoQWdBa0VFVHdSQUlBQWdBU0FDYWlJQlFRUnJJZ00yQWdnZ0FDQURLQUFBTmdJQUlBRkJBV3N0QUFBaUFRUkFJQUFnQVdkQkYyczJBZ1FnQWc4TElBQkJBRFlDQkVGL0R3c2dBQ0FCTmdJSUlBQWdBUzBBQUNJRE5nSUFBa0FDUUFKQUlBSkJBbXNPQWdFQUFnc2dBQ0FCTFFBQ1FSQjBJQU55SWdNMkFnQUxJQUFnQVMwQUFVRUlkQ0FEYWpZQ0FBc2dBU0FDYWtFQmF5MEFBQ0lCUlFSQUlBQkJBRFlDQkVGc0R3c2dBQ0FCWnlBQ1FRTjBhMEVKYWpZQ0JDQUNDMFFCQW44Z0FTQUNMd0VBSWdNZ0FTZ0NCR29pQkRZQ0JDQUFJQU5CQW5SQm9CMXFLQUlBSUFFb0FnQkJBQ0FFYTNaeE5nSUFJQUVRRHhvZ0FDQUNRUVJxTmdJRUM1OEJBUVIvUVFNaEFTQUFLQUlFSWdKQklFMEVRQ0FBS0FJSUlnRWdBQ2dDRUU4RVFDQUFJQUpCQjNFMkFnUWdBQ0FCSUFKQkEzWnJJZ0kyQWdnZ0FDQUNLQUFBTmdJQVFRQVBDeUFBS0FJTUlnTWdBVVlFUUVFQlFRSWdBa0VnU1JzUEN5QUFJQUVnQVNBRGF5QUNRUU4ySWdRZ0FTQUVheUFEU1NJQkd5SURheUlFTmdJSUlBQWdBaUFEUVFOMGF6WUNCQ0FBSUFRb0FBQTJBZ0FMSUFFTFNBRUVmeUFBS0FJRUlBQW9BZ0JCQW5ScUlnSXRBQUlnQWk4QkFDRUVJQUVnQVNnQ0JDSUZJQUl0QUFNaUFtbzJBZ1FnQUNBRUlBRW9BZ0FnQlhSQkFDQUNhM1pxTmdJQUMxSUJCSDhnQUNnQ0JDQUFLQUlBUVFKMGFpSUNMUUFDSUFJdkFRQWhCQ0FCSUFJdEFBTWlBaUFCS0FJRWFpSUZOZ0lFSUFBZ0JDQUNRUUowUWFBZGFpZ0NBQ0FCS0FJQVFRQWdCV3QyY1dvMkFnQUxDQUFnQUVHSWYwc0xHZ0FnQUFSQUlBRUVRQ0FDSUFBZ0FSRUNBQThMSUFBUUJnc0xwZ2dDRFg4QmZpTUFRUkJySWdra0FDQUpRUUEyQWd3Z0NVRUFOZ0lJQW44Q1FDQURRZWdKYWlBRElBbEJDR29nQ1VFTWFpQUJJQUlnQTBHQUFXb1FDeUlQUVloL1N3MEFRVlFnQ1NnQ0RDSUVJQUFvQWdBaUFVSC9BWEZCQVdwTERRRWFJQUJCQkdvaEN5QUFJQUZCLzRHQWVIRWdCRUVRZEVHQWdQd0hjWEkyQWdCQmZ5QUVJQVJCQUVnYlFRRnFJUUJCQUNFQklBa29BZ2doQlVFQUlRSURRQ0FBSUFKR0JFQWdCVUVEYXlFQlFRQWhBQU5BQWtCQkFDRUNJQUFnQVU0RVFBTkFJQUFnQlU0TkFpQURJQUFnQTJwQjZBbHFMUUFBUVFKMGFrRkFheUlCSUFFb0FnQWlBVUVCYWpZQ0FDQUJJQU5xSUFBNkFPZ0hJQUJCQVdvaEFBd0FDd0FGQTBBZ0FrRUVSa1VFUUNBRElBTWdBQ0FDYWlJSGFrSG9DV290QUFCQkFuUnFRVUJySWdnZ0NDZ0NBQ0lJUVFGcU5nSUFJQU1nQ0dvZ0J6b0E2QWNnQWtFQmFpRUNEQUVMQ3lBQVFRUnFJUUFNQWdzQUN3c2dCRUVCYWlFT0lBTW9BZ0FoQjBFQUlRQkJBU0VJQTBBZ0NDQU9SZzBESUE0Z0NHc2hCQ0FESUFoQkFuUnFLQUlBSVFVQ1FBSkFBa0FDUUFKQUFrQkJBU0FJZEVFQmRTSU5RUUZyRGdnQUFRUUNCQVFFQXdRTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBQUlRRURRQ0FDSUFaR0RRVWdBeUFDSUFkcWFpMEE2QWNoQ2lBTElBRkJBWFJxSWd3Z0JEb0FBU0FNSUFvNkFBQWdBa0VCYWlFQ0lBRkJBV29oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaENpQUFJUUVEUUNBQ0lBcEdEUVFnQ3lBQlFRRjBhaUlHSUFNZ0FpQUhhbW90QU9nSElndzZBQUlnQmlBRU9nQUJJQVlnRERvQUFDQUdJQVE2QUFNZ0FrRUJhaUVDSUFGQkFtb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQmlBRVFRaDBRWUQrQTNFaEJDQUFJUUVEUUNBQ0lBWkdEUU1nQ3lBQlFRRjBhaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitOd0FBSUFKQkFXb2hBaUFCUVFScUlRRU1BQXNBQzBFQUlRSWdCVUVBSUFWQkFFb2JJUVlnQkVFSWRFR0EvZ054SVFRZ0FDRUJBMEFnQWlBR1JnMENJQXNnQVVFQmRHb2lDaUFFSUFNZ0FpQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJaEUzQUFnZ0NpQVJOd0FBSUFKQkFXb2hBaUFCUVFocUlRRU1BQXNBQzBFQUlRRWdCVUVBSUFWQkFFb2JJUW9nQkVFSWRFR0EvZ054SVF3Z0FDRUVBMEFnQVNBS1JnMEJJQXNnQkVFQmRHb2hFQ0FNSUFNZ0FTQUhhbW90QU9nSGNxMUNnWUNFZ0pDQXdBQitJUkZCQUNFQ0EwQWdBaUFOVGtVRVFDQVFJQUpCQVhScUlnWWdFVGNBR0NBR0lCRTNBQkFnQmlBUk53QUlJQVlnRVRjQUFDQUNRUkJxSVFJTUFRc0xJQUZCQVdvaEFTQUVJQTFxSVFRTUFBc0FDeUFJUVFGcUlRZ2dCU0FIYWlFSElBVWdEV3dnQUdvaEFBd0FDd0FGSUFNZ0FrRUNkR29pQjBGQWF5QUJOZ0lBSUFKQkFXb2hBaUFIS0FJQUlBRnFJUUVNQVFzQUN3QUxJQThMSUFsQkVHb2tBQXZ5QWdFR2Z5TUFRU0JySWdVa0FDQUVLQUlBSVFZZ0JVRU1haUFDSUFNUURTSURRWWgvVFFSQUlBUkJCR29oQWlBQUlBRnFJZ2xCQTJzaEJFRUFJQVpCRUhaclFSOXhJUU1EUUNBRlFReHFFQThnQUNBRVQzSkZCRUFnQWlBRktBSU1JZ1lnQlNnQ0VDSUhkQ0FEZGtFQmRHb2lDQzBBQVNFS0lBQWdDQzBBQURvQUFDQUNJQVlnQnlBS2FpSUdkQ0FEZGtFQmRHb2lCeTBBQUNFSUlBVWdCaUFITFFBQmFqWUNFQ0FBSUFnNkFBRWdBRUVDYWlFQURBRUxDd05BSUFWQkRHb1FEeUVISUFVb0Fnd2hCaUFGS0FJUUlRUWdBQ0FKVHlBSGNrVUVRQ0FDSUFZZ0JIUWdBM1pCQVhScUlnWXRBQUFoQnlBRklBUWdCaTBBQVdvMkFoQWdBQ0FIT2dBQUlBQkJBV29oQUF3QkN3c0RRQ0FBSUFsUFJRUkFJQUlnQmlBRWRDQURka0VCZEdvaUJ5MEFBU0VJSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQkNBSWFpRUVEQUVMQzBGc1FXd2dBU0FGS0FJVUlBVW9BaGhIR3lBRVFTQkhHeUVEQ3lBRlFTQnFKQUFnQXd2UEZBRWpmeU1BUWRBQWF5SUZKQUJCYkNFSkFrQWdBMEVLU1EwQUFrQWdBeUFDTHdBRUlnY2dBaThBQUNJSUlBSXZBQUlpRFdwcVFRWnFJZ3hKRFFBZ0JDOEJBaUVHSUFWQlBHb2dBa0VHYWlJQ0lBZ1FEU0lKUVloL1N3MEJJQVZCS0dvZ0FpQUlhaUlDSUEwUURTSUpRWWgvU3cwQklBVkJGR29nQWlBTmFpSUNJQWNRRFNJSlFZaC9TdzBCSUFVZ0FpQUhhaUFESUF4ckVBMGlDVUdJZjBzTkFTQUVRUVJxSVFvZ0FDQUJhaUlmUVFOcklTQkJBQ0FHYTBFZmNTRUxJQVVvQWdnaEVTQUZLQUljSVJJZ0JTZ0NNQ0VUSUFVb0FrUWhGQ0FGS0FJRUlRa2dCU2dDR0NFTklBVW9BaXdoRENBRktBSkFJUVlnQlNnQ0VDRWhJQVVvQWlRaElpQUZLQUk0SVNNZ0JTZ0NUQ0VrSUFVb0FnQWhGU0FGS0FJVUlSWWdCU2dDS0NFWElBVW9BandoR0VFQklROGdBQ0FCUVFOcVFRSjJJZ1JxSWdNZ0JHb2lBaUFFYWlJWklRUWdBaUVJSUFNaEJ3TkFJQTlCQVhGRklBUWdJRTl5UlFSQUlBQWdDaUFZSUFaMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhHaUFPTFFBRElSQWdCeUFLSUJjZ0RIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0RpMEFBaUViSUE0dEFBTWhEeUFJSUFvZ0ZpQU5kQ0FMZGtFQ2RHb2lEaThCQURzQUFDQU9MUUFDSVJ3Z0RpMEFBeUVkSUFRZ0NpQVZJQWwwSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEhpQU9MUUFESVE0Z0FDQVFhaUlsSUFvZ0dDQUdJQnBxSWdaMElBdDJRUUowYWlJUUx3RUFPd0FBSUJBdEFBSWdFQzBBQXlFbUlBY2dEMm9pSnlBS0lCY2dEQ0FiYWlJYWRDQUxka0VDZEdvaUJ5OEJBRHNBQUNBSExRQUNJUXdnQnkwQUF5RVFJQWdnSFdvaUd5QUtJQllnRFNBY2FpSVBkQ0FMZGtFQ2RHb2lDQzhCQURzQUFDQUlMUUFDSVEwZ0NDMEFBeUVjSUFRZ0Rtb2lIU0FLSUJVZ0NTQWVhaUlPZENBTGRrRUNkR29pQ1M4QkFEc0FBQ0FHYWlFQVFRTWhCd0ovSUJRZ0pFa0VRQ0FBSVFaQkF3d0JDeUFBUVFkeElRWWdGQ0FBUVFOMmF5SVVLQUFBSVJoQkFBc2dDUzBBQXlFZUlBa3RBQUloQ0NBTUlCcHFJUUFnRXlBalNRUi9JQUFGSUJNZ0FFRURkbXNpRXlnQUFDRVhRUUFoQnlBQVFRZHhDeUVNSUEwZ0Qyb2hBQ0FIY2lFSlFRTWhEd0ovSUJJZ0lra0VRQ0FBSVExQkF3d0JDeUFBUVFkeElRMGdFaUFBUVFOMmF5SVNLQUFBSVJaQkFBc2dDQ0FPYWlFQUlBbHlJQkVnSVVrRWZ5QUFCU0FSSUFCQkEzWnJJaEVvQUFBaEZVRUFJUThnQUVFSGNRc2hDU0FsSUNacUlRQWdFQ0FuYWlFSElCc2dIR29oQ0NBZElCNXFJUVFnRDNKRklROE1BUXNMSUFVZ0REWUNMQ0FGSUFZMkFrQWdCU0FOTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBSWdCMGtnQUNBRFMzSU5BRUZzSVFrZ0NDQVpTdzBCSUFOQkEyc2hDUU5BSUFWQlBHb1FEMFVnQUNBSlNYRUVRQ0FBSUFvZ0JTZ0NQQ0lOSUFVb0FrQWlESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdBQ0FPTFFBRGFpSUdJQW9nRFNBTUlBNHRBQUpxSWdCMElBdDJRUUowYWlJTUx3RUFPd0FBSUFVZ0FDQU1MUUFDYWpZQ1FDQUdJQXd0QUFOcUlRQU1BUVVnQTBFQ2F5RU1BMEFnQlVFOGFoQVBJUVlnQlNnQ1BDRU5JQVVvQWtBaENTQUFJQXhMSUFaeVJRUkFJQUFnQ2lBTklBbDBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdDU0FHTFFBQ2FqWUNRQ0FBSUFZdEFBTnFJUUFNQVFzTEEwQWdBQ0FNUzBVRVFDQUFJQW9nRFNBSmRDQUxka0VDZEdvaUJpOEJBRHNBQUNBQUlBWXRBQU5xSVFBZ0NTQUdMUUFDYWlFSkRBRUxDd0pBSUFBZ0EwOE5BQ0FBSUFvZ0RTQUpkQ0FMZGlJQVFRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FKSUFNdEFBSnFJUWtNQVFzZ0NVRWZTdzBBUVNBZ0NTQUtJQUJCQW5ScUxRQUNhaUlBSUFCQklFOGJJUWtMSUFKQkEyc2hEQU5BSUFWQktHb1FEMFVnQnlBTVNYRUVRQ0FISUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lBSFFnQzNaQkFuUnFJZzB2QVFBN0FBQWdCeUFOTFFBRGFpSURJQW9nQmlBQUlBMHRBQUpxSWdCMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FDQUdMUUFDYWpZQ0xDQURJQVl0QUFOcUlRY01BUVVnQWtFQ2F5RUdBMEFnQlVFb2FoQVBJUU1nQlNnQ0tDRU1JQVVvQWl3aEFDQUdJQWRKSUFOeVJRUkFJQWNnQ2lBTUlBQjBJQXQyUVFKMGFpSURMd0VBT3dBQUlBVWdBQ0FETFFBQ2FqWUNMQ0FISUFNdEFBTnFJUWNNQVFzTEEwQWdCaUFIU1VVRVFDQUhJQW9nRENBQWRDQUxka0VDZEdvaUF5OEJBRHNBQUNBSElBTXRBQU5xSVFjZ0FDQURMUUFDYWlFQURBRUxDd0pBSUFJZ0IwME5BQ0FISUFvZ0RDQUFkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FBSUFNdEFBSnFJUUFNQVFzZ0FFRWZTdzBBUVNBZ0FDQUtJQUpCQW5ScUxRQUNhaUlBSUFCQklFOGJJUUFMSUJsQkEyc2hEQU5BSUFWQkZHb1FEMFVnQ0NBTVNYRUVRQ0FJSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lBblFnQzNaQkFuUnFJZzB2QVFBN0FBQWdDQ0FOTFFBRGFpSURJQW9nQmlBQ0lBMHRBQUpxSWdKMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0FpQUdMUUFDYWpZQ0dDQURJQVl0QUFOcUlRZ01BUVVnR1VFQ2F5RURBMEFnQlVFVWFoQVBJUUlnQlNnQ0ZDRUdJQVVvQWhnaEJ5QURJQWhKSUFKeVJRUkFJQWdnQ2lBR0lBZDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBVWdCeUFDTFFBQ2FqWUNHQ0FJSUFJdEFBTnFJUWdNQVFzTEEwQWdBeUFJU1VVRVFDQUlJQW9nQmlBSGRDQUxka0VDZEdvaUFpOEJBRHNBQUNBSUlBSXRBQU5xSVFnZ0J5QUNMUUFDYWlFSERBRUxDd0pBSUFnZ0dVOE5BQ0FJSUFvZ0JpQUhkQ0FMZGlJQ1FRSjBhaUlETFFBQU9nQUFJQU10QUFOQkFVWUVRQ0FISUFNdEFBSnFJUWNNQVFzZ0IwRWZTdzBBUVNBZ0J5QUtJQUpCQW5ScUxRQUNhaUlDSUFKQklFOGJJUWNMQTBBZ0JSQVBSU0FFSUNCSmNRUkFJQVFnQ2lBRktBSUFJZ1lnQlNnQ0JDSUNkQ0FMZGtFQ2RHb2lEQzhCQURzQUFDQUVJQXd0QUFOcUlnTWdDaUFHSUFJZ0RDMEFBbW9pQW5RZ0MzWkJBblJxSWdRdkFRQTdBQUFnQlNBQ0lBUXRBQUpxTmdJRUlBTWdCQzBBQTJvaEJBd0JCU0FmUVFKcklRTURRQ0FGRUE4aEFpQUZLQUlBSVFZZ0JTZ0NCQ0VJSUFNZ0JFa2dBbkpGQkVBZ0JDQUtJQVlnQ0hRZ0MzWkJBblJxSWdJdkFRQTdBQUFnQlNBSUlBSXRBQUpxTmdJRUlBUWdBaTBBQTJvaEJBd0JDd3NEUUNBRElBUkpSUVJBSUFRZ0NpQUdJQWgwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVFnQWkwQUEyb2hCQ0FJSUFJdEFBSnFJUWdNQVFzTEFrQWdCQ0FmVHcwQUlBUWdDaUFHSUFoMElBdDJJZ0pCQW5ScUlnTXRBQUE2QUFBZ0F5MEFBMEVCUmdSQUlBZ2dBeTBBQW1vaENBd0JDeUFJUVI5TERRQkJJQ0FJSUFvZ0FrRUNkR290QUFKcUlnSWdBa0VnVHhzaENBdEJiRUZzUVd4QmJFRnNRV3hCYkVGc0lBRWdDRUVnUnhzZ0JTZ0NDQ0FGS0FJTVJ4c2dCMEVnUnhzZ0JTZ0NIQ0FGS0FJZ1J4c2dBRUVnUnhzZ0JTZ0NNQ0FGS0FJMFJ4c2dDVUVnUnhzZ0JTZ0NSQ0FGS0FKSVJ4c2hDUXdKQ3dBTEFBc0FDd0FMQUFzQUN3QUxBQXRCYkNFSkN5QUZRZEFBYWlRQUlBa0w3QkFCSG44akFFSFFBR3NpQlNRQVFXd2hDUUpBSUFOQkNra05BQUpBSUFNZ0FpOEFCQ0lHSUFJdkFBQWlCeUFDTHdBQ0lnaHFha0VHYWlJT1NRMEFJQVF2QVFJaER5QUZRVHhxSUFKQkJtb2lBaUFIRUEwaUNVR0lmMHNOQVNBRlFTaHFJQUlnQjJvaUFpQUlFQTBpQ1VHSWYwc05BU0FGUVJScUlBSWdDR29pQWlBR0VBMGlDVUdJZjBzTkFTQUZJQUlnQm1vZ0F5QU9heEFOSWdsQmlIOUxEUUVnQkVFRWFpRUtJQUFnQVdvaUhFRURheUVkUVFBZ0QydEJIM0VoQ3lBRktBSUlJUkVnQlNnQ0hDRVNJQVVvQWpBaEV5QUZLQUpFSVJRZ0JTZ0NCQ0VKSUFVb0FoZ2hCaUFGS0FJc0lRY2dCU2dDUUNFSUlBVW9BaEFoSGlBRktBSWtJUjhnQlNnQ09DRWdJQVVvQWt3aElTQUZLQUlBSVJVZ0JTZ0NGQ0VXSUFVb0FpZ2hGeUFGS0FJOElSaEJBU0VOSUFBZ0FVRURha0VDZGlJQ2FpSU9JQUpxSWc4Z0Ftb2lHU0VFSUE4aEFpQU9JUU1EUUNBTlJTQUVJQjFQY2tVRVFDQUtJQmdnQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUFnQ2lBWElBZDBJQXQyUVFGMGFpSU1MUUFCSVJBZ0F5QU1MUUFBT2dBQUlBb2dGaUFHZENBTGRrRUJkR29pREMwQUFTRWFJQUlnREMwQUFEb0FBQ0FLSUJVZ0NYUWdDM1pCQVhScUlnd3RBQUVoR3lBRUlBd3RBQUE2QUFBZ0NpQVlJQWdnRFdvaUNIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFFZ0NpQVhJQWNnRUdvaUIzUWdDM1pCQVhScUlnd3RBQUVoRUNBRElBd3RBQUE2QUFFZ0NpQVdJQVlnR21vaURIUWdDM1pCQVhScUlnWXRBQUVoR2lBQ0lBWXRBQUE2QUFFZ0NpQVZJQWtnRzJvaUczUWdDM1pCQVhScUlna3RBQUVoSWlBRUlBa3RBQUE2QUFFZ0NDQU5haUVHUVFNaENRSi9JQlFnSVVrRVFFRURJUTBnQmd3QkN5QVVJQVpCQTNackloUW9BQUFoR0VFQUlRMGdCa0VIY1FzaENDQUhJQkJxSVFZZ0V5QWdTUVIvSUFZRklCTWdCa0VEZG1zaUV5Z0FBQ0VYUVFBaENTQUdRUWR4Q3lFSElBd2dHbW9oRENBSklBMXlJUkJCQXlFTkFuOGdFaUFmU1FSQUlBd2hCa0VEREFFTElBeEJCM0VoQmlBU0lBeEJBM1pySWhJb0FBQWhGa0VBQ3lBYklDSnFJUXdnRUhJaEVDQVJJQjVKQkg4Z0RBVWdFU0FNUVFOMmF5SVJLQUFBSVJWQkFDRU5JQXhCQjNFTElRa2dCRUVDYWlFRUlBSkJBbW9oQWlBRFFRSnFJUU1nQUVFQ2FpRUFJQTBnRUhKRklRME1BUXNMSUFVZ0J6WUNMQ0FGSUFnMkFrQWdCU0FHTmdJWUlBVWdDVFlDQkNBRklCUTJBa1FnQlNBVE5nSXdJQVVnRWpZQ0hDQUZJQkUyQWdnZ0JTQVlOZ0k4SUFVZ0Z6WUNLQ0FGSUJZMkFoUWdCU0FWTmdJQUlBQWdEa3NnQXlBUFMzSU5BRUZzSVFrZ0FpQVpTdzBCSUE1QkEyc2hDUU5BSUFWQlBHb1FEeUFBSUFsUGNrVUVRQ0FLSUFVb0Fqd2lCaUFGS0FKQUlnZDBJQXQyUVFGMGFpSUlMUUFCSVF3Z0FDQUlMUUFBT2dBQUlBb2dCaUFISUF4cUlnWjBJQXQyUVFGMGFpSUhMUUFBSVFnZ0JTQUdJQWN0QUFGcU5nSkFJQUFnQ0RvQUFTQUFRUUpxSVFBTUFRc0xBMEFnQlVFOGFoQVBJUWNnQlNnQ1BDRUdJQVVvQWtBaENTQUFJQTVQSUFkeVJRUkFJQW9nQmlBSmRDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0NTQUdMUUFCYWpZQ1FDQUFJQWM2QUFBZ0FFRUJhaUVBREFFTEN3TkFJQUFnRGs5RkJFQWdDaUFHSUFsMElBdDJRUUYwYWlJSExRQUJJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdDV29oQ1F3QkN3c2dEMEVEYXlFQUEwQWdCVUVvYWhBUElBQWdBMDF5UlFSQUlBb2dCU2dDS0NJR0lBVW9BaXdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFESUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWl3Z0F5QUlPZ0FCSUFOQkFtb2hBd3dCQ3dzRFFDQUZRU2hxRUE4aEJ5QUZLQUlvSVFZZ0JTZ0NMQ0VBSUFNZ0QwOGdCM0pGQkVBZ0NpQUdJQUIwSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FBSUFZdEFBRnFOZ0lzSUFNZ0J6b0FBQ0FEUVFGcUlRTU1BUXNMQTBBZ0F5QVBUMFVFUUNBS0lBWWdBSFFnQzNaQkFYUnFJZ2N0QUFFaENDQURJQWN0QUFBNkFBQWdBMEVCYWlFRElBQWdDR29oQUF3QkN3c2dHVUVEYXlFREEwQWdCVUVVYWhBUElBSWdBMDl5UlFSQUlBb2dCU2dDRkNJR0lBVW9BaGdpQjNRZ0MzWkJBWFJxSWdndEFBRWhEaUFDSUFndEFBQTZBQUFnQ2lBR0lBY2dEbW9pQm5RZ0MzWkJBWFJxSWdjdEFBQWhDQ0FGSUFZZ0J5MEFBV28yQWhnZ0FpQUlPZ0FCSUFKQkFtb2hBZ3dCQ3dzRFFDQUZRUlJxRUE4aEJ5QUZLQUlVSVFZZ0JTZ0NHQ0VESUFJZ0dVOGdCM0pGQkVBZ0NpQUdJQU4wSUF0MlFRRjBhaUlHTFFBQUlRY2dCU0FESUFZdEFBRnFOZ0lZSUFJZ0J6b0FBQ0FDUVFGcUlRSU1BUXNMQTBBZ0FpQVpUMFVFUUNBS0lBWWdBM1FnQzNaQkFYUnFJZ2N0QUFFaENDQUNJQWN0QUFBNkFBQWdBa0VCYWlFQ0lBTWdDR29oQXd3QkN3c0RRQ0FGRUE4Z0JDQWRUM0pGQkVBZ0NpQUZLQUlBSWdJZ0JTZ0NCQ0lHZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FLSUFJZ0JpQUlhaUlDZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQWlBR0xRQUJhallDQkNBRUlBYzZBQUVnQkVFQ2FpRUVEQUVMQ3dOQUlBVVFEeUVISUFVb0FnQWhCaUFGS0FJRUlRSWdCQ0FjVHlBSGNrVUVRQ0FLSUFZZ0FuUWdDM1pCQVhScUlnWXRBQUFoQnlBRklBSWdCaTBBQVdvMkFnUWdCQ0FIT2dBQUlBUkJBV29oQkF3QkN3c0RRQ0FFSUJ4UFJRUkFJQW9nQmlBQ2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBRVFRRnFJUVFnQWlBSWFpRUNEQUVMQzBGc1FXeEJiRUZzUVd4QmJFRnNRV3dnQVNBQ1FTQkhHeUFGS0FJSUlBVW9BZ3hIR3lBRFFTQkhHeUFGS0FJY0lBVW9BaUJIR3lBQVFTQkhHeUFGS0FJd0lBVW9BalJIR3lBSlFTQkhHeUFGS0FKRUlBVW9Ba2hIR3lFSkRBRUxRV3doQ1FzZ0JVSFFBR29rQUNBSkMxZ0JBMzhDUUNBQUtBS1E2d0VpQVVVTkFDQUJLQUlBSUFGQnROVUJhaWdDQUNJQ0lBRkJ1TlVCYWlnQ0FDSURFQk1nQWdSQUlBTWdBU0FDRVFJQURBRUxJQUVRQmdzZ0FFRUFOZ0tnNndFZ0FFSUFOd09RNndFTDZRTUNCSDhDZmlBQVFRQkJLQkFESVFRZ0FrRUJRUVVnQXhzaUFFa0VRQ0FBRHdzZ0FVVUVRRUYvRHd0QkFTRUdBa0FDUUNBRFFRRkdEUUFnQXlFR0lBRW9BQUFpQlVHbzZyNXBSZzBBUVhZaEF5QUZRWEJ4UWREVXRNSUJSdzBCUVFnaEF5QUNRUWhKRFFFZ0FUVUFCQ0VJSUFSQkFUWUNGQ0FFSUFnM0F3QkJBQThMSUFFZ0FpQUdFQm9pQXlBQ1N3MEFJQVFnQXpZQ0dFRnlJUU1nQUNBQmFpSUZRUUZyTFFBQUlnSkJDSEVOQUNBQ1FTQnhJZ1pGQkVCQmNDRURJQVV0QUFBaUJVR25BVXNOQVNBRlFRZHhyVUlCSUFWQkEzWkJDbXF0aGlJSVFnT0lmaUFJZkNFSklBQkJBV29oQUFzZ0FrRUdkaUVGSUFKQkFuWkJBQ0VEQWtBQ1FBSkFBa0FnQWtFRGNVRUJhdzREQUFFQ0F3c2dBQ0FCYWkwQUFDRURJQUJCQVdvaEFBd0NDeUFBSUFGcUx3QUFJUU1nQUVFQ2FpRUFEQUVMSUFBZ0FXb29BQUFoQXlBQVFRUnFJUUFMUVFGeElRSUNmZ0pBQWtBQ1FBSkFJQVZCQVdzT0F3RUNBd0FMUW44Z0JrVU5BeG9nQUNBQmFqRUFBQXdEQ3lBQUlBRnFNd0FBUW9BQ2ZBd0NDeUFBSUFGcU5RQUFEQUVMSUFBZ0FXb3BBQUFMSVFnZ0JDQUNOZ0lnSUFRZ0F6WUNIQ0FFSUFnM0F3QkJBQ0VESUFSQkFEWUNGQ0FFSUFnZ0NTQUdHeUlJTndNSUlBUkNnSUFJSUFnZ0NFS0FnQWhhR3o0Q0VBc2dBd3RmQVFGL1FiaC9JUU1nQVVFQlFRVWdBaHNpQWs4RWZ5QUFJQUpxUVFGckxRQUFJZ0JCQTNGQkFuUkJvQjVxS0FJQUlBSnFJQUJCQkhaQkRIRkJzQjVxS0FJQWFpQUFRU0J4SWdGRmFpQUJRUVYySUFCQndBQkpjV29GUWJoL0N3c01BQ0FBSUFFZ0FrRUFFQmtMbHdNQ0JYOENmaU1BUVVCcUlnUWtBQUpBQTBBZ0FVRUZUd1JBQWtBZ0FDZ0FBRUZ3Y1VIUTFMVENBVVlFUUVKK0lRY2dBVUVJU1EwRUlBQW9BQVFpQWtGM1N3MEVJQUpCQ0dvaUF5QUJTdzBFSUFKQmdYOUpEUUVNQkFzZ0JFRVlhaUFBSUFFUUd5RUNRbjRnQkNrREdFSUFJQVFvQWl4QkFVY2JJQUliSWdkQ2ZWWU5BeUFISUFoOElnZ2dCMVJDZmlFSERRTUNRQUpBSUFGQkNFa05BQ0FBS0FBQVFYQnhRZERVdE1JQlJ3MEFJQUFvQUFRaUFrRjNTdzBGUWJoL0lBSkJDR29pQWlBQklBSkpHeUVEREFFTElBUkJHR29nQUNBQkVCc2lBa0dJZjBzRVFDQUNJUU1NQVF0QnVIOGhBeUFDRFFBZ0FTQUVLQUl3SWdKcklRVWdBQ0FDYWlFR0EwQWdCaUFGSUFSQkRHb1FIU0lEUVloL1N3MEJJQU5CQTJvaUFpQUZTd1JBUWJoL0lRTU1BZ3NnQlNBQ2F5RUZJQUlnQm1vaEJpQUVLQUlRUlEwQUN5QUVLQUk0Qkg5QnVIOGhBeUFGUVFSSkRRRWdCa0VFYWdVZ0Jnc2dBR3NoQXdzZ0EwR0lmMHNOQXdzZ0FTQURheUVCSUFBZ0Eyb2hBQXdCQ3d0Q2ZpQUlJQUViSVFjTElBUkJRR3NrQUNBSEMyUUJBWDlCdUg4aEF3SkFJQUZCQTBrTkFDQUFMUUFDSVFFZ0FpQUFMd0FBSWdCQkFYRTJBZ1FnQWlBQVFRRjJRUU54SWdNMkFnQWdBaUFBSUFGQkVIUnlRUU4ySWdBMkFnZ0NRQUpBSUFOQkFXc09Bd0lCQUFFTFFXd1BDeUFBSVFNTElBTUxSQUVDZnlBQklBSW9BZ1FpQXlBQktBSUVhaUlFTmdJRUlBQWdBMEVDZEVHZ0hXb29BZ0FnQVNnQ0FFRUFJQVJyZG5FMkFnQWdBUkFQR2lBQUlBSkJDR28yQWdRTHpnRUJCbjlCdW44aENnSkFJQUlvQWdRaUNDQUNLQUlBSWdscUlnMGdBU0FBYTBzTkFFRnNJUW9nQ1NBRUlBTW9BZ0FpQzJ0TERRQWdBQ0FKYWlJRUlBSW9BZ2dpREdzaEFpQUFJQUZCSUdzaUFDQUxJQWxCQUJBZ0lBTWdDU0FMYWpZQ0FBSkFBa0FnQkNBRmF5QU1Ud1JBSUFJaEJRd0JDeUFNSUFRZ0JtdExEUUlnQnlBSElBSWdCV3NpQW1vaUFTQUlhazhFUUNBRUlBRWdDQkFLR2d3Q0N5QUNJQWhxSVFnZ0JDQUJRUUFnQW1zUUNpQUNheUVFQ3lBRUlBQWdCU0FJUVFFUUlBc2dEU0VLQ3lBS0M4Y0VBUUovSUFBZ0Eyb2hCZ0pBSUFOQkIwd0VRQU5BSUFBZ0JrOE5BaUFBSUFJdEFBQTZBQUFnQUVFQmFpRUFJQUpCQVdvaEFnd0FDd0FMSUFSQkFVWUVRQUpBSUFBZ0Ftc2lCVUVIVFFSQUlBQWdBaTBBQURvQUFDQUFJQUl0QUFFNkFBRWdBQ0FDTFFBQ09nQUNJQUFnQWkwQUF6b0FBeUFBSUFJZ0JVRUNkQ0lGUWNBZWFpZ0NBR29pQWlnQUFEWUFCQ0FDSUFWQjRCNXFLQUlBYXlFQ0RBRUxJQUFnQWlrQUFEY0FBQXNnQWtFSWFpRUNJQUJCQ0dvaEFBc2dBU0FHVHdSQUlBQWdBMm9oQVNBRVFRRkhJQUFnQW10QkQwcHlSUVJBQTBBZ0FDQUNLUUFBTndBQUlBSkJDR29oQWlBQVFRaHFJZ0FnQVVrTkFBd0RDd0FMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0EwRVJTUTBCSUFCQkVHb2hBQU5BSUFBZ0Fpa0FFRGNBQUNBQUlBSXBBQmczQUFnZ0FDQUNLUUFnTndBUUlBQWdBaWtBS0RjQUdDQUNRU0JxSVFJZ0FFRWdhaUlBSUFGSkRRQUxEQUVMQWtBZ0FDQUJTd1JBSUFBaEFRd0JDeUFCSUFCcklRVUNRQ0FFUVFGSElBQWdBbXRCRDBweVJRUkFJQUloQXdOQUlBQWdBeWtBQURjQUFDQURRUWhxSVFNZ0FFRUlhaUlBSUFGSkRRQUxEQUVMSUFBZ0Fpa0FBRGNBQUNBQUlBSXBBQWczQUFnZ0JVRVJTQTBBSUFCQkVHb2hBQ0FDSVFNRFFDQUFJQU1wQUJBM0FBQWdBQ0FES1FBWU53QUlJQUFnQXlrQUlEY0FFQ0FBSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUJCSUdvaUFDQUJTUTBBQ3dzZ0FpQUZhaUVDQ3dOQUlBRWdCazhOQVNBQklBSXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2hBZ3dBQ3dBTEM2NEhBZ1YvQVg0akFFR0FBV3NpRVNRQUlCRWdBellDZkVGL0lROENRQUpBQWtBQ1FBSkFJQUlPQkFFQUF3SUVDeUFHUlFSQVFiaC9JUThNQkF0QmJDRVBJQVV0QUFBaUFpQURTdzBESUFnZ0FrRUNkQ0lDYWlnQ0FDRURJQUlnQjJvb0FnQWhBaUFBUVFBNkFBc2dBRUlBTndJQUlBQWdBallDRENBQUlBTTZBQW9nQUVFQU93RUlJQUVnQURZQ0FFRUJJUThNQXdzZ0FTQUpOZ0lBUVFBaER3d0NDeUFLUlFSQVFXd2hEd3dDQzBFQUlROGdDMFVnREVFWlNISU5BVUVJSUFSMFFRaHFJUUJCQUNFREEwQWdBQ0FEVFEwQ0lBTkJRR3NoQXd3QUN3QUxRV3doRHlBUklCRkIvQUJxSUJGQitBQnFJQVVnQmhBTUlnTkJpSDlMRFFBZ0VTZ0NlQ0lDSUFSTERRQWdFU2dDZkVFQmFpRUpJQUJCQ0dvaEMwR0FnQUlnQW5SQkVIVWhCVUVCSVJCQkFTQUNkQ0lQUVFGcklnb2hFZ05BSUFrZ0RrY0VRQUpBSUJFZ0RrRUJkQ0lFYWk4QkFDSU1RZi8vQTBZRVFDQUxJQkpCQTNScUlBNDJBZ1FnRWtFQmF5RVNRUUVoREF3QkN5QVFRUUFnQlNBTXdVb2JJUkFMSUFRZ0RXb2dERHNCQUNBT1FRRnFJUTRNQVFzTElBQWdBallDQkNBQUlCQTJBZ0FDUUNBS0lCSkdCRUFnRFVIcUFHb2hCa0VBSVJCQkFDRU1BMEFnQ1NBUVJnUkFJQTlCQTNZZ0QwRUJkbXBCQTJvaUJVRUJkQ0VFUVFBaERFRUFJUklEUUVFQUlRNGdEeUFTVFEwRUEwQWdEa0VDUndSQUlBc2dCU0FPYkNBTWFpQUtjVUVEZEdvZ0JpQU9JQkpxYWkwQUFEWUNCQ0FPUVFGcUlRNE1BUXNMSUJKQkFtb2hFaUFFSUF4cUlBcHhJUXdNQUFzQUJTQVJJQkJCQVhScUxnRUFJUVVnQmlBTWFpSUVJQk0zQUFCQkNDRU9BMEFnQlNBT1NnUkFJQVFnRG1vZ0V6Y0FBQ0FPUVFocUlRNE1BUXNMSUJOQ2dZS0VpSkNnd0lBQmZDRVRJQkJCQVdvaEVDQUZJQXhxSVF3TUFRc0FDd0FMSUE5QkEzWWdEMEVCZG1wQkEyb2hCVUVBSVJCQkFDRU9BMEFnQ1NBUVJnMEJRUUFoRENBUklCQkJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBTVJ3UkFJQXNnRGtFRGRHb2dFRFlDQkFOQUlBVWdEbW9nQ25FaURpQVNTdzBBQ3lBTVFRRnFJUXdNQVFzTElCQkJBV29oRUF3QUN3QUxJQUpCQVdvaEJVRUFJUXdEUUNBTUlBOUhCRUFnRFNBTElBeEJBM1JxSWdrb0FnUWlCRUVCZEdvaUFpQUNMd0VBSWdaQkFXbzdBUUFnQ1NBRklBWm5RV0J6YWlJQ09nQURJQWtnQmlBQ2RDQVBhenNCQUNBSklBZ2dCRUVDZENJQ2FpZ0NBRG9BQWlBSklBSWdCMm9vQWdBMkFnUWdERUVCYWlFTURBRUxDeUFCSUFBMkFnQWdBeUVQQ3lBUlFZQUJhaVFBSUE4TDdWb0NPMzhHZmlNQVFlQUJheUlFSkFBQ1FFR3c3QWtRQlNJRlJRUkFRVUFoQnd3QkN5QUZRZ0EzQXZUcUFTQUZRUUEyQXNUckFTQUZRUUEyQXJUckFTQUZRZ0EzQXB6ckFTQUZRUUEyQXJqcEFTQUZRUUEyQXF6c0NTQUZRZ0EzQXRUckFTQUZRZ0EzQXF6ckFTQUZRZ0EzQTRqckFTQUZRZ0EzQXVUcUFTQUZRZ0EzQXVUckFTQUZRWUdBZ01BQU5nSzg2d0VnQlVJQU53S2s2d0VnQlVIODZnRnFRUUEyQWdBZ0JVR1E2d0ZxUWdBM0F3QWdCUkFZSUFWQnJOVUJhaUVVSUFWQitPc0JhaUVjSUFWQnNPb0JhaUVpSUFWQm9EQnFJU29nQlVHWUlHb2hLeUFGUWFqUUFHb2hIaUFGUVJCcUlTd2dCVUVJYWlFb0lBVkJCR29oTFNBRlFjRHBBV29oS1NBRlFZanJBV29nQkVHVUFXb2hMeUFFUVl3QmFpRXdJQVJCaEFGcUlURWdCRUhjQUdvaE1pQUVRZFFBYWlFeklBUkJ6QUJxSVRRZ0FDRWRBa0FDUUFKQUFrQUNRQU5BUVFGQkJTQUZLQUxrNmdFYklRWUNRQU5BSUFNZ0Jra05BU0FDS0FBQVFYQnhRZERVdE1JQlJnUkFRYmgvSVFjZ0EwRUlTUTBJSUFJb0FBUWlEa0YzU3dSQVFYSWhCd3dKQ3lBRElBNUJDR29pQ1VrTkNDQU9RWUIvU3dSQUlBa2hCd3dKQ3lBRElBbHJJUU1nQWlBSmFpRUNEQUVMQ3lBRlFnQTNBcXpwQVNBRlFnQTNBK2pwQVNBRlFRQTJBcGpyQVNBRlFnQTNBNERxQVNBRlFnTTNBL2pwQVNBRlFiVHBBV3BDQURjQ0FDQUZRZkRwQVdwQ0FEY0RBQ0FGUWFqUUFHb2lDVUdNZ0lEZ0FEWUNBQ0FGUWF6UUFXcEI0QklwQWdBM0FnQWdCVUcwMEFGcVFlZ1NLQUlBTmdJQUlBVWdCVUVRYWpZQ0FDQUZJQVZCb0RCcU5nSUVJQVVnQlVHWUlHbzJBZ2dnQlNBSk5nSU1JQVZCQVVFRklBVW9BdVRxQVJzMkFyenBBUUpBSUFGRkRRQWdCU2dDck9rQklna2dIVVlOQUNBRklBazJBcmpwQVNBRklCMDJBcXpwQVNBRktBS3c2UUVoRGlBRklCMDJBckRwQVNBRklCMGdEaUFKYTJvMkFyVHBBUXRCdUg4aENTQURRUVZCQ1NBRktBTGs2Z0VpQmh0SkRRVWdBa0VCUVFVZ0Joc2dCaEFhSWc1QmlIOUxCRUFnRGlFSkRBVUxJQU1nRGtFRGFra05CU0FwSUFJZ0RpQUdFQmtpQmtHSWYwc0VRQ0FHSVFrTUJRc2dCZzBGQWtBQ1FDQUZLQUtvNndGQkFVY05BQ0FGS0FLazZ3RWlDVVVOQUNBRktBS1U2d0ZGRFFBZ0NTZ0NCRUVCYXlJSElBVW9BdHpwQVNJS3JVS0hsYSt2bUxiZW01NS9ma0xKejlteThlVzY2aWVGUWhlSlFzL1cwNzdTeDZ2WlFuNUMrZlBkOFpuMm1hc1dmQ0kvUWlHSUlEK0ZRcy9XMDc3U3g2dlpRbjRpUDBJZGlDQS9oVUw1ODkzeG1mYVpxeForSWo5Q0lJZ2dQNFduY1NFR0lBa29BZ0FoRlFOQVFRQWhDQUpBSUJVZ0JrRUNkR29vQWdBaUNVVU5BQ0FKS0FJSVFRaEpEUUFnQ1NnQ0JDSVNLQUFBUWJmSXd1RitSdzBBSUJJb0FBUWhDQXNnQ0NBS1J3UkFJQVlnQjNGQkFXb2hCaUFJRFFFTEN5QUpSUTBBSUFVUUdDQUZRWDgyQXFEckFTQUZJQWsyQXBUckFTQUZJQVVvQXR6cEFTSUlOZ0tZNndFTUFRc2dCU2dDM09rQklRZ0xBa0FnQ0VVTkFDQUZLQUtZNndFZ0NFWU5BRUZnSVFrTUJnc0NRQ0FGS0FMZzZRRUVRQ0FGSUFVb0F1anFBU0lKUlRZQzdPb0JJQWtOQVNBRlF2bnEwTkRueWFIazRRQTNBNmpxQVNBRlFnQTNBNkRxQVNBRlFzL1cwNzdTeDZ2WlFqY0RtT29CSUFWQzF1dUM3dXI5aWZYZ0FEY0RrT29CSUFWQ0FEY0RpT29CSUNKQkFFRW9FQU1hREFFTElBVkJBRFlDN09vQkN5QUJJQjFxSVNVZ0JTQUZLUVBvNlFFZ0RxMThOd1BvNlFFZ0F5QU9heUVESUFJZ0Rtb2hBaUFkSVE0RFFDQUNJQU1nQkVFc2FoQWRJaFZCaUg5TEJFQWdGU0VKREFZTElBTkJBMnNpTlNBVlNRMEVJQUpCQTJvaEcwRnNJUWtDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FDQUVLQUlzRGdNQ0FRQVZDeUFWUWYvL0Iwc05FeUFWUVFOSkRSSWdCU2tEeU9rQklUOENRQUpBSUJzdEFBQWlDVUVEY1NJYVFRRnJEZ01HQVFBSEN5QUZLQUtBNmdFTkFFRmlJUWtNRlFzZ0ZVRUZTUTBTSUJzb0FBQWhBd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRWlDVUVDYXc0Q0FRSUFDeUFKUVFCSElRY2dBMEVFZGtIL0IzRWhDMEVESVFZZ0EwRU9ka0gvQjNFTUFndEJCQ0VHSUFOQkJIWkIvLzhBY1NFTFFRRWhCeUFEUVJKMkRBRUxJQU5CQkhaQi8vOFBjU0lMUVlDQUNFc05FMEVCSVFkQkJTRUdJQUl0QUFkQkNuUWdBMEVXZG5JTElnZ2dCbW9pQ1NBVlN3MFNBa0FnQzBHQkJra05BQ0FGS0FLYzZ3RkZEUUJCQUNFREEwQWdBMEdEZ0FGTERRRWdBMEZBYXlFRERBQUxBQXNnQmlBYmFpRVBJQnBCQTBjTkJpQUZLQUlNSWdJdEFBRkJDSFFoQXlBSERRY2dBMFVOQ0NBRVFmQUFhaUFQSUFnUURTSURRWWgvU3cwSklBSkJCR29oQmlBTElCeHFJaEpCQTJzaENrRUFJQUl2QVFKclFSOXhJUWNnSENFREEwQWdCRUh3QUdvUUQwVWdBeUFLU1hFRVFDQURJQVlnQkNnQ2NDSUlJQVFvQW5RaUQzUWdCM1pCQW5ScUlnSXZBUUE3QUFBZ0F5QUNMUUFEYWlJRElBWWdDQ0FQSUFJdEFBSnFJZ2gwSUFkMlFRSjBhaUlDTHdFQU93QUFJQVFnQ0NBQ0xRQUNhallDZENBRElBSXRBQU5xSVFNTUFRVWdFa0VDYXlFSUEwQWdCRUh3QUdvUUR5RVBJQVFvQW5BaENpQUVLQUowSVFJZ0F5QUlTeUFQY2tVRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUNpOEJBRHNBQUNBRUlBSWdDaTBBQW1vMkFuUWdBeUFLTFFBRGFpRUREQUVMQ3dOQUlBTWdDRTBFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pRHk4QkFEc0FBQ0FESUE4dEFBTnFJUU1nQWlBUExRQUNhaUVDREFFTEN3SkFJQU1nRWs4TkFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUF5MEFBRG9BQUNBRExRQURRUUZHQkVBZ0FpQURMUUFDYWlFQ0RBRUxJQUpCSDBzTkFFRWdJQUlnQXkwQUFtb2lBaUFDUVNCUEd5RUNDMEZzUVd3Z0N5QUVLQUo0SUFRb0FueEhHeUFDUVNCSEd5RUREQXNMQUFzQUN5QUVLQUkwSWdJZ0pTQU9hMHNOQ2lBT1JRUkFRUUFoQ1NBQ0RRSU1EZ3NnRGlBYkxRQUFJQUlRQXhvZ0FpRUpEQXdMSUJVZ0pTQU9hMHNOQ1NBT0RRRkJBQ0VKSUJWRkRRd0xRYlovSVFrTUVRc2dEaUFiSUJVUUFob2dGU0VKREFvTElCd2dHd0ovQWtBQ1FBSkFJQWxCQW5aQkEzRkJBV3NPQXdFQUFnQUxJQWxCQTNZaEEwRUJEQUlMSUJzdkFBQkJCSFloQTBFQ0RBRUxJQlZCQkVrTkRpQUNMd0FESUFJdEFBVkJFSFJ5SWdKQmo0Q0FBVXNORGlBQ1FRUjJJUU5CQXdzaUFtb3RBQUFnQTBFZ2FoQURJUWtnQlNBRE5nS0E2d0VnQlNBSk5nTHc2Z0VnQWtFQmFpRUpEQVVMSUJVQ2Z3SkFBa0FDUUNBSlFRSjJRUU54UVFGckRnTUJBQUlBQ3lBSlFRTjJJUU5CQVF3Q0N5QWJMd0FBUVFSMklRTkJBZ3dCQ3lBQ0x3QURJQUl0QUFWQkVIUnlRUVIySVFOQkF3c2lBaUFEYWlJSlFTQnFTUVJBSUFrZ0ZVc05EU0FjSUFJZ0cyb2dBeEFDSVFJZ0JTQUROZ0tBNndFZ0JTQUNOZ0x3NmdFZ0FpQURhaUlDUWdBM0FCZ2dBa0lBTndBUUlBSkNBRGNBQ0NBQ1FnQTNBQUFNQlFzZ0JTQUROZ0tBNndFZ0JTQUNJQnRxTmdMdzZnRU1CQXNnQjBVRVFDQWVJQThnQ0NBVUVCUWlBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRlNFRERBTUxJQXRGSUFoRmNnMExJQXRCQ0hZaUF5QUlJQXRKQkg4Z0NFRUVkQ0FMYmdWQkR3dEJHR3dpQWtHTUNHb29BZ0JzSUFKQmlBaHFLQUlBYWlJR1FRTjJJQVpxSUFKQmdBaHFLQUlBSUFKQmhBaHFLQUlBSUFOc2Fra0VRQ01BUVJCckloQWtBQ0FlS0FJQUlRTWdGRUh3QkdwQkFFSHNBQkFESVFaQlZDRUNBa0FnQTBIL0FYRWlERUVNU3cwQUFrQWdGRUhjQ1dvZ0JpQVFRUWhxSUJCQkRHb2dEeUFJSUJSQjNBdHFJaGNRQ3lJU1FZaC9TdzBBSUJBb0Fnd2lCaUFNU3cwQklCUkJxQVZxSVEwZ0ZFR2tCV29oTmlBZVFRUnFJUkVnQTBHQWdJQjRjU0UzSUFaQkFXb2lFeUVDSUFZaEF3TkFJQUlpQjBFQmF5RUNJQU1pQ2tFQmF5RURJQlFnQ2tFQ2RHb29BdkFFUlEwQUMwRUJJQWNnQjBFQlRSc2hGa0VBSVFkQkFTRUNBMEFnQWlBV1J3UkFJQlFnQWtFQ2RDSURhaWdDOEFRaEdDQURJQTFxSUFjMkFnQWdBa0VCYWlFQ0lBY2dHR29oQnd3QkN3c2dEU0FITmdJQVFRQWhBaUFRS0FJSUlRTURRQ0FDSUFOSEJFQWdEU0FDSUJScVFkd0phaTBBQUNJWVFRSjBhaUlaSUJrb0FnQWlHVUVCYWpZQ0FDQVVJQmxCQVhScUloa2dHRG9BM1FVZ0dTQUNPZ0RjQlNBQ1FRRnFJUUlNQVFzTFFRQWhBeUFOUVFBMkFnQWdEQ0FHUVg5emFpRUdRUUVoQWdOQUlBSWdGa2NFUUNBVUlBSkJBblJxSWcwZ0F6WUNBQ0FOS0FMd0JDQUNJQVpxZENBRGFpRURJQUpCQVdvaEFnd0JDd3NnRENBVElBcHJJZ1pyUVFGcUlRb2dCaUVEQTBBZ0F5QUtTUVJBSUJRZ0EwRTBiR29oRFVFQklRSURRQ0FDSUJaSEJFQWdEU0FDUVFKMEloaHFJQlFnR0dvb0FnQWdBM1kyQWdBZ0FrRUJhaUVDREFFTEN5QURRUUZxSVFNTUFRc0xJQmNnRkVFMEVBSWhPQ0FVUVpBTWFpRTVJQk1nREdzaE9pQVVRZHdGYWlFWFFRQWhDZ05BQWtBQ1FDQUhJQXBIQkVCQkFTQU1JQk1nRnlBS1FRRjBhaUlDTFFBQklnMXJJZ05ySWhoMElSa2dBaTBBQUNFV0lEZ2dEVUVDZEdvaUh5Z0NBQ0VDSUFZZ0dFMEVRQ0EyUVFFZ0F5QTZhaUlOSUExQkFVd2JJaUJCQW5RaUpHb29BZ0FoRFNBNUlCUWdBMEUwYkdwQk5CQUNJU0VnRFVFQmRDRW1JQkVnQWtFQ2RHb2hJeUFnUVFGTkRRSWdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVnSUNFZ0pHb29BZ0FoSkVFQUlRSURRQ0FDSUNSR0RRTWdJeUFDUVFKMGFpQWdOZ0VBSUFKQkFXb2hBZ3dBQ3dBTElBSWdBaUFaYWlJTklBSWdEVXNiSVEwZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRURBMEFnQWlBTlJnMERJQkVnQWtFQ2RHb2dBellCQUNBQ1FRRnFJUUlNQUFzQUN5QWVJQXhCRUhRZ04zSWdESEpCZ0FKeU5nSUFEQU1MSUFjZ0RXc2hKQ0FYSUNacUlTWkJBQ0VOQTBBZ0RTQWtSZzBCUVFFZ0dDQVRJQ1lnRFVFQmRHb2lKeTBBQVNJQ2F5STdhM1FpUENBaElBSkJBblJxSWlBb0FnQWlBbW9oUFNBRElEdHFRUkIwUVlDQS9BZHhJQ2N0QUFCQkNIUnlJQlp5UVlDQWdCQnlJU2NEUUNBaklBSkJBblJxSUNjMkFRQWdBa0VCYWlJQ0lEMUpEUUFMSUNBZ0lDZ0NBQ0E4YWpZQ0FDQU5RUUZxSVEwTUFBc0FDeUFmSUI4b0FnQWdHV28yQWdBZ0NrRUJhaUVLREFBTEFBc2dFaUVDQ3lBUVFSQnFKQUFnQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZpRUREQU1MSUI0Z0R5QUlJQlFRRkNJQ1FZaC9TeUFDSUFoUGNnMExJQndnQ3lBQ0lBOXFJQWdnQW1zZ0hoQVhJUU1NQWdzZ0F3UkFJQndnQ3lBUElBZ2dBaEFXSVFNTUFnc2dIQ0FMSUE4Z0NDQUNFQmNoQXd3QkN5QWNJQXNnRHlBSUlBSVFGU0VEQ3lBRFFZaC9TdzBJSUFVZ0N6WUNnT3NCSUFVZ0hEWUM4T29CSUFWQkFUWUNnT29CSUJwQkFrWUVRQ0FGSUI0MkFnd0xJQXNnSEdvaUFrSUFOd0FBSUFKQ0FEY0FHQ0FDUWdBM0FCQWdBa0lBTndBSUlBbEJpSDlMRFFvTElBa2dGVVlOQ0NBVklBbHJJUVlnQlNnQ25Pc0JJUW9DUUNBSklCdHFJZ010QUFBaUQwVUVRRUVCSVFKQkFDRVBRYmgvSVFrZ0JrRUJSZzBCREFzTEFuOGdBMEVCYWlBUHdDSUNRUUJPRFFBYUlBSkJmMFlFUUNBR1FRTklEUXNnQXk4QUFVR0EvZ0ZxSVE4Z0EwRURhZ3dCQ3lBR1FRSklEUW9nQXkwQUFTQVBRUWgwY2tHQWdBSnJJUThnQTBFQ2Fnc2hFa0c0ZnlFSklCSkJBV29pQWlBVklCdHFJZ2RMRFFvZ0xDQUZJQkl0QUFBaUVrRUdka0VqUVFrZ0FpQUhJQUpyUWNBUVFkQVJRZkFTSUFVb0FvVHFBU0FLSUE4Z0ZCQWhJZ2xCaUg5TERRZ2dLeUFvSUJKQkJIWkJBM0ZCSDBFSUlBSWdDV29pQWlBSElBSnJRWUFMUVlBTVFZQVhJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQ0VHSWYwc05DRUZzSVFrZ0tpQXRJQkpCQW5aQkEzRkJORUVKSUFJZ0NHb2lBaUFISUFKclFZQU5RZUFPUVpBWklBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlCMEdJZjBzTkNpQUNJQWRxSUFOcklnSWhDU0FDUVloL1N3MEtDeUFPSUE5QkFFeHlEUUVMUWJwL0lRa01DQXNnSlNBT2F5RUpJQVlnQW1zaEJpQUNJQU5xSVFjQ1FBSkFBa0FnQ2tVRVFDQVBRUWxJSUFVcEE4anBBVUtCZ0lBSVZISU5BaUFvS0FJQUlnSkJDR29oRWlBQ0tBSUVJUXBCQUNFRFFRQWhBZ05BSUFNZ0NuWkZCRUFnQWlBU0lBTkJBM1JxTFFBQ1FSWkxhaUVDSUFOQkFXb2hBd3dCQ3dzZ0JVRUFOZ0tjNndFZ0FrRUlJQXByZEVFVVR3MEJEQU1MSUFWQkFEWUNuT3NCQ3lBRUlBVW9BdkRxQVNJRE5nTGNBU0FKSUE1cUlSWWdBeUFGS0FLQTZ3RnFJUmNDUUNBUFJRUkFJQTRoQnd3QkN5QUZLQUs0NlFFaEdpQUZLQUswNlFFaEdDQUZLQUt3NlFFaEVpQUZRUUUyQW9UcUFVRUFJUU1EUUNBRFFRTkhCRUFnQkNBRFFRSjBJZ0pxSUFJZ0JXcEJyTkFCYWlnQ0FEWUNaQ0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRVGhxSWdJZ0J5QUdFQTFCaUg5TERRTkJDQ0FQSUE5QkNFNGJJUjhnTkNBQ0lBVW9BZ0FRSGlBeklBSWdCU2dDQ0JBZUlESWdBaUFGS0FJRUVCNGdEaUFTYXlFWlFRQWhDQU5BSUFSQk9Hb1FEMEVEUmlBSUlCOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnZEJFSFlpRVVIL0FYRWhDeUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWd4QkVIWWlJVUgvQVhFaEVDQUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFZZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDa0gvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJS2F5SU5JQUlnQWlBTlN4c2lFeUFLYWpZQ1BDQUdJQVFvQWpnZ0NuUkJBQ0FUYTNZZ0FpQVRheUlUZEdvaENpQUVRVGhxRUE4YUlBSWdEVTBOQVNBRUlBUW9BandpQWlBVGFqWUNQQ0FFS0FJNElBSjBRUUFnRTJ0MklBcHFJUW9NQVFzZ0JDQUNJQVFvQWp3aURXbzJBandnQkNnQ09DQU5kRUVBSUFwcmRpQUdhaUVLSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUFvMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQURCRUFnQkNnQ1pDRUtEQU1MSUFRb0FtZ2hDZ3dCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFZZ0EwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnWkZJQVpxSVFvZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQW8yQW1RTHB5RUNJRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUJCcU5nSThJQVFvQWpnZ0JuUkJBQ0FoYTNZZ0Ftb2hBZ3NnQ3lBUWFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lBdHFOZ0k4SUFRb0FqZ2dCblJCQUNBUmEzWWdBMm9oQXdzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQmtFQUlBZEJHSFlpQ3lBRUtBSThhaUlRYTNZZ0MwRUNkRUdnSFdvb0FnQnhJQWRCLy84RGNXbzJBa3dnQkNBUUlBeEJHSFlpQjJvaUN6WUNQQ0FFSUFkQkFuUkJvQjFxS0FJQUlBWkJBQ0FMYTNaeElBeEIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdaQkdIWWlCeUFFS0FJOGFpSUxOZ0k4SUFRZ0IwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBdHJkbkVnQmtILy93TnhhallDVkNBRVFmQUFhaUFJUVF4c2FpSUdJQW8yQWdnZ0JpQUNOZ0lFSUFZZ0F6WUNBQ0FJUVFGcUlRZ2dBeUFaYWlBQ2FpRVpEQUVMQ3lBSUlCOUlEUU1nRmtFZ2F5RWhJQTRoQndOQUlBUkJPR29RRDBFRFJpQUlJQTlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ1pCRUhZaUkwSC9BWEVoQ2lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklnMUJFSFlpSUVIL0FYRWhFeUFFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRTWdRVUlnaUNCQVFpQ0lweUVMQWtBZ1FrSVFpS2NpREVIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSU1heUlSSUFJZ0FpQVJTeHNpRUNBTWFqWUNQQ0FESUFRb0FqZ2dESFJCQUNBUWEzWWdBaUFRYXlJTWRHb2hFQ0FFUVRocUVBOGFJQUlnRVUwTkFTQUVJQVFvQWp3aUFpQU1hallDUENBRUtBSTRJQUowUVFBZ0RHdDJJQkJxSVJBTUFRc2dCQ0FDSUFRb0Fqd2lFR28yQWp3Z0JDZ0NPQ0FRZEVFQUlBeHJkaUFEYWlFUUlBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlCQTJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FMQkVBZ0JDZ0NaQ0VRREFNTElBUW9BbWdoRUF3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBTWdDMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ05GSUFOcUlSQWdBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUJBMkFtUUxweUVNSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lCTnFOZ0k4SUFRb0FqZ2dBblJCQUNBZ2EzWWdER29oREFzZ0NpQVRha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQXBxTmdJOElBUW9BamdnQW5SQkFDQWphM1lnQzJvaEN3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUFrRUFJQVpCR0hZaUF5QUVLQUk4YWlJS2EzWWdBMEVDZEVHZ0hXb29BZ0J4SUFaQi8vOERjV28yQWt3Z0JDQUtJQTFCR0hZaUEyb2lCallDUENBRUlBTkJBblJCb0IxcUtBSUFJQUpCQUNBR2EzWnhJQTFCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnSkJHSFlpQXlBRUtBSThhaUlHTmdJOElBUWdBMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQVpyZG5FZ0FrSC8vd054YWpZQ1ZBSkFBa0FDUUNBRUtBTGNBU0lESUFSQjhBQnFJQWhCQjNGQkRHeHFJaE1vQWdBaUVXb2lJeUFYU3cwQUlBY2dFeWdDQkNJTklCRnFJZ3BxSUNGTERRQWdDa0VnYWlBV0lBZHJUUTBCQ3lBRUlCTW9BZ2cyQWhnZ0JDQVRLUUlBTndNUUlBY2dGaUFFUVJCcUlBUkIzQUZxSUJjZ0VpQVlJQm9RSHlFS0RBRUxJQWNnRVdvaEFpQVRLQUlJSVFZZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNBSkFJQkZCRVVrTkFDQUhJQU1wQUJBM0FCQWdCeUFES1FBWU53QVlJQkZCRUd0QkVVZ05BQ0FEUVJCcUlRTWdCMEVnYWlFUkEwQWdFU0FES1FBUU53QUFJQkVnQXlrQUdEY0FDQ0FSSUFNcEFDQTNBQkFnRVNBREtRQW9Od0FZSUFOQklHb2hBeUFSUVNCcUloRWdBa2tOQUFzTElBSWdCbXNoQXlBRUlDTTJBdHdCSUFJZ0Vtc2dCa2tFUUNBR0lBSWdHR3RMRFFjZ0dpQWFJQU1nRW1zaUEyb2lFU0FOYWs4RVFDQUNJQkVnRFJBS0dnd0NDeUFESUExcUlRMGdBaUFSUVFBZ0Eyc1FDaUFEYXlFQ0lCSWhBd3NnQmtFUVR3UkFJQUlnQXlrQUFEY0FBQ0FDSUFNcEFBZzNBQWdnRFVFUlNBMEJJQUlnRFdvaEJpQUNRUkJxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQUdTUTBBQ3d3QkN3SkFJQVpCQjAwRVFDQUNJQU10QUFBNkFBQWdBaUFETFFBQk9nQUJJQUlnQXkwQUFqb0FBaUFDSUFNdEFBTTZBQU1nQWlBRElBWkJBblFpQmtIQUhtb29BZ0JxSWdNb0FBQTJBQVFnQXlBR1FlQWVhaWdDQUdzaEF3d0JDeUFDSUFNcEFBQTNBQUFMSUExQkNVa05BQ0FDSUExcUlSRWdBa0VJYWlJR0lBTkJDR29pQTJ0QkQwd0VRQU5BSUFZZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQmtFSWFpSUdJQkZKRFFBTUFnc0FDeUFHSUFNcEFBQTNBQUFnQmlBREtRQUlOd0FJSUExQkdVZ05BQ0FDUVJocUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFSU1EwQUN3c2dDa0dJZjBzRVFDQUtJUWtNQmdVZ0V5QVFOZ0lJSUJNZ0REWUNCQ0FUSUFzMkFnQWdDRUVCYWlFSUlBY2dDbW9oQnlBTElCbHFJQXhxSVJrTUFnc0FDd3NnQ0NBUFNBMERJQWdnSDJzaEJnTkFBa0FnQmlBUFRnUkFRUUFoQXdOQUlBTkJBMFlOQWlBRklBTkJBblFpQW1wQnJOQUJhaUFDSUFScUtBSmtOZ0lBSUFOQkFXb2hBd3dBQ3dBTEFrQUNRQUpBSUFRb0F0d0JJZ01nQkVId0FHb2dCa0VIY1VFTWJHb2lDQ2dDQUNJTWFpSVFJQmRMRFFBZ0J5QUlLQUlFSWdzZ0RHb2lDbW9nSVVzTkFDQUtRU0JxSUJZZ0IydE5EUUVMSUFRZ0NDZ0NDRFlDS0NBRUlBZ3BBZ0EzQXlBZ0J5QVdJQVJCSUdvZ0JFSGNBV29nRnlBU0lCZ2dHaEFmSVFvTUFRc2dCeUFNYWlFQ0lBZ29BZ2doQ0NBSElBTXBBQUEzQUFBZ0J5QURLUUFJTndBSUFrQWdERUVSU1EwQUlBY2dBeWtBRURjQUVDQUhJQU1wQUJnM0FCZ2dERUVRYTBFUlNBMEFJQU5CRUdvaEF5QUhRU0JxSVF3RFFDQU1JQU1wQUJBM0FBQWdEQ0FES1FBWU53QUlJQXdnQXlrQUlEY0FFQ0FNSUFNcEFDZzNBQmdnQTBFZ2FpRURJQXhCSUdvaURDQUNTUTBBQ3dzZ0FpQUlheUVESUFRZ0VEWUMzQUVnQWlBU2F5QUlTUVJBSUFnZ0FpQVlhMHNOQnlBYUlCb2dBeUFTYXlJRGFpSU1JQXRxVHdSQUlBSWdEQ0FMRUFvYURBSUxJQU1nQzJvaEN5QUNJQXhCQUNBRGF4QUtJQU5ySVFJZ0VpRURDeUFJUVJCUEJFQWdBaUFES1FBQU53QUFJQUlnQXlrQUNEY0FDQ0FMUVJGSURRRWdBaUFMYWlFSUlBSkJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBSWdBeTBBQURvQUFDQUNJQU10QUFFNkFBRWdBaUFETFFBQ09nQUNJQUlnQXkwQUF6b0FBeUFDSUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQUlnQXlrQUFEY0FBQXNnQzBFSlNRMEFJQUlnQzJvaERDQUNRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dERWtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQzBFWlNBMEFJQUpCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXhKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdHQlNBR1FRRnFJUVlnQnlBS2FpRUhEQUlMQUFzTElBUW9BdHdCSVFNTFFicC9JUWtnRnlBRGF5SUNJQllnQjJ0TERRSWdCd1IvSUFjZ0F5QUNFQUlnQW1vRlFRQUxJQTVySVFrTUFnc2dCVUVBTmdLYzZ3RUxJQVFnQlNnQzhPb0JJZ00yQXR3QklBa2dEbW9oRENBRElBVW9Bb0RyQVdvaEVBSkFJQTlGQkVBZ0RpRUdEQUVMSUFVb0FyanBBU0VOSUFVb0FyVHBBU0VUSUFVb0FyRHBBU0VTSUFWQkFUWUNoT29CUVFBaEF3TkFJQU5CQTBjRVFDQUVJQU5CQW5RaUFtb2dBaUFGYWtHczBBRnFLQUlBTmdLY0FTQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFmQUFhaUlDSUFjZ0JoQU5RWWgvU3cwQklERWdBaUFGS0FJQUVCNGdNQ0FDSUFVb0FnZ1FIaUF2SUFJZ0JTZ0NCQkFlSUF4QklHc2hHQ0FPSVFZRFFDQUVLQUtJQVNBRUtBS0VBVUVEZEdvcEFnQWlRS2NpQ2tFUWRpSVpRZjhCY1NFTElBUW9BcGdCSUFRb0FwUUJRUU4wYWlrQ0FDSkJweUlXUVJCMkloOUIvd0Z4SVJvZ0JDZ0NrQUVnQkNnQ2pBRkJBM1JxS1FJQUlrSkNJSWluSVFjZ1FVSWdpQ0JBUWlDSXB5RURBa0FnUWtJUWlLY2lDRUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDZENJSWF5SVJJQUlnQWlBUlN4c2lGeUFJYWpZQ2RDQUhJQVFvQW5BZ0NIUkJBQ0FYYTNZZ0FpQVhheUlYZEdvaENDQUVRZkFBYWhBUEdpQUNJQkZORFFFZ0JDQUVLQUowSWdJZ0YybzJBblFnQkNnQ2NDQUNkRUVBSUJkcmRpQUlhaUVJREFFTElBUWdBaUFFS0FKMEloRnFOZ0owSUFRb0FuQWdFWFJCQUNBSWEzWWdCMm9oQ0NBRVFmQUFhaEFQR2dzZ0JDa0NuQUVoUkNBRUlBZzJBcHdCSUFRZ1JEY0NvQUVNQVFzQ1FDQUNSUVJBSUFNRVFDQUVLQUtjQVNFSURBTUxJQVFvQXFBQklRZ01BUXNnQkNBRUtBSjBJZ0pCQVdvMkFuUUNmeUFISUFORmFpQUVLQUp3SUFKMFFSOTJhaUlDUVFOR0JFQWdCQ2dDbkFGQkFXc01BUXNnQWtFQ2RDQUVhaWdDbkFFTElnZEZJQWRxSVFnZ0FrRUJSd1JBSUFRZ0JDZ0NvQUUyQXFRQkN3c2dCQ0FFS0FLY0FUWUNvQUVnQkNBSU5nS2NBUXVuSVFJZ1FVS0FnUHdIZzFCRkJFQWdCQ0FFS0FKMElnY2dHbW8yQW5RZ0JDZ0NjQ0FIZEVFQUlCOXJkaUFDYWlFQ0N5QUxJQnBxUVJSUEJFQWdCRUh3QUdvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NkQ0lISUF0cU5nSjBJQVFvQW5BZ0IzUkJBQ0FaYTNZZ0Eyb2hBd3NnQkVId0FHb1FEeG9nQkNBRUtBSndJZ2RCQUNBS1FSaDJJZ3NnQkNnQ2RHb2lHbXQySUF0QkFuUkJvQjFxS0FJQWNTQUtRZi8vQTNGcU5nS0VBU0FFSUJvZ0ZrRVlkaUlLYWlJTE5nSjBJQVFnQ2tFQ2RFR2dIV29vQWdBZ0IwRUFJQXRyZG5FZ0ZrSC8vd054YWpZQ2xBRWdCRUh3QUdvUUR4b2dCQ0JDcHlJSFFSaDJJZ29nQkNnQ2RHb2lDellDZENBRUlBcEJBblJCb0IxcUtBSUFJQVFvQW5CQkFDQUxhM1p4SUFkQi8vOERjV28yQW93QklBUWdBellDT0NBRUlBSTJBandnQkNBSU5nSkFBa0FDUUFKQUlBUW9BdHdCSWdzZ0Eyb2lGaUFRU3cwQUlBWWdBaUFEYWlJS2FpQVlTdzBBSUFwQklHb2dEQ0FHYTAwTkFRc2dCQ0FFUVVCcktBSUFOZ0lJSUFRZ0JDa0RPRGNEQUNBR0lBd2dCQ0FFUWR3QmFpQVFJQklnRXlBTkVCOGhDZ3dCQ3lBRElBWnFJUWNnQmlBTEtRQUFOd0FBSUFZZ0N5a0FDRGNBQ0FKQUlBTkJFVWtOQUNBR0lBc3BBQkEzQUJBZ0JpQUxLUUFZTndBWUlBTkJFR3RCRVVnTkFDQUxRUkJxSVFNZ0JrRWdhaUVMQTBBZ0N5QURLUUFRTndBQUlBc2dBeWtBR0RjQUNDQUxJQU1wQUNBM0FCQWdDeUFES1FBb053QVlJQU5CSUdvaEF5QUxRU0JxSWdzZ0Iwa05BQXNMSUFjZ0NHc2hBeUFFSUJZMkF0d0JJQWNnRW1zZ0NFa0VRQ0FJSUFjZ0UydExEUVFnRFNBTklBTWdFbXNpQTJvaUN5QUNhazhFUUNBSElBc2dBaEFLR2d3Q0N5QUhJQXRCQUNBRGF4QUtJQVFnQWlBRGFpSUNOZ0k4SUFOcklRY2dFaUVEQ3lBSVFSQlBCRUFnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0NBQ1FSRklEUUVnQWlBSGFpRUlJQWRCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQWNnQXkwQUFEb0FBQ0FISUFNdEFBRTZBQUVnQnlBRExRQUNPZ0FDSUFjZ0F5MEFBem9BQXlBSElBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFjZ0F5a0FBRGNBQUFzZ0FrRUpTUTBBSUFJZ0Iyb2hDeUFIUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnQzBrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0FrRVpTQTBBSUFkQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF0SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3REN5QUdJQXBxSVFZZ0JFSHdBR29RRHlFRElBOUJBV3NpRHcwQUMwRUFJUUlnQTBFQ1NRMEJBMEFnQWtFRFJ3UkFJQVVnQWtFQ2RDSURha0dzMEFGcUlBTWdCR29vQXB3Qk5nSUFJQUpCQVdvaEFnd0JDd3NnQkNnQzNBRWhBd3RCdW44aENTQVFJQU5ySWdJZ0RDQUdhMHNOQUNBR0JIOGdCaUFESUFJUUFpQUNhZ1ZCQUFzZ0Rtc2hDUXNnQ1VHSWYwc05CZ3NDUUNBRktBTHM2Z0ZGRFFBZ0JTQUZLUU9JNmdFZ0NhMThOd09JNmdFQ1FDQUZLQUxRNmdFaUFpQUphaUlJUVI5TkJFQWdEa1VOQVNBQ0lDSnFJQTRnQ1JBQ0dpQUZLQUxRNmdFZ0NXb2hDQXdCQ3lBT0lRTWdBZ1JBSUFJZ0ltb2dBMEVnSUFKckVBSWFJQVVvQXREcUFTRUNJQVZCQURZQzBPb0JJQVVnQlNrRGtPb0JJQVVwQUxEcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RrT29CSUFVZ0JTa0RtT29CSUFVcEFManFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEbU9vQklBVWdCU2tEb09vQklBVXBBTURxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG9Pb0JJQVVnQlNrRHFPb0JJQVVwQU1qcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RxT29CSUFNZ0FtdEJJR29oQXdzZ0NTQU9haUlDSUFOQklHcFBCRUFnQWtFZ2F5RUdJQVVwQTZqcUFTRS9JQVVwQTZEcUFTRkFJQVVwQTVqcUFTRkJJQVVwQTVEcUFTRkNBMEFnQXlrQUdFTFAxdE8rMHNlcjJVSitJRDk4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVDhnQXlrQUVFTFAxdE8rMHNlcjJVSitJRUI4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUFnQXlrQUNFTFAxdE8rMHNlcjJVSitJRUY4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUVnQXlrQUFFTFAxdE8rMHNlcjJVSitJRUo4UWgrSlFvZVZyNitZdHQ2Ym5uOStJVUlnQTBFZ2FpSURJQVpORFFBTElBVWdQemNEcU9vQklBVWdRRGNEb09vQklBVWdRVGNEbU9vQklBVWdRamNEa09vQkN5QUNJQU5ORFFFZ0lpQURJQUlnQTJzaUNCQUNHZ3NnQlNBSU5nTFE2Z0VMSURVZ0ZXc2hBeUFWSUJ0cUlRSWdDU0FPYWlFT0lBUW9BakJGRFFBTElDa3BBd0FpUDBKL1VTQS9JQTRnSFd1c1VYSkZCRUJCYkNFSkRBWUxJQVVvQXVEcEFRUkFRV29oQ1NBRFFRUkpEUVlnQlNnQzZPb0JSUVJBSUNJZ0JTZ0MwT29CYWlFS0FuNGdCU2tEaU9vQklqOUNJRm9FUUNBRktRT1k2Z0VpUUVJSGlTQUZLUU9RNmdFaVFVSUJpWHdnQlNrRG9Pb0JJa0pDRElsOElBVXBBNmpxQVNKRFFoS0pmQ0JCUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlJRUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9mb1ZDaDVXdnI1aTIzcHVlZjM1Q25hTzE2b094allyNkFIMGdRa0xQMXRPKzBzZXIyVUorUWgrSlFvZVZyNitZdHQ2Ym5uOStoVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTQkRRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOURBRUxJQVVwQTZEcUFVTEZ6OW15OGVXNjZpZDhDeUEvZkNFL0lDSWhCZ05BSUFvZ0JrRUlhaUlIVHdSQUlBWXBBQUJDejliVHZ0TEhxOWxDZmtJZmlVS0hsYSt2bUxiZW01NS9maUEvaFVJYmlVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNFL0lBY2hCZ3dCQ3dzQ1FDQUtJQVpCQkdvaUNFa0VRQ0FHSVFnTUFRc2dCalVBQUVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUlYaVVMUDF0Tyswc2VyMlVKK1F2bnozZkdaOXBtckZud2hQd3NEUUNBSUlBcEpCRUFnQ0RFQUFFTEZ6OW15OGVXNjZpZCtJRCtGUWd1SlFvZVZyNitZdHQ2Ym5uOStJVDhnQ0VFQmFpRUlEQUVMQ3lBQ0tBQUFJRDlDSVlnZ1A0VkN6OWJUdnRMSHE5bENmaUkvUWgySUlEK0ZRdm56M2ZHWjlwbXJGbjRpUDBJZ2lDQS9oYWRIRFFjTElBTkJCR3NoQXlBQ1FRUnFJUUlMSUE0Z0hXc2lDVUdKZjA4TkJDQUJJQWxySVFFZ0NTQWRhaUVkUVFFaFBnd0JDd3RCdUg4aEJ5QUREUVFnSFNBQWF5RUhEQVFMUVd3aENRd0JDMEc0ZnlFSkMwRzRmeUVISUFsQmRrWWdQbkVOQVFzZ0NTRUhDeWdDQUEwQUlBVkIvT29CYWlnQ0FDRUJJQVZCK09vQmFpZ0NBQ0VBSUFVUUdDQUZLQUt3NndFZ0FDQUJFQk1nQlVFQU5nS3c2d0VnQlNnQ3BPc0JJZ0lFUUFKQUFrQUNRQUpBSUFJb0FnQWlBd1JBSUFCRkRRSWdBU0FESUFBUkFnQU1BUXNnQUVVTkFnc2dBU0FDSUFBUkFnQU1BZ3NnQXhBR0N5QUNFQVlMSUFWQkFEWUNwT3NCQ3lBQUJFQWdBU0FGSUFBUkFnQU1BUXNnQlJBR0N5QUVRZUFCYWlRQUlBY0xDNmdWQ1FCQmlBZ0xEUUVBQUFBQkFBQUFBZ0FBQUFJQVFhQUlDN01HQVFBQUFBRUFBQUFDQUFBQUFnQUFBQ1lBQUFDQ0FBQUFJUVVBQUVvQUFBQm5DQUFBSmdBQUFNQUJBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFLUUFBQUN3Q0FBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUx3QUFBTW9DQUFDQUFBQUFpZ1VBQUVvQUFBQ0VDUUFBTlFBQUFITURBQUNBQUFBQW5RVUFBRW9BQUFDZ0NRQUFQUUFBQUlFREFBQ0FBQUFBNndVQUFFc0FBQUErQ2dBQVJBQUFBSjREQUFDQUFBQUFUUVlBQUVzQUFBQ3FDZ0FBU3dBQUFMTURBQUNBQUFBQXdRWUFBRTBBQUFBZkRRQUFUUUFBQUZNRUFBQ0FBQUFBSXdnQUFGRUFBQUNtRHdBQVZBQUFBSmtFQUFDQUFBQUFTd2tBQUZjQUFBQ3hFZ0FBV0FBQUFOb0VBQUNBQUFBQWJ3a0FBRjBBQUFBakZBQUFWQUFBQUVVRkFBQ0FBQUFBVkFvQUFHb0FBQUNNRkFBQWFnQUFBSzhGQUFDQUFBQUFkZ2tBQUh3QUFBQk9FQUFBZkFBQUFOSUNBQUNBQUFBQVl3Y0FBSkVBQUFDUUJ3QUFrZ0FBQUFBQUFBQUJBQUFBQVFBQUFBVUFBQUFOQUFBQUhRQUFBRDBBQUFCOUFBQUEvUUFBQVAwQkFBRDlBd0FBL1FjQUFQMFBBQUQ5SHdBQS9UOEFBUDEvQUFEOS93QUEvZjhCQVAzL0F3RDkvd2NBL2Y4UEFQMy9Id0Q5L3o4QS9mOS9BUDMvL3dEOS8vOEIvZi8vQS8zLy93ZjkvLzhQL2YvL0gvMy8vei85Ly85L0FBQUFBQUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFSQUFBQUVnQUFBQk1BQUFBVUFBQUFGUUFBQUJZQUFBQVhBQUFBR0FBQUFCa0FBQUFhQUFBQUd3QUFBQndBQUFBZEFBQUFIZ0FBQUI4QUFBQURBQUFBQkFBQUFBVUFBQUFHQUFBQUJ3QUFBQWdBQUFBSkFBQUFDZ0FBQUFzQUFBQU1BQUFBRFFBQUFBNEFBQUFQQUFBQUVBQUFBQkVBQUFBU0FBQUFFd0FBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFZQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBbEFBQUFKd0FBQUNrQUFBQXJBQUFBTHdBQUFETUFBQUE3QUFBQVF3QUFBRk1BQUFCakFBQUFnd0FBQUFNQkFBQURBZ0FBQXdRQUFBTUlBQUFERUFBQUF5QUFBQU5BQUFBRGdBQUFBd0FCQUVIZ0R3dFJBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCQUFBQUFVQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBRUhFRUF1TEFRRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVNBQUFBRkFBQUFCWUFBQUFZQUFBQUhBQUFBQ0FBQUFBb0FBQUFNQUFBQUVBQUFBQ0FBQUFBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFBQUVBUVpBU0MrWUVBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUF3QUFBQU1BQUFBRUFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQUJBQUFBQkFBQUFBZ0FBQUFBQUFBQUFRQUJBUVlBQUFBQUFBQUVBQUFBQUJBQUFBUUFBQUFBSUFBQUJRRUFBQUFBQUFBRkF3QUFBQUFBQUFVRUFBQUFBQUFBQlFZQUFBQUFBQUFGQndBQUFBQUFBQVVKQUFBQUFBQUFCUW9BQUFBQUFBQUZEQUFBQUFBQUFBWU9BQUFBQUFBQkJSQUFBQUFBQUFFRkZBQUFBQUFBQVFVV0FBQUFBQUFDQlJ3QUFBQUFBQU1GSUFBQUFBQUFCQVV3QUFBQUlBQUdCVUFBQUFBQUFBY0ZnQUFBQUFBQUNBWUFBUUFBQUFBS0JnQUVBQUFBQUF3R0FCQUFBQ0FBQUFRQUFBQUFBQUFBQkFFQUFBQUFBQUFGQWdBQUFDQUFBQVVFQUFBQUFBQUFCUVVBQUFBZ0FBQUZCd0FBQUFBQUFBVUlBQUFBSUFBQUJRb0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFJQUFCQlJBQUFBQUFBQUVGRWdBQUFDQUFBUVVXQUFBQUFBQUNCUmdBQUFBZ0FBTUZJQUFBQUFBQUF3VW9BQUFBQUFBR0JFQUFBQUFRQUFZRVFBQUFBQ0FBQndXQUFBQUFBQUFKQmdBQ0FBQUFBQXNHQUFnQUFEQUFBQVFBQUFBQUVBQUFCQUVBQUFBZ0FBQUZBZ0FBQUNBQUFBVURBQUFBSUFBQUJRVUFBQUFnQUFBRkJnQUFBQ0FBQUFVSUFBQUFJQUFBQlFrQUFBQWdBQUFGQ3dBQUFDQUFBQVVNQUFBQUFBQUFCZzhBQUFBZ0FBRUZFZ0FBQUNBQUFRVVVBQUFBSUFBQ0JSZ0FBQUFnQUFJRkhBQUFBQ0FBQXdVb0FBQUFJQUFFQlRBQUFBQUFBQkFHQUFBQkFBQUFEd1lBZ0FBQUFBQU9CZ0JBQUFBQUFBMEdBQ0FBUVlBWEM0Y0NBUUFCQVFVQUFBQUFBQUFGQUFBQUFBQUFCZ1E5QUFBQUFBQUpCZjBCQUFBQUFBOEYvWDhBQUFBQUZRWDkveDhBQUFBREJRVUFBQUFBQUFjRWZRQUFBQUFBREFYOUR3QUFBQUFTQmYzL0F3QUFBQmNGL2Y5L0FBQUFCUVVkQUFBQUFBQUlCUDBBQUFBQUFBNEYvVDhBQUFBQUZBWDkvdzhBQUFBQ0JRRUFBQUFRQUFjRWZRQUFBQUFBQ3dYOUJ3QUFBQUFSQmYzL0FRQUFBQllGL2Y4L0FBQUFCQVVOQUFBQUVBQUlCUDBBQUFBQUFBMEYvUjhBQUFBQUV3WDkvd2NBQUFBQkJRRUFBQUFRQUFZRVBRQUFBQUFBQ2dYOUF3QUFBQUFRQmYzL0FBQUFBQndGL2YvL0R3QUFHd1g5Ly84SEFBQWFCZjMvL3dNQUFCa0YvZi8vQVFBQUdBWDkvLzhBUVpBWkM0WUVBUUFCQVFZQUFBQUFBQUFHQXdBQUFBQUFBQVFFQUFBQUlBQUFCUVVBQUFBQUFBQUZCZ0FBQUFBQUFBVUlBQUFBQUFBQUJRa0FBQUFBQUFBRkN3QUFBQUFBQUFZTkFBQUFBQUFBQmhBQUFBQUFBQUFHRXdBQUFBQUFBQVlXQUFBQUFBQUFCaGtBQUFBQUFBQUdIQUFBQUFBQUFBWWZBQUFBQUFBQUJpSUFBQUFBQUFFR0pRQUFBQUFBQVFZcEFBQUFBQUFDQmk4QUFBQUFBQU1HT3dBQUFBQUFCQVpUQUFBQUFBQUhCb01BQUFBQUFBa0dBd0lBQUJBQUFBUUVBQUFBQUFBQUJBVUFBQUFnQUFBRkJnQUFBQUFBQUFVSEFBQUFJQUFBQlFrQUFBQUFBQUFGQ2dBQUFBQUFBQVlNQUFBQUFBQUFCZzhBQUFBQUFBQUdFZ0FBQUFBQUFBWVZBQUFBQUFBQUJoZ0FBQUFBQUFBR0d3QUFBQUFBQUFZZUFBQUFBQUFBQmlFQUFBQUFBQUVHSXdBQUFBQUFBUVluQUFBQUFBQUNCaXNBQUFBQUFBTUdNd0FBQUFBQUJBWkRBQUFBQUFBRkJtTUFBQUFBQUFnR0F3RUFBQ0FBQUFRRUFBQUFNQUFBQkFRQUFBQVFBQUFFQlFBQUFDQUFBQVVIQUFBQUlBQUFCUWdBQUFBZ0FBQUZDZ0FBQUNBQUFBVUxBQUFBQUFBQUJnNEFBQUFBQUFBR0VRQUFBQUFBQUFZVUFBQUFBQUFBQmhjQUFBQUFBQUFHR2dBQUFBQUFBQVlkQUFBQUFBQUFCaUFBQUFBQUFCQUdBd0FCQUFBQUR3WURnQUFBQUFBT0JnTkFBQUFBQUEwR0F5QUFBQUFBREFZREVBQUFBQUFMQmdNSUFBQUFBQW9HQXdRQVFhUWRDOWtCQVFBQUFBTUFBQUFIQUFBQUR3QUFBQjhBQUFBL0FBQUFmd0FBQVA4QUFBRC9BUUFBL3dNQUFQOEhBQUQvRHdBQS94OEFBUDgvQUFEL2Z3QUEvLzhBQVAvL0FRRC8vd01BLy84SEFQLy9Ed0QvL3g4QS8vOC9BUC8vZndELy8vOEEvLy8vQWYvLy93UC8vLzhILy8vL0QvLy8veC8vLy84Ly8vLy9md0FBQUFBQkFBQUFBZ0FBQUFRQUFBQUFBQUFBQWdBQUFBUUFBQUFJQUFBQUFBQUFBQUVBQUFBQ0FBQUFBUUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dCQmdCOExBNEFSQVE9PSI7dmFyIG9lPW5ldyBKQSxnZT0hMTthc3luYyBmdW5jdGlvbiBqSShBLHQsZSl7bGV0IEk9bnVsbDt0eXBlb2YgQSE9InN0cmluZyI/ST1BLmhyZWY6QS5zdGFydHNXaXRoKCJodHRwIik/ST1BOkk9YCR7dH0vJHtBfWAsSS5lbmRzV2l0aCgiLmpzIikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtMykpLEkuZW5kc1dpdGgoIi53YXNtIikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtNSkpLEkuZW5kc1dpdGgoIi53YXNtLnpzdCIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTkpKTtsZXQgcj1gJHtJfS53YXNtYCxvPWF3YWl0IGJBLmdldChgJHtyfS56c3RgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIixwYXJhbXM6ZX0pO2dlfHwoYXdhaXQgb2UuaW5pdCgpLGdlPSEwKTtsZXQgQz1vZS5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoby5kYXRhKSkuYnVmZmVyO3JldHVybihhd2FpdCBpbXBvcnQoYCR7SX0uanNgKSkuZGVmYXVsdCh7d2FzbUJpbmFyeTpDfSl9dmFyIGllPWpJO3ZhciBIQT1uZXcgTWFwO2FzeW5jIGZ1bmN0aW9uIFpJKEEsdCxlKXtsZXQgST1BLHI9QSxvPW51bGw7cmV0dXJuIHR5cGVvZiBBIT0ic3RyaW5nIiYmKEk9bmV3IFVSTChBLmhyZWYpLHI9SS5ocmVmKSxIQS5oYXMocik/bz1hd2FpdCBIQS5nZXQocik6KEhBLnNldChyLGllKEksdCxlKSksbz1hd2FpdCBIQS5nZXQocikpLG99dmFyIHNlPVpJO3ZhciBWST17VGV4dEZpbGU6IlRleHRGaWxlIixCaW5hcnlGaWxlOiJCaW5hcnlGaWxlIixUZXh0U3RyZWFtOiJUZXh0U3RyZWFtIixCaW5hcnlTdHJlYW06IkJpbmFyeVN0cmVhbSIsSW1hZ2U6IkltYWdlIixQb2ludFNldDoiUG9pbnRTZXQiLE1lc2g6Ik1lc2giLFBvbHlEYXRhOiJQb2x5RGF0YSIsVHJhbnNmb3JtTGlzdDoiVHJhbnNmb3JtTGlzdCIsSnNvbkNvbXBhdGlibGU6Ikpzb25Db21wYXRpYmxlIn0sRD1WSTt2YXIgWEk9e0ludDg6ImludDgiLFVJbnQ4OiJ1aW50OCIsSW50MTY6ImludDE2IixVSW50MTY6InVpbnQxNiIsSW50MzI6ImludDMyIixVSW50MzI6InVpbnQzMiIsSW50NjQ6ImludDY0IixVSW50NjQ6InVpbnQ2NCIsU2l6ZVZhbHVlVHlwZToidWludDY0IixJZGVudGlmaWVyVHlwZToidWludDY0IixJbmRleFZhbHVlVHlwZToiaW50NjQiLE9mZnNldFZhbHVlVHlwZToiaW50NjQifSxOPVhJO3ZhciBfST17RmxvYXQzMjoiZmxvYXQzMiIsRmxvYXQ2NDoiZmxvYXQ2NCIsU3BhY2VQcmVjaXNpb25UeXBlOiJmbG9hdDY0In0sUD1fSTtmdW5jdGlvbiB6SShBLHQpe2xldCBlPW51bGw7c3dpdGNoKEEpe2Nhc2UgTi5VSW50ODp7ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIE4uSW50ODp7ZT1uZXcgSW50OEFycmF5KHQpO2JyZWFrfWNhc2UgTi5VSW50MTY6e2U9bmV3IFVpbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgTi5JbnQxNjp7ZT1uZXcgSW50MTZBcnJheSh0KTticmVha31jYXNlIE4uVUludDMyOntlPW5ldyBVaW50MzJBcnJheSh0KTticmVha31jYXNlIE4uSW50MzI6e2U9bmV3IEludDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBOLlVJbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnVWludDY0QXJyYXk9PSJmdW5jdGlvbiI/ZT1uZXcgQmlnVWludDY0QXJyYXkodCk6ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIE4uSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ0ludDY0QXJyYXk9PSJmdW5jdGlvbiI/ZT1uZXcgQmlnSW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgUC5GbG9hdDMyOntlPW5ldyBGbG9hdDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBQLkZsb2F0NjQ6e2U9bmV3IEZsb2F0NjRBcnJheSh0KTticmVha31jYXNlIm51bGwiOntlPW51bGw7YnJlYWt9Y2FzZSBudWxsOntlPW51bGw7YnJlYWt9ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlR5cGUgaXMgbm90IHN1cHBvcnRlZCBhcyBhIFR5cGVkQXJyYXkiKX1yZXR1cm4gZX12YXIgSj16STt2YXIgQmU9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI9PSJmdW5jdGlvbiIsbmU9bmV3IFRleHRFbmNvZGVyLENlPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKTtmdW5jdGlvbiB2SShBLHQpe2xldCBlPXtmbGFnczoiciIsZW5jb2Rpbmc6ImJpbmFyeSJ9LEk9QS5mc19vcGVuKHQsZS5mbGFncyksbz1BLmZzX3N0YXQodCkuc2l6ZSxnPW51bGw7QmU/Zz1uZXcgU2hhcmVkQXJyYXlCdWZmZXIobyk6Zz1uZXcgQXJyYXlCdWZmZXIobyk7bGV0IEM9bmV3IFVpbnQ4QXJyYXkoZyk7cmV0dXJuIEEuZnNfcmVhZChJLEMsMCxvLDApLEEuZnNfY2xvc2UoSSksQ31mdW5jdGlvbiBhZShBLHQsZSl7bGV0IEk9bnVsbDtCZT9JPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihlKTpJPW5ldyBBcnJheUJ1ZmZlcihlKTtsZXQgcj1uZXcgVWludDhBcnJheShJKSxvPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcix0LGUpO3JldHVybiByLnNldChvKSxyfWZ1bmN0aW9uIHAoQSx0LGUsSSl7bGV0IHI9MDtyZXR1cm4gdCE9PW51bGwmJihyPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2FycmF5X2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsSSx0LmJ1ZmZlci5ieXRlTGVuZ3RoXSksQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KHQuYnVmZmVyKSxyKSkscn1mdW5jdGlvbiBLKEEsdCxlKXtsZXQgST1KU09OLnN0cmluZ2lmeSh0KSxyPUEubGVuZ3RoQnl0ZXNVVEY4KEkpKzEsbz1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUscl0pO0Euc3RyaW5nVG9VVEY4KEksbyxyKX1mdW5jdGlvbiBGKEEsdCxlLEkpe2xldCByPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsZV0pLG89QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksZz1hZShBLHIsbyk7cmV0dXJuIEooSSxnLmJ1ZmZlcil9ZnVuY3Rpb24gQ0EoQSx0KXtsZXQgZT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLHRdKSxJPUEuVVRGOFRvU3RyaW5nKGUpO3JldHVybiBKU09OLnBhcnNlKEkpfWZ1bmN0aW9uICRJKEEsdCxlLEkpe0khPW51bGwmJkkubGVuZ3RoPjAmJkkuZm9yRWFjaChmdW5jdGlvbihhLHMpe3N3aXRjaChhLnR5cGUpe2Nhc2UgRC5UZXh0U3RyZWFtOntsZXQgbj1uZS5lbmNvZGUoYS5kYXRhLmRhdGEpLGY9cChBLG4scywwKSxCPXtzaXplOm4uYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07SyhBLEIscyk7YnJlYWt9Y2FzZSBELkpzb25Db21wYXRpYmxlOntsZXQgbj1uZS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoYS5kYXRhKSksZj1wKEEsbixzLDApLEI9e3NpemU6bi5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtLKEEsQixzKTticmVha31jYXNlIEQuQmluYXJ5U3RyZWFtOntsZXQgbj1hLmRhdGEuZGF0YSxmPXAoQSxuLHMsMCksQj17c2l6ZTpuLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O0soQSxCLHMpO2JyZWFrfWNhc2UgRC5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoYS5kYXRhLnBhdGgsYS5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgRC5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShhLmRhdGEucGF0aCxhLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBELkltYWdlOntsZXQgbj1hLmRhdGEsZj1wKEEsbi5kYXRhLHMsMCksQj1wKEEsbi5kaXJlY3Rpb24scywxKSxRPXR5cGVvZiBuLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKG4ubWV0YWRhdGEuZW50cmllcygpKTpbXSxsPXtpbWFnZVR5cGU6bi5pbWFnZVR5cGUsbmFtZTpuLm5hbWUsb3JpZ2luOm4ub3JpZ2luLHNwYWNpbmc6bi5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxzaXplOm4uc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLG1ldGFkYXRhOlF9O0soQSxsLHMpO2JyZWFrfWNhc2UgRC5NZXNoOntsZXQgbj1hLmRhdGEsZj1wKEEsbi5wb2ludHMscywwKSxCPXAoQSxuLmNlbGxzLHMsMSksUT1wKEEsbi5wb2ludERhdGEscywyKSxsPXAoQSxuLmNlbGxEYXRhLHMsMyksYz17bWVzaFR5cGU6bi5tZXNoVHlwZSxuYW1lOm4ubmFtZSxudW1iZXJPZlBvaW50czpuLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCxudW1iZXJPZkNlbGxzOm4ubnVtYmVyT2ZDZWxscyxjZWxsczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxjZWxsQnVmZmVyU2l6ZTpuLmNlbGxCdWZmZXJTaXplLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxudW1iZXJPZkNlbGxQaXhlbHM6bi5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O0soQSxjLHMpO2JyZWFrfWNhc2UgRC5Qb2ludFNldDp7bGV0IG49YS5kYXRhLGY9cChBLG4ucG9pbnRzLHMsMCksQj1wKEEsbi5wb2ludERhdGEscywxKSxRPXtwb2ludFNldFR5cGU6bi5wb2ludFNldFR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpuLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gfTtLKEEsUSxzKTticmVha31jYXNlIEQuVHJhbnNmb3JtTGlzdDp7bGV0IG49YS5kYXRhLGY9W10sQj0wO24uZm9yRWFjaChRPT57bGV0IGw9IiIsYz0iIjtRLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYobD1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3AoQSxRLmZpeGVkUGFyYW1ldGVycyxzLEIpfWAsQis9MSxjPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7cChBLFEucGFyYW1ldGVycyxzLEIpfWAsQis9MSk7bGV0IGQ9e3RyYW5zZm9ybVR5cGU6US50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOlEubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOlEubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6US5uYW1lLGlucHV0U3BhY2VOYW1lOlEuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOlEub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6YyxmaXhlZFBhcmFtZXRlcnM6bH07Zi5wdXNoKGQpfSksSyhBLGYscyk7YnJlYWt9Y2FzZSBELlBvbHlEYXRhOntsZXQgbj1hLmRhdGEsZj1wKEEsbi5wb2ludHMscywwKSxCPXAoQSxuLnZlcnRpY2VzLHMsMSksUT1wKEEsbi5saW5lcyxzLDIpLGw9cChBLG4ucG9seWdvbnMscywzKSxjPXAoQSxuLnRyaWFuZ2xlU3RyaXBzLHMsNCksZD1wKEEsbi5wb2ludERhdGEscyw1KSx5PXAoQSxuLnBvaW50RGF0YSxzLDYpLG09e3BvbHlEYXRhVHlwZTpuLnBvbHlEYXRhVHlwZSxuYW1lOm4ubmFtZSxudW1iZXJPZlBvaW50czpuLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCx2ZXJ0aWNlc0J1ZmZlclNpemU6bi52ZXJ0aWNlc0J1ZmZlclNpemUsdmVydGljZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsbGluZXNCdWZmZXJTaXplOm4ubGluZXNCdWZmZXJTaXplLGxpbmVzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLHBvbHlnb25zQnVmZmVyU2l6ZTpuLnBvbHlnb25zQnVmZmVyU2l6ZSxwb2x5Z29uczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCx0cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU6bi50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemUsdHJpYW5nbGVTdHJpcHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpuLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7ZH1gLG51bWJlck9mQ2VsbFBpeGVsczpuLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3l9YH07SyhBLG0scyk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IHI9QS5zdGFja1NhdmUoKSxvPTA7dHJ5e289QS5jYWxsTWFpbih0LnNsaWNlKCkpfWNhdGNoKGEpe3Rocm93IHR5cGVvZiBhPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKGEpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLGF9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShyKX1sZXQgZz1BLmdldE1vZHVsZVN0ZG91dCgpLEM9QS5nZXRNb2R1bGVTdGRlcnIoKSxFPVtdO3JldHVybiBlIT1udWxsJiZlLmxlbmd0aD4wJiZvPT09MCYmZS5mb3JFYWNoKGZ1bmN0aW9uKGEscyl7bGV0IG49bnVsbDtzd2l0Y2goYS50eXBlKXtjYXNlIEQuVGV4dFN0cmVhbTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxsPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixCLFEpO249e2RhdGE6Q2UuZGVjb2RlKGwpfTticmVha31jYXNlIEQuSnNvbkNvbXBhdGlibGU6e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksbD1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQixRKTtuPUpTT04ucGFyc2UoQ2UuZGVjb2RlKGwpKTticmVha31jYXNlIEQuQmluYXJ5U3RyZWFtOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pO249e2RhdGE6YWUoQSxCLFEpfTticmVha31jYXNlIEQuVGV4dEZpbGU6e249e3BhdGg6YS5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKGEuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSBELkJpbmFyeUZpbGU6e249e3BhdGg6YS5kYXRhLnBhdGgsZGF0YTp2SShBLGEuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSBELkltYWdlOntsZXQgQj1DQShBLHMpO0IuZGF0YT1GKEEscywwLEIuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLEIuZGlyZWN0aW9uPUYoQSxzLDEsUC5GbG9hdDY0KSxCLm1ldGFkYXRhPW5ldyBNYXAoQi5tZXRhZGF0YSksbj1CO2JyZWFrfWNhc2UgRC5NZXNoOntsZXQgQj1DQShBLHMpO0IubnVtYmVyT2ZQb2ludHM+MD9CLnBvaW50cz1GKEEscywwLEIubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpCLnBvaW50cz1KKEIubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxzPjA/Qi5jZWxscz1GKEEscywxLEIubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOkIuY2VsbHM9SihCLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9RihBLHMsMixCLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1KKEIubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mQ2VsbFBpeGVscz4wP0IuY2VsbERhdGE9RihBLHMsMyxCLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOkIuY2VsbERhdGE9SihCLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuPUI7YnJlYWt9Y2FzZSBELlBvaW50U2V0OntsZXQgQj1DQShBLHMpO0IubnVtYmVyT2ZQb2ludHM+MD9CLnBvaW50cz1GKEEscywwLEIucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qi5wb2ludHM9SihCLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1GKEEscywxLEIucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1KKEIucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksbj1CO2JyZWFrfWNhc2UgRC5UcmFuc2Zvcm1MaXN0OntsZXQgQj1DQShBLHMpLFE9MDtCLmZvckVhY2goKGwsYyk9PntsLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYobC5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYoQltjXS5maXhlZFBhcmFtZXRlcnM9RihBLHMsUSxQLkZsb2F0NjQpKSxRKz0xLGwubnVtYmVyT2ZQYXJhbWV0ZXJzPjAmJihCW2NdLnBhcmFtZXRlcnM9RihBLHMsUSxsLnRyYW5zZm9ybVR5cGUucGFyYW1ldGVyc1ZhbHVlVHlwZSkpLFErPTEpfSksbj1CO2JyZWFrfWNhc2UgRC5Qb2x5RGF0YTp7bGV0IEI9Q0EoQSxzKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9RihBLHMsMCxQLkZsb2F0MzIpOkIucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXksQi52ZXJ0aWNlc0J1ZmZlclNpemU+MD9CLnZlcnRpY2VzPUYoQSxzLDEsTi5VSW50MzIpOkIudmVydGljZXM9bmV3IFVpbnQzMkFycmF5LEIubGluZXNCdWZmZXJTaXplPjA/Qi5saW5lcz1GKEEscywyLE4uVUludDMyKTpCLmxpbmVzPW5ldyBVaW50MzJBcnJheSxCLnBvbHlnb25zQnVmZmVyU2l6ZT4wP0IucG9seWdvbnM9RihBLHMsMyxOLlVJbnQzMik6Qi5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXksQi50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9CLnRyaWFuZ2xlU3RyaXBzPUYoQSxzLDQsTi5VSW50MzIpOkIudHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPUYoQSxzLDUsQi5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOkIucG9pbnREYXRhPUooQi5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxCLm51bWJlck9mQ2VsbFBpeGVscz4wP0IuY2VsbERhdGE9RihBLHMsNixCLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpCLmNlbGxEYXRhPUooQi5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLG49QjticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBmPXt0eXBlOmEudHlwZSxkYXRhOm59O0UucHVzaChmKX0pLHtyZXR1cm5WYWx1ZTpvLHN0ZG91dDpnLHN0ZGVycjpDLG91dHB1dHM6RX19dmFyIFFlPSRJO3ZhciBBcj10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gdHIoQSx0KXtpZihBPT1udWxsKXJldHVybltdO2xldCBlPVtdO2ZvcihsZXQgST0wO0k8QS5sZW5ndGg7SSsrKXtsZXQgcj1lcihBW0ldLHQpO3IhPT1udWxsJiZlLnB1c2gocil9cmV0dXJuIGV9ZnVuY3Rpb24gZXIoQSx0KXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCBlPW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP2U9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYoZT1BKSxBciYmZSBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6dD9lOmUuc2xpY2UoMCl9dmFyIEVlPXRyO2Z1bmN0aW9uIElyKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciBjZT1JcjtmdW5jdGlvbiBycihBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgZmU9cnI7ZnVuY3Rpb24gb3IoQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIGxlPW9yO2FzeW5jIGZ1bmN0aW9uIGdyKEEsdCxlLEkpe2xldCByPVFlKEEsdCxlLEkpLG89W107cmV0dXJuIHIub3V0cHV0cy5mb3JFYWNoKGZ1bmN0aW9uKGcpe2lmKGcudHlwZT09PUQuQmluYXJ5U3RyZWFtfHxnLnR5cGU9PT1ELkJpbmFyeUZpbGUpe2xldCBDPWcuZGF0YTtvLnB1c2goQyl9ZWxzZSBpZihnLnR5cGU9PT1ELkltYWdlKXtsZXQgQz1nLmRhdGE7by5wdXNoKC4uLmNlKEMpKX1lbHNlIGlmKGcudHlwZT09PUQuTWVzaCl7bGV0IEM9Zy5kYXRhO28ucHVzaCguLi5mZShDKSl9ZWxzZSBpZihnLnR5cGU9PT1ELlBvbHlEYXRhKXtsZXQgQz1nLmRhdGE7by5wdXNoKC4uLmxlKEMpKX19KSxNQShyLEVlKG8sITApKX12YXIgdWU9Z3I7dmFyIGlyPXtydW5QaXBlbGluZTphc3luYyBmdW5jdGlvbihBLHQsZSxJLHIsbyl7bGV0IGc9YXdhaXQgc2UoQSx0LG8pO3JldHVybiBhd2FpdCB1ZShnLGUsSSxyKX19O2xBKGlyKTslMEEvKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOiUwQSUwQWNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6JTBBICAoKiolMEEgICAqIEBsaWNlbnNlJTBBICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDJTBBICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCUwQSAgICopJTBBKi8lMEEnO3dyKFNyKTtleHBvcnR7dmUgYXMgYnl1UmVhZE1lc2gsWmUgYXMgYnl1V3JpdGVNZXNoLHYgYXMgZXh0ZW5zaW9uVG9NZXNoSW8sWiBhcyBleHRlbnNpb25Ub1BvaW50U2V0SW8sVmUgYXMgZnJlZVN1cmZlckFzY2lpUmVhZE1lc2gsemUgYXMgZnJlZVN1cmZlckFzY2lpV3JpdGVNZXNoLFhlIGFzIGZyZWVTdXJmZXJCaW5hcnlSZWFkTWVzaCxfZSBhcyBmcmVlU3VyZmVyQmluYXJ5V3JpdGVNZXNoLHkgYXMgZ2V0RGVmYXVsdFdlYldvcmtlcixjIGFzIGdldFBpcGVsaW5lV29ya2VyVXJsLGQgYXMgZ2V0UGlwZWxpbmVzQmFzZVVybCxKZSBhcyBtejNSZWFkTWVzaCxldCBhcyBtejNSZWFkUG9pbnRTZXQseGUgYXMgbXozV3JpdGVNZXNoLHR0IGFzIG16M1dyaXRlUG9pbnRTZXQsR2UgYXMgb2JqUmVhZE1lc2gscnQgYXMgb2JqUmVhZFBvaW50U2V0LE1lIGFzIG9ialdyaXRlTWVzaCxpdCBhcyBvYmpXcml0ZVBvaW50U2V0LE9lIGFzIG9mZlJlYWRNZXNoLG90IGFzIG9mZlJlYWRQb2ludFNldCxMZSBhcyBvZmZXcml0ZU1lc2gsbnQgYXMgb2ZmV3JpdGVQb2ludFNldCxfbyBhcyByZWFkTWVzaCx1biBhcyByZWFkUG9pbnRTZXQsaUIgYXMgc2V0RGVmYXVsdFdlYldvcmtlcix3ciBhcyBzZXRQaXBlbGluZVdvcmtlclVybCxYZyBhcyBzZXRQaXBlbGluZXNCYXNlVXJsLFdlIGFzIHN0bFJlYWRNZXNoLFBlIGFzIHN0bFdyaXRlTWVzaCxLZSBhcyBzd2NSZWFkTWVzaCxqZSBhcyBzd2NXcml0ZU1lc2gsYmUgYXMgdnRrUG9seURhdGFSZWFkTWVzaCwkZSBhcyB2dGtQb2x5RGF0YVJlYWRQb2ludFNldCxOZSBhcyB2dGtQb2x5RGF0YVdyaXRlTWVzaCxBdCBhcyB2dGtQb2x5RGF0YVdyaXRlUG9pbnRTZXQsWWUgYXMgd2FzbVJlYWRNZXNoLGF0IGFzIHdhc21SZWFkUG9pbnRTZXQsSGUgYXMgd2FzbVdyaXRlTWVzaCxzdCBhcyB3YXNtV3JpdGVQb2ludFNldCxUZSBhcyB3YXNtWnN0ZFJlYWRNZXNoLEl0IGFzIHdhc21ac3RkUmVhZFBvaW50U2V0LHFlIGFzIHdhc21ac3RkV3JpdGVNZXNoLGd0IGFzIHdhc21ac3RkV3JpdGVQb2ludFNldCxBbiBhcyB3cml0ZU1lc2gsY24gYXMgd3JpdGVQb2ludFNldH07Ci8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246Cgpjb21saW5rL2Rpc3QvZXNtL2NvbWxpbmsubWpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQwogICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCiAgICopCiovCg==""" +default_js_module = """data:text/javascript;base64,dmFyIEtyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIganI9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSlLcihBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIHZyPW5ldyBNYXAoW1sidnRrIiwidnRrIl0sWyJieXUiLCJieXUiXSxbImZzYSIsImZyZWUtc3VyZmVyLWFzY2lpIl0sWyJmc2IiLCJmcmVlLXN1cmZlci1iaW5hcnkiXSxbIm16MyIsIm16MyJdLFsib2JqIiwib2JqIl0sWyJvZmYiLCJvZmYiXSxbInN0bCIsInN0bCJdLFsic3djIiwic3djIl0sWyJpd20iLCJ3YXNtIl0sWyJpd20uY2JvciIsIndhc20iXSxbIml3bS5jYm9yLnpzdCIsIndhc20tenN0ZCJdXSksWD12cjt2YXIgWnI9bmV3IE1hcChbWyJ2dGsiLCJ2dGsiXSxbIm9iaiIsIm9iaiJdLFsib2ZmIiwib2ZmIl0sWyJtejMiLCJtejMiXSxbIml3bSIsIndhc20iXSxbIml3bS5jYm9yIiwid2FzbSJdLFsiaXdtLmNib3IuenN0Iiwid2FzbS16c3RkIl1dKSxfPVpyO3ZhciBWcj17SW50ODoiaW50OCIsVUludDg6InVpbnQ4IixJbnQxNjoiaW50MTYiLFVJbnQxNjoidWludDE2IixJbnQzMjoiaW50MzIiLFVJbnQzMjoidWludDMyIixJbnQ2NDoiaW50NjQiLFVJbnQ2NDoidWludDY0IixTaXplVmFsdWVUeXBlOiJ1aW50NjQiLElkZW50aWZpZXJUeXBlOiJ1aW50NjQiLEluZGV4VmFsdWVUeXBlOiJpbnQ2NCIsT2Zmc2V0VmFsdWVUeXBlOiJpbnQ2NCJ9LEc9VnI7dmFyIHpyPXtGbG9hdDMyOiJmbG9hdDMyIixGbG9hdDY0OiJmbG9hdDY0IixTcGFjZVByZWNpc2lvblR5cGU6ImZsb2F0NjQifSwkPXpyO2Z1bmN0aW9uIFhyKEEsZSl7bGV0IHQ9bnVsbDtzd2l0Y2goQSl7Y2FzZSBHLlVJbnQ4Ont0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgRy5JbnQ4Ont0PW5ldyBJbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBHLlVJbnQxNjp7dD1uZXcgVWludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBHLkludDE2Ont0PW5ldyBJbnQxNkFycmF5KGUpO2JyZWFrfWNhc2UgRy5VSW50MzI6e3Q9bmV3IFVpbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgRy5JbnQzMjp7dD1uZXcgSW50MzJBcnJheShlKTticmVha31jYXNlIEcuVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdVaW50NjRBcnJheShlKTp0PW5ldyBVaW50OEFycmF5KGUpO2JyZWFrfWNhc2UgRy5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj90PW5ldyBCaWdJbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSAkLkZsb2F0MzI6e3Q9bmV3IEZsb2F0MzJBcnJheShlKTticmVha31jYXNlICQuRmxvYXQ2NDp7dD1uZXcgRmxvYXQ2NEFycmF5KGUpO2JyZWFrfWNhc2UibnVsbCI6e3Q9bnVsbDticmVha31jYXNlIG51bGw6e3Q9bnVsbDticmVha31kZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZSBpcyBub3Qgc3VwcG9ydGVkIGFzIGEgVHlwZWRBcnJheSIpfXJldHVybiB0fXZhciB4PVhyO2Z1bmN0aW9uIF9yKEEpe2xldCBlPUEuc2xpY2UoKEEubGFzdEluZGV4T2YoIi4iKS0xPj4+MCkrMik7aWYoZS50b0xvd2VyQ2FzZSgpPT09Imd6Iil7bGV0IHQ9QS5zbGljZSgwLC0zKS5sYXN0SW5kZXhPZigiLiIpO2U9QS5zbGljZSgodC0xPj4+MCkrMil9ZWxzZSBpZihlLnRvTG93ZXJDYXNlKCk9PT0iY2JvciIpe2xldCB0PUEuc2xpY2UoMCwtNSkubGFzdEluZGV4T2YoIi4iKTtlPUEuc2xpY2UoKHQtMT4+PjApKzIpfWVsc2UgaWYoZS50b0xvd2VyQ2FzZSgpPT09InpzdCIpe2xldCB0PUEuc2xpY2UoMCwtMTApLmxhc3RJbmRleE9mKCIuIik7ZT1BLnNsaWNlKCh0LTE+Pj4wKSsyKX1lbHNlIGlmKGUudG9Mb3dlckNhc2UoKT09PSJ6aXAiKXtsZXQgdD1BLnNsaWNlKDAsLTQpLmxhc3RJbmRleE9mKCIuIik7ZT1BLnNsaWNlKCh0LTE+Pj4wKSsyKX1yZXR1cm4gZX12YXIgVD1fcjt2YXIgJHI9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LFE9JHI7dmFyIEZ0PVN5bWJvbCgiQ29tbGluay5wcm94eSIpLEFpPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLGdlPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxzZT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksT0E9U3ltYm9sKCJDb21saW5rLnRocm93biIpLGt0PUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLGVpPXtjYW5IYW5kbGU6QT0+a3QoQSkmJkFbRnRdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6ZSxwb3J0Mjp0fT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIGJ0KEEsZSksW3QsW3RdXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxCZShBKX19LHRpPXtjYW5IYW5kbGU6QT0+a3QoQSkmJk9BIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IGU7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTpBfSxbZSxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSxVdD1uZXcgTWFwKFtbInByb3h5IixlaV0sWyJ0aHJvdyIsdGldXSk7ZnVuY3Rpb24gcmkoQSxlKXtmb3IobGV0IHQgb2YgQSlpZihlPT09dHx8dD09PSIqInx8dCBpbnN0YW5jZW9mIFJlZ0V4cCYmdC50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGJ0KEEsZT1nbG9iYWxUaGlzLHQ9WyIqIl0pe2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gaShvKXtpZighb3x8IW8uZGF0YSlyZXR1cm47aWYoIXJpKHQsby5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luICcke28ub3JpZ2lufScgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOnIsdHlwZTphLHBhdGg6Q309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sby5kYXRhKSxwPShvLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKEFBKSxCO3RyeXtsZXQgbj1DLnNsaWNlKDAsLTEpLnJlZHVjZSgobCxzKT0+bFtzXSxBKSxnPUMucmVkdWNlKChsLHMpPT5sW3NdLEEpO3N3aXRjaChhKXtjYXNlIkdFVCI6Qj1nO2JyZWFrO2Nhc2UiU0VUIjpuW0Muc2xpY2UoLTEpWzBdXT1BQShvLmRhdGEudmFsdWUpLEI9ITA7YnJlYWs7Y2FzZSJBUFBMWSI6Qj1nLmFwcGx5KG4scCk7YnJlYWs7Y2FzZSJDT05TVFJVQ1QiOntsZXQgbD1uZXcgZyguLi5wKTtCPXNpKGwpfWJyZWFrO2Nhc2UiRU5EUE9JTlQiOntsZXR7cG9ydDE6bCxwb3J0MjpzfT1uZXcgTWVzc2FnZUNoYW5uZWw7YnQoQSxzKSxCPUNlKGwsW2xdKX1icmVhaztjYXNlIlJFTEVBU0UiOkI9dm9pZCAwO2JyZWFrO2RlZmF1bHQ6cmV0dXJufX1jYXRjaChuKXtCPXt2YWx1ZTpuLFtPQV06MH19UHJvbWlzZS5yZXNvbHZlKEIpLmNhdGNoKG49Pih7dmFsdWU6bixbT0FdOjB9KSkudGhlbihuPT57bGV0W2csbF09eEEobik7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZykse2lkOnJ9KSxsKSxhPT09IlJFTEVBU0UiJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixpKSxOdChlKSxzZSBpbiBBJiZ0eXBlb2YgQVtzZV09PSJmdW5jdGlvbiImJkFbc2VdKCkpfSkuY2F0Y2gobj0+e2xldFtnLGxdPXhBKHt2YWx1ZTpuZXcgVHlwZUVycm9yKCJVbnNlcmlhbGl6YWJsZSByZXR1cm4gdmFsdWUiKSxbT0FdOjB9KTtlLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnKSx7aWQ6cn0pLGwpfSl9KSxlLnN0YXJ0JiZlLnN0YXJ0KCl9ZnVuY3Rpb24gaWkoQSl7cmV0dXJuIEEuY29uc3RydWN0b3IubmFtZT09PSJNZXNzYWdlUG9ydCJ9ZnVuY3Rpb24gTnQoQSl7aWkoQSkmJkEuY2xvc2UoKX1mdW5jdGlvbiBCZShBLGUpe3JldHVybiBJZShBLFtdLGUpfWZ1bmN0aW9uIFBBKEEpe2lmKEEpdGhyb3cgbmV3IEVycm9yKCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGUiKX1mdW5jdGlvbiBHdChBKXtyZXR1cm4gckEoQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57TnQoQSl9KX12YXIgTEE9bmV3IFdlYWtNYXAsSkE9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IGU9KExBLmdldChBKXx8MCktMTtMQS5zZXQoQSxlKSxlPT09MCYmR3QoQSl9KTtmdW5jdGlvbiBvaShBLGUpe2xldCB0PShMQS5nZXQoZSl8fDApKzE7TEEuc2V0KGUsdCksSkEmJkpBLnJlZ2lzdGVyKEEsZSxBKX1mdW5jdGlvbiBuaShBKXtKQSYmSkEudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBJZShBLGU9W10sdD1mdW5jdGlvbigpe30pe2xldCBpPSExLG89bmV3IFByb3h5KHQse2dldChyLGEpe2lmKFBBKGkpLGE9PT1nZSlyZXR1cm4oKT0+e25pKG8pLEd0KEEpLGk9ITB9O2lmKGE9PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+b307bGV0IEM9ckEoQSx7dHlwZToiR0VUIixwYXRoOmUubWFwKHA9PnAudG9TdHJpbmcoKSl9KS50aGVuKEFBKTtyZXR1cm4gQy50aGVuLmJpbmQoQyl9cmV0dXJuIEllKEEsWy4uLmUsYV0pfSxzZXQocixhLEMpe1BBKGkpO2xldFtwLEJdPXhBKEMpO3JldHVybiByQShBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLmUsYV0ubWFwKG49Pm4udG9TdHJpbmcoKSksdmFsdWU6cH0sQikudGhlbihBQSl9LGFwcGx5KHIsYSxDKXtQQShpKTtsZXQgcD1lW2UubGVuZ3RoLTFdO2lmKHA9PT1BaSlyZXR1cm4gckEoQSx7dHlwZToiRU5EUE9JTlQifSkudGhlbihBQSk7aWYocD09PSJiaW5kIilyZXR1cm4gSWUoQSxlLnNsaWNlKDAsLTEpKTtsZXRbQixuXT1SdChDKTtyZXR1cm4gckEoQSx7dHlwZToiQVBQTFkiLHBhdGg6ZS5tYXAoZz0+Zy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0sbikudGhlbihBQSl9LGNvbnN0cnVjdChyLGEpe1BBKGkpO2xldFtDLHBdPVJ0KGEpO3JldHVybiByQShBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6ZS5tYXAoQj0+Qi50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Q30scCkudGhlbihBQSl9fSk7cmV0dXJuIG9pKG8sQSksb31mdW5jdGlvbiBhaShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBSdChBKXtsZXQgZT1BLm1hcCh4QSk7cmV0dXJuW2UubWFwKHQ9PnRbMF0pLGFpKGUubWFwKHQ9PnRbMV0pKV19dmFyIE10PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIENlKEEsZSl7cmV0dXJuIE10LnNldChBLGUpLEF9ZnVuY3Rpb24gc2koQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W0Z0XTohMH0pfWZ1bmN0aW9uIHhBKEEpe2ZvcihsZXRbZSx0XW9mIFV0KWlmKHQuY2FuSGFuZGxlKEEpKXtsZXRbaSxvXT10LnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6ZSx2YWx1ZTppfSxvXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sTXQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gQUEoQSl7c3dpdGNoKEEudHlwZSl7Y2FzZSJIQU5ETEVSIjpyZXR1cm4gVXQuZ2V0KEEubmFtZSkuZGVzZXJpYWxpemUoQS52YWx1ZSk7Y2FzZSJSQVciOnJldHVybiBBLnZhbHVlfX1mdW5jdGlvbiByQShBLGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKGk9PntsZXQgbz1JaSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gcihhKXshYS5kYXRhfHwhYS5kYXRhLmlkfHxhLmRhdGEuaWQhPT1vfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKSxpKGEuZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6b30sZSksdCl9KX1mdW5jdGlvbiBJaSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gZkEoQSxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShlLGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzpnaX09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6RWV9PU9iamVjdCx7aXRlcmF0b3I6SEEsdG9TdHJpbmdUYWc6T3R9PVN5bWJvbCxUQT0oQT0+ZT0+e2xldCB0PWdpLmNhbGwoZSk7cmV0dXJuIEFbdF18fChBW3RdPXQuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxPPUE9PihBPUEudG9Mb3dlckNhc2UoKSxlPT5UQShlKT09PUEpLHFBPUE9PmU9PnR5cGVvZiBlPT09QSx7aXNBcnJheTpvQX09QXJyYXksaUE9cUEoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIGNBKEEpe3JldHVybiBBIT09bnVsbCYmIWlBKEEpJiZBLmNvbnN0cnVjdG9yIT09bnVsbCYmIWlBKEEuY29uc3RydWN0b3IpJiZNKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciBMdD1PKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIEJpKEEpe2xldCBlO3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/ZT1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6ZT1BJiZBLmJ1ZmZlciYmTHQoQS5idWZmZXIpLGV9dmFyIENpPXFBKCJzdHJpbmciKSxNPXFBKCJmdW5jdGlvbiIpLEp0PXFBKCJudW1iZXIiKSxtQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLFFpPUE9PkE9PT0hMHx8QT09PSExLFlBPUE9PntpZihUQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCBlPUVlKEEpO3JldHVybihlPT09bnVsbHx8ZT09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PW51bGwpJiYhKE90IGluIEEpJiYhKEhBIGluIEEpfSxFaT1BPT57aWYoIW1BKEEpfHxjQShBKSlyZXR1cm4hMTt0cnl7cmV0dXJuIE9iamVjdC5rZXlzKEEpLmxlbmd0aD09PTAmJk9iamVjdC5nZXRQcm90b3R5cGVPZihBKT09PU9iamVjdC5wcm90b3R5cGV9Y2F0Y2h7cmV0dXJuITF9fSxsaT1PKCJEYXRlIikscGk9TygiRmlsZSIpLHVpPU8oIkJsb2IiKSxmaT1PKCJGaWxlTGlzdCIpLGNpPUE9Pm1BKEEpJiZNKEEucGlwZSksbWk9QT0+e2xldCBlO3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fE0oQS5hcHBlbmQpJiYoKGU9VEEoQSkpPT09ImZvcm1kYXRhInx8ZT09PSJvYmplY3QiJiZNKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LGRpPU8oIlVSTFNlYXJjaFBhcmFtcyIpLFt5aSxoaSx3aSxEaV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoTyksU2k9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2csIiIpO2Z1bmN0aW9uIGRBKEEsZSx7YWxsT3duS2V5czp0PSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IGksbztpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksb0EoQSkpZm9yKGk9MCxvPUEubGVuZ3RoO2k8bztpKyspZS5jYWxsKG51bGwsQVtpXSxpLEEpO2Vsc2V7aWYoY0EoQSkpcmV0dXJuO2xldCByPXQ/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQSk6T2JqZWN0LmtleXMoQSksYT1yLmxlbmd0aCxDO2ZvcihpPTA7aTxhO2krKylDPXJbaV0sZS5jYWxsKG51bGwsQVtDXSxDLEEpfX1mdW5jdGlvbiB4dChBLGUpe2lmKGNBKEEpKXJldHVybiBudWxsO2U9ZS50b0xvd2VyQ2FzZSgpO2xldCB0PU9iamVjdC5rZXlzKEEpLGk9dC5sZW5ndGgsbztmb3IoO2ktLSA+MDspaWYobz10W2ldLGU9PT1vLnRvTG93ZXJDYXNlKCkpcmV0dXJuIG87cmV0dXJuIG51bGx9dmFyIGVBPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsWXQ9QT0+IWlBKEEpJiZBIT09ZUE7ZnVuY3Rpb24gUWUoKXtsZXR7Y2FzZWxlc3M6QSxza2lwVW5kZWZpbmVkOmV9PVl0KHRoaXMpJiZ0aGlzfHx7fSx0PXt9LGk9KG8scik9PntsZXQgYT1BJiZ4dCh0LHIpfHxyO1lBKHRbYV0pJiZZQShvKT90W2FdPVFlKHRbYV0sbyk6WUEobyk/dFthXT1RZSh7fSxvKTpvQShvKT90W2FdPW8uc2xpY2UoKTooIWV8fCFpQShvKSkmJih0W2FdPW8pfTtmb3IobGV0IG89MCxyPWFyZ3VtZW50cy5sZW5ndGg7bzxyO28rKylhcmd1bWVudHNbb10mJmRBKGFyZ3VtZW50c1tvXSxpKTtyZXR1cm4gdH12YXIgUmk9KEEsZSx0LHthbGxPd25LZXlzOml9PXt9KT0+KGRBKGUsKG8scik9Pnt0JiZNKG8pP0Fbcl09ZkEobyx0KTpBW3JdPW99LHthbGxPd25LZXlzOml9KSxBKSxGaT1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLGtpPShBLGUsdCxpKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUsaSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLHQmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsdCl9LFVpPShBLGUsdCxpKT0+e2xldCBvLHIsYSxDPXt9O2lmKGU9ZXx8e30sQT09bnVsbClyZXR1cm4gZTtkb3tmb3Iobz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxyPW8ubGVuZ3RoO3ItLSA+MDspYT1vW3JdLCghaXx8aShhLEEsZSkpJiYhQ1thXSYmKGVbYV09QVthXSxDW2FdPSEwKTtBPXQhPT0hMSYmRWUoQSl9d2hpbGUoQSYmKCF0fHx0KEEsZSkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LGJpPShBLGUsdCk9PntBPVN0cmluZyhBKSwodD09PXZvaWQgMHx8dD5BLmxlbmd0aCkmJih0PUEubGVuZ3RoKSx0LT1lLmxlbmd0aDtsZXQgaT1BLmluZGV4T2YoZSx0KTtyZXR1cm4gaSE9PS0xJiZpPT09dH0sTmk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKG9BKEEpKXJldHVybiBBO2xldCBlPUEubGVuZ3RoO2lmKCFKdChlKSlyZXR1cm4gbnVsbDtsZXQgdD1uZXcgQXJyYXkoZSk7Zm9yKDtlLS0gPjA7KXRbZV09QVtlXTtyZXR1cm4gdH0sR2k9KEE9PmU9PkEmJmUgaW5zdGFuY2VvZiBBKSh0eXBlb2YgVWludDhBcnJheTwidSImJkVlKFVpbnQ4QXJyYXkpKSxNaT0oQSxlKT0+e2xldCBpPShBJiZBW0hBXSkuY2FsbChBKSxvO2Zvcig7KG89aS5uZXh0KCkpJiYhby5kb25lOyl7bGV0IHI9by52YWx1ZTtlLmNhbGwoQSxyWzBdLHJbMV0pfX0sV2k9KEEsZSk9PntsZXQgdCxpPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KWkucHVzaCh0KTtyZXR1cm4gaX0sUGk9TygiSFRNTEZvcm1FbGVtZW50IiksT2k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxpLG8pe3JldHVybiBpLnRvVXBwZXJDYXNlKCkrb30pLFB0PSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxMaT1PKCJSZWdFeHAiKSxIdD0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLGk9e307ZEEodCwobyxyKT0+e2xldCBhOyhhPWUobyxyLEEpKSE9PSExJiYoaVtyXT1hfHxvKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsaSl9LEppPUE9PntIdChBLChlLHQpPT57aWYoTShBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IGk9QVt0XTtpZihNKGkpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LHhpPShBLGUpPT57bGV0IHQ9e30saT1vPT57by5mb3JFYWNoKHI9Pnt0W3JdPSEwfSl9O3JldHVybiBvQShBKT9pKEEpOmkoU3RyaW5nKEEpLnNwbGl0KGUpKSx0fSxZaT0oKT0+e30sSGk9KEEsZSk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOmU7ZnVuY3Rpb24gVGkoQSl7cmV0dXJuISEoQSYmTShBLmFwcGVuZCkmJkFbT3RdPT09IkZvcm1EYXRhIiYmQVtIQV0pfXZhciBxaT1BPT57bGV0IGU9bmV3IEFycmF5KDEwKSx0PShpLG8pPT57aWYobUEoaSkpe2lmKGUuaW5kZXhPZihpKT49MClyZXR1cm47aWYoY0EoaSkpcmV0dXJuIGk7aWYoISgidG9KU09OImluIGkpKXtlW29dPWk7bGV0IHI9b0EoaSk/W106e307cmV0dXJuIGRBKGksKGEsQyk9PntsZXQgcD10KGEsbysxKTshaUEocCkmJihyW0NdPXApfSksZVtvXT12b2lkIDAscn19cmV0dXJuIGl9O3JldHVybiB0KEEsMCl9LEtpPU8oIkFzeW5jRnVuY3Rpb24iKSxqaT1BPT5BJiYobUEoQSl8fE0oQSkpJiZNKEEudGhlbikmJk0oQS5jYXRjaCksVHQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxpKT0+KGVBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOm8sZGF0YTpyfSk9PntvPT09ZUEmJnI9PT10JiZpLmxlbmd0aCYmaS5zaGlmdCgpKCl9LCExKSxvPT57aS5wdXNoKG8pLGVBLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTShlQS5wb3N0TWVzc2FnZSkpLHZpPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChlQSk6dHlwZW9mIHByb2Nlc3M8InUiJiZwcm9jZXNzLm5leHRUaWNrfHxUdCxaaT1BPT5BIT1udWxsJiZNKEFbSEFdKSxFPXtpc0FycmF5Om9BLGlzQXJyYXlCdWZmZXI6THQsaXNCdWZmZXI6Y0EsaXNGb3JtRGF0YTptaSxpc0FycmF5QnVmZmVyVmlldzpCaSxpc1N0cmluZzpDaSxpc051bWJlcjpKdCxpc0Jvb2xlYW46UWksaXNPYmplY3Q6bUEsaXNQbGFpbk9iamVjdDpZQSxpc0VtcHR5T2JqZWN0OkVpLGlzUmVhZGFibGVTdHJlYW06eWksaXNSZXF1ZXN0OmhpLGlzUmVzcG9uc2U6d2ksaXNIZWFkZXJzOkRpLGlzVW5kZWZpbmVkOmlBLGlzRGF0ZTpsaSxpc0ZpbGU6cGksaXNCbG9iOnVpLGlzUmVnRXhwOkxpLGlzRnVuY3Rpb246TSxpc1N0cmVhbTpjaSxpc1VSTFNlYXJjaFBhcmFtczpkaSxpc1R5cGVkQXJyYXk6R2ksaXNGaWxlTGlzdDpmaSxmb3JFYWNoOmRBLG1lcmdlOlFlLGV4dGVuZDpSaSx0cmltOlNpLHN0cmlwQk9NOkZpLGluaGVyaXRzOmtpLHRvRmxhdE9iamVjdDpVaSxraW5kT2Y6VEEsa2luZE9mVGVzdDpPLGVuZHNXaXRoOmJpLHRvQXJyYXk6TmksZm9yRWFjaEVudHJ5Ok1pLG1hdGNoQWxsOldpLGlzSFRNTEZvcm06UGksaGFzT3duUHJvcGVydHk6UHQsaGFzT3duUHJvcDpQdCxyZWR1Y2VEZXNjcmlwdG9yczpIdCxmcmVlemVNZXRob2RzOkppLHRvT2JqZWN0U2V0OnhpLHRvQ2FtZWxDYXNlOk9pLG5vb3A6WWksdG9GaW5pdGVOdW1iZXI6SGksZmluZEtleTp4dCxnbG9iYWw6ZUEsaXNDb250ZXh0RGVmaW5lZDpZdCxpc1NwZWNDb21wbGlhbnRGb3JtOlRpLHRvSlNPTk9iamVjdDpxaSxpc0FzeW5jRm46S2ksaXNUaGVuYWJsZTpqaSxzZXRJbW1lZGlhdGU6VHQsYXNhcDp2aSxpc0l0ZXJhYmxlOlppfTtmdW5jdGlvbiBuQShBLGUsdCxpLG8pe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsZSYmKHRoaXMuY29kZT1lKSx0JiYodGhpcy5jb25maWc9dCksaSYmKHRoaXMucmVxdWVzdD1pKSxvJiYodGhpcy5yZXNwb25zZT1vLHRoaXMuc3RhdHVzPW8uc3RhdHVzP28uc3RhdHVzOm51bGwpfUUuaW5oZXJpdHMobkEsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzpFLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgcXQ9bkEucHJvdG90eXBlLEt0PXt9O1siRVJSX0JBRF9PUFRJT05fVkFMVUUiLCJFUlJfQkFEX09QVElPTiIsIkVDT05OQUJPUlRFRCIsIkVUSU1FRE9VVCIsIkVSUl9ORVRXT1JLIiwiRVJSX0ZSX1RPT19NQU5ZX1JFRElSRUNUUyIsIkVSUl9ERVBSRUNBVEVEIiwiRVJSX0JBRF9SRVNQT05TRSIsIkVSUl9CQURfUkVRVUVTVCIsIkVSUl9DQU5DRUxFRCIsIkVSUl9OT1RfU1VQUE9SVCIsIkVSUl9JTlZBTElEX1VSTCJdLmZvckVhY2goQT0+e0t0W0FdPXt2YWx1ZTpBfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG5BLEt0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkocXQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7bkEuZnJvbT0oQSxlLHQsaSxvLHIpPT57bGV0IGE9T2JqZWN0LmNyZWF0ZShxdCk7RS50b0ZsYXRPYmplY3QoQSxhLGZ1bmN0aW9uKG4pe3JldHVybiBuIT09RXJyb3IucHJvdG90eXBlfSxCPT5CIT09ImlzQXhpb3NFcnJvciIpO2xldCBDPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixwPWU9PW51bGwmJkE/QS5jb2RlOmU7cmV0dXJuIG5BLmNhbGwoYSxDLHAsdCxpLG8pLEEmJmEuY2F1c2U9PW51bGwmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJjYXVzZSIse3ZhbHVlOkEsY29uZmlndXJhYmxlOiEwfSksYS5uYW1lPUEmJkEubmFtZXx8IkVycm9yIixyJiZPYmplY3QuYXNzaWduKGEsciksYX07dmFyIGg9bkE7dmFyIEtBPW51bGw7ZnVuY3Rpb24gbGUoQSl7cmV0dXJuIEUuaXNQbGFpbk9iamVjdChBKXx8RS5pc0FycmF5KEEpfWZ1bmN0aW9uIHZ0KEEpe3JldHVybiBFLmVuZHNXaXRoKEEsIltdIik/QS5zbGljZSgwLC0yKTpBfWZ1bmN0aW9uIGp0KEEsZSx0KXtyZXR1cm4gQT9BLmNvbmNhdChlKS5tYXAoZnVuY3Rpb24obyxyKXtyZXR1cm4gbz12dChvKSwhdCYmcj8iWyIrbysiXSI6b30pLmpvaW4odD8iLiI6IiIpOmV9ZnVuY3Rpb24gVmkoQSl7cmV0dXJuIEUuaXNBcnJheShBKSYmIUEuc29tZShsZSl9dmFyIHppPUUudG9GbGF0T2JqZWN0KEUse30sbnVsbCxmdW5jdGlvbihlKXtyZXR1cm4vXmlzW0EtWl0vLnRlc3QoZSl9KTtmdW5jdGlvbiBYaShBLGUsdCl7aWYoIUUuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigidGFyZ2V0IG11c3QgYmUgYW4gb2JqZWN0Iik7ZT1lfHxuZXcoS0F8fEZvcm1EYXRhKSx0PUUudG9GbGF0T2JqZWN0KHQse21ldGFUb2tlbnM6ITAsZG90czohMSxpbmRleGVzOiExfSwhMSxmdW5jdGlvbihmLHUpe3JldHVybiFFLmlzVW5kZWZpbmVkKHVbZl0pfSk7bGV0IGk9dC5tZXRhVG9rZW5zLG89dC52aXNpdG9yfHxuLHI9dC5kb3RzLGE9dC5pbmRleGVzLHA9KHQuQmxvYnx8dHlwZW9mIEJsb2I8InUiJiZCbG9iKSYmRS5pc1NwZWNDb21wbGlhbnRGb3JtKGUpO2lmKCFFLmlzRnVuY3Rpb24obykpdGhyb3cgbmV3IFR5cGVFcnJvcigidmlzaXRvciBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmdW5jdGlvbiBCKEkpe2lmKEk9PT1udWxsKXJldHVybiIiO2lmKEUuaXNEYXRlKEkpKXJldHVybiBJLnRvSVNPU3RyaW5nKCk7aWYoRS5pc0Jvb2xlYW4oSSkpcmV0dXJuIEkudG9TdHJpbmcoKTtpZighcCYmRS5pc0Jsb2IoSSkpdGhyb3cgbmV3IGgoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIEUuaXNBcnJheUJ1ZmZlcihJKXx8RS5pc1R5cGVkQXJyYXkoSSk/cCYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW0ldKTpCdWZmZXIuZnJvbShJKTpJfWZ1bmN0aW9uIG4oSSxmLHUpe2xldCB3PUk7aWYoSSYmIXUmJnR5cGVvZiBJPT0ib2JqZWN0Iil7aWYoRS5lbmRzV2l0aChmLCJ7fSIpKWY9aT9mOmYuc2xpY2UoMCwtMiksST1KU09OLnN0cmluZ2lmeShJKTtlbHNlIGlmKEUuaXNBcnJheShJKSYmVmkoSSl8fChFLmlzRmlsZUxpc3QoSSl8fEUuZW5kc1dpdGgoZiwiW10iKSkmJih3PUUudG9BcnJheShJKSkpcmV0dXJuIGY9dnQoZiksdy5mb3JFYWNoKGZ1bmN0aW9uKFMsTil7IShFLmlzVW5kZWZpbmVkKFMpfHxTPT09bnVsbCkmJmUuYXBwZW5kKGE9PT0hMD9qdChbZl0sTixyKTphPT09bnVsbD9mOmYrIltdIixCKFMpKX0pLCExfXJldHVybiBsZShJKT8hMDooZS5hcHBlbmQoanQodSxmLHIpLEIoSSkpLCExKX1sZXQgZz1bXSxsPU9iamVjdC5hc3NpZ24oemkse2RlZmF1bHRWaXNpdG9yOm4sY29udmVydFZhbHVlOkIsaXNWaXNpdGFibGU6bGV9KTtmdW5jdGlvbiBzKEksZil7aWYoIUUuaXNVbmRlZmluZWQoSSkpe2lmKGcuaW5kZXhPZihJKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitmLmpvaW4oIi4iKSk7Zy5wdXNoKEkpLEUuZm9yRWFjaChJLGZ1bmN0aW9uKHcsYil7KCEoRS5pc1VuZGVmaW5lZCh3KXx8dz09PW51bGwpJiZvLmNhbGwoZSx3LEUuaXNTdHJpbmcoYik/Yi50cmltKCk6YixmLGwpKT09PSEwJiZzKHcsZj9mLmNvbmNhdChiKTpbYl0pfSksZy5wb3AoKX19aWYoIUUuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBzKEEpLGV9dmFyIHY9WGk7ZnVuY3Rpb24gWnQoQSl7bGV0IGU9eyIhIjoiJTIxIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwifiI6IiU3RSIsIiUyMCI6IisiLCIlMDAiOiJcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csZnVuY3Rpb24oaSl7cmV0dXJuIGVbaV19KX1mdW5jdGlvbiBWdChBLGUpe3RoaXMuX3BhaXJzPVtdLEEmJnYoQSx0aGlzLGUpfXZhciB6dD1WdC5wcm90b3R5cGU7enQuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9O3p0LnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCB0PWU/ZnVuY3Rpb24oaSl7cmV0dXJuIGUuY2FsbCh0aGlzLGksWnQpfTpadDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKG8pe3JldHVybiB0KG9bMF0pKyI9Iit0KG9bMV0pfSwiIikuam9pbigiJiIpfTt2YXIgakE9VnQ7ZnVuY3Rpb24gX2koQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIil9ZnVuY3Rpb24geUEoQSxlLHQpe2lmKCFlKXJldHVybiBBO2xldCBpPXQmJnQuZW5jb2RlfHxfaTtFLmlzRnVuY3Rpb24odCkmJih0PXtzZXJpYWxpemU6dH0pO2xldCBvPXQmJnQuc2VyaWFsaXplLHI7aWYobz9yPW8oZSx0KTpyPUUuaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyBqQShlLHQpLnRvU3RyaW5nKGkpLHIpe2xldCBhPUEuaW5kZXhPZigiIyIpO2EhPT0tMSYmKEE9QS5zbGljZSgwLGEpKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStyfXJldHVybiBBfXZhciBwZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsdCxpKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOmk/aS5zeW5jaHJvbm91czohMSxydW5XaGVuOmk/aS5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goZSl7RS5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24oaSl7aSE9PW51bGwmJmUoaSl9KX19LHVlPXBlO3ZhciB2QT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIFh0PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpqQTt2YXIgX3Q9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciAkdD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBBcj17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczpYdCxGb3JtRGF0YTpfdCxCbG9iOiR0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIG1lPXt9O2pyKG1lLHtoYXNCcm93c2VyRW52OigpPT5jZSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PiRpLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+QW8sbmF2aWdhdG9yOigpPT5mZSxvcmlnaW46KCk9PmVvfSk7dmFyIGNlPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLGZlPXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCwkaT1jZSYmKCFmZXx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZihmZS5wcm9kdWN0KTwwKSxBbz10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsZW89Y2UmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIEQ9ey4uLm1lLC4uLkFyfTtmdW5jdGlvbiBkZShBLGUpe3JldHVybiB2KEEsbmV3IEQuY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMse3Zpc2l0b3I6ZnVuY3Rpb24odCxpLG8scil7cmV0dXJuIEQuaXNOb2RlJiZFLmlzQnVmZmVyKHQpPyh0aGlzLmFwcGVuZChpLHQudG9TdHJpbmcoImJhc2U2NCIpKSwhMSk6ci5kZWZhdWx0VmlzaXRvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LC4uLmV9KX1mdW5jdGlvbiB0byhBKXtyZXR1cm4gRS5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csQSkubWFwKGU9PmVbMF09PT0iW10iPyIiOmVbMV18fGVbMF0pfWZ1bmN0aW9uIHJvKEEpe2xldCBlPXt9LHQ9T2JqZWN0LmtleXMoQSksaSxvPXQubGVuZ3RoLHI7Zm9yKGk9MDtpPG87aSsrKXI9dFtpXSxlW3JdPUFbcl07cmV0dXJuIGV9ZnVuY3Rpb24gaW8oQSl7ZnVuY3Rpb24gZSh0LGksbyxyKXtsZXQgYT10W3IrK107aWYoYT09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBDPU51bWJlci5pc0Zpbml0ZSgrYSkscD1yPj10Lmxlbmd0aDtyZXR1cm4gYT0hYSYmRS5pc0FycmF5KG8pP28ubGVuZ3RoOmEscD8oRS5oYXNPd25Qcm9wKG8sYSk/b1thXT1bb1thXSxpXTpvW2FdPWksIUMpOigoIW9bYV18fCFFLmlzT2JqZWN0KG9bYV0pKSYmKG9bYV09W10pLGUodCxpLG9bYV0scikmJkUuaXNBcnJheShvW2FdKSYmKG9bYV09cm8ob1thXSkpLCFDKX1pZihFLmlzRm9ybURhdGEoQSkmJkUuaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgdD17fTtyZXR1cm4gRS5mb3JFYWNoRW50cnkoQSwoaSxvKT0+e2UodG8oaSksbyx0LDApfSksdH1yZXR1cm4gbnVsbH12YXIgWkE9aW87ZnVuY3Rpb24gb28oQSxlLHQpe2lmKEUuaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxFLnRyaW0oQSl9Y2F0Y2goaSl7aWYoaS5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyBpfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIHllPXt0cmFuc2l0aW9uYWw6dkEsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7bGV0IGk9dC5nZXRDb250ZW50VHlwZSgpfHwiIixvPWkuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLHI9RS5pc09iamVjdChlKTtpZihyJiZFLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSksRS5pc0Zvcm1EYXRhKGUpKXJldHVybiBvP0pTT04uc3RyaW5naWZ5KFpBKGUpKTplO2lmKEUuaXNBcnJheUJ1ZmZlcihlKXx8RS5pc0J1ZmZlcihlKXx8RS5pc1N0cmVhbShlKXx8RS5pc0ZpbGUoZSl8fEUuaXNCbG9iKGUpfHxFLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYoRS5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYoRS5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gdC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IEM7aWYocil7aWYoaS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gZGUoZSx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChDPUUuaXNGaWxlTGlzdChlKSl8fGkuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgcD10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIHYoQz97ImZpbGVzW10iOmV9OmUscCYmbmV3IHAsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiByfHxvPyh0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksb28oZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7bGV0IHQ9dGhpcy50cmFuc2l0aW9uYWx8fHllLnRyYW5zaXRpb25hbCxpPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcsbz10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihFLmlzUmVzcG9uc2UoZSl8fEUuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZFLmlzU3RyaW5nKGUpJiYoaSYmIXRoaXMucmVzcG9uc2VUeXBlfHxvKSl7bGV0IGE9ISh0JiZ0LnNpbGVudEpTT05QYXJzaW5nKSYmbzt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSx0aGlzLnBhcnNlUmV2aXZlcil9Y2F0Y2goQyl7aWYoYSl0aHJvdyBDLm5hbWU9PT0iU3ludGF4RXJyb3IiP2guZnJvbShDLGguRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6Q319cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOkQuY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOkQuY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O0UuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57eWUuaGVhZGVyc1tBXT17fX0pO3ZhciBhQT15ZTt2YXIgbm89RS50b09iamVjdFNldChbImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdKSxlcj1BPT57bGV0IGU9e30sdCxpLG87cmV0dXJuIEEmJkEuc3BsaXQoYApgKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe289YS5pbmRleE9mKCI6IiksdD1hLnN1YnN0cmluZygwLG8pLnRyaW0oKS50b0xvd2VyQ2FzZSgpLGk9YS5zdWJzdHJpbmcobysxKS50cmltKCksISghdHx8ZVt0XSYmbm9bdF0pJiYodD09PSJzZXQtY29va2llIj9lW3RdP2VbdF0ucHVzaChpKTplW3RdPVtpXTplW3RdPWVbdF0/ZVt0XSsiLCAiK2k6aSl9KSxlfTt2YXIgdHI9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBoQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFZBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTpFLmlzQXJyYXkoQSk/QS5tYXAoVkEpOlN0cmluZyhBKX1mdW5jdGlvbiBhbyhBKXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpLHQ9LyhbXlxzLDs9XSspXHMqKD86PVxzKihbXiw7XSspKT8vZyxpO2Zvcig7aT10LmV4ZWMoQSk7KWVbaVsxXV09aVsyXTtyZXR1cm4gZX12YXIgc289QT0+L15bLV9hLXpBLVowLTleYHx+LCEjJCUmJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gaGUoQSxlLHQsaSxvKXtpZihFLmlzRnVuY3Rpb24oaSkpcmV0dXJuIGkuY2FsbCh0aGlzLGUsdCk7aWYobyYmKGU9dCksISFFLmlzU3RyaW5nKGUpKXtpZihFLmlzU3RyaW5nKGkpKXJldHVybiBlLmluZGV4T2YoaSkhPT0tMTtpZihFLmlzUmVnRXhwKGkpKXJldHVybiBpLnRlc3QoZSl9fWZ1bmN0aW9uIElvKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XGRdKShcdyopL2csKGUsdCxpKT0+dC50b1VwcGVyQ2FzZSgpK2kpfWZ1bmN0aW9uIGdvKEEsZSl7bGV0IHQ9RS50b0NhbWVsQ2FzZSgiICIrZSk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKGk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxpK3Qse3ZhbHVlOmZ1bmN0aW9uKG8scixhKXtyZXR1cm4gdGhpc1tpXS5jYWxsKHRoaXMsZSxvLHIsYSl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIHNBPWNsYXNze2NvbnN0cnVjdG9yKGUpe2UmJnRoaXMuc2V0KGUpfXNldChlLHQsaSl7bGV0IG89dGhpcztmdW5jdGlvbiByKEMscCxCKXtsZXQgbj1oQShwKTtpZighbil0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IGc9RS5maW5kS2V5KG8sbik7KCFnfHxvW2ddPT09dm9pZCAwfHxCPT09ITB8fEI9PT12b2lkIDAmJm9bZ10hPT0hMSkmJihvW2d8fHBdPVZBKEMpKX1sZXQgYT0oQyxwKT0+RS5mb3JFYWNoKEMsKEIsbik9PnIoQixuLHApKTtpZihFLmlzUGxhaW5PYmplY3QoZSl8fGUgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKWEoZSx0KTtlbHNlIGlmKEUuaXNTdHJpbmcoZSkmJihlPWUudHJpbSgpKSYmIXNvKGUpKWEoZXIoZSksdCk7ZWxzZSBpZihFLmlzT2JqZWN0KGUpJiZFLmlzSXRlcmFibGUoZSkpe2xldCBDPXt9LHAsQjtmb3IobGV0IG4gb2YgZSl7aWYoIUUuaXNBcnJheShuKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7Q1tCPW5bMF1dPShwPUNbQl0pP0UuaXNBcnJheShwKT9bLi4ucCxuWzFdXTpbcCxuWzFdXTpuWzFdfWEoQyx0KX1lbHNlIGUhPW51bGwmJnIodCxlLGkpO3JldHVybiB0aGlzfWdldChlLHQpe2lmKGU9aEEoZSksZSl7bGV0IGk9RS5maW5kS2V5KHRoaXMsZSk7aWYoaSl7bGV0IG89dGhpc1tpXTtpZighdClyZXR1cm4gbztpZih0PT09ITApcmV0dXJuIGFvKG8pO2lmKEUuaXNGdW5jdGlvbih0KSlyZXR1cm4gdC5jYWxsKHRoaXMsbyxpKTtpZihFLmlzUmVnRXhwKHQpKXJldHVybiB0LmV4ZWMobyk7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyhlLHQpe2lmKGU9aEEoZSksZSl7bGV0IGk9RS5maW5kS2V5KHRoaXMsZSk7cmV0dXJuISEoaSYmdGhpc1tpXSE9PXZvaWQgMCYmKCF0fHxoZSh0aGlzLHRoaXNbaV0saSx0KSkpfXJldHVybiExfWRlbGV0ZShlLHQpe2xldCBpPXRoaXMsbz0hMTtmdW5jdGlvbiByKGEpe2lmKGE9aEEoYSksYSl7bGV0IEM9RS5maW5kS2V5KGksYSk7QyYmKCF0fHxoZShpLGlbQ10sQyx0KSkmJihkZWxldGUgaVtDXSxvPSEwKX19cmV0dXJuIEUuaXNBcnJheShlKT9lLmZvckVhY2gocik6cihlKSxvfWNsZWFyKGUpe2xldCB0PU9iamVjdC5rZXlzKHRoaXMpLGk9dC5sZW5ndGgsbz0hMTtmb3IoO2ktLTspe2xldCByPXRbaV07KCFlfHxoZSh0aGlzLHRoaXNbcl0scixlLCEwKSkmJihkZWxldGUgdGhpc1tyXSxvPSEwKX1yZXR1cm4gb31ub3JtYWxpemUoZSl7bGV0IHQ9dGhpcyxpPXt9O3JldHVybiBFLmZvckVhY2godGhpcywobyxyKT0+e2xldCBhPUUuZmluZEtleShpLHIpO2lmKGEpe3RbYV09VkEobyksZGVsZXRlIHRbcl07cmV0dXJufWxldCBDPWU/SW8ocik6U3RyaW5nKHIpLnRyaW0oKTtDIT09ciYmZGVsZXRlIHRbcl0sdFtDXT1WQShvKSxpW0NdPSEwfSksdGhpc31jb25jYXQoLi4uZSl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4uZSl9dG9KU09OKGUpe2xldCB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIEUuZm9yRWFjaCh0aGlzLChpLG8pPT57aSE9bnVsbCYmaSE9PSExJiYodFtvXT1lJiZFLmlzQXJyYXkoaSk/aS5qb2luKCIsICIpOmkpfSksdH1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbZSx0XSk9PmUrIjogIit0KS5qb2luKGAKYCl9Z2V0U2V0Q29va2llKCl7cmV0dXJuIHRoaXMuZ2V0KCJzZXQtY29va2llIil8fFtdfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCBpPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2gobz0+aS5zZXQobykpLGl9c3RhdGljIGFjY2Vzc29yKGUpe2xldCBpPSh0aGlzW3RyXT10aGlzW3RyXT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLG89dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gcihhKXtsZXQgQz1oQShhKTtpW0NdfHwoZ28obyxhKSxpW0NdPSEwKX1yZXR1cm4gRS5pc0FycmF5KGUpP2UuZm9yRWFjaChyKTpyKGUpLHRoaXN9fTtzQS5hY2Nlc3NvcihbIkNvbnRlbnQtVHlwZSIsIkNvbnRlbnQtTGVuZ3RoIiwiQWNjZXB0IiwiQWNjZXB0LUVuY29kaW5nIiwiVXNlci1BZ2VudCIsIkF1dGhvcml6YXRpb24iXSk7RS5yZWR1Y2VEZXNjcmlwdG9ycyhzQS5wcm90b3R5cGUsKHt2YWx1ZTpBfSxlKT0+e2xldCB0PWVbMF0udG9VcHBlckNhc2UoKStlLnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KGkpe3RoaXNbdF09aX19fSk7RS5mcmVlemVNZXRob2RzKHNBKTt2YXIgaz1zQTtmdW5jdGlvbiB3QShBLGUpe2xldCB0PXRoaXN8fGFBLGk9ZXx8dCxvPWsuZnJvbShpLmhlYWRlcnMpLHI9aS5kYXRhO3JldHVybiBFLmZvckVhY2goQSxmdW5jdGlvbihDKXtyPUMuY2FsbCh0LHIsby5ub3JtYWxpemUoKSxlP2Uuc3RhdHVzOnZvaWQgMCl9KSxvLm5vcm1hbGl6ZSgpLHJ9ZnVuY3Rpb24gREEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBycihBLGUsdCl7aC5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIixoLkVSUl9DQU5DRUxFRCxlLHQpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9RS5pbmhlcml0cyhycixoLHtfX0NBTkNFTF9fOiEwfSk7dmFyIFk9cnI7ZnVuY3Rpb24gU0EoQSxlLHQpe2xldCBpPXQuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyF0LnN0YXR1c3x8IWl8fGkodC5zdGF0dXMpP0EodCk6ZShuZXcgaCgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK3Quc3RhdHVzLFtoLkVSUl9CQURfUkVRVUVTVCxoLkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IodC5zdGF0dXMvMTAwKS00XSx0LmNvbmZpZyx0LnJlcXVlc3QsdCkpfWZ1bmN0aW9uIHdlKEEpe2xldCBlPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKEEpO3JldHVybiBlJiZlWzFdfHwiIn1mdW5jdGlvbiBCbyhBLGUpe0E9QXx8MTA7bGV0IHQ9bmV3IEFycmF5KEEpLGk9bmV3IEFycmF5KEEpLG89MCxyPTAsYTtyZXR1cm4gZT1lIT09dm9pZCAwP2U6MWUzLGZ1bmN0aW9uKHApe2xldCBCPURhdGUubm93KCksbj1pW3JdO2F8fChhPUIpLHRbb109cCxpW29dPUI7bGV0IGc9cixsPTA7Zm9yKDtnIT09bzspbCs9dFtnKytdLGc9ZyVBO2lmKG89KG8rMSklQSxvPT09ciYmKHI9KHIrMSklQSksQi1hPGUpcmV0dXJuO2xldCBzPW4mJkItbjtyZXR1cm4gcz9NYXRoLnJvdW5kKGwqMWUzL3MpOnZvaWQgMH19dmFyIGlyPUJvO2Z1bmN0aW9uIENvKEEsZSl7bGV0IHQ9MCxpPTFlMy9lLG8scixhPShCLG49RGF0ZS5ub3coKSk9Pnt0PW4sbz1udWxsLHImJihjbGVhclRpbWVvdXQocikscj1udWxsKSxBKC4uLkIpfTtyZXR1cm5bKC4uLkIpPT57bGV0IG49RGF0ZS5ub3coKSxnPW4tdDtnPj1pP2EoQixuKToobz1CLHJ8fChyPXNldFRpbWVvdXQoKCk9PntyPW51bGwsYShvKX0saS1nKSkpfSwoKT0+byYmYShvKV19dmFyIG9yPUNvO3ZhciBJQT0oQSxlLHQ9Myk9PntsZXQgaT0wLG89aXIoNTAsMjUwKTtyZXR1cm4gb3Iocj0+e2xldCBhPXIubG9hZGVkLEM9ci5sZW5ndGhDb21wdXRhYmxlP3IudG90YWw6dm9pZCAwLHA9YS1pLEI9byhwKSxuPWE8PUM7aT1hO2xldCBnPXtsb2FkZWQ6YSx0b3RhbDpDLHByb2dyZXNzOkM/YS9DOnZvaWQgMCxieXRlczpwLHJhdGU6Qnx8dm9pZCAwLGVzdGltYXRlZDpCJiZDJiZuPyhDLWEpL0I6dm9pZCAwLGV2ZW50OnIsbGVuZ3RoQ29tcHV0YWJsZTpDIT1udWxsLFtlPyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKGcpfSx0KX0sRGU9KEEsZSk9PntsZXQgdD1BIT1udWxsO3JldHVybltpPT5lWzBdKHtsZW5ndGhDb21wdXRhYmxlOnQsdG90YWw6QSxsb2FkZWQ6aX0pLGVbMV1dfSxTZT1BPT4oLi4uZSk9PkUuYXNhcCgoKT0+QSguLi5lKSk7dmFyIG5yPUQuaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSxlKT0+dD0+KHQ9bmV3IFVSTCh0LEQub3JpZ2luKSxBLnByb3RvY29sPT09dC5wcm90b2NvbCYmQS5ob3N0PT09dC5ob3N0JiYoZXx8QS5wb3J0PT09dC5wb3J0KSkpKG5ldyBVUkwoRC5vcmlnaW4pLEQubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KEQubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgYXI9RC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsZSx0LGksbyxyKXtsZXQgYT1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpXTtFLmlzTnVtYmVyKHQpJiZhLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZSh0KS50b0dNVFN0cmluZygpKSxFLmlzU3RyaW5nKGkpJiZhLnB1c2goInBhdGg9IitpKSxFLmlzU3RyaW5nKG8pJiZhLnB1c2goImRvbWFpbj0iK28pLHI9PT0hMCYmYS5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9YS5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCBlPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIGU/ZGVjb2RlVVJJQ29tcG9uZW50KGVbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gUmUoQSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChBKX1mdW5jdGlvbiBGZShBLGUpe3JldHVybiBlP0EucmVwbGFjZSgvXC8/XC8kLywiIikrIi8iK2UucmVwbGFjZSgvXlwvKy8sIiIpOkF9ZnVuY3Rpb24gUkEoQSxlLHQpe2xldCBpPSFSZShlKTtyZXR1cm4gQSYmKGl8fHQ9PSExKT9GZShBLGUpOmV9dmFyIHNyPUE9PkEgaW5zdGFuY2VvZiBrP3suLi5BfTpBO2Z1bmN0aW9uIEwoQSxlKXtlPWV8fHt9O2xldCB0PXt9O2Z1bmN0aW9uIGkoQixuLGcsbCl7cmV0dXJuIEUuaXNQbGFpbk9iamVjdChCKSYmRS5pc1BsYWluT2JqZWN0KG4pP0UubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6bH0sQixuKTpFLmlzUGxhaW5PYmplY3Qobik/RS5tZXJnZSh7fSxuKTpFLmlzQXJyYXkobik/bi5zbGljZSgpOm59ZnVuY3Rpb24gbyhCLG4sZyxsKXtpZihFLmlzVW5kZWZpbmVkKG4pKXtpZighRS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gaSh2b2lkIDAsQixnLGwpfWVsc2UgcmV0dXJuIGkoQixuLGcsbCl9ZnVuY3Rpb24gcihCLG4pe2lmKCFFLmlzVW5kZWZpbmVkKG4pKXJldHVybiBpKHZvaWQgMCxuKX1mdW5jdGlvbiBhKEIsbil7aWYoRS5pc1VuZGVmaW5lZChuKSl7aWYoIUUuaXNVbmRlZmluZWQoQikpcmV0dXJuIGkodm9pZCAwLEIpfWVsc2UgcmV0dXJuIGkodm9pZCAwLG4pfWZ1bmN0aW9uIEMoQixuLGcpe2lmKGcgaW4gZSlyZXR1cm4gaShCLG4pO2lmKGcgaW4gQSlyZXR1cm4gaSh2b2lkIDAsQil9bGV0IHA9e3VybDpyLG1ldGhvZDpyLGRhdGE6cixiYXNlVVJMOmEsdHJhbnNmb3JtUmVxdWVzdDphLHRyYW5zZm9ybVJlc3BvbnNlOmEscGFyYW1zU2VyaWFsaXplcjphLHRpbWVvdXQ6YSx0aW1lb3V0TWVzc2FnZTphLHdpdGhDcmVkZW50aWFsczphLHdpdGhYU1JGVG9rZW46YSxhZGFwdGVyOmEscmVzcG9uc2VUeXBlOmEseHNyZkNvb2tpZU5hbWU6YSx4c3JmSGVhZGVyTmFtZTphLG9uVXBsb2FkUHJvZ3Jlc3M6YSxvbkRvd25sb2FkUHJvZ3Jlc3M6YSxkZWNvbXByZXNzOmEsbWF4Q29udGVudExlbmd0aDphLG1heEJvZHlMZW5ndGg6YSxiZWZvcmVSZWRpcmVjdDphLHRyYW5zcG9ydDphLGh0dHBBZ2VudDphLGh0dHBzQWdlbnQ6YSxjYW5jZWxUb2tlbjphLHNvY2tldFBhdGg6YSxyZXNwb25zZUVuY29kaW5nOmEsdmFsaWRhdGVTdGF0dXM6QyxoZWFkZXJzOihCLG4sZyk9Pm8oc3IoQiksc3IobiksZywhMCl9O3JldHVybiBFLmZvckVhY2goT2JqZWN0LmtleXMoey4uLkEsLi4uZX0pLGZ1bmN0aW9uKG4pe2xldCBnPXBbbl18fG8sbD1nKEFbbl0sZVtuXSxuKTtFLmlzVW5kZWZpbmVkKGwpJiZnIT09Q3x8KHRbbl09bCl9KSx0fXZhciB6QT1BPT57bGV0IGU9TCh7fSxBKSx7ZGF0YTp0LHdpdGhYU1JGVG9rZW46aSx4c3JmSGVhZGVyTmFtZTpvLHhzcmZDb29raWVOYW1lOnIsaGVhZGVyczphLGF1dGg6Q309ZTtpZihlLmhlYWRlcnM9YT1rLmZyb20oYSksZS51cmw9eUEoUkEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpLEEucGFyYW1zLEEucGFyYW1zU2VyaWFsaXplciksQyYmYS5zZXQoIkF1dGhvcml6YXRpb24iLCJCYXNpYyAiK2J0b2EoKEMudXNlcm5hbWV8fCIiKSsiOiIrKEMucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEMucGFzc3dvcmQpKToiIikpKSxFLmlzRm9ybURhdGEodCkpe2lmKEQuaGFzU3RhbmRhcmRCcm93c2VyRW52fHxELmhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudilhLnNldENvbnRlbnRUeXBlKHZvaWQgMCk7ZWxzZSBpZihFLmlzRnVuY3Rpb24odC5nZXRIZWFkZXJzKSl7bGV0IHA9dC5nZXRIZWFkZXJzKCksQj1bImNvbnRlbnQtdHlwZSIsImNvbnRlbnQtbGVuZ3RoIl07T2JqZWN0LmVudHJpZXMocCkuZm9yRWFjaCgoW24sZ10pPT57Qi5pbmNsdWRlcyhuLnRvTG93ZXJDYXNlKCkpJiZhLnNldChuLGcpfSl9fWlmKEQuaGFzU3RhbmRhcmRCcm93c2VyRW52JiYoaSYmRS5pc0Z1bmN0aW9uKGkpJiYoaT1pKGUpKSxpfHxpIT09ITEmJm5yKGUudXJsKSkpe2xldCBwPW8mJnImJmFyLnJlYWQocik7cCYmYS5zZXQobyxwKX1yZXR1cm4gZX07dmFyIFFvPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsSXI9UW8mJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LGkpe2xldCBvPXpBKEEpLHI9by5kYXRhLGE9ay5mcm9tKG8uaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpDLG9uVXBsb2FkUHJvZ3Jlc3M6cCxvbkRvd25sb2FkUHJvZ3Jlc3M6Qn09byxuLGcsbCxzLEk7ZnVuY3Rpb24gZigpe3MmJnMoKSxJJiZJKCksby5jYW5jZWxUb2tlbiYmby5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShuKSxvLnNpZ25hbCYmby5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG4pfWxldCB1PW5ldyBYTUxIdHRwUmVxdWVzdDt1Lm9wZW4oby5tZXRob2QudG9VcHBlckNhc2UoKSxvLnVybCwhMCksdS50aW1lb3V0PW8udGltZW91dDtmdW5jdGlvbiB3KCl7aWYoIXUpcmV0dXJuO2xldCBTPWsuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIHUmJnUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLFA9e2RhdGE6IUN8fEM9PT0idGV4dCJ8fEM9PT0ianNvbiI/dS5yZXNwb25zZVRleHQ6dS5yZXNwb25zZSxzdGF0dXM6dS5zdGF0dXMsc3RhdHVzVGV4dDp1LnN0YXR1c1RleHQsaGVhZGVyczpTLGNvbmZpZzpBLHJlcXVlc3Q6dX07U0EoZnVuY3Rpb24oVyl7dChXKSxmKCl9LGZ1bmN0aW9uKFcpe2koVyksZigpfSxQKSx1PW51bGx9Im9ubG9hZGVuZCJpbiB1P3Uub25sb2FkZW5kPXc6dS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshdXx8dS5yZWFkeVN0YXRlIT09NHx8dS5zdGF0dXM9PT0wJiYhKHUucmVzcG9uc2VVUkwmJnUucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KHcpfSx1Lm9uYWJvcnQ9ZnVuY3Rpb24oKXt1JiYoaShuZXcgaCgiUmVxdWVzdCBhYm9ydGVkIixoLkVDT05OQUJPUlRFRCxBLHUpKSx1PW51bGwpfSx1Lm9uZXJyb3I9ZnVuY3Rpb24oTil7bGV0IFA9TiYmTi5tZXNzYWdlP04ubWVzc2FnZToiTmV0d29yayBFcnJvciIsVj1uZXcgaChQLGguRVJSX05FVFdPUkssQSx1KTtWLmV2ZW50PU58fG51bGwsaShWKSx1PW51bGx9LHUub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IE49by50aW1lb3V0PyJ0aW1lb3V0IG9mICIrby50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLFA9by50cmFuc2l0aW9uYWx8fHZBO28udGltZW91dEVycm9yTWVzc2FnZSYmKE49by50aW1lb3V0RXJyb3JNZXNzYWdlKSxpKG5ldyBoKE4sUC5jbGFyaWZ5VGltZW91dEVycm9yP2guRVRJTUVET1VUOmguRUNPTk5BQk9SVEVELEEsdSkpLHU9bnVsbH0scj09PXZvaWQgMCYmYS5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiB1JiZFLmZvckVhY2goYS50b0pTT04oKSxmdW5jdGlvbihOLFApe3Uuc2V0UmVxdWVzdEhlYWRlcihQLE4pfSksRS5pc1VuZGVmaW5lZChvLndpdGhDcmVkZW50aWFscyl8fCh1LndpdGhDcmVkZW50aWFscz0hIW8ud2l0aENyZWRlbnRpYWxzKSxDJiZDIT09Impzb24iJiYodS5yZXNwb25zZVR5cGU9by5yZXNwb25zZVR5cGUpLEImJihbbCxJXT1JQShCLCEwKSx1LmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixsKSkscCYmdS51cGxvYWQmJihbZyxzXT1JQShwKSx1LnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsZyksdS51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIscykpLChvLmNhbmNlbFRva2VufHxvLnNpZ25hbCkmJihuPVM9Pnt1JiYoaSghU3x8Uy50eXBlP25ldyBZKG51bGwsQSx1KTpTKSx1LmFib3J0KCksdT1udWxsKX0sby5jYW5jZWxUb2tlbiYmby5jYW5jZWxUb2tlbi5zdWJzY3JpYmUobiksby5zaWduYWwmJihvLnNpZ25hbC5hYm9ydGVkP24oKTpvLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsbikpKTtsZXQgYj13ZShvLnVybCk7aWYoYiYmRC5wcm90b2NvbHMuaW5kZXhPZihiKT09PS0xKXtpKG5ldyBoKCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK2IrIjoiLGguRVJSX0JBRF9SRVFVRVNULEEpKTtyZXR1cm59dS5zZW5kKHJ8fG51bGwpfSl9O3ZhciBFbz0oQSxlKT0+e2xldHtsZW5ndGg6dH09QT1BP0EuZmlsdGVyKEJvb2xlYW4pOltdO2lmKGV8fHQpe2xldCBpPW5ldyBBYm9ydENvbnRyb2xsZXIsbyxyPWZ1bmN0aW9uKEIpe2lmKCFvKXtvPSEwLEMoKTtsZXQgbj1CIGluc3RhbmNlb2YgRXJyb3I/Qjp0aGlzLnJlYXNvbjtpLmFib3J0KG4gaW5zdGFuY2VvZiBoP246bmV3IFkobiBpbnN0YW5jZW9mIEVycm9yP24ubWVzc2FnZTpuKSl9fSxhPWUmJnNldFRpbWVvdXQoKCk9PnthPW51bGwscihuZXcgaChgdGltZW91dCAke2V9IG9mIG1zIGV4Y2VlZGVkYCxoLkVUSU1FRE9VVCkpfSxlKSxDPSgpPT57QSYmKGEmJmNsZWFyVGltZW91dChhKSxhPW51bGwsQS5mb3JFYWNoKEI9PntCLnVuc3Vic2NyaWJlP0IudW5zdWJzY3JpYmUocik6Qi5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscil9KSxBPW51bGwpfTtBLmZvckVhY2goQj0+Qi5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIscikpO2xldHtzaWduYWw6cH09aTtyZXR1cm4gcC51bnN1YnNjcmliZT0oKT0+RS5hc2FwKEMpLHB9fSxncj1Fbzt2YXIgbG89ZnVuY3Rpb24qKEEsZSl7bGV0IHQ9QS5ieXRlTGVuZ3RoO2lmKCFlfHx0PGUpe3lpZWxkIEE7cmV0dXJufWxldCBpPTAsbztmb3IoO2k8dDspbz1pK2UseWllbGQgQS5zbGljZShpLG8pLGk9b30scG89YXN5bmMgZnVuY3Rpb24qKEEsZSl7Zm9yIGF3YWl0KGxldCB0IG9mIHVvKEEpKXlpZWxkKmxvKHQsZSl9LHVvPWFzeW5jIGZ1bmN0aW9uKihBKXtpZihBW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSl7eWllbGQqQTtyZXR1cm59bGV0IGU9QS5nZXRSZWFkZXIoKTt0cnl7Zm9yKDs7KXtsZXR7ZG9uZTp0LHZhbHVlOml9PWF3YWl0IGUucmVhZCgpO2lmKHQpYnJlYWs7eWllbGQgaX19ZmluYWxseXthd2FpdCBlLmNhbmNlbCgpfX0sa2U9KEEsZSx0LGkpPT57bGV0IG89cG8oQSxlKSxyPTAsYSxDPXA9PnthfHwoYT0hMCxpJiZpKHApKX07cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChwKXt0cnl7bGV0e2RvbmU6Qix2YWx1ZTpufT1hd2FpdCBvLm5leHQoKTtpZihCKXtDKCkscC5jbG9zZSgpO3JldHVybn1sZXQgZz1uLmJ5dGVMZW5ndGg7aWYodCl7bGV0IGw9cis9Zzt0KGwpfXAuZW5xdWV1ZShuZXcgVWludDhBcnJheShuKSl9Y2F0Y2goQil7dGhyb3cgQyhCKSxCfX0sY2FuY2VsKHApe3JldHVybiBDKHApLG8ucmV0dXJuKCl9fSx7aGlnaFdhdGVyTWFyazoyfSl9O3ZhciBCcj02NCoxMDI0LHtpc0Z1bmN0aW9uOlhBfT1FLGxyPSgoe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOnR9KT0+KHtmZXRjaDpBLFJlcXVlc3Q6ZSxSZXNwb25zZTp0fSkpKEUuZ2xvYmFsKSx7UmVhZGFibGVTdHJlYW06Q3IsVGV4dEVuY29kZXI6UXJ9PUUuZ2xvYmFsLEVyPShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LGZvPUE9PntsZXR7ZmV0Y2g6ZSxSZXF1ZXN0OnQsUmVzcG9uc2U6aX09T2JqZWN0LmFzc2lnbih7fSxscixBKSxvPVhBKGUpLHI9WEEodCksYT1YQShpKTtpZighbylyZXR1cm4hMTtsZXQgQz1vJiZYQShDcikscD1vJiYodHlwZW9mIFFyPT0iZnVuY3Rpb24iPyhJPT5mPT5JLmVuY29kZShmKSkobmV3IFFyKTphc3luYyBJPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgdChJKS5hcnJheUJ1ZmZlcigpKSksQj1yJiZDJiZFcigoKT0+e2xldCBJPSExLGY9bmV3IHQoRC5vcmlnaW4se2JvZHk6bmV3IENyLG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBJPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIEkmJiFmfSksbj1hJiZDJiZFcigoKT0+RS5pc1JlYWRhYmxlU3RyZWFtKG5ldyBpKCIiKS5ib2R5KSksZz17c3RyZWFtOm4mJihJPT5JLmJvZHkpfTtvJiZbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2goST0+eyFnW0ldJiYoZ1tJXT0oZix1KT0+e2xldCB3PWYmJmZbSV07aWYodylyZXR1cm4gdy5jYWxsKGYpO3Rocm93IG5ldyBoKGBSZXNwb25zZSB0eXBlICcke0l9JyBpcyBub3Qgc3VwcG9ydGVkYCxoLkVSUl9OT1RfU1VQUE9SVCx1KX0pfSk7bGV0IGw9YXN5bmMgST0+e2lmKEk9PW51bGwpcmV0dXJuIDA7aWYoRS5pc0Jsb2IoSSkpcmV0dXJuIEkuc2l6ZTtpZihFLmlzU3BlY0NvbXBsaWFudEZvcm0oSSkpcmV0dXJuKGF3YWl0IG5ldyB0KEQub3JpZ2luLHttZXRob2Q6IlBPU1QiLGJvZHk6SX0pLmFycmF5QnVmZmVyKCkpLmJ5dGVMZW5ndGg7aWYoRS5pc0FycmF5QnVmZmVyVmlldyhJKXx8RS5pc0FycmF5QnVmZmVyKEkpKXJldHVybiBJLmJ5dGVMZW5ndGg7aWYoRS5pc1VSTFNlYXJjaFBhcmFtcyhJKSYmKEk9SSsiIiksRS5pc1N0cmluZyhJKSlyZXR1cm4oYXdhaXQgcChJKSkuYnl0ZUxlbmd0aH0scz1hc3luYyhJLGYpPT57bGV0IHU9RS50b0Zpbml0ZU51bWJlcihJLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIHU/P2woZil9O3JldHVybiBhc3luYyBJPT57bGV0e3VybDpmLG1ldGhvZDp1LGRhdGE6dyxzaWduYWw6YixjYW5jZWxUb2tlbjpTLHRpbWVvdXQ6TixvbkRvd25sb2FkUHJvZ3Jlc3M6UCxvblVwbG9hZFByb2dyZXNzOlYscmVzcG9uc2VUeXBlOlcsaGVhZGVyczpuZSx3aXRoQ3JlZGVudGlhbHM6R0E9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6eXR9PXpBKEkpO1c9Vz8oVysiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IE1BPWdyKFtiLFMmJlMudG9BYm9ydFNpZ25hbCgpXSxOKSx1QT1udWxsLHo9TUEmJk1BLnVuc3Vic2NyaWJlJiYoKCk9PntNQS51bnN1YnNjcmliZSgpfSksaHQ7dHJ5e2lmKFYmJkImJnUhPT0iZ2V0IiYmdSE9PSJoZWFkIiYmKGh0PWF3YWl0IHMobmUsdykpIT09MCl7bGV0IGo9bmV3IHQoZix7bWV0aG9kOiJQT1NUIixib2R5OncsZHVwbGV4OiJoYWxmIn0pLHRBO2lmKEUuaXNGb3JtRGF0YSh3KSYmKHRBPWouaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmbmUuc2V0Q29udGVudFR5cGUodEEpLGouYm9keSl7bGV0W2FlLFdBXT1EZShodCxJQShTZShWKSkpO3c9a2Uoai5ib2R5LEJyLGFlLFdBKX19RS5pc1N0cmluZyhHQSl8fChHQT1HQT8iaW5jbHVkZSI6Im9taXQiKTtsZXQgSj1yJiYiY3JlZGVudGlhbHMiaW4gdC5wcm90b3R5cGUsd3Q9ey4uLnl0LHNpZ25hbDpNQSxtZXRob2Q6dS50b1VwcGVyQ2FzZSgpLGhlYWRlcnM6bmUubm9ybWFsaXplKCkudG9KU09OKCksYm9keTp3LGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6Sj9HQTp2b2lkIDB9O3VBPXImJm5ldyB0KGYsd3QpO2xldCBLPWF3YWl0KHI/ZSh1QSx5dCk6ZShmLHd0KSksRHQ9biYmKFc9PT0ic3RyZWFtInx8Vz09PSJyZXNwb25zZSIpO2lmKG4mJihQfHxEdCYmeikpe2xldCBqPXt9O1sic3RhdHVzIiwic3RhdHVzVGV4dCIsImhlYWRlcnMiXS5mb3JFYWNoKFN0PT57altTdF09S1tTdF19KTtsZXQgdEE9RS50b0Zpbml0ZU51bWJlcihLLmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbYWUsV0FdPVAmJkRlKHRBLElBKFNlKFApLCEwKSl8fFtdO0s9bmV3IGkoa2UoSy5ib2R5LEJyLGFlLCgpPT57V0EmJldBKCkseiYmeigpfSksail9Vz1XfHwidGV4dCI7bGV0IHFyPWF3YWl0IGdbRS5maW5kS2V5KGcsVyl8fCJ0ZXh0Il0oSyxJKTtyZXR1cm4hRHQmJnomJnooKSxhd2FpdCBuZXcgUHJvbWlzZSgoaix0QSk9PntTQShqLHRBLHtkYXRhOnFyLGhlYWRlcnM6ay5mcm9tKEsuaGVhZGVycyksc3RhdHVzOksuc3RhdHVzLHN0YXR1c1RleHQ6Sy5zdGF0dXNUZXh0LGNvbmZpZzpJLHJlcXVlc3Q6dUF9KX0pfWNhdGNoKEope3Rocm93IHomJnooKSxKJiZKLm5hbWU9PT0iVHlwZUVycm9yIiYmL0xvYWQgZmFpbGVkfGZldGNoL2kudGVzdChKLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IGgoIk5ldHdvcmsgRXJyb3IiLGguRVJSX05FVFdPUkssSSx1QSkse2NhdXNlOkouY2F1c2V8fEp9KTpoLmZyb20oSixKJiZKLmNvZGUsSSx1QSl9fX0sY289bmV3IE1hcCxVZT1BPT57bGV0IGU9RS5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSxscixBP0EuZW52Om51bGwpLHtmZXRjaDp0LFJlcXVlc3Q6aSxSZXNwb25zZTpvfT1lLHI9W2ksbyx0XSxhPXIubGVuZ3RoLEM9YSxwLEIsbj1jbztmb3IoO0MtLTspcD1yW0NdLEI9bi5nZXQocCksQj09PXZvaWQgMCYmbi5zZXQocCxCPUM/bmV3IE1hcDpmbyhlKSksbj1CO3JldHVybiBCfSxzST1VZSgpO3ZhciBiZT17aHR0cDpLQSx4aHI6SXIsZmV0Y2g6e2dldDpVZX19O0UuZm9yRWFjaChiZSwoQSxlKT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOmV9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6ZX0pfX0pO3ZhciBwcj1BPT5gLSAke0F9YCx5bz1BPT5FLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsX0E9e2dldEFkYXB0ZXI6KEEsZSk9PntBPUUuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOnR9PUEsaSxvLHI9e307Zm9yKGxldCBhPTA7YTx0O2ErKyl7aT1BW2FdO2xldCBDO2lmKG89aSwheW8oaSkmJihvPWJlWyhDPVN0cmluZyhpKSkudG9Mb3dlckNhc2UoKV0sbz09PXZvaWQgMCkpdGhyb3cgbmV3IGgoYFVua25vd24gYWRhcHRlciAnJHtDfSdgKTtpZihvJiYoRS5pc0Z1bmN0aW9uKG8pfHwobz1vLmdldChlKSkpKWJyZWFrO3JbQ3x8IiMiK2FdPW99aWYoIW8pe2xldCBhPU9iamVjdC5lbnRyaWVzKHIpLm1hcCgoW3AsQl0pPT5gYWRhcHRlciAke3B9IGArKEI9PT0hMT8iaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZW52aXJvbm1lbnQiOiJpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBidWlsZCIpKSxDPXQ/YS5sZW5ndGg+MT9gc2luY2UgOgpgK2EubWFwKHByKS5qb2luKGAKYCk6IiAiK3ByKGFbMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IGgoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitDLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gb30sYWRhcHRlcnM6YmV9O2Z1bmN0aW9uIE5lKEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBZKG51bGwsQSl9ZnVuY3Rpb24gJEEoQSl7cmV0dXJuIE5lKEEpLEEuaGVhZGVycz1rLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9d0EuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLF9BLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxhQS5hZGFwdGVyLEEpKEEpLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIE5lKEEpLGkuZGF0YT13QS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxpKSxpLmhlYWRlcnM9ay5mcm9tKGkuaGVhZGVycyksaX0sZnVuY3Rpb24oaSl7cmV0dXJuIERBKGkpfHwoTmUoQSksaSYmaS5yZXNwb25zZSYmKGkucmVzcG9uc2UuZGF0YT13QS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxpLnJlc3BvbnNlKSxpLnJlc3BvbnNlLmhlYWRlcnM9ay5mcm9tKGkucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChpKX0pfXZhciBBZT0iMS4xMi4wIjt2YXIgZWU9e307WyJvYmplY3QiLCJib29sZWFuIiwibnVtYmVyIiwiZnVuY3Rpb24iLCJzdHJpbmciLCJzeW1ib2wiXS5mb3JFYWNoKChBLGUpPT57ZWVbQV09ZnVuY3Rpb24oaSl7cmV0dXJuIHR5cGVvZiBpPT09QXx8ImEiKyhlPDE/Im4gIjoiICIpK0F9fSk7dmFyIHVyPXt9O2VlLnRyYW5zaXRpb25hbD1mdW5jdGlvbihlLHQsaSl7ZnVuY3Rpb24gbyhyLGEpe3JldHVybiJbQXhpb3MgdiIrQWUrIl0gVHJhbnNpdGlvbmFsIG9wdGlvbiAnIityKyInIithKyhpPyIuICIraToiIil9cmV0dXJuKHIsYSxDKT0+e2lmKGU9PT0hMSl0aHJvdyBuZXcgaChvKGEsIiBoYXMgYmVlbiByZW1vdmVkIisodD8iIGluICIrdDoiIikpLGguRVJSX0RFUFJFQ0FURUQpO3JldHVybiB0JiYhdXJbYV0mJih1clthXT0hMCxjb25zb2xlLndhcm4obyhhLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2Iit0KyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLGU/ZShyLGEsQyk6ITB9fTtlZS5zcGVsbGluZz1mdW5jdGlvbihlKXtyZXR1cm4odCxpKT0+KGNvbnNvbGUud2FybihgJHtpfSBpcyBsaWtlbHkgYSBtaXNzcGVsbGluZyBvZiAke2V9YCksITApfTtmdW5jdGlvbiBobyhBLGUsdCl7aWYodHlwZW9mIEEhPSJvYmplY3QiKXRocm93IG5ldyBoKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0IixoLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtsZXQgaT1PYmplY3Qua2V5cyhBKSxvPWkubGVuZ3RoO2Zvcig7by0tID4wOyl7bGV0IHI9aVtvXSxhPWVbcl07aWYoYSl7bGV0IEM9QVtyXSxwPUM9PT12b2lkIDB8fGEoQyxyLEEpO2lmKHAhPT0hMCl0aHJvdyBuZXcgaCgib3B0aW9uICIrcisiIG11c3QgYmUgIitwLGguRVJSX0JBRF9PUFRJT05fVkFMVUUpO2NvbnRpbnVlfWlmKHQhPT0hMCl0aHJvdyBuZXcgaCgiVW5rbm93biBvcHRpb24gIityLGguRVJSX0JBRF9PUFRJT04pfX12YXIgRkE9e2Fzc2VydE9wdGlvbnM6aG8sdmFsaWRhdG9yczplZX07dmFyIEg9RkEudmFsaWRhdG9ycyxnQT1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmRlZmF1bHRzPWV8fHt9LHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyB1ZSxyZXNwb25zZTpuZXcgdWV9fWFzeW5jIHJlcXVlc3QoZSx0KXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QoZSx0KX1jYXRjaChpKXtpZihpIGluc3RhbmNlb2YgRXJyb3Ipe2xldCBvPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKG8pOm89bmV3IEVycm9yO2xldCByPW8uc3RhY2s/by5zdGFjay5yZXBsYWNlKC9eLitcbi8sIiIpOiIiO3RyeXtpLnN0YWNrP3ImJiFTdHJpbmcoaS5zdGFjaykuZW5kc1dpdGgoci5yZXBsYWNlKC9eLitcbi4rXG4vLCIiKSkmJihpLnN0YWNrKz1gCmArcik6aS5zdGFjaz1yfWNhdGNoe319dGhyb3cgaX19X3JlcXVlc3QoZSx0KXt0eXBlb2YgZT09InN0cmluZyI/KHQ9dHx8e30sdC51cmw9ZSk6dD1lfHx7fSx0PUwodGhpcy5kZWZhdWx0cyx0KTtsZXR7dHJhbnNpdGlvbmFsOmkscGFyYW1zU2VyaWFsaXplcjpvLGhlYWRlcnM6cn09dDtpIT09dm9pZCAwJiZGQS5hc3NlcnRPcHRpb25zKGkse3NpbGVudEpTT05QYXJzaW5nOkgudHJhbnNpdGlvbmFsKEguYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6SC50cmFuc2l0aW9uYWwoSC5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOkgudHJhbnNpdGlvbmFsKEguYm9vbGVhbil9LCExKSxvIT1udWxsJiYoRS5pc0Z1bmN0aW9uKG8pP3QucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOm99OkZBLmFzc2VydE9wdGlvbnMobyx7ZW5jb2RlOkguZnVuY3Rpb24sc2VyaWFsaXplOkguZnVuY3Rpb259LCEwKSksdC5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/dC5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOnQuYWxsb3dBYnNvbHV0ZVVybHM9ITApLEZBLmFzc2VydE9wdGlvbnModCx7YmFzZVVybDpILnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpILnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSx0Lm1ldGhvZD0odC5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgYT1yJiZFLm1lcmdlKHIuY29tbW9uLHJbdC5tZXRob2RdKTtyJiZFLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sST0+e2RlbGV0ZSByW0ldfSksdC5oZWFkZXJzPWsuY29uY2F0KGEscik7bGV0IEM9W10scD0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oZil7dHlwZW9mIGYucnVuV2hlbj09ImZ1bmN0aW9uIiYmZi5ydW5XaGVuKHQpPT09ITF8fChwPXAmJmYuc3luY2hyb25vdXMsQy51bnNoaWZ0KGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpKX0pO2xldCBCPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oZil7Qi5wdXNoKGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpfSk7bGV0IG4sZz0wLGw7aWYoIXApe2xldCBJPVskQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKEkudW5zaGlmdCguLi5DKSxJLnB1c2goLi4uQiksbD1JLmxlbmd0aCxuPVByb21pc2UucmVzb2x2ZSh0KTtnPGw7KW49bi50aGVuKElbZysrXSxJW2crK10pO3JldHVybiBufWw9Qy5sZW5ndGg7bGV0IHM9dDtmb3IoZz0wO2c8bDspe2xldCBJPUNbZysrXSxmPUNbZysrXTt0cnl7cz1JKHMpfWNhdGNoKHUpe2YuY2FsbCh0aGlzLHUpO2JyZWFrfX10cnl7bj0kQS5jYWxsKHRoaXMscyl9Y2F0Y2goSSl7cmV0dXJuIFByb21pc2UucmVqZWN0KEkpfWZvcihnPTAsbD1CLmxlbmd0aDtnPGw7KW49bi50aGVuKEJbZysrXSxCW2crK10pO3JldHVybiBufWdldFVyaShlKXtlPUwodGhpcy5kZWZhdWx0cyxlKTtsZXQgdD1SQShlLmJhc2VVUkwsZS51cmwsZS5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIHlBKHQsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKX19O0UuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24oZSl7Z0EucHJvdG90eXBlW2VdPWZ1bmN0aW9uKHQsaSl7cmV0dXJuIHRoaXMucmVxdWVzdChMKGl8fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOihpfHx7fSkuZGF0YX0pKX19KTtFLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGkpe3JldHVybiBmdW5jdGlvbihyLGEsQyl7cmV0dXJuIHRoaXMucmVxdWVzdChMKEN8fHt9LHttZXRob2Q6ZSxoZWFkZXJzOmk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOnIsZGF0YTphfSkpfX1nQS5wcm90b3R5cGVbZV09dCgpLGdBLnByb3RvdHlwZVtlKyJGb3JtIl09dCghMCl9KTt2YXIga0E9Z0E7dmFyIEdlPWNsYXNzIEF7Y29uc3RydWN0b3IoZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCB0O3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihyKXt0PXJ9KTtsZXQgaT10aGlzO3RoaXMucHJvbWlzZS50aGVuKG89PntpZighaS5fbGlzdGVuZXJzKXJldHVybjtsZXQgcj1pLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7ci0tID4wOylpLl9saXN0ZW5lcnNbcl0obyk7aS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1vPT57bGV0IHIsYT1uZXcgUHJvbWlzZShDPT57aS5zdWJzY3JpYmUoQykscj1DfSkudGhlbihvKTtyZXR1cm4gYS5jYW5jZWw9ZnVuY3Rpb24oKXtpLnVuc3Vic2NyaWJlKHIpfSxhfSxlKGZ1bmN0aW9uKHIsYSxDKXtpLnJlYXNvbnx8KGkucmVhc29uPW5ldyBZKHIsYSxDKSx0KGkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKGUpe2lmKHRoaXMucmVhc29uKXtlKHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19dW5zdWJzY3JpYmUoZSl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IHQ9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoZSk7dCE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKHQsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCBlPW5ldyBBYm9ydENvbnRyb2xsZXIsdD1pPT57ZS5hYm9ydChpKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKHQpLGUuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKHQpLGUuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgZTtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24obyl7ZT1vfSksY2FuY2VsOmV9fX0sZnI9R2U7ZnVuY3Rpb24gTWUoQSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBBLmFwcGx5KG51bGwsdCl9fWZ1bmN0aW9uIFdlKEEpe3JldHVybiBFLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBQZT17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoUGUpLmZvckVhY2goKFtBLGVdKT0+e1BlW2VdPUF9KTt2YXIgY3I9UGU7ZnVuY3Rpb24gbXIoQSl7bGV0IGU9bmV3IGtBKEEpLHQ9ZkEoa0EucHJvdG90eXBlLnJlcXVlc3QsZSk7cmV0dXJuIEUuZXh0ZW5kKHQsa0EucHJvdG90eXBlLGUse2FsbE93bktleXM6ITB9KSxFLmV4dGVuZCh0LGUsbnVsbCx7YWxsT3duS2V5czohMH0pLHQuY3JlYXRlPWZ1bmN0aW9uKG8pe3JldHVybiBtcihMKEEsbykpfSx0fXZhciBSPW1yKGFBKTtSLkF4aW9zPWtBO1IuQ2FuY2VsZWRFcnJvcj1ZO1IuQ2FuY2VsVG9rZW49ZnI7Ui5pc0NhbmNlbD1EQTtSLlZFUlNJT049QWU7Ui50b0Zvcm1EYXRhPXY7Ui5BeGlvc0Vycm9yPWg7Ui5DYW5jZWw9Ui5DYW5jZWxlZEVycm9yO1IuYWxsPWZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChlKX07Ui5zcHJlYWQ9TWU7Ui5pc0F4aW9zRXJyb3I9V2U7Ui5tZXJnZUNvbmZpZz1MO1IuQXhpb3NIZWFkZXJzPWs7Ui5mb3JtVG9KU09OPUE9PlpBKEUuaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7Ui5nZXRBZGFwdGVyPV9BLmdldEFkYXB0ZXI7Ui5IdHRwU3RhdHVzQ29kZT1jcjtSLmRlZmF1bHQ9Ujt2YXIgQkE9Ujt2YXJ7QXhpb3M6b2csQXhpb3NFcnJvcjpuZyxDYW5jZWxlZEVycm9yOmFnLGlzQ2FuY2VsOnNnLENhbmNlbFRva2VuOklnLFZFUlNJT046Z2csYWxsOkJnLENhbmNlbDpDZyxpc0F4aW9zRXJyb3I6UWcsc3ByZWFkOkVnLHRvRm9ybURhdGE6bGcsQXhpb3NIZWFkZXJzOnBnLEh0dHBTdGF0dXNDb2RlOnVnLGZvcm1Ub0pTT046ZmcsZ2V0QWRhcHRlcjpjZyxtZXJnZUNvbmZpZzptZ309QkE7YXN5bmMgZnVuY3Rpb24gd28oQSxlKXtsZXQgdD1BLGk9bnVsbDtpZih0PT1udWxsKWk9bmV3IFdvcmtlcihuZXcgVVJMKCIuL3dlYi13b3JrZXJzL2l0ay13YXNtLXBpcGVsaW5lLndvcmtlci5qcyIsaW1wb3J0Lm1ldGEudXJsKSx7dHlwZToibW9kdWxlIn0pO2Vsc2UgaWYodC5zdGFydHNXaXRoKCJodHRwIikpe2xldCBvPWF3YWl0IEJBLmdldCh0LHtyZXNwb25zZVR5cGU6ImJsb2IiLHBhcmFtczplfSkscj1VUkwuY3JlYXRlT2JqZWN0VVJMKG8uZGF0YSk7aT1uZXcgV29ya2VyKHIse3R5cGU6Im1vZHVsZSJ9KX1lbHNlIGk9bmV3IFdvcmtlcih0LHt0eXBlOiJtb2R1bGUifSk7cmV0dXJuIGl9dmFyIFVBPXdvO2Z1bmN0aW9uIGRyKEEpe2xldCBlPUJlKEEpLHQ9QTtyZXR1cm4gdC50ZXJtaW5hdGVkPSExLHQud29ya2VyUHJveHk9ZSx0Lm9yaWdpbmFsVGVybWluYXRlPXQudGVybWluYXRlLHQudGVybWluYXRlPSgpPT57dC50ZXJtaW5hdGVkPSEwLHQud29ya2VyUHJveHlbZ2VdKCksdC5vcmlnaW5hbFRlcm1pbmF0ZSgpfSx7d29ya2VyUHJveHk6ZSx3b3JrZXI6dH19YXN5bmMgZnVuY3Rpb24gRG8oQSxlLHQpe2xldCBpO2lmKEEhPW51bGwpe2xldCByPUE7cmV0dXJuIHIud29ya2VyUHJveHkhPT12b2lkIDA/KGk9ci53b3JrZXJQcm94eSx7d29ya2VyUHJveHk6aSx3b3JrZXI6cn0pOmRyKEEpfWxldCBvPWF3YWl0IFVBKGUsdCk7cmV0dXJuIGRyKG8pfXZhciB5cj1Ebzt2YXIgYkEscSxMZSxPZT17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe0xlPW5ldyBVaW50OEFycmF5KHEuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSx0ZT1jbGFzc3tpbml0KCl7cmV0dXJuIGJBfHwodHlwZW9mIGZldGNoPCJ1Ij9iQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK2hyKS50aGVuKGU9PmUuYXJyYXlCdWZmZXIoKSkudGhlbihlPT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShlLE9lKSkudGhlbih0aGlzLl9pbml0KTpiQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShociwiYmFzZTY0IiksT2UpLnRoZW4odGhpcy5faW5pdCksYkEpfV9pbml0KGUpe3E9ZS5pbnN0YW5jZSxPZS5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUoZSx0PTApe2lmKCFxKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCBpPWUuYnl0ZUxlbmd0aCxvPXEuZXhwb3J0cy5tYWxsb2MoaSk7TGUuc2V0KGUsbyksdD10fHxOdW1iZXIocS5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUobyxpKSk7bGV0IHI9cS5leHBvcnRzLm1hbGxvYyh0KSxhPXEuZXhwb3J0cy5aU1REX2RlY29tcHJlc3Mocix0LG8saSksQz1MZS5zbGljZShyLHIrYSk7cmV0dXJuIHEuZXhwb3J0cy5mcmVlKG8pLHEuZXhwb3J0cy5mcmVlKHIpLEN9fSxocj0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciB3cj1uZXcgdGUsRHI9ITE7YXN5bmMgZnVuY3Rpb24gU28oQSxlLHQpe2xldCBpPSJ1bmtub3duIjt0eXBlb2YgQSE9InN0cmluZyI/aT1BLmhyZWY6QS5zdGFydHNXaXRoKCJodHRwIik/aT1BOmk9dHlwZW9mIGU8InUiP2Ake2V9LyR7QX1gOkEsaS5lbmRzV2l0aCgiLmpzIikmJihpPWkuc3Vic3RyaW5nKDAsaS5sZW5ndGgtMykpLGkuZW5kc1dpdGgoIi53YXNtIikmJihpPWkuc3Vic3RyaW5nKDAsaS5sZW5ndGgtNSkpLGkuZW5kc1dpdGgoIi53YXNtLnpzdCIpJiYoaT1pLnN1YnN0cmluZygwLGkubGVuZ3RoLTkpKTtsZXQgbz1gJHtpfS53YXNtYCxyPWF3YWl0IEJBLmdldChgJHtvfS56c3RgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIixwYXJhbXM6dH0pO0RyfHwoYXdhaXQgd3IuaW5pdCgpLERyPSEwKTtsZXQgQz13ci5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoci5kYXRhKSkuYnVmZmVyO3JldHVybihhd2FpdCBpbXBvcnQoYCR7aX0uanNgKSkuZGVmYXVsdCh7d2FzbUJpbmFyeTpDfSl9dmFyIFNyPVNvO3ZhciBScj1hc3luYygpPT5XZWJBc3NlbWJseS52YWxpZGF0ZShuZXcgVWludDhBcnJheShbMCw5NywxMTUsMTA5LDEsMCwwLDAsMSw1LDEsOTYsMCwxLDEyMywzLDIsMSwwLDEwLDEwLDEsOCwwLDY1LDAsMjUzLDE1LDI1Myw5OCwxMV0pKTt2YXIgVXI9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI9PSJmdW5jdGlvbiIsRnI9bmV3IFRleHRFbmNvZGVyLGtyPW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKTtmdW5jdGlvbiBSbyhBLGUpe2xldCB0PXtmbGFnczoiciIsZW5jb2Rpbmc6ImJpbmFyeSJ9LGk9QS5mc19vcGVuKGUsdC5mbGFncykscj1BLmZzX3N0YXQoZSkuc2l6ZSxhPW51bGw7VXI/YT1uZXcgU2hhcmVkQXJyYXlCdWZmZXIocik6YT1uZXcgQXJyYXlCdWZmZXIocik7bGV0IEM9bmV3IFVpbnQ4QXJyYXkoYSk7cmV0dXJuIEEuZnNfcmVhZChpLEMsMCxyLDApLEEuZnNfY2xvc2UoaSksQ31mdW5jdGlvbiBicihBLGUsdCl7bGV0IGk9bnVsbDtVcj9pPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcih0KTppPW5ldyBBcnJheUJ1ZmZlcih0KTtsZXQgbz1uZXcgVWludDhBcnJheShpKSxyPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixlLHQpO3JldHVybiBvLnNldChyKSxvfWZ1bmN0aW9uIEYoQSxlLHQsaSl7bGV0IG89MDtyZXR1cm4gZSE9PW51bGwmJihvPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2FycmF5X2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsaSxlLmJ1ZmZlci5ieXRlTGVuZ3RoXSksQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KGUuYnVmZmVyKSxvKSksb31mdW5jdGlvbiBaKEEsZSx0KXtsZXQgaT1KU09OLnN0cmluZ2lmeShlKSxvPUEubGVuZ3RoQnl0ZXNVVEY4KGkpKzEscj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsb10pO0Euc3RyaW5nVG9VVEY4KGkscixvKX1mdW5jdGlvbiBVKEEsZSx0LGkpe2xldCBvPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsdF0pLHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksYT1icihBLG8scik7cmV0dXJuIHgoaSxhLmJ1ZmZlcil9ZnVuY3Rpb24gTkEoQSxlKXtsZXQgdD1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLGVdKSxpPUEuVVRGOFRvU3RyaW5nKHQpO3JldHVybiBKU09OLnBhcnNlKGkpfWZ1bmN0aW9uIEZvKEEsZSx0LGkpe2khPW51bGwmJmkubGVuZ3RoPjAmJmkuZm9yRWFjaChmdW5jdGlvbihCLG4pe3N3aXRjaChCLnR5cGUpe2Nhc2UgUS5UZXh0U3RyZWFtOntsZXQgZz1Gci5lbmNvZGUoQi5kYXRhLmRhdGEpLGw9RihBLGcsbiwwKSxzPXtzaXplOmcuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07WihBLHMsbik7YnJlYWt9Y2FzZSBRLkpzb25Db21wYXRpYmxlOntsZXQgZz1Gci5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoQi5kYXRhKSksbD1GKEEsZyxuLDApLHM9e3NpemU6Zy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTtaKEEscyxuKTticmVha31jYXNlIFEuQmluYXJ5U3RyZWFtOntsZXQgZz1CLmRhdGEuZGF0YSxsPUYoQSxnLG4sMCkscz17c2l6ZTpnLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O1ooQSxzLG4pO2JyZWFrfWNhc2UgUS5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgUS5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBRLkltYWdlOntsZXQgZz1CLmRhdGEsbD1GKEEsZy5kYXRhLG4sMCkscz1GKEEsZy5kaXJlY3Rpb24sbiwxKSxJPXR5cGVvZiBnLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKGcubWV0YWRhdGEuZW50cmllcygpKTpbXSxmPXtpbWFnZVR5cGU6Zy5pbWFnZVR5cGUsbmFtZTpnLm5hbWUsb3JpZ2luOmcub3JpZ2luLHNwYWNpbmc6Zy5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3N9YCxzaXplOmcuc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG1ldGFkYXRhOkl9O1ooQSxmLG4pO2JyZWFrfWNhc2UgUS5NZXNoOntsZXQgZz1CLmRhdGEsbD1GKEEsZy5wb2ludHMsbiwwKSxzPUYoQSxnLmNlbGxzLG4sMSksST1GKEEsZy5wb2ludERhdGEsbiwyKSxmPUYoQSxnLmNlbGxEYXRhLG4sMyksdT17bWVzaFR5cGU6Zy5tZXNoVHlwZSxuYW1lOmcubmFtZSxudW1iZXJPZlBvaW50czpnLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZkNlbGxzOmcubnVtYmVyT2ZDZWxscyxjZWxsczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3N9YCxjZWxsQnVmZmVyU2l6ZTpnLmNlbGxCdWZmZXJTaXplLG51bWJlck9mUG9pbnRQaXhlbHM6Zy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0l9YCxudW1iZXJPZkNlbGxQaXhlbHM6Zy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O1ooQSx1LG4pO2JyZWFrfWNhc2UgUS5Qb2ludFNldDp7bGV0IGc9Qi5kYXRhLGw9RihBLGcucG9pbnRzLG4sMCkscz1GKEEsZy5wb2ludERhdGEsbiwxKSxJPXtwb2ludFNldFR5cGU6Zy5wb2ludFNldFR5cGUsbmFtZTpnLm5hbWUsbnVtYmVyT2ZQb2ludHM6Zy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpnLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7c31gfTtaKEEsSSxuKTticmVha31jYXNlIFEuVHJhbnNmb3JtTGlzdDp7bGV0IGc9Qi5kYXRhLGw9W10scz0wO2cuZm9yRWFjaChJPT57bGV0IGY9IiIsdT0iIjtJLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoZj1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0YoQSxJLmZpeGVkUGFyYW1ldGVycyxuLHMpfWAscys9MSx1PWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7RihBLEkucGFyYW1ldGVycyxuLHMpfWAscys9MSk7bGV0IHc9e3RyYW5zZm9ybVR5cGU6SS50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOkkubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOkkubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6SS5uYW1lLGlucHV0U3BhY2VOYW1lOkkuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOkkub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6dSxmaXhlZFBhcmFtZXRlcnM6Zn07bC5wdXNoKHcpfSksWihBLGwsbik7YnJlYWt9Y2FzZSBRLlBvbHlEYXRhOntsZXQgZz1CLmRhdGEsbD1GKEEsZy5wb2ludHMsbiwwKSxzPUYoQSxnLnZlcnRpY2VzLG4sMSksST1GKEEsZy5saW5lcyxuLDIpLGY9RihBLGcucG9seWdvbnMsbiwzKSx1PUYoQSxnLnRyaWFuZ2xlU3RyaXBzLG4sNCksdz1GKEEsZy5wb2ludERhdGEsbiw1KSxiPUYoQSxnLnBvaW50RGF0YSxuLDYpLFM9e3BvbHlEYXRhVHlwZTpnLnBvbHlEYXRhVHlwZSxuYW1lOmcubmFtZSxudW1iZXJPZlBvaW50czpnLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCx2ZXJ0aWNlc0J1ZmZlclNpemU6Zy52ZXJ0aWNlc0J1ZmZlclNpemUsdmVydGljZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtzfWAsbGluZXNCdWZmZXJTaXplOmcubGluZXNCdWZmZXJTaXplLGxpbmVzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7SX1gLHBvbHlnb25zQnVmZmVyU2l6ZTpnLnBvbHlnb25zQnVmZmVyU2l6ZSxwb2x5Z29uczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCx0cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU6Zy50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemUsdHJpYW5nbGVTdHJpcHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt1fWAsbnVtYmVyT2ZQb2ludFBpeGVsczpnLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7d31gLG51bWJlck9mQ2VsbFBpeGVsczpnLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2J9YH07WihBLFMsbik7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IG89QS5zdGFja1NhdmUoKSxyPTA7dHJ5e3I9QS5jYWxsTWFpbihlLnNsaWNlKCkpfWNhdGNoKEIpe3Rocm93IHR5cGVvZiBCPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKEIpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLEJ9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShvKX1sZXQgYT1BLmdldE1vZHVsZVN0ZG91dCgpLEM9QS5nZXRNb2R1bGVTdGRlcnIoKSxwPVtdO3JldHVybiB0IT1udWxsJiZ0Lmxlbmd0aD4wJiZyPT09MCYmdC5mb3JFYWNoKGZ1bmN0aW9uKEIsbil7bGV0IGc9bnVsbDtzd2l0Y2goQi50eXBlKXtjYXNlIFEuVGV4dFN0cmVhbTp7bGV0IHM9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSksST1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixzLEkpO2c9e2RhdGE6a3IuZGVjb2RlKGYpfTticmVha31jYXNlIFEuSnNvbkNvbXBhdGlibGU6e2xldCBzPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pLEk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsbiwwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIscyxJKTtnPUpTT04ucGFyc2Uoa3IuZGVjb2RlKGYpKTticmVha31jYXNlIFEuQmluYXJ5U3RyZWFtOntsZXQgcz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxuLDBdKSxJPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLG4sMF0pO2c9e2RhdGE6YnIoQSxzLEkpfTticmVha31jYXNlIFEuVGV4dEZpbGU6e2c9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKEIuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSBRLkJpbmFyeUZpbGU6e2c9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpSbyhBLEIuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSBRLkltYWdlOntsZXQgcz1OQShBLG4pO3MuZGF0YT1VKEEsbiwwLHMuaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLHMuZGlyZWN0aW9uPVUoQSxuLDEsJC5GbG9hdDY0KSxzLm1ldGFkYXRhPW5ldyBNYXAocy5tZXRhZGF0YSksZz1zO2JyZWFrfWNhc2UgUS5NZXNoOntsZXQgcz1OQShBLG4pO3MubnVtYmVyT2ZQb2ludHM+MD9zLnBvaW50cz1VKEEsbiwwLHMubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpzLnBvaW50cz14KHMubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSkscy5udW1iZXJPZkNlbGxzPjA/cy5jZWxscz1VKEEsbiwxLHMubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOnMuY2VsbHM9eChzLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSkscy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/cy5wb2ludERhdGE9VShBLG4sMixzLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpzLnBvaW50RGF0YT14KHMubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxzLm51bWJlck9mQ2VsbFBpeGVscz4wP3MuY2VsbERhdGE9VShBLG4sMyxzLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOnMuY2VsbERhdGE9eChzLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxnPXM7YnJlYWt9Y2FzZSBRLlBvaW50U2V0OntsZXQgcz1OQShBLG4pO3MubnVtYmVyT2ZQb2ludHM+MD9zLnBvaW50cz1VKEEsbiwwLHMucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6cy5wb2ludHM9eChzLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxzLm51bWJlck9mUG9pbnRQaXhlbHM+MD9zLnBvaW50RGF0YT1VKEEsbiwxLHMucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpzLnBvaW50RGF0YT14KHMucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksZz1zO2JyZWFrfWNhc2UgUS5UcmFuc2Zvcm1MaXN0OntsZXQgcz1OQShBLG4pLEk9MDtzLmZvckVhY2goKGYsdSk9PntmLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoZi5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYoc1t1XS5maXhlZFBhcmFtZXRlcnM9VShBLG4sSSwkLkZsb2F0NjQpKSxJKz0xLGYubnVtYmVyT2ZQYXJhbWV0ZXJzPjAmJihzW3VdLnBhcmFtZXRlcnM9VShBLG4sSSxmLnRyYW5zZm9ybVR5cGUucGFyYW1ldGVyc1ZhbHVlVHlwZSkpLEkrPTEpfSksZz1zO2JyZWFrfWNhc2UgUS5Qb2x5RGF0YTp7bGV0IHM9TkEoQSxuKTtzLm51bWJlck9mUG9pbnRzPjA/cy5wb2ludHM9VShBLG4sMCwkLkZsb2F0MzIpOnMucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXkscy52ZXJ0aWNlc0J1ZmZlclNpemU+MD9zLnZlcnRpY2VzPVUoQSxuLDEsRy5VSW50MzIpOnMudmVydGljZXM9bmV3IFVpbnQzMkFycmF5LHMubGluZXNCdWZmZXJTaXplPjA/cy5saW5lcz1VKEEsbiwyLEcuVUludDMyKTpzLmxpbmVzPW5ldyBVaW50MzJBcnJheSxzLnBvbHlnb25zQnVmZmVyU2l6ZT4wP3MucG9seWdvbnM9VShBLG4sMyxHLlVJbnQzMik6cy5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXkscy50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9zLnRyaWFuZ2xlU3RyaXBzPVUoQSxuLDQsRy5VSW50MzIpOnMudHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LHMubnVtYmVyT2ZQb2ludFBpeGVscz4wP3MucG9pbnREYXRhPVUoQSxuLDUscy5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOnMucG9pbnREYXRhPXgocy5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxzLm51bWJlck9mQ2VsbFBpeGVscz4wP3MuY2VsbERhdGE9VShBLG4sNixzLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpzLmNlbGxEYXRhPXgocy5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGc9czticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBsPXt0eXBlOkIudHlwZSxkYXRhOmd9O3AucHVzaChsKX0pLHtyZXR1cm5WYWx1ZTpyLHN0ZG91dDphLHN0ZGVycjpDLG91dHB1dHM6cH19dmFyIE5yPUZvO3ZhciBrbz10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gVW8oQSxlKXtpZihBPT1udWxsKXJldHVybltdO2xldCB0PVtdO2ZvcihsZXQgaT0wO2k8QS5sZW5ndGg7aSsrKXtsZXQgbz1ibyhBW2ldLGUpO28hPT1udWxsJiZ0LnB1c2gobyl9cmV0dXJuIHR9ZnVuY3Rpb24gYm8oQSxlKXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCB0PW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP3Q9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYodD1BKSxrbyYmdCBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6ZT90OnQuc2xpY2UoMCl9dmFyIEdyPVVvO2Z1bmN0aW9uIE5vKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciBNcj1ObztmdW5jdGlvbiBHbyhBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgV3I9R287ZnVuY3Rpb24gTW8oQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIFByPU1vO3ZhciBXbztmdW5jdGlvbiByZSgpe3JldHVybiBXb312YXIgUG87ZnVuY3Rpb24gT3IoKXtyZXR1cm4gUG99dmFyIE9vO2Z1bmN0aW9uIGllKCl7cmV0dXJuIE9vfXZhciBKZT1uZXcgTWFwO2Z1bmN0aW9uIExvKCl7bGV0IEE9aWUoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1udWxsKSxBfWZ1bmN0aW9uIExyKCl7bGV0IEE9cmUoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1uZXcgVVJMKCIvcGlwZWxpbmVzIixkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pLmhyZWYpLEF9ZnVuY3Rpb24gb2UoKXtsZXQgQT1PcigpO3JldHVybiB0eXBlb2YgQT4idSImJihBPXt9KSxBfWFzeW5jIGZ1bmN0aW9uIEpvKEEsZSx0KXtsZXQgaT1BLG89QTtpZih0eXBlb2YgQSE9InN0cmluZyImJihpPW5ldyBVUkwoQS5ocmVmKSxvPWkuaHJlZiksSmUuaGFzKG8pKXJldHVybiBKZS5nZXQobyk7e2xldCByPWF3YWl0IFNyKEEsZT8udG9TdHJpbmcoKT8/THIoKSx0Pz9vZSgpKTtyZXR1cm4gSmUuc2V0KG8scikscn19YXN5bmMgZnVuY3Rpb24geG8oQSxlLHQsaSxvKXtpZighYXdhaXQgUnIoKSl7bGV0IHU9IldlYkFzc2VtYmx5IFNJTUQgc3VwcG9ydCBpcyByZXF1aXJlZCAtLSBwbGVhc2UgdXBkYXRlIHlvdXIgYnJvd3Nlci4iO3Rocm93IGFsZXJ0KHUpLG5ldyBFcnJvcih1KX1sZXQgcj1vPy53ZWJXb3JrZXI/P251bGw7aWYocj09PSExKXtsZXQgdT1hd2FpdCBKbyhBLnRvU3RyaW5nKCksbz8ucGlwZWxpbmVCYXNlVXJsLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P29lKCkpO3JldHVybiBOcih1LGUsdCxpKX1sZXQgYT1yLEM9bz8ucGlwZWxpbmVXb3JrZXJVcmw/P0xvKCkscD10eXBlb2YgQyE9InN0cmluZyImJnR5cGVvZiBDPy5ocmVmPCJ1Ij9DLmhyZWY6Qyx7d29ya2VyUHJveHk6Qix3b3JrZXI6bn09YXdhaXQgeXIoYSxwLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P29lKCkpO2E9bjtsZXQgZz1bXTtpIT1udWxsJiZpLmxlbmd0aD4wJiZpLmZvckVhY2goZnVuY3Rpb24odSl7aWYodS50eXBlPT09US5CaW5hcnlTdHJlYW0pe2xldCB3PXUuZGF0YS5kYXRhO2cucHVzaCh3KX1lbHNlIGlmKHUudHlwZT09PVEuQmluYXJ5RmlsZSl7bGV0IHc9dS5kYXRhLmRhdGE7Zy5wdXNoKHcpfWVsc2UgaWYodS50eXBlPT09US5JbWFnZSl7bGV0IHc9dS5kYXRhO3cuZGF0YSE9PW51bGwmJmcucHVzaCguLi5Ncih3KSl9ZWxzZSBpZih1LnR5cGU9PT1RLk1lc2gpe2xldCB3PXUuZGF0YTtnLnB1c2goLi4uV3IodykpfWVsc2UgaWYodS50eXBlPT09US5Qb2x5RGF0YSl7bGV0IHc9dS5kYXRhO2cucHVzaCguLi5Qcih3KSl9fSk7bGV0IGw9bz8ucGlwZWxpbmVCYXNlVXJsPz9McigpLHM9dHlwZW9mIGwhPSJzdHJpbmciJiZ0eXBlb2YgbD8uaHJlZjwidSI/bC5ocmVmOmwsST1pIT1udWxsP0NlKGksR3IoZyxvPy5ub0NvcHkpKTpudWxsLGY9YXdhaXQgQi5ydW5QaXBlbGluZShBLnRvU3RyaW5nKCkscyxlLHQsSSxvPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz9vZSgpKTtyZXR1cm57cmV0dXJuVmFsdWU6Zi5yZXR1cm5WYWx1ZSxzdGRvdXQ6Zi5zdGRvdXQsc3RkZXJyOmYuc3RkZXJyLG91dHB1dHM6Zi5vdXRwdXRzLHdlYldvcmtlcjphfX12YXIgbT14bzt2YXIgWW89bnVsbDtmdW5jdGlvbiBKcigpe3JldHVybiBZb312YXIgSG89bmV3IE1hcChbXSksQ0E9SG87dmFyIFRvPSIxLjcuMCIseHI9VG87dmFyIHhlLHFvPWBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL0BpdGstd2FzbS9tZXNoLWlvQCR7eHJ9L2Rpc3QvcGlwZWxpbmVzYDtmdW5jdGlvbiBFQihBKXt4ZT1BfWZ1bmN0aW9uIGQoKXtpZih0eXBlb2YgeGU8InUiKXJldHVybiB4ZTtsZXQgQT1yZSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpxb312YXIgWWUsS289bnVsbDtmdW5jdGlvbiBZcihBKXtZZT1BfWZ1bmN0aW9uIGMoKXtpZih0eXBlb2YgWWU8InUiKXJldHVybiBZZTtsZXQgQT1pZSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpLb312YXIgUUE9bnVsbDthc3luYyBmdW5jdGlvbiBIcigpe2xldCBBPWMoKSxlPXR5cGVvZiBBIT0ic3RyaW5nIiYmdHlwZW9mIEE/LmhyZWY8InUiP0EuaHJlZjpBO1FBPWF3YWl0IFVBKGUpfWZ1bmN0aW9uIGRCKEEpe1FBPUF9YXN5bmMgZnVuY3Rpb24geSgpe2lmKFFBIT09bnVsbClyZXR1cm4gUUEudGVybWluYXRlZCYmYXdhaXQgSHIoKSxRQTtsZXQgQT1KcigpO3JldHVybiBBIT09bnVsbD9BOihhd2FpdCBIcigpLFFBKX1hc3luYyBmdW5jdGlvbiBqbyhBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLk1lc2h9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9InZ0ay1wb2x5LWRhdGEtcmVhZC1tZXNoIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLG1lc2g6SVsxXT8uZGF0YX19dmFyIEhlPWpvO2FzeW5jIGZ1bmN0aW9uIHZvKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuTWVzaCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9InZ0ay1wb2x5LWRhdGEtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIFRlPXZvO2FzeW5jIGZ1bmN0aW9uIFpvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ib2JqLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciBxZT1abzthc3luYyBmdW5jdGlvbiBWbyhBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJvYmotd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIEtlPVZvO2FzeW5jIGZ1bmN0aW9uIHpvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ic3RsLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciBqZT16bzthc3luYyBmdW5jdGlvbiBYbyhBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJzdGwtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIHZlPVhvO2FzeW5jIGZ1bmN0aW9uIF9vKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ib2ZmLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciBaZT1fbzthc3luYyBmdW5jdGlvbiAkbyhBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJvZmYtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIFZlPSRvO2FzeW5jIGZ1bmN0aW9uIEFuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ibXozLXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciB6ZT1Bbjthc3luYyBmdW5jdGlvbiBlbihBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJtejMtd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIFhlPWVuO2FzeW5jIGZ1bmN0aW9uIHRuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0id2FzbS1yZWFkLW1lc2giLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEsbWVzaDpJWzFdPy5kYXRhfX12YXIgX2U9dG47YXN5bmMgZnVuY3Rpb24gcm4oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5NZXNoLGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgQj0id2FzbS13cml0ZS1tZXNoIixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkTWVzaDpJWzFdPy5kYXRhfX12YXIgJGU9cm47YXN5bmMgZnVuY3Rpb24gb24oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5NZXNofV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJ3YXNtLXpzdGQtcmVhZC1tZXNoIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLG1lc2g6SVsxXT8uZGF0YX19dmFyIEF0PW9uO2FzeW5jIGZ1bmN0aW9uIG5uKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuTWVzaCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9Indhc20tenN0ZC13cml0ZS1tZXNoIixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkTWVzaDpJWzFdPy5kYXRhfX12YXIgZXQ9bm47YXN5bmMgZnVuY3Rpb24gYW4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5NZXNofV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJzd2MtcmVhZC1tZXNoIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLG1lc2g6SVsxXT8uZGF0YX19dmFyIHR0PWFuO2FzeW5jIGZ1bmN0aW9uIHNuKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuTWVzaCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9InN3Yy13cml0ZS1tZXNoIixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkTWVzaDpJWzFdPy5kYXRhfX12YXIgcnQ9c247YXN5bmMgZnVuY3Rpb24gSW4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5NZXNofV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJieXUtcmVhZC1tZXNoIixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLG1lc2g6SVsxXT8uZGF0YX19dmFyIGl0PUluO2FzeW5jIGZ1bmN0aW9uIGduKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuTWVzaCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9ImJ5dS13cml0ZS1tZXNoIixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkTWVzaDpJWzFdPy5kYXRhfX12YXIgb3Q9Z247YXN5bmMgZnVuY3Rpb24gQm4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5NZXNofV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJmcmVlLXN1cmZlci1hc2NpaS1yZWFkLW1lc2giLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEsbWVzaDpJWzFdPy5kYXRhfX12YXIgbnQ9Qm47YXN5bmMgZnVuY3Rpb24gQ24oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5NZXNoLGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgQj0iZnJlZS1zdXJmZXItYXNjaWktd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIGF0PUNuO2FzeW5jIGZ1bmN0aW9uIFFuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuTWVzaH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0iZnJlZS1zdXJmZXItYmluYXJ5LXJlYWQtbWVzaCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxtZXNoOklbMV0/LmRhdGF9fXZhciBzdD1Rbjthc3luYyBmdW5jdGlvbiBFbihBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLk1lc2gsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJmcmVlLXN1cmZlci1iaW5hcnktd3JpdGUtbWVzaCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZE1lc2g6SVsxXT8uZGF0YX19dmFyIEl0PUVuO3ZhciBsbj1uZXcgTWFwKFtbInZ0ayIsW0hlLFRlXV0sWyJvYmoiLFtxZSxLZV1dLFsic3RsIixbamUsdmVdXSxbIm9mZiIsW1plLFZlXV0sWyJtejMiLFt6ZSxYZV1dLFsid2FzbSIsW19lLCRlXV0sWyJ3YXNtWnN0ZCIsW0F0LGV0XV0sWyJzd2MiLFt0dCxydF1dLFsiYnl1IixbaXQsb3RdXSxbImZyZWVTdXJmZXJBc2NpaSIsW250LGF0XV0sWyJmcmVlU3VyZmVyQmluYXJ5Iixbc3QsSXRdXV0pLEVBPWxuO2FzeW5jIGZ1bmN0aW9uIHBuKEEsZT17fSl7bGV0IHQ9QS50eXBlPz8iIixpPUEubmFtZT8/QS5wYXRoPz8iZmlsZU5hbWUiLG89VChpKS50b0xvd2VyQ2FzZSgpLHI9ZT8ud2ViV29ya2VyLGE9QTtpZihBIGluc3RhbmNlb2YgQmxvYil7bGV0IHM9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2E9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkocyl9fWxldCBDPW51bGw7aWYodCYmQ0EuaGFzKHQpKUM9Q0EuZ2V0KHQpO2Vsc2UgaWYoWC5oYXMobykpQz1YLmdldChvKTtlbHNlIGZvcihsZXQgcyBvZiBFQS52YWx1ZXMoKSlpZihzWzBdIT09bnVsbCl7bGV0e3dlYldvcmtlcjpJLGNvdWxkUmVhZDpmLG1lc2g6dX09YXdhaXQgc1swXSh7cGF0aDphLnBhdGgsZGF0YTphLmRhdGEuc2xpY2UoKX0se2luZm9ybWF0aW9uT25seTplLmluZm9ybWF0aW9uT25seSx3ZWJXb3JrZXI6cixub0NvcHk6ZT8ubm9Db3B5fSk7aWYocj1JLGYpcmV0dXJue3dlYldvcmtlcjpyLG1lc2g6dX19aWYoIUMpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIElPIGZvcjogIitpKTtsZXQgQj1FQS5nZXQoQylbMF0se3dlYldvcmtlcjpuLGNvdWxkUmVhZDpnLG1lc2g6bH09YXdhaXQgQihhLHtpbmZvcm1hdGlvbk9ubHk6ZS5pbmZvcm1hdGlvbk9ubHksd2ViV29ya2VyOnIsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKHI9biwhZyl0aHJvdyBFcnJvcigiQ291bGQgbm90IHJlYWQ6ICIraSk7cmV0dXJue3dlYldvcmtlcjpyLG1lc2g6bH19dmFyIHVuPXBuO2FzeW5jIGZ1bmN0aW9uIGZuKEEsZSx0PXt9KXtsZXQgaT1BLG89dC5taW1lVHlwZSxyPVQoZSkudG9Mb3dlckNhc2UoKSxhPXQud2ViV29ya2VyLEM9bnVsbDtpZih0eXBlb2YgbzwidSImJkNBLmhhcyhvKSlDPUNBLmdldChvKTtlbHNlIGlmKFguaGFzKHIpKUM9WC5nZXQocik7ZWxzZSBmb3IobGV0IEkgb2YgRUEudmFsdWVzKCkpaWYoSVsxXSE9PW51bGwpe2xldHt3ZWJXb3JrZXI6Zixjb3VsZFdyaXRlOnUsc2VyaWFsaXplZE1lc2g6d309YXdhaXQgSVsxXShpLGUsdCk7aWYoYT1mLHUpcmV0dXJue3dlYldvcmtlcjphLHNlcmlhbGl6ZWRNZXNoOnd9fWlmKCFDKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBJTyBmb3I6ICIrZSk7bGV0IEI9RUEuZ2V0KEMpWzFdLHt3ZWJXb3JrZXI6bixjb3VsZFdyaXRlOmcsc2VyaWFsaXplZE1lc2g6bH09YXdhaXQgQihpLGUsdCk7aWYoYT1uLCFnKXRocm93IEVycm9yKCJDb3VsZCBub3Qgd3JpdGU6ICIrZSk7cmV0dXJue3dlYldvcmtlcjphLHNlcmlhbGl6ZWRNZXNoOmx9fXZhciBjbj1mbjt2YXIgbW49bmV3IE1hcChbXSksbEE9bW47YXN5bmMgZnVuY3Rpb24gZG4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5Qb2ludFNldH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0idnRrLXBvbHktZGF0YS1yZWFkLXBvaW50LXNldCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxwb2ludFNldDpJWzFdPy5kYXRhfX12YXIgZ3Q9ZG47YXN5bmMgZnVuY3Rpb24geW4oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5Qb2ludFNldCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9InZ0ay1wb2x5LWRhdGEtd3JpdGUtcG9pbnQtc2V0IixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkUG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIEJ0PXluO2FzeW5jIGZ1bmN0aW9uIGhuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuUG9pbnRTZXR9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9Im16My1yZWFkLXBvaW50LXNldCIsbj1lPy53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6SVswXT8uZGF0YSxwb2ludFNldDpJWzFdPy5kYXRhfX12YXIgQ3Q9aG47YXN5bmMgZnVuY3Rpb24gd24oQSxlLHQ9e30pe2xldCBpPVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6US5Qb2ludFNldCxkYXRhOkF9XSxyPVtdO3IucHVzaCgiMCIpLHIucHVzaCgiMCIpO2xldCBwPWU7ci5wdXNoKHApLHIucHVzaCgiLS1tZW1vcnktaW8iKSx0LmluZm9ybWF0aW9uT25seSYmdC5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5IiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmci5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpLHQuYmluYXJ5RmlsZVR5cGUmJnQuYmluYXJ5RmlsZVR5cGUmJnIucHVzaCgiLS1iaW5hcnktZmlsZS10eXBlIik7bGV0IEI9Im16My13cml0ZS1wb2ludC1zZXQiLG49dD8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscixpLG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTp0Py5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpJWzBdPy5kYXRhLHNlcmlhbGl6ZWRQb2ludFNldDpJWzFdPy5kYXRhfX12YXIgUXQ9d247YXN5bmMgZnVuY3Rpb24gRG4oQSxlPXt9KXtsZXQgdD1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5Qb2ludFNldH1dLGk9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IHU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2k9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkodSl9fWxldCBvPVt7dHlwZTpRLkJpbmFyeUZpbGUsZGF0YTppfV0scj1bXSxhPWkucGF0aDtyLnB1c2goYSksci5wdXNoKCIwIiksci5wdXNoKCIxIiksci5wdXNoKCItLW1lbW9yeS1pbyIpLGUuaW5mb3JtYXRpb25Pbmx5JiZlLmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKTtsZXQgQj0ib2JqLXJlYWQtcG9pbnQtc2V0IixuPWU/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsdCxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6ZT8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpJWzBdPy5kYXRhLHBvaW50U2V0OklbMV0/LmRhdGF9fXZhciBFdD1Ebjthc3luYyBmdW5jdGlvbiBTbihBLGUsdD17fSl7bGV0IGk9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTpRLlBvaW50U2V0LGRhdGE6QX1dLHI9W107ci5wdXNoKCIwIiksci5wdXNoKCIwIik7bGV0IHA9ZTtyLnB1c2gocCksci5wdXNoKCItLW1lbW9yeS1pbyIpLHQuaW5mb3JtYXRpb25Pbmx5JiZ0LmluZm9ybWF0aW9uT25seSYmci5wdXNoKCItLWluZm9ybWF0aW9uLW9ubHkiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZyLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIiksdC5iaW5hcnlGaWxlVHlwZSYmdC5iaW5hcnlGaWxlVHlwZSYmci5wdXNoKCItLWJpbmFyeS1maWxlLXR5cGUiKTtsZXQgQj0ib2JqLXdyaXRlLXBvaW50LXNldCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZFBvaW50U2V0OklbMV0/LmRhdGF9fXZhciBsdD1Tbjthc3luYyBmdW5jdGlvbiBSbihBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLlBvaW50U2V0fV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJvZmYtcmVhZC1wb2ludC1zZXQiLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEscG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIHB0PVJuO2FzeW5jIGZ1bmN0aW9uIEZuKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuUG9pbnRTZXQsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJvZmYtd3JpdGUtcG9pbnQtc2V0IixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkUG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIHV0PUZuO2FzeW5jIGZ1bmN0aW9uIGtuKEEsZT17fSl7bGV0IHQ9W3t0eXBlOlEuSnNvbkNvbXBhdGlibGV9LHt0eXBlOlEuUG9pbnRTZXR9XSxpPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCB1PWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KHUpfX1sZXQgbz1be3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6aX1dLHI9W10sYT1pLnBhdGg7ci5wdXNoKGEpLHIucHVzaCgiMCIpLHIucHVzaCgiMSIpLHIucHVzaCgiLS1tZW1vcnktaW8iKSxlLmluZm9ybWF0aW9uT25seSYmZS5pbmZvcm1hdGlvbk9ubHkmJnIucHVzaCgiLS1pbmZvcm1hdGlvbi1vbmx5Iik7bGV0IEI9Indhc20tcmVhZC1wb2ludC1zZXQiLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEscG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIGZ0PWtuO2FzeW5jIGZ1bmN0aW9uIFVuKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuUG9pbnRTZXQsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJ3YXNtLXdyaXRlLXBvaW50LXNldCIsbj10Py53ZWJXb3JrZXI7bj09PXZvaWQgMCYmKG49YXdhaXQgeSgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6bCxzdGRlcnI6cyxvdXRwdXRzOkl9PWF3YWl0IG0oQixyLGksbyx7cGlwZWxpbmVCYXNlVXJsOmQoKSxwaXBlbGluZVdvcmtlclVybDpjKCksd2ViV29ya2VyOm4sbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGwhPT0wJiZzIT09IiIpdGhyb3cgbmV3IEVycm9yKHMpO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOklbMF0/LmRhdGEsc2VyaWFsaXplZFBvaW50U2V0OklbMV0/LmRhdGF9fXZhciBjdD1Vbjthc3luYyBmdW5jdGlvbiBibihBLGU9e30pe2xldCB0PVt7dHlwZTpRLkpzb25Db21wYXRpYmxlfSx7dHlwZTpRLlBvaW50U2V0fV0saT1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgdT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheSh1KX19bGV0IG89W3t0eXBlOlEuQmluYXJ5RmlsZSxkYXRhOml9XSxyPVtdLGE9aS5wYXRoO3IucHVzaChhKSxyLnB1c2goIjAiKSxyLnB1c2goIjEiKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksZS5pbmZvcm1hdGlvbk9ubHkmJmUuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpO2xldCBCPSJ3YXNtLXpzdGQtcmVhZC1wb2ludC1zZXQiLG49ZT8ud2ViV29ya2VyO249PT12b2lkIDAmJihuPWF3YWl0IHkoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmwsc3RkZXJyOnMsb3V0cHV0czpJfT1hd2FpdCBtKEIscix0LG8se3BpcGVsaW5lQmFzZVVybDpkKCkscGlwZWxpbmVXb3JrZXJVcmw6YygpLHdlYldvcmtlcjpuLG5vQ29weTplPy5ub0NvcHl9KTtpZihsIT09MCYmcyE9PSIiKXRocm93IG5ldyBFcnJvcihzKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOklbMF0/LmRhdGEscG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIG10PWJuO2FzeW5jIGZ1bmN0aW9uIE5uKEEsZSx0PXt9KXtsZXQgaT1be3R5cGU6US5Kc29uQ29tcGF0aWJsZX0se3R5cGU6US5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOlEuUG9pbnRTZXQsZGF0YTpBfV0scj1bXTtyLnB1c2goIjAiKSxyLnB1c2goIjAiKTtsZXQgcD1lO3IucHVzaChwKSxyLnB1c2goIi0tbWVtb3J5LWlvIiksdC5pbmZvcm1hdGlvbk9ubHkmJnQuaW5mb3JtYXRpb25Pbmx5JiZyLnB1c2goIi0taW5mb3JtYXRpb24tb25seSIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJnIucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKSx0LmJpbmFyeUZpbGVUeXBlJiZ0LmJpbmFyeUZpbGVUeXBlJiZyLnB1c2goIi0tYmluYXJ5LWZpbGUtdHlwZSIpO2xldCBCPSJ3YXNtLXpzdGQtd3JpdGUtcG9pbnQtc2V0IixuPXQ/LndlYldvcmtlcjtuPT09dm9pZCAwJiYobj1hd2FpdCB5KCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpsLHN0ZGVycjpzLG91dHB1dHM6SX09YXdhaXQgbShCLHIsaSxvLHtwaXBlbGluZUJhc2VVcmw6ZCgpLHBpcGVsaW5lV29ya2VyVXJsOmMoKSx3ZWJXb3JrZXI6bixub0NvcHk6dD8ubm9Db3B5fSk7aWYobCE9PTAmJnMhPT0iIil0aHJvdyBuZXcgRXJyb3Iocyk7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkV3JpdGU6SVswXT8uZGF0YSxzZXJpYWxpemVkUG9pbnRTZXQ6SVsxXT8uZGF0YX19dmFyIGR0PU5uO3ZhciBHbj1uZXcgTWFwKFtbInZ0ayIsW2d0LEJ0XV0sWyJtejMiLFtDdCxRdF1dLFsib2JqIixbRXQsbHRdXSxbIm9mZiIsW3B0LHV0XV0sWyJ3YXNtIixbZnQsY3RdXSxbIndhc20tenN0IixbbXQsZHRdXV0pLHBBPUduO2FzeW5jIGZ1bmN0aW9uIE1uKEEsZT17fSl7bGV0IHQ9QS50eXBlPz8iIixpPUEubmFtZT8/QS5wYXRoPz8iZmlsZU5hbWUiLG89VChpKS50b0xvd2VyQ2FzZSgpLHI9ZT8ud2ViV29ya2VyLGE9QTtpZihBIGluc3RhbmNlb2YgQmxvYil7bGV0IHM9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO2E9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkocyl9fWxldCBDPW51bGw7aWYodCYmbEEuaGFzKHQpKUM9bEEuZ2V0KHQpO2Vsc2UgaWYoXy5oYXMobykpQz1fLmdldChvKTtlbHNlIGZvcihsZXQgcyBvZiBwQS52YWx1ZXMoKSlpZihzWzBdIT09bnVsbCl7bGV0e3dlYldvcmtlcjpJLGNvdWxkUmVhZDpmLHBvaW50U2V0OnV9PWF3YWl0IHNbMF0oe3BhdGg6YS5wYXRoLGRhdGE6YS5kYXRhLnNsaWNlKCl9LHtpbmZvcm1hdGlvbk9ubHk6ZS5pbmZvcm1hdGlvbk9ubHksd2ViV29ya2VyOnIsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKHI9SSxmKXJldHVybnt3ZWJXb3JrZXI6cixwb2ludFNldDp1fX1pZighQyl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgSU8gZm9yOiAiK2kpO2xldCBCPXBBLmdldChDKVswXSx7d2ViV29ya2VyOm4sY291bGRSZWFkOmcscG9pbnRTZXQ6bH09YXdhaXQgQihhLHtpbmZvcm1hdGlvbk9ubHk6ZS5pbmZvcm1hdGlvbk9ubHksd2ViV29ya2VyOnIsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKHI9biwhZyl0aHJvdyBFcnJvcigiQ291bGQgbm90IHJlYWQ6ICIraSk7cmV0dXJue3dlYldvcmtlcjpyLHBvaW50U2V0Omx9fXZhciBXbj1Nbjthc3luYyBmdW5jdGlvbiBQbihBLGUsdD17fSl7bGV0IGk9QSxvPXQubWltZVR5cGUscj1UKGUpLnRvTG93ZXJDYXNlKCksYT10LndlYldvcmtlcixDPW51bGw7aWYodHlwZW9mIG88InUiJiZsQS5oYXMobykpQz1sQS5nZXQobyk7ZWxzZSBpZihfLmhhcyhyKSlDPV8uZ2V0KHIpO2Vsc2UgZm9yKGxldCBJIG9mIHBBLnZhbHVlcygpKWlmKElbMV0hPT1udWxsKXtsZXR7d2ViV29ya2VyOmYsY291bGRXcml0ZTp1LHNlcmlhbGl6ZWRQb2ludFNldDp3fT1hd2FpdCBJWzFdKGksZSx0KTtpZihhPWYsdSlyZXR1cm57d2ViV29ya2VyOmEsc2VyaWFsaXplZFBvaW50U2V0Ond9fWlmKCFDKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBJTyBmb3I6ICIrZSk7bGV0IEI9cEEuZ2V0KEMpWzFdLHt3ZWJXb3JrZXI6bixjb3VsZFdyaXRlOmcsc2VyaWFsaXplZFBvaW50U2V0Omx9PWF3YWl0IEIoaSxlLHQpO2lmKGE9biwhZyl0aHJvdyBFcnJvcigiQ291bGQgbm90IHdyaXRlOiAiK2UpO3JldHVybnt3ZWJXb3JrZXI6YSxzZXJpYWxpemVkUG9pbnRTZXQ6bH19dmFyIE9uPVBuO3ZhciBUcj0nZGF0YTp0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD11dGYtOCx2YXIgWWU9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBxZT0oQSx0KT0+e2Zvcih2YXIgZSBpbiB0KVllKEEsZSx7Z2V0OnRbZV0sZW51bWVyYWJsZTohMH0pfTt2YXIgTnQ9U3ltYm9sKCJDb21saW5rLnByb3h5IiksTWU9U3ltYm9sKCJDb21saW5rLmVuZHBvaW50IiksS2U9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLFZBPVN5bWJvbCgiQ29tbGluay5maW5hbGl6ZXIiKSxtQT1TeW1ib2woIkNvbWxpbmsudGhyb3duIiksVXQ9QT0+dHlwZW9mIEE9PSJvYmplY3QiJiZBIT09bnVsbHx8dHlwZW9mIEE9PSJmdW5jdGlvbiIsT2U9e2NhbkhhbmRsZTpBPT5VdChBKSYmQVtOdF0sc2VyaWFsaXplKEEpe2xldHtwb3J0MTp0LHBvcnQyOmV9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gRkEoQSx0KSxbZSxbZV1dfSxkZXNlcmlhbGl6ZShBKXtyZXR1cm4gQS5zdGFydCgpLGplKEEpfX0sVGU9e2NhbkhhbmRsZTpBPT5VdChBKSYmbUEgaW4gQSxzZXJpYWxpemUoe3ZhbHVlOkF9KXtsZXQgdDtyZXR1cm4gQSBpbnN0YW5jZW9mIEVycm9yP3Q9e2lzRXJyb3I6ITAsdmFsdWU6e21lc3NhZ2U6QS5tZXNzYWdlLG5hbWU6QS5uYW1lLHN0YWNrOkEuc3RhY2t9fTp0PXtpc0Vycm9yOiExLHZhbHVlOkF9LFt0LFtdXX0sZGVzZXJpYWxpemUoQSl7dGhyb3cgQS5pc0Vycm9yP09iamVjdC5hc3NpZ24obmV3IEVycm9yKEEudmFsdWUubWVzc2FnZSksQS52YWx1ZSk6QS52YWx1ZX19LEd0PW5ldyBNYXAoW1sicHJveHkiLE9lXSxbInRocm93IixUZV1dKTtmdW5jdGlvbiB4ZShBLHQpe2ZvcihsZXQgZSBvZiBBKWlmKHQ9PT1lfHxlPT09IioifHxlIGluc3RhbmNlb2YgUmVnRXhwJiZlLnRlc3QodCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRkEoQSx0PWdsb2JhbFRoaXMsZT1bIioiXSl7dC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKHIpe2lmKCFyfHwhci5kYXRhKXJldHVybjtpZigheGUoZSxyLm9yaWdpbikpe2NvbnNvbGUud2FybihgSW52YWxpZCBvcmlnaW4gXCcke3Iub3JpZ2lufVwnIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDpnLHR5cGU6byxwYXRoOm59PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LHIuZGF0YSksRT0oci5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcChXKSxCO3RyeXtsZXQgcz1uLnNsaWNlKDAsLTEpLnJlZHVjZSgobCxhKT0+bFthXSxBKSxDPW4ucmVkdWNlKChsLGEpPT5sW2FdLEEpO3N3aXRjaChvKXtjYXNlIkdFVCI6Qj1DO2JyZWFrO2Nhc2UiU0VUIjpzW24uc2xpY2UoLTEpWzBdXT1XKHIuZGF0YS52YWx1ZSksQj0hMDticmVhaztjYXNlIkFQUExZIjpCPUMuYXBwbHkocyxFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCBsPW5ldyBDKC4uLkUpO0I9WGUobCl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTpsLHBvcnQyOmF9PW5ldyBNZXNzYWdlQ2hhbm5lbDtGQShBLGEpLEI9X0EobCxbbF0pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6Qj12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKHMpe0I9e3ZhbHVlOnMsW21BXTowfX1Qcm9taXNlLnJlc29sdmUoQikuY2F0Y2gocz0+KHt2YWx1ZTpzLFttQV06MH0pKS50aGVuKHM9PntsZXRbQyxsXT1TQShzKTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxDKSx7aWQ6Z30pLGwpLG89PT0iUkVMRUFTRSImJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLGt0KHQpLFZBIGluIEEmJnR5cGVvZiBBW1ZBXT09ImZ1bmN0aW9uIiYmQVtWQV0oKSl9KS5jYXRjaChzPT57bGV0W0MsbF09U0Eoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFttQV06MH0pO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEMpLHtpZDpnfSksbCl9KX0pLHQuc3RhcnQmJnQuc3RhcnQoKX1mdW5jdGlvbiBQZShBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBrdChBKXtQZShBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIGplKEEsdCl7cmV0dXJuIFhBKEEsW10sdCl9ZnVuY3Rpb24geUEoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIEx0KEEpe3JldHVybiBfKEEse3R5cGU6IlJFTEVBU0UifSkudGhlbigoKT0+e2t0KEEpfSl9dmFyIHdBPW5ldyBXZWFrTWFwLHBBPSJGaW5hbGl6YXRpb25SZWdpc3RyeSJpbiBnbG9iYWxUaGlzJiZuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoQT0+e2xldCB0PSh3QS5nZXQoQSl8fDApLTE7d0Euc2V0KEEsdCksdD09PTAmJkx0KEEpfSk7ZnVuY3Rpb24gV2UoQSx0KXtsZXQgZT0od0EuZ2V0KHQpfHwwKSsxO3dBLnNldCh0LGUpLHBBJiZwQS5yZWdpc3RlcihBLHQsQSl9ZnVuY3Rpb24gWmUoQSl7cEEmJnBBLnVucmVnaXN0ZXIoQSl9ZnVuY3Rpb24gWEEoQSx0PVtdLGU9ZnVuY3Rpb24oKXt9KXtsZXQgST0hMSxyPW5ldyBQcm94eShlLHtnZXQoZyxvKXtpZih5QShJKSxvPT09S2UpcmV0dXJuKCk9PntaZShyKSxMdChBKSxJPSEwfTtpZihvPT09InRoZW4iKXtpZih0Lmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9PnJ9O2xldCBuPV8oQSx7dHlwZToiR0VUIixwYXRoOnQubWFwKEU9PkUudG9TdHJpbmcoKSl9KS50aGVuKFcpO3JldHVybiBuLnRoZW4uYmluZChuKX1yZXR1cm4gWEEoQSxbLi4udCxvXSl9LHNldChnLG8sbil7eUEoSSk7bGV0W0UsQl09U0Eobik7cmV0dXJuIF8oQSx7dHlwZToiU0VUIixwYXRoOlsuLi50LG9dLm1hcChzPT5zLnRvU3RyaW5nKCkpLHZhbHVlOkV9LEIpLnRoZW4oVyl9LGFwcGx5KGcsbyxuKXt5QShJKTtsZXQgRT10W3QubGVuZ3RoLTFdO2lmKEU9PT1NZSlyZXR1cm4gXyhBLHt0eXBlOiJFTkRQT0lOVCJ9KS50aGVuKFcpO2lmKEU9PT0iYmluZCIpcmV0dXJuIFhBKEEsdC5zbGljZSgwLC0xKSk7bGV0W0Isc109UnQobik7cmV0dXJuIF8oQSx7dHlwZToiQVBQTFkiLHBhdGg6dC5tYXAoQz0+Qy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0scykudGhlbihXKX0sY29uc3RydWN0KGcsbyl7eUEoSSk7bGV0W24sRV09UnQobyk7cmV0dXJuIF8oQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOnQubWFwKEI9PkIudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0Om59LEUpLnRoZW4oVyl9fSk7cmV0dXJuIFdlKHIsQSkscn1mdW5jdGlvbiBWZShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBSdChBKXtsZXQgdD1BLm1hcChTQSk7cmV0dXJuW3QubWFwKGU9PmVbMF0pLFZlKHQubWFwKGU9PmVbMV0pKV19dmFyIGJ0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIF9BKEEsdCl7cmV0dXJuIGJ0LnNldChBLHQpLEF9ZnVuY3Rpb24gWGUoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W050XTohMH0pfWZ1bmN0aW9uIFNBKEEpe2ZvcihsZXRbdCxlXW9mIEd0KWlmKGUuY2FuSGFuZGxlKEEpKXtsZXRbSSxyXT1lLnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6dCx2YWx1ZTpJfSxyXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sYnQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gVyhBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBHdC5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIF8oQSx0LGUpe3JldHVybiBuZXcgUHJvbWlzZShJPT57bGV0IHI9X2UoKTtBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIGcobyl7IW8uZGF0YXx8IW8uZGF0YS5pZHx8by5kYXRhLmlkIT09cnx8KEEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZyksSShvLmRhdGEpKX0pLEEuc3RhcnQmJkEuc3RhcnQoKSxBLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOnJ9LHQpLGUpfSl9ZnVuY3Rpb24gX2UoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfWZ1bmN0aW9uIG9BKEEsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkodCxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6emV9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOnZBfT1PYmplY3Qse2l0ZXJhdG9yOk5BLHRvU3RyaW5nVGFnOll0fT1TeW1ib2wsVUE9KEE9PnQ9PntsZXQgZT16ZS5jYWxsKHQpO3JldHVybiBBW2VdfHwoQVtlXT1lLnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksTD1BPT4oQT1BLnRvTG93ZXJDYXNlKCksdD0+VUEodCk9PT1BKSxHQT1BPT50PT50eXBlb2YgdD09PUEse2lzQXJyYXk6dn09QXJyYXksej1HQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gZ0EoQSl7cmV0dXJuIEEhPT1udWxsJiYheihBKSYmQS5jb25zdHJ1Y3RvciE9PW51bGwmJiF6KEEuY29uc3RydWN0b3IpJiZOKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciBxdD1MKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIHZlKEEpe2xldCB0O3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/dD1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6dD1BJiZBLmJ1ZmZlciYmcXQoQS5idWZmZXIpLHR9dmFyICRlPUdBKCJzdHJpbmciKSxOPUdBKCJmdW5jdGlvbiIpLE10PUdBKCJudW1iZXIiKSxpQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLEFJPUE9PkE9PT0hMHx8QT09PSExLFJBPUE9PntpZihVQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCB0PXZBKEEpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpJiYhKFl0IGluIEEpJiYhKE5BIGluIEEpfSx0ST1BPT57aWYoIWlBKEEpfHxnQShBKSlyZXR1cm4hMTt0cnl7cmV0dXJuIE9iamVjdC5rZXlzKEEpLmxlbmd0aD09PTAmJk9iamVjdC5nZXRQcm90b3R5cGVPZihBKT09PU9iamVjdC5wcm90b3R5cGV9Y2F0Y2h7cmV0dXJuITF9fSxlST1MKCJEYXRlIiksSUk9TCgiRmlsZSIpLHJJPUwoIkJsb2IiKSxvST1MKCJGaWxlTGlzdCIpLGdJPUE9PmlBKEEpJiZOKEEucGlwZSksaUk9QT0+e2xldCB0O3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fE4oQS5hcHBlbmQpJiYoKHQ9VUEoQSkpPT09ImZvcm1kYXRhInx8dD09PSJvYmplY3QiJiZOKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LHNJPUwoIlVSTFNlYXJjaFBhcmFtcyIpLFtuSSxDSSxCSSxhSV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoTCksUUk9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2csIiIpO2Z1bmN0aW9uIHNBKEEsdCx7YWxsT3duS2V5czplPSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IEkscjtpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksdihBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyl0LmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtpZihnQShBKSlyZXR1cm47bGV0IGc9ZT9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxvPWcubGVuZ3RoLG47Zm9yKEk9MDtJPG87SSsrKW49Z1tJXSx0LmNhbGwobnVsbCxBW25dLG4sQSl9fWZ1bmN0aW9uIEt0KEEsdCl7aWYoZ0EoQSkpcmV0dXJuIG51bGw7dD10LnRvTG93ZXJDYXNlKCk7bGV0IGU9T2JqZWN0LmtleXMoQSksST1lLmxlbmd0aCxyO2Zvcig7SS0tID4wOylpZihyPWVbSV0sdD09PXIudG9Mb3dlckNhc2UoKSlyZXR1cm4gcjtyZXR1cm4gbnVsbH12YXIgWj10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLE90PUE9PiF6KEEpJiZBIT09WjtmdW5jdGlvbiB6QSgpe2xldHtjYXNlbGVzczpBLHNraXBVbmRlZmluZWQ6dH09T3QodGhpcykmJnRoaXN8fHt9LGU9e30sST0ocixnKT0+e2xldCBvPUEmJkt0KGUsZyl8fGc7UkEoZVtvXSkmJlJBKHIpP2Vbb109ekEoZVtvXSxyKTpSQShyKT9lW29dPXpBKHt9LHIpOnYocik/ZVtvXT1yLnNsaWNlKCk6KCF0fHwheihyKSkmJihlW29dPXIpfTtmb3IobGV0IHI9MCxnPWFyZ3VtZW50cy5sZW5ndGg7cjxnO3IrKylhcmd1bWVudHNbcl0mJnNBKGFyZ3VtZW50c1tyXSxJKTtyZXR1cm4gZX12YXIgRUk9KEEsdCxlLHthbGxPd25LZXlzOkl9PXt9KT0+KHNBKHQsKHIsZyk9PntlJiZOKHIpP0FbZ109b0EocixlKTpBW2ddPXJ9LHthbGxPd25LZXlzOkl9KSxBKSxjST1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLGZJPShBLHQsZSxJKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsSSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTp0LnByb3RvdHlwZX0pLGUmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsZSl9LGxJPShBLHQsZSxJKT0+e2xldCByLGcsbyxuPXt9O2lmKHQ9dHx8e30sQT09bnVsbClyZXR1cm4gdDtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxnPXIubGVuZ3RoO2ctLSA+MDspbz1yW2ddLCghSXx8SShvLEEsdCkpJiYhbltvXSYmKHRbb109QVtvXSxuW29dPSEwKTtBPWUhPT0hMSYmdkEoQSl9d2hpbGUoQSYmKCFlfHxlKEEsdCkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIHR9LHVJPShBLHQsZSk9PntBPVN0cmluZyhBKSwoZT09PXZvaWQgMHx8ZT5BLmxlbmd0aCkmJihlPUEubGVuZ3RoKSxlLT10Lmxlbmd0aDtsZXQgST1BLmluZGV4T2YodCxlKTtyZXR1cm4gSSE9PS0xJiZJPT09ZX0sZEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHYoQSkpcmV0dXJuIEE7bGV0IHQ9QS5sZW5ndGg7aWYoIU10KHQpKXJldHVybiBudWxsO2xldCBlPW5ldyBBcnJheSh0KTtmb3IoO3QtLSA+MDspZVt0XT1BW3RdO3JldHVybiBlfSxEST0oQT0+dD0+QSYmdCBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmdkEoVWludDhBcnJheSkpLGhJPShBLHQpPT57bGV0IEk9KEEmJkFbTkFdKS5jYWxsKEEpLHI7Zm9yKDsocj1JLm5leHQoKSkmJiFyLmRvbmU7KXtsZXQgZz1yLnZhbHVlO3QuY2FsbChBLGdbMF0sZ1sxXSl9fSx5ST0oQSx0KT0+e2xldCBlLEk9W107Zm9yKDsoZT1BLmV4ZWModCkpIT09bnVsbDspSS5wdXNoKGUpO3JldHVybiBJfSxtST1MKCJIVE1MRm9ybUVsZW1lbnQiKSx3ST1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXFxzXShbYS16XFxkXSkoXFx3KikvZyxmdW5jdGlvbihlLEkscil7cmV0dXJuIEkudG9VcHBlckNhc2UoKStyfSksSHQ9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4odCxlKT0+QS5jYWxsKHQsZSkpKE9iamVjdC5wcm90b3R5cGUpLHBJPUwoIlJlZ0V4cCIpLFR0PShBLHQpPT57bGV0IGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSksST17fTtzQShlLChyLGcpPT57bGV0IG87KG89dChyLGcsQSkpIT09ITEmJihJW2ddPW98fHIpfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxJKX0sU0k9QT0+e1R0KEEsKHQsZSk9PntpZihOKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YoZSkhPT0tMSlyZXR1cm4hMTtsZXQgST1BW2VdO2lmKE4oSSkpe2lmKHQuZW51bWVyYWJsZT0hMSwid3JpdGFibGUiaW4gdCl7dC53cml0YWJsZT0hMTtyZXR1cm59dC5zZXR8fCh0LnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCBcJyIrZSsiXCciKX0pfX0pfSxGST0oQSx0KT0+e2xldCBlPXt9LEk9cj0+e3IuZm9yRWFjaChnPT57ZVtnXT0hMH0pfTtyZXR1cm4gdihBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KHQpKSxlfSxSST0oKT0+e30sTkk9KEEsdCk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOnQ7ZnVuY3Rpb24gVUkoQSl7cmV0dXJuISEoQSYmTihBLmFwcGVuZCkmJkFbWXRdPT09IkZvcm1EYXRhIiYmQVtOQV0pfXZhciBHST1BPT57bGV0IHQ9bmV3IEFycmF5KDEwKSxlPShJLHIpPT57aWYoaUEoSSkpe2lmKHQuaW5kZXhPZihJKT49MClyZXR1cm47aWYoZ0EoSSkpcmV0dXJuIEk7aWYoISgidG9KU09OImluIEkpKXt0W3JdPUk7bGV0IGc9dihJKT9bXTp7fTtyZXR1cm4gc0EoSSwobyxuKT0+e2xldCBFPWUobyxyKzEpOyF6KEUpJiYoZ1tuXT1FKX0pLHRbcl09dm9pZCAwLGd9fXJldHVybiBJfTtyZXR1cm4gZShBLDApfSxrST1MKCJBc3luY0Z1bmN0aW9uIiksTEk9QT0+QSYmKGlBKEEpfHxOKEEpKSYmTihBLnRoZW4pJiZOKEEuY2F0Y2gpLHh0PSgoQSx0KT0+QT9zZXRJbW1lZGlhdGU6dD8oKGUsSSk9PihaLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTpnfSk9PntyPT09WiYmZz09PWUmJkkubGVuZ3RoJiZJLnNoaWZ0KCkoKX0sITEpLHI9PntJLnB1c2gociksWi5wb3N0TWVzc2FnZShlLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTplPT5zZXRUaW1lb3V0KGUpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLE4oWi5wb3N0TWVzc2FnZSkpLGJJPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChaKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fHh0LEpJPUE9PkEhPW51bGwmJk4oQVtOQV0pLGk9e2lzQXJyYXk6dixpc0FycmF5QnVmZmVyOnF0LGlzQnVmZmVyOmdBLGlzRm9ybURhdGE6aUksaXNBcnJheUJ1ZmZlclZpZXc6dmUsaXNTdHJpbmc6JGUsaXNOdW1iZXI6TXQsaXNCb29sZWFuOkFJLGlzT2JqZWN0OmlBLGlzUGxhaW5PYmplY3Q6UkEsaXNFbXB0eU9iamVjdDp0SSxpc1JlYWRhYmxlU3RyZWFtOm5JLGlzUmVxdWVzdDpDSSxpc1Jlc3BvbnNlOkJJLGlzSGVhZGVyczphSSxpc1VuZGVmaW5lZDp6LGlzRGF0ZTplSSxpc0ZpbGU6SUksaXNCbG9iOnJJLGlzUmVnRXhwOnBJLGlzRnVuY3Rpb246Tixpc1N0cmVhbTpnSSxpc1VSTFNlYXJjaFBhcmFtczpzSSxpc1R5cGVkQXJyYXk6REksaXNGaWxlTGlzdDpvSSxmb3JFYWNoOnNBLG1lcmdlOnpBLGV4dGVuZDpFSSx0cmltOlFJLHN0cmlwQk9NOmNJLGluaGVyaXRzOmZJLHRvRmxhdE9iamVjdDpsSSxraW5kT2Y6VUEsa2luZE9mVGVzdDpMLGVuZHNXaXRoOnVJLHRvQXJyYXk6ZEksZm9yRWFjaEVudHJ5OmhJLG1hdGNoQWxsOnlJLGlzSFRNTEZvcm06bUksaGFzT3duUHJvcGVydHk6SHQsaGFzT3duUHJvcDpIdCxyZWR1Y2VEZXNjcmlwdG9yczpUdCxmcmVlemVNZXRob2RzOlNJLHRvT2JqZWN0U2V0OkZJLHRvQ2FtZWxDYXNlOndJLG5vb3A6UkksdG9GaW5pdGVOdW1iZXI6TkksZmluZEtleTpLdCxnbG9iYWw6Wixpc0NvbnRleHREZWZpbmVkOk90LGlzU3BlY0NvbXBsaWFudEZvcm06VUksdG9KU09OT2JqZWN0OkdJLGlzQXN5bmNGbjprSSxpc1RoZW5hYmxlOkxJLHNldEltbWVkaWF0ZTp4dCxhc2FwOmJJLGlzSXRlcmFibGU6Skl9O2Z1bmN0aW9uICQoQSx0LGUsSSxyKXtFcnJvci5jYWxsKHRoaXMpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFjayx0aGlzLm1lc3NhZ2U9QSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLHQmJih0aGlzLmNvZGU9dCksZSYmKHRoaXMuY29uZmlnPWUpLEkmJih0aGlzLnJlcXVlc3Q9SSksciYmKHRoaXMucmVzcG9uc2U9cix0aGlzLnN0YXR1cz1yLnN0YXR1cz9yLnN0YXR1czpudWxsKX1pLmluaGVyaXRzKCQsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzppLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgUHQ9JC5wcm90b3R5cGUsanQ9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57anRbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoJCxqdCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFB0LCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pOyQuZnJvbT0oQSx0LGUsSSxyLGcpPT57bGV0IG89T2JqZWN0LmNyZWF0ZShQdCk7aS50b0ZsYXRPYmplY3QoQSxvLGZ1bmN0aW9uKHMpe3JldHVybiBzIT09RXJyb3IucHJvdG90eXBlfSxCPT5CIT09ImlzQXhpb3NFcnJvciIpO2xldCBuPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPXQ9PW51bGwmJkE/QS5jb2RlOnQ7cmV0dXJuICQuY2FsbChvLG4sRSxlLEksciksQSYmby5jYXVzZT09bnVsbCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sImNhdXNlIix7dmFsdWU6QSxjb25maWd1cmFibGU6ITB9KSxvLm5hbWU9QSYmQS5uYW1lfHwiRXJyb3IiLGcmJk9iamVjdC5hc3NpZ24obyxnKSxvfTt2YXIgdT0kO3ZhciBrQT1udWxsO2Z1bmN0aW9uICRBKEEpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQSl8fGkuaXNBcnJheShBKX1mdW5jdGlvbiBadChBKXtyZXR1cm4gaS5lbmRzV2l0aChBLCJbXSIpP0Euc2xpY2UoMCwtMik6QX1mdW5jdGlvbiBXdChBLHQsZSl7cmV0dXJuIEE/QS5jb25jYXQodCkubWFwKGZ1bmN0aW9uKHIsZyl7cmV0dXJuIHI9WnQociksIWUmJmc/IlsiK3IrIl0iOnJ9KS5qb2luKGU/Ii4iOiIiKTp0fWZ1bmN0aW9uIEhJKEEpe3JldHVybiBpLmlzQXJyYXkoQSkmJiFBLnNvbWUoJEEpfXZhciBZST1pLnRvRmxhdE9iamVjdChpLHt9LG51bGwsZnVuY3Rpb24odCl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KHQpfSk7ZnVuY3Rpb24gcUkoQSx0LGUpe2lmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdCIpO3Q9dHx8bmV3KGtBfHxGb3JtRGF0YSksZT1pLnRvRmxhdE9iamVjdChlLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsZnVuY3Rpb24oZixjKXtyZXR1cm4haS5pc1VuZGVmaW5lZChjW2ZdKX0pO2xldCBJPWUubWV0YVRva2VucyxyPWUudmlzaXRvcnx8cyxnPWUuZG90cyxvPWUuaW5kZXhlcyxFPShlLkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYikmJmkuaXNTcGVjQ29tcGxpYW50Rm9ybSh0KTtpZighaS5pc0Z1bmN0aW9uKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gQihRKXtpZihRPT09bnVsbClyZXR1cm4iIjtpZihpLmlzRGF0ZShRKSlyZXR1cm4gUS50b0lTT1N0cmluZygpO2lmKGkuaXNCb29sZWFuKFEpKXJldHVybiBRLnRvU3RyaW5nKCk7aWYoIUUmJmkuaXNCbG9iKFEpKXRocm93IG5ldyB1KCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBpLmlzQXJyYXlCdWZmZXIoUSl8fGkuaXNUeXBlZEFycmF5KFEpP0UmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtRXSk6QnVmZmVyLmZyb20oUSk6UX1mdW5jdGlvbiBzKFEsZixjKXtsZXQgRD1RO2lmKFEmJiFjJiZ0eXBlb2YgUT09Im9iamVjdCIpe2lmKGkuZW5kc1dpdGgoZiwie30iKSlmPUk/ZjpmLnNsaWNlKDAsLTIpLFE9SlNPTi5zdHJpbmdpZnkoUSk7ZWxzZSBpZihpLmlzQXJyYXkoUSkmJkhJKFEpfHwoaS5pc0ZpbGVMaXN0KFEpfHxpLmVuZHNXaXRoKGYsIltdIikpJiYoRD1pLnRvQXJyYXkoUSkpKXJldHVybiBmPVp0KGYpLEQuZm9yRWFjaChmdW5jdGlvbih5LFIpeyEoaS5pc1VuZGVmaW5lZCh5KXx8eT09PW51bGwpJiZ0LmFwcGVuZChvPT09ITA/V3QoW2ZdLFIsZyk6bz09PW51bGw/ZjpmKyJbXSIsQih5KSl9KSwhMX1yZXR1cm4gJEEoUSk/ITA6KHQuYXBwZW5kKFd0KGMsZixnKSxCKFEpKSwhMSl9bGV0IEM9W10sbD1PYmplY3QuYXNzaWduKFlJLHtkZWZhdWx0VmlzaXRvcjpzLGNvbnZlcnRWYWx1ZTpCLGlzVmlzaXRhYmxlOiRBfSk7ZnVuY3Rpb24gYShRLGYpe2lmKCFpLmlzVW5kZWZpbmVkKFEpKXtpZihDLmluZGV4T2YoUSkhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrZi5qb2luKCIuIikpO0MucHVzaChRKSxpLmZvckVhY2goUSxmdW5jdGlvbihELEYpeyghKGkuaXNVbmRlZmluZWQoRCl8fEQ9PT1udWxsKSYmci5jYWxsKHQsRCxpLmlzU3RyaW5nKEYpP0YudHJpbSgpOkYsZixsKSk9PT0hMCYmYShELGY/Zi5jb25jYXQoRik6W0ZdKX0pLEMucG9wKCl9fWlmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gYShBKSx0fXZhciBUPXFJO2Z1bmN0aW9uIFZ0KEEpe2xldCB0PXsiISI6IiUyNTIxIiwiXCciOiIlMjUyNyIsIigiOiIlMjUyOCIsIikiOiIlMjUyOSIsIn4iOiIlMjU3RSIsIiUyNTIwIjoiKyIsIiUyNTAwIjoiXFwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC9bIVwnKCl+XXwlMjUyMHwlMjUwMC9nLGZ1bmN0aW9uKEkpe3JldHVybiB0W0ldfSl9ZnVuY3Rpb24gWHQoQSx0KXt0aGlzLl9wYWlycz1bXSxBJiZUKEEsdGhpcyx0KX12YXIgX3Q9WHQucHJvdG90eXBlO190LmFwcGVuZD1mdW5jdGlvbih0LGUpe3RoaXMuX3BhaXJzLnB1c2goW3QsZV0pfTtfdC50b1N0cmluZz1mdW5jdGlvbih0KXtsZXQgZT10P2Z1bmN0aW9uKEkpe3JldHVybiB0LmNhbGwodGhpcyxJLFZ0KX06VnQ7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gZShyWzBdKSsiPSIrZShyWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIExBPVh0O2Z1bmN0aW9uIE1JKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTI1M0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjUyNC9nLCIkIikucmVwbGFjZSgvJTI1MkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjUyMC9nLCIrIil9ZnVuY3Rpb24gbkEoQSx0LGUpe2lmKCF0KXJldHVybiBBO2xldCBJPWUmJmUuZW5jb2RlfHxNSTtpLmlzRnVuY3Rpb24oZSkmJihlPXtzZXJpYWxpemU6ZX0pO2xldCByPWUmJmUuc2VyaWFsaXplLGc7aWYocj9nPXIodCxlKTpnPWkuaXNVUkxTZWFyY2hQYXJhbXModCk/dC50b1N0cmluZygpOm5ldyBMQSh0LGUpLnRvU3RyaW5nKEkpLGcpe2xldCBvPUEuaW5kZXhPZigiJTIzIik7byE9PS0xJiYoQT1BLnNsaWNlKDAsbykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK2d9cmV0dXJuIEF9dmFyIEF0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UodCxlLEkpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDp0LHJlamVjdGVkOmUsc3luY2hyb25vdXM6ST9JLnN5bmNocm9ub3VzOiExLHJ1bldoZW46ST9JLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QodCl7dGhpcy5oYW5kbGVyc1t0XSYmKHRoaXMuaGFuZGxlcnNbdF09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaCh0KXtpLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihJKXtJIT09bnVsbCYmdChJKX0pfX0sdHQ9QXQ7dmFyIGJBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgenQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOkxBO3ZhciB2dD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyICR0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIEFlPXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOnp0LEZvcm1EYXRhOnZ0LEJsb2I6JHR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgcnQ9e307cWUocnQse2hhc0Jyb3dzZXJFbnY6KCk9Pkl0LGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+S0ksaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT5PSSxuYXZpZ2F0b3I6KCk9PmV0LG9yaWdpbjooKT0+VEl9KTt2YXIgSXQ9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsZXQ9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLEtJPUl0JiYoIWV0fHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKGV0LnByb2R1Y3QpPDApLE9JPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixUST1JdCYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgaD17Li4ucnQsLi4uQWV9O2Z1bmN0aW9uIG90KEEsdCl7cmV0dXJuIFQoQSxuZXcgaC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbihlLEkscixnKXtyZXR1cm4gaC5pc05vZGUmJmkuaXNCdWZmZXIoZSk/KHRoaXMuYXBwZW5kKEksZS50b1N0cmluZygiYmFzZTY0IikpLCExKTpnLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4udH0pfWZ1bmN0aW9uIHhJKEEpe3JldHVybiBpLm1hdGNoQWxsKC9cXHcrfFxcWyhcXHcqKV0vZyxBKS5tYXAodD0+dFswXT09PSJbXSI/IiI6dFsxXXx8dFswXSl9ZnVuY3Rpb24gUEkoQSl7bGV0IHQ9e30sZT1PYmplY3Qua2V5cyhBKSxJLHI9ZS5sZW5ndGgsZztmb3IoST0wO0k8cjtJKyspZz1lW0ldLHRbZ109QVtnXTtyZXR1cm4gdH1mdW5jdGlvbiBqSShBKXtmdW5jdGlvbiB0KGUsSSxyLGcpe2xldCBvPWVbZysrXTtpZihvPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IG49TnVtYmVyLmlzRmluaXRlKCtvKSxFPWc+PWUubGVuZ3RoO3JldHVybiBvPSFvJiZpLmlzQXJyYXkocik/ci5sZW5ndGg6byxFPyhpLmhhc093blByb3AocixvKT9yW29dPVtyW29dLEldOnJbb109SSwhbik6KCghcltvXXx8IWkuaXNPYmplY3QocltvXSkpJiYocltvXT1bXSksdChlLEkscltvXSxnKSYmaS5pc0FycmF5KHJbb10pJiYocltvXT1QSShyW29dKSksIW4pfWlmKGkuaXNGb3JtRGF0YShBKSYmaS5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCBlPXt9O3JldHVybiBpLmZvckVhY2hFbnRyeShBLChJLHIpPT57dCh4SShJKSxyLGUsMCl9KSxlfXJldHVybiBudWxsfXZhciBKQT1qSTtmdW5jdGlvbiBXSShBLHQsZSl7aWYoaS5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKHR8fEpTT04ucGFyc2UpKEEpLGkudHJpbShBKX1jYXRjaChJKXtpZihJLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IEl9cmV0dXJuKGV8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgZ3Q9e3RyYW5zaXRpb25hbDpiQSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24odCxlKXtsZXQgST1lLmdldENvbnRlbnRUeXBlKCl8fCIiLHI9SS5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsZz1pLmlzT2JqZWN0KHQpO2lmKGcmJmkuaXNIVE1MRm9ybSh0KSYmKHQ9bmV3IEZvcm1EYXRhKHQpKSxpLmlzRm9ybURhdGEodCkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkoSkEodCkpOnQ7aWYoaS5pc0FycmF5QnVmZmVyKHQpfHxpLmlzQnVmZmVyKHQpfHxpLmlzU3RyZWFtKHQpfHxpLmlzRmlsZSh0KXx8aS5pc0Jsb2IodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KHQpKXJldHVybiB0LmJ1ZmZlcjtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKHQpKXJldHVybiBlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLHQudG9TdHJpbmcoKTtsZXQgbjtpZihnKXtpZihJLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBvdCh0LHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKG49aS5pc0ZpbGVMaXN0KHQpKXx8SS5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gVChuP3siZmlsZXNbXSI6dH06dCxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIGd8fHI/KGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxXSSh0KSk6dH1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbih0KXtsZXQgZT10aGlzLnRyYW5zaXRpb25hbHx8Z3QudHJhbnNpdGlvbmFsLEk9ZSYmZS5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKGkuaXNSZXNwb25zZSh0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKHQmJmkuaXNTdHJpbmcodCkmJihJJiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgbz0hKGUmJmUuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0LHRoaXMucGFyc2VSZXZpdmVyKX1jYXRjaChuKXtpZihvKXRocm93IG4ubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKG4sdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpufX1yZXR1cm4gdH1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6aC5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6aC5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMDAmJnQ8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntndC5oZWFkZXJzW0FdPXt9fSk7dmFyIEFBPWd0O3ZhciBaST1pLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLHRlPUE9PntsZXQgdD17fSxlLEkscjtyZXR1cm4gQSYmQS5zcGxpdChgJTBBYCkuZm9yRWFjaChmdW5jdGlvbihvKXtyPW8uaW5kZXhPZigiOiIpLGU9by5zdWJzdHJpbmcoMCxyKS50cmltKCkudG9Mb3dlckNhc2UoKSxJPW8uc3Vic3RyaW5nKHIrMSkudHJpbSgpLCEoIWV8fHRbZV0mJlpJW2VdKSYmKGU9PT0ic2V0LWNvb2tpZSI/dFtlXT90W2VdLnB1c2goSSk6dFtlXT1bSV06dFtlXT10W2VdP3RbZV0rIiwgIitJOkkpfSksdH07dmFyIGVlPVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gQ0EoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBIQShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6aS5pc0FycmF5KEEpP0EubWFwKEhBKTpTdHJpbmcoQSl9ZnVuY3Rpb24gVkkoQSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKSxlPS8oW15cXHMsOz1dKylcXHMqKD86PVxccyooW14sO10rKSk/L2csSTtmb3IoO0k9ZS5leGVjKEEpOyl0W0lbMV1dPUlbMl07cmV0dXJuIHR9dmFyIFhJPUE9Pi9eWy1fYS16QS1aMC05XmB8fiwhJTIzJCUmXCcqKy5dKyQvLnRlc3QoQS50cmltKCkpO2Z1bmN0aW9uIGl0KEEsdCxlLEkscil7aWYoaS5pc0Z1bmN0aW9uKEkpKXJldHVybiBJLmNhbGwodGhpcyx0LGUpO2lmKHImJih0PWUpLCEhaS5pc1N0cmluZyh0KSl7aWYoaS5pc1N0cmluZyhJKSlyZXR1cm4gdC5pbmRleE9mKEkpIT09LTE7aWYoaS5pc1JlZ0V4cChJKSlyZXR1cm4gSS50ZXN0KHQpfX1mdW5jdGlvbiBfSShBKXtyZXR1cm4gQS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxcZF0pKFxcdyopL2csKHQsZSxJKT0+ZS50b1VwcGVyQ2FzZSgpK0kpfWZ1bmN0aW9uIHpJKEEsdCl7bGV0IGU9aS50b0NhbWVsQ2FzZSgiICIrdCk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKEk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJK2Use3ZhbHVlOmZ1bmN0aW9uKHIsZyxvKXtyZXR1cm4gdGhpc1tJXS5jYWxsKHRoaXMsdCxyLGcsbyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIHRBPWNsYXNze2NvbnN0cnVjdG9yKHQpe3QmJnRoaXMuc2V0KHQpfXNldCh0LGUsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBnKG4sRSxCKXtsZXQgcz1DQShFKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IEM9aS5maW5kS2V5KHIscyk7KCFDfHxyW0NdPT09dm9pZCAwfHxCPT09ITB8fEI9PT12b2lkIDAmJnJbQ10hPT0hMSkmJihyW0N8fEVdPUhBKG4pKX1sZXQgbz0obixFKT0+aS5mb3JFYWNoKG4sKEIscyk9PmcoQixzLEUpKTtpZihpLmlzUGxhaW5PYmplY3QodCl8fHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKW8odCxlKTtlbHNlIGlmKGkuaXNTdHJpbmcodCkmJih0PXQudHJpbSgpKSYmIVhJKHQpKW8odGUodCksZSk7ZWxzZSBpZihpLmlzT2JqZWN0KHQpJiZpLmlzSXRlcmFibGUodCkpe2xldCBuPXt9LEUsQjtmb3IobGV0IHMgb2YgdCl7aWYoIWkuaXNBcnJheShzKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7bltCPXNbMF1dPShFPW5bQl0pP2kuaXNBcnJheShFKT9bLi4uRSxzWzFdXTpbRSxzWzFdXTpzWzFdfW8obixlKX1lbHNlIHQhPW51bGwmJmcoZSx0LEkpO3JldHVybiB0aGlzfWdldCh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighZSlyZXR1cm4gcjtpZihlPT09ITApcmV0dXJuIFZJKHIpO2lmKGkuaXNGdW5jdGlvbihlKSlyZXR1cm4gZS5jYWxsKHRoaXMscixJKTtpZihpLmlzUmVnRXhwKGUpKXJldHVybiBlLmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCFlfHxpdCh0aGlzLHRoaXNbSV0sSSxlKSkpfXJldHVybiExfWRlbGV0ZSh0LGUpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBnKG8pe2lmKG89Q0Eobyksbyl7bGV0IG49aS5maW5kS2V5KEksbyk7biYmKCFlfHxpdChJLElbbl0sbixlKSkmJihkZWxldGUgSVtuXSxyPSEwKX19cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2goZyk6Zyh0KSxyfWNsZWFyKHQpe2xldCBlPU9iamVjdC5rZXlzKHRoaXMpLEk9ZS5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBnPWVbSV07KCF0fHxpdCh0aGlzLHRoaXNbZ10sZyx0LCEwKSkmJihkZWxldGUgdGhpc1tnXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUodCl7bGV0IGU9dGhpcyxJPXt9O3JldHVybiBpLmZvckVhY2godGhpcywocixnKT0+e2xldCBvPWkuZmluZEtleShJLGcpO2lmKG8pe2Vbb109SEEociksZGVsZXRlIGVbZ107cmV0dXJufWxldCBuPXQ/X0koZyk6U3RyaW5nKGcpLnRyaW0oKTtuIT09ZyYmZGVsZXRlIGVbZ10sZVtuXT1IQShyKSxJW25dPSEwfSksdGhpc31jb25jYXQoLi4udCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4udCl9dG9KU09OKHQpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYoZVtyXT10JiZpLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksZX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbdCxlXSk9PnQrIjogIitlKS5qb2luKGAlMEFgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHRoaXM/dDpuZXcgdGhpcyh0KX1zdGF0aWMgY29uY2F0KHQsLi4uZSl7bGV0IEk9bmV3IHRoaXModCk7cmV0dXJuIGUuZm9yRWFjaChyPT5JLnNldChyKSksSX1zdGF0aWMgYWNjZXNzb3IodCl7bGV0IEk9KHRoaXNbZWVdPXRoaXNbZWVdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBnKG8pe2xldCBuPUNBKG8pO0lbbl18fCh6SShyLG8pLElbbl09ITApfXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKGcpOmcodCksdGhpc319O3RBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtpLnJlZHVjZURlc2NyaXB0b3JzKHRBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LHQpPT57bGV0IGU9dFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQoSSl7dGhpc1tlXT1JfX19KTtpLmZyZWV6ZU1ldGhvZHModEEpO3ZhciBwPXRBO2Z1bmN0aW9uIEJBKEEsdCl7bGV0IGU9dGhpc3x8QUEsST10fHxlLHI9cC5mcm9tKEkuaGVhZGVycyksZz1JLmRhdGE7cmV0dXJuIGkuZm9yRWFjaChBLGZ1bmN0aW9uKG4pe2c9bi5jYWxsKGUsZyxyLm5vcm1hbGl6ZSgpLHQ/dC5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksZ31mdW5jdGlvbiBhQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIEllKEEsdCxlKXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELHQsZSksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1pLmluaGVyaXRzKEllLHUse19fQ0FOQ0VMX186ITB9KTt2YXIgSD1JZTtmdW5jdGlvbiBRQShBLHQsZSl7bGV0IEk9ZS5jb25maWcudmFsaWRhdGVTdGF0dXM7IWUuc3RhdHVzfHwhSXx8SShlLnN0YXR1cyk/QShlKTp0KG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZS5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihlLnN0YXR1cy8xMDApLTRdLGUuY29uZmlnLGUucmVxdWVzdCxlKSl9ZnVuY3Rpb24gc3QoQSl7bGV0IHQ9L14oWy0rXFx3XXsxLDI1fSkoOj9cXC9cXC98OikvLmV4ZWMoQSk7cmV0dXJuIHQmJnRbMV18fCIifWZ1bmN0aW9uIHZJKEEsdCl7QT1BfHwxMDtsZXQgZT1uZXcgQXJyYXkoQSksST1uZXcgQXJyYXkoQSkscj0wLGc9MCxvO3JldHVybiB0PXQhPT12b2lkIDA/dDoxZTMsZnVuY3Rpb24oRSl7bGV0IEI9RGF0ZS5ub3coKSxzPUlbZ107b3x8KG89QiksZVtyXT1FLElbcl09QjtsZXQgQz1nLGw9MDtmb3IoO0MhPT1yOylsKz1lW0MrK10sQz1DJUE7aWYocj0ocisxKSVBLHI9PT1nJiYoZz0oZysxKSVBKSxCLW88dClyZXR1cm47bGV0IGE9cyYmQi1zO3JldHVybiBhP01hdGgucm91bmQobCoxZTMvYSk6dm9pZCAwfX12YXIgcmU9dkk7ZnVuY3Rpb24gJEkoQSx0KXtsZXQgZT0wLEk9MWUzL3QscixnLG89KEIscz1EYXRlLm5vdygpKT0+e2U9cyxyPW51bGwsZyYmKGNsZWFyVGltZW91dChnKSxnPW51bGwpLEEoLi4uQil9O3JldHVyblsoLi4uQik9PntsZXQgcz1EYXRlLm5vdygpLEM9cy1lO0M+PUk/byhCLHMpOihyPUIsZ3x8KGc9c2V0VGltZW91dCgoKT0+e2c9bnVsbCxvKHIpfSxJLUMpKSl9LCgpPT5yJiZvKHIpXX12YXIgb2U9JEk7dmFyIGVBPShBLHQsZT0zKT0+e2xldCBJPTAscj1yZSg1MCwyNTApO3JldHVybiBvZShnPT57bGV0IG89Zy5sb2FkZWQsbj1nLmxlbmd0aENvbXB1dGFibGU/Zy50b3RhbDp2b2lkIDAsRT1vLUksQj1yKEUpLHM9bzw9bjtJPW87bGV0IEM9e2xvYWRlZDpvLHRvdGFsOm4scHJvZ3Jlc3M6bj9vL246dm9pZCAwLGJ5dGVzOkUscmF0ZTpCfHx2b2lkIDAsZXN0aW1hdGVkOkImJm4mJnM/KG4tbykvQjp2b2lkIDAsZXZlbnQ6ZyxsZW5ndGhDb21wdXRhYmxlOm4hPW51bGwsW3Q/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0EoQyl9LGUpfSxudD0oQSx0KT0+e2xldCBlPUEhPW51bGw7cmV0dXJuW0k9PnRbMF0oe2xlbmd0aENvbXB1dGFibGU6ZSx0b3RhbDpBLGxvYWRlZDpJfSksdFsxXV19LEN0PUE9PiguLi50KT0+aS5hc2FwKCgpPT5BKC4uLnQpKTt2YXIgZ2U9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLHQpPT5lPT4oZT1uZXcgVVJMKGUsaC5vcmlnaW4pLEEucHJvdG9jb2w9PT1lLnByb3RvY29sJiZBLmhvc3Q9PT1lLmhvc3QmJih0fHxBLnBvcnQ9PT1lLnBvcnQpKSkobmV3IFVSTChoLm9yaWdpbiksaC5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoaC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBpZT1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSx0LGUsSSxyLGcpe2xldCBvPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQodCldO2kuaXNOdW1iZXIoZSkmJm8ucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKGUpLnRvR01UU3RyaW5nKCkpLGkuaXNTdHJpbmcoSSkmJm8ucHVzaCgicGF0aD0iK0kpLGkuaXNTdHJpbmcocikmJm8ucHVzaCgiZG9tYWluPSIrciksZz09PSEwJiZvLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1vLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXFxccyopKCIrQSsiKT0oW147XSopIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIEJ0KEEpe3JldHVybi9eKFthLXpdW2EtelxcZCtcXC0uXSo6KT9cXC9cXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIGF0KEEsdCl7cmV0dXJuIHQ/QS5yZXBsYWNlKC9cXC8/XFwvJC8sIiIpKyIvIit0LnJlcGxhY2UoL15cXC8rLywiIik6QX1mdW5jdGlvbiBFQShBLHQsZSl7bGV0IEk9IUJ0KHQpO3JldHVybiBBJiYoSXx8ZT09ITEpP2F0KEEsdCk6dH12YXIgc2U9QT0+QSBpbnN0YW5jZW9mIHA/ey4uLkF9OkE7ZnVuY3Rpb24gYihBLHQpe3Q9dHx8e307bGV0IGU9e307ZnVuY3Rpb24gSShCLHMsQyxsKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KEIpJiZpLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZS5jYWxsKHtjYXNlbGVzczpsfSxCLHMpOmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlKHt9LHMpOmkuaXNBcnJheShzKT9zLnNsaWNlKCk6c31mdW5jdGlvbiByKEIscyxDLGwpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKEIpKXJldHVybiBJKHZvaWQgMCxCLEMsbCl9ZWxzZSByZXR1cm4gSShCLHMsQyxsKX1mdW5jdGlvbiBnKEIscyl7aWYoIWkuaXNVbmRlZmluZWQocykpcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIG8oQixzKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gSSh2b2lkIDAsQil9ZWxzZSByZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gbihCLHMsQyl7aWYoQyBpbiB0KXJldHVybiBJKEIscyk7aWYoQyBpbiBBKXJldHVybiBJKHZvaWQgMCxCKX1sZXQgRT17dXJsOmcsbWV0aG9kOmcsZGF0YTpnLGJhc2VVUkw6byx0cmFuc2Zvcm1SZXF1ZXN0Om8sdHJhbnNmb3JtUmVzcG9uc2U6byxwYXJhbXNTZXJpYWxpemVyOm8sdGltZW91dDpvLHRpbWVvdXRNZXNzYWdlOm8sd2l0aENyZWRlbnRpYWxzOm8sd2l0aFhTUkZUb2tlbjpvLGFkYXB0ZXI6byxyZXNwb25zZVR5cGU6byx4c3JmQ29va2llTmFtZTpvLHhzcmZIZWFkZXJOYW1lOm8sb25VcGxvYWRQcm9ncmVzczpvLG9uRG93bmxvYWRQcm9ncmVzczpvLGRlY29tcHJlc3M6byxtYXhDb250ZW50TGVuZ3RoOm8sbWF4Qm9keUxlbmd0aDpvLGJlZm9yZVJlZGlyZWN0Om8sdHJhbnNwb3J0Om8saHR0cEFnZW50Om8saHR0cHNBZ2VudDpvLGNhbmNlbFRva2VuOm8sc29ja2V0UGF0aDpvLHJlc3BvbnNlRW5jb2Rpbmc6byx2YWxpZGF0ZVN0YXR1czpuLGhlYWRlcnM6KEIscyxDKT0+cihzZShCKSxzZShzKSxDLCEwKX07cmV0dXJuIGkuZm9yRWFjaChPYmplY3Qua2V5cyh7Li4uQSwuLi50fSksZnVuY3Rpb24ocyl7bGV0IEM9RVtzXXx8cixsPUMoQVtzXSx0W3NdLHMpO2kuaXNVbmRlZmluZWQobCkmJkMhPT1ufHwoZVtzXT1sKX0pLGV9dmFyIFlBPUE9PntsZXQgdD1iKHt9LEEpLHtkYXRhOmUsd2l0aFhTUkZUb2tlbjpJLHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6ZyxoZWFkZXJzOm8sYXV0aDpufT10O2lmKHQuaGVhZGVycz1vPXAuZnJvbShvKSx0LnVybD1uQShFQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxuJiZvLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgobi51c2VybmFtZXx8IiIpKyI6Iisobi5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQobi5wYXNzd29yZCkpOiIiKSkpLGkuaXNGb3JtRGF0YShlKSl7aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fGguaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KW8uc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKGkuaXNGdW5jdGlvbihlLmdldEhlYWRlcnMpKXtsZXQgRT1lLmdldEhlYWRlcnMoKSxCPVsiY29udGVudC10eXBlIiwiY29udGVudC1sZW5ndGgiXTtPYmplY3QuZW50cmllcyhFKS5mb3JFYWNoKChbcyxDXSk9PntCLmluY2x1ZGVzKHMudG9Mb3dlckNhc2UoKSkmJm8uc2V0KHMsQyl9KX19aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJihJJiZpLmlzRnVuY3Rpb24oSSkmJihJPUkodCkpLEl8fEkhPT0hMSYmZ2UodC51cmwpKSl7bGV0IEU9ciYmZyYmaWUucmVhZChnKTtFJiZvLnNldChyLEUpfXJldHVybiB0fTt2YXIgQXI9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixuZT1BciYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsSSl7bGV0IHI9WUEoQSksZz1yLmRhdGEsbz1wLmZyb20oci5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOm4sb25VcGxvYWRQcm9ncmVzczpFLG9uRG93bmxvYWRQcm9ncmVzczpCfT1yLHMsQyxsLGEsUTtmdW5jdGlvbiBmKCl7YSYmYSgpLFEmJlEoKSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiZyLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscyl9bGV0IGM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Mub3BlbihyLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHIudXJsLCEwKSxjLnRpbWVvdXQ9ci50aW1lb3V0O2Z1bmN0aW9uIEQoKXtpZighYylyZXR1cm47bGV0IHk9cC5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gYyYmYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksaz17ZGF0YTohbnx8bj09PSJ0ZXh0Inx8bj09PSJqc29uIj9jLnJlc3BvbnNlVGV4dDpjLnJlc3BvbnNlLHN0YXR1czpjLnN0YXR1cyxzdGF0dXNUZXh0OmMuc3RhdHVzVGV4dCxoZWFkZXJzOnksY29uZmlnOkEscmVxdWVzdDpjfTtRQShmdW5jdGlvbihHKXtlKEcpLGYoKX0sZnVuY3Rpb24oRyl7SShHKSxmKCl9LGspLGM9bnVsbH0ib25sb2FkZW5kImluIGM/Yy5vbmxvYWRlbmQ9RDpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFjfHxjLnJlYWR5U3RhdGUhPT00fHxjLnN0YXR1cz09PTAmJiEoYy5yZXNwb25zZVVSTCYmYy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoRCl9LGMub25hYm9ydD1mdW5jdGlvbigpe2MmJihJKG5ldyB1KCJSZXF1ZXN0IGFib3J0ZWQiLHUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbCl9LGMub25lcnJvcj1mdW5jdGlvbihSKXtsZXQgaz1SJiZSLm1lc3NhZ2U/Ui5tZXNzYWdlOiJOZXR3b3JrIEVycm9yIixQPW5ldyB1KGssdS5FUlJfTkVUV09SSyxBLGMpO1AuZXZlbnQ9Unx8bnVsbCxJKFApLGM9bnVsbH0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgUj1yLnRpbWVvdXQ/InRpbWVvdXQgb2YgIityLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsaz1yLnRyYW5zaXRpb25hbHx8YkE7ci50aW1lb3V0RXJyb3JNZXNzYWdlJiYoUj1yLnRpbWVvdXRFcnJvck1lc3NhZ2UpLEkobmV3IHUoUixrLmNsYXJpZnlUaW1lb3V0RXJyb3I/dS5FVElNRURPVVQ6dS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsfSxnPT09dm9pZCAwJiZvLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGMmJmkuZm9yRWFjaChvLnRvSlNPTigpLGZ1bmN0aW9uKFIsayl7Yy5zZXRSZXF1ZXN0SGVhZGVyKGssUil9KSxpLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGMud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLG4mJm4hPT0ianNvbiImJihjLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksQiYmKFtsLFFdPWVBKEIsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGwpKSxFJiZjLnVwbG9hZCYmKFtDLGFdPWVBKEUpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixDKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixhKSksKHIuY2FuY2VsVG9rZW58fHIuc2lnbmFsKSYmKHM9eT0+e2MmJihJKCF5fHx5LnR5cGU/bmV3IEgobnVsbCxBLGMpOnkpLGMuYWJvcnQoKSxjPW51bGwpfSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnN1YnNjcmliZShzKSxyLnNpZ25hbCYmKHIuc2lnbmFsLmFib3J0ZWQ/cygpOnIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixzKSkpO2xldCBGPXN0KHIudXJsKTtpZihGJiZoLnByb3RvY29scy5pbmRleE9mKEYpPT09LTEpe0kobmV3IHUoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrRisiOiIsdS5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1jLnNlbmQoZ3x8bnVsbCl9KX07dmFyIHRyPShBLHQpPT57bGV0e2xlbmd0aDplfT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYodHx8ZSl7bGV0IEk9bmV3IEFib3J0Q29udHJvbGxlcixyLGc9ZnVuY3Rpb24oQil7aWYoIXIpe3I9ITAsbigpO2xldCBzPUIgaW5zdGFuY2VvZiBFcnJvcj9COnRoaXMucmVhc29uO0kuYWJvcnQocyBpbnN0YW5jZW9mIHU/czpuZXcgSChzIGluc3RhbmNlb2YgRXJyb3I/cy5tZXNzYWdlOnMpKX19LG89dCYmc2V0VGltZW91dCgoKT0+e289bnVsbCxnKG5ldyB1KGB0aW1lb3V0ICR7dH0gb2YgbXMgZXhjZWVkZWRgLHUuRVRJTUVET1VUKSl9LHQpLG49KCk9PntBJiYobyYmY2xlYXJUaW1lb3V0KG8pLG89bnVsbCxBLmZvckVhY2goQj0+e0IudW5zdWJzY3JpYmU/Qi51bnN1YnNjcmliZShnKTpCLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixnKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChCPT5CLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixnKSk7bGV0e3NpZ25hbDpFfT1JO3JldHVybiBFLnVuc3Vic2NyaWJlPSgpPT5pLmFzYXAobiksRX19LENlPXRyO3ZhciBlcj1mdW5jdGlvbiooQSx0KXtsZXQgZT1BLmJ5dGVMZW5ndGg7aWYoIXR8fGU8dCl7eWllbGQgQTtyZXR1cm59bGV0IEk9MCxyO2Zvcig7STxlOylyPUkrdCx5aWVsZCBBLnNsaWNlKEksciksST1yfSxJcj1hc3luYyBmdW5jdGlvbiooQSx0KXtmb3IgYXdhaXQobGV0IGUgb2YgcnIoQSkpeWllbGQqZXIoZSx0KX0scnI9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgdD1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOmUsdmFsdWU6SX09YXdhaXQgdC5yZWFkKCk7aWYoZSlicmVhazt5aWVsZCBJfX1maW5hbGx5e2F3YWl0IHQuY2FuY2VsKCl9fSxRdD0oQSx0LGUsSSk9PntsZXQgcj1JcihBLHQpLGc9MCxvLG49RT0+e298fChvPSEwLEkmJkkoRSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKEUpe3RyeXtsZXR7ZG9uZTpCLHZhbHVlOnN9PWF3YWl0IHIubmV4dCgpO2lmKEIpe24oKSxFLmNsb3NlKCk7cmV0dXJufWxldCBDPXMuYnl0ZUxlbmd0aDtpZihlKXtsZXQgbD1nKz1DO2UobCl9RS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHMpKX1jYXRjaChCKXt0aHJvdyBuKEIpLEJ9fSxjYW5jZWwoRSl7cmV0dXJuIG4oRSksci5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIEJlPTY0KjEwMjQse2lzRnVuY3Rpb246cUF9PWksY2U9KCh7ZmV0Y2g6QSxSZXF1ZXN0OnQsUmVzcG9uc2U6ZX0pPT4oe2ZldGNoOkEsUmVxdWVzdDp0LFJlc3BvbnNlOmV9KSkoaS5nbG9iYWwpLHtSZWFkYWJsZVN0cmVhbTphZSxUZXh0RW5jb2RlcjpRZX09aS5nbG9iYWwsRWU9KEEsLi4udCk9Pnt0cnl7cmV0dXJuISFBKC4uLnQpfWNhdGNoe3JldHVybiExfX0sb3I9QT0+e2xldHtmZXRjaDp0LFJlcXVlc3Q6ZSxSZXNwb25zZTpJfT1PYmplY3QuYXNzaWduKHt9LGNlLEEpLHI9cUEodCksZz1xQShlKSxvPXFBKEkpO2lmKCFyKXJldHVybiExO2xldCBuPXImJnFBKGFlKSxFPXImJih0eXBlb2YgUWU9PSJmdW5jdGlvbiI/KFE9PmY9PlEuZW5jb2RlKGYpKShuZXcgUWUpOmFzeW5jIFE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBlKFEpLmFycmF5QnVmZmVyKCkpKSxCPWcmJm4mJkVlKCgpPT57bGV0IFE9ITEsZj1uZXcgZShoLm9yaWdpbix7Ym9keTpuZXcgYWUsbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIFE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gUSYmIWZ9KSxzPW8mJm4mJkVlKCgpPT5pLmlzUmVhZGFibGVTdHJlYW0obmV3IEkoIiIpLmJvZHkpKSxDPXtzdHJlYW06cyYmKFE9PlEuYm9keSl9O3ImJlsidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChRPT57IUNbUV0mJihDW1FdPShmLGMpPT57bGV0IEQ9ZiYmZltRXTtpZihEKXJldHVybiBELmNhbGwoZik7dGhyb3cgbmV3IHUoYFJlc3BvbnNlIHR5cGUgXCcke1F9XCcgaXMgbm90IHN1cHBvcnRlZGAsdS5FUlJfTk9UX1NVUFBPUlQsYyl9KX0pO2xldCBsPWFzeW5jIFE9PntpZihRPT1udWxsKXJldHVybiAwO2lmKGkuaXNCbG9iKFEpKXJldHVybiBRLnNpemU7aWYoaS5pc1NwZWNDb21wbGlhbnRGb3JtKFEpKXJldHVybihhd2FpdCBuZXcgZShoLm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OlF9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcoUSl8fGkuaXNBcnJheUJ1ZmZlcihRKSlyZXR1cm4gUS5ieXRlTGVuZ3RoO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXMoUSkmJihRPVErIiIpLGkuaXNTdHJpbmcoUSkpcmV0dXJuKGF3YWl0IEUoUSkpLmJ5dGVMZW5ndGh9LGE9YXN5bmMoUSxmKT0+e2xldCBjPWkudG9GaW5pdGVOdW1iZXIoUS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiBjPz9sKGYpfTtyZXR1cm4gYXN5bmMgUT0+e2xldHt1cmw6ZixtZXRob2Q6YyxkYXRhOkQsc2lnbmFsOkYsY2FuY2VsVG9rZW46eSx0aW1lb3V0OlIsb25Eb3dubG9hZFByb2dyZXNzOmssb25VcGxvYWRQcm9ncmVzczpQLHJlc3BvbnNlVHlwZTpHLGhlYWRlcnM6V0Esd2l0aENyZWRlbnRpYWxzOmRBPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOm10fT1ZQShRKTtHPUc/KEcrIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBEQT1DZShbRix5JiZ5LnRvQWJvcnRTaWduYWwoKV0sUiksckE9bnVsbCxqPURBJiZEQS51bnN1YnNjcmliZSYmKCgpPT57REEudW5zdWJzY3JpYmUoKX0pLHd0O3RyeXtpZihQJiZCJiZjIT09ImdldCImJmMhPT0iaGVhZCImJih3dD1hd2FpdCBhKFdBLEQpKSE9PTApe2xldCBPPW5ldyBlKGYse21ldGhvZDoiUE9TVCIsYm9keTpELGR1cGxleDoiaGFsZiJ9KSxYO2lmKGkuaXNGb3JtRGF0YShEKSYmKFg9Ty5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZXQS5zZXRDb250ZW50VHlwZShYKSxPLmJvZHkpe2xldFtaQSxoQV09bnQod3QsZUEoQ3QoUCkpKTtEPVF0KE8uYm9keSxCZSxaQSxoQSl9fWkuaXNTdHJpbmcoZEEpfHwoZEE9ZEE/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IEo9ZyYmImNyZWRlbnRpYWxzImluIGUucHJvdG90eXBlLHB0PXsuLi5tdCxzaWduYWw6REEsbWV0aG9kOmMudG9VcHBlckNhc2UoKSxoZWFkZXJzOldBLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6RCxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOko/ZEE6dm9pZCAwfTtyQT1nJiZuZXcgZShmLHB0KTtsZXQgSz1hd2FpdChnP3QockEsbXQpOnQoZixwdCkpLFN0PXMmJihHPT09InN0cmVhbSJ8fEc9PT0icmVzcG9uc2UiKTtpZihzJiYoa3x8U3QmJmopKXtsZXQgTz17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChGdD0+e09bRnRdPUtbRnRdfSk7bGV0IFg9aS50b0Zpbml0ZU51bWJlcihLLmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbWkEsaEFdPWsmJm50KFgsZUEoQ3QoayksITApKXx8W107Sz1uZXcgSShRdChLLmJvZHksQmUsWkEsKCk9PntoQSYmaEEoKSxqJiZqKCl9KSxPKX1HPUd8fCJ0ZXh0IjtsZXQgSGU9YXdhaXQgQ1tpLmZpbmRLZXkoQyxHKXx8InRleHQiXShLLFEpO3JldHVybiFTdCYmaiYmaigpLGF3YWl0IG5ldyBQcm9taXNlKChPLFgpPT57UUEoTyxYLHtkYXRhOkhlLGhlYWRlcnM6cC5mcm9tKEsuaGVhZGVycyksc3RhdHVzOksuc3RhdHVzLHN0YXR1c1RleHQ6Sy5zdGF0dXNUZXh0LGNvbmZpZzpRLHJlcXVlc3Q6ckF9KX0pfWNhdGNoKEope3Rocm93IGomJmooKSxKJiZKLm5hbWU9PT0iVHlwZUVycm9yIiYmL0xvYWQgZmFpbGVkfGZldGNoL2kudGVzdChKLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IHUoIk5ldHdvcmsgRXJyb3IiLHUuRVJSX05FVFdPUkssUSxyQSkse2NhdXNlOkouY2F1c2V8fEp9KTp1LmZyb20oSixKJiZKLmNvZGUsUSxyQSl9fX0sZ3I9bmV3IE1hcCxFdD1BPT57bGV0IHQ9aS5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSxjZSxBP0EuZW52Om51bGwpLHtmZXRjaDplLFJlcXVlc3Q6SSxSZXNwb25zZTpyfT10LGc9W0kscixlXSxvPWcubGVuZ3RoLG49byxFLEIscz1ncjtmb3IoO24tLTspRT1nW25dLEI9cy5nZXQoRSksQj09PXZvaWQgMCYmcy5zZXQoRSxCPW4/bmV3IE1hcDpvcih0KSkscz1CO3JldHVybiBCfSxHZz1FdCgpO3ZhciBjdD17aHR0cDprQSx4aHI6bmUsZmV0Y2g6e2dldDpFdH19O2kuZm9yRWFjaChjdCwoQSx0KT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOnR9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6dH0pfX0pO3ZhciBmZT1BPT5gLSAke0F9YCxzcj1BPT5pLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsTUE9e2dldEFkYXB0ZXI6KEEsdCk9PntBPWkuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOmV9PUEsSSxyLGc9e307Zm9yKGxldCBvPTA7bzxlO28rKyl7ST1BW29dO2xldCBuO2lmKHI9SSwhc3IoSSkmJihyPWN0WyhuPVN0cmluZyhJKSkudG9Mb3dlckNhc2UoKV0scj09PXZvaWQgMCkpdGhyb3cgbmV3IHUoYFVua25vd24gYWRhcHRlciBcJyR7bn1cJ2ApO2lmKHImJihpLmlzRnVuY3Rpb24ocil8fChyPXIuZ2V0KHQpKSkpYnJlYWs7Z1tufHwiJTIzIitvXT1yfWlmKCFyKXtsZXQgbz1PYmplY3QuZW50cmllcyhnKS5tYXAoKFtFLEJdKT0+YGFkYXB0ZXIgJHtFfSBgKyhCPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSksbj1lP28ubGVuZ3RoPjE/YHNpbmNlIDolMEFgK28ubWFwKGZlKS5qb2luKGAlMEFgKToiICIrZmUob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK24sIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiByfSxhZGFwdGVyczpjdH07ZnVuY3Rpb24gZnQoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEgobnVsbCxBKX1mdW5jdGlvbiBLQShBKXtyZXR1cm4gZnQoQSksQS5oZWFkZXJzPXAuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1CQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksTUEuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fEFBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gZnQoQSksSS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1wLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gYUEoSSl8fChmdChBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1wLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIE9BPSIxLjEyLjAiO3ZhciBUQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsdCk9PntUQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKHQ8MT8ibiAiOiIgIikrQX19KTt2YXIgbGU9e307VEEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKHQsZSxJKXtmdW5jdGlvbiByKGcsbyl7cmV0dXJuIltBeGlvcyB2IitPQSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uIFwnIitnKyJcJyIrbysoST8iLiAiK0k6IiIpfXJldHVybihnLG8sbik9PntpZih0PT09ITEpdGhyb3cgbmV3IHUocihvLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKGU/IiBpbiAiK2U6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gZSYmIWxlW29dJiYobGVbb109ITAsY29uc29sZS53YXJuKHIobywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrZSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSx0P3QoZyxvLG4pOiEwfX07VEEuc3BlbGxpbmc9ZnVuY3Rpb24odCl7cmV0dXJuKGUsSSk9Pihjb25zb2xlLndhcm4oYCR7SX0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHt0fWApLCEwKX07ZnVuY3Rpb24gbnIoQSx0LGUpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IEk9T2JqZWN0LmtleXMoQSkscj1JLmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBnPUlbcl0sbz10W2ddO2lmKG8pe2xldCBuPUFbZ10sRT1uPT09dm9pZCAwfHxvKG4sZyxBKTtpZihFIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK2crIiBtdXN0IGJlICIrRSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZihlIT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIrZyx1LkVSUl9CQURfT1BUSU9OKX19dmFyIGNBPXthc3NlcnRPcHRpb25zOm5yLHZhbGlkYXRvcnM6VEF9O3ZhciBZPWNBLnZhbGlkYXRvcnMsSUE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5kZWZhdWx0cz10fHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgdHQscmVzcG9uc2U6bmV3IHR0fX1hc3luYyByZXF1ZXN0KHQsZSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KHQsZSl9Y2F0Y2goSSl7aWYoSSBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgZz1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXFxuLywiIik6IiI7dHJ5e0kuc3RhY2s/ZyYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChnLnJlcGxhY2UoL14uK1xcbi4rXFxuLywiIikpJiYoSS5zdGFjays9YCUwQWArZyk6SS5zdGFjaz1nfWNhdGNoe319dGhyb3cgSX19X3JlcXVlc3QodCxlKXt0eXBlb2YgdD09InN0cmluZyI/KGU9ZXx8e30sZS51cmw9dCk6ZT10fHx7fSxlPWIodGhpcy5kZWZhdWx0cyxlKTtsZXR7dHJhbnNpdGlvbmFsOkkscGFyYW1zU2VyaWFsaXplcjpyLGhlYWRlcnM6Z309ZTtJIT09dm9pZCAwJiZjQS5hc3NlcnRPcHRpb25zKEkse3NpbGVudEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbil9LCExKSxyIT1udWxsJiYoaS5pc0Z1bmN0aW9uKHIpP2UucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOnJ9OmNBLmFzc2VydE9wdGlvbnMocix7ZW5jb2RlOlkuZnVuY3Rpb24sc2VyaWFsaXplOlkuZnVuY3Rpb259LCEwKSksZS5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/ZS5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOmUuYWxsb3dBYnNvbHV0ZVVybHM9ITApLGNBLmFzc2VydE9wdGlvbnMoZSx7YmFzZVVybDpZLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpZLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSxlLm1ldGhvZD0oZS5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgbz1nJiZpLm1lcmdlKGcuY29tbW9uLGdbZS5tZXRob2RdKTtnJiZpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sUT0+e2RlbGV0ZSBnW1FdfSksZS5oZWFkZXJzPXAuY29uY2F0KG8sZyk7bGV0IG49W10sRT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oZil7dHlwZW9mIGYucnVuV2hlbj09ImZ1bmN0aW9uIiYmZi5ydW5XaGVuKGUpPT09ITF8fChFPUUmJmYuc3luY2hyb25vdXMsbi51bnNoaWZ0KGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpKX0pO2xldCBCPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oZil7Qi5wdXNoKGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpfSk7bGV0IHMsQz0wLGw7aWYoIUUpe2xldCBRPVtLQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKFEudW5zaGlmdCguLi5uKSxRLnB1c2goLi4uQiksbD1RLmxlbmd0aCxzPVByb21pc2UucmVzb2x2ZShlKTtDPGw7KXM9cy50aGVuKFFbQysrXSxRW0MrK10pO3JldHVybiBzfWw9bi5sZW5ndGg7bGV0IGE9ZTtmb3IoQz0wO0M8bDspe2xldCBRPW5bQysrXSxmPW5bQysrXTt0cnl7YT1RKGEpfWNhdGNoKGMpe2YuY2FsbCh0aGlzLGMpO2JyZWFrfX10cnl7cz1LQS5jYWxsKHRoaXMsYSl9Y2F0Y2goUSl7cmV0dXJuIFByb21pc2UucmVqZWN0KFEpfWZvcihDPTAsbD1CLmxlbmd0aDtDPGw7KXM9cy50aGVuKEJbQysrXSxCW0MrK10pO3JldHVybiBzfWdldFVyaSh0KXt0PWIodGhpcy5kZWZhdWx0cyx0KTtsZXQgZT1FQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIG5BKGUsdC5wYXJhbXMsdC5wYXJhbXNTZXJpYWxpemVyKX19O2kuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24odCl7SUEucHJvdG90eXBlW3RdPWZ1bmN0aW9uKGUsSSl7cmV0dXJuIHRoaXMucmVxdWVzdChiKEl8fHt9LHttZXRob2Q6dCx1cmw6ZSxkYXRhOihJfHx7fSkuZGF0YX0pKX19KTtpLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKEkpe3JldHVybiBmdW5jdGlvbihnLG8sbil7cmV0dXJuIHRoaXMucmVxdWVzdChiKG58fHt9LHttZXRob2Q6dCxoZWFkZXJzOkk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOmcsZGF0YTpvfSkpfX1JQS5wcm90b3R5cGVbdF09ZSgpLElBLnByb3RvdHlwZVt0KyJGb3JtIl09ZSghMCl9KTt2YXIgZkE9SUE7dmFyIGx0PWNsYXNzIEF7Y29uc3RydWN0b3IodCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCBlO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihnKXtlPWd9KTtsZXQgST10aGlzO3RoaXMucHJvbWlzZS50aGVuKHI9PntpZighSS5fbGlzdGVuZXJzKXJldHVybjtsZXQgZz1JLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7Zy0tID4wOylJLl9saXN0ZW5lcnNbZ10ocik7SS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1yPT57bGV0IGcsbz1uZXcgUHJvbWlzZShuPT57SS5zdWJzY3JpYmUobiksZz1ufSkudGhlbihyKTtyZXR1cm4gby5jYW5jZWw9ZnVuY3Rpb24oKXtJLnVuc3Vic2NyaWJlKGcpfSxvfSx0KGZ1bmN0aW9uKGcsbyxuKXtJLnJlYXNvbnx8KEkucmVhc29uPW5ldyBIKGcsbyxuKSxlKEkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKHQpe2lmKHRoaXMucmVhc29uKXt0KHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKHQpOnRoaXMuX2xpc3RlbmVycz1bdF19dW5zdWJzY3JpYmUodCl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IGU9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YodCk7ZSE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKGUsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCB0PW5ldyBBYm9ydENvbnRyb2xsZXIsZT1JPT57dC5hYm9ydChJKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKGUpLHQuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKGUpLHQuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgdDtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24ocil7dD1yfSksY2FuY2VsOnR9fX0sdWU9bHQ7ZnVuY3Rpb24gdXQoQSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBBLmFwcGx5KG51bGwsZSl9fWZ1bmN0aW9uIGR0KEEpe3JldHVybiBpLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBEdD17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoRHQpLmZvckVhY2goKFtBLHRdKT0+e0R0W3RdPUF9KTt2YXIgZGU9RHQ7ZnVuY3Rpb24gRGUoQSl7bGV0IHQ9bmV3IGZBKEEpLGU9b0EoZkEucHJvdG90eXBlLnJlcXVlc3QsdCk7cmV0dXJuIGkuZXh0ZW5kKGUsZkEucHJvdG90eXBlLHQse2FsbE93bktleXM6ITB9KSxpLmV4dGVuZChlLHQsbnVsbCx7YWxsT3duS2V5czohMH0pLGUuY3JlYXRlPWZ1bmN0aW9uKHIpe3JldHVybiBEZShiKEEscikpfSxlfXZhciBtPURlKEFBKTttLkF4aW9zPWZBO20uQ2FuY2VsZWRFcnJvcj1IO20uQ2FuY2VsVG9rZW49dWU7bS5pc0NhbmNlbD1hQTttLlZFUlNJT049T0E7bS50b0Zvcm1EYXRhPVQ7bS5BeGlvc0Vycm9yPXU7bS5DYW5jZWw9bS5DYW5jZWxlZEVycm9yO20uYWxsPWZ1bmN0aW9uKHQpe3JldHVybiBQcm9taXNlLmFsbCh0KX07bS5zcHJlYWQ9dXQ7bS5pc0F4aW9zRXJyb3I9ZHQ7bS5tZXJnZUNvbmZpZz1iO20uQXhpb3NIZWFkZXJzPXA7bS5mb3JtVG9KU09OPUE9PkpBKGkuaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7bS5nZXRBZGFwdGVyPU1BLmdldEFkYXB0ZXI7bS5IdHRwU3RhdHVzQ29kZT1kZTttLmRlZmF1bHQ9bTt2YXIgeEE9bTt2YXJ7QXhpb3M6UmksQXhpb3NFcnJvcjpOaSxDYW5jZWxlZEVycm9yOlVpLGlzQ2FuY2VsOkdpLENhbmNlbFRva2VuOmtpLFZFUlNJT046TGksYWxsOmJpLENhbmNlbDpKaSxpc0F4aW9zRXJyb3I6SGksc3ByZWFkOllpLHRvRm9ybURhdGE6cWksQXhpb3NIZWFkZXJzOk1pLEh0dHBTdGF0dXNDb2RlOktpLGZvcm1Ub0pTT046T2ksZ2V0QWRhcHRlcjpUaSxtZXJnZUNvbmZpZzp4aX09eEE7dmFyIGxBLE0seXQsaHQ9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXt5dD1uZXcgVWludDhBcnJheShNLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sUEE9Y2xhc3N7aW5pdCgpe3JldHVybiBsQXx8KHR5cGVvZiBmZXRjaDwidSI/bEE9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitoZSkudGhlbih0PT50LmFycmF5QnVmZmVyKCkpLnRoZW4odD0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUodCxodCkpLnRoZW4odGhpcy5faW5pdCk6bEE9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oaGUsImJhc2U2NCIpLGh0KS50aGVuKHRoaXMuX2luaXQpLGxBKX1faW5pdCh0KXtNPXQuaW5zdGFuY2UsaHQuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKHQsZT0wKXtpZighTSl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgST10LmJ5dGVMZW5ndGgscj1NLmV4cG9ydHMubWFsbG9jKEkpO3l0LnNldCh0LHIpLGU9ZXx8TnVtYmVyKE0uZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKHIsSSkpO2xldCBnPU0uZXhwb3J0cy5tYWxsb2MoZSksbz1NLmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKGcsZSxyLEkpLG49eXQuc2xpY2UoZyxnK28pO3JldHVybiBNLmV4cG9ydHMuZnJlZShyKSxNLmV4cG9ydHMuZnJlZShnKSxufX0saGU9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgeWU9bmV3IFBBLG1lPSExO2FzeW5jIGZ1bmN0aW9uIENyKEEsdCxlKXtsZXQgST1udWxsO3R5cGVvZiBBIT0ic3RyaW5nIj9JPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9JPUE6ST1gJHt0fS8ke0F9YCxJLmVuZHNXaXRoKCIuanMiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC0zKSksSS5lbmRzV2l0aCgiLndhc20iKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC01KSksSS5lbmRzV2l0aCgiLndhc20uenN0IikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtOSkpO2xldCByPWAke0l9Lndhc21gLGc9YXdhaXQgeEEuZ2V0KGAke3J9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczplfSk7bWV8fChhd2FpdCB5ZS5pbml0KCksbWU9ITApO2xldCBuPXllLmRlY29kZShuZXcgVWludDhBcnJheShnLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtJfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5Om59KX12YXIgd2U9Q3I7dmFyIGpBPW5ldyBNYXA7YXN5bmMgZnVuY3Rpb24gQnIoQSx0LGUpe2xldCBJPUEscj1BLGc9bnVsbDtyZXR1cm4gdHlwZW9mIEEhPSJzdHJpbmciJiYoST1uZXcgVVJMKEEuaHJlZikscj1JLmhyZWYpLGpBLmhhcyhyKT9nPWF3YWl0IGpBLmdldChyKTooakEuc2V0KHIsd2UoSSx0LGUpKSxnPWF3YWl0IGpBLmdldChyKSksZ312YXIgcGU9QnI7dmFyIGFyPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxkPWFyO3ZhciBRcj17SW50ODoiaW50OCIsVUludDg6InVpbnQ4IixJbnQxNjoiaW50MTYiLFVJbnQxNjoidWludDE2IixJbnQzMjoiaW50MzIiLFVJbnQzMjoidWludDMyIixJbnQ2NDoiaW50NjQiLFVJbnQ2NDoidWludDY0IixTaXplVmFsdWVUeXBlOiJ1aW50NjQiLElkZW50aWZpZXJUeXBlOiJ1aW50NjQiLEluZGV4VmFsdWVUeXBlOiJpbnQ2NCIsT2Zmc2V0VmFsdWVUeXBlOiJpbnQ2NCJ9LFU9UXI7dmFyIEVyPXtGbG9hdDMyOiJmbG9hdDMyIixGbG9hdDY0OiJmbG9hdDY0IixTcGFjZVByZWNpc2lvblR5cGU6ImZsb2F0NjQifSxWPUVyO2Z1bmN0aW9uIGNyKEEsdCl7bGV0IGU9bnVsbDtzd2l0Y2goQSl7Y2FzZSBVLlVJbnQ4OntlPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ4OntlPW5ldyBJbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQxNjp7ZT1uZXcgVWludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDE2OntlPW5ldyBJbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50MzI6e2U9bmV3IFVpbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQzMjp7ZT1uZXcgSW50MzJBcnJheSh0KTticmVha31jYXNlIFUuVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdVaW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdJbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBWLkZsb2F0MzI6e2U9bmV3IEZsb2F0MzJBcnJheSh0KTticmVha31jYXNlIFYuRmxvYXQ2NDp7ZT1uZXcgRmxvYXQ2NEFycmF5KHQpO2JyZWFrfWNhc2UibnVsbCI6e2U9bnVsbDticmVha31jYXNlIG51bGw6e2U9bnVsbDticmVha31kZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZSBpcyBub3Qgc3VwcG9ydGVkIGFzIGEgVHlwZWRBcnJheSIpfXJldHVybiBlfXZhciBxPWNyO3ZhciBSZT10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixTZT1uZXcgVGV4dEVuY29kZXIsRmU9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIGZyKEEsdCl7bGV0IGU9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0sST1BLmZzX29wZW4odCxlLmZsYWdzKSxnPUEuZnNfc3RhdCh0KS5zaXplLG89bnVsbDtSZT9vPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihnKTpvPW5ldyBBcnJheUJ1ZmZlcihnKTtsZXQgbj1uZXcgVWludDhBcnJheShvKTtyZXR1cm4gQS5mc19yZWFkKEksbiwwLGcsMCksQS5mc19jbG9zZShJKSxufWZ1bmN0aW9uIE5lKEEsdCxlKXtsZXQgST1udWxsO1JlP0k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKGUpOkk9bmV3IEFycmF5QnVmZmVyKGUpO2xldCByPW5ldyBVaW50OEFycmF5KEkpLGc9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLHQsZSk7cmV0dXJuIHIuc2V0KGcpLHJ9ZnVuY3Rpb24gdyhBLHQsZSxJKXtsZXQgcj0wO3JldHVybiB0IT09bnVsbCYmKHI9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxJLHQuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkodC5idWZmZXIpLHIpKSxyfWZ1bmN0aW9uIHgoQSx0LGUpe2xldCBJPUpTT04uc3RyaW5naWZ5KHQpLHI9QS5sZW5ndGhCeXRlc1VURjgoSSkrMSxnPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxyXSk7QS5zdHJpbmdUb1VURjgoSSxnLHIpfWZ1bmN0aW9uIFMoQSx0LGUsSSl7bGV0IHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksZz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxvPU5lKEEscixnKTtyZXR1cm4gcShJLG8uYnVmZmVyKX1mdW5jdGlvbiB1QShBLHQpe2xldCBlPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsdF0pLEk9QS5VVEY4VG9TdHJpbmcoZSk7cmV0dXJuIEpTT04ucGFyc2UoSSl9ZnVuY3Rpb24gbHIoQSx0LGUsSSl7SSE9bnVsbCYmSS5sZW5ndGg+MCYmSS5mb3JFYWNoKGZ1bmN0aW9uKEIscyl7c3dpdGNoKEIudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBDPVNlLmVuY29kZShCLmRhdGEuZGF0YSksbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBDPVNlLmVuY29kZShKU09OLnN0cmluZ2lmeShCLmRhdGEpKSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBDPUIuZGF0YS5kYXRhLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBDPUIuZGF0YSxsPXcoQSxDLmRhdGEscywwKSxhPXcoQSxDLmRpcmVjdGlvbixzLDEpLFE9dHlwZW9mIEMubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oQy5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGY9e2ltYWdlVHlwZTpDLmltYWdlVHlwZSxuYW1lOkMubmFtZSxvcmlnaW46Qy5vcmlnaW4sc3BhY2luZzpDLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLHNpemU6Qy5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbWV0YWRhdGE6UX07eChBLGYscyk7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMuY2VsbHMscywxKSxRPXcoQSxDLnBvaW50RGF0YSxzLDIpLGY9dyhBLEMuY2VsbERhdGEscywzKSxjPXttZXNoVHlwZTpDLm1lc2hUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mQ2VsbHM6Qy5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLGNlbGxCdWZmZXJTaXplOkMuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczpDLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczpDLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07eChBLGMscyk7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgQz1CLmRhdGEsbD13KEEsQy5wb2ludHMscywwKSxhPXcoQSxDLnBvaW50RGF0YSxzLDEpLFE9e3BvaW50U2V0VHlwZTpDLnBvaW50U2V0VHlwZSxuYW1lOkMubmFtZSxudW1iZXJPZlBvaW50czpDLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWB9O3goQSxRLHMpO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgQz1CLmRhdGEsbD1bXSxhPTA7Qy5mb3JFYWNoKFE9PntsZXQgZj0iIixjPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEuZml4ZWRQYXJhbWV0ZXJzLHMsYSl9YCxhKz0xLGM9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5wYXJhbWV0ZXJzLHMsYSl9YCxhKz0xKTtsZXQgRD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpjLGZpeGVkUGFyYW1ldGVyczpmfTtsLnB1c2goRCl9KSx4KEEsbCxzKTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMudmVydGljZXMscywxKSxRPXcoQSxDLmxpbmVzLHMsMiksZj13KEEsQy5wb2x5Z29ucyxzLDMpLGM9dyhBLEMudHJpYW5nbGVTdHJpcHMscyw0KSxEPXcoQSxDLnBvaW50RGF0YSxzLDUpLEY9dyhBLEMucG9pbnREYXRhLHMsNikseT17cG9seURhdGFUeXBlOkMucG9seURhdGFUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHZlcnRpY2VzQnVmZmVyU2l6ZTpDLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YCxsaW5lc0J1ZmZlclNpemU6Qy5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOkMucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTpDLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtEfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOkMubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Rn1gfTt4KEEseSxzKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgcj1BLnN0YWNrU2F2ZSgpLGc9MDt0cnl7Zz1BLmNhbGxNYWluKHQuc2xpY2UoKSl9Y2F0Y2goQil7dGhyb3cgdHlwZW9mIEI9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoQikpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksQn1maW5hbGx5e0Euc3RhY2tSZXN0b3JlKHIpfWxldCBvPUEuZ2V0TW9kdWxlU3Rkb3V0KCksbj1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIGUhPW51bGwmJmUubGVuZ3RoPjAmJmc9PT0wJiZlLmZvckVhY2goZnVuY3Rpb24oQixzKXtsZXQgQz1udWxsO3N3aXRjaChCLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGEsUSk7Qz17ZGF0YTpGZS5kZWNvZGUoZil9O2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixhLFEpO0M9SlNPTi5wYXJzZShGZS5kZWNvZGUoZikpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSk7Qz17ZGF0YTpOZShBLGEsUSl9O2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoQi5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOmZyKEEsQi5kYXRhLnBhdGgpfTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBhPXVBKEEscyk7YS5kYXRhPVMoQSxzLDAsYS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksYS5kaXJlY3Rpb249UyhBLHMsMSxWLkZsb2F0NjQpLGEubWV0YWRhdGE9bmV3IE1hcChhLm1ldGFkYXRhKSxDPWE7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOmEucG9pbnRzPXEoYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mQ2VsbHM+MD9hLmNlbGxzPVMoQSxzLDEsYS5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6YS5jZWxscz1xKGEubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscywyLGEubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscywzLGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6YS5jZWxsRGF0YT1xKGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTphLnBvaW50cz1xKGEucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDEsYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBhPXVBKEEscyksUT0wO2EuZm9yRWFjaCgoZixjKT0+e2YudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihhW2NdLmZpeGVkUGFyYW1ldGVycz1TKEEscyxRLFYuRmxvYXQ2NCkpLFErPTEsZi5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKGFbY10ucGFyYW1ldGVycz1TKEEscyxRLGYudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxDPWE7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgYT11QShBLHMpO2EubnVtYmVyT2ZQb2ludHM+MD9hLnBvaW50cz1TKEEscywwLFYuRmxvYXQzMik6YS5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxhLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP2EudmVydGljZXM9UyhBLHMsMSxVLlVJbnQzMik6YS52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksYS5saW5lc0J1ZmZlclNpemU+MD9hLmxpbmVzPVMoQSxzLDIsVS5VSW50MzIpOmEubGluZXM9bmV3IFVpbnQzMkFycmF5LGEucG9seWdvbnNCdWZmZXJTaXplPjA/YS5wb2x5Z29ucz1TKEEscywzLFUuVUludDMyKTphLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxhLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP2EudHJpYW5nbGVTdHJpcHM9UyhBLHMsNCxVLlVJbnQzMik6YS50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsNSxhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscyw2LGEucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOmEuY2VsbERhdGE9cShhLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IGw9e3R5cGU6Qi50eXBlLGRhdGE6Q307RS5wdXNoKGwpfSkse3JldHVyblZhbHVlOmcsc3Rkb3V0Om8sc3RkZXJyOm4sb3V0cHV0czpFfX12YXIgVWU9bHI7dmFyIHVyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBkcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IGU9W107Zm9yKGxldCBJPTA7STxBLmxlbmd0aDtJKyspe2xldCByPURyKEFbSV0sdCk7ciE9PW51bGwmJmUucHVzaChyKX1yZXR1cm4gZX1mdW5jdGlvbiBEcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IGU9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/ZT1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJihlPUEpLHVyJiZlIGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDp0P2U6ZS5zbGljZSgwKX12YXIgR2U9ZHI7ZnVuY3Rpb24gaHIoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIGtlPWhyO2Z1bmN0aW9uIHlyKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBMZT15cjtmdW5jdGlvbiBtcihBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgYmU9bXI7YXN5bmMgZnVuY3Rpb24gd3IoQSx0LGUsSSl7bGV0IHI9VWUoQSx0LGUsSSksZz1bXTtyZXR1cm4gci5vdXRwdXRzLmZvckVhY2goZnVuY3Rpb24obyl7aWYoby50eXBlPT09ZC5CaW5hcnlTdHJlYW18fG8udHlwZT09PWQuQmluYXJ5RmlsZSl7bGV0IG49by5kYXRhO2cucHVzaChuKX1lbHNlIGlmKG8udHlwZT09PWQuSW1hZ2Upe2xldCBuPW8uZGF0YTtnLnB1c2goLi4ua2UobikpfWVsc2UgaWYoby50eXBlPT09ZC5NZXNoKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKC4uLkxlKG4pKX1lbHNlIGlmKG8udHlwZT09PWQuUG9seURhdGEpe2xldCBuPW8uZGF0YTtnLnB1c2goLi4uYmUobikpfX0pLF9BKHIsR2UoZywhMCkpfXZhciBKZT13cjt2YXIgcHI9e3J1blBpcGVsaW5lOmFzeW5jIGZ1bmN0aW9uKEEsdCxlLEkscixnKXtsZXQgbz1hd2FpdCBwZShBLHQsZyk7cmV0dXJuIGF3YWl0IEplKG8sZSxJLHIpfX07RkEocHIpOyUwQS8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246JTBBJTBBY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczolMEEgICgqKiUwQSAgICogQGxpY2Vuc2UlMEEgICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMlMEEgICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wJTBBICAgKiklMEEqLyUwQSc7WXIoVHIpO2V4cG9ydHtpdCBhcyBieXVSZWFkTWVzaCxvdCBhcyBieXVXcml0ZU1lc2gsWCBhcyBleHRlbnNpb25Ub01lc2hJbyxfIGFzIGV4dGVuc2lvblRvUG9pbnRTZXRJbyxudCBhcyBmcmVlU3VyZmVyQXNjaWlSZWFkTWVzaCxhdCBhcyBmcmVlU3VyZmVyQXNjaWlXcml0ZU1lc2gsc3QgYXMgZnJlZVN1cmZlckJpbmFyeVJlYWRNZXNoLEl0IGFzIGZyZWVTdXJmZXJCaW5hcnlXcml0ZU1lc2gseSBhcyBnZXREZWZhdWx0V2ViV29ya2VyLGMgYXMgZ2V0UGlwZWxpbmVXb3JrZXJVcmwsZCBhcyBnZXRQaXBlbGluZXNCYXNlVXJsLHplIGFzIG16M1JlYWRNZXNoLEN0IGFzIG16M1JlYWRQb2ludFNldCxYZSBhcyBtejNXcml0ZU1lc2gsUXQgYXMgbXozV3JpdGVQb2ludFNldCxxZSBhcyBvYmpSZWFkTWVzaCxFdCBhcyBvYmpSZWFkUG9pbnRTZXQsS2UgYXMgb2JqV3JpdGVNZXNoLGx0IGFzIG9ialdyaXRlUG9pbnRTZXQsWmUgYXMgb2ZmUmVhZE1lc2gscHQgYXMgb2ZmUmVhZFBvaW50U2V0LFZlIGFzIG9mZldyaXRlTWVzaCx1dCBhcyBvZmZXcml0ZVBvaW50U2V0LHVuIGFzIHJlYWRNZXNoLFduIGFzIHJlYWRQb2ludFNldCxkQiBhcyBzZXREZWZhdWx0V2ViV29ya2VyLFlyIGFzIHNldFBpcGVsaW5lV29ya2VyVXJsLEVCIGFzIHNldFBpcGVsaW5lc0Jhc2VVcmwsamUgYXMgc3RsUmVhZE1lc2gsdmUgYXMgc3RsV3JpdGVNZXNoLHR0IGFzIHN3Y1JlYWRNZXNoLHJ0IGFzIHN3Y1dyaXRlTWVzaCxIZSBhcyB2dGtQb2x5RGF0YVJlYWRNZXNoLGd0IGFzIHZ0a1BvbHlEYXRhUmVhZFBvaW50U2V0LFRlIGFzIHZ0a1BvbHlEYXRhV3JpdGVNZXNoLEJ0IGFzIHZ0a1BvbHlEYXRhV3JpdGVQb2ludFNldCxfZSBhcyB3YXNtUmVhZE1lc2gsZnQgYXMgd2FzbVJlYWRQb2ludFNldCwkZSBhcyB3YXNtV3JpdGVNZXNoLGN0IGFzIHdhc21Xcml0ZVBvaW50U2V0LEF0IGFzIHdhc21ac3RkUmVhZE1lc2gsbXQgYXMgd2FzbVpzdGRSZWFkUG9pbnRTZXQsZXQgYXMgd2FzbVpzdGRXcml0ZU1lc2gsZHQgYXMgd2FzbVpzdGRXcml0ZVBvaW50U2V0LGNuIGFzIHdyaXRlTWVzaCxPbiBhcyB3cml0ZVBvaW50U2V0fTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCmNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKICAgKikKKi8K""" default_config = JsPackageConfig(default_js_module) js_package = JsPackage(default_config) diff --git a/packages/transform-io/package.json b/packages/transform-io/package.json index 2fd4119b7..1a2f388e6 100644 --- a/packages/transform-io/package.json +++ b/packages/transform-io/package.json @@ -7,6 +7,7 @@ "itk-wasm": { "test-data-hash": "bafkreihranpzszz3q5bwgzsw6olqwh2e726wfnh4qblkjbng44yhqbfin4", "test-data-urls": [ + "https://itk.mypinata.cloud/ipfs/bafybeihn3n52vhja45ds3d4wsch3i77rej2oylorjgevt55w3aqirgxzme/data.tar.gz", "https://bafybeihn3n52vhja45ds3d4wsch3i77rej2oylorjgevt55w3aqirgxzme.ipfs.w3s.link/ipfs/bafybeihn3n52vhja45ds3d4wsch3i77rej2oylorjgevt55w3aqirgxzme/data.tar.gz" ], "emscripten-docker-image": "quay.io/itkwasm/emscripten:latest", diff --git a/packages/transform-io/python/itkwasm-transform-io-emscripten/itkwasm_transform_io_emscripten/js_package.py b/packages/transform-io/python/itkwasm-transform-io-emscripten/itkwasm_transform_io_emscripten/js_package.py index 6e76b75ff..4f9698982 100644 --- a/packages/transform-io/python/itkwasm-transform-io-emscripten/itkwasm_transform_io_emscripten/js_package.py +++ b/packages/transform-io/python/itkwasm-transform-io-emscripten/itkwasm_transform_io_emscripten/js_package.py @@ -3,6 +3,6 @@ from itkwasm.pyodide import JsPackageConfig, JsPackage from ._version import __version__ -default_js_module = """data:text/javascript;base64,dmFyIHRyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgcnI9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSl0cihBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIElyPSIxLjEuMCIsWkE9SXI7dmFyIG9yPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sYj1vcjt2YXIgaXI9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LGo9aXI7ZnVuY3Rpb24gYXIoQSxlKXtsZXQgdD1udWxsO3N3aXRjaChBKXtjYXNlIGIuVUludDg6e3Q9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDg6e3Q9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIGIuVUludDE2Ont0PW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIGIuSW50MTY6e3Q9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLlVJbnQzMjp7dD1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDMyOnt0PW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgYi5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ0ludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIGouRmxvYXQzMjp7dD1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2Ugai5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIE09YXI7ZnVuY3Rpb24gZ3IoQSl7bGV0IGU9QS5zbGljZSgoQS5sYXN0SW5kZXhPZigiLiIpLTE+Pj4wKSsyKTtpZihlLnRvTG93ZXJDYXNlKCk9PT0iZ3oiKXtsZXQgdD1BLnNsaWNlKDAsLTMpLmxhc3RJbmRleE9mKCIuIik7ZT1BLnNsaWNlKCh0LTE+Pj4wKSsyKX1lbHNlIGlmKGUudG9Mb3dlckNhc2UoKT09PSJjYm9yIil7bGV0IHQ9QS5zbGljZSgwLC01KS5sYXN0SW5kZXhPZigiLiIpO2U9QS5zbGljZSgodC0xPj4+MCkrMil9ZWxzZSBpZihlLnRvTG93ZXJDYXNlKCk9PT0ienN0Iil7bGV0IHQ9QS5zbGljZSgwLC0xMCkubGFzdEluZGV4T2YoIi4iKTtlPUEuc2xpY2UoKHQtMT4+PjApKzIpfWVsc2UgaWYoZS50b0xvd2VyQ2FzZSgpPT09InppcCIpe2xldCB0PUEuc2xpY2UoMCwtNCkubGFzdEluZGV4T2YoIi4iKTtlPUEuc2xpY2UoKHQtMT4+PjApKzIpfXJldHVybiBlfXZhciBhQT1ncjt2YXIgbnI9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LHU9bnI7dmFyIFBlPVN5bWJvbCgiQ29tbGluay5wcm94eSIpLHNyPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLHpBPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxWQT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksREE9U3ltYm9sKCJDb21saW5rLnRocm93biIpLEtlPUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLEJyPXtjYW5IYW5kbGU6QT0+S2UoQSkmJkFbUGVdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6ZSxwb3J0Mjp0fT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIGplKEEsZSksW3QsW3RdXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxfQShBKX19LENyPXtjYW5IYW5kbGU6QT0+S2UoQSkmJkRBIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IGU7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTpBfSxbZSxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSxXZT1uZXcgTWFwKFtbInByb3h5IixCcl0sWyJ0aHJvdyIsQ3JdXSk7ZnVuY3Rpb24gUXIoQSxlKXtmb3IobGV0IHQgb2YgQSlpZihlPT09dHx8dD09PSIqInx8dCBpbnN0YW5jZW9mIFJlZ0V4cCYmdC50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGplKEEsZT1nbG9iYWxUaGlzLHQ9WyIqIl0pe2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gcihvKXtpZighb3x8IW8uZGF0YSlyZXR1cm47aWYoIVFyKHQsby5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luICcke28ub3JpZ2lufScgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOkksdHlwZTppLHBhdGg6Q309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sby5kYXRhKSxsPShvLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKHYpLEI7dHJ5e2xldCBhPUMuc2xpY2UoMCwtMSkucmVkdWNlKChmLG4pPT5mW25dLEEpLGc9Qy5yZWR1Y2UoKGYsbik9PmZbbl0sQSk7c3dpdGNoKGkpe2Nhc2UiR0VUIjpCPWc7YnJlYWs7Y2FzZSJTRVQiOmFbQy5zbGljZSgtMSlbMF1dPXYoby5kYXRhLnZhbHVlKSxCPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOkI9Zy5hcHBseShhLGwpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGY9bmV3IGcoLi4ubCk7Qj11cihmKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmYscG9ydDI6bn09bmV3IE1lc3NhZ2VDaGFubmVsO2plKEEsbiksQj0kQShmLFtmXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjpCPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2goYSl7Qj17dmFsdWU6YSxbREFdOjB9fVByb21pc2UucmVzb2x2ZShCKS5jYXRjaChhPT4oe3ZhbHVlOmEsW0RBXTowfSkpLnRoZW4oYT0+e2xldFtnLGZdPUZBKGEpO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcpLHtpZDpJfSksZiksaT09PSJSRUxFQVNFIiYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsciksdmUoZSksVkEgaW4gQSYmdHlwZW9mIEFbVkFdPT0iZnVuY3Rpb24iJiZBW1ZBXSgpKX0pLmNhdGNoKGE9PntsZXRbZyxmXT1GQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW0RBXTowfSk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZykse2lkOkl9KSxmKX0pfSksZS5zdGFydCYmZS5zdGFydCgpfWZ1bmN0aW9uIEVyKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIHZlKEEpe0VyKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gX0EoQSxlKXtyZXR1cm4gWEEoQSxbXSxlKX1mdW5jdGlvbiBoQShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gWmUoQSl7cmV0dXJuIFYoQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57dmUoQSl9KX12YXIgd0E9bmV3IFdlYWtNYXAsUkE9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IGU9KHdBLmdldChBKXx8MCktMTt3QS5zZXQoQSxlKSxlPT09MCYmWmUoQSl9KTtmdW5jdGlvbiBscihBLGUpe2xldCB0PSh3QS5nZXQoZSl8fDApKzE7d0Euc2V0KGUsdCksUkEmJlJBLnJlZ2lzdGVyKEEsZSxBKX1mdW5jdGlvbiBmcihBKXtSQSYmUkEudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBYQShBLGU9W10sdD1mdW5jdGlvbigpe30pe2xldCByPSExLG89bmV3IFByb3h5KHQse2dldChJLGkpe2lmKGhBKHIpLGk9PT16QSlyZXR1cm4oKT0+e2ZyKG8pLFplKEEpLHI9ITB9O2lmKGk9PT0idGhlbiIpe2lmKGUubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+b307bGV0IEM9VihBLHt0eXBlOiJHRVQiLHBhdGg6ZS5tYXAobD0+bC50b1N0cmluZygpKX0pLnRoZW4odik7cmV0dXJuIEMudGhlbi5iaW5kKEMpfXJldHVybiBYQShBLFsuLi5lLGldKX0sc2V0KEksaSxDKXtoQShyKTtsZXRbbCxCXT1GQShDKTtyZXR1cm4gVihBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLmUsaV0ubWFwKGE9PmEudG9TdHJpbmcoKSksdmFsdWU6bH0sQikudGhlbih2KX0sYXBwbHkoSSxpLEMpe2hBKHIpO2xldCBsPWVbZS5sZW5ndGgtMV07aWYobD09PXNyKXJldHVybiBWKEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4odik7aWYobD09PSJiaW5kIilyZXR1cm4gWEEoQSxlLnNsaWNlKDAsLTEpKTtsZXRbQixhXT14ZShDKTtyZXR1cm4gVihBLHt0eXBlOiJBUFBMWSIscGF0aDplLm1hcChnPT5nLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDpCfSxhKS50aGVuKHYpfSxjb25zdHJ1Y3QoSSxpKXtoQShyKTtsZXRbQyxsXT14ZShpKTtyZXR1cm4gVihBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6ZS5tYXAoQj0+Qi50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Q30sbCkudGhlbih2KX19KTtyZXR1cm4gbHIobyxBKSxvfWZ1bmN0aW9uIGNyKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIHhlKEEpe2xldCBlPUEubWFwKEZBKTtyZXR1cm5bZS5tYXAodD0+dFswXSksY3IoZS5tYXAodD0+dFsxXSkpXX12YXIgVmU9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gJEEoQSxlKXtyZXR1cm4gVmUuc2V0KEEsZSksQX1mdW5jdGlvbiB1cihBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbUGVdOiEwfSl9ZnVuY3Rpb24gRkEoQSl7Zm9yKGxldFtlLHRdb2YgV2UpaWYodC5jYW5IYW5kbGUoQSkpe2xldFtyLG9dPXQuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTplLHZhbHVlOnJ9LG9dfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxWZS5nZXQoQSl8fFtdXX1mdW5jdGlvbiB2KEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuIFdlLmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24gVihBLGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKHI9PntsZXQgbz1wcigpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gSShpKXshaS5kYXRhfHwhaS5kYXRhLmlkfHxpLmRhdGEuaWQhPT1vfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixJKSxyKGkuZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6b30sZSksdCl9KX1mdW5jdGlvbiBwcigpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gZ0EoQSxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShlLGFyZ3VtZW50cyl9fXZhcnt0b1N0cmluZzptcn09T2JqZWN0LnByb3RvdHlwZSx7Z2V0UHJvdG90eXBlT2Y6ZWV9PU9iamVjdCxrQT0oQT0+ZT0+e2xldCB0PW1yLmNhbGwoZSk7cmV0dXJuIEFbdF18fChBW3RdPXQuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKSl9KShPYmplY3QuY3JlYXRlKG51bGwpKSxKPUE9PihBPUEudG9Mb3dlckNhc2UoKSxlPT5rQShlKT09PUEpLFVBPUE9PmU9PnR5cGVvZiBlPT09QSx7aXNBcnJheTpYfT1BcnJheSxuQT1VQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gZHIoQSl7cmV0dXJuIEEhPT1udWxsJiYhbkEoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhbkEoQS5jb25zdHJ1Y3RvcikmJkwoQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcikmJkEuY29uc3RydWN0b3IuaXNCdWZmZXIoQSl9dmFyIF9lPUooIkFycmF5QnVmZmVyIik7ZnVuY3Rpb24geXIoQSl7bGV0IGU7cmV0dXJuIHR5cGVvZiBBcnJheUJ1ZmZlcjwidSImJkFycmF5QnVmZmVyLmlzVmlldz9lPUFycmF5QnVmZmVyLmlzVmlldyhBKTplPUEmJkEuYnVmZmVyJiZfZShBLmJ1ZmZlciksZX12YXIgaHI9VUEoInN0cmluZyIpLEw9VUEoImZ1bmN0aW9uIiksJGU9VUEoIm51bWJlciIpLE5BPUE9PkEhPT1udWxsJiZ0eXBlb2YgQT09Im9iamVjdCIsRHI9QT0+QT09PSEwfHxBPT09ITEsU0E9QT0+e2lmKGtBKEEpIT09Im9iamVjdCIpcmV0dXJuITE7bGV0IGU9ZWUoQSk7cmV0dXJuKGU9PT1udWxsfHxlPT09T2JqZWN0LnByb3RvdHlwZXx8T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09bnVsbCkmJiEoU3ltYm9sLnRvU3RyaW5nVGFnIGluIEEpJiYhKFN5bWJvbC5pdGVyYXRvciBpbiBBKX0sd3I9SigiRGF0ZSIpLFJyPUooIkZpbGUiKSxGcj1KKCJCbG9iIiksU3I9SigiRmlsZUxpc3QiKSxrcj1BPT5OQShBKSYmTChBLnBpcGUpLFVyPUE9PntsZXQgZTtyZXR1cm4gQSYmKHR5cGVvZiBGb3JtRGF0YT09ImZ1bmN0aW9uIiYmQSBpbnN0YW5jZW9mIEZvcm1EYXRhfHxMKEEuYXBwZW5kKSYmKChlPWtBKEEpKT09PSJmb3JtZGF0YSJ8fGU9PT0ib2JqZWN0IiYmTChBLnRvU3RyaW5nKSYmQS50b1N0cmluZygpPT09IltvYmplY3QgRm9ybURhdGFdIikpfSxOcj1KKCJVUkxTZWFyY2hQYXJhbXMiKSxbR3IsYnIsTHIsSnJdPVsiUmVhZGFibGVTdHJlYW0iLCJSZXF1ZXN0IiwiUmVzcG9uc2UiLCJIZWFkZXJzIl0ubWFwKEopLFRyPUE9PkEudHJpbT9BLnRyaW0oKTpBLnJlcGxhY2UoL15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLCIiKTtmdW5jdGlvbiBzQShBLGUse2FsbE93bktleXM6dD0hMX09e30pe2lmKEE9PT1udWxsfHx0eXBlb2YgQT4idSIpcmV0dXJuO2xldCByLG87aWYodHlwZW9mIEEhPSJvYmplY3QiJiYoQT1bQV0pLFgoQSkpZm9yKHI9MCxvPUEubGVuZ3RoO3I8bztyKyspZS5jYWxsKG51bGwsQVtyXSxyLEEpO2Vsc2V7bGV0IEk9dD9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxpPUkubGVuZ3RoLEM7Zm9yKHI9MDtyPGk7cisrKUM9SVtyXSxlLmNhbGwobnVsbCxBW0NdLEMsQSl9fWZ1bmN0aW9uIEF0KEEsZSl7ZT1lLnRvTG93ZXJDYXNlKCk7bGV0IHQ9T2JqZWN0LmtleXMoQSkscj10Lmxlbmd0aCxvO2Zvcig7ci0tID4wOylpZihvPXRbcl0sZT09PW8udG9Mb3dlckNhc2UoKSlyZXR1cm4gbztyZXR1cm4gbnVsbH12YXIgWj10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLGV0PUE9PiFuQShBKSYmQSE9PVo7ZnVuY3Rpb24gQWUoKXtsZXR7Y2FzZWxlc3M6QX09ZXQodGhpcykmJnRoaXN8fHt9LGU9e30sdD0ocixvKT0+e2xldCBJPUEmJkF0KGUsbyl8fG87U0EoZVtJXSkmJlNBKHIpP2VbSV09QWUoZVtJXSxyKTpTQShyKT9lW0ldPUFlKHt9LHIpOlgocik/ZVtJXT1yLnNsaWNlKCk6ZVtJXT1yfTtmb3IobGV0IHI9MCxvPWFyZ3VtZW50cy5sZW5ndGg7cjxvO3IrKylhcmd1bWVudHNbcl0mJnNBKGFyZ3VtZW50c1tyXSx0KTtyZXR1cm4gZX12YXIgTXI9KEEsZSx0LHthbGxPd25LZXlzOnJ9PXt9KT0+KHNBKGUsKG8sSSk9Pnt0JiZMKG8pP0FbSV09Z0Eobyx0KTpBW0ldPW99LHthbGxPd25LZXlzOnJ9KSxBKSxIcj1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLFlyPShBLGUsdCxyKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUsciksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTplLnByb3RvdHlwZX0pLHQmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsdCl9LHFyPShBLGUsdCxyKT0+e2xldCBvLEksaSxDPXt9O2lmKGU9ZXx8e30sQT09bnVsbClyZXR1cm4gZTtkb3tmb3Iobz1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxJPW8ubGVuZ3RoO0ktLSA+MDspaT1vW0ldLCghcnx8cihpLEEsZSkpJiYhQ1tpXSYmKGVbaV09QVtpXSxDW2ldPSEwKTtBPXQhPT0hMSYmZWUoQSl9d2hpbGUoQSYmKCF0fHx0KEEsZSkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIGV9LE9yPShBLGUsdCk9PntBPVN0cmluZyhBKSwodD09PXZvaWQgMHx8dD5BLmxlbmd0aCkmJih0PUEubGVuZ3RoKSx0LT1lLmxlbmd0aDtsZXQgcj1BLmluZGV4T2YoZSx0KTtyZXR1cm4gciE9PS0xJiZyPT09dH0seHI9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKFgoQSkpcmV0dXJuIEE7bGV0IGU9QS5sZW5ndGg7aWYoISRlKGUpKXJldHVybiBudWxsO2xldCB0PW5ldyBBcnJheShlKTtmb3IoO2UtLSA+MDspdFtlXT1BW2VdO3JldHVybiB0fSxQcj0oQT0+ZT0+QSYmZSBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmZWUoVWludDhBcnJheSkpLEtyPShBLGUpPT57bGV0IHI9KEEmJkFbU3ltYm9sLml0ZXJhdG9yXSkuY2FsbChBKSxvO2Zvcig7KG89ci5uZXh0KCkpJiYhby5kb25lOyl7bGV0IEk9by52YWx1ZTtlLmNhbGwoQSxJWzBdLElbMV0pfX0sV3I9KEEsZSk9PntsZXQgdCxyPVtdO2Zvcig7KHQ9QS5leGVjKGUpKSE9PW51bGw7KXIucHVzaCh0KTtyZXR1cm4gcn0sanI9SigiSFRNTEZvcm1FbGVtZW50IiksdnI9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xzXShbYS16XGRdKShcdyopL2csZnVuY3Rpb24odCxyLG8pe3JldHVybiByLnRvVXBwZXJDYXNlKCkrb30pLHplPSgoe2hhc093blByb3BlcnR5OkF9KT0+KGUsdCk9PkEuY2FsbChlLHQpKShPYmplY3QucHJvdG90eXBlKSxacj1KKCJSZWdFeHAiKSx0dD0oQSxlKT0+e2xldCB0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLHI9e307c0EodCwobyxJKT0+e2xldCBpOyhpPWUobyxJLEEpKSE9PSExJiYocltJXT1pfHxvKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEscil9LFZyPUE9Pnt0dChBLChlLHQpPT57aWYoTChBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKHQpIT09LTEpcmV0dXJuITE7bGV0IHI9QVt0XTtpZihMKHIpKXtpZihlLmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIGUpe2Uud3JpdGFibGU9ITE7cmV0dXJufWUuc2V0fHwoZS5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgJyIrdCsiJyIpfSl9fSl9LFhyPShBLGUpPT57bGV0IHQ9e30scj1vPT57by5mb3JFYWNoKEk9Pnt0W0ldPSEwfSl9O3JldHVybiBYKEEpP3IoQSk6cihTdHJpbmcoQSkuc3BsaXQoZSkpLHR9LHpyPSgpPT57fSxfcj0oQSxlKT0+QSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKEE9K0EpP0E6ZTtmdW5jdGlvbiAkcihBKXtyZXR1cm4hIShBJiZMKEEuYXBwZW5kKSYmQVtTeW1ib2wudG9TdHJpbmdUYWddPT09IkZvcm1EYXRhIiYmQVtTeW1ib2wuaXRlcmF0b3JdKX12YXIgQUk9QT0+e2xldCBlPW5ldyBBcnJheSgxMCksdD0ocixvKT0+e2lmKE5BKHIpKXtpZihlLmluZGV4T2Yocik+PTApcmV0dXJuO2lmKCEoInRvSlNPTiJpbiByKSl7ZVtvXT1yO2xldCBJPVgocik/W106e307cmV0dXJuIHNBKHIsKGksQyk9PntsZXQgbD10KGksbysxKTshbkEobCkmJihJW0NdPWwpfSksZVtvXT12b2lkIDAsSX19cmV0dXJuIHJ9O3JldHVybiB0KEEsMCl9LGVJPUooIkFzeW5jRnVuY3Rpb24iKSx0ST1BPT5BJiYoTkEoQSl8fEwoQSkpJiZMKEEudGhlbikmJkwoQS5jYXRjaCkscnQ9KChBLGUpPT5BP3NldEltbWVkaWF0ZTplPygodCxyKT0+KFouYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsKHtzb3VyY2U6byxkYXRhOkl9KT0+e289PT1aJiZJPT09dCYmci5sZW5ndGgmJnIuc2hpZnQoKSgpfSwhMSksbz0+e3IucHVzaChvKSxaLnBvc3RNZXNzYWdlKHQsIioiKX0pKShgYXhpb3NAJHtNYXRoLnJhbmRvbSgpfWAsW10pOnQ9PnNldFRpbWVvdXQodCkpKHR5cGVvZiBzZXRJbW1lZGlhdGU9PSJmdW5jdGlvbiIsTChaLnBvc3RNZXNzYWdlKSksckk9dHlwZW9mIHF1ZXVlTWljcm90YXNrPCJ1Ij9xdWV1ZU1pY3JvdGFzay5iaW5kKFopOnR5cGVvZiBwcm9jZXNzPCJ1IiYmcHJvY2Vzcy5uZXh0VGlja3x8cnQscz17aXNBcnJheTpYLGlzQXJyYXlCdWZmZXI6X2UsaXNCdWZmZXI6ZHIsaXNGb3JtRGF0YTpVcixpc0FycmF5QnVmZmVyVmlldzp5cixpc1N0cmluZzpocixpc051bWJlcjokZSxpc0Jvb2xlYW46RHIsaXNPYmplY3Q6TkEsaXNQbGFpbk9iamVjdDpTQSxpc1JlYWRhYmxlU3RyZWFtOkdyLGlzUmVxdWVzdDpicixpc1Jlc3BvbnNlOkxyLGlzSGVhZGVyczpKcixpc1VuZGVmaW5lZDpuQSxpc0RhdGU6d3IsaXNGaWxlOlJyLGlzQmxvYjpGcixpc1JlZ0V4cDpacixpc0Z1bmN0aW9uOkwsaXNTdHJlYW06a3IsaXNVUkxTZWFyY2hQYXJhbXM6TnIsaXNUeXBlZEFycmF5OlByLGlzRmlsZUxpc3Q6U3IsZm9yRWFjaDpzQSxtZXJnZTpBZSxleHRlbmQ6TXIsdHJpbTpUcixzdHJpcEJPTTpIcixpbmhlcml0czpZcix0b0ZsYXRPYmplY3Q6cXIsa2luZE9mOmtBLGtpbmRPZlRlc3Q6SixlbmRzV2l0aDpPcix0b0FycmF5OnhyLGZvckVhY2hFbnRyeTpLcixtYXRjaEFsbDpXcixpc0hUTUxGb3JtOmpyLGhhc093blByb3BlcnR5OnplLGhhc093blByb3A6emUscmVkdWNlRGVzY3JpcHRvcnM6dHQsZnJlZXplTWV0aG9kczpWcix0b09iamVjdFNldDpYcix0b0NhbWVsQ2FzZTp2cixub29wOnpyLHRvRmluaXRlTnVtYmVyOl9yLGZpbmRLZXk6QXQsZ2xvYmFsOlosaXNDb250ZXh0RGVmaW5lZDpldCxpc1NwZWNDb21wbGlhbnRGb3JtOiRyLHRvSlNPTk9iamVjdDpBSSxpc0FzeW5jRm46ZUksaXNUaGVuYWJsZTp0SSxzZXRJbW1lZGlhdGU6cnQsYXNhcDpySX07ZnVuY3Rpb24geihBLGUsdCxyLG8pe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsZSYmKHRoaXMuY29kZT1lKSx0JiYodGhpcy5jb25maWc9dCksciYmKHRoaXMucmVxdWVzdD1yKSxvJiYodGhpcy5yZXNwb25zZT1vLHRoaXMuc3RhdHVzPW8uc3RhdHVzP28uc3RhdHVzOm51bGwpfXMuaW5oZXJpdHMoeixFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOnMudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX0pO3ZhciBJdD16LnByb3RvdHlwZSxvdD17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiLCJFUlJfTk9UX1NVUFBPUlQiLCJFUlJfSU5WQUxJRF9VUkwiXS5mb3JFYWNoKEE9PntvdFtBXT17dmFsdWU6QX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyh6LG90KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSXQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7ei5mcm9tPShBLGUsdCxyLG8sSSk9PntsZXQgaT1PYmplY3QuY3JlYXRlKEl0KTtyZXR1cm4gcy50b0ZsYXRPYmplY3QoQSxpLGZ1bmN0aW9uKGwpe3JldHVybiBsIT09RXJyb3IucHJvdG90eXBlfSxDPT5DIT09ImlzQXhpb3NFcnJvciIpLHouY2FsbChpLEEubWVzc2FnZSxlLHQscixvKSxpLmNhdXNlPUEsaS5uYW1lPUEubmFtZSxJJiZPYmplY3QuYXNzaWduKGksSSksaX07dmFyIHA9ejt2YXIgR0E9bnVsbDtmdW5jdGlvbiB0ZShBKXtyZXR1cm4gcy5pc1BsYWluT2JqZWN0KEEpfHxzLmlzQXJyYXkoQSl9ZnVuY3Rpb24gYXQoQSl7cmV0dXJuIHMuZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gaXQoQSxlLHQpe3JldHVybiBBP0EuY29uY2F0KGUpLm1hcChmdW5jdGlvbihvLEkpe3JldHVybiBvPWF0KG8pLCF0JiZJPyJbIitvKyJdIjpvfSkuam9pbih0PyIuIjoiIik6ZX1mdW5jdGlvbiBJSShBKXtyZXR1cm4gcy5pc0FycmF5KEEpJiYhQS5zb21lKHRlKX12YXIgb0k9cy50b0ZsYXRPYmplY3Qocyx7fSxudWxsLGZ1bmN0aW9uKGUpe3JldHVybi9eaXNbQS1aXS8udGVzdChlKX0pO2Z1bmN0aW9uIGlJKEEsZSx0KXtpZighcy5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTtlPWV8fG5ldyhHQXx8Rm9ybURhdGEpLHQ9cy50b0ZsYXRPYmplY3QodCx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGMsRSl7cmV0dXJuIXMuaXNVbmRlZmluZWQoRVtjXSl9KTtsZXQgcj10Lm1ldGFUb2tlbnMsbz10LnZpc2l0b3J8fGEsST10LmRvdHMsaT10LmluZGV4ZXMsbD0odC5CbG9ifHx0eXBlb2YgQmxvYjwidSImJkJsb2IpJiZzLmlzU3BlY0NvbXBsaWFudEZvcm0oZSk7aWYoIXMuaXNGdW5jdGlvbihvKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIEIoUSl7aWYoUT09PW51bGwpcmV0dXJuIiI7aWYocy5pc0RhdGUoUSkpcmV0dXJuIFEudG9JU09TdHJpbmcoKTtpZighbCYmcy5pc0Jsb2IoUSkpdGhyb3cgbmV3IHAoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIHMuaXNBcnJheUJ1ZmZlcihRKXx8cy5pc1R5cGVkQXJyYXkoUSk/bCYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIGEoUSxjLEUpe2xldCBtPVE7aWYoUSYmIUUmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYocy5lbmRzV2l0aChjLCJ7fSIpKWM9cj9jOmMuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKHMuaXNBcnJheShRKSYmSUkoUSl8fChzLmlzRmlsZUxpc3QoUSl8fHMuZW5kc1dpdGgoYywiW10iKSkmJihtPXMudG9BcnJheShRKSkpcmV0dXJuIGM9YXQoYyksbS5mb3JFYWNoKGZ1bmN0aW9uKEYscSl7IShzLmlzVW5kZWZpbmVkKEYpfHxGPT09bnVsbCkmJmUuYXBwZW5kKGk9PT0hMD9pdChbY10scSxJKTppPT09bnVsbD9jOmMrIltdIixCKEYpKX0pLCExfXJldHVybiB0ZShRKT8hMDooZS5hcHBlbmQoaXQoRSxjLEkpLEIoUSkpLCExKX1sZXQgZz1bXSxmPU9iamVjdC5hc3NpZ24ob0kse2RlZmF1bHRWaXNpdG9yOmEsY29udmVydFZhbHVlOkIsaXNWaXNpdGFibGU6dGV9KTtmdW5jdGlvbiBuKFEsYyl7aWYoIXMuaXNVbmRlZmluZWQoUSkpe2lmKGcuaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitjLmpvaW4oIi4iKSk7Zy5wdXNoKFEpLHMuZm9yRWFjaChRLGZ1bmN0aW9uKG0sUil7KCEocy5pc1VuZGVmaW5lZChtKXx8bT09PW51bGwpJiZvLmNhbGwoZSxtLHMuaXNTdHJpbmcoUik/Ui50cmltKCk6UixjLGYpKT09PSEwJiZuKG0sYz9jLmNvbmNhdChSKTpbUl0pfSksZy5wb3AoKX19aWYoIXMuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBuKEEpLGV9dmFyIFA9aUk7ZnVuY3Rpb24gZ3QoQSl7bGV0IGU9eyIhIjoiJTIxIiwiJyI6IiUyNyIsIigiOiIlMjgiLCIpIjoiJTI5IiwifiI6IiU3RSIsIiUyMCI6IisiLCIlMDAiOiJcMCJ9O3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCl+XXwlMjB8JTAwL2csZnVuY3Rpb24ocil7cmV0dXJuIGVbcl19KX1mdW5jdGlvbiBudChBLGUpe3RoaXMuX3BhaXJzPVtdLEEmJlAoQSx0aGlzLGUpfXZhciBzdD1udC5wcm90b3R5cGU7c3QuYXBwZW5kPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcGFpcnMucHVzaChbZSx0XSl9O3N0LnRvU3RyaW5nPWZ1bmN0aW9uKGUpe2xldCB0PWU/ZnVuY3Rpb24ocil7cmV0dXJuIGUuY2FsbCh0aGlzLHIsZ3QpfTpndDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKG8pe3JldHVybiB0KG9bMF0pKyI9Iit0KG9bMV0pfSwiIikuam9pbigiJiIpfTt2YXIgYkE9bnQ7ZnVuY3Rpb24gYUkoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIikucmVwbGFjZSgvJTVCL2dpLCJbIikucmVwbGFjZSgvJTVEL2dpLCJdIil9ZnVuY3Rpb24gQkEoQSxlLHQpe2lmKCFlKXJldHVybiBBO2xldCByPXQmJnQuZW5jb2RlfHxhSTtzLmlzRnVuY3Rpb24odCkmJih0PXtzZXJpYWxpemU6dH0pO2xldCBvPXQmJnQuc2VyaWFsaXplLEk7aWYobz9JPW8oZSx0KTpJPXMuaXNVUkxTZWFyY2hQYXJhbXMoZSk/ZS50b1N0cmluZygpOm5ldyBiQShlLHQpLnRvU3RyaW5nKHIpLEkpe2xldCBpPUEuaW5kZXhPZigiIyIpO2khPT0tMSYmKEE9QS5zbGljZSgwLGkpKSxBKz0oQS5pbmRleE9mKCI/Iik9PT0tMT8iPyI6IiYiKStJfXJldHVybiBBfXZhciByZT1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMuaGFuZGxlcnM9W119dXNlKGUsdCxyKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOnI/ci5zeW5jaHJvbm91czohMSxydW5XaGVuOnI/ci5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfWVqZWN0KGUpe3RoaXMuaGFuZGxlcnNbZV0mJih0aGlzLmhhbmRsZXJzW2VdPW51bGwpfWNsZWFyKCl7dGhpcy5oYW5kbGVycyYmKHRoaXMuaGFuZGxlcnM9W10pfWZvckVhY2goZSl7cy5mb3JFYWNoKHRoaXMuaGFuZGxlcnMsZnVuY3Rpb24ocil7ciE9PW51bGwmJmUocil9KX19LEllPXJlO3ZhciBMQT17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX07dmFyIEJ0PXR5cGVvZiBVUkxTZWFyY2hQYXJhbXM8InUiP1VSTFNlYXJjaFBhcmFtczpiQTt2YXIgQ3Q9dHlwZW9mIEZvcm1EYXRhPCJ1Ij9Gb3JtRGF0YTpudWxsO3ZhciBRdD10eXBlb2YgQmxvYjwidSI/QmxvYjpudWxsO3ZhciBFdD17aXNCcm93c2VyOiEwLGNsYXNzZXM6e1VSTFNlYXJjaFBhcmFtczpCdCxGb3JtRGF0YTpDdCxCbG9iOlF0fSxwcm90b2NvbHM6WyJodHRwIiwiaHR0cHMiLCJmaWxlIiwiYmxvYiIsInVybCIsImRhdGEiXX07dmFyIGFlPXt9O3JyKGFlLHtoYXNCcm93c2VyRW52OigpPT5pZSxoYXNTdGFuZGFyZEJyb3dzZXJFbnY6KCk9PmdJLGhhc1N0YW5kYXJkQnJvd3NlcldlYldvcmtlckVudjooKT0+bkksbmF2aWdhdG9yOigpPT5vZSxvcmlnaW46KCk9PnNJfSk7dmFyIGllPXR5cGVvZiB3aW5kb3c8InUiJiZ0eXBlb2YgZG9jdW1lbnQ8InUiLG9lPXR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiJiZuYXZpZ2F0b3J8fHZvaWQgMCxnST1pZSYmKCFvZXx8WyJSZWFjdE5hdGl2ZSIsIk5hdGl2ZVNjcmlwdCIsIk5TIl0uaW5kZXhPZihvZS5wcm9kdWN0KTwwKSxuST10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGU8InUiJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnR5cGVvZiBzZWxmLmltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiIsc0k9aWUmJndpbmRvdy5sb2NhdGlvbi5ocmVmfHwiaHR0cDovL2xvY2FsaG9zdCI7dmFyIHc9ey4uLmFlLC4uLkV0fTtmdW5jdGlvbiBnZShBLGUpe3JldHVybiBQKEEsbmV3IHcuY2xhc3Nlcy5VUkxTZWFyY2hQYXJhbXMsT2JqZWN0LmFzc2lnbih7dmlzaXRvcjpmdW5jdGlvbih0LHIsbyxJKXtyZXR1cm4gdy5pc05vZGUmJnMuaXNCdWZmZXIodCk/KHRoaXMuYXBwZW5kKHIsdC50b1N0cmluZygiYmFzZTY0IikpLCExKTpJLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19LGUpKX1mdW5jdGlvbiBCSShBKXtyZXR1cm4gcy5tYXRjaEFsbCgvXHcrfFxbKFx3KildL2csQSkubWFwKGU9PmVbMF09PT0iW10iPyIiOmVbMV18fGVbMF0pfWZ1bmN0aW9uIENJKEEpe2xldCBlPXt9LHQ9T2JqZWN0LmtleXMoQSkscixvPXQubGVuZ3RoLEk7Zm9yKHI9MDtyPG87cisrKUk9dFtyXSxlW0ldPUFbSV07cmV0dXJuIGV9ZnVuY3Rpb24gUUkoQSl7ZnVuY3Rpb24gZSh0LHIsbyxJKXtsZXQgaT10W0krK107aWYoaT09PSJfX3Byb3RvX18iKXJldHVybiEwO2xldCBDPU51bWJlci5pc0Zpbml0ZSgraSksbD1JPj10Lmxlbmd0aDtyZXR1cm4gaT0haSYmcy5pc0FycmF5KG8pP28ubGVuZ3RoOmksbD8ocy5oYXNPd25Qcm9wKG8saSk/b1tpXT1bb1tpXSxyXTpvW2ldPXIsIUMpOigoIW9baV18fCFzLmlzT2JqZWN0KG9baV0pKSYmKG9baV09W10pLGUodCxyLG9baV0sSSkmJnMuaXNBcnJheShvW2ldKSYmKG9baV09Q0kob1tpXSkpLCFDKX1pZihzLmlzRm9ybURhdGEoQSkmJnMuaXNGdW5jdGlvbihBLmVudHJpZXMpKXtsZXQgdD17fTtyZXR1cm4gcy5mb3JFYWNoRW50cnkoQSwocixvKT0+e2UoQkkociksbyx0LDApfSksdH1yZXR1cm4gbnVsbH12YXIgSkE9UUk7ZnVuY3Rpb24gRUkoQSxlLHQpe2lmKHMuaXNTdHJpbmcoQSkpdHJ5e3JldHVybihlfHxKU09OLnBhcnNlKShBKSxzLnRyaW0oQSl9Y2F0Y2gocil7aWYoci5uYW1lIT09IlN5bnRheEVycm9yIil0aHJvdyByfXJldHVybih0fHxKU09OLnN0cmluZ2lmeSkoQSl9dmFyIG5lPXt0cmFuc2l0aW9uYWw6TEEsYWRhcHRlcjpbInhociIsImh0dHAiLCJmZXRjaCJdLHRyYW5zZm9ybVJlcXVlc3Q6W2Z1bmN0aW9uKGUsdCl7bGV0IHI9dC5nZXRDb250ZW50VHlwZSgpfHwiIixvPXIuaW5kZXhPZigiYXBwbGljYXRpb24vanNvbiIpPi0xLEk9cy5pc09iamVjdChlKTtpZihJJiZzLmlzSFRNTEZvcm0oZSkmJihlPW5ldyBGb3JtRGF0YShlKSkscy5pc0Zvcm1EYXRhKGUpKXJldHVybiBvP0pTT04uc3RyaW5naWZ5KEpBKGUpKTplO2lmKHMuaXNBcnJheUJ1ZmZlcihlKXx8cy5pc0J1ZmZlcihlKXx8cy5pc1N0cmVhbShlKXx8cy5pc0ZpbGUoZSl8fHMuaXNCbG9iKGUpfHxzLmlzUmVhZGFibGVTdHJlYW0oZSkpcmV0dXJuIGU7aWYocy5pc0FycmF5QnVmZmVyVmlldyhlKSlyZXR1cm4gZS5idWZmZXI7aWYocy5pc1VSTFNlYXJjaFBhcmFtcyhlKSlyZXR1cm4gdC5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiLCExKSxlLnRvU3RyaW5nKCk7bGV0IEM7aWYoSSl7aWYoci5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKT4tMSlyZXR1cm4gZ2UoZSx0aGlzLmZvcm1TZXJpYWxpemVyKS50b1N0cmluZygpO2lmKChDPXMuaXNGaWxlTGlzdChlKSl8fHIuaW5kZXhPZigibXVsdGlwYXJ0L2Zvcm0tZGF0YSIpPi0xKXtsZXQgbD10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIFAoQz97ImZpbGVzW10iOmV9OmUsbCYmbmV3IGwsdGhpcy5mb3JtU2VyaWFsaXplcil9fXJldHVybiBJfHxvPyh0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi9qc29uIiwhMSksRUkoZSkpOmV9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oZSl7bGV0IHQ9dGhpcy50cmFuc2l0aW9uYWx8fG5lLnRyYW5zaXRpb25hbCxyPXQmJnQuZm9yY2VkSlNPTlBhcnNpbmcsbz10aGlzLnJlc3BvbnNlVHlwZT09PSJqc29uIjtpZihzLmlzUmVzcG9uc2UoZSl8fHMuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihlJiZzLmlzU3RyaW5nKGUpJiYociYmIXRoaXMucmVzcG9uc2VUeXBlfHxvKSl7bGV0IGk9ISh0JiZ0LnNpbGVudEpTT05QYXJzaW5nKSYmbzt0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSl9Y2F0Y2goQyl7aWYoaSl0aHJvdyBDLm5hbWU9PT0iU3ludGF4RXJyb3IiP3AuZnJvbShDLHAuRVJSX0JBRF9SRVNQT05TRSx0aGlzLG51bGwsdGhpcy5yZXNwb25zZSk6Q319cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOncuY2xhc3Nlcy5Gb3JtRGF0YSxCbG9iOncuY2xhc3Nlcy5CbG9ifSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiIsIkNvbnRlbnQtVHlwZSI6dm9pZCAwfX19O3MuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giXSxBPT57bmUuaGVhZGVyc1tBXT17fX0pO3ZhciBfPW5lO3ZhciBsST1zLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLGx0PUE9PntsZXQgZT17fSx0LHIsbztyZXR1cm4gQSYmQS5zcGxpdChgCmApLmZvckVhY2goZnVuY3Rpb24oaSl7bz1pLmluZGV4T2YoIjoiKSx0PWkuc3Vic3RyaW5nKDAsbykudHJpbSgpLnRvTG93ZXJDYXNlKCkscj1pLnN1YnN0cmluZyhvKzEpLnRyaW0oKSwhKCF0fHxlW3RdJiZsSVt0XSkmJih0PT09InNldC1jb29raWUiP2VbdF0/ZVt0XS5wdXNoKHIpOmVbdF09W3JdOmVbdF09ZVt0XT9lW3RdKyIsICIrcjpyKX0pLGV9O3ZhciBmdD1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIENBKEEpe3JldHVybiBBJiZTdHJpbmcoQSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gVEEoQSl7cmV0dXJuIEE9PT0hMXx8QT09bnVsbD9BOnMuaXNBcnJheShBKT9BLm1hcChUQSk6U3RyaW5nKEEpfWZ1bmN0aW9uIGZJKEEpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCksdD0vKFteXHMsOz1dKylccyooPzo9XHMqKFteLDtdKykpPy9nLHI7Zm9yKDtyPXQuZXhlYyhBKTspZVtyWzFdXT1yWzJdO3JldHVybiBlfXZhciBjST1BPT4vXlstX2EtekEtWjAtOV5gfH4sISMkJSYnKisuXSskLy50ZXN0KEEudHJpbSgpKTtmdW5jdGlvbiBzZShBLGUsdCxyLG8pe2lmKHMuaXNGdW5jdGlvbihyKSlyZXR1cm4gci5jYWxsKHRoaXMsZSx0KTtpZihvJiYoZT10KSwhIXMuaXNTdHJpbmcoZSkpe2lmKHMuaXNTdHJpbmcocikpcmV0dXJuIGUuaW5kZXhPZihyKSE9PS0xO2lmKHMuaXNSZWdFeHAocikpcmV0dXJuIHIudGVzdChlKX19ZnVuY3Rpb24gdUkoQSl7cmV0dXJuIEEudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcZF0pKFx3KikvZywoZSx0LHIpPT50LnRvVXBwZXJDYXNlKCkrcil9ZnVuY3Rpb24gcEkoQSxlKXtsZXQgdD1zLnRvQ2FtZWxDYXNlKCIgIitlKTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2gocj0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLHIrdCx7dmFsdWU6ZnVuY3Rpb24obyxJLGkpe3JldHVybiB0aGlzW3JdLmNhbGwodGhpcyxlLG8sSSxpKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgJD1jbGFzc3tjb25zdHJ1Y3RvcihlKXtlJiZ0aGlzLnNldChlKX1zZXQoZSx0LHIpe2xldCBvPXRoaXM7ZnVuY3Rpb24gSShDLGwsQil7bGV0IGE9Q0EobCk7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2xldCBnPXMuZmluZEtleShvLGEpOyghZ3x8b1tnXT09PXZvaWQgMHx8Qj09PSEwfHxCPT09dm9pZCAwJiZvW2ddIT09ITEpJiYob1tnfHxsXT1UQShDKSl9bGV0IGk9KEMsbCk9PnMuZm9yRWFjaChDLChCLGEpPT5JKEIsYSxsKSk7aWYocy5pc1BsYWluT2JqZWN0KGUpfHxlIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3RvcilpKGUsdCk7ZWxzZSBpZihzLmlzU3RyaW5nKGUpJiYoZT1lLnRyaW0oKSkmJiFjSShlKSlpKGx0KGUpLHQpO2Vsc2UgaWYocy5pc0hlYWRlcnMoZSkpZm9yKGxldFtDLGxdb2YgZS5lbnRyaWVzKCkpSShsLEMscik7ZWxzZSBlIT1udWxsJiZJKHQsZSxyKTtyZXR1cm4gdGhpc31nZXQoZSx0KXtpZihlPUNBKGUpLGUpe2xldCByPXMuZmluZEtleSh0aGlzLGUpO2lmKHIpe2xldCBvPXRoaXNbcl07aWYoIXQpcmV0dXJuIG87aWYodD09PSEwKXJldHVybiBmSShvKTtpZihzLmlzRnVuY3Rpb24odCkpcmV0dXJuIHQuY2FsbCh0aGlzLG8scik7aWYocy5pc1JlZ0V4cCh0KSlyZXR1cm4gdC5leGVjKG8pO3Rocm93IG5ldyBUeXBlRXJyb3IoInBhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uIil9fX1oYXMoZSx0KXtpZihlPUNBKGUpLGUpe2xldCByPXMuZmluZEtleSh0aGlzLGUpO3JldHVybiEhKHImJnRoaXNbcl0hPT12b2lkIDAmJighdHx8c2UodGhpcyx0aGlzW3JdLHIsdCkpKX1yZXR1cm4hMX1kZWxldGUoZSx0KXtsZXQgcj10aGlzLG89ITE7ZnVuY3Rpb24gSShpKXtpZihpPUNBKGkpLGkpe2xldCBDPXMuZmluZEtleShyLGkpO0MmJighdHx8c2UocixyW0NdLEMsdCkpJiYoZGVsZXRlIHJbQ10sbz0hMCl9fXJldHVybiBzLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKEkpOkkoZSksb31jbGVhcihlKXtsZXQgdD1PYmplY3Qua2V5cyh0aGlzKSxyPXQubGVuZ3RoLG89ITE7Zm9yKDtyLS07KXtsZXQgST10W3JdOyghZXx8c2UodGhpcyx0aGlzW0ldLEksZSwhMCkpJiYoZGVsZXRlIHRoaXNbSV0sbz0hMCl9cmV0dXJuIG99bm9ybWFsaXplKGUpe2xldCB0PXRoaXMscj17fTtyZXR1cm4gcy5mb3JFYWNoKHRoaXMsKG8sSSk9PntsZXQgaT1zLmZpbmRLZXkocixJKTtpZihpKXt0W2ldPVRBKG8pLGRlbGV0ZSB0W0ldO3JldHVybn1sZXQgQz1lP3VJKEkpOlN0cmluZyhJKS50cmltKCk7QyE9PUkmJmRlbGV0ZSB0W0ldLHRbQ109VEEobykscltDXT0hMH0pLHRoaXN9Y29uY2F0KC4uLmUpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLmNvbmNhdCh0aGlzLC4uLmUpfXRvSlNPTihlKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBzLmZvckVhY2godGhpcywocixvKT0+e3IhPW51bGwmJnIhPT0hMSYmKHRbb109ZSYmcy5pc0FycmF5KHIpP3Iuam9pbigiLCAiKTpyKX0pLHR9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSlbU3ltYm9sLml0ZXJhdG9yXSgpfXRvU3RyaW5nKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpLm1hcCgoW2UsdF0pPT5lKyI6ICIrdCkuam9pbihgCmApfWdldFtTeW1ib2wudG9TdHJpbmdUYWddKCl7cmV0dXJuIkF4aW9zSGVhZGVycyJ9c3RhdGljIGZyb20oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzP2U6bmV3IHRoaXMoZSl9c3RhdGljIGNvbmNhdChlLC4uLnQpe2xldCByPW5ldyB0aGlzKGUpO3JldHVybiB0LmZvckVhY2gobz0+ci5zZXQobykpLHJ9c3RhdGljIGFjY2Vzc29yKGUpe2xldCByPSh0aGlzW2Z0XT10aGlzW2Z0XT17YWNjZXNzb3JzOnt9fSkuYWNjZXNzb3JzLG89dGhpcy5wcm90b3R5cGU7ZnVuY3Rpb24gSShpKXtsZXQgQz1DQShpKTtyW0NdfHwocEkobyxpKSxyW0NdPSEwKX1yZXR1cm4gcy5pc0FycmF5KGUpP2UuZm9yRWFjaChJKTpJKGUpLHRoaXN9fTskLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtzLnJlZHVjZURlc2NyaXB0b3JzKCQucHJvdG90eXBlLCh7dmFsdWU6QX0sZSk9PntsZXQgdD1lWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKTtyZXR1cm57Z2V0OigpPT5BLHNldChyKXt0aGlzW3RdPXJ9fX0pO3MuZnJlZXplTWV0aG9kcygkKTt2YXIgVT0kO2Z1bmN0aW9uIFFBKEEsZSl7bGV0IHQ9dGhpc3x8XyxyPWV8fHQsbz1VLmZyb20oci5oZWFkZXJzKSxJPXIuZGF0YTtyZXR1cm4gcy5mb3JFYWNoKEEsZnVuY3Rpb24oQyl7ST1DLmNhbGwodCxJLG8ubm9ybWFsaXplKCksZT9lLnN0YXR1czp2b2lkIDApfSksby5ub3JtYWxpemUoKSxJfWZ1bmN0aW9uIEVBKEEpe3JldHVybiEhKEEmJkEuX19DQU5DRUxfXyl9ZnVuY3Rpb24gY3QoQSxlLHQpe3AuY2FsbCh0aGlzLEE/PyJjYW5jZWxlZCIscC5FUlJfQ0FOQ0VMRUQsZSx0KSx0aGlzLm5hbWU9IkNhbmNlbGVkRXJyb3IifXMuaW5oZXJpdHMoY3QscCx7X19DQU5DRUxfXzohMH0pO3ZhciBIPWN0O2Z1bmN0aW9uIGxBKEEsZSx0KXtsZXQgcj10LmNvbmZpZy52YWxpZGF0ZVN0YXR1czshdC5zdGF0dXN8fCFyfHxyKHQuc3RhdHVzKT9BKHQpOmUobmV3IHAoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIit0LnN0YXR1cyxbcC5FUlJfQkFEX1JFUVVFU1QscC5FUlJfQkFEX1JFU1BPTlNFXVtNYXRoLmZsb29yKHQuc3RhdHVzLzEwMCktNF0sdC5jb25maWcsdC5yZXF1ZXN0LHQpKX1mdW5jdGlvbiBCZShBKXtsZXQgZT0vXihbLStcd117MSwyNX0pKDo/XC9cL3w6KS8uZXhlYyhBKTtyZXR1cm4gZSYmZVsxXXx8IiJ9ZnVuY3Rpb24gbUkoQSxlKXtBPUF8fDEwO2xldCB0PW5ldyBBcnJheShBKSxyPW5ldyBBcnJheShBKSxvPTAsST0wLGk7cmV0dXJuIGU9ZSE9PXZvaWQgMD9lOjFlMyxmdW5jdGlvbihsKXtsZXQgQj1EYXRlLm5vdygpLGE9cltJXTtpfHwoaT1CKSx0W29dPWwscltvXT1CO2xldCBnPUksZj0wO2Zvcig7ZyE9PW87KWYrPXRbZysrXSxnPWclQTtpZihvPShvKzEpJUEsbz09PUkmJihJPShJKzEpJUEpLEItaTxlKXJldHVybjtsZXQgbj1hJiZCLWE7cmV0dXJuIG4/TWF0aC5yb3VuZChmKjFlMy9uKTp2b2lkIDB9fXZhciB1dD1tSTtmdW5jdGlvbiBkSShBLGUpe2xldCB0PTAscj0xZTMvZSxvLEksaT0oQixhPURhdGUubm93KCkpPT57dD1hLG89bnVsbCxJJiYoY2xlYXJUaW1lb3V0KEkpLEk9bnVsbCksQS5hcHBseShudWxsLEIpfTtyZXR1cm5bKC4uLkIpPT57bGV0IGE9RGF0ZS5ub3coKSxnPWEtdDtnPj1yP2koQixhKToobz1CLEl8fChJPXNldFRpbWVvdXQoKCk9PntJPW51bGwsaShvKX0sci1nKSkpfSwoKT0+byYmaShvKV19dmFyIHB0PWRJO3ZhciBBQT0oQSxlLHQ9Myk9PntsZXQgcj0wLG89dXQoNTAsMjUwKTtyZXR1cm4gcHQoST0+e2xldCBpPUkubG9hZGVkLEM9SS5sZW5ndGhDb21wdXRhYmxlP0kudG90YWw6dm9pZCAwLGw9aS1yLEI9byhsKSxhPWk8PUM7cj1pO2xldCBnPXtsb2FkZWQ6aSx0b3RhbDpDLHByb2dyZXNzOkM/aS9DOnZvaWQgMCxieXRlczpsLHJhdGU6Qnx8dm9pZCAwLGVzdGltYXRlZDpCJiZDJiZhPyhDLWkpL0I6dm9pZCAwLGV2ZW50OkksbGVuZ3RoQ29tcHV0YWJsZTpDIT1udWxsLFtlPyJkb3dubG9hZCI6InVwbG9hZCJdOiEwfTtBKGcpfSx0KX0sQ2U9KEEsZSk9PntsZXQgdD1BIT1udWxsO3JldHVybltyPT5lWzBdKHtsZW5ndGhDb21wdXRhYmxlOnQsdG90YWw6QSxsb2FkZWQ6cn0pLGVbMV1dfSxRZT1BPT4oLi4uZSk9PnMuYXNhcCgoKT0+QSguLi5lKSk7dmFyIG10PXcuaGFzU3RhbmRhcmRCcm93c2VyRW52PygoQSxlKT0+dD0+KHQ9bmV3IFVSTCh0LHcub3JpZ2luKSxBLnByb3RvY29sPT09dC5wcm90b2NvbCYmQS5ob3N0PT09dC5ob3N0JiYoZXx8QS5wb3J0PT09dC5wb3J0KSkpKG5ldyBVUkwody5vcmlnaW4pLHcubmF2aWdhdG9yJiYvKG1zaWV8dHJpZGVudCkvaS50ZXN0KHcubmF2aWdhdG9yLnVzZXJBZ2VudCkpOigpPT4hMDt2YXIgZHQ9dy5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/e3dyaXRlKEEsZSx0LHIsbyxJKXtsZXQgaT1bQSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpXTtzLmlzTnVtYmVyKHQpJiZpLnB1c2goImV4cGlyZXM9IituZXcgRGF0ZSh0KS50b0dNVFN0cmluZygpKSxzLmlzU3RyaW5nKHIpJiZpLnB1c2goInBhdGg9IityKSxzLmlzU3RyaW5nKG8pJiZpLnB1c2goImRvbWFpbj0iK28pLEk9PT0hMCYmaS5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9aS5qb2luKCI7ICIpfSxyZWFkKEEpe2xldCBlPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIGU/ZGVjb2RlVVJJQ29tcG9uZW50KGVbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gRWUoQSl7cmV0dXJuL14oW2Etel1bYS16XGQrXC0uXSo6KT9cL1wvL2kudGVzdChBKX1mdW5jdGlvbiBsZShBLGUpe3JldHVybiBlP0EucmVwbGFjZSgvXC8/XC8kLywiIikrIi8iK2UucmVwbGFjZSgvXlwvKy8sIiIpOkF9ZnVuY3Rpb24gZkEoQSxlLHQpe2xldCByPSFFZShlKTtyZXR1cm4gQSYmKHJ8fHQ9PSExKT9sZShBLGUpOmV9dmFyIHl0PUE9PkEgaW5zdGFuY2VvZiBVP3suLi5BfTpBO2Z1bmN0aW9uIFQoQSxlKXtlPWV8fHt9O2xldCB0PXt9O2Z1bmN0aW9uIHIoQixhLGcsZil7cmV0dXJuIHMuaXNQbGFpbk9iamVjdChCKSYmcy5pc1BsYWluT2JqZWN0KGEpP3MubWVyZ2UuY2FsbCh7Y2FzZWxlc3M6Zn0sQixhKTpzLmlzUGxhaW5PYmplY3QoYSk/cy5tZXJnZSh7fSxhKTpzLmlzQXJyYXkoYSk/YS5zbGljZSgpOmF9ZnVuY3Rpb24gbyhCLGEsZyxmKXtpZihzLmlzVW5kZWZpbmVkKGEpKXtpZighcy5pc1VuZGVmaW5lZChCKSlyZXR1cm4gcih2b2lkIDAsQixnLGYpfWVsc2UgcmV0dXJuIHIoQixhLGcsZil9ZnVuY3Rpb24gSShCLGEpe2lmKCFzLmlzVW5kZWZpbmVkKGEpKXJldHVybiByKHZvaWQgMCxhKX1mdW5jdGlvbiBpKEIsYSl7aWYocy5pc1VuZGVmaW5lZChhKSl7aWYoIXMuaXNVbmRlZmluZWQoQikpcmV0dXJuIHIodm9pZCAwLEIpfWVsc2UgcmV0dXJuIHIodm9pZCAwLGEpfWZ1bmN0aW9uIEMoQixhLGcpe2lmKGcgaW4gZSlyZXR1cm4gcihCLGEpO2lmKGcgaW4gQSlyZXR1cm4gcih2b2lkIDAsQil9bGV0IGw9e3VybDpJLG1ldGhvZDpJLGRhdGE6SSxiYXNlVVJMOmksdHJhbnNmb3JtUmVxdWVzdDppLHRyYW5zZm9ybVJlc3BvbnNlOmkscGFyYW1zU2VyaWFsaXplcjppLHRpbWVvdXQ6aSx0aW1lb3V0TWVzc2FnZTppLHdpdGhDcmVkZW50aWFsczppLHdpdGhYU1JGVG9rZW46aSxhZGFwdGVyOmkscmVzcG9uc2VUeXBlOmkseHNyZkNvb2tpZU5hbWU6aSx4c3JmSGVhZGVyTmFtZTppLG9uVXBsb2FkUHJvZ3Jlc3M6aSxvbkRvd25sb2FkUHJvZ3Jlc3M6aSxkZWNvbXByZXNzOmksbWF4Q29udGVudExlbmd0aDppLG1heEJvZHlMZW5ndGg6aSxiZWZvcmVSZWRpcmVjdDppLHRyYW5zcG9ydDppLGh0dHBBZ2VudDppLGh0dHBzQWdlbnQ6aSxjYW5jZWxUb2tlbjppLHNvY2tldFBhdGg6aSxyZXNwb25zZUVuY29kaW5nOmksdmFsaWRhdGVTdGF0dXM6QyxoZWFkZXJzOihCLGEsZyk9Pm8oeXQoQikseXQoYSksZywhMCl9O3JldHVybiBzLmZvckVhY2goT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSxBLGUpKSxmdW5jdGlvbihhKXtsZXQgZz1sW2FdfHxvLGY9ZyhBW2FdLGVbYV0sYSk7cy5pc1VuZGVmaW5lZChmKSYmZyE9PUN8fCh0W2FdPWYpfSksdH12YXIgTUE9QT0+e2xldCBlPVQoe30sQSkse2RhdGE6dCx3aXRoWFNSRlRva2VuOnIseHNyZkhlYWRlck5hbWU6byx4c3JmQ29va2llTmFtZTpJLGhlYWRlcnM6aSxhdXRoOkN9PWU7ZS5oZWFkZXJzPWk9VS5mcm9tKGkpLGUudXJsPUJBKGZBKGUuYmFzZVVSTCxlLnVybCxlLmFsbG93QWJzb2x1dGVVcmxzKSxBLnBhcmFtcyxBLnBhcmFtc1NlcmlhbGl6ZXIpLEMmJmkuc2V0KCJBdXRob3JpemF0aW9uIiwiQmFzaWMgIitidG9hKChDLnVzZXJuYW1lfHwiIikrIjoiKyhDLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChDLnBhc3N3b3JkKSk6IiIpKSk7bGV0IGw7aWYocy5pc0Zvcm1EYXRhKHQpKXtpZih3Lmhhc1N0YW5kYXJkQnJvd3NlckVudnx8dy5oYXNTdGFuZGFyZEJyb3dzZXJXZWJXb3JrZXJFbnYpaS5zZXRDb250ZW50VHlwZSh2b2lkIDApO2Vsc2UgaWYoKGw9aS5nZXRDb250ZW50VHlwZSgpKSE9PSExKXtsZXRbQiwuLi5hXT1sP2wuc3BsaXQoIjsiKS5tYXAoZz0+Zy50cmltKCkpLmZpbHRlcihCb29sZWFuKTpbXTtpLnNldENvbnRlbnRUeXBlKFtCfHwibXVsdGlwYXJ0L2Zvcm0tZGF0YSIsLi4uYV0uam9pbigiOyAiKSl9fWlmKHcuaGFzU3RhbmRhcmRCcm93c2VyRW52JiYociYmcy5pc0Z1bmN0aW9uKHIpJiYocj1yKGUpKSxyfHxyIT09ITEmJm10KGUudXJsKSkpe2xldCBCPW8mJkkmJmR0LnJlYWQoSSk7QiYmaS5zZXQobyxCKX1yZXR1cm4gZX07dmFyIHlJPXR5cGVvZiBYTUxIdHRwUmVxdWVzdDwidSIsaHQ9eUkmJmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LHIpe2xldCBvPU1BKEEpLEk9by5kYXRhLGk9VS5mcm9tKG8uaGVhZGVycykubm9ybWFsaXplKCkse3Jlc3BvbnNlVHlwZTpDLG9uVXBsb2FkUHJvZ3Jlc3M6bCxvbkRvd25sb2FkUHJvZ3Jlc3M6Qn09byxhLGcsZixuLFE7ZnVuY3Rpb24gYygpe24mJm4oKSxRJiZRKCksby5jYW5jZWxUb2tlbiYmby5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShhKSxvLnNpZ25hbCYmby5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGEpfWxldCBFPW5ldyBYTUxIdHRwUmVxdWVzdDtFLm9wZW4oby5tZXRob2QudG9VcHBlckNhc2UoKSxvLnVybCwhMCksRS50aW1lb3V0PW8udGltZW91dDtmdW5jdGlvbiBtKCl7aWYoIUUpcmV0dXJuO2xldCBGPVUuZnJvbSgiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIEUmJkUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLEc9e2RhdGE6IUN8fEM9PT0idGV4dCJ8fEM9PT0ianNvbiI/RS5yZXNwb25zZVRleHQ6RS5yZXNwb25zZSxzdGF0dXM6RS5zdGF0dXMsc3RhdHVzVGV4dDpFLnN0YXR1c1RleHQsaGVhZGVyczpGLGNvbmZpZzpBLHJlcXVlc3Q6RX07bEEoZnVuY3Rpb24oVyl7dChXKSxjKCl9LGZ1bmN0aW9uKFcpe3IoVyksYygpfSxHKSxFPW51bGx9Im9ubG9hZGVuZCJpbiBFP0Uub25sb2FkZW5kPW06RS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshRXx8RS5yZWFkeVN0YXRlIT09NHx8RS5zdGF0dXM9PT0wJiYhKEUucmVzcG9uc2VVUkwmJkUucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KG0pfSxFLm9uYWJvcnQ9ZnVuY3Rpb24oKXtFJiYocihuZXcgcCgiUmVxdWVzdCBhYm9ydGVkIixwLkVDT05OQUJPUlRFRCxBLEUpKSxFPW51bGwpfSxFLm9uZXJyb3I9ZnVuY3Rpb24oKXtyKG5ldyBwKCJOZXR3b3JrIEVycm9yIixwLkVSUl9ORVRXT1JLLEEsRSkpLEU9bnVsbH0sRS5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgcT1vLnRpbWVvdXQ/InRpbWVvdXQgb2YgIitvLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsRz1vLnRyYW5zaXRpb25hbHx8TEE7by50aW1lb3V0RXJyb3JNZXNzYWdlJiYocT1vLnRpbWVvdXRFcnJvck1lc3NhZ2UpLHIobmV3IHAocSxHLmNsYXJpZnlUaW1lb3V0RXJyb3I/cC5FVElNRURPVVQ6cC5FQ09OTkFCT1JURUQsQSxFKSksRT1udWxsfSxJPT09dm9pZCAwJiZpLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIEUmJnMuZm9yRWFjaChpLnRvSlNPTigpLGZ1bmN0aW9uKHEsRyl7RS5zZXRSZXF1ZXN0SGVhZGVyKEcscSl9KSxzLmlzVW5kZWZpbmVkKG8ud2l0aENyZWRlbnRpYWxzKXx8KEUud2l0aENyZWRlbnRpYWxzPSEhby53aXRoQ3JlZGVudGlhbHMpLEMmJkMhPT0ianNvbiImJihFLnJlc3BvbnNlVHlwZT1vLnJlc3BvbnNlVHlwZSksQiYmKFtmLFFdPUFBKEIsITApLEUuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGYpKSxsJiZFLnVwbG9hZCYmKFtnLG5dPUFBKGwpLEUudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixnKSxFLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixuKSksKG8uY2FuY2VsVG9rZW58fG8uc2lnbmFsKSYmKGE9Rj0+e0UmJihyKCFGfHxGLnR5cGU/bmV3IEgobnVsbCxBLEUpOkYpLEUuYWJvcnQoKSxFPW51bGwpfSxvLmNhbmNlbFRva2VuJiZvLmNhbmNlbFRva2VuLnN1YnNjcmliZShhKSxvLnNpZ25hbCYmKG8uc2lnbmFsLmFib3J0ZWQ/YSgpOm8uc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixhKSkpO2xldCBSPUJlKG8udXJsKTtpZihSJiZ3LnByb3RvY29scy5pbmRleE9mKFIpPT09LTEpe3IobmV3IHAoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrUisiOiIscC5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1FLnNlbmQoSXx8bnVsbCl9KX07dmFyIGhJPShBLGUpPT57bGV0e2xlbmd0aDp0fT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYoZXx8dCl7bGV0IHI9bmV3IEFib3J0Q29udHJvbGxlcixvLEk9ZnVuY3Rpb24oQil7aWYoIW8pe289ITAsQygpO2xldCBhPUIgaW5zdGFuY2VvZiBFcnJvcj9COnRoaXMucmVhc29uO3IuYWJvcnQoYSBpbnN0YW5jZW9mIHA/YTpuZXcgSChhIGluc3RhbmNlb2YgRXJyb3I/YS5tZXNzYWdlOmEpKX19LGk9ZSYmc2V0VGltZW91dCgoKT0+e2k9bnVsbCxJKG5ldyBwKGB0aW1lb3V0ICR7ZX0gb2YgbXMgZXhjZWVkZWRgLHAuRVRJTUVET1VUKSl9LGUpLEM9KCk9PntBJiYoaSYmY2xlYXJUaW1lb3V0KGkpLGk9bnVsbCxBLmZvckVhY2goQj0+e0IudW5zdWJzY3JpYmU/Qi51bnN1YnNjcmliZShJKTpCLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixJKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChCPT5CLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixJKSk7bGV0e3NpZ25hbDpsfT1yO3JldHVybiBsLnVuc3Vic2NyaWJlPSgpPT5zLmFzYXAoQyksbH19LER0PWhJO3ZhciBEST1mdW5jdGlvbiooQSxlKXtsZXQgdD1BLmJ5dGVMZW5ndGg7aWYoIWV8fHQ8ZSl7eWllbGQgQTtyZXR1cm59bGV0IHI9MCxvO2Zvcig7cjx0OylvPXIrZSx5aWVsZCBBLnNsaWNlKHIsbykscj1vfSx3ST1hc3luYyBmdW5jdGlvbiooQSxlKXtmb3IgYXdhaXQobGV0IHQgb2YgUkkoQSkpeWllbGQqREkodCxlKX0sUkk9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgZT1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOnQsdmFsdWU6cn09YXdhaXQgZS5yZWFkKCk7aWYodClicmVhazt5aWVsZCByfX1maW5hbGx5e2F3YWl0IGUuY2FuY2VsKCl9fSxmZT0oQSxlLHQscik9PntsZXQgbz13SShBLGUpLEk9MCxpLEM9bD0+e2l8fChpPSEwLHImJnIobCkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKGwpe3RyeXtsZXR7ZG9uZTpCLHZhbHVlOmF9PWF3YWl0IG8ubmV4dCgpO2lmKEIpe0MoKSxsLmNsb3NlKCk7cmV0dXJufWxldCBnPWEuYnl0ZUxlbmd0aDtpZih0KXtsZXQgZj1JKz1nO3QoZil9bC5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KGEpKX1jYXRjaChCKXt0aHJvdyBDKEIpLEJ9fSxjYW5jZWwobCl7cmV0dXJuIEMobCksby5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIFlBPXR5cGVvZiBmZXRjaD09ImZ1bmN0aW9uIiYmdHlwZW9mIFJlcXVlc3Q9PSJmdW5jdGlvbiImJnR5cGVvZiBSZXNwb25zZT09ImZ1bmN0aW9uIixSdD1ZQSYmdHlwZW9mIFJlYWRhYmxlU3RyZWFtPT0iZnVuY3Rpb24iLEZJPVlBJiYodHlwZW9mIFRleHRFbmNvZGVyPT0iZnVuY3Rpb24iPyhBPT5lPT5BLmVuY29kZShlKSkobmV3IFRleHRFbmNvZGVyKTphc3luYyBBPT5uZXcgVWludDhBcnJheShhd2FpdCBuZXcgUmVzcG9uc2UoQSkuYXJyYXlCdWZmZXIoKSkpLEZ0PShBLC4uLmUpPT57dHJ5e3JldHVybiEhQSguLi5lKX1jYXRjaHtyZXR1cm4hMX19LFNJPVJ0JiZGdCgoKT0+e2xldCBBPSExLGU9bmV3IFJlcXVlc3Qody5vcmlnaW4se2JvZHk6bmV3IFJlYWRhYmxlU3RyZWFtLG1ldGhvZDoiUE9TVCIsZ2V0IGR1cGxleCgpe3JldHVybiBBPSEwLCJoYWxmIn19KS5oZWFkZXJzLmhhcygiQ29udGVudC1UeXBlIik7cmV0dXJuIEEmJiFlfSksd3Q9NjQqMTAyNCxjZT1SdCYmRnQoKCk9PnMuaXNSZWFkYWJsZVN0cmVhbShuZXcgUmVzcG9uc2UoIiIpLmJvZHkpKSxIQT17c3RyZWFtOmNlJiYoQT0+QS5ib2R5KX07WUEmJihBPT57WyJ0ZXh0IiwiYXJyYXlCdWZmZXIiLCJibG9iIiwiZm9ybURhdGEiLCJzdHJlYW0iXS5mb3JFYWNoKGU9PnshSEFbZV0mJihIQVtlXT1zLmlzRnVuY3Rpb24oQVtlXSk/dD0+dFtlXSgpOih0LHIpPT57dGhyb3cgbmV3IHAoYFJlc3BvbnNlIHR5cGUgJyR7ZX0nIGlzIG5vdCBzdXBwb3J0ZWRgLHAuRVJSX05PVF9TVVBQT1JULHIpfSl9KX0pKG5ldyBSZXNwb25zZSk7dmFyIGtJPWFzeW5jIEE9PntpZihBPT1udWxsKXJldHVybiAwO2lmKHMuaXNCbG9iKEEpKXJldHVybiBBLnNpemU7aWYocy5pc1NwZWNDb21wbGlhbnRGb3JtKEEpKXJldHVybihhd2FpdCBuZXcgUmVxdWVzdCh3Lm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OkF9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKHMuaXNBcnJheUJ1ZmZlclZpZXcoQSl8fHMuaXNBcnJheUJ1ZmZlcihBKSlyZXR1cm4gQS5ieXRlTGVuZ3RoO2lmKHMuaXNVUkxTZWFyY2hQYXJhbXMoQSkmJihBPUErIiIpLHMuaXNTdHJpbmcoQSkpcmV0dXJuKGF3YWl0IEZJKEEpKS5ieXRlTGVuZ3RofSxVST1hc3luYyhBLGUpPT57bGV0IHQ9cy50b0Zpbml0ZU51bWJlcihBLmdldENvbnRlbnRMZW5ndGgoKSk7cmV0dXJuIHQ/P2tJKGUpfSxTdD1ZQSYmKGFzeW5jIEE9PntsZXR7dXJsOmUsbWV0aG9kOnQsZGF0YTpyLHNpZ25hbDpvLGNhbmNlbFRva2VuOkksdGltZW91dDppLG9uRG93bmxvYWRQcm9ncmVzczpDLG9uVXBsb2FkUHJvZ3Jlc3M6bCxyZXNwb25zZVR5cGU6QixoZWFkZXJzOmEsd2l0aENyZWRlbnRpYWxzOmc9InNhbWUtb3JpZ2luIixmZXRjaE9wdGlvbnM6Zn09TUEoQSk7Qj1CPyhCKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgbj1EdChbbyxJJiZJLnRvQWJvcnRTaWduYWwoKV0saSksUSxjPW4mJm4udW5zdWJzY3JpYmUmJigoKT0+e24udW5zdWJzY3JpYmUoKX0pLEU7dHJ5e2lmKGwmJlNJJiZ0IT09ImdldCImJnQhPT0iaGVhZCImJihFPWF3YWl0IFVJKGEscikpIT09MCl7bGV0IEc9bmV3IFJlcXVlc3QoZSx7bWV0aG9kOiJQT1NUIixib2R5OnIsZHVwbGV4OiJoYWxmIn0pLHg7aWYocy5pc0Zvcm1EYXRhKHIpJiYoeD1HLmhlYWRlcnMuZ2V0KCJjb250ZW50LXR5cGUiKSkmJmEuc2V0Q29udGVudFR5cGUoeCksRy5ib2R5KXtsZXRbVyx5QV09Q2UoRSxBQShRZShsKSkpO3I9ZmUoRy5ib2R5LHd0LFcseUEpfX1zLmlzU3RyaW5nKGcpfHwoZz1nPyJpbmNsdWRlIjoib21pdCIpO2xldCBtPSJjcmVkZW50aWFscyJpbiBSZXF1ZXN0LnByb3RvdHlwZTtRPW5ldyBSZXF1ZXN0KGUsey4uLmYsc2lnbmFsOm4sbWV0aG9kOnQudG9VcHBlckNhc2UoKSxoZWFkZXJzOmEubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpyLGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6bT9nOnZvaWQgMH0pO2xldCBSPWF3YWl0IGZldGNoKFEpLEY9Y2UmJihCPT09InN0cmVhbSJ8fEI9PT0icmVzcG9uc2UiKTtpZihjZSYmKEN8fEYmJmMpKXtsZXQgRz17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChPZT0+e0dbT2VdPVJbT2VdfSk7bGV0IHg9cy50b0Zpbml0ZU51bWJlcihSLmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbVyx5QV09QyYmQ2UoeCxBQShRZShDKSwhMCkpfHxbXTtSPW5ldyBSZXNwb25zZShmZShSLmJvZHksd3QsVywoKT0+e3lBJiZ5QSgpLGMmJmMoKX0pLEcpfUI9Qnx8InRleHQiO2xldCBxPWF3YWl0IEhBW3MuZmluZEtleShIQSxCKXx8InRleHQiXShSLEEpO3JldHVybiFGJiZjJiZjKCksYXdhaXQgbmV3IFByb21pc2UoKEcseCk9PntsQShHLHgse2RhdGE6cSxoZWFkZXJzOlUuZnJvbShSLmhlYWRlcnMpLHN0YXR1czpSLnN0YXR1cyxzdGF0dXNUZXh0OlIuc3RhdHVzVGV4dCxjb25maWc6QSxyZXF1ZXN0OlF9KX0pfWNhdGNoKG0pe3Rocm93IGMmJmMoKSxtJiZtLm5hbWU9PT0iVHlwZUVycm9yIiYmL2ZldGNoL2kudGVzdChtLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IHAoIk5ldHdvcmsgRXJyb3IiLHAuRVJSX05FVFdPUkssQSxRKSx7Y2F1c2U6bS5jYXVzZXx8bX0pOnAuZnJvbShtLG0mJm0uY29kZSxBLFEpfX0pO3ZhciB1ZT17aHR0cDpHQSx4aHI6aHQsZmV0Y2g6U3R9O3MuZm9yRWFjaCh1ZSwoQSxlKT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOmV9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6ZX0pfX0pO3ZhciBrdD1BPT5gLSAke0F9YCxOST1BPT5zLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEscUE9e2dldEFkYXB0ZXI6QT0+e0E9cy5pc0FycmF5KEEpP0E6W0FdO2xldHtsZW5ndGg6ZX09QSx0LHIsbz17fTtmb3IobGV0IEk9MDtJPGU7SSsrKXt0PUFbSV07bGV0IGk7aWYocj10LCFOSSh0KSYmKHI9dWVbKGk9U3RyaW5nKHQpKS50b0xvd2VyQ2FzZSgpXSxyPT09dm9pZCAwKSl0aHJvdyBuZXcgcChgVW5rbm93biBhZGFwdGVyICcke2l9J2ApO2lmKHIpYnJlYWs7b1tpfHwiIyIrSV09cn1pZighcil7bGV0IEk9T2JqZWN0LmVudHJpZXMobykubWFwKChbQyxsXSk9PmBhZGFwdGVyICR7Q30gYCsobD09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLGk9ZT9JLmxlbmd0aD4xP2BzaW5jZSA6CmArSS5tYXAoa3QpLmpvaW4oYApgKToiICIra3QoSVswXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgcCgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK2ksIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiByfSxhZGFwdGVyczp1ZX07ZnVuY3Rpb24gcGUoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEgobnVsbCxBKX1mdW5jdGlvbiBPQShBKXtyZXR1cm4gcGUoQSksQS5oZWFkZXJzPVUuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1RQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSkscUEuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fF8uYWRhcHRlcikoQSkudGhlbihmdW5jdGlvbihyKXtyZXR1cm4gcGUoQSksci5kYXRhPVFBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLHIpLHIuaGVhZGVycz1VLmZyb20oci5oZWFkZXJzKSxyfSxmdW5jdGlvbihyKXtyZXR1cm4gRUEocil8fChwZShBKSxyJiZyLnJlc3BvbnNlJiYoci5yZXNwb25zZS5kYXRhPVFBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLHIucmVzcG9uc2UpLHIucmVzcG9uc2UuaGVhZGVycz1VLmZyb20oci5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KHIpfSl9dmFyIHhBPSIxLjguNCI7dmFyIFBBPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSxlKT0+e1BBW0FdPWZ1bmN0aW9uKHIpe3JldHVybiB0eXBlb2Ygcj09PUF8fCJhIisoZTwxPyJuICI6IiAiKStBfX0pO3ZhciBVdD17fTtQQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSx0LHIpe2Z1bmN0aW9uIG8oSSxpKXtyZXR1cm4iW0F4aW9zIHYiK3hBKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIrSSsiJyIraSsocj8iLiAiK3I6IiIpfXJldHVybihJLGksQyk9PntpZihlPT09ITEpdGhyb3cgbmV3IHAobyhpLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKHQ/IiBpbiAiK3Q6IiIpKSxwLkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gdCYmIVV0W2ldJiYoVXRbaV09ITAsY29uc29sZS53YXJuKG8oaSwiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrdCsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSxlP2UoSSxpLEMpOiEwfX07UEEuc3BlbGxpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuKHQscik9Pihjb25zb2xlLndhcm4oYCR7cn0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHtlfWApLCEwKX07ZnVuY3Rpb24gR0koQSxlLHQpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgcCgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIscC5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IHI9T2JqZWN0LmtleXMoQSksbz1yLmxlbmd0aDtmb3IoO28tLSA+MDspe2xldCBJPXJbb10saT1lW0ldO2lmKGkpe2xldCBDPUFbSV0sbD1DPT09dm9pZCAwfHxpKEMsSSxBKTtpZihsIT09ITApdGhyb3cgbmV3IHAoIm9wdGlvbiAiK0krIiBtdXN0IGJlICIrbCxwLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZih0IT09ITApdGhyb3cgbmV3IHAoIlVua25vd24gb3B0aW9uICIrSSxwLkVSUl9CQURfT1BUSU9OKX19dmFyIGNBPXthc3NlcnRPcHRpb25zOkdJLHZhbGlkYXRvcnM6UEF9O3ZhciBZPWNBLnZhbGlkYXRvcnMsZUE9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5kZWZhdWx0cz1lLHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBJZSxyZXNwb25zZTpuZXcgSWV9fWFzeW5jIHJlcXVlc3QoZSx0KXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3JlcXVlc3QoZSx0KX1jYXRjaChyKXtpZihyIGluc3RhbmNlb2YgRXJyb3Ipe2xldCBvPXt9O0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKG8pOm89bmV3IEVycm9yO2xldCBJPW8uc3RhY2s/by5zdGFjay5yZXBsYWNlKC9eLitcbi8sIiIpOiIiO3RyeXtyLnN0YWNrP0kmJiFTdHJpbmcoci5zdGFjaykuZW5kc1dpdGgoSS5yZXBsYWNlKC9eLitcbi4rXG4vLCIiKSkmJihyLnN0YWNrKz1gCmArSSk6ci5zdGFjaz1JfWNhdGNoe319dGhyb3cgcn19X3JlcXVlc3QoZSx0KXt0eXBlb2YgZT09InN0cmluZyI/KHQ9dHx8e30sdC51cmw9ZSk6dD1lfHx7fSx0PVQodGhpcy5kZWZhdWx0cyx0KTtsZXR7dHJhbnNpdGlvbmFsOnIscGFyYW1zU2VyaWFsaXplcjpvLGhlYWRlcnM6SX09dDtyIT09dm9pZCAwJiZjQS5hc3NlcnRPcHRpb25zKHIse3NpbGVudEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbil9LCExKSxvIT1udWxsJiYocy5pc0Z1bmN0aW9uKG8pP3QucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOm99OmNBLmFzc2VydE9wdGlvbnMobyx7ZW5jb2RlOlkuZnVuY3Rpb24sc2VyaWFsaXplOlkuZnVuY3Rpb259LCEwKSksdC5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/dC5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOnQuYWxsb3dBYnNvbHV0ZVVybHM9ITApLGNBLmFzc2VydE9wdGlvbnModCx7YmFzZVVybDpZLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpZLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSx0Lm1ldGhvZD0odC5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgaT1JJiZzLm1lcmdlKEkuY29tbW9uLElbdC5tZXRob2RdKTtJJiZzLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sUT0+e2RlbGV0ZSBJW1FdfSksdC5oZWFkZXJzPVUuY29uY2F0KGksSSk7bGV0IEM9W10sbD0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oYyl7dHlwZW9mIGMucnVuV2hlbj09ImZ1bmN0aW9uIiYmYy5ydW5XaGVuKHQpPT09ITF8fChsPWwmJmMuc3luY2hyb25vdXMsQy51bnNoaWZ0KGMuZnVsZmlsbGVkLGMucmVqZWN0ZWQpKX0pO2xldCBCPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oYyl7Qi5wdXNoKGMuZnVsZmlsbGVkLGMucmVqZWN0ZWQpfSk7bGV0IGEsZz0wLGY7aWYoIWwpe2xldCBRPVtPQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKFEudW5zaGlmdC5hcHBseShRLEMpLFEucHVzaC5hcHBseShRLEIpLGY9US5sZW5ndGgsYT1Qcm9taXNlLnJlc29sdmUodCk7ZzxmOylhPWEudGhlbihRW2crK10sUVtnKytdKTtyZXR1cm4gYX1mPUMubGVuZ3RoO2xldCBuPXQ7Zm9yKGc9MDtnPGY7KXtsZXQgUT1DW2crK10sYz1DW2crK107dHJ5e249UShuKX1jYXRjaChFKXtjLmNhbGwodGhpcyxFKTticmVha319dHJ5e2E9T0EuY2FsbCh0aGlzLG4pfWNhdGNoKFEpe3JldHVybiBQcm9taXNlLnJlamVjdChRKX1mb3IoZz0wLGY9Qi5sZW5ndGg7ZzxmOylhPWEudGhlbihCW2crK10sQltnKytdKTtyZXR1cm4gYX1nZXRVcmkoZSl7ZT1UKHRoaXMuZGVmYXVsdHMsZSk7bGV0IHQ9ZkEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiBCQSh0LGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcil9fTtzLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKGUpe2VBLnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLnJlcXVlc3QoVChyfHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YToocnx8e30pLmRhdGF9KSl9fSk7cy5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyKXtyZXR1cm4gZnVuY3Rpb24oSSxpLEMpe3JldHVybiB0aGlzLnJlcXVlc3QoVChDfHx7fSx7bWV0aG9kOmUsaGVhZGVyczpyP3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDpJLGRhdGE6aX0pKX19ZUEucHJvdG90eXBlW2VdPXQoKSxlQS5wcm90b3R5cGVbZSsiRm9ybSJdPXQoITApfSk7dmFyIHVBPWVBO3ZhciBtZT1jbGFzcyBBe2NvbnN0cnVjdG9yKGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtsZXQgdDt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24oSSl7dD1JfSk7bGV0IHI9dGhpczt0aGlzLnByb21pc2UudGhlbihvPT57aWYoIXIuX2xpc3RlbmVycylyZXR1cm47bGV0IEk9ci5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO0ktLSA+MDspci5fbGlzdGVuZXJzW0ldKG8pO3IuX2xpc3RlbmVycz1udWxsfSksdGhpcy5wcm9taXNlLnRoZW49bz0+e2xldCBJLGk9bmV3IFByb21pc2UoQz0+e3Iuc3Vic2NyaWJlKEMpLEk9Q30pLnRoZW4obyk7cmV0dXJuIGkuY2FuY2VsPWZ1bmN0aW9uKCl7ci51bnN1YnNjcmliZShJKX0saX0sZShmdW5jdGlvbihJLGksQyl7ci5yZWFzb258fChyLnJlYXNvbj1uZXcgSChJLGksQyksdChyLnJlYXNvbikpfSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZShlKXtpZih0aGlzLnJlYXNvbil7ZSh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaChlKTp0aGlzLl9saXN0ZW5lcnM9W2VdfXVuc3Vic2NyaWJlKGUpe2lmKCF0aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2xldCB0PXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKGUpO3QhPT0tMSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZSh0LDEpfXRvQWJvcnRTaWduYWwoKXtsZXQgZT1uZXcgQWJvcnRDb250cm9sbGVyLHQ9cj0+e2UuYWJvcnQocil9O3JldHVybiB0aGlzLnN1YnNjcmliZSh0KSxlLnNpZ25hbC51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZSh0KSxlLnNpZ25hbH1zdGF0aWMgc291cmNlKCl7bGV0IGU7cmV0dXJue3Rva2VuOm5ldyBBKGZ1bmN0aW9uKG8pe2U9b30pLGNhbmNlbDplfX19LE50PW1lO2Z1bmN0aW9uIGRlKEEpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gQS5hcHBseShudWxsLHQpfX1mdW5jdGlvbiB5ZShBKXtyZXR1cm4gcy5pc09iamVjdChBKSYmQS5pc0F4aW9zRXJyb3I9PT0hMH12YXIgaGU9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKGhlKS5mb3JFYWNoKChbQSxlXSk9PntoZVtlXT1BfSk7dmFyIEd0PWhlO2Z1bmN0aW9uIGJ0KEEpe2xldCBlPW5ldyB1QShBKSx0PWdBKHVBLnByb3RvdHlwZS5yZXF1ZXN0LGUpO3JldHVybiBzLmV4dGVuZCh0LHVBLnByb3RvdHlwZSxlLHthbGxPd25LZXlzOiEwfSkscy5leHRlbmQodCxlLG51bGwse2FsbE93bktleXM6ITB9KSx0LmNyZWF0ZT1mdW5jdGlvbihvKXtyZXR1cm4gYnQoVChBLG8pKX0sdH12YXIgUz1idChfKTtTLkF4aW9zPXVBO1MuQ2FuY2VsZWRFcnJvcj1IO1MuQ2FuY2VsVG9rZW49TnQ7Uy5pc0NhbmNlbD1FQTtTLlZFUlNJT049eEE7Uy50b0Zvcm1EYXRhPVA7Uy5BeGlvc0Vycm9yPXA7Uy5DYW5jZWw9Uy5DYW5jZWxlZEVycm9yO1MuYWxsPWZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChlKX07Uy5zcHJlYWQ9ZGU7Uy5pc0F4aW9zRXJyb3I9eWU7Uy5tZXJnZUNvbmZpZz1UO1MuQXhpb3NIZWFkZXJzPVU7Uy5mb3JtVG9KU09OPUE9PkpBKHMuaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7Uy5nZXRBZGFwdGVyPXFBLmdldEFkYXB0ZXI7Uy5IdHRwU3RhdHVzQ29kZT1HdDtTLmRlZmF1bHQ9Uzt2YXIgdEE9Uzt2YXJ7QXhpb3M6WWcsQXhpb3NFcnJvcjpxZyxDYW5jZWxlZEVycm9yOk9nLGlzQ2FuY2VsOnhnLENhbmNlbFRva2VuOlBnLFZFUlNJT046S2csYWxsOldnLENhbmNlbDpqZyxpc0F4aW9zRXJyb3I6dmcsc3ByZWFkOlpnLHRvRm9ybURhdGE6VmcsQXhpb3NIZWFkZXJzOlhnLEh0dHBTdGF0dXNDb2RlOnpnLGZvcm1Ub0pTT046X2csZ2V0QWRhcHRlcjokZyxtZXJnZUNvbmZpZzpBbn09dEE7YXN5bmMgZnVuY3Rpb24gYkkoQSxlKXtsZXQgdD1BLHI9bnVsbDtpZih0PT1udWxsKXI9bmV3IFdvcmtlcihuZXcgVVJMKCIuL3dlYi13b3JrZXJzL2l0ay13YXNtLXBpcGVsaW5lLndvcmtlci5qcyIsaW1wb3J0Lm1ldGEudXJsKSx7dHlwZToibW9kdWxlIn0pO2Vsc2UgaWYodC5zdGFydHNXaXRoKCJodHRwIikpe2xldCBvPWF3YWl0IHRBLmdldCh0LHtyZXNwb25zZVR5cGU6ImJsb2IiLHBhcmFtczplfSksST1VUkwuY3JlYXRlT2JqZWN0VVJMKG8uZGF0YSk7cj1uZXcgV29ya2VyKEkse3R5cGU6Im1vZHVsZSJ9KX1lbHNlIHI9bmV3IFdvcmtlcih0LHt0eXBlOiJtb2R1bGUifSk7cmV0dXJuIHJ9dmFyIHBBPWJJO2Z1bmN0aW9uIEx0KEEpe2xldCBlPV9BKEEpLHQ9QTtyZXR1cm4gdC50ZXJtaW5hdGVkPSExLHQud29ya2VyUHJveHk9ZSx0Lm9yaWdpbmFsVGVybWluYXRlPXQudGVybWluYXRlLHQudGVybWluYXRlPSgpPT57dC50ZXJtaW5hdGVkPSEwLHQud29ya2VyUHJveHlbekFdKCksdC5vcmlnaW5hbFRlcm1pbmF0ZSgpfSx7d29ya2VyUHJveHk6ZSx3b3JrZXI6dH19YXN5bmMgZnVuY3Rpb24gTEkoQSxlLHQpe2xldCByO2lmKEEhPW51bGwpe2xldCBJPUE7cmV0dXJuIEkud29ya2VyUHJveHkhPT12b2lkIDA/KHI9SS53b3JrZXJQcm94eSx7d29ya2VyUHJveHk6cix3b3JrZXI6SX0pOkx0KEEpfWxldCBvPWF3YWl0IHBBKGUsdCk7cmV0dXJuIEx0KG8pfXZhciBKdD1MSTt2YXIgbUEsTyx3ZSxEZT17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe3dlPW5ldyBVaW50OEFycmF5KE8uZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSxLQT1jbGFzc3tpbml0KCl7cmV0dXJuIG1BfHwodHlwZW9mIGZldGNoPCJ1Ij9tQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK1R0KS50aGVuKGU9PmUuYXJyYXlCdWZmZXIoKSkudGhlbihlPT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShlLERlKSkudGhlbih0aGlzLl9pbml0KTptQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShUdCwiYmFzZTY0IiksRGUpLnRoZW4odGhpcy5faW5pdCksbUEpfV9pbml0KGUpe089ZS5pbnN0YW5jZSxEZS5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUoZSx0PTApe2lmKCFPKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCByPWUuYnl0ZUxlbmd0aCxvPU8uZXhwb3J0cy5tYWxsb2Mocik7d2Uuc2V0KGUsbyksdD10fHxOdW1iZXIoTy5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUobyxyKSk7bGV0IEk9Ty5leHBvcnRzLm1hbGxvYyh0KSxpPU8uZXhwb3J0cy5aU1REX2RlY29tcHJlc3MoSSx0LG8sciksQz13ZS5zbGljZShJLEkraSk7cmV0dXJuIE8uZXhwb3J0cy5mcmVlKG8pLE8uZXhwb3J0cy5mcmVlKEkpLEN9fSxUdD0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciBNdD1uZXcgS0EsSHQ9ITE7YXN5bmMgZnVuY3Rpb24gSkkoQSxlLHQpe2xldCByPSJ1bmtub3duIjt0eXBlb2YgQSE9InN0cmluZyI/cj1BLmhyZWY6QS5zdGFydHNXaXRoKCJodHRwIik/cj1BOnI9dHlwZW9mIGU8InUiP2Ake2V9LyR7QX1gOkEsci5lbmRzV2l0aCgiLmpzIikmJihyPXIuc3Vic3RyaW5nKDAsci5sZW5ndGgtMykpLHIuZW5kc1dpdGgoIi53YXNtIikmJihyPXIuc3Vic3RyaW5nKDAsci5sZW5ndGgtNSkpLHIuZW5kc1dpdGgoIi53YXNtLnpzdCIpJiYocj1yLnN1YnN0cmluZygwLHIubGVuZ3RoLTkpKTtsZXQgbz1gJHtyfS53YXNtYCxJPWF3YWl0IHRBLmdldChgJHtvfS56c3RgLHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIixwYXJhbXM6dH0pO0h0fHwoYXdhaXQgTXQuaW5pdCgpLEh0PSEwKTtsZXQgQz1NdC5kZWNvZGUobmV3IFVpbnQ4QXJyYXkoSS5kYXRhKSkuYnVmZmVyO3JldHVybihhd2FpdCBpbXBvcnQoYCR7cn0uanNgKSkuZGVmYXVsdCh7d2FzbUJpbmFyeTpDfSl9dmFyIFl0PUpJO3ZhciBxdD1hc3luYygpPT5XZWJBc3NlbWJseS52YWxpZGF0ZShuZXcgVWludDhBcnJheShbMCw5NywxMTUsMTA5LDEsMCwwLDAsMSw1LDEsOTYsMCwxLDEyMywzLDIsMSwwLDEwLDEwLDEsOCwwLDY1LDAsMjUzLDE1LDI1Myw5OCwxMV0pKTt2YXIgUHQ9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI9PSJmdW5jdGlvbiIsT3Q9bmV3IFRleHRFbmNvZGVyLHh0PW5ldyBUZXh0RGVjb2RlcigidXRmLTgiKTtmdW5jdGlvbiBUSShBLGUpe2xldCB0PXtmbGFnczoiciIsZW5jb2Rpbmc6ImJpbmFyeSJ9LHI9QS5mc19vcGVuKGUsdC5mbGFncyksST1BLmZzX3N0YXQoZSkuc2l6ZSxpPW51bGw7UHQ/aT1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoSSk6aT1uZXcgQXJyYXlCdWZmZXIoSSk7bGV0IEM9bmV3IFVpbnQ4QXJyYXkoaSk7cmV0dXJuIEEuZnNfcmVhZChyLEMsMCxJLDApLEEuZnNfY2xvc2UociksQ31mdW5jdGlvbiBLdChBLGUsdCl7bGV0IHI9bnVsbDtQdD9yPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcih0KTpyPW5ldyBBcnJheUJ1ZmZlcih0KTtsZXQgbz1uZXcgVWludDhBcnJheShyKSxJPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixlLHQpO3JldHVybiBvLnNldChJKSxvfWZ1bmN0aW9uIGsoQSxlLHQscil7bGV0IG89MDtyZXR1cm4gZSE9PW51bGwmJihvPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2FycmF5X2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQscixlLmJ1ZmZlci5ieXRlTGVuZ3RoXSksQS5IRUFQVTguc2V0KG5ldyBVaW50OEFycmF5KGUuYnVmZmVyKSxvKSksb31mdW5jdGlvbiBLKEEsZSx0KXtsZXQgcj1KU09OLnN0cmluZ2lmeShlKSxvPUEubGVuZ3RoQnl0ZXNVVEY4KHIpKzEsST1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9qc29uX2FsbG9jIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsb10pO0Euc3RyaW5nVG9VVEY4KHIsSSxvKX1mdW5jdGlvbiBOKEEsZSx0LHIpe2xldCBvPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsdF0pLEk9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSx0XSksaT1LdChBLG8sSSk7cmV0dXJuIE0ocixpLmJ1ZmZlcil9ZnVuY3Rpb24gZEEoQSxlKXtsZXQgdD1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfanNvbl9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciJdLFswLGVdKSxyPUEuVVRGOFRvU3RyaW5nKHQpO3JldHVybiBKU09OLnBhcnNlKHIpfWZ1bmN0aW9uIE1JKEEsZSx0LHIpe3IhPW51bGwmJnIubGVuZ3RoPjAmJnIuZm9yRWFjaChmdW5jdGlvbihCLGEpe3N3aXRjaChCLnR5cGUpe2Nhc2UgdS5UZXh0U3RyZWFtOntsZXQgZz1PdC5lbmNvZGUoQi5kYXRhLmRhdGEpLGY9ayhBLGcsYSwwKSxuPXtzaXplOmcuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07SyhBLG4sYSk7YnJlYWt9Y2FzZSB1Lkpzb25Db21wYXRpYmxlOntsZXQgZz1PdC5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoQi5kYXRhKSksZj1rKEEsZyxhLDApLG49e3NpemU6Zy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtLKEEsbixhKTticmVha31jYXNlIHUuQmluYXJ5U3RyZWFtOntsZXQgZz1CLmRhdGEuZGF0YSxmPWsoQSxnLGEsMCksbj17c2l6ZTpnLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O0soQSxuLGEpO2JyZWFrfWNhc2UgdS5UZXh0RmlsZTp7QS5mc193cml0ZUZpbGUoQi5kYXRhLnBhdGgsQi5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgdS5CaW5hcnlGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSB1LkltYWdlOntsZXQgZz1CLmRhdGEsZj1rKEEsZy5kYXRhLGEsMCksbj1rKEEsZy5kaXJlY3Rpb24sYSwxKSxRPXR5cGVvZiBnLm1ldGFkYXRhPy5lbnRyaWVzPCJ1Ij9BcnJheS5mcm9tKGcubWV0YWRhdGEuZW50cmllcygpKTpbXSxjPXtpbWFnZVR5cGU6Zy5pbWFnZVR5cGUsbmFtZTpnLm5hbWUsb3JpZ2luOmcub3JpZ2luLHNwYWNpbmc6Zy5zcGFjaW5nLGRpcmVjdGlvbjpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke259YCxzaXplOmcuc2l6ZSxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLG1ldGFkYXRhOlF9O0soQSxjLGEpO2JyZWFrfWNhc2UgdS5NZXNoOntsZXQgZz1CLmRhdGEsZj1rKEEsZy5wb2ludHMsYSwwKSxuPWsoQSxnLmNlbGxzLGEsMSksUT1rKEEsZy5wb2ludERhdGEsYSwyKSxjPWsoQSxnLmNlbGxEYXRhLGEsMyksRT17bWVzaFR5cGU6Zy5tZXNoVHlwZSxuYW1lOmcubmFtZSxudW1iZXJPZlBvaW50czpnLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCxudW1iZXJPZkNlbGxzOmcubnVtYmVyT2ZDZWxscyxjZWxsczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke259YCxjZWxsQnVmZmVyU2l6ZTpnLmNlbGxCdWZmZXJTaXplLG51bWJlck9mUG9pbnRQaXhlbHM6Zy5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxudW1iZXJPZkNlbGxQaXhlbHM6Zy5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWB9O0soQSxFLGEpO2JyZWFrfWNhc2UgdS5Qb2ludFNldDp7bGV0IGc9Qi5kYXRhLGY9ayhBLGcucG9pbnRzLGEsMCksbj1rKEEsZy5wb2ludERhdGEsYSwxKSxRPXtwb2ludFNldFR5cGU6Zy5wb2ludFNldFR5cGUsbmFtZTpnLm5hbWUsbnVtYmVyT2ZQb2ludHM6Zy5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpnLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bn1gfTtLKEEsUSxhKTticmVha31jYXNlIHUuVHJhbnNmb3JtTGlzdDp7bGV0IGc9Qi5kYXRhLGY9W10sbj0wO2cuZm9yRWFjaChRPT57bGV0IGM9IiIsRT0iIjtRLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoYz1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2soQSxRLmZpeGVkUGFyYW1ldGVycyxhLG4pfWAsbis9MSxFPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7ayhBLFEucGFyYW1ldGVycyxhLG4pfWAsbis9MSk7bGV0IG09e3RyYW5zZm9ybVR5cGU6US50cmFuc2Zvcm1UeXBlLG51bWJlck9mRml4ZWRQYXJhbWV0ZXJzOlEubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnMsbnVtYmVyT2ZQYXJhbWV0ZXJzOlEubnVtYmVyT2ZQYXJhbWV0ZXJzLG5hbWU6US5uYW1lLGlucHV0U3BhY2VOYW1lOlEuaW5wdXRTcGFjZU5hbWUsb3V0cHV0U3BhY2VOYW1lOlEub3V0cHV0U3BhY2VOYW1lLHBhcmFtZXRlcnM6RSxmaXhlZFBhcmFtZXRlcnM6Y307Zi5wdXNoKG0pfSksSyhBLGYsYSk7YnJlYWt9Y2FzZSB1LlBvbHlEYXRhOntsZXQgZz1CLmRhdGEsZj1rKEEsZy5wb2ludHMsYSwwKSxuPWsoQSxnLnZlcnRpY2VzLGEsMSksUT1rKEEsZy5saW5lcyxhLDIpLGM9ayhBLGcucG9seWdvbnMsYSwzKSxFPWsoQSxnLnRyaWFuZ2xlU3RyaXBzLGEsNCksbT1rKEEsZy5wb2ludERhdGEsYSw1KSxSPWsoQSxnLnBvaW50RGF0YSxhLDYpLEY9e3BvbHlEYXRhVHlwZTpnLnBvbHlEYXRhVHlwZSxuYW1lOmcubmFtZSxudW1iZXJPZlBvaW50czpnLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCx2ZXJ0aWNlc0J1ZmZlclNpemU6Zy52ZXJ0aWNlc0J1ZmZlclNpemUsdmVydGljZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtufWAsbGluZXNCdWZmZXJTaXplOmcubGluZXNCdWZmZXJTaXplLGxpbmVzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLHBvbHlnb25zQnVmZmVyU2l6ZTpnLnBvbHlnb25zQnVmZmVyU2l6ZSxwb2x5Z29uczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCx0cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU6Zy50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemUsdHJpYW5nbGVTdHJpcHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtFfWAsbnVtYmVyT2ZQb2ludFBpeGVsczpnLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bX1gLG51bWJlck9mQ2VsbFBpeGVsczpnLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1J9YH07SyhBLEYsYSk7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgaW5wdXQgSW50ZXJmYWNlVHlwZSIpfX0pLEEucmVzZXRNb2R1bGVTdGRvdXQoKSxBLnJlc2V0TW9kdWxlU3RkZXJyKCk7bGV0IG89QS5zdGFja1NhdmUoKSxJPTA7dHJ5e0k9QS5jYWxsTWFpbihlLnNsaWNlKCkpfWNhdGNoKEIpe3Rocm93IHR5cGVvZiBCPT0ibnVtYmVyIiYmKGNvbnNvbGUubG9nKCJFeGNlcHRpb24gd2hpbGUgcnVubmluZyBwaXBlbGluZToiKSxjb25zb2xlLmxvZygic3Rkb3V0OiIsQS5nZXRNb2R1bGVTdGRvdXQoKSksY29uc29sZS5lcnJvcigic3RkZXJyOiIsQS5nZXRNb2R1bGVTdGRlcnIoKSksdHlwZW9mIEEuZ2V0RXhjZXB0aW9uTWVzc2FnZTwidSI/Y29uc29sZS5lcnJvcigiZXhjZXB0aW9uOiIsQS5nZXRFeGNlcHRpb25NZXNzYWdlKEIpKTpjb25zb2xlLmVycm9yKCJCdWlsZCBtb2R1bGUgaW4gRGVidWcgbW9kZSBmb3IgZXhjZXB0aW9uIG1lc3NhZ2UgaW5mb3JtYXRpb24uIikpLEJ9ZmluYWxseXtBLnN0YWNrUmVzdG9yZShvKX1sZXQgaT1BLmdldE1vZHVsZVN0ZG91dCgpLEM9QS5nZXRNb2R1bGVTdGRlcnIoKSxsPVtdO3JldHVybiB0IT1udWxsJiZ0Lmxlbmd0aD4wJiZJPT09MCYmdC5mb3JFYWNoKGZ1bmN0aW9uKEIsYSl7bGV0IGc9bnVsbDtzd2l0Y2goQi50eXBlKXtjYXNlIHUuVGV4dFN0cmVhbTp7bGV0IG49QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsYSwwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxhLDBdKSxjPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixuLFEpO2c9e2RhdGE6eHQuZGVjb2RlKGMpfTticmVha31jYXNlIHUuSnNvbkNvbXBhdGlibGU6e2xldCBuPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGEsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsYSwwXSksYz1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsbixRKTtnPUpTT04ucGFyc2UoeHQuZGVjb2RlKGMpKTticmVha31jYXNlIHUuQmluYXJ5U3RyZWFtOntsZXQgbj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxhLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGEsMF0pO2c9e2RhdGE6S3QoQSxuLFEpfTticmVha31jYXNlIHUuVGV4dEZpbGU6e2c9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpBLmZzX3JlYWRGaWxlKEIuZGF0YS5wYXRoLHtlbmNvZGluZzoidXRmOCJ9KX07YnJlYWt9Y2FzZSB1LkJpbmFyeUZpbGU6e2c9e3BhdGg6Qi5kYXRhLnBhdGgsZGF0YTpUSShBLEIuZGF0YS5wYXRoKX07YnJlYWt9Y2FzZSB1LkltYWdlOntsZXQgbj1kQShBLGEpO24uZGF0YT1OKEEsYSwwLG4uaW1hZ2VUeXBlLmNvbXBvbmVudFR5cGUpLG4uZGlyZWN0aW9uPU4oQSxhLDEsai5GbG9hdDY0KSxuLm1ldGFkYXRhPW5ldyBNYXAobi5tZXRhZGF0YSksZz1uO2JyZWFrfWNhc2UgdS5NZXNoOntsZXQgbj1kQShBLGEpO24ubnVtYmVyT2ZQb2ludHM+MD9uLnBvaW50cz1OKEEsYSwwLG4ubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTpuLnBvaW50cz1NKG4ubWVzaFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksbi5udW1iZXJPZkNlbGxzPjA/bi5jZWxscz1OKEEsYSwxLG4ubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUpOm4uY2VsbHM9TShuLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksbi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/bi5wb2ludERhdGE9TihBLGEsMixuLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpuLnBvaW50RGF0YT1NKG4ubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuLm51bWJlck9mQ2VsbFBpeGVscz4wP24uY2VsbERhdGE9TihBLGEsMyxuLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOm4uY2VsbERhdGE9TShuLm1lc2hUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxnPW47YnJlYWt9Y2FzZSB1LlBvaW50U2V0OntsZXQgbj1kQShBLGEpO24ubnVtYmVyT2ZQb2ludHM+MD9uLnBvaW50cz1OKEEsYSwwLG4ucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6bi5wb2ludHM9TShuLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuLm51bWJlck9mUG9pbnRQaXhlbHM+MD9uLnBvaW50RGF0YT1OKEEsYSwxLG4ucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpuLnBvaW50RGF0YT1NKG4ucG9pbnRTZXRUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksZz1uO2JyZWFrfWNhc2UgdS5UcmFuc2Zvcm1MaXN0OntsZXQgbj1kQShBLGEpLFE9MDtuLmZvckVhY2goKGMsRSk9PntjLnRyYW5zZm9ybVR5cGUudHJhbnNmb3JtUGFyYW1ldGVyaXphdGlvbiE9PSJDb21wb3NpdGUiJiYoYy5udW1iZXJPZkZpeGVkUGFyYW1ldGVycz4wJiYobltFXS5maXhlZFBhcmFtZXRlcnM9TihBLGEsUSxqLkZsb2F0NjQpKSxRKz0xLGMubnVtYmVyT2ZQYXJhbWV0ZXJzPjAmJihuW0VdLnBhcmFtZXRlcnM9TihBLGEsUSxjLnRyYW5zZm9ybVR5cGUucGFyYW1ldGVyc1ZhbHVlVHlwZSkpLFErPTEpfSksZz1uO2JyZWFrfWNhc2UgdS5Qb2x5RGF0YTp7bGV0IG49ZEEoQSxhKTtuLm51bWJlck9mUG9pbnRzPjA/bi5wb2ludHM9TihBLGEsMCxqLkZsb2F0MzIpOm4ucG9pbnRzPW5ldyBGbG9hdDMyQXJyYXksbi52ZXJ0aWNlc0J1ZmZlclNpemU+MD9uLnZlcnRpY2VzPU4oQSxhLDEsYi5VSW50MzIpOm4udmVydGljZXM9bmV3IFVpbnQzMkFycmF5LG4ubGluZXNCdWZmZXJTaXplPjA/bi5saW5lcz1OKEEsYSwyLGIuVUludDMyKTpuLmxpbmVzPW5ldyBVaW50MzJBcnJheSxuLnBvbHlnb25zQnVmZmVyU2l6ZT4wP24ucG9seWdvbnM9TihBLGEsMyxiLlVJbnQzMik6bi5wb2x5Z29ucz1uZXcgVWludDMyQXJyYXksbi50cmlhbmdsZVN0cmlwc0J1ZmZlclNpemU+MD9uLnRyaWFuZ2xlU3RyaXBzPU4oQSxhLDQsYi5VSW50MzIpOm4udHJpYW5nbGVTdHJpcHM9bmV3IFVpbnQzMkFycmF5LG4ubnVtYmVyT2ZQb2ludFBpeGVscz4wP24ucG9pbnREYXRhPU4oQSxhLDUsbi5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOm4ucG9pbnREYXRhPU0obi5wb2x5RGF0YVR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuLm51bWJlck9mQ2VsbFBpeGVscz4wP24uY2VsbERhdGE9TihBLGEsNixuLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpuLmNlbGxEYXRhPU0obi5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGc9bjticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgSW50ZXJmYWNlVHlwZSIpfWxldCBmPXt0eXBlOkIudHlwZSxkYXRhOmd9O2wucHVzaChmKX0pLHtyZXR1cm5WYWx1ZTpJLHN0ZG91dDppLHN0ZGVycjpDLG91dHB1dHM6bH19dmFyIFd0PU1JO3ZhciBIST10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcjwidSI7ZnVuY3Rpb24gWUkoQSxlKXtpZihBPT1udWxsKXJldHVybltdO2xldCB0PVtdO2ZvcihsZXQgcj0wO3I8QS5sZW5ndGg7cisrKXtsZXQgbz1xSShBW3JdLGUpO28hPT1udWxsJiZ0LnB1c2gobyl9cmV0dXJuIHR9ZnVuY3Rpb24gcUkoQSxlKXtpZihBPT1udWxsKXJldHVybiBudWxsO2xldCB0PW51bGw7cmV0dXJuIEEuYnVmZmVyIT09dm9pZCAwP3Q9QS5idWZmZXI6QS5ieXRlTGVuZ3RoIT09dm9pZCAwJiYodD1BKSxISSYmdCBpbnN0YW5jZW9mIFNoYXJlZEFycmF5QnVmZmVyP251bGw6ZT90OnQuc2xpY2UoMCl9dmFyIGp0PVlJO2Z1bmN0aW9uIE9JKEEpe3JldHVybltBLmRhdGEsQS5kaXJlY3Rpb25dfXZhciB2dD1PSTtmdW5jdGlvbiB4SShBKXtyZXR1cm5bQS5wb2ludHMsQS5wb2ludERhdGEsQS5jZWxscyxBLmNlbGxEYXRhXX12YXIgWnQ9eEk7ZnVuY3Rpb24gUEkoQSl7cmV0dXJuW0EucG9pbnRzLEEudmVydGljZXMsQS5saW5lcyxBLnBvbHlnb25zLEEudHJpYW5nbGVTdHJpcHMsQS5wb2ludERhdGEsQS5jZWxsRGF0YV19dmFyIFZ0PVBJO3ZhciBLSTtmdW5jdGlvbiBXQSgpe3JldHVybiBLSX12YXIgV0k7ZnVuY3Rpb24gWHQoKXtyZXR1cm4gV0l9dmFyIGpJO2Z1bmN0aW9uIGpBKCl7cmV0dXJuIGpJfXZhciBSZT1uZXcgTWFwO2Z1bmN0aW9uIHZJKCl7bGV0IEE9akEoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1udWxsKSxBfWZ1bmN0aW9uIHp0KCl7bGV0IEE9V0EoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT1uZXcgVVJMKCIvcGlwZWxpbmVzIixkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pLmhyZWYpLEF9ZnVuY3Rpb24gdkEoKXtsZXQgQT1YdCgpO3JldHVybiB0eXBlb2YgQT4idSImJihBPXt9KSxBfWFzeW5jIGZ1bmN0aW9uIFpJKEEsZSx0KXtsZXQgcj1BLG89QTtpZih0eXBlb2YgQSE9InN0cmluZyImJihyPW5ldyBVUkwoQS5ocmVmKSxvPXIuaHJlZiksUmUuaGFzKG8pKXJldHVybiBSZS5nZXQobyk7e2xldCBJPWF3YWl0IFl0KEEsZT8udG9TdHJpbmcoKT8/enQoKSx0Pz92QSgpKTtyZXR1cm4gUmUuc2V0KG8sSSksSX19YXN5bmMgZnVuY3Rpb24gVkkoQSxlLHQscixvKXtpZighYXdhaXQgcXQoKSl7bGV0IEU9IldlYkFzc2VtYmx5IFNJTUQgc3VwcG9ydCBpcyByZXF1aXJlZCAtLSBwbGVhc2UgdXBkYXRlIHlvdXIgYnJvd3Nlci4iO3Rocm93IGFsZXJ0KEUpLG5ldyBFcnJvcihFKX1sZXQgST1vPy53ZWJXb3JrZXI/P251bGw7aWYoST09PSExKXtsZXQgRT1hd2FpdCBaSShBLnRvU3RyaW5nKCksbz8ucGlwZWxpbmVCYXNlVXJsLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P3ZBKCkpO3JldHVybiBXdChFLGUsdCxyKX1sZXQgaT1JLEM9bz8ucGlwZWxpbmVXb3JrZXJVcmw/P3ZJKCksbD10eXBlb2YgQyE9InN0cmluZyImJnR5cGVvZiBDPy5ocmVmPCJ1Ij9DLmhyZWY6Qyx7d29ya2VyUHJveHk6Qix3b3JrZXI6YX09YXdhaXQgSnQoaSxsLG8/LnBpcGVsaW5lUXVlcnlQYXJhbXM/P3ZBKCkpO2k9YTtsZXQgZz1bXTtyIT1udWxsJiZyLmxlbmd0aD4wJiZyLmZvckVhY2goZnVuY3Rpb24oRSl7aWYoRS50eXBlPT09dS5CaW5hcnlTdHJlYW0pe2xldCBtPUUuZGF0YS5kYXRhO2cucHVzaChtKX1lbHNlIGlmKEUudHlwZT09PXUuQmluYXJ5RmlsZSl7bGV0IG09RS5kYXRhLmRhdGE7Zy5wdXNoKG0pfWVsc2UgaWYoRS50eXBlPT09dS5JbWFnZSl7bGV0IG09RS5kYXRhO20uZGF0YSE9PW51bGwmJmcucHVzaCguLi52dChtKSl9ZWxzZSBpZihFLnR5cGU9PT11Lk1lc2gpe2xldCBtPUUuZGF0YTtnLnB1c2goLi4uWnQobSkpfWVsc2UgaWYoRS50eXBlPT09dS5Qb2x5RGF0YSl7bGV0IG09RS5kYXRhO2cucHVzaCguLi5WdChtKSl9fSk7bGV0IGY9bz8ucGlwZWxpbmVCYXNlVXJsPz96dCgpLG49dHlwZW9mIGYhPSJzdHJpbmciJiZ0eXBlb2YgZj8uaHJlZjwidSI/Zi5ocmVmOmYsUT1yIT1udWxsPyRBKHIsanQoZyxvPy5ub0NvcHkpKTpudWxsLGM9YXdhaXQgQi5ydW5QaXBlbGluZShBLnRvU3RyaW5nKCksbixlLHQsUSxvPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz92QSgpKTtyZXR1cm57cmV0dXJuVmFsdWU6Yy5yZXR1cm5WYWx1ZSxzdGRvdXQ6Yy5zdGRvdXQsc3RkZXJyOmMuc3RkZXJyLG91dHB1dHM6Yy5vdXRwdXRzLHdlYldvcmtlcjppfX12YXIgeT1WSTt2YXIgWEk9bnVsbDtmdW5jdGlvbiBfdCgpe3JldHVybiBYSX12YXIgekk9bmV3IE1hcChbXSksckE9ekk7dmFyIF9JPW5ldyBNYXAoW1siaDUiLCJoZGY1Il0sWyJoZGY1IiwiaGRmNSJdLFsidHh0IiwidHh0Il0sWyJtYXQiLCJtYXQiXSxbInhmbSIsIm1uYyJdLFsiaXd0Iiwid2FzbSJdLFsiaXd0LmNib3IiLCJ3YXNtIl0sWyJpd3QuY2Jvci56c3QiLCJ3YXNtLXpzdGQiXV0pLElBPV9JO3ZhciBGZSwkST1gaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9AaXRrLXdhc20vdHJhbnNmb3JtLWlvQCR7WkF9L2Rpc3QvcGlwZWxpbmVzYDtmdW5jdGlvbiBWbihBKXtGZT1BfWZ1bmN0aW9uIGgoKXtpZih0eXBlb2YgRmU8InUiKXJldHVybiBGZTtsZXQgQT1XQSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTokSX12YXIgU2UsQW89bnVsbDtmdW5jdGlvbiAkdChBKXtTZT1BfWZ1bmN0aW9uIGQoKXtpZih0eXBlb2YgU2U8InUiKXJldHVybiBTZTtsZXQgQT1qQSgpO3JldHVybiB0eXBlb2YgQTwidSI/QTpBb312YXIgb0E9bnVsbDthc3luYyBmdW5jdGlvbiBBcigpe2xldCBBPWQoKSxlPXR5cGVvZiBBIT0ic3RyaW5nIiYmdHlwZW9mIEE/LmhyZWY8InUiP0EuaHJlZjpBO29BPWF3YWl0IHBBKGUpfWZ1bmN0aW9uIHRzKEEpe29BPUF9YXN5bmMgZnVuY3Rpb24gRCgpe2lmKG9BIT09bnVsbClyZXR1cm4gb0EudGVybWluYXRlZCYmYXdhaXQgQXIoKSxvQTtsZXQgQT1fdCgpO3JldHVybiBBIT09bnVsbD9BOihhd2FpdCBBcigpLG9BKX1hc3luYyBmdW5jdGlvbiBlbyhBLGU9e30pe2xldCB0PVt7dHlwZTp1Lkpzb25Db21wYXRpYmxlfSx7dHlwZTp1LlRyYW5zZm9ybUxpc3R9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBFPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KEUpfX1sZXQgbz1be3R5cGU6dS5CaW5hcnlGaWxlLGRhdGE6cn1dLEk9W10saT1yLnBhdGg7SS5wdXNoKGkpLEkucHVzaCgiMCIpLEkucHVzaCgiMSIpLEkucHVzaCgiLS1tZW1vcnktaW8iKSxlLmZsb2F0UGFyYW1ldGVycyYmZS5mbG9hdFBhcmFtZXRlcnMmJkkucHVzaCgiLS1mbG9hdC1wYXJhbWV0ZXJzIik7bGV0IEI9ImhkZjUtcmVhZC10cmFuc2Zvcm0iLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IEQoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmYsc3RkZXJyOm4sb3V0cHV0czpRfT1hd2FpdCB5KEIsSSx0LG8se3BpcGVsaW5lQmFzZVVybDpoKCkscGlwZWxpbmVXb3JrZXJVcmw6ZCgpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihmIT09MCYmbiE9PSIiKXRocm93IG5ldyBFcnJvcihuKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOlFbMF0/LmRhdGEsdHJhbnNmb3JtOlFbMV0/LmRhdGF9fXZhciBrZT1lbzthc3luYyBmdW5jdGlvbiB0byhBLGUsdD17fSl7bGV0IHI9W3t0eXBlOnUuSnNvbkNvbXBhdGlibGV9LHt0eXBlOnUuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTp1LlRyYW5zZm9ybUxpc3QsZGF0YTpBfV0sST1bXTtJLnB1c2goIjAiKSxJLnB1c2goIjAiKTtsZXQgbD1lO0kucHVzaChsKSxJLnB1c2goIi0tbWVtb3J5LWlvIiksdC5mbG9hdFBhcmFtZXRlcnMmJnQuZmxvYXRQYXJhbWV0ZXJzJiZJLnB1c2goIi0tZmxvYXQtcGFyYW1ldGVycyIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJkkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0iaGRmNS13cml0ZS10cmFuc2Zvcm0iLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IEQoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmYsc3RkZXJyOm4sb3V0cHV0czpRfT1hd2FpdCB5KEIsSSxyLG8se3BpcGVsaW5lQmFzZVVybDpoKCkscGlwZWxpbmVXb3JrZXJVcmw6ZCgpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihmIT09MCYmbiE9PSIiKXRocm93IG5ldyBFcnJvcihuKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpRWzBdPy5kYXRhLHNlcmlhbGl6ZWRUcmFuc2Zvcm06UVsxXT8uZGF0YX19dmFyIFVlPXRvO2FzeW5jIGZ1bmN0aW9uIHJvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOnUuSnNvbkNvbXBhdGlibGV9LHt0eXBlOnUuVHJhbnNmb3JtTGlzdH1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IEU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoRSl9fWxldCBvPVt7dHlwZTp1LkJpbmFyeUZpbGUsZGF0YTpyfV0sST1bXSxpPXIucGF0aDtJLnB1c2goaSksSS5wdXNoKCIwIiksSS5wdXNoKCIxIiksSS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuZmxvYXRQYXJhbWV0ZXJzJiZlLmZsb2F0UGFyYW1ldGVycyYmSS5wdXNoKCItLWZsb2F0LXBhcmFtZXRlcnMiKTtsZXQgQj0ibWF0LXJlYWQtdHJhbnNmb3JtIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCBEKCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpmLHN0ZGVycjpuLG91dHB1dHM6UX09YXdhaXQgeShCLEksdCxvLHtwaXBlbGluZUJhc2VVcmw6aCgpLHBpcGVsaW5lV29ya2VyVXJsOmQoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoZiE9PTAmJm4hPT0iIil0aHJvdyBuZXcgRXJyb3Iobik7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpRWzBdPy5kYXRhLHRyYW5zZm9ybTpRWzFdPy5kYXRhfX12YXIgTmU9cm87YXN5bmMgZnVuY3Rpb24gSW8oQSxlLHQ9e30pe2xldCByPVt7dHlwZTp1Lkpzb25Db21wYXRpYmxlfSx7dHlwZTp1LkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6dS5UcmFuc2Zvcm1MaXN0LGRhdGE6QX1dLEk9W107SS5wdXNoKCIwIiksSS5wdXNoKCIwIik7bGV0IGw9ZTtJLnB1c2gobCksSS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuZmxvYXRQYXJhbWV0ZXJzJiZ0LmZsb2F0UGFyYW1ldGVycyYmSS5wdXNoKCItLWZsb2F0LXBhcmFtZXRlcnMiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZJLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9Im1hdC13cml0ZS10cmFuc2Zvcm0iLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IEQoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmYsc3RkZXJyOm4sb3V0cHV0czpRfT1hd2FpdCB5KEIsSSxyLG8se3BpcGVsaW5lQmFzZVVybDpoKCkscGlwZWxpbmVXb3JrZXJVcmw6ZCgpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihmIT09MCYmbiE9PSIiKXRocm93IG5ldyBFcnJvcihuKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpRWzBdPy5kYXRhLHNlcmlhbGl6ZWRUcmFuc2Zvcm06UVsxXT8uZGF0YX19dmFyIEdlPUlvO2FzeW5jIGZ1bmN0aW9uIG9vKEEsZT17fSl7bGV0IHQ9W3t0eXBlOnUuSnNvbkNvbXBhdGlibGV9LHt0eXBlOnUuVHJhbnNmb3JtTGlzdH1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IEU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoRSl9fWxldCBvPVt7dHlwZTp1LkJpbmFyeUZpbGUsZGF0YTpyfV0sST1bXSxpPXIucGF0aDtJLnB1c2goaSksSS5wdXNoKCIwIiksSS5wdXNoKCIxIiksSS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuZmxvYXRQYXJhbWV0ZXJzJiZlLmZsb2F0UGFyYW1ldGVycyYmSS5wdXNoKCItLWZsb2F0LXBhcmFtZXRlcnMiKTtsZXQgQj0ibW5jLXJlYWQtdHJhbnNmb3JtIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCBEKCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpmLHN0ZGVycjpuLG91dHB1dHM6UX09YXdhaXQgeShCLEksdCxvLHtwaXBlbGluZUJhc2VVcmw6aCgpLHBpcGVsaW5lV29ya2VyVXJsOmQoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoZiE9PTAmJm4hPT0iIil0aHJvdyBuZXcgRXJyb3Iobik7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpRWzBdPy5kYXRhLHRyYW5zZm9ybTpRWzFdPy5kYXRhfX12YXIgYmU9b287YXN5bmMgZnVuY3Rpb24gaW8oQSxlLHQ9e30pe2xldCByPVt7dHlwZTp1Lkpzb25Db21wYXRpYmxlfSx7dHlwZTp1LkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6dS5UcmFuc2Zvcm1MaXN0LGRhdGE6QX1dLEk9W107SS5wdXNoKCIwIiksSS5wdXNoKCIwIik7bGV0IGw9ZTtJLnB1c2gobCksSS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuZmxvYXRQYXJhbWV0ZXJzJiZ0LmZsb2F0UGFyYW1ldGVycyYmSS5wdXNoKCItLWZsb2F0LXBhcmFtZXRlcnMiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZJLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9Im1uYy13cml0ZS10cmFuc2Zvcm0iLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IEQoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmYsc3RkZXJyOm4sb3V0cHV0czpRfT1hd2FpdCB5KEIsSSxyLG8se3BpcGVsaW5lQmFzZVVybDpoKCkscGlwZWxpbmVXb3JrZXJVcmw6ZCgpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihmIT09MCYmbiE9PSIiKXRocm93IG5ldyBFcnJvcihuKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpRWzBdPy5kYXRhLHNlcmlhbGl6ZWRUcmFuc2Zvcm06UVsxXT8uZGF0YX19dmFyIExlPWlvO2FzeW5jIGZ1bmN0aW9uIGFvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOnUuSnNvbkNvbXBhdGlibGV9LHt0eXBlOnUuVHJhbnNmb3JtTGlzdH1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IEU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoRSl9fWxldCBvPVt7dHlwZTp1LkJpbmFyeUZpbGUsZGF0YTpyfV0sST1bXSxpPXIucGF0aDtJLnB1c2goaSksSS5wdXNoKCIwIiksSS5wdXNoKCIxIiksSS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuZmxvYXRQYXJhbWV0ZXJzJiZlLmZsb2F0UGFyYW1ldGVycyYmSS5wdXNoKCItLWZsb2F0LXBhcmFtZXRlcnMiKTtsZXQgQj0idHh0LXJlYWQtdHJhbnNmb3JtIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCBEKCkpO2xldHt3ZWJXb3JrZXI6ZyxyZXR1cm5WYWx1ZTpmLHN0ZGVycjpuLG91dHB1dHM6UX09YXdhaXQgeShCLEksdCxvLHtwaXBlbGluZUJhc2VVcmw6aCgpLHBpcGVsaW5lV29ya2VyVXJsOmQoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoZiE9PTAmJm4hPT0iIil0aHJvdyBuZXcgRXJyb3Iobik7cmV0dXJue3dlYldvcmtlcjpnLGNvdWxkUmVhZDpRWzBdPy5kYXRhLHRyYW5zZm9ybTpRWzFdPy5kYXRhfX12YXIgSmU9YW87YXN5bmMgZnVuY3Rpb24gZ28oQSxlLHQ9e30pe2xldCByPVt7dHlwZTp1Lkpzb25Db21wYXRpYmxlfSx7dHlwZTp1LkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sbz1be3R5cGU6dS5UcmFuc2Zvcm1MaXN0LGRhdGE6QX1dLEk9W107SS5wdXNoKCIwIiksSS5wdXNoKCIwIik7bGV0IGw9ZTtJLnB1c2gobCksSS5wdXNoKCItLW1lbW9yeS1pbyIpLHQuZmxvYXRQYXJhbWV0ZXJzJiZ0LmZsb2F0UGFyYW1ldGVycyYmSS5wdXNoKCItLWZsb2F0LXBhcmFtZXRlcnMiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZJLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IEI9InR4dC13cml0ZS10cmFuc2Zvcm0iLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IEQoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmYsc3RkZXJyOm4sb3V0cHV0czpRfT1hd2FpdCB5KEIsSSxyLG8se3BpcGVsaW5lQmFzZVVybDpoKCkscGlwZWxpbmVXb3JrZXJVcmw6ZCgpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihmIT09MCYmbiE9PSIiKXRocm93IG5ldyBFcnJvcihuKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRXcml0ZTpRWzBdPy5kYXRhLHNlcmlhbGl6ZWRUcmFuc2Zvcm06UVsxXT8uZGF0YX19dmFyIFRlPWdvO2FzeW5jIGZ1bmN0aW9uIG5vKEEsZT17fSl7bGV0IHQ9W3t0eXBlOnUuSnNvbkNvbXBhdGlibGV9LHt0eXBlOnUuVHJhbnNmb3JtTGlzdH1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IEU9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkoRSl9fWxldCBvPVt7dHlwZTp1LkJpbmFyeUZpbGUsZGF0YTpyfV0sST1bXSxpPXIucGF0aDtJLnB1c2goaSksSS5wdXNoKCIwIiksSS5wdXNoKCIxIiksSS5wdXNoKCItLW1lbW9yeS1pbyIpLGUuZmxvYXRQYXJhbWV0ZXJzJiZlLmZsb2F0UGFyYW1ldGVycyYmSS5wdXNoKCItLWZsb2F0LXBhcmFtZXRlcnMiKTtsZXQgQj0id2FzbS1yZWFkLXRyYW5zZm9ybSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgRCgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6ZixzdGRlcnI6bixvdXRwdXRzOlF9PWF3YWl0IHkoQixJLHQsbyx7cGlwZWxpbmVCYXNlVXJsOmgoKSxwaXBlbGluZVdvcmtlclVybDpkKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGYhPT0wJiZuIT09IiIpdGhyb3cgbmV3IEVycm9yKG4pO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFJlYWQ6UVswXT8uZGF0YSx0cmFuc2Zvcm06UVsxXT8uZGF0YX19dmFyIE1lPW5vO2FzeW5jIGZ1bmN0aW9uIHNvKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6dS5Kc29uQ29tcGF0aWJsZX0se3R5cGU6dS5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLG89W3t0eXBlOnUuVHJhbnNmb3JtTGlzdCxkYXRhOkF9XSxJPVtdO0kucHVzaCgiMCIpLEkucHVzaCgiMCIpO2xldCBsPWU7SS5wdXNoKGwpLEkucHVzaCgiLS1tZW1vcnktaW8iKSx0LmZsb2F0UGFyYW1ldGVycyYmdC5mbG9hdFBhcmFtZXRlcnMmJkkucHVzaCgiLS1mbG9hdC1wYXJhbWV0ZXJzIiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmSS5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBCPSJ3YXNtLXdyaXRlLXRyYW5zZm9ybSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgRCgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6ZixzdGRlcnI6bixvdXRwdXRzOlF9PWF3YWl0IHkoQixJLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmgoKSxwaXBlbGluZVdvcmtlclVybDpkKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGYhPT0wJiZuIT09IiIpdGhyb3cgbmV3IEVycm9yKG4pO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOlFbMF0/LmRhdGEsc2VyaWFsaXplZFRyYW5zZm9ybTpRWzFdPy5kYXRhfX12YXIgSGU9c287YXN5bmMgZnVuY3Rpb24gQm8oQSxlPXt9KXtsZXQgdD1be3R5cGU6dS5Kc29uQ29tcGF0aWJsZX0se3R5cGU6dS5UcmFuc2Zvcm1MaXN0fV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgRT1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShFKX19bGV0IG89W3t0eXBlOnUuQmluYXJ5RmlsZSxkYXRhOnJ9XSxJPVtdLGk9ci5wYXRoO0kucHVzaChpKSxJLnB1c2goIjAiKSxJLnB1c2goIjEiKSxJLnB1c2goIi0tbWVtb3J5LWlvIiksZS5mbG9hdFBhcmFtZXRlcnMmJmUuZmxvYXRQYXJhbWV0ZXJzJiZJLnB1c2goIi0tZmxvYXQtcGFyYW1ldGVycyIpO2xldCBCPSJ3YXNtLXpzdGQtcmVhZC10cmFuc2Zvcm0iLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IEQoKSk7bGV0e3dlYldvcmtlcjpnLHJldHVyblZhbHVlOmYsc3RkZXJyOm4sb3V0cHV0czpRfT1hd2FpdCB5KEIsSSx0LG8se3BpcGVsaW5lQmFzZVVybDpoKCkscGlwZWxpbmVXb3JrZXJVcmw6ZCgpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihmIT09MCYmbiE9PSIiKXRocm93IG5ldyBFcnJvcihuKTtyZXR1cm57d2ViV29ya2VyOmcsY291bGRSZWFkOlFbMF0/LmRhdGEsdHJhbnNmb3JtOlFbMV0/LmRhdGF9fXZhciBZZT1Cbzthc3luYyBmdW5jdGlvbiBDbyhBLGUsdD17fSl7bGV0IHI9W3t0eXBlOnUuSnNvbkNvbXBhdGlibGV9LHt0eXBlOnUuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxvPVt7dHlwZTp1LlRyYW5zZm9ybUxpc3QsZGF0YTpBfV0sST1bXTtJLnB1c2goIjAiKSxJLnB1c2goIjAiKTtsZXQgbD1lO0kucHVzaChsKSxJLnB1c2goIi0tbWVtb3J5LWlvIiksdC5mbG9hdFBhcmFtZXRlcnMmJnQuZmxvYXRQYXJhbWV0ZXJzJiZJLnB1c2goIi0tZmxvYXQtcGFyYW1ldGVycyIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJkkucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgQj0id2FzbS16c3RkLXdyaXRlLXRyYW5zZm9ybSIsYT10Py53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgRCgpKTtsZXR7d2ViV29ya2VyOmcscmV0dXJuVmFsdWU6ZixzdGRlcnI6bixvdXRwdXRzOlF9PWF3YWl0IHkoQixJLHIsbyx7cGlwZWxpbmVCYXNlVXJsOmgoKSxwaXBlbGluZVdvcmtlclVybDpkKCksd2ViV29ya2VyOmEsbm9Db3B5OnQ/Lm5vQ29weX0pO2lmKGYhPT0wJiZuIT09IiIpdGhyb3cgbmV3IEVycm9yKG4pO3JldHVybnt3ZWJXb3JrZXI6Zyxjb3VsZFdyaXRlOlFbMF0/LmRhdGEsc2VyaWFsaXplZFRyYW5zZm9ybTpRWzFdPy5kYXRhfX12YXIgcWU9Q287dmFyIFFvPW5ldyBNYXAoW1siaGRmNSIsW2tlLFVlXV0sWyJtYXQiLFtOZSxHZV1dLFsibW5jIixbYmUsTGVdXSxbInR4dCIsW0plLFRlXV0sWyJ3YXNtIixbTWUsSGVdXSxbIndhc21ac3RkIixbWWUscWVdXV0pLGlBPVFvO2FzeW5jIGZ1bmN0aW9uIEVvKEEsZT17fSl7bGV0IHQ9QS50eXBlPz8iIixyPUEubmFtZT8/QS5wYXRoPz8iZmlsZU5hbWUiLG89YUEocikudG9Mb3dlckNhc2UoKSxJPWU/LndlYldvcmtlcixpPUE7aWYoQSBpbnN0YW5jZW9mIEJsb2Ipe2xldCBuPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtpPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KG4pfX1sZXQgQz1udWxsO2lmKHQmJnJBLmhhcyh0KSlDPXJBLmdldCh0KTtlbHNlIGlmKElBLmhhcyhvKSlDPUlBLmdldChvKTtlbHNlIGZvcihsZXQgbiBvZiBpQS52YWx1ZXMoKSlpZihuWzBdIT09bnVsbCl7bGV0e3dlYldvcmtlcjpRLGNvdWxkUmVhZDpjLHRyYW5zZm9ybTpFfT1hd2FpdCBuWzBdKHtwYXRoOmkucGF0aCxkYXRhOmkuZGF0YS5zbGljZSgpfSx7ZmxvYXRQYXJhbWV0ZXJzOmUuZmxvYXRQYXJhbWV0ZXJzLHdlYldvcmtlcjpJLG5vQ29weTplPy5ub0NvcHl9KTtpZihJPVEsYylyZXR1cm57d2ViV29ya2VyOkksdHJhbnNmb3JtOkV9fWlmKCFDKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBJTyBmb3I6ICIrcik7bGV0IEI9aUEuZ2V0KEMpWzBdLHt3ZWJXb3JrZXI6YSxjb3VsZFJlYWQ6Zyx0cmFuc2Zvcm06Zn09YXdhaXQgQihpLHtmbG9hdFBhcmFtZXRlcnM6ZS5mbG9hdFBhcmFtZXRlcnMsd2ViV29ya2VyOkksbm9Db3B5OmU/Lm5vQ29weX0pO2lmKEk9YSwhZyl0aHJvdyBFcnJvcigiQ291bGQgbm90IHJlYWQ6ICIrcik7cmV0dXJue3dlYldvcmtlcjpJLHRyYW5zZm9ybTpmfX12YXIgbG89RW87YXN5bmMgZnVuY3Rpb24gZm8oQSxlLHQ9e30pe2xldCByPUEsbz10Lm1pbWVUeXBlLEk9YUEoZSkudG9Mb3dlckNhc2UoKSxpPXQud2ViV29ya2VyLEM9bnVsbDtpZih0eXBlb2YgbzwidSImJnJBLmhhcyhvKSlDPXJBLmdldChvKTtlbHNlIGlmKElBLmhhcyhJKSlDPUlBLmdldChJKTtlbHNlIGZvcihsZXQgUSBvZiBpQS52YWx1ZXMoKSlpZihRWzFdIT09bnVsbCl7bGV0e3dlYldvcmtlcjpjLGNvdWxkV3JpdGU6RSxzZXJpYWxpemVkVHJhbnNmb3JtOm19PWF3YWl0IFFbMV0ocixlLHQpO2lmKGk9YyxFKXJldHVybnt3ZWJXb3JrZXI6aSxzZXJpYWxpemVkVHJhbnNmb3JtOm19fWlmKCFDKXRocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCBJTyBmb3I6ICIrZSk7bGV0IEI9aUEuZ2V0KEMpWzFdLHt3ZWJXb3JrZXI6YSxjb3VsZFdyaXRlOmcsc2VyaWFsaXplZFRyYW5zZm9ybTpmfT1hd2FpdCBCKHIsZSx0KTtpZihpPWEsIWcpdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCB3cml0ZTogIitlKTtyZXR1cm57d2ViV29ya2VyOmksc2VyaWFsaXplZFRyYW5zZm9ybTpmfX12YXIgY289Zm87dmFyIGVyPSdkYXRhOnRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0Zi04LHZhciBEZT1PYmplY3QuZGVmaW5lUHJvcGVydHk7dmFyIGRlPShBLHQpPT57Zm9yKHZhciBlIGluIHQpRGUoQSxlLHtnZXQ6dFtlXSxlbnVtZXJhYmxlOiEwfSl9O3ZhciBFdD1TeW1ib2woIkNvbWxpbmsucHJveHkiKSxoZT1TeW1ib2woIkNvbWxpbmsuZW5kcG9pbnQiKSx5ZT1TeW1ib2woIkNvbWxpbmsucmVsZWFzZVByb3h5IiksWUE9U3ltYm9sKCJDb21saW5rLmZpbmFsaXplciIpLFFBPVN5bWJvbCgiQ29tbGluay50aHJvd24iKSxjdD1BPT50eXBlb2YgQT09Im9iamVjdCImJkEhPT1udWxsfHx0eXBlb2YgQT09ImZ1bmN0aW9uIixtZT17Y2FuSGFuZGxlOkE9PmN0KEEpJiZBW0V0XSxzZXJpYWxpemUoQSl7bGV0e3BvcnQxOnQscG9ydDI6ZX09bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiBsQShBLHQpLFtlLFtlXV19LGRlc2VyaWFsaXplKEEpe3JldHVybiBBLnN0YXJ0KCksRmUoQSl9fSx3ZT17Y2FuSGFuZGxlOkE9PmN0KEEpJiZRQSBpbiBBLHNlcmlhbGl6ZSh7dmFsdWU6QX0pe2xldCB0O3JldHVybiBBIGluc3RhbmNlb2YgRXJyb3I/dD17aXNFcnJvcjohMCx2YWx1ZTp7bWVzc2FnZTpBLm1lc3NhZ2UsbmFtZTpBLm5hbWUsc3RhY2s6QS5zdGFja319OnQ9e2lzRXJyb3I6ITEsdmFsdWU6QX0sW3QsW11dfSxkZXNlcmlhbGl6ZShBKXt0aHJvdyBBLmlzRXJyb3I/T2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoQS52YWx1ZS5tZXNzYWdlKSxBLnZhbHVlKTpBLnZhbHVlfX0sZnQ9bmV3IE1hcChbWyJwcm94eSIsbWVdLFsidGhyb3ciLHdlXV0pO2Z1bmN0aW9uIHBlKEEsdCl7Zm9yKGxldCBlIG9mIEEpaWYodD09PWV8fGU9PT0iKiJ8fGUgaW5zdGFuY2VvZiBSZWdFeHAmJmUudGVzdCh0KSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBsQShBLHQ9Z2xvYmFsVGhpcyxlPVsiKiJdKXt0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIEkocil7aWYoIXJ8fCFyLmRhdGEpcmV0dXJuO2lmKCFwZShlLHIub3JpZ2luKSl7Y29uc29sZS53YXJuKGBJbnZhbGlkIG9yaWdpbiBcJyR7ci5vcmlnaW59XCcgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOm8sdHlwZTpnLHBhdGg6Q309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sci5kYXRhKSxFPShyLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKE8pLGE7dHJ5e2xldCBzPUMuc2xpY2UoMCwtMSkucmVkdWNlKChmLEIpPT5mW0JdLEEpLG49Qy5yZWR1Y2UoKGYsQik9PmZbQl0sQSk7c3dpdGNoKGcpe2Nhc2UiR0VUIjphPW47YnJlYWs7Y2FzZSJTRVQiOnNbQy5zbGljZSgtMSlbMF1dPU8oci5kYXRhLnZhbHVlKSxhPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOmE9bi5hcHBseShzLEUpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGY9bmV3IG4oLi4uRSk7YT1HZShmKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmYscG9ydDI6Qn09bmV3IE1lc3NhZ2VDaGFubmVsO2xBKEEsQiksYT1NQShmLFtmXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjphPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2gocyl7YT17dmFsdWU6cyxbUUFdOjB9fVByb21pc2UucmVzb2x2ZShhKS5jYXRjaChzPT4oe3ZhbHVlOnMsW1FBXTowfSkpLnRoZW4ocz0+e2xldFtuLGZdPWZBKHMpO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtpZDpvfSksZiksZz09PSJSRUxFQVNFIiYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsSSksbHQodCksWUEgaW4gQSYmdHlwZW9mIEFbWUFdPT0iZnVuY3Rpb24iJiZBW1lBXSgpKX0pLmNhdGNoKHM9PntsZXRbbixmXT1mQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW1FBXTowfSk7dC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2lkOm99KSxmKX0pfSksdC5zdGFydCYmdC5zdGFydCgpfWZ1bmN0aW9uIFNlKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIGx0KEEpe1NlKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gRmUoQSx0KXtyZXR1cm4gcUEoQSxbXSx0KX1mdW5jdGlvbiBhQShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gdXQoQSl7cmV0dXJuIFcoQSx7dHlwZToiUkVMRUFTRSJ9KS50aGVuKCgpPT57bHQoQSl9KX12YXIgRUE9bmV3IFdlYWtNYXAsY0E9IkZpbmFsaXphdGlvblJlZ2lzdHJ5ImluIGdsb2JhbFRoaXMmJm5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShBPT57bGV0IHQ9KEVBLmdldChBKXx8MCktMTtFQS5zZXQoQSx0KSx0PT09MCYmdXQoQSl9KTtmdW5jdGlvbiBSZShBLHQpe2xldCBlPShFQS5nZXQodCl8fDApKzE7RUEuc2V0KHQsZSksY0EmJmNBLnJlZ2lzdGVyKEEsdCxBKX1mdW5jdGlvbiBOZShBKXtjQSYmY0EudW5yZWdpc3RlcihBKX1mdW5jdGlvbiBxQShBLHQ9W10sZT1mdW5jdGlvbigpe30pe2xldCBJPSExLHI9bmV3IFByb3h5KGUse2dldChvLGcpe2lmKGFBKEkpLGc9PT15ZSlyZXR1cm4oKT0+e05lKHIpLHV0KEEpLEk9ITB9O2lmKGc9PT0idGhlbiIpe2lmKHQubGVuZ3RoPT09MClyZXR1cm57dGhlbjooKT0+cn07bGV0IEM9VyhBLHt0eXBlOiJHRVQiLHBhdGg6dC5tYXAoRT0+RS50b1N0cmluZygpKX0pLnRoZW4oTyk7cmV0dXJuIEMudGhlbi5iaW5kKEMpfXJldHVybiBxQShBLFsuLi50LGddKX0sc2V0KG8sZyxDKXthQShJKTtsZXRbRSxhXT1mQShDKTtyZXR1cm4gVyhBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLnQsZ10ubWFwKHM9PnMudG9TdHJpbmcoKSksdmFsdWU6RX0sYSkudGhlbihPKX0sYXBwbHkobyxnLEMpe2FBKEkpO2xldCBFPXRbdC5sZW5ndGgtMV07aWYoRT09PWhlKXJldHVybiBXKEEse3R5cGU6IkVORFBPSU5UIn0pLnRoZW4oTyk7aWYoRT09PSJiaW5kIilyZXR1cm4gcUEoQSx0LnNsaWNlKDAsLTEpKTtsZXRbYSxzXT1RdChDKTtyZXR1cm4gVyhBLHt0eXBlOiJBUFBMWSIscGF0aDp0Lm1hcChuPT5uLnRvU3RyaW5nKCkpLGFyZ3VtZW50TGlzdDphfSxzKS50aGVuKE8pfSxjb25zdHJ1Y3QobyxnKXthQShJKTtsZXRbQyxFXT1RdChnKTtyZXR1cm4gVyhBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6dC5tYXAoYT0+YS50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Q30sRSkudGhlbihPKX19KTtyZXR1cm4gUmUocixBKSxyfWZ1bmN0aW9uIFVlKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIFF0KEEpe2xldCB0PUEubWFwKGZBKTtyZXR1cm5bdC5tYXAoZT0+ZVswXSksVWUodC5tYXAoZT0+ZVsxXSkpXX12YXIgRHQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gTUEoQSx0KXtyZXR1cm4gRHQuc2V0KEEsdCksQX1mdW5jdGlvbiBHZShBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbRXRdOiEwfSl9ZnVuY3Rpb24gZkEoQSl7Zm9yKGxldFt0LGVdb2YgZnQpaWYoZS5jYW5IYW5kbGUoQSkpe2xldFtJLHJdPWUuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTp0LHZhbHVlOkl9LHJdfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxEdC5nZXQoQSl8fFtdXX1mdW5jdGlvbiBPKEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuIGZ0LmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24gVyhBLHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKEk9PntsZXQgcj1rZSgpO0EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gbyhnKXshZy5kYXRhfHwhZy5kYXRhLmlkfHxnLmRhdGEuaWQhPT1yfHwoQS5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixvKSxJKGcuZGF0YSkpfSksQS5zdGFydCYmQS5zdGFydCgpLEEucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7aWQ6cn0sdCksZSl9KX1mdW5jdGlvbiBrZSgpe3JldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikudG9TdHJpbmcoMTYpKS5qb2luKCItIil9ZnVuY3Rpb24gdihBLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBBLmFwcGx5KHQsYXJndW1lbnRzKX19dmFye3RvU3RyaW5nOkxlfT1PYmplY3QucHJvdG90eXBlLHtnZXRQcm90b3R5cGVPZjpUQX09T2JqZWN0LERBPShBPT50PT57bGV0IGU9TGUuY2FsbCh0KTtyZXR1cm4gQVtlXXx8KEFbZV09ZS5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpKX0pKE9iamVjdC5jcmVhdGUobnVsbCkpLEc9QT0+KEE9QS50b0xvd2VyQ2FzZSgpLHQ9PkRBKHQpPT09QSksZEE9QT0+dD0+dHlwZW9mIHQ9PT1BLHtpc0FycmF5Omp9PUFycmF5LCQ9ZEEoInVuZGVmaW5lZCIpO2Z1bmN0aW9uIGJlKEEpe3JldHVybiBBIT09bnVsbCYmISQoQSkmJkEuY29uc3RydWN0b3IhPT1udWxsJiYhJChBLmNvbnN0cnVjdG9yKSYmVShBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKSYmQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihBKX12YXIgeXQ9RygiQXJyYXlCdWZmZXIiKTtmdW5jdGlvbiBKZShBKXtsZXQgdDtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmQXJyYXlCdWZmZXIuaXNWaWV3P3Q9QXJyYXlCdWZmZXIuaXNWaWV3KEEpOnQ9QSYmQS5idWZmZXImJnl0KEEuYnVmZmVyKSx0fXZhciBIZT1kQSgic3RyaW5nIiksVT1kQSgiZnVuY3Rpb24iKSxtdD1kQSgibnVtYmVyIiksaEE9QT0+QSE9PW51bGwmJnR5cGVvZiBBPT0ib2JqZWN0IixZZT1BPT5BPT09ITB8fEE9PT0hMSx1QT1BPT57aWYoREEoQSkhPT0ib2JqZWN0IilyZXR1cm4hMTtsZXQgdD1UQShBKTtyZXR1cm4odD09PW51bGx8fHQ9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YodCk9PT1udWxsKSYmIShTeW1ib2wudG9TdHJpbmdUYWcgaW4gQSkmJiEoU3ltYm9sLml0ZXJhdG9yIGluIEEpfSxxZT1HKCJEYXRlIiksTWU9RygiRmlsZSIpLEtlPUcoIkJsb2IiKSxUZT1HKCJGaWxlTGlzdCIpLE9lPUE9PmhBKEEpJiZVKEEucGlwZSkseGU9QT0+e2xldCB0O3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fFUoQS5hcHBlbmQpJiYoKHQ9REEoQSkpPT09ImZvcm1kYXRhInx8dD09PSJvYmplY3QiJiZVKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LFBlPUcoIlVSTFNlYXJjaFBhcmFtcyIpLFtXZSxqZSxaZSxWZV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoRyksWGU9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2csIiIpO2Z1bmN0aW9uIEFBKEEsdCx7YWxsT3duS2V5czplPSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IEkscjtpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksaihBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyl0LmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtsZXQgbz1lP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLGc9by5sZW5ndGgsQztmb3IoST0wO0k8ZztJKyspQz1vW0ldLHQuY2FsbChudWxsLEFbQ10sQyxBKX19ZnVuY3Rpb24gd3QoQSx0KXt0PXQudG9Mb3dlckNhc2UoKTtsZXQgZT1PYmplY3Qua2V5cyhBKSxJPWUubGVuZ3RoLHI7Zm9yKDtJLS0gPjA7KWlmKHI9ZVtJXSx0PT09ci50b0xvd2VyQ2FzZSgpKXJldHVybiByO3JldHVybiBudWxsfXZhciB4PXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwscHQ9QT0+ISQoQSkmJkEhPT14O2Z1bmN0aW9uIEtBKCl7bGV0e2Nhc2VsZXNzOkF9PXB0KHRoaXMpJiZ0aGlzfHx7fSx0PXt9LGU9KEkscik9PntsZXQgbz1BJiZ3dCh0LHIpfHxyO3VBKHRbb10pJiZ1QShJKT90W29dPUtBKHRbb10sSSk6dUEoSSk/dFtvXT1LQSh7fSxJKTpqKEkpP3Rbb109SS5zbGljZSgpOnRbb109SX07Zm9yKGxldCBJPTAscj1hcmd1bWVudHMubGVuZ3RoO0k8cjtJKyspYXJndW1lbnRzW0ldJiZBQShhcmd1bWVudHNbSV0sZSk7cmV0dXJuIHR9dmFyIF9lPShBLHQsZSx7YWxsT3duS2V5czpJfT17fSk9PihBQSh0LChyLG8pPT57ZSYmVShyKT9BW29dPXYocixlKTpBW29dPXJ9LHthbGxPd25LZXlzOkl9KSxBKSx6ZT1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLHZlPShBLHQsZSxJKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsSSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTp0LnByb3RvdHlwZX0pLGUmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsZSl9LCRlPShBLHQsZSxJKT0+e2xldCByLG8sZyxDPXt9O2lmKHQ9dHx8e30sQT09bnVsbClyZXR1cm4gdDtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxvPXIubGVuZ3RoO28tLSA+MDspZz1yW29dLCghSXx8SShnLEEsdCkpJiYhQ1tnXSYmKHRbZ109QVtnXSxDW2ddPSEwKTtBPWUhPT0hMSYmVEEoQSl9d2hpbGUoQSYmKCFlfHxlKEEsdCkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIHR9LEFJPShBLHQsZSk9PntBPVN0cmluZyhBKSwoZT09PXZvaWQgMHx8ZT5BLmxlbmd0aCkmJihlPUEubGVuZ3RoKSxlLT10Lmxlbmd0aDtsZXQgST1BLmluZGV4T2YodCxlKTtyZXR1cm4gSSE9PS0xJiZJPT09ZX0sdEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKGooQSkpcmV0dXJuIEE7bGV0IHQ9QS5sZW5ndGg7aWYoIW10KHQpKXJldHVybiBudWxsO2xldCBlPW5ldyBBcnJheSh0KTtmb3IoO3QtLSA+MDspZVt0XT1BW3RdO3JldHVybiBlfSxlST0oQT0+dD0+QSYmdCBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmVEEoVWludDhBcnJheSkpLElJPShBLHQpPT57bGV0IEk9KEEmJkFbU3ltYm9sLml0ZXJhdG9yXSkuY2FsbChBKSxyO2Zvcig7KHI9SS5uZXh0KCkpJiYhci5kb25lOyl7bGV0IG89ci52YWx1ZTt0LmNhbGwoQSxvWzBdLG9bMV0pfX0sckk9KEEsdCk9PntsZXQgZSxJPVtdO2Zvcig7KGU9QS5leGVjKHQpKSE9PW51bGw7KUkucHVzaChlKTtyZXR1cm4gSX0sb0k9RygiSFRNTEZvcm1FbGVtZW50IiksZ0k9QT0+QS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX1xcc10oW2EtelxcZF0pKFxcdyopL2csZnVuY3Rpb24oZSxJLHIpe3JldHVybiBJLnRvVXBwZXJDYXNlKCkrcn0pLGh0PSgoe2hhc093blByb3BlcnR5OkF9KT0+KHQsZSk9PkEuY2FsbCh0LGUpKShPYmplY3QucHJvdG90eXBlKSxpST1HKCJSZWdFeHAiKSxTdD0oQSx0KT0+e2xldCBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEEpLEk9e307QUEoZSwocixvKT0+e2xldCBnOyhnPXQocixvLEEpKSE9PSExJiYoSVtvXT1nfHxyKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEEsSSl9LHNJPUE9PntTdChBLCh0LGUpPT57aWYoVShBKSYmWyJhcmd1bWVudHMiLCJjYWxsZXIiLCJjYWxsZWUiXS5pbmRleE9mKGUpIT09LTEpcmV0dXJuITE7bGV0IEk9QVtlXTtpZihVKEkpKXtpZih0LmVudW1lcmFibGU9ITEsIndyaXRhYmxlImluIHQpe3Qud3JpdGFibGU9ITE7cmV0dXJufXQuc2V0fHwodC5zZXQ9KCk9Pnt0aHJvdyBFcnJvcigiQ2FuIG5vdCByZXdyaXRlIHJlYWQtb25seSBtZXRob2QgXCciK2UrIlwnIil9KX19KX0sbkk9KEEsdCk9PntsZXQgZT17fSxJPXI9PntyLmZvckVhY2gobz0+e2Vbb109ITB9KX07cmV0dXJuIGooQSk/SShBKTpJKFN0cmluZyhBKS5zcGxpdCh0KSksZX0sQ0k9KCk9Pnt9LEJJPShBLHQpPT5BIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoQT0rQSk/QTp0O2Z1bmN0aW9uIGFJKEEpe3JldHVybiEhKEEmJlUoQS5hcHBlbmQpJiZBW1N5bWJvbC50b1N0cmluZ1RhZ109PT0iRm9ybURhdGEiJiZBW1N5bWJvbC5pdGVyYXRvcl0pfXZhciBRST1BPT57bGV0IHQ9bmV3IEFycmF5KDEwKSxlPShJLHIpPT57aWYoaEEoSSkpe2lmKHQuaW5kZXhPZihJKT49MClyZXR1cm47aWYoISgidG9KU09OImluIEkpKXt0W3JdPUk7bGV0IG89aihJKT9bXTp7fTtyZXR1cm4gQUEoSSwoZyxDKT0+e2xldCBFPWUoZyxyKzEpOyEkKEUpJiYob1tDXT1FKX0pLHRbcl09dm9pZCAwLG99fXJldHVybiBJfTtyZXR1cm4gZShBLDApfSxFST1HKCJBc3luY0Z1bmN0aW9uIiksY0k9QT0+QSYmKGhBKEEpfHxVKEEpKSYmVShBLnRoZW4pJiZVKEEuY2F0Y2gpLEZ0PSgoQSx0KT0+QT9zZXRJbW1lZGlhdGU6dD8oKGUsSSk9Pih4LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTpvfSk9PntyPT09eCYmbz09PWUmJkkubGVuZ3RoJiZJLnNoaWZ0KCkoKX0sITEpLHI9PntJLnB1c2gocikseC5wb3N0TWVzc2FnZShlLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTplPT5zZXRUaW1lb3V0KGUpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLFUoeC5wb3N0TWVzc2FnZSkpLGZJPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZCh4KTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fEZ0LGk9e2lzQXJyYXk6aixpc0FycmF5QnVmZmVyOnl0LGlzQnVmZmVyOmJlLGlzRm9ybURhdGE6eGUsaXNBcnJheUJ1ZmZlclZpZXc6SmUsaXNTdHJpbmc6SGUsaXNOdW1iZXI6bXQsaXNCb29sZWFuOlllLGlzT2JqZWN0OmhBLGlzUGxhaW5PYmplY3Q6dUEsaXNSZWFkYWJsZVN0cmVhbTpXZSxpc1JlcXVlc3Q6amUsaXNSZXNwb25zZTpaZSxpc0hlYWRlcnM6VmUsaXNVbmRlZmluZWQ6JCxpc0RhdGU6cWUsaXNGaWxlOk1lLGlzQmxvYjpLZSxpc1JlZ0V4cDppSSxpc0Z1bmN0aW9uOlUsaXNTdHJlYW06T2UsaXNVUkxTZWFyY2hQYXJhbXM6UGUsaXNUeXBlZEFycmF5OmVJLGlzRmlsZUxpc3Q6VGUsZm9yRWFjaDpBQSxtZXJnZTpLQSxleHRlbmQ6X2UsdHJpbTpYZSxzdHJpcEJPTTp6ZSxpbmhlcml0czp2ZSx0b0ZsYXRPYmplY3Q6JGUsa2luZE9mOkRBLGtpbmRPZlRlc3Q6RyxlbmRzV2l0aDpBSSx0b0FycmF5OnRJLGZvckVhY2hFbnRyeTpJSSxtYXRjaEFsbDpySSxpc0hUTUxGb3JtOm9JLGhhc093blByb3BlcnR5Omh0LGhhc093blByb3A6aHQscmVkdWNlRGVzY3JpcHRvcnM6U3QsZnJlZXplTWV0aG9kczpzSSx0b09iamVjdFNldDpuSSx0b0NhbWVsQ2FzZTpnSSxub29wOkNJLHRvRmluaXRlTnVtYmVyOkJJLGZpbmRLZXk6d3QsZ2xvYmFsOngsaXNDb250ZXh0RGVmaW5lZDpwdCxpc1NwZWNDb21wbGlhbnRGb3JtOmFJLHRvSlNPTk9iamVjdDpRSSxpc0FzeW5jRm46RUksaXNUaGVuYWJsZTpjSSxzZXRJbW1lZGlhdGU6RnQsYXNhcDpmSX07ZnVuY3Rpb24gWihBLHQsZSxJLHIpe0Vycm9yLmNhbGwodGhpcyksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0aGlzLmNvbnN0cnVjdG9yKTp0aGlzLnN0YWNrPW5ldyBFcnJvcigpLnN0YWNrLHRoaXMubWVzc2FnZT1BLHRoaXMubmFtZT0iQXhpb3NFcnJvciIsdCYmKHRoaXMuY29kZT10KSxlJiYodGhpcy5jb25maWc9ZSksSSYmKHRoaXMucmVxdWVzdD1JKSxyJiYodGhpcy5yZXNwb25zZT1yLHRoaXMuc3RhdHVzPXIuc3RhdHVzP3Iuc3RhdHVzOm51bGwpfWkuaW5oZXJpdHMoWixFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOmkudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX0pO3ZhciBSdD1aLnByb3RvdHlwZSxOdD17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiLCJFUlJfTk9UX1NVUFBPUlQiLCJFUlJfSU5WQUxJRF9VUkwiXS5mb3JFYWNoKEE9PntOdFtBXT17dmFsdWU6QX19KTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhaLE50KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUnQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSk7Wi5mcm9tPShBLHQsZSxJLHIsbyk9PntsZXQgZz1PYmplY3QuY3JlYXRlKFJ0KTtyZXR1cm4gaS50b0ZsYXRPYmplY3QoQSxnLGZ1bmN0aW9uKEUpe3JldHVybiBFIT09RXJyb3IucHJvdG90eXBlfSxDPT5DIT09ImlzQXhpb3NFcnJvciIpLFouY2FsbChnLEEubWVzc2FnZSx0LGUsSSxyKSxnLmNhdXNlPUEsZy5uYW1lPUEubmFtZSxvJiZPYmplY3QuYXNzaWduKGcsbyksZ307dmFyIHU9Wjt2YXIgeUE9bnVsbDtmdW5jdGlvbiBPQShBKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KEEpfHxpLmlzQXJyYXkoQSl9ZnVuY3Rpb24gR3QoQSl7cmV0dXJuIGkuZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24gVXQoQSx0LGUpe3JldHVybiBBP0EuY29uY2F0KHQpLm1hcChmdW5jdGlvbihyLG8pe3JldHVybiByPUd0KHIpLCFlJiZvPyJbIityKyJdIjpyfSkuam9pbihlPyIuIjoiIik6dH1mdW5jdGlvbiBsSShBKXtyZXR1cm4gaS5pc0FycmF5KEEpJiYhQS5zb21lKE9BKX12YXIgdUk9aS50b0ZsYXRPYmplY3QoaSx7fSxudWxsLGZ1bmN0aW9uKHQpe3JldHVybi9eaXNbQS1aXS8udGVzdCh0KX0pO2Z1bmN0aW9uIERJKEEsdCxlKXtpZighaS5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTt0PXR8fG5ldyh5QXx8Rm9ybURhdGEpLGU9aS50b0ZsYXRPYmplY3QoZSx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGwsYyl7cmV0dXJuIWkuaXNVbmRlZmluZWQoY1tsXSl9KTtsZXQgST1lLm1ldGFUb2tlbnMscj1lLnZpc2l0b3J8fHMsbz1lLmRvdHMsZz1lLmluZGV4ZXMsRT0oZS5CbG9ifHx0eXBlb2YgQmxvYjwidSImJkJsb2IpJiZpLmlzU3BlY0NvbXBsaWFudEZvcm0odCk7aWYoIWkuaXNGdW5jdGlvbihyKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIGEoUSl7aWYoUT09PW51bGwpcmV0dXJuIiI7aWYoaS5pc0RhdGUoUSkpcmV0dXJuIFEudG9JU09TdHJpbmcoKTtpZighRSYmaS5pc0Jsb2IoUSkpdGhyb3cgbmV3IHUoIkJsb2IgaXMgbm90IHN1cHBvcnRlZC4gVXNlIGEgQnVmZmVyIGluc3RlYWQuIik7cmV0dXJuIGkuaXNBcnJheUJ1ZmZlcihRKXx8aS5pc1R5cGVkQXJyYXkoUSk/RSYmdHlwZW9mIEJsb2I9PSJmdW5jdGlvbiI/bmV3IEJsb2IoW1FdKTpCdWZmZXIuZnJvbShRKTpRfWZ1bmN0aW9uIHMoUSxsLGMpe2xldCBkPVE7aWYoUSYmIWMmJnR5cGVvZiBRPT0ib2JqZWN0Iil7aWYoaS5lbmRzV2l0aChsLCJ7fSIpKWw9ST9sOmwuc2xpY2UoMCwtMiksUT1KU09OLnN0cmluZ2lmeShRKTtlbHNlIGlmKGkuaXNBcnJheShRKSYmbEkoUSl8fChpLmlzRmlsZUxpc3QoUSl8fGkuZW5kc1dpdGgobCwiW10iKSkmJihkPWkudG9BcnJheShRKSkpcmV0dXJuIGw9R3QobCksZC5mb3JFYWNoKGZ1bmN0aW9uKG0sSCl7IShpLmlzVW5kZWZpbmVkKG0pfHxtPT09bnVsbCkmJnQuYXBwZW5kKGc9PT0hMD9VdChbbF0sSCxvKTpnPT09bnVsbD9sOmwrIltdIixhKG0pKX0pLCExfXJldHVybiBPQShRKT8hMDoodC5hcHBlbmQoVXQoYyxsLG8pLGEoUSkpLCExKX1sZXQgbj1bXSxmPU9iamVjdC5hc3NpZ24odUkse2RlZmF1bHRWaXNpdG9yOnMsY29udmVydFZhbHVlOmEsaXNWaXNpdGFibGU6T0F9KTtmdW5jdGlvbiBCKFEsbCl7aWYoIWkuaXNVbmRlZmluZWQoUSkpe2lmKG4uaW5kZXhPZihRKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitsLmpvaW4oIi4iKSk7bi5wdXNoKFEpLGkuZm9yRWFjaChRLGZ1bmN0aW9uKGQseSl7KCEoaS5pc1VuZGVmaW5lZChkKXx8ZD09PW51bGwpJiZyLmNhbGwodCxkLGkuaXNTdHJpbmcoeSk/eS50cmltKCk6eSxsLGYpKT09PSEwJiZCKGQsbD9sLmNvbmNhdCh5KTpbeV0pfSksbi5wb3AoKX19aWYoIWkuaXNPYmplY3QoQSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiZGF0YSBtdXN0IGJlIGFuIG9iamVjdCIpO3JldHVybiBCKEEpLHR9dmFyIE09REk7ZnVuY3Rpb24ga3QoQSl7bGV0IHQ9eyIhIjoiJTI1MjEiLCJcJyI6IiUyNTI3IiwiKCI6IiUyNTI4IiwiKSI6IiUyNTI5IiwifiI6IiUyNTdFIiwiJTI1MjAiOiIrIiwiJTI1MDAiOiJcXDAifTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoL1shXCcoKX5dfCUyNTIwfCUyNTAwL2csZnVuY3Rpb24oSSl7cmV0dXJuIHRbSV19KX1mdW5jdGlvbiBMdChBLHQpe3RoaXMuX3BhaXJzPVtdLEEmJk0oQSx0aGlzLHQpfXZhciBidD1MdC5wcm90b3R5cGU7YnQuYXBwZW5kPWZ1bmN0aW9uKHQsZSl7dGhpcy5fcGFpcnMucHVzaChbdCxlXSl9O2J0LnRvU3RyaW5nPWZ1bmN0aW9uKHQpe2xldCBlPXQ/ZnVuY3Rpb24oSSl7cmV0dXJuIHQuY2FsbCh0aGlzLEksa3QpfTprdDtyZXR1cm4gdGhpcy5fcGFpcnMubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBlKHJbMF0pKyI9IitlKHJbMV0pfSwiIikuam9pbigiJiIpfTt2YXIgbUE9THQ7ZnVuY3Rpb24gZEkoQSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC8lMjUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNTI0L2csIiQiKS5yZXBsYWNlKC8lMjUyQy9naSwiLCIpLnJlcGxhY2UoLyUyNTIwL2csIisiKS5yZXBsYWNlKC8lMjU1Qi9naSwiWyIpLnJlcGxhY2UoLyUyNTVEL2dpLCJdIil9ZnVuY3Rpb24gdEEoQSx0LGUpe2lmKCF0KXJldHVybiBBO2xldCBJPWUmJmUuZW5jb2RlfHxkSTtpLmlzRnVuY3Rpb24oZSkmJihlPXtzZXJpYWxpemU6ZX0pO2xldCByPWUmJmUuc2VyaWFsaXplLG87aWYocj9vPXIodCxlKTpvPWkuaXNVUkxTZWFyY2hQYXJhbXModCk/dC50b1N0cmluZygpOm5ldyBtQSh0LGUpLnRvU3RyaW5nKEkpLG8pe2xldCBnPUEuaW5kZXhPZigiJTIzIik7ZyE9PS0xJiYoQT1BLnNsaWNlKDAsZykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK299cmV0dXJuIEF9dmFyIHhBPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UodCxlLEkpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDp0LHJlamVjdGVkOmUsc3luY2hyb25vdXM6ST9JLnN5bmNocm9ub3VzOiExLHJ1bldoZW46ST9JLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QodCl7dGhpcy5oYW5kbGVyc1t0XSYmKHRoaXMuaGFuZGxlcnNbdF09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaCh0KXtpLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihJKXtJIT09bnVsbCYmdChJKX0pfX0sUEE9eEE7dmFyIHdBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgSnQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOm1BO3ZhciBIdD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyIFl0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIHF0PXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOkp0LEZvcm1EYXRhOkh0LEJsb2I6WXR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgWkE9e307ZGUoWkEse2hhc0Jyb3dzZXJFbnY6KCk9PmpBLGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+aEksaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT55SSxuYXZpZ2F0b3I6KCk9PldBLG9yaWdpbjooKT0+bUl9KTt2YXIgakE9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsV0E9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLGhJPWpBJiYoIVdBfHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKFdBLnByb2R1Y3QpPDApLHlJPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixtST1qQSYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgaD17Li4uWkEsLi4ucXR9O2Z1bmN0aW9uIFZBKEEsdCl7cmV0dXJuIE0oQSxuZXcgaC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyxPYmplY3QuYXNzaWduKHt2aXNpdG9yOmZ1bmN0aW9uKGUsSSxyLG8pe3JldHVybiBoLmlzTm9kZSYmaS5pc0J1ZmZlcihlKT8odGhpcy5hcHBlbmQoSSxlLnRvU3RyaW5nKCJiYXNlNjQiKSksITEpOm8uZGVmYXVsdFZpc2l0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sdCkpfWZ1bmN0aW9uIHdJKEEpe3JldHVybiBpLm1hdGNoQWxsKC9cXHcrfFxcWyhcXHcqKV0vZyxBKS5tYXAodD0+dFswXT09PSJbXSI/IiI6dFsxXXx8dFswXSl9ZnVuY3Rpb24gcEkoQSl7bGV0IHQ9e30sZT1PYmplY3Qua2V5cyhBKSxJLHI9ZS5sZW5ndGgsbztmb3IoST0wO0k8cjtJKyspbz1lW0ldLHRbb109QVtvXTtyZXR1cm4gdH1mdW5jdGlvbiBTSShBKXtmdW5jdGlvbiB0KGUsSSxyLG8pe2xldCBnPWVbbysrXTtpZihnPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IEM9TnVtYmVyLmlzRmluaXRlKCtnKSxFPW8+PWUubGVuZ3RoO3JldHVybiBnPSFnJiZpLmlzQXJyYXkocik/ci5sZW5ndGg6ZyxFPyhpLmhhc093blByb3AocixnKT9yW2ddPVtyW2ddLEldOnJbZ109SSwhQyk6KCghcltnXXx8IWkuaXNPYmplY3QocltnXSkpJiYocltnXT1bXSksdChlLEkscltnXSxvKSYmaS5pc0FycmF5KHJbZ10pJiYocltnXT1wSShyW2ddKSksIUMpfWlmKGkuaXNGb3JtRGF0YShBKSYmaS5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCBlPXt9O3JldHVybiBpLmZvckVhY2hFbnRyeShBLChJLHIpPT57dCh3SShJKSxyLGUsMCl9KSxlfXJldHVybiBudWxsfXZhciBwQT1TSTtmdW5jdGlvbiBGSShBLHQsZSl7aWYoaS5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKHR8fEpTT04ucGFyc2UpKEEpLGkudHJpbShBKX1jYXRjaChJKXtpZihJLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IEl9cmV0dXJuKGV8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgWEE9e3RyYW5zaXRpb25hbDp3QSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24odCxlKXtsZXQgST1lLmdldENvbnRlbnRUeXBlKCl8fCIiLHI9SS5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsbz1pLmlzT2JqZWN0KHQpO2lmKG8mJmkuaXNIVE1MRm9ybSh0KSYmKHQ9bmV3IEZvcm1EYXRhKHQpKSxpLmlzRm9ybURhdGEodCkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkocEEodCkpOnQ7aWYoaS5pc0FycmF5QnVmZmVyKHQpfHxpLmlzQnVmZmVyKHQpfHxpLmlzU3RyZWFtKHQpfHxpLmlzRmlsZSh0KXx8aS5pc0Jsb2IodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KHQpKXJldHVybiB0LmJ1ZmZlcjtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKHQpKXJldHVybiBlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLHQudG9TdHJpbmcoKTtsZXQgQztpZihvKXtpZihJLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBWQSh0LHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKEM9aS5pc0ZpbGVMaXN0KHQpKXx8SS5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gTShDP3siZmlsZXNbXSI6dH06dCxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIG98fHI/KGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxGSSh0KSk6dH1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbih0KXtsZXQgZT10aGlzLnRyYW5zaXRpb25hbHx8WEEudHJhbnNpdGlvbmFsLEk9ZSYmZS5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKGkuaXNSZXNwb25zZSh0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKHQmJmkuaXNTdHJpbmcodCkmJihJJiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgZz0hKGUmJmUuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaChDKXtpZihnKXRocm93IEMubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKEMsdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpDfX1yZXR1cm4gdH1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6aC5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6aC5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMDAmJnQ8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntYQS5oZWFkZXJzW0FdPXt9fSk7dmFyIFY9WEE7dmFyIFJJPWkudG9PYmplY3RTZXQoWyJhZ2UiLCJhdXRob3JpemF0aW9uIiwiY29udGVudC1sZW5ndGgiLCJjb250ZW50LXR5cGUiLCJldGFnIiwiZXhwaXJlcyIsImZyb20iLCJob3N0IiwiaWYtbW9kaWZpZWQtc2luY2UiLCJpZi11bm1vZGlmaWVkLXNpbmNlIiwibGFzdC1tb2RpZmllZCIsImxvY2F0aW9uIiwibWF4LWZvcndhcmRzIiwicHJveHktYXV0aG9yaXphdGlvbiIsInJlZmVyZXIiLCJyZXRyeS1hZnRlciIsInVzZXItYWdlbnQiXSksTXQ9QT0+e2xldCB0PXt9LGUsSSxyO3JldHVybiBBJiZBLnNwbGl0KGAlMEFgKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe3I9Zy5pbmRleE9mKCI6IiksZT1nLnN1YnN0cmluZygwLHIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLEk9Zy5zdWJzdHJpbmcocisxKS50cmltKCksISghZXx8dFtlXSYmUklbZV0pJiYoZT09PSJzZXQtY29va2llIj90W2VdP3RbZV0ucHVzaChJKTp0W2VdPVtJXTp0W2VdPXRbZV0/dFtlXSsiLCAiK0k6SSl9KSx0fTt2YXIgS3Q9U3ltYm9sKCJpbnRlcm5hbHMiKTtmdW5jdGlvbiBlQShBKXtyZXR1cm4gQSYmU3RyaW5nKEEpLnRyaW0oKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFNBKEEpe3JldHVybiBBPT09ITF8fEE9PW51bGw/QTppLmlzQXJyYXkoQSk/QS5tYXAoU0EpOlN0cmluZyhBKX1mdW5jdGlvbiBOSShBKXtsZXQgdD1PYmplY3QuY3JlYXRlKG51bGwpLGU9LyhbXlxccyw7PV0rKVxccyooPzo9XFxzKihbXiw7XSspKT8vZyxJO2Zvcig7ST1lLmV4ZWMoQSk7KXRbSVsxXV09SVsyXTtyZXR1cm4gdH12YXIgVUk9QT0+L15bLV9hLXpBLVowLTleYHx+LCElMjMkJSZcJyorLl0rJC8udGVzdChBLnRyaW0oKSk7ZnVuY3Rpb24gX0EoQSx0LGUsSSxyKXtpZihpLmlzRnVuY3Rpb24oSSkpcmV0dXJuIEkuY2FsbCh0aGlzLHQsZSk7aWYociYmKHQ9ZSksISFpLmlzU3RyaW5nKHQpKXtpZihpLmlzU3RyaW5nKEkpKXJldHVybiB0LmluZGV4T2YoSSkhPT0tMTtpZihpLmlzUmVnRXhwKEkpKXJldHVybiBJLnRlc3QodCl9fWZ1bmN0aW9uIEdJKEEpe3JldHVybiBBLnRyaW0oKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoLyhbYS16XFxkXSkoXFx3KikvZywodCxlLEkpPT5lLnRvVXBwZXJDYXNlKCkrSSl9ZnVuY3Rpb24ga0koQSx0KXtsZXQgZT1pLnRvQ2FtZWxDYXNlKCIgIit0KTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2goST0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLEkrZSx7dmFsdWU6ZnVuY3Rpb24ocixvLGcpe3JldHVybiB0aGlzW0ldLmNhbGwodGhpcyx0LHIsbyxnKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgWD1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0JiZ0aGlzLnNldCh0KX1zZXQodCxlLEkpe2xldCByPXRoaXM7ZnVuY3Rpb24gbyhDLEUsYSl7bGV0IHM9ZUEoRSk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJoZWFkZXIgbmFtZSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyIpO2xldCBuPWkuZmluZEtleShyLHMpOyghbnx8cltuXT09PXZvaWQgMHx8YT09PSEwfHxhPT09dm9pZCAwJiZyW25dIT09ITEpJiYocltufHxFXT1TQShDKSl9bGV0IGc9KEMsRSk9PmkuZm9yRWFjaChDLChhLHMpPT5vKGEscyxFKSk7aWYoaS5pc1BsYWluT2JqZWN0KHQpfHx0IGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3RvcilnKHQsZSk7ZWxzZSBpZihpLmlzU3RyaW5nKHQpJiYodD10LnRyaW0oKSkmJiFVSSh0KSlnKE10KHQpLGUpO2Vsc2UgaWYoaS5pc0hlYWRlcnModCkpZm9yKGxldFtDLEVdb2YgdC5lbnRyaWVzKCkpbyhFLEMsSSk7ZWxzZSB0IT1udWxsJiZvKGUsdCxJKTtyZXR1cm4gdGhpc31nZXQodCxlKXtpZih0PWVBKHQpLHQpe2xldCBJPWkuZmluZEtleSh0aGlzLHQpO2lmKEkpe2xldCByPXRoaXNbSV07aWYoIWUpcmV0dXJuIHI7aWYoZT09PSEwKXJldHVybiBOSShyKTtpZihpLmlzRnVuY3Rpb24oZSkpcmV0dXJuIGUuY2FsbCh0aGlzLHIsSSk7aWYoaS5pc1JlZ0V4cChlKSlyZXR1cm4gZS5leGVjKHIpO3Rocm93IG5ldyBUeXBlRXJyb3IoInBhcnNlciBtdXN0IGJlIGJvb2xlYW58cmVnZXhwfGZ1bmN0aW9uIil9fX1oYXModCxlKXtpZih0PWVBKHQpLHQpe2xldCBJPWkuZmluZEtleSh0aGlzLHQpO3JldHVybiEhKEkmJnRoaXNbSV0hPT12b2lkIDAmJighZXx8X0EodGhpcyx0aGlzW0ldLEksZSkpKX1yZXR1cm4hMX1kZWxldGUodCxlKXtsZXQgST10aGlzLHI9ITE7ZnVuY3Rpb24gbyhnKXtpZihnPWVBKGcpLGcpe2xldCBDPWkuZmluZEtleShJLGcpO0MmJighZXx8X0EoSSxJW0NdLEMsZSkpJiYoZGVsZXRlIElbQ10scj0hMCl9fXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKG8pOm8odCkscn1jbGVhcih0KXtsZXQgZT1PYmplY3Qua2V5cyh0aGlzKSxJPWUubGVuZ3RoLHI9ITE7Zm9yKDtJLS07KXtsZXQgbz1lW0ldOyghdHx8X0EodGhpcyx0aGlzW29dLG8sdCwhMCkpJiYoZGVsZXRlIHRoaXNbb10scj0hMCl9cmV0dXJuIHJ9bm9ybWFsaXplKHQpe2xldCBlPXRoaXMsST17fTtyZXR1cm4gaS5mb3JFYWNoKHRoaXMsKHIsbyk9PntsZXQgZz1pLmZpbmRLZXkoSSxvKTtpZihnKXtlW2ddPVNBKHIpLGRlbGV0ZSBlW29dO3JldHVybn1sZXQgQz10P0dJKG8pOlN0cmluZyhvKS50cmltKCk7QyE9PW8mJmRlbGV0ZSBlW29dLGVbQ109U0EociksSVtDXT0hMH0pLHRoaXN9Y29uY2F0KC4uLnQpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLmNvbmNhdCh0aGlzLC4uLnQpfXRvSlNPTih0KXtsZXQgZT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBpLmZvckVhY2godGhpcywoSSxyKT0+e0khPW51bGwmJkkhPT0hMSYmKGVbcl09dCYmaS5pc0FycmF5KEkpP0kuam9pbigiLCAiKTpJKX0pLGV9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSlbU3ltYm9sLml0ZXJhdG9yXSgpfXRvU3RyaW5nKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpLm1hcCgoW3QsZV0pPT50KyI6ICIrZSkuam9pbihgJTBBYCl9Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHRoaXM/dDpuZXcgdGhpcyh0KX1zdGF0aWMgY29uY2F0KHQsLi4uZSl7bGV0IEk9bmV3IHRoaXModCk7cmV0dXJuIGUuZm9yRWFjaChyPT5JLnNldChyKSksSX1zdGF0aWMgYWNjZXNzb3IodCl7bGV0IEk9KHRoaXNbS3RdPXRoaXNbS3RdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBvKGcpe2xldCBDPWVBKGcpO0lbQ118fChrSShyLGcpLElbQ109ITApfXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKG8pOm8odCksdGhpc319O1guYWNjZXNzb3IoWyJDb250ZW50LVR5cGUiLCJDb250ZW50LUxlbmd0aCIsIkFjY2VwdCIsIkFjY2VwdC1FbmNvZGluZyIsIlVzZXItQWdlbnQiLCJBdXRob3JpemF0aW9uIl0pO2kucmVkdWNlRGVzY3JpcHRvcnMoWC5wcm90b3R5cGUsKHt2YWx1ZTpBfSx0KT0+e2xldCBlPXRbMF0udG9VcHBlckNhc2UoKSt0LnNsaWNlKDEpO3JldHVybntnZXQ6KCk9PkEsc2V0KEkpe3RoaXNbZV09SX19fSk7aS5mcmVlemVNZXRob2RzKFgpO3ZhciBTPVg7ZnVuY3Rpb24gSUEoQSx0KXtsZXQgZT10aGlzfHxWLEk9dHx8ZSxyPVMuZnJvbShJLmhlYWRlcnMpLG89SS5kYXRhO3JldHVybiBpLmZvckVhY2goQSxmdW5jdGlvbihDKXtvPUMuY2FsbChlLG8sci5ub3JtYWxpemUoKSx0P3Quc3RhdHVzOnZvaWQgMCl9KSxyLm5vcm1hbGl6ZSgpLG99ZnVuY3Rpb24gckEoQSl7cmV0dXJuISEoQSYmQS5fX0NBTkNFTF9fKX1mdW5jdGlvbiBUdChBLHQsZSl7dS5jYWxsKHRoaXMsQT8/ImNhbmNlbGVkIix1LkVSUl9DQU5DRUxFRCx0LGUpLHRoaXMubmFtZT0iQ2FuY2VsZWRFcnJvciJ9aS5pbmhlcml0cyhUdCx1LHtfX0NBTkNFTF9fOiEwfSk7dmFyIEw9VHQ7ZnVuY3Rpb24gb0EoQSx0LGUpe2xldCBJPWUuY29uZmlnLnZhbGlkYXRlU3RhdHVzOyFlLnN0YXR1c3x8IUl8fEkoZS5zdGF0dXMpP0EoZSk6dChuZXcgdSgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK2Uuc3RhdHVzLFt1LkVSUl9CQURfUkVRVUVTVCx1LkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3IoZS5zdGF0dXMvMTAwKS00XSxlLmNvbmZpZyxlLnJlcXVlc3QsZSkpfWZ1bmN0aW9uIHpBKEEpe2xldCB0PS9eKFstK1xcd117MSwyNX0pKDo/XFwvXFwvfDopLy5leGVjKEEpO3JldHVybiB0JiZ0WzFdfHwiIn1mdW5jdGlvbiBMSShBLHQpe0E9QXx8MTA7bGV0IGU9bmV3IEFycmF5KEEpLEk9bmV3IEFycmF5KEEpLHI9MCxvPTAsZztyZXR1cm4gdD10IT09dm9pZCAwP3Q6MWUzLGZ1bmN0aW9uKEUpe2xldCBhPURhdGUubm93KCkscz1JW29dO2d8fChnPWEpLGVbcl09RSxJW3JdPWE7bGV0IG49byxmPTA7Zm9yKDtuIT09cjspZis9ZVtuKytdLG49biVBO2lmKHI9KHIrMSklQSxyPT09byYmKG89KG8rMSklQSksYS1nPHQpcmV0dXJuO2xldCBCPXMmJmEtcztyZXR1cm4gQj9NYXRoLnJvdW5kKGYqMWUzL0IpOnZvaWQgMH19dmFyIE90PUxJO2Z1bmN0aW9uIGJJKEEsdCl7bGV0IGU9MCxJPTFlMy90LHIsbyxnPShhLHM9RGF0ZS5ub3coKSk9PntlPXMscj1udWxsLG8mJihjbGVhclRpbWVvdXQobyksbz1udWxsKSxBLmFwcGx5KG51bGwsYSl9O3JldHVyblsoLi4uYSk9PntsZXQgcz1EYXRlLm5vdygpLG49cy1lO24+PUk/ZyhhLHMpOihyPWEsb3x8KG89c2V0VGltZW91dCgoKT0+e289bnVsbCxnKHIpfSxJLW4pKSl9LCgpPT5yJiZnKHIpXX12YXIgeHQ9Ykk7dmFyIF89KEEsdCxlPTMpPT57bGV0IEk9MCxyPU90KDUwLDI1MCk7cmV0dXJuIHh0KG89PntsZXQgZz1vLmxvYWRlZCxDPW8ubGVuZ3RoQ29tcHV0YWJsZT9vLnRvdGFsOnZvaWQgMCxFPWctSSxhPXIoRSkscz1nPD1DO0k9ZztsZXQgbj17bG9hZGVkOmcsdG90YWw6Qyxwcm9ncmVzczpDP2cvQzp2b2lkIDAsYnl0ZXM6RSxyYXRlOmF8fHZvaWQgMCxlc3RpbWF0ZWQ6YSYmQyYmcz8oQy1nKS9hOnZvaWQgMCxldmVudDpvLGxlbmd0aENvbXB1dGFibGU6QyE9bnVsbCxbdD8iZG93bmxvYWQiOiJ1cGxvYWQiXTohMH07QShuKX0sZSl9LHZBPShBLHQpPT57bGV0IGU9QSE9bnVsbDtyZXR1cm5bST0+dFswXSh7bGVuZ3RoQ29tcHV0YWJsZTplLHRvdGFsOkEsbG9hZGVkOkl9KSx0WzFdXX0sJEE9QT0+KC4uLnQpPT5pLmFzYXAoKCk9PkEoLi4udCkpO3ZhciBQdD1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj8oKEEsdCk9PmU9PihlPW5ldyBVUkwoZSxoLm9yaWdpbiksQS5wcm90b2NvbD09PWUucHJvdG9jb2wmJkEuaG9zdD09PWUuaG9zdCYmKHR8fEEucG9ydD09PWUucG9ydCkpKShuZXcgVVJMKGgub3JpZ2luKSxoLm5hdmlnYXRvciYmLyhtc2llfHRyaWRlbnQpL2kudGVzdChoLm5hdmlnYXRvci51c2VyQWdlbnQpKTooKT0+ITA7dmFyIFd0PWguaGFzU3RhbmRhcmRCcm93c2VyRW52P3t3cml0ZShBLHQsZSxJLHIsbyl7bGV0IGc9W0ErIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0KV07aS5pc051bWJlcihlKSYmZy5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUoZSkudG9HTVRTdHJpbmcoKSksaS5pc1N0cmluZyhJKSYmZy5wdXNoKCJwYXRoPSIrSSksaS5pc1N0cmluZyhyKSYmZy5wdXNoKCJkb21haW49IityKSxvPT09ITAmJmcucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPWcuam9pbigiOyAiKX0scmVhZChBKXtsZXQgdD1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xcXFxzKikoIitBKyIpPShbXjtdKikiKSk7cmV0dXJuIHQ/ZGVjb2RlVVJJQ29tcG9uZW50KHRbM10pOm51bGx9LHJlbW92ZShBKXt0aGlzLndyaXRlKEEsIiIsRGF0ZS5ub3coKS04NjRlNSl9fTp7d3JpdGUoKXt9LHJlYWQoKXtyZXR1cm4gbnVsbH0scmVtb3ZlKCl7fX07ZnVuY3Rpb24gQXQoQSl7cmV0dXJuL14oW2Etel1bYS16XFxkK1xcLS5dKjopP1xcL1xcLy9pLnRlc3QoQSl9ZnVuY3Rpb24gdHQoQSx0KXtyZXR1cm4gdD9BLnJlcGxhY2UoL1xcLz9cXC8kLywiIikrIi8iK3QucmVwbGFjZSgvXlxcLysvLCIiKTpBfWZ1bmN0aW9uIGdBKEEsdCxlKXtsZXQgST0hQXQodCk7cmV0dXJuIEEmJihJfHxlPT0hMSk/dHQoQSx0KTp0fXZhciBqdD1BPT5BIGluc3RhbmNlb2YgUz97Li4uQX06QTtmdW5jdGlvbiBrKEEsdCl7dD10fHx7fTtsZXQgZT17fTtmdW5jdGlvbiBJKGEscyxuLGYpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoYSkmJmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlLmNhbGwoe2Nhc2VsZXNzOmZ9LGEscyk6aS5pc1BsYWluT2JqZWN0KHMpP2kubWVyZ2Uoe30scyk6aS5pc0FycmF5KHMpP3Muc2xpY2UoKTpzfWZ1bmN0aW9uIHIoYSxzLG4sZil7aWYoaS5pc1VuZGVmaW5lZChzKSl7aWYoIWkuaXNVbmRlZmluZWQoYSkpcmV0dXJuIEkodm9pZCAwLGEsbixmKX1lbHNlIHJldHVybiBJKGEscyxuLGYpfWZ1bmN0aW9uIG8oYSxzKXtpZighaS5pc1VuZGVmaW5lZChzKSlyZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gZyhhLHMpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKGEpKXJldHVybiBJKHZvaWQgMCxhKX1lbHNlIHJldHVybiBJKHZvaWQgMCxzKX1mdW5jdGlvbiBDKGEscyxuKXtpZihuIGluIHQpcmV0dXJuIEkoYSxzKTtpZihuIGluIEEpcmV0dXJuIEkodm9pZCAwLGEpfWxldCBFPXt1cmw6byxtZXRob2Q6byxkYXRhOm8sYmFzZVVSTDpnLHRyYW5zZm9ybVJlcXVlc3Q6Zyx0cmFuc2Zvcm1SZXNwb25zZTpnLHBhcmFtc1NlcmlhbGl6ZXI6Zyx0aW1lb3V0OmcsdGltZW91dE1lc3NhZ2U6Zyx3aXRoQ3JlZGVudGlhbHM6Zyx3aXRoWFNSRlRva2VuOmcsYWRhcHRlcjpnLHJlc3BvbnNlVHlwZTpnLHhzcmZDb29raWVOYW1lOmcseHNyZkhlYWRlck5hbWU6ZyxvblVwbG9hZFByb2dyZXNzOmcsb25Eb3dubG9hZFByb2dyZXNzOmcsZGVjb21wcmVzczpnLG1heENvbnRlbnRMZW5ndGg6ZyxtYXhCb2R5TGVuZ3RoOmcsYmVmb3JlUmVkaXJlY3Q6Zyx0cmFuc3BvcnQ6ZyxodHRwQWdlbnQ6ZyxodHRwc0FnZW50OmcsY2FuY2VsVG9rZW46Zyxzb2NrZXRQYXRoOmcscmVzcG9uc2VFbmNvZGluZzpnLHZhbGlkYXRlU3RhdHVzOkMsaGVhZGVyczooYSxzLG4pPT5yKGp0KGEpLGp0KHMpLG4sITApfTtyZXR1cm4gaS5mb3JFYWNoKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sQSx0KSksZnVuY3Rpb24ocyl7bGV0IG49RVtzXXx8cixmPW4oQVtzXSx0W3NdLHMpO2kuaXNVbmRlZmluZWQoZikmJm4hPT1DfHwoZVtzXT1mKX0pLGV9dmFyIEZBPUE9PntsZXQgdD1rKHt9LEEpLHtkYXRhOmUsd2l0aFhTUkZUb2tlbjpJLHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6byxoZWFkZXJzOmcsYXV0aDpDfT10O3QuaGVhZGVycz1nPVMuZnJvbShnKSx0LnVybD10QShnQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxDJiZnLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgoQy51c2VybmFtZXx8IiIpKyI6IisoQy5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoQy5wYXNzd29yZCkpOiIiKSkpO2xldCBFO2lmKGkuaXNGb3JtRGF0YShlKSl7aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fGguaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KWcuc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKChFPWcuZ2V0Q29udGVudFR5cGUoKSkhPT0hMSl7bGV0W2EsLi4uc109RT9FLnNwbGl0KCI7IikubWFwKG49Pm4udHJpbSgpKS5maWx0ZXIoQm9vbGVhbik6W107Zy5zZXRDb250ZW50VHlwZShbYXx8Im11bHRpcGFydC9mb3JtLWRhdGEiLC4uLnNdLmpvaW4oIjsgIikpfX1pZihoLmhhc1N0YW5kYXJkQnJvd3NlckVudiYmKEkmJmkuaXNGdW5jdGlvbihJKSYmKEk9SSh0KSksSXx8SSE9PSExJiZQdCh0LnVybCkpKXtsZXQgYT1yJiZvJiZXdC5yZWFkKG8pO2EmJmcuc2V0KHIsYSl9cmV0dXJuIHR9O3ZhciBKST10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8InUiLFp0PUpJJiZmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxJKXtsZXQgcj1GQShBKSxvPXIuZGF0YSxnPVMuZnJvbShyLmhlYWRlcnMpLm5vcm1hbGl6ZSgpLHtyZXNwb25zZVR5cGU6QyxvblVwbG9hZFByb2dyZXNzOkUsb25Eb3dubG9hZFByb2dyZXNzOmF9PXIscyxuLGYsQixRO2Z1bmN0aW9uIGwoKXtCJiZCKCksUSYmUSgpLHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUocyksci5zaWduYWwmJnIuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixzKX1sZXQgYz1uZXcgWE1MSHR0cFJlcXVlc3Q7Yy5vcGVuKHIubWV0aG9kLnRvVXBwZXJDYXNlKCksci51cmwsITApLGMudGltZW91dD1yLnRpbWVvdXQ7ZnVuY3Rpb24gZCgpe2lmKCFjKXJldHVybjtsZXQgbT1TLmZyb20oImdldEFsbFJlc3BvbnNlSGVhZGVycyJpbiBjJiZjLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxSPXtkYXRhOiFDfHxDPT09InRleHQifHxDPT09Impzb24iP2MucmVzcG9uc2VUZXh0OmMucmVzcG9uc2Usc3RhdHVzOmMuc3RhdHVzLHN0YXR1c1RleHQ6Yy5zdGF0dXNUZXh0LGhlYWRlcnM6bSxjb25maWc6QSxyZXF1ZXN0OmN9O29BKGZ1bmN0aW9uKFQpe2UoVCksbCgpfSxmdW5jdGlvbihUKXtJKFQpLGwoKX0sUiksYz1udWxsfSJvbmxvYWRlbmQiaW4gYz9jLm9ubG9hZGVuZD1kOmMub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7IWN8fGMucmVhZHlTdGF0ZSE9PTR8fGMuc3RhdHVzPT09MCYmIShjLnJlc3BvbnNlVVJMJiZjLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6Iik9PT0wKXx8c2V0VGltZW91dChkKX0sYy5vbmFib3J0PWZ1bmN0aW9uKCl7YyYmKEkobmV3IHUoIlJlcXVlc3QgYWJvcnRlZCIsdS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsKX0sYy5vbmVycm9yPWZ1bmN0aW9uKCl7SShuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxBLGMpKSxjPW51bGx9LGMub250aW1lb3V0PWZ1bmN0aW9uKCl7bGV0IEg9ci50aW1lb3V0PyJ0aW1lb3V0IG9mICIrci50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLFI9ci50cmFuc2l0aW9uYWx8fHdBO3IudGltZW91dEVycm9yTWVzc2FnZSYmKEg9ci50aW1lb3V0RXJyb3JNZXNzYWdlKSxJKG5ldyB1KEgsUi5jbGFyaWZ5VGltZW91dEVycm9yP3UuRVRJTUVET1VUOnUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbH0sbz09PXZvaWQgMCYmZy5zZXRDb250ZW50VHlwZShudWxsKSwic2V0UmVxdWVzdEhlYWRlciJpbiBjJiZpLmZvckVhY2goZy50b0pTT04oKSxmdW5jdGlvbihILFIpe2Muc2V0UmVxdWVzdEhlYWRlcihSLEgpfSksaS5pc1VuZGVmaW5lZChyLndpdGhDcmVkZW50aWFscyl8fChjLndpdGhDcmVkZW50aWFscz0hIXIud2l0aENyZWRlbnRpYWxzKSxDJiZDIT09Impzb24iJiYoYy5yZXNwb25zZVR5cGU9ci5yZXNwb25zZVR5cGUpLGEmJihbZixRXT1fKGEsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGYpKSxFJiZjLnVwbG9hZCYmKFtuLEJdPV8oRSksYy51cGxvYWQuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLG4pLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLEIpKSwoci5jYW5jZWxUb2tlbnx8ci5zaWduYWwpJiYocz1tPT57YyYmKEkoIW18fG0udHlwZT9uZXcgTChudWxsLEEsYyk6bSksYy5hYm9ydCgpLGM9bnVsbCl9LHIuY2FuY2VsVG9rZW4mJnIuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiYoci5zaWduYWwuYWJvcnRlZD9zKCk6ci5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLHMpKSk7bGV0IHk9ekEoci51cmwpO2lmKHkmJmgucHJvdG9jb2xzLmluZGV4T2YoeSk9PT0tMSl7SShuZXcgdSgiVW5zdXBwb3J0ZWQgcHJvdG9jb2wgIit5KyI6Iix1LkVSUl9CQURfUkVRVUVTVCxBKSk7cmV0dXJufWMuc2VuZChvfHxudWxsKX0pfTt2YXIgSEk9KEEsdCk9PntsZXR7bGVuZ3RoOmV9PUE9QT9BLmZpbHRlcihCb29sZWFuKTpbXTtpZih0fHxlKXtsZXQgST1uZXcgQWJvcnRDb250cm9sbGVyLHIsbz1mdW5jdGlvbihhKXtpZighcil7cj0hMCxDKCk7bGV0IHM9YSBpbnN0YW5jZW9mIEVycm9yP2E6dGhpcy5yZWFzb247SS5hYm9ydChzIGluc3RhbmNlb2YgdT9zOm5ldyBMKHMgaW5zdGFuY2VvZiBFcnJvcj9zLm1lc3NhZ2U6cykpfX0sZz10JiZzZXRUaW1lb3V0KCgpPT57Zz1udWxsLG8obmV3IHUoYHRpbWVvdXQgJHt0fSBvZiBtcyBleGNlZWRlZGAsdS5FVElNRURPVVQpKX0sdCksQz0oKT0+e0EmJihnJiZjbGVhclRpbWVvdXQoZyksZz1udWxsLEEuZm9yRWFjaChhPT57YS51bnN1YnNjcmliZT9hLnVuc3Vic2NyaWJlKG8pOmEucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pfSksQT1udWxsKX07QS5mb3JFYWNoKGE9PmEuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLG8pKTtsZXR7c2lnbmFsOkV9PUk7cmV0dXJuIEUudW5zdWJzY3JpYmU9KCk9PmkuYXNhcChDKSxFfX0sVnQ9SEk7dmFyIFlJPWZ1bmN0aW9uKihBLHQpe2xldCBlPUEuYnl0ZUxlbmd0aDtpZighdHx8ZTx0KXt5aWVsZCBBO3JldHVybn1sZXQgST0wLHI7Zm9yKDtJPGU7KXI9SSt0LHlpZWxkIEEuc2xpY2UoSSxyKSxJPXJ9LHFJPWFzeW5jIGZ1bmN0aW9uKihBLHQpe2ZvciBhd2FpdChsZXQgZSBvZiBNSShBKSl5aWVsZCpZSShlLHQpfSxNST1hc3luYyBmdW5jdGlvbiooQSl7aWYoQVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pe3lpZWxkKkE7cmV0dXJufWxldCB0PUEuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6ZSx2YWx1ZTpJfT1hd2FpdCB0LnJlYWQoKTtpZihlKWJyZWFrO3lpZWxkIEl9fWZpbmFsbHl7YXdhaXQgdC5jYW5jZWwoKX19LGV0PShBLHQsZSxJKT0+e2xldCByPXFJKEEsdCksbz0wLGcsQz1FPT57Z3x8KGc9ITAsSSYmSShFKSl9O3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwoRSl7dHJ5e2xldHtkb25lOmEsdmFsdWU6c309YXdhaXQgci5uZXh0KCk7aWYoYSl7QygpLEUuY2xvc2UoKTtyZXR1cm59bGV0IG49cy5ieXRlTGVuZ3RoO2lmKGUpe2xldCBmPW8rPW47ZShmKX1FLmVucXVldWUobmV3IFVpbnQ4QXJyYXkocykpfWNhdGNoKGEpe3Rocm93IEMoYSksYX19LGNhbmNlbChFKXtyZXR1cm4gQyhFKSxyLnJldHVybigpfX0se2hpZ2hXYXRlck1hcms6Mn0pfTt2YXIgTkE9dHlwZW9mIGZldGNoPT0iZnVuY3Rpb24iJiZ0eXBlb2YgUmVxdWVzdD09ImZ1bmN0aW9uIiYmdHlwZW9mIFJlc3BvbnNlPT0iZnVuY3Rpb24iLF90PU5BJiZ0eXBlb2YgUmVhZGFibGVTdHJlYW09PSJmdW5jdGlvbiIsS0k9TkEmJih0eXBlb2YgVGV4dEVuY29kZXI9PSJmdW5jdGlvbiI/KEE9PnQ9PkEuZW5jb2RlKHQpKShuZXcgVGV4dEVuY29kZXIpOmFzeW5jIEE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBSZXNwb25zZShBKS5hcnJheUJ1ZmZlcigpKSksenQ9KEEsLi4udCk9Pnt0cnl7cmV0dXJuISFBKC4uLnQpfWNhdGNoe3JldHVybiExfX0sVEk9X3QmJnp0KCgpPT57bGV0IEE9ITEsdD1uZXcgUmVxdWVzdChoLm9yaWdpbix7Ym9keTpuZXcgUmVhZGFibGVTdHJlYW0sbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIEE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gQSYmIXR9KSxYdD02NCoxMDI0LEl0PV90JiZ6dCgoKT0+aS5pc1JlYWRhYmxlU3RyZWFtKG5ldyBSZXNwb25zZSgiIikuYm9keSkpLFJBPXtzdHJlYW06SXQmJihBPT5BLmJvZHkpfTtOQSYmKEE9PntbInRleHQiLCJhcnJheUJ1ZmZlciIsImJsb2IiLCJmb3JtRGF0YSIsInN0cmVhbSJdLmZvckVhY2godD0+eyFSQVt0XSYmKFJBW3RdPWkuaXNGdW5jdGlvbihBW3RdKT9lPT5lW3RdKCk6KGUsSSk9Pnt0aHJvdyBuZXcgdShgUmVzcG9uc2UgdHlwZSBcJyR7dH1cJyBpcyBub3Qgc3VwcG9ydGVkYCx1LkVSUl9OT1RfU1VQUE9SVCxJKX0pfSl9KShuZXcgUmVzcG9uc2UpO3ZhciBPST1hc3luYyBBPT57aWYoQT09bnVsbClyZXR1cm4gMDtpZihpLmlzQmxvYihBKSlyZXR1cm4gQS5zaXplO2lmKGkuaXNTcGVjQ29tcGxpYW50Rm9ybShBKSlyZXR1cm4oYXdhaXQgbmV3IFJlcXVlc3QoaC5vcmlnaW4se21ldGhvZDoiUE9TVCIsYm9keTpBfSkuYXJyYXlCdWZmZXIoKSkuYnl0ZUxlbmd0aDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KEEpfHxpLmlzQXJyYXlCdWZmZXIoQSkpcmV0dXJuIEEuYnl0ZUxlbmd0aDtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKEEpJiYoQT1BKyIiKSxpLmlzU3RyaW5nKEEpKXJldHVybihhd2FpdCBLSShBKSkuYnl0ZUxlbmd0aH0seEk9YXN5bmMoQSx0KT0+e2xldCBlPWkudG9GaW5pdGVOdW1iZXIoQS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiBlPz9PSSh0KX0sdnQ9TkEmJihhc3luYyBBPT57bGV0e3VybDp0LG1ldGhvZDplLGRhdGE6SSxzaWduYWw6cixjYW5jZWxUb2tlbjpvLHRpbWVvdXQ6ZyxvbkRvd25sb2FkUHJvZ3Jlc3M6QyxvblVwbG9hZFByb2dyZXNzOkUscmVzcG9uc2VUeXBlOmEsaGVhZGVyczpzLHdpdGhDcmVkZW50aWFsczpuPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOmZ9PUZBKEEpO2E9YT8oYSsiIikudG9Mb3dlckNhc2UoKToidGV4dCI7bGV0IEI9VnQoW3IsbyYmby50b0Fib3J0U2lnbmFsKCldLGcpLFEsbD1CJiZCLnVuc3Vic2NyaWJlJiYoKCk9PntCLnVuc3Vic2NyaWJlKCl9KSxjO3RyeXtpZihFJiZUSSYmZSE9PSJnZXQiJiZlIT09ImhlYWQiJiYoYz1hd2FpdCB4SShzLEkpKSE9PTApe2xldCBSPW5ldyBSZXF1ZXN0KHQse21ldGhvZDoiUE9TVCIsYm9keTpJLGR1cGxleDoiaGFsZiJ9KSxxO2lmKGkuaXNGb3JtRGF0YShJKSYmKHE9Ui5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZzLnNldENvbnRlbnRUeXBlKHEpLFIuYm9keSl7bGV0W1QsQkFdPXZBKGMsXygkQShFKSkpO0k9ZXQoUi5ib2R5LFh0LFQsQkEpfX1pLmlzU3RyaW5nKG4pfHwobj1uPyJpbmNsdWRlIjoib21pdCIpO2xldCBkPSJjcmVkZW50aWFscyJpbiBSZXF1ZXN0LnByb3RvdHlwZTtRPW5ldyBSZXF1ZXN0KHQsey4uLmYsc2lnbmFsOkIsbWV0aG9kOmUudG9VcHBlckNhc2UoKSxoZWFkZXJzOnMubm9ybWFsaXplKCkudG9KU09OKCksYm9keTpJLGR1cGxleDoiaGFsZiIsY3JlZGVudGlhbHM6ZD9uOnZvaWQgMH0pO2xldCB5PWF3YWl0IGZldGNoKFEpLG09SXQmJihhPT09InN0cmVhbSJ8fGE9PT0icmVzcG9uc2UiKTtpZihJdCYmKEN8fG0mJmwpKXtsZXQgUj17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChhdD0+e1JbYXRdPXlbYXRdfSk7bGV0IHE9aS50b0Zpbml0ZU51bWJlcih5LmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbVCxCQV09QyYmdkEocSxfKCRBKEMpLCEwKSl8fFtdO3k9bmV3IFJlc3BvbnNlKGV0KHkuYm9keSxYdCxULCgpPT57QkEmJkJBKCksbCYmbCgpfSksUil9YT1hfHwidGV4dCI7bGV0IEg9YXdhaXQgUkFbaS5maW5kS2V5KFJBLGEpfHwidGV4dCJdKHksQSk7cmV0dXJuIW0mJmwmJmwoKSxhd2FpdCBuZXcgUHJvbWlzZSgoUixxKT0+e29BKFIscSx7ZGF0YTpILGhlYWRlcnM6Uy5mcm9tKHkuaGVhZGVycyksc3RhdHVzOnkuc3RhdHVzLHN0YXR1c1RleHQ6eS5zdGF0dXNUZXh0LGNvbmZpZzpBLHJlcXVlc3Q6UX0pfSl9Y2F0Y2goZCl7dGhyb3cgbCYmbCgpLGQmJmQubmFtZT09PSJUeXBlRXJyb3IiJiYvZmV0Y2gvaS50ZXN0KGQubWVzc2FnZSk/T2JqZWN0LmFzc2lnbihuZXcgdSgiTmV0d29yayBFcnJvciIsdS5FUlJfTkVUV09SSyxBLFEpLHtjYXVzZTpkLmNhdXNlfHxkfSk6dS5mcm9tKGQsZCYmZC5jb2RlLEEsUSl9fSk7dmFyIHJ0PXtodHRwOnlBLHhocjpadCxmZXRjaDp2dH07aS5mb3JFYWNoKHJ0LChBLHQpPT57aWYoQSl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJuYW1lIix7dmFsdWU6dH0pfWNhdGNoe31PYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiYWRhcHRlck5hbWUiLHt2YWx1ZTp0fSl9fSk7dmFyICR0PUE9PmAtICR7QX1gLFBJPUE9PmkuaXNGdW5jdGlvbihBKXx8QT09PW51bGx8fEE9PT0hMSxVQT17Z2V0QWRhcHRlcjpBPT57QT1pLmlzQXJyYXkoQSk/QTpbQV07bGV0e2xlbmd0aDp0fT1BLGUsSSxyPXt9O2ZvcihsZXQgbz0wO288dDtvKyspe2U9QVtvXTtsZXQgZztpZihJPWUsIVBJKGUpJiYoST1ydFsoZz1TdHJpbmcoZSkpLnRvTG93ZXJDYXNlKCldLEk9PT12b2lkIDApKXRocm93IG5ldyB1KGBVbmtub3duIGFkYXB0ZXIgXCcke2d9XCdgKTtpZihJKWJyZWFrO3JbZ3x8IiUyMyIrb109SX1pZighSSl7bGV0IG89T2JqZWN0LmVudHJpZXMocikubWFwKChbQyxFXSk9PmBhZGFwdGVyICR7Q30gYCsoRT09PSExPyJpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBlbnZpcm9ubWVudCI6ImlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJ1aWxkIikpLGc9dD9vLmxlbmd0aD4xP2BzaW5jZSA6JTBBYCtvLm1hcCgkdCkuam9pbihgJTBBYCk6IiAiKyR0KG9bMF0pOiJhcyBubyBhZGFwdGVyIHNwZWNpZmllZCI7dGhyb3cgbmV3IHUoIlRoZXJlIGlzIG5vIHN1aXRhYmxlIGFkYXB0ZXIgdG8gZGlzcGF0Y2ggdGhlIHJlcXVlc3QgIitnLCJFUlJfTk9UX1NVUFBPUlQiKX1yZXR1cm4gSX0sYWRhcHRlcnM6cnR9O2Z1bmN0aW9uIG90KEEpe2lmKEEuY2FuY2VsVG9rZW4mJkEuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLEEuc2lnbmFsJiZBLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBMKG51bGwsQSl9ZnVuY3Rpb24gR0EoQSl7cmV0dXJuIG90KEEpLEEuaGVhZGVycz1TLmZyb20oQS5oZWFkZXJzKSxBLmRhdGE9SUEuY2FsbChBLEEudHJhbnNmb3JtUmVxdWVzdCksWyJwb3N0IiwicHV0IiwicGF0Y2giXS5pbmRleE9mKEEubWV0aG9kKSE9PS0xJiZBLmhlYWRlcnMuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIsITEpLFVBLmdldEFkYXB0ZXIoQS5hZGFwdGVyfHxWLmFkYXB0ZXIpKEEpLnRoZW4oZnVuY3Rpb24oSSl7cmV0dXJuIG90KEEpLEkuZGF0YT1JQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJKSxJLmhlYWRlcnM9Uy5mcm9tKEkuaGVhZGVycyksSX0sZnVuY3Rpb24oSSl7cmV0dXJuIHJBKEkpfHwob3QoQSksSSYmSS5yZXNwb25zZSYmKEkucmVzcG9uc2UuZGF0YT1JQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXNwb25zZSxJLnJlc3BvbnNlKSxJLnJlc3BvbnNlLmhlYWRlcnM9Uy5mcm9tKEkucmVzcG9uc2UuaGVhZGVycykpKSxQcm9taXNlLnJlamVjdChJKX0pfXZhciBrQT0iMS44LjQiO3ZhciBMQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsdCk9PntMQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKHQ8MT8ibiAiOiIgIikrQX19KTt2YXIgQWU9e307TEEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKHQsZSxJKXtmdW5jdGlvbiByKG8sZyl7cmV0dXJuIltBeGlvcyB2IitrQSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uIFwnIitvKyJcJyIrZysoST8iLiAiK0k6IiIpfXJldHVybihvLGcsQyk9PntpZih0PT09ITEpdGhyb3cgbmV3IHUocihnLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKGU/IiBpbiAiK2U6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gZSYmIUFlW2ddJiYoQWVbZ109ITAsY29uc29sZS53YXJuKHIoZywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrZSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSx0P3QobyxnLEMpOiEwfX07TEEuc3BlbGxpbmc9ZnVuY3Rpb24odCl7cmV0dXJuKGUsSSk9Pihjb25zb2xlLndhcm4oYCR7SX0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHt0fWApLCEwKX07ZnVuY3Rpb24gV0koQSx0LGUpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IEk9T2JqZWN0LmtleXMoQSkscj1JLmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBvPUlbcl0sZz10W29dO2lmKGcpe2xldCBDPUFbb10sRT1DPT09dm9pZCAwfHxnKEMsbyxBKTtpZihFIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK28rIiBtdXN0IGJlICIrRSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZihlIT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIrbyx1LkVSUl9CQURfT1BUSU9OKX19dmFyIGlBPXthc3NlcnRPcHRpb25zOldJLHZhbGlkYXRvcnM6TEF9O3ZhciBiPWlBLnZhbGlkYXRvcnMsej1jbGFzc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmRlZmF1bHRzPXQsdGhpcy5pbnRlcmNlcHRvcnM9e3JlcXVlc3Q6bmV3IFBBLHJlc3BvbnNlOm5ldyBQQX19YXN5bmMgcmVxdWVzdCh0LGUpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fcmVxdWVzdCh0LGUpfWNhdGNoKEkpe2lmKEkgaW5zdGFuY2VvZiBFcnJvcil7bGV0IHI9e307RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2U/RXJyb3IuY2FwdHVyZVN0YWNrVHJhY2Uocik6cj1uZXcgRXJyb3I7bGV0IG89ci5zdGFjaz9yLnN0YWNrLnJlcGxhY2UoL14uK1xcbi8sIiIpOiIiO3RyeXtJLnN0YWNrP28mJiFTdHJpbmcoSS5zdGFjaykuZW5kc1dpdGgoby5yZXBsYWNlKC9eLitcXG4uK1xcbi8sIiIpKSYmKEkuc3RhY2srPWAlMEFgK28pOkkuc3RhY2s9b31jYXRjaHt9fXRocm93IEl9fV9yZXF1ZXN0KHQsZSl7dHlwZW9mIHQ9PSJzdHJpbmciPyhlPWV8fHt9LGUudXJsPXQpOmU9dHx8e30sZT1rKHRoaXMuZGVmYXVsdHMsZSk7bGV0e3RyYW5zaXRpb25hbDpJLHBhcmFtc1NlcmlhbGl6ZXI6cixoZWFkZXJzOm99PWU7SSE9PXZvaWQgMCYmaUEuYXNzZXJ0T3B0aW9ucyhJLHtzaWxlbnRKU09OUGFyc2luZzpiLnRyYW5zaXRpb25hbChiLmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOmIudHJhbnNpdGlvbmFsKGIuYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpiLnRyYW5zaXRpb25hbChiLmJvb2xlYW4pfSwhMSksciE9bnVsbCYmKGkuaXNGdW5jdGlvbihyKT9lLnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpyfTppQS5hc3NlcnRPcHRpb25zKHIse2VuY29kZTpiLmZ1bmN0aW9uLHNlcmlhbGl6ZTpiLmZ1bmN0aW9ufSwhMCkpLGUuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDB8fCh0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwP2UuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsczplLmFsbG93QWJzb2x1dGVVcmxzPSEwKSxpQS5hc3NlcnRPcHRpb25zKGUse2Jhc2VVcmw6Yi5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46Yi5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksZS5tZXRob2Q9KGUubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IGc9byYmaS5tZXJnZShvLmNvbW1vbixvW2UubWV0aG9kXSk7byYmaS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLFE9PntkZWxldGUgb1tRXX0pLGUuaGVhZGVycz1TLmNvbmNhdChnLG8pO2xldCBDPVtdLEU9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGwpe3R5cGVvZiBsLnJ1bldoZW49PSJmdW5jdGlvbiImJmwucnVuV2hlbihlKT09PSExfHwoRT1FJiZsLnN5bmNocm9ub3VzLEMudW5zaGlmdChsLmZ1bGZpbGxlZCxsLnJlamVjdGVkKSl9KTtsZXQgYT1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGwpe2EucHVzaChsLmZ1bGZpbGxlZCxsLnJlamVjdGVkKX0pO2xldCBzLG49MCxmO2lmKCFFKXtsZXQgUT1bR0EuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihRLnVuc2hpZnQuYXBwbHkoUSxDKSxRLnB1c2guYXBwbHkoUSxhKSxmPVEubGVuZ3RoLHM9UHJvbWlzZS5yZXNvbHZlKGUpO248Zjspcz1zLnRoZW4oUVtuKytdLFFbbisrXSk7cmV0dXJuIHN9Zj1DLmxlbmd0aDtsZXQgQj1lO2ZvcihuPTA7bjxmOyl7bGV0IFE9Q1tuKytdLGw9Q1tuKytdO3RyeXtCPVEoQil9Y2F0Y2goYyl7bC5jYWxsKHRoaXMsYyk7YnJlYWt9fXRyeXtzPUdBLmNhbGwodGhpcyxCKX1jYXRjaChRKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoUSl9Zm9yKG49MCxmPWEubGVuZ3RoO248Zjspcz1zLnRoZW4oYVtuKytdLGFbbisrXSk7cmV0dXJuIHN9Z2V0VXJpKHQpe3Q9ayh0aGlzLmRlZmF1bHRzLHQpO2xldCBlPWdBKHQuYmFzZVVSTCx0LnVybCx0LmFsbG93QWJzb2x1dGVVcmxzKTtyZXR1cm4gdEEoZSx0LnBhcmFtcyx0LnBhcmFtc1NlcmlhbGl6ZXIpfX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsIm9wdGlvbnMiXSxmdW5jdGlvbih0KXt6LnByb3RvdHlwZVt0XT1mdW5jdGlvbihlLEkpe3JldHVybiB0aGlzLnJlcXVlc3QoayhJfHx7fSx7bWV0aG9kOnQsdXJsOmUsZGF0YTooSXx8e30pLmRhdGF9KSl9fSk7aS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShJKXtyZXR1cm4gZnVuY3Rpb24obyxnLEMpe3JldHVybiB0aGlzLnJlcXVlc3QoayhDfHx7fSx7bWV0aG9kOnQsaGVhZGVyczpJP3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDpvLGRhdGE6Z30pKX19ei5wcm90b3R5cGVbdF09ZSgpLHoucHJvdG90eXBlW3QrIkZvcm0iXT1lKCEwKX0pO3ZhciBzQT16O3ZhciBndD1jbGFzcyBBe2NvbnN0cnVjdG9yKHQpe2lmKHR5cGVvZiB0IT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtsZXQgZTt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24obyl7ZT1vfSk7bGV0IEk9dGhpczt0aGlzLnByb21pc2UudGhlbihyPT57aWYoIUkuX2xpc3RlbmVycylyZXR1cm47bGV0IG89SS5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO28tLSA+MDspSS5fbGlzdGVuZXJzW29dKHIpO0kuX2xpc3RlbmVycz1udWxsfSksdGhpcy5wcm9taXNlLnRoZW49cj0+e2xldCBvLGc9bmV3IFByb21pc2UoQz0+e0kuc3Vic2NyaWJlKEMpLG89Q30pLnRoZW4ocik7cmV0dXJuIGcuY2FuY2VsPWZ1bmN0aW9uKCl7SS51bnN1YnNjcmliZShvKX0sZ30sdChmdW5jdGlvbihvLGcsQyl7SS5yZWFzb258fChJLnJlYXNvbj1uZXcgTChvLGcsQyksZShJLnJlYXNvbikpfSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZSh0KXtpZih0aGlzLnJlYXNvbil7dCh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaCh0KTp0aGlzLl9saXN0ZW5lcnM9W3RdfXVuc3Vic2NyaWJlKHQpe2lmKCF0aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2xldCBlPXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKHQpO2UhPT0tMSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZShlLDEpfXRvQWJvcnRTaWduYWwoKXtsZXQgdD1uZXcgQWJvcnRDb250cm9sbGVyLGU9ST0+e3QuYWJvcnQoSSl9O3JldHVybiB0aGlzLnN1YnNjcmliZShlKSx0LnNpZ25hbC51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZShlKSx0LnNpZ25hbH1zdGF0aWMgc291cmNlKCl7bGV0IHQ7cmV0dXJue3Rva2VuOm5ldyBBKGZ1bmN0aW9uKHIpe3Q9cn0pLGNhbmNlbDp0fX19LHRlPWd0O2Z1bmN0aW9uIGl0KEEpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gQS5hcHBseShudWxsLGUpfX1mdW5jdGlvbiBzdChBKXtyZXR1cm4gaS5pc09iamVjdChBKSYmQS5pc0F4aW9zRXJyb3I9PT0hMH12YXIgbnQ9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKG50KS5mb3JFYWNoKChbQSx0XSk9PntudFt0XT1BfSk7dmFyIGVlPW50O2Z1bmN0aW9uIEllKEEpe2xldCB0PW5ldyBzQShBKSxlPXYoc0EucHJvdG90eXBlLnJlcXVlc3QsdCk7cmV0dXJuIGkuZXh0ZW5kKGUsc0EucHJvdG90eXBlLHQse2FsbE93bktleXM6ITB9KSxpLmV4dGVuZChlLHQsbnVsbCx7YWxsT3duS2V5czohMH0pLGUuY3JlYXRlPWZ1bmN0aW9uKHIpe3JldHVybiBJZShrKEEscikpfSxlfXZhciB3PUllKFYpO3cuQXhpb3M9c0E7dy5DYW5jZWxlZEVycm9yPUw7dy5DYW5jZWxUb2tlbj10ZTt3LmlzQ2FuY2VsPXJBO3cuVkVSU0lPTj1rQTt3LnRvRm9ybURhdGE9TTt3LkF4aW9zRXJyb3I9dTt3LkNhbmNlbD13LkNhbmNlbGVkRXJyb3I7dy5hbGw9ZnVuY3Rpb24odCl7cmV0dXJuIFByb21pc2UuYWxsKHQpfTt3LnNwcmVhZD1pdDt3LmlzQXhpb3NFcnJvcj1zdDt3Lm1lcmdlQ29uZmlnPWs7dy5BeGlvc0hlYWRlcnM9Uzt3LmZvcm1Ub0pTT049QT0+cEEoaS5pc0hUTUxGb3JtKEEpP25ldyBGb3JtRGF0YShBKTpBKTt3LmdldEFkYXB0ZXI9VUEuZ2V0QWRhcHRlcjt3Lkh0dHBTdGF0dXNDb2RlPWVlO3cuZGVmYXVsdD13O3ZhciBiQT13O3ZhcntBeGlvczpCaSxBeGlvc0Vycm9yOmFpLENhbmNlbGVkRXJyb3I6UWksaXNDYW5jZWw6RWksQ2FuY2VsVG9rZW46Y2ksVkVSU0lPTjpmaSxhbGw6bGksQ2FuY2VsOnVpLGlzQXhpb3NFcnJvcjpEaSxzcHJlYWQ6ZGksdG9Gb3JtRGF0YTpoaSxBeGlvc0hlYWRlcnM6eWksSHR0cFN0YXR1c0NvZGU6bWksZm9ybVRvSlNPTjp3aSxnZXRBZGFwdGVyOnBpLG1lcmdlQ29uZmlnOlNpfT1iQTt2YXIgbkEsWSxCdCxDdD17ZW52OntlbXNjcmlwdGVuX25vdGlmeV9tZW1vcnlfZ3Jvd3RoOmZ1bmN0aW9uKEEpe0J0PW5ldyBVaW50OEFycmF5KFkuZXhwb3J0cy5tZW1vcnkuYnVmZmVyKX19fSxKQT1jbGFzc3tpbml0KCl7cmV0dXJuIG5BfHwodHlwZW9mIGZldGNoPCJ1Ij9uQT1mZXRjaCgiZGF0YTphcHBsaWNhdGlvbi93YXNtO2Jhc2U2NCwiK3JlKS50aGVuKHQ9PnQuYXJyYXlCdWZmZXIoKSkudGhlbih0PT5XZWJBc3NlbWJseS5pbnN0YW50aWF0ZSh0LEN0KSkudGhlbih0aGlzLl9pbml0KTpuQT1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShCdWZmZXIuZnJvbShyZSwiYmFzZTY0IiksQ3QpLnRoZW4odGhpcy5faW5pdCksbkEpfV9pbml0KHQpe1k9dC5pbnN0YW5jZSxDdC5lbnYuZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aCgwKX1kZWNvZGUodCxlPTApe2lmKCFZKXRocm93IG5ldyBFcnJvcigiWlNURERlY29kZXI6IEF3YWl0IC5pbml0KCkgYmVmb3JlIGRlY29kaW5nLiIpO2xldCBJPXQuYnl0ZUxlbmd0aCxyPVkuZXhwb3J0cy5tYWxsb2MoSSk7QnQuc2V0KHQsciksZT1lfHxOdW1iZXIoWS5leHBvcnRzLlpTVERfZmluZERlY29tcHJlc3NlZFNpemUocixJKSk7bGV0IG89WS5leHBvcnRzLm1hbGxvYyhlKSxnPVkuZXhwb3J0cy5aU1REX2RlY29tcHJlc3MobyxlLHIsSSksQz1CdC5zbGljZShvLG8rZyk7cmV0dXJuIFkuZXhwb3J0cy5mcmVlKHIpLFkuZXhwb3J0cy5mcmVlKG8pLEN9fSxyZT0iQUdGemJRRUFBQUFCYmc1Z0EzOS9md0YvWUFGL0FYOWdBbjkvQUdBQmZ3QmdCWDkvZjM5L0FYOWdBMzkvZndCZ0JIOS9mMzhCZjJBQUFYOWdBbjkvQVg5Z0IzOS9mMzkvZjM4QmYyQUNmMzhCZm1BSWYzOS9mMzkvZjM4QmYyQUZmMzkvZjM4QVlBNS9mMzkvZjM5L2YzOS9mMzkvZndGL0FpY0JBMlZ1ZGg5bGJYTmpjbWx3ZEdWdVgyNXZkR2xtZVY5dFpXMXZjbmxmWjNKdmQzUm9BQU1ESXlJSEFBQUJBUU1IQXdFQUNRUUFCUUVJQ0FFRkJnUUVCQU1HQUFBS0FBVUxEQTBHQkFVQmNBRUJBUVVIQVFHQUFvQ0FBZ1lJQVg4QlFZQ2pCQXNIcmdFTEJtMWxiVzl5ZVFJQUJtMWhiR3h2WXdBRkJHWnlaV1VBQmd4YVUxUkVYMmx6UlhKeWIzSUFFaGxhVTFSRVgyWnBibVJFWldOdmJYQnlaWE56WldSVGFYcGxBQndQV2xOVVJGOWtaV052YlhCeVpYTnpBQ0laWDE5cGJtUnBjbVZqZEY5bWRXNWpkR2x2Ymw5MFlXSnNaUUVBRUY5ZlpYSnlibTlmYkc5allYUnBiMjRBQVFsemRHRmphMU5oZG1VQUJ3eHpkR0ZqYTFKbGMzUnZjbVVBQ0FwemRHRmphMEZzYkc5akFBa0tpL0lCSWdVQVFZUWZDek1CQVg4Z0FnUkFJQUFoQXdOQUlBTWdBUzBBQURvQUFDQURRUUZxSVFNZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzZ0FBc3BBUUYvSUFJRVFDQUFJUU1EUUNBRElBRTZBQUFnQTBFQmFpRURJQUpCQVdzaUFnMEFDd3NnQUF0c0FRSi9RWUFmS0FJQUlnRWdBRUVIYWtGNGNTSUNhaUVBQWtBZ0FrRUFJQUFnQVUwYkRRQWdBRDhBUVJCMFN3UkFJQUEvQUVFUWRHdEIvLzhEYWtFUWRrQUFRWDlHQkg5QkFBVkJBQkFBUVFFTFJRMEJDMEdBSHlBQU5nSUFJQUVQQzBHRUgwRXdOZ0lBUVg4THVTY0JDMzhqQUVFUWF5SUtKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCaUI4b0FnQWlCa0VRSUFCQkMycEJlSEVnQUVFTFNSc2lCVUVEZGlJQWRpSUJRUU54QkVBQ1FDQUJRWDl6UVFGeElBQnFJZ0pCQTNRaUFVR3dIMm9pQUNBQlFiZ2ZhaWdDQUNJQktBSUlJZ1JHQkVCQmlCOGdCa0YrSUFKM2NUWUNBQXdCQ3lBRUlBQTJBZ3dnQUNBRU5nSUlDeUFCUVFocUlRQWdBU0FDUVFOMElnSkJBM0kyQWdRZ0FTQUNhaUlCSUFFb0FnUkJBWEkyQWdRTUR3c2dCVUdRSHlnQ0FDSUhUUTBCSUFFRVFBSkFRUUlnQUhRaUFrRUFJQUpyY2lBQklBQjBjV2dpQVVFRGRDSUFRYkFmYWlJQ0lBQkJ1QjlxS0FJQUlnQW9BZ2dpQkVZRVFFR0lIeUFHUVg0Z0FYZHhJZ1kyQWdBTUFRc2dCQ0FDTmdJTUlBSWdCRFlDQ0FzZ0FDQUZRUU55TmdJRUlBQWdCV29pQ0NBQlFRTjBJZ0VnQldzaUJFRUJjallDQkNBQUlBRnFJQVEyQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUZCbkI4b0FnQWhBZ0ovSUFaQkFTQUhRUU4yZENJRGNVVUVRRUdJSHlBRElBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEF5QUJJQUkyQWdnZ0F5QUNOZ0lNSUFJZ0FUWUNEQ0FDSUFNMkFnZ0xJQUJCQ0dvaEFFR2NIeUFJTmdJQVFaQWZJQVEyQWdBTUR3dEJqQjhvQWdBaUMwVU5BU0FMYUVFQ2RFRzRJV29vQWdBaUFpZ0NCRUY0Y1NBRmF5RURJQUloQVFOQUFrQWdBU2dDRUNJQVJRUkFJQUVvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FGYXlJQklBTWdBU0FEU1NJQkd5RURJQUFnQWlBQkd5RUNJQUFoQVF3QkN3c2dBaWdDR0NFSklBSWdBaWdDRENJRVJ3UkFRWmdmS0FJQUdpQUNLQUlJSWdBZ0JEWUNEQ0FFSUFBMkFnZ01EZ3NnQWtFVWFpSUJLQUlBSWdCRkJFQWdBaWdDRUNJQVJRMERJQUpCRUdvaEFRc0RRQ0FCSVFnZ0FDSUVRUlJxSWdFb0FnQWlBQTBBSUFSQkVHb2hBU0FFS0FJUUlnQU5BQXNnQ0VFQU5nSUFEQTBMUVg4aEJTQUFRYjkvU3cwQUlBQkJDMm9pQUVGNGNTRUZRWXdmS0FJQUlnaEZEUUJCQUNBRmF5RURBa0FDUUFKQUFuOUJBQ0FGUVlBQ1NRMEFHa0VmSUFWQi8vLy9CMHNOQUJvZ0JVRW1JQUJCQ0habklnQnJka0VCY1NBQVFRRjBhMEUrYWdzaUIwRUNkRUc0SVdvb0FnQWlBVVVFUUVFQUlRQU1BUXRCQUNFQUlBVkJHU0FIUVFGMmEwRUFJQWRCSDBjYmRDRUNBMEFDUUNBQktBSUVRWGh4SUFWcklnWWdBMDhOQUNBQklRUWdCaUlERFFCQkFDRURJQUVoQUF3REN5QUFJQUVvQWhRaUJpQUdJQUVnQWtFZGRrRUVjV29vQWhBaUFVWWJJQUFnQmhzaEFDQUNRUUYwSVFJZ0FRMEFDd3NnQUNBRWNrVUVRRUVBSVFSQkFpQUhkQ0lBUVFBZ0FHdHlJQWh4SWdCRkRRTWdBR2hCQW5SQnVDRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBRmF5SUNJQU5KSVFFZ0FpQURJQUViSVFNZ0FDQUVJQUViSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRWkFmS0FJQUlBVnJUdzBBSUFRb0FoZ2hCeUFFSUFRb0Fnd2lBa2NFUUVHWUh5Z0NBQm9nQkNnQ0NDSUFJQUkyQWd3Z0FpQUFOZ0lJREF3TElBUkJGR29pQVNnQ0FDSUFSUVJBSUFRb0FoQWlBRVVOQXlBRVFSQnFJUUVMQTBBZ0FTRUdJQUFpQWtFVWFpSUJLQUlBSWdBTkFDQUNRUkJxSVFFZ0FpZ0NFQ0lBRFFBTElBWkJBRFlDQUF3TEN5QUZRWkFmS0FJQUlnUk5CRUJCbkI4b0FnQWhBQUpBSUFRZ0JXc2lBVUVRVHdSQUlBQWdCV29pQWlBQlFRRnlOZ0lFSUFBZ0JHb2dBVFlDQUNBQUlBVkJBM0kyQWdRTUFRc2dBQ0FFUVFOeU5nSUVJQUFnQkdvaUFTQUJLQUlFUVFGeU5nSUVRUUFoQWtFQUlRRUxRWkFmSUFFMkFnQkJuQjhnQWpZQ0FDQUFRUWhxSVFBTURRc2dCVUdVSHlnQ0FDSUNTUVJBUVpRZklBSWdCV3NpQVRZQ0FFR2dIMEdnSHlnQ0FDSUFJQVZxSWdJMkFnQWdBaUFCUVFGeU5nSUVJQUFnQlVFRGNqWUNCQ0FBUVFocUlRQU1EUXRCQUNFQUlBVkJMMm9pQXdKL1FlQWlLQUlBQkVCQjZDSW9BZ0FNQVF0QjdDSkNmemNDQUVIa0lrS0FvSUNBZ0lBRU53SUFRZUFpSUFwQkRHcEJjSEZCMktyVnFnVnpOZ0lBUWZRaVFRQTJBZ0JCeENKQkFEWUNBRUdBSUFzaUFXb2lCa0VBSUFGcklnaHhJZ0VnQlUwTkRFSEFJaWdDQUNJRUJFQkJ1Q0lvQWdBaUJ5QUJhaUlKSUFkTklBUWdDVWx5RFEwTEFrQkJ4Q0l0QUFCQkJIRkZCRUFDUUFKQUFrQUNRRUdnSHlnQ0FDSUVCRUJCeUNJaEFBTkFJQVFnQUNnQ0FDSUhUd1JBSUFjZ0FDZ0NCR29nQkVzTkF3c2dBQ2dDQ0NJQURRQUxDMEVBRUFRaUFrRi9SZzBESUFFaEJrSGtJaWdDQUNJQVFRRnJJZ1FnQW5FRVFDQUJJQUpySUFJZ0JHcEJBQ0FBYTNGcUlRWUxJQVVnQms4TkEwSEFJaWdDQUNJQUJFQkJ1Q0lvQWdBaUJDQUdhaUlJSUFSTklBQWdDRWx5RFFRTElBWVFCQ0lBSUFKSERRRU1CUXNnQmlBQ2F5QUljU0lHRUFRaUFpQUFLQUlBSUFBb0FnUnFSZzBCSUFJaEFBc2dBRUYvUmcwQklBVkJNR29nQmswRVFDQUFJUUlNQkF0QjZDSW9BZ0FpQWlBRElBWnJha0VBSUFKcmNTSUNFQVJCZjBZTkFTQUNJQVpxSVFZZ0FDRUNEQU1MSUFKQmYwY05BZ3RCeENKQnhDSW9BZ0JCQkhJMkFnQUxJQUVRQkNJQ1FYOUdRUUFRQkNJQVFYOUdjaUFBSUFKTmNnMEZJQUFnQW1zaUJpQUZRU2hxVFEwRkMwRzRJa0c0SWlnQ0FDQUdhaUlBTmdJQVFid2lLQUlBSUFCSkJFQkJ2Q0lnQURZQ0FBc0NRRUdnSHlnQ0FDSURCRUJCeUNJaEFBTkFJQUlnQUNnQ0FDSUJJQUFvQWdRaUJHcEdEUUlnQUNnQ0NDSUFEUUFMREFRTFFaZ2ZLQUlBSWdCQkFDQUFJQUpORzBVRVFFR1lIeUFDTmdJQUMwRUFJUUJCekNJZ0JqWUNBRUhJSWlBQ05nSUFRYWdmUVg4MkFnQkJyQjlCNENJb0FnQTJBZ0JCMUNKQkFEWUNBQU5BSUFCQkEzUWlBVUc0SDJvZ0FVR3dIMm9pQkRZQ0FDQUJRYndmYWlBRU5nSUFJQUJCQVdvaUFFRWdSdzBBQzBHVUh5QUdRU2hySWdCQmVDQUNhMEVIY1NJQmF5SUVOZ0lBUWFBZklBRWdBbW9pQVRZQ0FDQUJJQVJCQVhJMkFnUWdBQ0FDYWtFb05nSUVRYVFmUWZBaUtBSUFOZ0lBREFRTElBSWdBMDBnQVNBRFMzSU5BaUFBS0FJTVFRaHhEUUlnQUNBRUlBWnFOZ0lFUWFBZklBTkJlQ0FEYTBFSGNTSUFhaUlCTmdJQVFaUWZRWlFmS0FJQUlBWnFJZ0lnQUdzaUFEWUNBQ0FCSUFCQkFYSTJBZ1FnQWlBRGFrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBTUxRUUFoQkF3S0MwRUFJUUlNQ0F0Qm1COG9BZ0FnQWtzRVFFR1lIeUFDTmdJQUN5QUNJQVpxSVFGQnlDSWhBQUpBQWtBQ1FBTkFJQUVnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEJ5Q0loQUFOQUlBTWdBQ2dDQUNJQlR3UkFJQUVnQUNnQ0JHb2lCQ0FEU3cwREN5QUFLQUlJSVFBTUFBc0FDeUFBSUFJMkFnQWdBQ0FBS0FJRUlBWnFOZ0lFSUFKQmVDQUNhMEVIY1dvaUJ5QUZRUU55TmdJRUlBRkJlQ0FCYTBFSGNXb2lCaUFGSUFkcUlnVnJJUUFnQXlBR1JnUkFRYUFmSUFVMkFnQkJsQjlCbEI4b0FnQWdBR29pQURZQ0FDQUZJQUJCQVhJMkFnUU1DQXRCbkI4b0FnQWdCa1lFUUVHY0h5QUZOZ0lBUVpBZlFaQWZLQUlBSUFCcUlnQTJBZ0FnQlNBQVFRRnlOZ0lFSUFBZ0JXb2dBRFlDQUF3SUN5QUdLQUlFSWdOQkEzRkJBVWNOQmlBRFFYaHhJUWtnQTBIL0FVMEVRQ0FHS0FJTUlnRWdCaWdDQ0NJQ1JnUkFRWWdmUVlnZktBSUFRWDRnQTBFRGRuZHhOZ0lBREFjTElBSWdBVFlDRENBQklBSTJBZ2dNQmdzZ0JpZ0NHQ0VJSUFZZ0JpZ0NEQ0lDUndSQUlBWW9BZ2dpQVNBQ05nSU1JQUlnQVRZQ0NBd0ZDeUFHUVJScUlnRW9BZ0FpQTBVRVFDQUdLQUlRSWdORkRRUWdCa0VRYWlFQkN3TkFJQUVoQkNBRElnSkJGR29pQVNnQ0FDSUREUUFnQWtFUWFpRUJJQUlvQWhBaUF3MEFDeUFFUVFBMkFnQU1CQXRCbEI4Z0JrRW9heUlBUVhnZ0FtdEJCM0VpQVdzaUNEWUNBRUdnSHlBQklBSnFJZ0UyQWdBZ0FTQUlRUUZ5TmdJRUlBQWdBbXBCS0RZQ0JFR2tIMEh3SWlnQ0FEWUNBQ0FESUFSQkp5QUVhMEVIY1dwQkwyc2lBQ0FBSUFOQkVHcEpHeUlCUVJzMkFnUWdBVUhRSWlrQ0FEY0NFQ0FCUWNnaUtRSUFOd0lJUWRBaUlBRkJDR28yQWdCQnpDSWdCallDQUVISUlpQUNOZ0lBUWRRaVFRQTJBZ0FnQVVFWWFpRUFBMEFnQUVFSE5nSUVJQUJCQ0dvZ0FFRUVhaUVBSUFSSkRRQUxJQUVnQTBZTkFDQUJJQUVvQWdSQmZuRTJBZ1FnQXlBQklBTnJJZ0pCQVhJMkFnUWdBU0FDTmdJQUlBSkIvd0ZOQkVBZ0FrRjRjVUd3SDJvaEFBSi9RWWdmS0FJQUlnRkJBU0FDUVFOMmRDSUNjVVVFUUVHSUh5QUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBU0FBSUFNMkFnZ2dBU0FETmdJTUlBTWdBRFlDRENBRElBRTJBZ2dNQVF0Qkh5RUFJQUpCLy8vL0IwMEVRQ0FDUVNZZ0FrRUlkbWNpQUd0MlFRRnhJQUJCQVhSclFUNXFJUUFMSUFNZ0FEWUNIQ0FEUWdBM0FoQWdBRUVDZEVHNElXb2hBUUpBQWtCQmpCOG9BZ0FpQkVFQklBQjBJZ1p4UlFSQVFZd2ZJQVFnQm5JMkFnQWdBU0FETmdJQURBRUxJQUpCR1NBQVFRRjJhMEVBSUFCQkgwY2JkQ0VBSUFFb0FnQWhCQU5BSUFRaUFTZ0NCRUY0Y1NBQ1JnMENJQUJCSFhZaEJDQUFRUUYwSVFBZ0FTQUVRUVJ4YWlJR0tBSVFJZ1FOQUFzZ0JpQUROZ0lRQ3lBRElBRTJBaGdnQXlBRE5nSU1JQU1nQXpZQ0NBd0JDeUFCS0FJSUlnQWdBellDRENBQklBTTJBZ2dnQTBFQU5nSVlJQU1nQVRZQ0RDQURJQUEyQWdnTFFaUWZLQUlBSWdBZ0JVME5BRUdVSHlBQUlBVnJJZ0UyQWdCQm9COUJvQjhvQWdBaUFDQUZhaUlDTmdJQUlBSWdBVUVCY2pZQ0JDQUFJQVZCQTNJMkFnUWdBRUVJYWlFQURBZ0xRWVFmUVRBMkFnQkJBQ0VBREFjTFFRQWhBZ3NnQ0VVTkFBSkFJQVlvQWh3aUFVRUNkRUc0SVdvaUJDZ0NBQ0FHUmdSQUlBUWdBallDQUNBQ0RRRkJqQjlCakI4b0FnQkJmaUFCZDNFMkFnQU1BZ3NnQ0VFUVFSUWdDQ2dDRUNBR1JodHFJQUkyQWdBZ0FrVU5BUXNnQWlBSU5nSVlJQVlvQWhBaUFRUkFJQUlnQVRZQ0VDQUJJQUkyQWhnTElBWW9BaFFpQVVVTkFDQUNJQUUyQWhRZ0FTQUNOZ0lZQ3lBQUlBbHFJUUFnQmlBSmFpSUdLQUlFSVFNTElBWWdBMEYrY1RZQ0JDQUZJQUJCQVhJMkFnUWdBQ0FGYWlBQU5nSUFJQUJCL3dGTkJFQWdBRUY0Y1VHd0gyb2hBUUovUVlnZktBSUFJZ0pCQVNBQVFRTjJkQ0lBY1VVRVFFR0lIeUFBSUFKeU5nSUFJQUVNQVFzZ0FTZ0NDQXNoQUNBQklBVTJBZ2dnQUNBRk5nSU1JQVVnQVRZQ0RDQUZJQUEyQWdnTUFRdEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBVWdBellDSENBRlFnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUFrRUJJQU4wSWdSeFJRUkFRWXdmSUFJZ0JISTJBZ0FnQVNBRk5nSUFEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQWdOQUlBSWlBU2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBaUFEUVFGMElRTWdBU0FDUVFSeGFpSUVLQUlRSWdJTkFBc2dCQ0FGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQWRCQ0dvaEFBd0NDd0pBSUFkRkRRQUNRQ0FFS0FJY0lnQkJBblJCdUNGcUlnRW9BZ0FnQkVZRVFDQUJJQUkyQWdBZ0FnMEJRWXdmSUFoQmZpQUFkM0VpQ0RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFSR0cyb2dBallDQUNBQ1JRMEJDeUFDSUFjMkFoZ2dCQ2dDRUNJQUJFQWdBaUFBTmdJUUlBQWdBallDR0FzZ0JDZ0NGQ0lBUlEwQUlBSWdBRFlDRkNBQUlBSTJBaGdMQWtBZ0EwRVBUUVJBSUFRZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQkdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFRZ0JVRURjallDQkNBRUlBVnFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQTBIL0FVMEVRQ0FEUVhoeFFiQWZhaUVBQW45QmlCOG9BZ0FpQVVFQklBTkJBM1owSWdOeFJRUkFRWWdmSUFFZ0EzSTJBZ0FnQUF3QkN5QUFLQUlJQ3lFQklBQWdBallDQ0NBQklBSTJBZ3dnQWlBQU5nSU1JQUlnQVRZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJKaUFEUVFoMlp5SUFhM1pCQVhFZ0FFRUJkR3RCUG1vaEFBc2dBaUFBTmdJY0lBSkNBRGNDRUNBQVFRSjBRYmdoYWlFQkFrQUNRQ0FJUVFFZ0FIUWlCbkZGQkVCQmpCOGdCaUFJY2pZQ0FDQUJJQUkyQWdBTUFRc2dBMEVaSUFCQkFYWnJRUUFnQUVFZlJ4dDBJUUFnQVNnQ0FDRUZBMEFnQlNJQktBSUVRWGh4SUFOR0RRSWdBRUVkZGlFR0lBQkJBWFFoQUNBQklBWkJCSEZxSWdZb0FoQWlCUTBBQ3lBR0lBSTJBaEFMSUFJZ0FUWUNHQ0FDSUFJMkFnd2dBaUFDTmdJSURBRUxJQUVvQWdnaUFDQUNOZ0lNSUFFZ0FqWUNDQ0FDUVFBMkFoZ2dBaUFCTmdJTUlBSWdBRFlDQ0FzZ0JFRUlhaUVBREFFTEFrQWdDVVVOQUFKQUlBSW9BaHdpQUVFQ2RFRzRJV29pQVNnQ0FDQUNSZ1JBSUFFZ0JEWUNBQ0FFRFFGQmpCOGdDMEYrSUFCM2NUWUNBQXdDQ3lBSlFSQkJGQ0FKS0FJUUlBSkdHMm9nQkRZQ0FDQUVSUTBCQ3lBRUlBazJBaGdnQWlnQ0VDSUFCRUFnQkNBQU5nSVFJQUFnQkRZQ0dBc2dBaWdDRkNJQVJRMEFJQVFnQURZQ0ZDQUFJQVEyQWhnTEFrQWdBMEVQVFFSQUlBSWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0Ftb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBSWdCVUVEY2pZQ0JDQUNJQVZxSWdRZ0EwRUJjallDQkNBRElBUnFJQU0yQWdBZ0J3UkFJQWRCZUhGQnNCOXFJUUJCbkI4b0FnQWhBUUovUVFFZ0IwRURkblFpQlNBR2NVVUVRRUdJSHlBRklBWnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEJpQUFJQUUyQWdnZ0JpQUJOZ0lNSUFFZ0FEWUNEQ0FCSUFZMkFnZ0xRWndmSUFRMkFnQkJrQjhnQXpZQ0FBc2dBa0VJYWlFQUN5QUtRUkJxSkFBZ0FBdlNDd0VIZndKQUlBQkZEUUFnQUVFSWF5SUNJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBaUFDS0FJQUlnRnJJZ0pCbUI4b0FnQkpEUUVnQUNBQmFpRUFBa0FDUUVHY0h5Z0NBQ0FDUndSQUlBRkIvd0ZOQkVBZ0FVRURkaUVFSUFJb0Fnd2lBU0FDS0FJSUlnTkdCRUJCaUI5QmlCOG9BZ0JCZmlBRWQzRTJBZ0FNQlFzZ0F5QUJOZ0lNSUFFZ0F6WUNDQXdFQ3lBQ0tBSVlJUVlnQWlBQ0tBSU1JZ0ZIQkVBZ0FpZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQUpCRkdvaUJDZ0NBQ0lEUlFSQUlBSW9BaEFpQTBVTkFpQUNRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGS0FJRUlnRkJBM0ZCQTBjTkFrR1FIeUFBTmdJQUlBVWdBVUYrY1RZQ0JDQUNJQUJCQVhJMkFnUWdCU0FBTmdJQUR3dEJBQ0VCQ3lBR1JRMEFBa0FnQWlnQ0hDSURRUUowUWJnaGFpSUVLQUlBSUFKR0JFQWdCQ0FCTmdJQUlBRU5BVUdNSDBHTUh5Z0NBRUYrSUFOM2NUWUNBQXdDQ3lBR1FSQkJGQ0FHS0FJUUlBSkdHMm9nQVRZQ0FDQUJSUTBCQ3lBQklBWTJBaGdnQWlnQ0VDSURCRUFnQVNBRE5nSVFJQU1nQVRZQ0dBc2dBaWdDRkNJRFJRMEFJQUVnQXpZQ0ZDQURJQUUyQWhnTElBSWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQUpBQWtBQ1FDQUJRUUp4UlFSQVFhQWZLQUlBSUFWR0JFQkJvQjhnQWpZQ0FFR1VIMEdVSHlnQ0FDQUFhaUlBTmdJQUlBSWdBRUVCY2pZQ0JDQUNRWndmS0FJQVJ3MEdRWkFmUVFBMkFnQkJuQjlCQURZQ0FBOExRWndmS0FJQUlBVkdCRUJCbkI4Z0FqWUNBRUdRSDBHUUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FBSUFKcUlBQTJBZ0FQQ3lBQlFYaHhJQUJxSVFBZ0FVSC9BVTBFUUNBQlFRTjJJUVFnQlNnQ0RDSUJJQVVvQWdnaUEwWUVRRUdJSDBHSUh5Z0NBRUYrSUFSM2NUWUNBQXdGQ3lBRElBRTJBZ3dnQVNBRE5nSUlEQVFMSUFVb0FoZ2hCaUFGSUFVb0Fnd2lBVWNFUUVHWUh5Z0NBQm9nQlNnQ0NDSURJQUUyQWd3Z0FTQUROZ0lJREFNTElBVkJGR29pQkNnQ0FDSURSUVJBSUFVb0FoQWlBMFVOQWlBRlFSQnFJUVFMQTBBZ0JDRUhJQU1pQVVFVWFpSUVLQUlBSWdNTkFDQUJRUkJxSVFRZ0FTZ0NFQ0lERFFBTElBZEJBRFlDQUF3Q0N5QUZJQUZCZm5FMkFnUWdBaUFBUVFGeU5nSUVJQUFnQW1vZ0FEWUNBQXdEQzBFQUlRRUxJQVpGRFFBQ1FDQUZLQUljSWdOQkFuUkJ1Q0ZxSWdRb0FnQWdCVVlFUUNBRUlBRTJBZ0FnQVEwQlFZd2ZRWXdmS0FJQVFYNGdBM2R4TmdJQURBSUxJQVpCRUVFVUlBWW9BaEFnQlVZYmFpQUJOZ0lBSUFGRkRRRUxJQUVnQmpZQ0dDQUZLQUlRSWdNRVFDQUJJQU0yQWhBZ0F5QUJOZ0lZQ3lBRktBSVVJZ05GRFFBZ0FTQUROZ0lVSUFNZ0FUWUNHQXNnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUNBQ1Fad2ZLQUlBUncwQVFaQWZJQUEyQWdBUEN5QUFRZjhCVFFSQUlBQkJlSEZCc0I5cUlRRUNmMEdJSHlnQ0FDSURRUUVnQUVFRGRuUWlBSEZGQkVCQmlCOGdBQ0FEY2pZQ0FDQUJEQUVMSUFFb0FnZ0xJUUFnQVNBQ05nSUlJQUFnQWpZQ0RDQUNJQUUyQWd3Z0FpQUFOZ0lJRHd0Qkh5RURJQUJCLy8vL0IwMEVRQ0FBUVNZZ0FFRUlkbWNpQVd0MlFRRnhJQUZCQVhSclFUNXFJUU1MSUFJZ0F6WUNIQ0FDUWdBM0FoQWdBMEVDZEVHNElXb2hBUUpBQWtBQ1FFR01IeWdDQUNJRVFRRWdBM1FpQjNGRkJFQkJqQjhnQkNBSGNqWUNBQ0FCSUFJMkFnQWdBaUFCTmdJWURBRUxJQUJCR1NBRFFRRjJhMEVBSUFOQkgwY2JkQ0VESUFFb0FnQWhBUU5BSUFFaUJDZ0NCRUY0Y1NBQVJnMENJQU5CSFhZaEFTQURRUUYwSVFNZ0JDQUJRUVJ4YWlJSFFSQnFLQUlBSWdFTkFBc2dCeUFDTmdJUUlBSWdCRFlDR0FzZ0FpQUNOZ0lNSUFJZ0FqWUNDQXdCQ3lBRUtBSUlJZ0FnQWpZQ0RDQUVJQUkyQWdnZ0FrRUFOZ0lZSUFJZ0JEWUNEQ0FDSUFBMkFnZ0xRYWdmUWFnZktBSUFRUUZySWdCQmZ5QUFHellDQUFzTEJBQWpBQXNHQUNBQUpBQUxFQUFqQUNBQWEwRndjU0lBSkFBZ0FBdEtBUUYvSUFBZ0FVa0VRQ0FBSUFFZ0FoQUNEd3NnQWdSQUlBQWdBbW9oQXlBQklBSnFJUUVEUUNBRFFRRnJJZ01nQVVFQmF5SUJMUUFBT2dBQUlBSkJBV3NpQWcwQUN3c2dBQXY5RGdJUmZ3RitJd0JCTUdzaUJ5UUFRYmgvSVFnQ1FDQUZSUTBBSUFRc0FBQWlDVUgvQVhFaEN3SkFJQWxCQUVnRVFDQUxRZjRBYTBFQmRpSUdJQVZQRFFKQmJDRUlJQXRCL3dCcklndEIvd0ZMRFFJZ0JFRUJhaUVJUVFBaEJRTkFJQVVnQzA4RVFDQUxJUWdnQmlFTERBTUZJQUFnQldvZ0NDQUZRUUYyYWlJRUxRQUFRUVIyT2dBQUlBQWdCVUVCY21vZ0JDMEFBRUVQY1RvQUFDQUZRUUpxSVFVTUFRc0FDd0FMSUFVZ0MwME5BU0FIUWY4Qk5nSUVJQVlnQjBFRWFpQUhRUWhxSUFSQkFXb2lEaUFMRUF3aUJFR0lmMHNFUUNBRUlRZ01BZ3RCVkNFSUlBY29BZ2dpRUVFR1N3MEJJQWNvQWdRaUVVRUJkQ0lKUVFKcXJVSUJJQkN0aGlJWVFRRWdFSFFpRFVFQmFpSUZyVUlDaG54OFFndDhRdnovLy8vLy8vLy8vd0NEUXVRQ1ZnMEJRVkloQ0NBUlFmOEJTdzBCSUExQmYzTkJBblJCNUFKcXJTQVJRUUZxSWhWQkFYU3RJQmg4UWdoOFZBMEJJQXNnQkdzaEZpQUVJQTVxSVJjZ0JrR0FCR29pRWlBRlFRSjBhaUlSSUFscVFRSnFJUTRnQmtHRUJHb2hFMEdBZ0FJZ0VIUkJFSFloQ1VFQUlRVkJBU0VQSUExQkFXc2lGQ0VLQTBBZ0JTQVZSa1VFUUFKQUlBWWdCVUVCZENJSWFpOEJBQ0lFUWYvL0EwWUVRQ0FUSUFwQkFuUnFJQVU2QUFJZ0NrRUJheUVLUVFFaEJBd0JDeUFQUVFBZ0NTQUV3VW9iSVE4TElBZ2dFV29nQkRzQkFDQUZRUUZxSVFVTUFRc0xJQVlnRHpzQmdnUWdCaUFRT3dHQUJBSkFJQW9nRkVZRVFDQU5RUU4ySVFoQ0FDRVlRUUFoRHdOQUlBd2dGVVlFUUNBSUlBMUJBWFpxUVFOcUlnbEJBWFFoQ0VFQUlRUkJBQ0VLQTBCQkFDRUZJQW9nRFU4TkJBTkFJQVZCQWtaRkJFQWdFeUFGSUFsc0lBUnFJQlJ4UVFKMGFpQU9JQVVnQ21wcUxRQUFPZ0FDSUFWQkFXb2hCUXdCQ3dzZ0NrRUNhaUVLSUFRZ0NHb2dGSEVoQkF3QUN3QUZJQVlnREVFQmRHb3VBUUFoQ1NBT0lBOXFJZ1FnR0RjQUFFRUlJUVVEUUNBRklBbE9SUVJBSUFRZ0JXb2dHRGNBQUNBRlFRaHFJUVVNQVFzTElCaENnWUtFaUpDZ3dJQUJmQ0VZSUF4QkFXb2hEQ0FKSUE5cUlROE1BUXNBQ3dBTElBMUJBM1lnRFVFQmRtcEJBMm9oQ0VFQUlRVURRQ0FNSUJWR1JRUkFRUUFoQ1NBR0lBeEJBWFJxTGdFQUlnUkJBQ0FFUVFCS0d5RUVBMEFnQkNBSlJrVUVRQ0FUSUFWQkFuUnFJQXc2QUFJRFFDQUZJQWhxSUJSeElnVWdDa3NOQUFzZ0NVRUJhaUVKREFFTEN5QU1RUUZxSVF3TUFRc0xRWDhoQ0NBRkRRSUxJQkJCQVdvaENFRUFJUVVEUUNBRklBMUdSUVJBSUJFZ0V5QUZRUUowYWlJT0xRQUNRUUYwYWlJRUlBUXZBUUFpQ1VFQmFqc0JBQ0FPSUFnZ0NXZEJZSE5xSWdRNkFBTWdEaUFKSUFSMElBMXJPd0VBSUFWQkFXb2hCUXdCQ3dzQ1FBSkFJQVl2QVlJRUJFQWdCMEVjYWlJRUlCY2dGaEFOSWdoQmlIOUxEUUlnQjBFVWFpQUVJQklRRGlBSFFReHFJQVFnRWhBT1FRQWhCUU5BSUFkQkhHb2lCQkFQSUFWQit3RkxjZzBDSUFBZ0JXb2lCaUFIUVJScUlBUVFFRG9BQUNBR0lBZEJER29nQkJBUU9nQUJJQVZCQW5JaEJDQUhRUnhxRUE4RVFDQUVJUVVNQXdVZ0FDQUVhaUFIUVJScUlBZEJIR29pQkJBUU9nQUFJQVlnQjBFTWFpQUVFQkE2QUFNZ0JVRUVhaUVGREFFTEFBc0FDeUFIUVJ4cUlnUWdGeUFXRUEwaUNFR0lmMHNOQVNBSFFSUnFJQVFnRWhBT0lBZEJER29nQkNBU0VBNUJBQ0VGQTBBZ0IwRWNhaUlFRUE4Z0JVSDdBVXR5UlFSQUlBQWdCV29pQmlBSFFSUnFJQVFRRVRvQUFDQUdJQWRCREdvZ0JCQVJPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVRklBQWdCR29nQjBFVWFpQUhRUnhxSWdRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBRElBVkJCR29oQlF3Q0N3c0xBbjhEUUVHNmZ5RUlJQVZCL1FGTERRTWdBQ0FGYWlJR0lBZEJGR29nQjBFY2FpSUpFQkU2QUFBZ0JrRUJhaUVFSUFrUUQwRURSZ1JBSUFkQkRHb2hDRUVDREFJTElBVkIvQUZMRFFNZ0JpQUhRUXhxSUFkQkhHb2lCQkFST2dBQklBVkJBbW9oQlNBRUVBOUJBMGNOQUFzZ0FDQUZhaUVFSUFkQkZHb2hDRUVEQ3lBRUlBZ2dCMEVjYWhBUk9nQUFJQVpxSUFCcklRZ01BUXNDZndOQVFicC9JUWdnQlVIOUFVc05BaUFBSUFWcUlnWWdCMEVVYWlBSFFSeHFJZ2tRRURvQUFDQUdRUUZxSVFRZ0NSQVBRUU5HQkVBZ0IwRU1haUVJUVFJTUFnc2dCVUg4QVVzTkFpQUdJQWRCREdvZ0IwRWNhaUlFRUJBNkFBRWdCVUVDYWlFRklBUVFEMEVEUncwQUN5QUFJQVZxSVFRZ0IwRVVhaUVJUVFNTElBUWdDQ0FIUVJ4cUVCQTZBQUFnQm1vZ0FHc2hDQXNnQ0VHSWYwc05BUXNnQ0NFRVFRQWhCU0FCUVFCQk5CQURJUWxCQUNFS0EwQWdCQ0FGUndSQUlBQWdCV29pQmkwQUFDSUJRUXRMQkVCQmJDRUlEQU1GSUFrZ0FVRUNkR29pQVNBQktBSUFRUUZxTmdJQUlBVkJBV29oQlVFQklBWXRBQUIwUVFGMUlBcHFJUW9NQWdzQUN3dEJiQ0VJSUFwRkRRQWdDbWNpQlVFZmN5SUJRUXRMRFFBZ0EwRWdJQVZyTmdJQVFRRkJBaUFCZENBS2F5SURaMEVmY3lJQmRDQURSdzBBSUFBZ0JHb2dBVUVCYWlJQU9nQUFJQWtnQUVFQ2RHb2lBQ0FBS0FJQVFRRnFOZ0lBSUFrb0FnUWlBRUVDU1NBQVFRRnhjZzBBSUFJZ0JFRUJhallDQUNBTFFRRnFJUWdMSUFkQk1Hb2tBQ0FJQzZBRkFReC9Jd0JCRUdzaURDUUFBbjhnQkVFSFRRUkFJQXhDQURjRENDQU1RUWhxSWdVZ0F5QUVFQUlhUVd3Z0FDQUJJQUlnQlVFSUVBd2lBQ0FBSUFSTEd5QUFJQUJCaVg5Skd3d0JDeUFBUVFBZ0FTZ0NBRUVCYWlJTlFRRjBFQU1oRDBGVUlBTW9BQUFpQmtFUGNTSUFRUXBMRFFBYUlBSWdBRUVGYWpZQ0FDQURJQVJxSWdKQkJHc2hCeUFDUVFkcklRc2dBRUVHYWlFT1FRUWhBaUFHUVFSMklRVkJJQ0FBZENJSVFRRnlJUWxCQUNFQVFRRWhCaUFESVFRRFFBSkFJQVpCQVhGRkJFQURRQ0FGUVg5elFZQ0FnSUI0Y21naUJrRVlTVVVFUUNBQVFTUnFJUUFnQkNBTFRRUi9JQVJCQTJvRklBUWdDMnRCQTNRZ0FtcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMSUFJZ0JrRWVjU0lLYWtFQ2FpRUNJQVpCQVhaQkEyd2dBR29nQlNBS2RrRURjV29pQUNBTlR3MEJBbjhnQkNBTFN5QUNRUU4ySUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQVFnQjJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVMSUFVZ0NFRUJhM0VpQmlBSVFRRjBRUUZySWdvZ0NXc2lFRWtFZnlBT1FRRnJCU0FGSUFweElnVWdFRUVBSUFVZ0NFNGJheUVHSUE0TElRVWdEeUFBUVFGMGFpQUdRUUZySWdvN0FRQWdBRUVCYWlFQUlBSWdCV29oQWlBSVFRRWdCbXNnQ2lBR1FRQktHeUFKYWlJSlNnUkFJQWxCQWtnTkFVRWdJQWxuSWdWcklRNUJBU0FGUVI5emRDRUlDeUFBSUExUERRQWdDa0VBUnlFR0FuOGdCQ0FMU3lBQ1FRTjFJQVJxSWdVZ0IwdHhSUVJBSUFKQkIzRWhBaUFGREFFTElBSWdCQ0FIYTBFRGRHcEJIM0VoQWlBSEN5SUVLQUFBSUFKMklRVU1BUXNMUVd3Z0NVRUJSdzBBR2tGUUlBQWdEVXNOQUJwQmJDQUNRU0JLRFFBYUlBRWdBRUVCYXpZQ0FDQUVJQUpCQjJwQkEzVnFJQU5yQ3lBTVFSQnFKQUFMOGdFQkFYOGdBa1VFUUNBQVFnQTNBZ0FnQUVFQU5nSVFJQUJDQURjQ0NFRzRmdzhMSUFBZ0FUWUNEQ0FBSUFGQkJHbzJBaEFnQWtFRVR3UkFJQUFnQVNBQ2FpSUJRUVJySWdNMkFnZ2dBQ0FES0FBQU5nSUFJQUZCQVdzdEFBQWlBUVJBSUFBZ0FXZEJGMnMyQWdRZ0FnOExJQUJCQURZQ0JFRi9Ed3NnQUNBQk5nSUlJQUFnQVMwQUFDSUROZ0lBQWtBQ1FBSkFJQUpCQW1zT0FnRUFBZ3NnQUNBQkxRQUNRUkIwSUFOeUlnTTJBZ0FMSUFBZ0FTMEFBVUVJZENBRGFqWUNBQXNnQVNBQ2FrRUJheTBBQUNJQlJRUkFJQUJCQURZQ0JFRnNEd3NnQUNBQlp5QUNRUU4wYTBFSmFqWUNCQ0FDQzBRQkFuOGdBU0FDTHdFQUlnTWdBU2dDQkdvaUJEWUNCQ0FBSUFOQkFuUkJvQjFxS0FJQUlBRW9BZ0JCQUNBRWEzWnhOZ0lBSUFFUUR4b2dBQ0FDUVFScU5nSUVDNThCQVFSL1FRTWhBU0FBS0FJRUlnSkJJRTBFUUNBQUtBSUlJZ0VnQUNnQ0VFOEVRQ0FBSUFKQkIzRTJBZ1FnQUNBQklBSkJBM1pySWdJMkFnZ2dBQ0FDS0FBQU5nSUFRUUFQQ3lBQUtBSU1JZ01nQVVZRVFFRUJRUUlnQWtFZ1NSc1BDeUFBSUFFZ0FTQURheUFDUVFOMklnUWdBU0FFYXlBRFNTSUJHeUlEYXlJRU5nSUlJQUFnQWlBRFFRTjBhellDQkNBQUlBUW9BQUEyQWdBTElBRUxTQUVFZnlBQUtBSUVJQUFvQWdCQkFuUnFJZ0l0QUFJZ0FpOEJBQ0VFSUFFZ0FTZ0NCQ0lGSUFJdEFBTWlBbW8yQWdRZ0FDQUVJQUVvQWdBZ0JYUkJBQ0FDYTNacU5nSUFDMUlCQkg4Z0FDZ0NCQ0FBS0FJQVFRSjBhaUlDTFFBQ0lBSXZBUUFoQkNBQklBSXRBQU1pQWlBQktBSUVhaUlGTmdJRUlBQWdCQ0FDUVFKMFFhQWRhaWdDQUNBQktBSUFRUUFnQld0MmNXbzJBZ0FMQ0FBZ0FFR0lmMHNMR2dBZ0FBUkFJQUVFUUNBQ0lBQWdBUkVDQUE4TElBQVFCZ3NMcGdnQ0RYOEJmaU1BUVJCcklna2tBQ0FKUVFBMkFnd2dDVUVBTmdJSUFuOENRQ0FEUWVnSmFpQURJQWxCQ0dvZ0NVRU1haUFCSUFJZ0EwR0FBV29RQ3lJUFFZaC9TdzBBUVZRZ0NTZ0NEQ0lFSUFBb0FnQWlBVUgvQVhGQkFXcExEUUVhSUFCQkJHb2hDeUFBSUFGQi80R0FlSEVnQkVFUWRFR0FnUHdIY1hJMkFnQkJmeUFFSUFSQkFFZ2JRUUZxSVFCQkFDRUJJQWtvQWdnaEJVRUFJUUlEUUNBQUlBSkdCRUFnQlVFRGF5RUJRUUFoQUFOQUFrQkJBQ0VDSUFBZ0FVNEVRQU5BSUFBZ0JVNE5BaUFESUFBZ0EycEI2QWxxTFFBQVFRSjBha0ZBYXlJQklBRW9BZ0FpQVVFQmFqWUNBQ0FCSUFOcUlBQTZBT2dISUFCQkFXb2hBQXdBQ3dBRkEwQWdBa0VFUmtVRVFDQURJQU1nQUNBQ2FpSUhha0hvQ1dvdEFBQkJBblJxUVVCcklnZ2dDQ2dDQUNJSVFRRnFOZ0lBSUFNZ0NHb2dCem9BNkFjZ0FrRUJhaUVDREFFTEN5QUFRUVJxSVFBTUFnc0FDd3NnQkVFQmFpRU9JQU1vQWdBaEIwRUFJUUJCQVNFSUEwQWdDQ0FPUmcwRElBNGdDR3NoQkNBRElBaEJBblJxS0FJQUlRVUNRQUpBQWtBQ1FBSkFBa0JCQVNBSWRFRUJkU0lOUVFGckRnZ0FBUVFDQkFRRUF3UUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUFJUUVEUUNBQ0lBWkdEUVVnQXlBQ0lBZHFhaTBBNkFjaENpQUxJQUZCQVhScUlnd2dCRG9BQVNBTUlBbzZBQUFnQWtFQmFpRUNJQUZCQVdvaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hDaUFBSVFFRFFDQUNJQXBHRFFRZ0N5QUJRUUYwYWlJR0lBTWdBaUFIYW1vdEFPZ0hJZ3c2QUFJZ0JpQUVPZ0FCSUFZZ0REb0FBQ0FHSUFRNkFBTWdBa0VCYWlFQ0lBRkJBbW9oQVF3QUN3QUxRUUFoQWlBRlFRQWdCVUVBU2hzaEJpQUVRUWgwUVlEK0EzRWhCQ0FBSVFFRFFDQUNJQVpHRFFNZ0N5QUJRUUYwYWlBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrTndBQUlBSkJBV29oQWlBQlFRUnFJUUVNQUFzQUMwRUFJUUlnQlVFQUlBVkJBRW9iSVFZZ0JFRUlkRUdBL2dOeElRUWdBQ0VCQTBBZ0FpQUdSZzBDSUFzZ0FVRUJkR29pQ2lBRUlBTWdBaUFIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSWhFM0FBZ2dDaUFSTndBQUlBSkJBV29oQWlBQlFRaHFJUUVNQUFzQUMwRUFJUUVnQlVFQUlBVkJBRW9iSVFvZ0JFRUlkRUdBL2dOeElRd2dBQ0VFQTBBZ0FTQUtSZzBCSUFzZ0JFRUJkR29oRUNBTUlBTWdBU0FIYW1vdEFPZ0hjcTFDZ1lDRWdKQ0F3QUIrSVJGQkFDRUNBMEFnQWlBTlRrVUVRQ0FRSUFKQkFYUnFJZ1lnRVRjQUdDQUdJQkUzQUJBZ0JpQVJOd0FJSUFZZ0VUY0FBQ0FDUVJCcUlRSU1BUXNMSUFGQkFXb2hBU0FFSUExcUlRUU1BQXNBQ3lBSVFRRnFJUWdnQlNBSGFpRUhJQVVnRFd3Z0FHb2hBQXdBQ3dBRklBTWdBa0VDZEdvaUIwRkFheUFCTmdJQUlBSkJBV29oQWlBSEtBSUFJQUZxSVFFTUFRc0FDd0FMSUE4TElBbEJFR29rQUF2eUFnRUdmeU1BUVNCcklnVWtBQ0FFS0FJQUlRWWdCVUVNYWlBQ0lBTVFEU0lEUVloL1RRUkFJQVJCQkdvaEFpQUFJQUZxSWdsQkEyc2hCRUVBSUFaQkVIWnJRUjl4SVFNRFFDQUZRUXhxRUE4Z0FDQUVUM0pGQkVBZ0FpQUZLQUlNSWdZZ0JTZ0NFQ0lIZENBRGRrRUJkR29pQ0MwQUFTRUtJQUFnQ0MwQUFEb0FBQ0FDSUFZZ0J5QUthaUlHZENBRGRrRUJkR29pQnkwQUFDRUlJQVVnQmlBSExRQUJhallDRUNBQUlBZzZBQUVnQUVFQ2FpRUFEQUVMQ3dOQUlBVkJER29RRHlFSElBVW9BZ3doQmlBRktBSVFJUVFnQUNBSlR5QUhja1VFUUNBQ0lBWWdCSFFnQTNaQkFYUnFJZ1l0QUFBaEJ5QUZJQVFnQmkwQUFXbzJBaEFnQUNBSE9nQUFJQUJCQVdvaEFBd0JDd3NEUUNBQUlBbFBSUVJBSUFJZ0JpQUVkQ0FEZGtFQmRHb2lCeTBBQVNFSUlBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0JDQUlhaUVFREFFTEMwRnNRV3dnQVNBRktBSVVJQVVvQWhoSEd5QUVRU0JIR3lFREN5QUZRU0JxSkFBZ0F3dlBGQUVqZnlNQVFkQUFheUlGSkFCQmJDRUpBa0FnQTBFS1NRMEFBa0FnQXlBQ0x3QUVJZ2NnQWk4QUFDSUlJQUl2QUFJaURXcHFRUVpxSWd4SkRRQWdCQzhCQWlFR0lBVkJQR29nQWtFR2FpSUNJQWdRRFNJSlFZaC9TdzBCSUFWQktHb2dBaUFJYWlJQ0lBMFFEU0lKUVloL1N3MEJJQVZCRkdvZ0FpQU5haUlDSUFjUURTSUpRWWgvU3cwQklBVWdBaUFIYWlBRElBeHJFQTBpQ1VHSWYwc05BU0FFUVFScUlRb2dBQ0FCYWlJZlFRTnJJU0JCQUNBR2EwRWZjU0VMSUFVb0FnZ2hFU0FGS0FJY0lSSWdCU2dDTUNFVElBVW9Ba1FoRkNBRktBSUVJUWtnQlNnQ0dDRU5JQVVvQWl3aERDQUZLQUpBSVFZZ0JTZ0NFQ0VoSUFVb0FpUWhJaUFGS0FJNElTTWdCU2dDVENFa0lBVW9BZ0FoRlNBRktBSVVJUllnQlNnQ0tDRVhJQVVvQWp3aEdFRUJJUThnQUNBQlFRTnFRUUoySWdScUlnTWdCR29pQWlBRWFpSVpJUVFnQWlFSUlBTWhCd05BSUE5QkFYRkZJQVFnSUU5eVJRUkFJQUFnQ2lBWUlBWjBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloR2lBT0xRQURJUkFnQnlBS0lCY2dESFFnQzNaQkFuUnFJZzR2QVFBN0FBQWdEaTBBQWlFYklBNHRBQU1oRHlBSUlBb2dGaUFOZENBTGRrRUNkR29pRGk4QkFEc0FBQ0FPTFFBQ0lSd2dEaTBBQXlFZElBUWdDaUFWSUFsMElBdDJRUUowYWlJT0x3RUFPd0FBSUE0dEFBSWhIaUFPTFFBRElRNGdBQ0FRYWlJbElBb2dHQ0FHSUJwcUlnWjBJQXQyUVFKMGFpSVFMd0VBT3dBQUlCQXRBQUlnRUMwQUF5RW1JQWNnRDJvaUp5QUtJQmNnRENBYmFpSWFkQ0FMZGtFQ2RHb2lCeThCQURzQUFDQUhMUUFDSVF3Z0J5MEFBeUVRSUFnZ0hXb2lHeUFLSUJZZ0RTQWNhaUlQZENBTGRrRUNkR29pQ0M4QkFEc0FBQ0FJTFFBQ0lRMGdDQzBBQXlFY0lBUWdEbW9pSFNBS0lCVWdDU0FlYWlJT2RDQUxka0VDZEdvaUNTOEJBRHNBQUNBR2FpRUFRUU1oQndKL0lCUWdKRWtFUUNBQUlRWkJBd3dCQ3lBQVFRZHhJUVlnRkNBQVFRTjJheUlVS0FBQUlSaEJBQXNnQ1MwQUF5RWVJQWt0QUFJaENDQU1JQnBxSVFBZ0V5QWpTUVIvSUFBRklCTWdBRUVEZG1zaUV5Z0FBQ0VYUVFBaEJ5QUFRUWR4Q3lFTUlBMGdEMm9oQUNBSGNpRUpRUU1oRHdKL0lCSWdJa2tFUUNBQUlRMUJBd3dCQ3lBQVFRZHhJUTBnRWlBQVFRTjJheUlTS0FBQUlSWkJBQXNnQ0NBT2FpRUFJQWx5SUJFZ0lVa0VmeUFBQlNBUklBQkJBM1pySWhFb0FBQWhGVUVBSVE4Z0FFRUhjUXNoQ1NBbElDWnFJUUFnRUNBbmFpRUhJQnNnSEdvaENDQWRJQjVxSVFRZ0QzSkZJUThNQVFzTElBVWdERFlDTENBRklBWTJBa0FnQlNBTk5nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUlnQjBrZ0FDQURTM0lOQUVGc0lRa2dDQ0FaU3cwQklBTkJBMnNoQ1FOQUlBVkJQR29RRDBVZ0FDQUpTWEVFUUNBQUlBb2dCU2dDUENJTklBVW9Ba0FpREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnQUNBT0xRQURhaUlHSUFvZ0RTQU1JQTR0QUFKcUlnQjBJQXQyUVFKMGFpSU1Md0VBT3dBQUlBVWdBQ0FNTFFBQ2FqWUNRQ0FHSUF3dEFBTnFJUUFNQVFVZ0EwRUNheUVNQTBBZ0JVRThhaEFQSVFZZ0JTZ0NQQ0VOSUFVb0FrQWhDU0FBSUF4TElBWnlSUVJBSUFBZ0NpQU5JQWwwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQ1NBR0xRQUNhallDUUNBQUlBWXRBQU5xSVFBTUFRc0xBMEFnQUNBTVMwVUVRQ0FBSUFvZ0RTQUpkQ0FMZGtFQ2RHb2lCaThCQURzQUFDQUFJQVl0QUFOcUlRQWdDU0FHTFFBQ2FpRUpEQUVMQ3dKQUlBQWdBMDhOQUNBQUlBb2dEU0FKZENBTGRpSUFRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSklBTXRBQUpxSVFrTUFRc2dDVUVmU3cwQVFTQWdDU0FLSUFCQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFrTElBSkJBMnNoREFOQUlBVkJLR29RRDBVZ0J5QU1TWEVFUUNBSElBb2dCU2dDS0NJR0lBVW9BaXdpQUhRZ0MzWkJBblJxSWcwdkFRQTdBQUFnQnlBTkxRQURhaUlESUFvZ0JpQUFJQTB0QUFKcUlnQjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBQ0FHTFFBQ2FqWUNMQ0FESUFZdEFBTnFJUWNNQVFVZ0FrRUNheUVHQTBBZ0JVRW9haEFQSVFNZ0JTZ0NLQ0VNSUFVb0Fpd2hBQ0FHSUFkSklBTnlSUVJBSUFjZ0NpQU1JQUIwSUF0MlFRSjBhaUlETHdFQU93QUFJQVVnQUNBRExRQUNhallDTENBSElBTXRBQU5xSVFjTUFRc0xBMEFnQmlBSFNVVUVRQ0FISUFvZ0RDQUFkQ0FMZGtFQ2RHb2lBeThCQURzQUFDQUhJQU10QUFOcUlRY2dBQ0FETFFBQ2FpRUFEQUVMQ3dKQUlBSWdCMDBOQUNBSElBb2dEQ0FBZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBQUlBTXRBQUpxSVFBTUFRc2dBRUVmU3cwQVFTQWdBQ0FLSUFKQkFuUnFMUUFDYWlJQUlBQkJJRThiSVFBTElCbEJBMnNoREFOQUlBVkJGR29RRDBVZ0NDQU1TWEVFUUNBSUlBb2dCU2dDRkNJR0lBVW9BaGdpQW5RZ0MzWkJBblJxSWcwdkFRQTdBQUFnQ0NBTkxRQURhaUlESUFvZ0JpQUNJQTB0QUFKcUlnSjBJQXQyUVFKMGFpSUdMd0VBT3dBQUlBVWdBaUFHTFFBQ2FqWUNHQ0FESUFZdEFBTnFJUWdNQVFVZ0dVRUNheUVEQTBBZ0JVRVVhaEFQSVFJZ0JTZ0NGQ0VHSUFVb0FoZ2hCeUFESUFoSklBSnlSUVJBSUFnZ0NpQUdJQWQwSUF0MlFRSjBhaUlDTHdFQU93QUFJQVVnQnlBQ0xRQUNhallDR0NBSUlBSXRBQU5xSVFnTUFRc0xBMEFnQXlBSVNVVUVRQ0FJSUFvZ0JpQUhkQ0FMZGtFQ2RHb2lBaThCQURzQUFDQUlJQUl0QUFOcUlRZ2dCeUFDTFFBQ2FpRUhEQUVMQ3dKQUlBZ2dHVThOQUNBSUlBb2dCaUFIZENBTGRpSUNRUUowYWlJRExRQUFPZ0FBSUFNdEFBTkJBVVlFUUNBSElBTXRBQUpxSVFjTUFRc2dCMEVmU3cwQVFTQWdCeUFLSUFKQkFuUnFMUUFDYWlJQ0lBSkJJRThiSVFjTEEwQWdCUkFQUlNBRUlDQkpjUVJBSUFRZ0NpQUZLQUlBSWdZZ0JTZ0NCQ0lDZENBTGRrRUNkR29pREM4QkFEc0FBQ0FFSUF3dEFBTnFJZ01nQ2lBR0lBSWdEQzBBQW1vaUFuUWdDM1pCQW5ScUlnUXZBUUE3QUFBZ0JTQUNJQVF0QUFKcU5nSUVJQU1nQkMwQUEyb2hCQXdCQlNBZlFRSnJJUU1EUUNBRkVBOGhBaUFGS0FJQUlRWWdCU2dDQkNFSUlBTWdCRWtnQW5KRkJFQWdCQ0FLSUFZZ0NIUWdDM1pCQW5ScUlnSXZBUUE3QUFBZ0JTQUlJQUl0QUFKcU5nSUVJQVFnQWkwQUEyb2hCQXdCQ3dzRFFDQURJQVJKUlFSQUlBUWdDaUFHSUFoMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0FpMEFBMm9oQkNBSUlBSXRBQUpxSVFnTUFRc0xBa0FnQkNBZlR3MEFJQVFnQ2lBR0lBaDBJQXQySWdKQkFuUnFJZ010QUFBNkFBQWdBeTBBQTBFQlJnUkFJQWdnQXkwQUFtb2hDQXdCQ3lBSVFSOUxEUUJCSUNBSUlBb2dBa0VDZEdvdEFBSnFJZ0lnQWtFZ1R4c2hDQXRCYkVGc1FXeEJiRUZzUVd4QmJFRnNJQUVnQ0VFZ1J4c2dCU2dDQ0NBRktBSU1SeHNnQjBFZ1J4c2dCU2dDSENBRktBSWdSeHNnQUVFZ1J4c2dCU2dDTUNBRktBSTBSeHNnQ1VFZ1J4c2dCU2dDUkNBRktBSklSeHNoQ1F3SkN3QUxBQXNBQ3dBTEFBc0FDd0FMQUF0QmJDRUpDeUFGUWRBQWFpUUFJQWtMN0JBQkhuOGpBRUhRQUdzaUJTUUFRV3doQ1FKQUlBTkJDa2tOQUFKQUlBTWdBaThBQkNJR0lBSXZBQUFpQnlBQ0x3QUNJZ2hxYWtFR2FpSU9TUTBBSUFRdkFRSWhEeUFGUVR4cUlBSkJCbW9pQWlBSEVBMGlDVUdJZjBzTkFTQUZRU2hxSUFJZ0Iyb2lBaUFJRUEwaUNVR0lmMHNOQVNBRlFSUnFJQUlnQ0dvaUFpQUdFQTBpQ1VHSWYwc05BU0FGSUFJZ0Jtb2dBeUFPYXhBTklnbEJpSDlMRFFFZ0JFRUVhaUVLSUFBZ0FXb2lIRUVEYXlFZFFRQWdEMnRCSDNFaEN5QUZLQUlJSVJFZ0JTZ0NIQ0VTSUFVb0FqQWhFeUFGS0FKRUlSUWdCU2dDQkNFSklBVW9BaGdoQmlBRktBSXNJUWNnQlNnQ1FDRUlJQVVvQWhBaEhpQUZLQUlrSVI4Z0JTZ0NPQ0VnSUFVb0Frd2hJU0FGS0FJQUlSVWdCU2dDRkNFV0lBVW9BaWdoRnlBRktBSThJUmhCQVNFTklBQWdBVUVEYWtFQ2RpSUNhaUlPSUFKcUlnOGdBbW9pR1NFRUlBOGhBaUFPSVFNRFFDQU5SU0FFSUIxUGNrVUVRQ0FLSUJnZ0NIUWdDM1pCQVhScUlnd3RBQUVoRFNBQUlBd3RBQUE2QUFBZ0NpQVhJQWQwSUF0MlFRRjBhaUlNTFFBQklSQWdBeUFNTFFBQU9nQUFJQW9nRmlBR2RDQUxka0VCZEdvaURDMEFBU0VhSUFJZ0RDMEFBRG9BQUNBS0lCVWdDWFFnQzNaQkFYUnFJZ3d0QUFFaEd5QUVJQXd0QUFBNkFBQWdDaUFZSUFnZ0RXb2lDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBRWdDaUFYSUFjZ0VHb2lCM1FnQzNaQkFYUnFJZ3d0QUFFaEVDQURJQXd0QUFBNkFBRWdDaUFXSUFZZ0dtb2lESFFnQzNaQkFYUnFJZ1l0QUFFaEdpQUNJQVl0QUFBNkFBRWdDaUFWSUFrZ0cyb2lHM1FnQzNaQkFYUnFJZ2t0QUFFaElpQUVJQWt0QUFBNkFBRWdDQ0FOYWlFR1FRTWhDUUovSUJRZ0lVa0VRRUVESVEwZ0Jnd0JDeUFVSUFaQkEzWnJJaFFvQUFBaEdFRUFJUTBnQmtFSGNRc2hDQ0FISUJCcUlRWWdFeUFnU1FSL0lBWUZJQk1nQmtFRGRtc2lFeWdBQUNFWFFRQWhDU0FHUVFkeEN5RUhJQXdnR21vaERDQUpJQTF5SVJCQkF5RU5BbjhnRWlBZlNRUkFJQXdoQmtFRERBRUxJQXhCQjNFaEJpQVNJQXhCQTNackloSW9BQUFoRmtFQUN5QWJJQ0pxSVF3Z0VISWhFQ0FSSUI1SkJIOGdEQVVnRVNBTVFRTjJheUlSS0FBQUlSVkJBQ0VOSUF4QkIzRUxJUWtnQkVFQ2FpRUVJQUpCQW1vaEFpQURRUUpxSVFNZ0FFRUNhaUVBSUEwZ0VISkZJUTBNQVFzTElBVWdCellDTENBRklBZzJBa0FnQlNBR05nSVlJQVVnQ1RZQ0JDQUZJQlEyQWtRZ0JTQVROZ0l3SUFVZ0VqWUNIQ0FGSUJFMkFnZ2dCU0FZTmdJOElBVWdGellDS0NBRklCWTJBaFFnQlNBVk5nSUFJQUFnRGtzZ0F5QVBTM0lOQUVGc0lRa2dBaUFaU3cwQklBNUJBMnNoQ1FOQUlBVkJQR29RRHlBQUlBbFBja1VFUUNBS0lBVW9BandpQmlBRktBSkFJZ2QwSUF0MlFRRjBhaUlJTFFBQklRd2dBQ0FJTFFBQU9nQUFJQW9nQmlBSElBeHFJZ1owSUF0MlFRRjBhaUlITFFBQUlRZ2dCU0FHSUFjdEFBRnFOZ0pBSUFBZ0NEb0FBU0FBUVFKcUlRQU1BUXNMQTBBZ0JVRThhaEFQSVFjZ0JTZ0NQQ0VHSUFVb0FrQWhDU0FBSUE1UElBZHlSUVJBSUFvZ0JpQUpkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdDU0FHTFFBQmFqWUNRQ0FBSUFjNkFBQWdBRUVCYWlFQURBRUxDd05BSUFBZ0RrOUZCRUFnQ2lBR0lBbDBJQXQyUVFGMGFpSUhMUUFCSUFBZ0J5MEFBRG9BQUNBQVFRRnFJUUFnQ1dvaENRd0JDd3NnRDBFRGF5RUFBMEFnQlVFb2FoQVBJQUFnQTAxeVJRUkFJQW9nQlNnQ0tDSUdJQVVvQWl3aUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBRElBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFpd2dBeUFJT2dBQklBTkJBbW9oQXd3QkN3c0RRQ0FGUVNocUVBOGhCeUFGS0FJb0lRWWdCU2dDTENFQUlBTWdEMDhnQjNKRkJFQWdDaUFHSUFCMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBQUlBWXRBQUZxTmdJc0lBTWdCem9BQUNBRFFRRnFJUU1NQVFzTEEwQWdBeUFQVDBVRVFDQUtJQVlnQUhRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FESUFjdEFBQTZBQUFnQTBFQmFpRURJQUFnQ0dvaEFBd0JDd3NnR1VFRGF5RURBMEFnQlVFVWFoQVBJQUlnQTA5eVJRUkFJQW9nQlNnQ0ZDSUdJQVVvQWhnaUIzUWdDM1pCQVhScUlnZ3RBQUVoRGlBQ0lBZ3RBQUE2QUFBZ0NpQUdJQWNnRG1vaUJuUWdDM1pCQVhScUlnY3RBQUFoQ0NBRklBWWdCeTBBQVdvMkFoZ2dBaUFJT2dBQklBSkJBbW9oQWd3QkN3c0RRQ0FGUVJScUVBOGhCeUFGS0FJVUlRWWdCU2dDR0NFRElBSWdHVThnQjNKRkJFQWdDaUFHSUFOMElBdDJRUUYwYWlJR0xRQUFJUWNnQlNBRElBWXRBQUZxTmdJWUlBSWdCem9BQUNBQ1FRRnFJUUlNQVFzTEEwQWdBaUFaVDBVRVFDQUtJQVlnQTNRZ0MzWkJBWFJxSWdjdEFBRWhDQ0FDSUFjdEFBQTZBQUFnQWtFQmFpRUNJQU1nQ0dvaEF3d0JDd3NEUUNBRkVBOGdCQ0FkVDNKRkJFQWdDaUFGS0FJQUlnSWdCU2dDQkNJR2RDQUxka0VCZEdvaUJ5MEFBU0VJSUFRZ0J5MEFBRG9BQUNBS0lBSWdCaUFJYWlJQ2RDQUxka0VCZEdvaUJpMEFBQ0VISUFVZ0FpQUdMUUFCYWpZQ0JDQUVJQWM2QUFFZ0JFRUNhaUVFREFFTEN3TkFJQVVRRHlFSElBVW9BZ0FoQmlBRktBSUVJUUlnQkNBY1R5QUhja1VFUUNBS0lBWWdBblFnQzNaQkFYUnFJZ1l0QUFBaEJ5QUZJQUlnQmkwQUFXbzJBZ1FnQkNBSE9nQUFJQVJCQVdvaEJBd0JDd3NEUUNBRUlCeFBSUVJBSUFvZ0JpQUNkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUVRUUZxSVFRZ0FpQUlhaUVDREFFTEMwRnNRV3hCYkVGc1FXeEJiRUZzUVd3Z0FTQUNRU0JIR3lBRktBSUlJQVVvQWd4SEd5QURRU0JIR3lBRktBSWNJQVVvQWlCSEd5QUFRU0JIR3lBRktBSXdJQVVvQWpSSEd5QUpRU0JIR3lBRktBSkVJQVVvQWtoSEd5RUpEQUVMUVd3aENRc2dCVUhRQUdva0FDQUpDMWdCQTM4Q1FDQUFLQUtRNndFaUFVVU5BQ0FCS0FJQUlBRkJ0TlVCYWlnQ0FDSUNJQUZCdU5VQmFpZ0NBQ0lERUJNZ0FnUkFJQU1nQVNBQ0VRSUFEQUVMSUFFUUJnc2dBRUVBTmdLZzZ3RWdBRUlBTndPUTZ3RUw2UU1DQkg4Q2ZpQUFRUUJCS0JBRElRUWdBa0VCUVFVZ0F4c2lBRWtFUUNBQUR3c2dBVVVFUUVGL0R3dEJBU0VHQWtBQ1FDQURRUUZHRFFBZ0F5RUdJQUVvQUFBaUJVR282cjVwUmcwQVFYWWhBeUFGUVhCeFFkRFV0TUlCUncwQlFRZ2hBeUFDUVFoSkRRRWdBVFVBQkNFSUlBUkJBVFlDRkNBRUlBZzNBd0JCQUE4TElBRWdBaUFHRUJvaUF5QUNTdzBBSUFRZ0F6WUNHRUZ5SVFNZ0FDQUJhaUlGUVFGckxRQUFJZ0pCQ0hFTkFDQUNRU0J4SWdaRkJFQkJjQ0VESUFVdEFBQWlCVUduQVVzTkFTQUZRUWR4clVJQklBVkJBM1pCQ21xdGhpSUlRZ09JZmlBSWZDRUpJQUJCQVdvaEFBc2dBa0VHZGlFRklBSkJBblpCQUNFREFrQUNRQUpBQWtBZ0FrRURjVUVCYXc0REFBRUNBd3NnQUNBQmFpMEFBQ0VESUFCQkFXb2hBQXdDQ3lBQUlBRnFMd0FBSVFNZ0FFRUNhaUVBREFFTElBQWdBV29vQUFBaEF5QUFRUVJxSVFBTFFRRnhJUUlDZmdKQUFrQUNRQUpBSUFWQkFXc09Bd0VDQXdBTFFuOGdCa1VOQXhvZ0FDQUJhakVBQUF3REN5QUFJQUZxTXdBQVFvQUNmQXdDQ3lBQUlBRnFOUUFBREFFTElBQWdBV29wQUFBTElRZ2dCQ0FDTmdJZ0lBUWdBellDSENBRUlBZzNBd0JCQUNFRElBUkJBRFlDRkNBRUlBZ2dDU0FHR3lJSU53TUlJQVJDZ0lBSUlBZ2dDRUtBZ0FoYUd6NENFQXNnQXd0ZkFRRi9RYmgvSVFNZ0FVRUJRUVVnQWhzaUFrOEVmeUFBSUFKcVFRRnJMUUFBSWdCQkEzRkJBblJCb0I1cUtBSUFJQUpxSUFCQkJIWkJESEZCc0I1cUtBSUFhaUFBUVNCeElnRkZhaUFCUVFWMklBQkJ3QUJKY1dvRlFiaC9Dd3NNQUNBQUlBRWdBa0VBRUJrTGx3TUNCWDhDZmlNQVFVQnFJZ1FrQUFKQUEwQWdBVUVGVHdSQUFrQWdBQ2dBQUVGd2NVSFExTFRDQVVZRVFFSitJUWNnQVVFSVNRMEVJQUFvQUFRaUFrRjNTdzBFSUFKQkNHb2lBeUFCU3cwRUlBSkJnWDlKRFFFTUJBc2dCRUVZYWlBQUlBRVFHeUVDUW40Z0JDa0RHRUlBSUFRb0FpeEJBVWNiSUFJYklnZENmVllOQXlBSElBaDhJZ2dnQjFSQ2ZpRUhEUU1DUUFKQUlBRkJDRWtOQUNBQUtBQUFRWEJ4UWREVXRNSUJSdzBBSUFBb0FBUWlBa0YzU3cwRlFiaC9JQUpCQ0dvaUFpQUJJQUpKR3lFRERBRUxJQVJCR0dvZ0FDQUJFQnNpQWtHSWYwc0VRQ0FDSVFNTUFRdEJ1SDhoQXlBQ0RRQWdBU0FFS0FJd0lnSnJJUVVnQUNBQ2FpRUdBMEFnQmlBRklBUkJER29RSFNJRFFZaC9TdzBCSUFOQkEyb2lBaUFGU3dSQVFiaC9JUU1NQWdzZ0JTQUNheUVGSUFJZ0Jtb2hCaUFFS0FJUVJRMEFDeUFFS0FJNEJIOUJ1SDhoQXlBRlFRUkpEUUVnQmtFRWFnVWdCZ3NnQUdzaEF3c2dBMEdJZjBzTkF3c2dBU0FEYXlFQklBQWdBMm9oQUF3QkN3dENmaUFJSUFFYklRY0xJQVJCUUdza0FDQUhDMlFCQVg5QnVIOGhBd0pBSUFGQkEwa05BQ0FBTFFBQ0lRRWdBaUFBTHdBQUlnQkJBWEUyQWdRZ0FpQUFRUUYyUVFOeElnTTJBZ0FnQWlBQUlBRkJFSFJ5UVFOMklnQTJBZ2dDUUFKQUlBTkJBV3NPQXdJQkFBRUxRV3dQQ3lBQUlRTUxJQU1MUkFFQ2Z5QUJJQUlvQWdRaUF5QUJLQUlFYWlJRU5nSUVJQUFnQTBFQ2RFR2dIV29vQWdBZ0FTZ0NBRUVBSUFScmRuRTJBZ0FnQVJBUEdpQUFJQUpCQ0dvMkFnUUx6Z0VCQm45QnVuOGhDZ0pBSUFJb0FnUWlDQ0FDS0FJQUlnbHFJZzBnQVNBQWEwc05BRUZzSVFvZ0NTQUVJQU1vQWdBaUMydExEUUFnQUNBSmFpSUVJQUlvQWdnaURHc2hBaUFBSUFGQklHc2lBQ0FMSUFsQkFCQWdJQU1nQ1NBTGFqWUNBQUpBQWtBZ0JDQUZheUFNVHdSQUlBSWhCUXdCQ3lBTUlBUWdCbXRMRFFJZ0J5QUhJQUlnQldzaUFtb2lBU0FJYWs4RVFDQUVJQUVnQ0JBS0dnd0NDeUFDSUFocUlRZ2dCQ0FCUVFBZ0Ftc1FDaUFDYXlFRUN5QUVJQUFnQlNBSVFRRVFJQXNnRFNFS0N5QUtDOGNFQVFKL0lBQWdBMm9oQmdKQUlBTkJCMHdFUUFOQUlBQWdCazhOQWlBQUlBSXRBQUE2QUFBZ0FFRUJhaUVBSUFKQkFXb2hBZ3dBQ3dBTElBUkJBVVlFUUFKQUlBQWdBbXNpQlVFSFRRUkFJQUFnQWkwQUFEb0FBQ0FBSUFJdEFBRTZBQUVnQUNBQ0xRQUNPZ0FDSUFBZ0FpMEFBem9BQXlBQUlBSWdCVUVDZENJRlFjQWVhaWdDQUdvaUFpZ0FBRFlBQkNBQ0lBVkI0QjVxS0FJQWF5RUNEQUVMSUFBZ0Fpa0FBRGNBQUFzZ0FrRUlhaUVDSUFCQkNHb2hBQXNnQVNBR1R3UkFJQUFnQTJvaEFTQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUEwQWdBQ0FDS1FBQU53QUFJQUpCQ0dvaEFpQUFRUWhxSWdBZ0FVa05BQXdEQ3dBTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dBMEVSU1EwQklBQkJFR29oQUFOQUlBQWdBaWtBRURjQUFDQUFJQUlwQUJnM0FBZ2dBQ0FDS1FBZ053QVFJQUFnQWlrQUtEY0FHQ0FDUVNCcUlRSWdBRUVnYWlJQUlBRkpEUUFMREFFTEFrQWdBQ0FCU3dSQUlBQWhBUXdCQ3lBQklBQnJJUVVDUUNBRVFRRkhJQUFnQW10QkQwcHlSUVJBSUFJaEF3TkFJQUFnQXlrQUFEY0FBQ0FEUVFocUlRTWdBRUVJYWlJQUlBRkpEUUFMREFFTElBQWdBaWtBQURjQUFDQUFJQUlwQUFnM0FBZ2dCVUVSU0EwQUlBQkJFR29oQUNBQ0lRTURRQ0FBSUFNcEFCQTNBQUFnQUNBREtRQVlOd0FJSUFBZ0F5a0FJRGNBRUNBQUlBTXBBQ2czQUJnZ0EwRWdhaUVESUFCQklHb2lBQ0FCU1EwQUN3c2dBaUFGYWlFQ0N3TkFJQUVnQms4TkFTQUJJQUl0QUFBNkFBQWdBVUVCYWlFQklBSkJBV29oQWd3QUN3QUxDNjRIQWdWL0FYNGpBRUdBQVdzaUVTUUFJQkVnQXpZQ2ZFRi9JUThDUUFKQUFrQUNRQUpBSUFJT0JBRUFBd0lFQ3lBR1JRUkFRYmgvSVE4TUJBdEJiQ0VQSUFVdEFBQWlBaUFEU3cwRElBZ2dBa0VDZENJQ2FpZ0NBQ0VESUFJZ0Iyb29BZ0FoQWlBQVFRQTZBQXNnQUVJQU53SUFJQUFnQWpZQ0RDQUFJQU02QUFvZ0FFRUFPd0VJSUFFZ0FEWUNBRUVCSVE4TUF3c2dBU0FKTmdJQVFRQWhEd3dDQ3lBS1JRUkFRV3doRHd3Q0MwRUFJUThnQzBVZ0RFRVpTSElOQVVFSUlBUjBRUWhxSVFCQkFDRURBMEFnQUNBRFRRMENJQU5CUUdzaEF3d0FDd0FMUVd3aER5QVJJQkZCL0FCcUlCRkIrQUJxSUFVZ0JoQU1JZ05CaUg5TERRQWdFU2dDZUNJQ0lBUkxEUUFnRVNnQ2ZFRUJhaUVKSUFCQkNHb2hDMEdBZ0FJZ0FuUkJFSFVoQlVFQklSQkJBU0FDZENJUFFRRnJJZ29oRWdOQUlBa2dEa2NFUUFKQUlCRWdEa0VCZENJRWFpOEJBQ0lNUWYvL0EwWUVRQ0FMSUJKQkEzUnFJQTQyQWdRZ0VrRUJheUVTUVFFaERBd0JDeUFRUVFBZ0JTQU13VW9iSVJBTElBUWdEV29nRERzQkFDQU9RUUZxSVE0TUFRc0xJQUFnQWpZQ0JDQUFJQkEyQWdBQ1FDQUtJQkpHQkVBZ0RVSHFBR29oQmtFQUlSQkJBQ0VNQTBBZ0NTQVFSZ1JBSUE5QkEzWWdEMEVCZG1wQkEyb2lCVUVCZENFRVFRQWhERUVBSVJJRFFFRUFJUTRnRHlBU1RRMEVBMEFnRGtFQ1J3UkFJQXNnQlNBT2JDQU1haUFLY1VFRGRHb2dCaUFPSUJKcWFpMEFBRFlDQkNBT1FRRnFJUTRNQVFzTElCSkJBbW9oRWlBRUlBeHFJQXB4SVF3TUFBc0FCU0FSSUJCQkFYUnFMZ0VBSVFVZ0JpQU1haUlFSUJNM0FBQkJDQ0VPQTBBZ0JTQU9TZ1JBSUFRZ0Rtb2dFemNBQUNBT1FRaHFJUTRNQVFzTElCTkNnWUtFaUpDZ3dJQUJmQ0VUSUJCQkFXb2hFQ0FGSUF4cUlRd01BUXNBQ3dBTElBOUJBM1lnRDBFQmRtcEJBMm9oQlVFQUlSQkJBQ0VPQTBBZ0NTQVFSZzBCUVFBaERDQVJJQkJCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQU1Sd1JBSUFzZ0RrRURkR29nRURZQ0JBTkFJQVVnRG1vZ0NuRWlEaUFTU3cwQUN5QU1RUUZxSVF3TUFRc0xJQkJCQVdvaEVBd0FDd0FMSUFKQkFXb2hCVUVBSVF3RFFDQU1JQTlIQkVBZ0RTQUxJQXhCQTNScUlna29BZ1FpQkVFQmRHb2lBaUFDTHdFQUlnWkJBV283QVFBZ0NTQUZJQVpuUVdCemFpSUNPZ0FESUFrZ0JpQUNkQ0FQYXpzQkFDQUpJQWdnQkVFQ2RDSUNhaWdDQURvQUFpQUpJQUlnQjJvb0FnQTJBZ1FnREVFQmFpRU1EQUVMQ3lBQklBQTJBZ0FnQXlFUEN5QVJRWUFCYWlRQUlBOEw3Vm9DTzM4R2ZpTUFRZUFCYXlJRUpBQUNRRUd3N0FrUUJTSUZSUVJBUVVBaEJ3d0JDeUFGUWdBM0F2VHFBU0FGUVFBMkFzVHJBU0FGUVFBMkFyVHJBU0FGUWdBM0FwenJBU0FGUVFBMkFyanBBU0FGUVFBMkFxenNDU0FGUWdBM0F0VHJBU0FGUWdBM0FxenJBU0FGUWdBM0E0anJBU0FGUWdBM0F1VHFBU0FGUWdBM0F1VHJBU0FGUVlHQWdNQUFOZ0s4NndFZ0JVSUFOd0trNndFZ0JVSDg2Z0ZxUVFBMkFnQWdCVUdRNndGcVFnQTNBd0FnQlJBWUlBVkJyTlVCYWlFVUlBVkIrT3NCYWlFY0lBVkJzT29CYWlFaUlBVkJvREJxSVNvZ0JVR1lJR29oS3lBRlFhalFBR29oSGlBRlFSQnFJU3dnQlVFSWFpRW9JQVZCQkdvaExTQUZRY0RwQVdvaEtTQUZRWWpyQVdvZ0JFR1VBV29oTHlBRVFZd0JhaUV3SUFSQmhBRnFJVEVnQkVIY0FHb2hNaUFFUWRRQWFpRXpJQVJCekFCcUlUUWdBQ0VkQWtBQ1FBSkFBa0FDUUFOQVFRRkJCU0FGS0FMazZnRWJJUVlDUUFOQUlBTWdCa2tOQVNBQ0tBQUFRWEJ4UWREVXRNSUJSZ1JBUWJoL0lRY2dBMEVJU1EwSUlBSW9BQVFpRGtGM1N3UkFRWEloQnd3SkN5QURJQTVCQ0dvaUNVa05DQ0FPUVlCL1N3UkFJQWtoQnd3SkN5QURJQWxySVFNZ0FpQUphaUVDREFFTEN5QUZRZ0EzQXF6cEFTQUZRZ0EzQStqcEFTQUZRUUEyQXBqckFTQUZRZ0EzQTREcUFTQUZRZ00zQS9qcEFTQUZRYlRwQVdwQ0FEY0NBQ0FGUWZEcEFXcENBRGNEQUNBRlFhalFBR29pQ1VHTWdJRGdBRFlDQUNBRlFhelFBV3BCNEJJcEFnQTNBZ0FnQlVHMDBBRnFRZWdTS0FJQU5nSUFJQVVnQlVFUWFqWUNBQ0FGSUFWQm9EQnFOZ0lFSUFVZ0JVR1lJR28yQWdnZ0JTQUpOZ0lNSUFWQkFVRUZJQVVvQXVUcUFSczJBcnpwQVFKQUlBRkZEUUFnQlNnQ3JPa0JJZ2tnSFVZTkFDQUZJQWsyQXJqcEFTQUZJQjAyQXF6cEFTQUZLQUt3NlFFaERpQUZJQjAyQXJEcEFTQUZJQjBnRGlBSmEybzJBclRwQVF0QnVIOGhDU0FEUVFWQkNTQUZLQUxrNmdFaUJodEpEUVVnQWtFQlFRVWdCaHNnQmhBYUlnNUJpSDlMQkVBZ0RpRUpEQVVMSUFNZ0RrRURha2tOQlNBcElBSWdEaUFHRUJraUJrR0lmMHNFUUNBR0lRa01CUXNnQmcwRkFrQUNRQ0FGS0FLbzZ3RkJBVWNOQUNBRktBS2s2d0VpQ1VVTkFDQUZLQUtVNndGRkRRQWdDU2dDQkVFQmF5SUhJQVVvQXR6cEFTSUtyVUtIbGErdm1MYmVtNTUvZmtMSno5bXk4ZVc2NmllRlFoZUpRcy9XMDc3U3g2dlpRbjVDK2ZQZDhabjJtYXNXZkNJL1FpR0lJRCtGUXMvVzA3N1N4NnZaUW40aVAwSWRpQ0EvaFVMNTg5M3htZmFacXhaK0lqOUNJSWdnUDRXbmNTRUdJQWtvQWdBaEZRTkFRUUFoQ0FKQUlCVWdCa0VDZEdvb0FnQWlDVVVOQUNBSktBSUlRUWhKRFFBZ0NTZ0NCQ0lTS0FBQVFiZkl3dUYrUncwQUlCSW9BQVFoQ0FzZ0NDQUtSd1JBSUFZZ0IzRkJBV29oQmlBSURRRUxDeUFKUlEwQUlBVVFHQ0FGUVg4MkFxRHJBU0FGSUFrMkFwVHJBU0FGSUFVb0F0enBBU0lJTmdLWTZ3RU1BUXNnQlNnQzNPa0JJUWdMQWtBZ0NFVU5BQ0FGS0FLWTZ3RWdDRVlOQUVGZ0lRa01CZ3NDUUNBRktBTGc2UUVFUUNBRklBVW9BdWpxQVNJSlJUWUM3T29CSUFrTkFTQUZRdm5xME5EbnlhSGs0UUEzQTZqcUFTQUZRZ0EzQTZEcUFTQUZRcy9XMDc3U3g2dlpRamNEbU9vQklBVkMxdXVDN3VyOWlmWGdBRGNEa09vQklBVkNBRGNEaU9vQklDSkJBRUVvRUFNYURBRUxJQVZCQURZQzdPb0JDeUFCSUIxcUlTVWdCU0FGS1FQbzZRRWdEcTE4TndQbzZRRWdBeUFPYXlFRElBSWdEbW9oQWlBZElRNERRQ0FDSUFNZ0JFRXNhaEFkSWhWQmlIOUxCRUFnRlNFSkRBWUxJQU5CQTJzaU5TQVZTUTBFSUFKQkEyb2hHMEZzSVFrQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FFS0FJc0RnTUNBUUFWQ3lBVlFmLy9CMHNORXlBVlFRTkpEUklnQlNrRHlPa0JJVDhDUUFKQUlCc3RBQUFpQ1VFRGNTSWFRUUZyRGdNR0FRQUhDeUFGS0FLQTZnRU5BRUZpSVFrTUZRc2dGVUVGU1EwU0lCc29BQUFoQXdKL0FrQUNRQUpBSUFsQkFuWkJBM0VpQ1VFQ2F3NENBUUlBQ3lBSlFRQkhJUWNnQTBFRWRrSC9CM0VoQzBFRElRWWdBMEVPZGtIL0IzRU1BZ3RCQkNFR0lBTkJCSFpCLy84QWNTRUxRUUVoQnlBRFFSSjJEQUVMSUFOQkJIWkIvLzhQY1NJTFFZQ0FDRXNORTBFQklRZEJCU0VHSUFJdEFBZEJDblFnQTBFV2RuSUxJZ2dnQm1vaUNTQVZTdzBTQWtBZ0MwR0JCa2tOQUNBRktBS2M2d0ZGRFFCQkFDRURBMEFnQTBHRGdBRkxEUUVnQTBGQWF5RUREQUFMQUFzZ0JpQWJhaUVQSUJwQkEwY05CaUFGS0FJTUlnSXRBQUZCQ0hRaEF5QUhEUWNnQTBVTkNDQUVRZkFBYWlBUElBZ1FEU0lEUVloL1N3MEpJQUpCQkdvaEJpQUxJQnhxSWhKQkEyc2hDa0VBSUFJdkFRSnJRUjl4SVFjZ0hDRURBMEFnQkVId0FHb1FEMFVnQXlBS1NYRUVRQ0FESUFZZ0JDZ0NjQ0lJSUFRb0FuUWlEM1FnQjNaQkFuUnFJZ0l2QVFBN0FBQWdBeUFDTFFBRGFpSURJQVlnQ0NBUElBSXRBQUpxSWdoMElBZDJRUUowYWlJQ0x3RUFPd0FBSUFRZ0NDQUNMUUFDYWpZQ2RDQURJQUl0QUFOcUlRTU1BUVVnRWtFQ2F5RUlBMEFnQkVId0FHb1FEeUVQSUFRb0FuQWhDaUFFS0FKMElRSWdBeUFJU3lBUGNrVUVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lDaThCQURzQUFDQUVJQUlnQ2kwQUFtbzJBblFnQXlBS0xRQURhaUVEREFFTEN3TkFJQU1nQ0UwRVFDQURJQVlnQ2lBQ2RDQUhka0VDZEdvaUR5OEJBRHNBQUNBRElBOHRBQU5xSVFNZ0FpQVBMUUFDYWlFQ0RBRUxDd0pBSUFNZ0VrOE5BQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lBeTBBQURvQUFDQURMUUFEUVFGR0JFQWdBaUFETFFBQ2FpRUNEQUVMSUFKQkgwc05BRUVnSUFJZ0F5MEFBbW9pQWlBQ1FTQlBHeUVDQzBGc1FXd2dDeUFFS0FKNElBUW9BbnhIR3lBQ1FTQkhHeUVEREFzTEFBc0FDeUFFS0FJMElnSWdKU0FPYTBzTkNpQU9SUVJBUVFBaENTQUNEUUlNRGdzZ0RpQWJMUUFBSUFJUUF4b2dBaUVKREF3TElCVWdKU0FPYTBzTkNTQU9EUUZCQUNFSklCVkZEUXdMUWJaL0lRa01FUXNnRGlBYklCVVFBaG9nRlNFSkRBb0xJQndnR3dKL0FrQUNRQUpBSUFsQkFuWkJBM0ZCQVdzT0F3RUFBZ0FMSUFsQkEzWWhBMEVCREFJTElCc3ZBQUJCQkhZaEEwRUNEQUVMSUJWQkJFa05EaUFDTHdBRElBSXRBQVZCRUhSeUlnSkJqNENBQVVzTkRpQUNRUVIySVFOQkF3c2lBbW90QUFBZ0EwRWdhaEFESVFrZ0JTQUROZ0tBNndFZ0JTQUpOZ0x3NmdFZ0FrRUJhaUVKREFVTElCVUNmd0pBQWtBQ1FDQUpRUUoyUVFOeFFRRnJEZ01CQUFJQUN5QUpRUU4ySVFOQkFRd0NDeUFiTHdBQVFRUjJJUU5CQWd3QkN5QUNMd0FESUFJdEFBVkJFSFJ5UVFSMklRTkJBd3NpQWlBRGFpSUpRU0JxU1FSQUlBa2dGVXNORFNBY0lBSWdHMm9nQXhBQ0lRSWdCU0FETmdLQTZ3RWdCU0FDTmdMdzZnRWdBaUFEYWlJQ1FnQTNBQmdnQWtJQU53QVFJQUpDQURjQUNDQUNRZ0EzQUFBTUJRc2dCU0FETmdLQTZ3RWdCU0FDSUJ0cU5nTHc2Z0VNQkFzZ0IwVUVRQ0FlSUE4Z0NDQVVFQlFpQWtHSWYwc2dBaUFJVDNJTkRDQWNJQXNnQWlBUGFpQUlJQUpySUI0UUZTRUREQU1MSUF0RklBaEZjZzBMSUF0QkNIWWlBeUFJSUF0SkJIOGdDRUVFZENBTGJnVkJEd3RCR0d3aUFrR01DR29vQWdCc0lBSkJpQWhxS0FJQWFpSUdRUU4ySUFacUlBSkJnQWhxS0FJQUlBSkJoQWhxS0FJQUlBTnNha2tFUUNNQVFSQnJJaEFrQUNBZUtBSUFJUU1nRkVId0JHcEJBRUhzQUJBRElRWkJWQ0VDQWtBZ0EwSC9BWEVpREVFTVN3MEFBa0FnRkVIY0NXb2dCaUFRUVFocUlCQkJER29nRHlBSUlCUkIzQXRxSWhjUUN5SVNRWWgvU3cwQUlCQW9BZ3dpQmlBTVN3MEJJQlJCcUFWcUlRMGdGRUdrQldvaE5pQWVRUVJxSVJFZ0EwR0FnSUI0Y1NFM0lBWkJBV29pRXlFQ0lBWWhBd05BSUFJaUIwRUJheUVDSUFNaUNrRUJheUVESUJRZ0NrRUNkR29vQXZBRVJRMEFDMEVCSUFjZ0IwRUJUUnNoRmtFQUlRZEJBU0VDQTBBZ0FpQVdSd1JBSUJRZ0FrRUNkQ0lEYWlnQzhBUWhHQ0FESUExcUlBYzJBZ0FnQWtFQmFpRUNJQWNnR0dvaEJ3d0JDd3NnRFNBSE5nSUFRUUFoQWlBUUtBSUlJUU1EUUNBQ0lBTkhCRUFnRFNBQ0lCUnFRZHdKYWkwQUFDSVlRUUowYWlJWklCa29BZ0FpR1VFQmFqWUNBQ0FVSUJsQkFYUnFJaGtnR0RvQTNRVWdHU0FDT2dEY0JTQUNRUUZxSVFJTUFRc0xRUUFoQXlBTlFRQTJBZ0FnRENBR1FYOXphaUVHUVFFaEFnTkFJQUlnRmtjRVFDQVVJQUpCQW5ScUlnMGdBellDQUNBTktBTHdCQ0FDSUFacWRDQURhaUVESUFKQkFXb2hBZ3dCQ3dzZ0RDQVRJQXBySWdaclFRRnFJUW9nQmlFREEwQWdBeUFLU1FSQUlCUWdBMEUwYkdvaERVRUJJUUlEUUNBQ0lCWkhCRUFnRFNBQ1FRSjBJaGhxSUJRZ0dHb29BZ0FnQTNZMkFnQWdBa0VCYWlFQ0RBRUxDeUFEUVFGcUlRTU1BUXNMSUJjZ0ZFRTBFQUloT0NBVVFaQU1haUU1SUJNZ0RHc2hPaUFVUWR3RmFpRVhRUUFoQ2dOQUFrQUNRQ0FISUFwSEJFQkJBU0FNSUJNZ0Z5QUtRUUYwYWlJQ0xRQUJJZzFySWdOckloaDBJUmtnQWkwQUFDRVdJRGdnRFVFQ2RHb2lIeWdDQUNFQ0lBWWdHRTBFUUNBMlFRRWdBeUE2YWlJTklBMUJBVXdiSWlCQkFuUWlKR29vQWdBaERTQTVJQlFnQTBFMGJHcEJOQkFDSVNFZ0RVRUJkQ0VtSUJFZ0FrRUNkR29oSXlBZ1FRRk5EUUlnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFZ0lDRWdKR29vQWdBaEpFRUFJUUlEUUNBQ0lDUkdEUU1nSXlBQ1FRSjBhaUFnTmdFQUlBSkJBV29oQWd3QUN3QUxJQUlnQWlBWmFpSU5JQUlnRFVzYklRMGdBMEVRZEVHQWdQd0hjU0FXY2tHQWdJQUljaUVEQTBBZ0FpQU5SZzBESUJFZ0FrRUNkR29nQXpZQkFDQUNRUUZxSVFJTUFBc0FDeUFlSUF4QkVIUWdOM0lnREhKQmdBSnlOZ0lBREFNTElBY2dEV3NoSkNBWElDWnFJU1pCQUNFTkEwQWdEU0FrUmcwQlFRRWdHQ0FUSUNZZ0RVRUJkR29pSnkwQUFTSUNheUk3YTNRaVBDQWhJQUpCQW5ScUlpQW9BZ0FpQW1vaFBTQURJRHRxUVJCMFFZQ0EvQWR4SUNjdEFBQkJDSFJ5SUJaeVFZQ0FnQkJ5SVNjRFFDQWpJQUpCQW5ScUlDYzJBUUFnQWtFQmFpSUNJRDFKRFFBTElDQWdJQ2dDQUNBOGFqWUNBQ0FOUVFGcUlRME1BQXNBQ3lBZklCOG9BZ0FnR1dvMkFnQWdDa0VCYWlFS0RBQUxBQXNnRWlFQ0N5QVFRUkJxSkFBZ0FrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGaUVEREFNTElCNGdEeUFJSUJRUUZDSUNRWWgvU3lBQ0lBaFBjZzBMSUJ3Z0N5QUNJQTlxSUFnZ0Ftc2dIaEFYSVFNTUFnc2dBd1JBSUJ3Z0N5QVBJQWdnQWhBV0lRTU1BZ3NnSENBTElBOGdDQ0FDRUJjaEF3d0JDeUFjSUFzZ0R5QUlJQUlRRlNFREN5QURRWWgvU3cwSUlBVWdDellDZ09zQklBVWdIRFlDOE9vQklBVkJBVFlDZ09vQklCcEJBa1lFUUNBRklCNDJBZ3dMSUFzZ0hHb2lBa0lBTndBQUlBSkNBRGNBR0NBQ1FnQTNBQkFnQWtJQU53QUlJQWxCaUg5TERRb0xJQWtnRlVZTkNDQVZJQWxySVFZZ0JTZ0NuT3NCSVFvQ1FDQUpJQnRxSWdNdEFBQWlEMFVFUUVFQklRSkJBQ0VQUWJoL0lRa2dCa0VCUmcwQkRBc0xBbjhnQTBFQmFpQVB3Q0lDUVFCT0RRQWFJQUpCZjBZRVFDQUdRUU5JRFFzZ0F5OEFBVUdBL2dGcUlROGdBMEVEYWd3QkN5QUdRUUpJRFFvZ0F5MEFBU0FQUVFoMGNrR0FnQUpySVE4Z0EwRUNhZ3NoRWtHNGZ5RUpJQkpCQVdvaUFpQVZJQnRxSWdkTERRb2dMQ0FGSUJJdEFBQWlFa0VHZGtFalFRa2dBaUFISUFKclFjQVFRZEFSUWZBU0lBVW9Bb1RxQVNBS0lBOGdGQkFoSWdsQmlIOUxEUWdnS3lBb0lCSkJCSFpCQTNGQkgwRUlJQUlnQ1dvaUFpQUhJQUpyUVlBTFFZQU1RWUFYSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUNFR0lmMHNOQ0VGc0lRa2dLaUF0SUJKQkFuWkJBM0ZCTkVFSklBSWdDR29pQWlBSElBSnJRWUFOUWVBT1FaQVpJQVVvQW9UcUFTQUZLQUtjNndFZ0R5QVVFQ0VpQjBHSWYwc05DaUFDSUFkcUlBTnJJZ0loQ1NBQ1FZaC9TdzBLQ3lBT0lBOUJBRXh5RFFFTFFicC9JUWtNQ0FzZ0pTQU9heUVKSUFZZ0Ftc2hCaUFDSUFOcUlRY0NRQUpBQWtBZ0NrVUVRQ0FQUVFsSUlBVXBBOGpwQVVLQmdJQUlWSElOQWlBb0tBSUFJZ0pCQ0dvaEVpQUNLQUlFSVFwQkFDRURRUUFoQWdOQUlBTWdDblpGQkVBZ0FpQVNJQU5CQTNScUxRQUNRUlpMYWlFQ0lBTkJBV29oQXd3QkN3c2dCVUVBTmdLYzZ3RWdBa0VJSUFwcmRFRVVUdzBCREFNTElBVkJBRFlDbk9zQkN5QUVJQVVvQXZEcUFTSUROZ0xjQVNBSklBNXFJUllnQXlBRktBS0E2d0ZxSVJjQ1FDQVBSUVJBSUE0aEJ3d0JDeUFGS0FLNDZRRWhHaUFGS0FLMDZRRWhHQ0FGS0FLdzZRRWhFaUFGUVFFMkFvVHFBVUVBSVFNRFFDQURRUU5IQkVBZ0JDQURRUUowSWdKcUlBSWdCV3BCck5BQmFpZ0NBRFlDWkNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUVRocUlnSWdCeUFHRUExQmlIOUxEUU5CQ0NBUElBOUJDRTRiSVI4Z05DQUNJQVVvQWdBUUhpQXpJQUlnQlNnQ0NCQWVJRElnQWlBRktBSUVFQjRnRGlBU2F5RVpRUUFoQ0FOQUlBUkJPR29RRDBFRFJpQUlJQjlPY2tVRVFDQUVLQUpRSUFRb0FreEJBM1JxS1FJQUlrQ25JZ2RCRUhZaUVVSC9BWEVoQ3lBRUtBSmdJQVFvQWx4QkEzUnFLUUlBSWtHbklneEJFSFlpSVVIL0FYRWhFQ0FFS0FKWUlBUW9BbFJCQTNScUtRSUFJa0pDSUlpbklRWWdRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ2tIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ1BDSUtheUlOSUFJZ0FpQU5TeHNpRXlBS2FqWUNQQ0FHSUFRb0FqZ2dDblJCQUNBVGEzWWdBaUFUYXlJVGRHb2hDaUFFUVRocUVBOGFJQUlnRFUwTkFTQUVJQVFvQWp3aUFpQVRhallDUENBRUtBSTRJQUowUVFBZ0UydDJJQXBxSVFvTUFRc2dCQ0FDSUFRb0Fqd2lEV28yQWp3Z0JDZ0NPQ0FOZEVFQUlBcHJkaUFHYWlFS0lBUkJPR29RRHhvTElBUXBBbVFoUkNBRUlBbzJBbVFnQkNCRU53Sm9EQUVMQWtBZ0FrVUVRQ0FEQkVBZ0JDZ0NaQ0VLREFNTElBUW9BbWdoQ2d3QkN5QUVJQVFvQWp3aUFrRUJhallDUEFKL0lBWWdBMFZxSUFRb0FqZ2dBblJCSDNacUlnSkJBMFlFUUNBRUtBSmtRUUZyREFFTElBSkJBblFnQkdvb0FtUUxJZ1pGSUFacUlRb2dBa0VCUndSQUlBUWdCQ2dDYURZQ2JBc0xJQVFnQkNnQ1pEWUNhQ0FFSUFvMkFtUUxweUVDSUVGQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJR0lCQnFOZ0k4SUFRb0FqZ2dCblJCQUNBaGEzWWdBbW9oQWdzZ0N5QVFha0VVVHdSQUlBUkJPR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQXRxTmdJOElBUW9BamdnQm5SQkFDQVJhM1lnQTJvaEF3c2dCRUU0YWhBUEdpQUVJQVFvQWpnaUJrRUFJQWRCR0hZaUN5QUVLQUk4YWlJUWEzWWdDMEVDZEVHZ0hXb29BZ0J4SUFkQi8vOERjV28yQWt3Z0JDQVFJQXhCR0hZaUIyb2lDellDUENBRUlBZEJBblJCb0IxcUtBSUFJQVpCQUNBTGEzWnhJQXhCLy84RGNXbzJBbHdnQkVFNGFoQVBHaUFFSUVLbklnWkJHSFlpQnlBRUtBSThhaUlMTmdJOElBUWdCMEVDZEVHZ0hXb29BZ0FnQkNnQ09FRUFJQXRyZG5FZ0JrSC8vd054YWpZQ1ZDQUVRZkFBYWlBSVFReHNhaUlHSUFvMkFnZ2dCaUFDTmdJRUlBWWdBellDQUNBSVFRRnFJUWdnQXlBWmFpQUNhaUVaREFFTEN5QUlJQjlJRFFNZ0ZrRWdheUVoSUE0aEJ3TkFJQVJCT0dvUUQwRURSaUFJSUE5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdaQkVIWWlJMEgvQVhFaENpQUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZzFCRUhZaUlFSC9BWEVoRXlBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUU1nUVVJZ2lDQkFRaUNJcHlFTEFrQWdRa0lRaUtjaURFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lNYXlJUklBSWdBaUFSU3hzaUVDQU1hallDUENBRElBUW9BamdnREhSQkFDQVFhM1lnQWlBUWF5SU1kR29oRUNBRVFUaHFFQThhSUFJZ0VVME5BU0FFSUFRb0Fqd2lBaUFNYWpZQ1BDQUVLQUk0SUFKMFFRQWdER3QySUJCcUlSQU1BUXNnQkNBQ0lBUW9BandpRUdvMkFqd2dCQ2dDT0NBUWRFRUFJQXhyZGlBRGFpRVFJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQkEyQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBTEJFQWdCQ2dDWkNFUURBTUxJQVFvQW1naEVBd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQU1nQzBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdORklBTnFJUkFnQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlCQTJBbVFMcHlFTUlFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUNJQk5xTmdJOElBUW9BamdnQW5SQkFDQWdhM1lnREdvaERBc2dDaUFUYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUFwcU5nSThJQVFvQWpnZ0FuUkJBQ0FqYTNZZ0Myb2hDd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lBa0VBSUFaQkdIWWlBeUFFS0FJOGFpSUthM1lnQTBFQ2RFR2dIV29vQWdCeElBWkIvLzhEY1dvMkFrd2dCQ0FLSUExQkdIWWlBMm9pQmpZQ1BDQUVJQU5CQW5SQm9CMXFLQUlBSUFKQkFDQUdhM1p4SUExQi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ0pCR0hZaUF5QUVLQUk4YWlJR05nSThJQVFnQTBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUFacmRuRWdBa0gvL3dOeGFqWUNWQUpBQWtBQ1FDQUVLQUxjQVNJRElBUkI4QUJxSUFoQkIzRkJER3hxSWhNb0FnQWlFV29pSXlBWFN3MEFJQWNnRXlnQ0JDSU5JQkZxSWdwcUlDRkxEUUFnQ2tFZ2FpQVdJQWRyVFEwQkN5QUVJQk1vQWdnMkFoZ2dCQ0FUS1FJQU53TVFJQWNnRmlBRVFSQnFJQVJCM0FGcUlCY2dFaUFZSUJvUUh5RUtEQUVMSUFjZ0VXb2hBaUFUS0FJSUlRWWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQUpBSUJGQkVVa05BQ0FISUFNcEFCQTNBQkFnQnlBREtRQVlOd0FZSUJGQkVHdEJFVWdOQUNBRFFSQnFJUU1nQjBFZ2FpRVJBMEFnRVNBREtRQVFOd0FBSUJFZ0F5a0FHRGNBQ0NBUklBTXBBQ0EzQUJBZ0VTQURLUUFvTndBWUlBTkJJR29oQXlBUlFTQnFJaEVnQWtrTkFBc0xJQUlnQm1zaEF5QUVJQ00yQXR3QklBSWdFbXNnQmtrRVFDQUdJQUlnR0d0TERRY2dHaUFhSUFNZ0Vtc2lBMm9pRVNBTmFrOEVRQ0FDSUJFZ0RSQUtHZ3dDQ3lBRElBMXFJUTBnQWlBUlFRQWdBMnNRQ2lBRGF5RUNJQkloQXdzZ0JrRVFUd1JBSUFJZ0F5a0FBRGNBQUNBQ0lBTXBBQWczQUFnZ0RVRVJTQTBCSUFJZ0RXb2hCaUFDUVJCcUlRSURRQ0FDSUFNcEFCQTNBQUFnQWlBREtRQVlOd0FJSUFJZ0F5a0FJRGNBRUNBQ0lBTXBBQ2czQUJnZ0EwRWdhaUVESUFKQklHb2lBaUFHU1EwQUN3d0JDd0pBSUFaQkIwMEVRQ0FDSUFNdEFBQTZBQUFnQWlBRExRQUJPZ0FCSUFJZ0F5MEFBam9BQWlBQ0lBTXRBQU02QUFNZ0FpQURJQVpCQW5RaUJrSEFIbW9vQWdCcUlnTW9BQUEyQUFRZ0F5QUdRZUFlYWlnQ0FHc2hBd3dCQ3lBQ0lBTXBBQUEzQUFBTElBMUJDVWtOQUNBQ0lBMXFJUkVnQWtFSWFpSUdJQU5CQ0dvaUEydEJEMHdFUUFOQUlBWWdBeWtBQURjQUFDQURRUWhxSVFNZ0JrRUlhaUlHSUJGSkRRQU1BZ3NBQ3lBR0lBTXBBQUEzQUFBZ0JpQURLUUFJTndBSUlBMUJHVWdOQUNBQ1FSaHFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBUlNRMEFDd3NnQ2tHSWYwc0VRQ0FLSVFrTUJnVWdFeUFRTmdJSUlCTWdERFlDQkNBVElBczJBZ0FnQ0VFQmFpRUlJQWNnQ21vaEJ5QUxJQmxxSUF4cUlSa01BZ3NBQ3dzZ0NDQVBTQTBESUFnZ0gyc2hCZ05BQWtBZ0JpQVBUZ1JBUVFBaEF3TkFJQU5CQTBZTkFpQUZJQU5CQW5RaUFtcEJyTkFCYWlBQ0lBUnFLQUprTmdJQUlBTkJBV29oQXd3QUN3QUxBa0FDUUFKQUlBUW9BdHdCSWdNZ0JFSHdBR29nQmtFSGNVRU1iR29pQ0NnQ0FDSU1haUlRSUJkTERRQWdCeUFJS0FJRUlnc2dER29pQ21vZ0lVc05BQ0FLUVNCcUlCWWdCMnRORFFFTElBUWdDQ2dDQ0RZQ0tDQUVJQWdwQWdBM0F5QWdCeUFXSUFSQklHb2dCRUhjQVdvZ0Z5QVNJQmdnR2hBZklRb01BUXNnQnlBTWFpRUNJQWdvQWdnaENDQUhJQU1wQUFBM0FBQWdCeUFES1FBSU53QUlBa0FnREVFUlNRMEFJQWNnQXlrQUVEY0FFQ0FISUFNcEFCZzNBQmdnREVFUWEwRVJTQTBBSUFOQkVHb2hBeUFIUVNCcUlRd0RRQ0FNSUFNcEFCQTNBQUFnRENBREtRQVlOd0FJSUF3Z0F5a0FJRGNBRUNBTUlBTXBBQ2czQUJnZ0EwRWdhaUVESUF4QklHb2lEQ0FDU1EwQUN3c2dBaUFJYXlFRElBUWdFRFlDM0FFZ0FpQVNheUFJU1FSQUlBZ2dBaUFZYTBzTkJ5QWFJQm9nQXlBU2F5SURhaUlNSUF0cVR3UkFJQUlnRENBTEVBb2FEQUlMSUFNZ0Myb2hDeUFDSUF4QkFDQURheEFLSUFOcklRSWdFaUVEQ3lBSVFSQlBCRUFnQWlBREtRQUFOd0FBSUFJZ0F5a0FDRGNBQ0NBTFFSRklEUUVnQWlBTGFpRUlJQUpCRUdvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQWhKRFFBTERBRUxBa0FnQ0VFSFRRUkFJQUlnQXkwQUFEb0FBQ0FDSUFNdEFBRTZBQUVnQWlBRExRQUNPZ0FDSUFJZ0F5MEFBem9BQXlBQ0lBTWdDRUVDZENJSVFjQWVhaWdDQUdvaUF5Z0FBRFlBQkNBRElBaEI0QjVxS0FJQWF5RUREQUVMSUFJZ0F5a0FBRGNBQUFzZ0MwRUpTUTBBSUFJZ0Myb2hEQ0FDUVFocUlnZ2dBMEVJYWlJRGEwRVBUQVJBQTBBZ0NDQURLUUFBTndBQUlBTkJDR29oQXlBSVFRaHFJZ2dnREVrTkFBd0NDd0FMSUFnZ0F5a0FBRGNBQUNBSUlBTXBBQWczQUFnZ0MwRVpTQTBBSUFKQkdHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUF4SkRRQUxDeUFLUVloL1N3UkFJQW9oQ1F3R0JTQUdRUUZxSVFZZ0J5QUthaUVIREFJTEFBc0xJQVFvQXR3QklRTUxRYnAvSVFrZ0Z5QURheUlDSUJZZ0IydExEUUlnQndSL0lBY2dBeUFDRUFJZ0Ftb0ZRUUFMSUE1cklRa01BZ3NnQlVFQU5nS2M2d0VMSUFRZ0JTZ0M4T29CSWdNMkF0d0JJQWtnRG1vaERDQURJQVVvQW9EckFXb2hFQUpBSUE5RkJFQWdEaUVHREFFTElBVW9BcmpwQVNFTklBVW9BclRwQVNFVElBVW9BckRwQVNFU0lBVkJBVFlDaE9vQlFRQWhBd05BSUFOQkEwY0VRQ0FFSUFOQkFuUWlBbW9nQWlBRmFrR3MwQUZxS0FJQU5nS2NBU0FEUVFGcUlRTU1BUXNMUVd3aENTQUVRZkFBYWlJQ0lBY2dCaEFOUVloL1N3MEJJREVnQWlBRktBSUFFQjRnTUNBQ0lBVW9BZ2dRSGlBdklBSWdCU2dDQkJBZUlBeEJJR3NoR0NBT0lRWURRQ0FFS0FLSUFTQUVLQUtFQVVFRGRHb3BBZ0FpUUtjaUNrRVFkaUlaUWY4QmNTRUxJQVFvQXBnQklBUW9BcFFCUVFOMGFpa0NBQ0pCcHlJV1FSQjJJaDlCL3dGeElSb2dCQ2dDa0FFZ0JDZ0NqQUZCQTNScUtRSUFJa0pDSUlpbklRY2dRVUlnaUNCQVFpQ0lweUVEQWtBZ1FrSVFpS2NpQ0VIL0FYRWlBa0VDVHdSQUFrQWdBa0VaU1NBL1FvR0FnQkJVY2tVRVFDQUVRU0FnQkNnQ2RDSUlheUlSSUFJZ0FpQVJTeHNpRnlBSWFqWUNkQ0FISUFRb0FuQWdDSFJCQUNBWGEzWWdBaUFYYXlJWGRHb2hDQ0FFUWZBQWFoQVBHaUFDSUJGTkRRRWdCQ0FFS0FKMElnSWdGMm8yQW5RZ0JDZ0NjQ0FDZEVFQUlCZHJkaUFJYWlFSURBRUxJQVFnQWlBRUtBSjBJaEZxTmdKMElBUW9BbkFnRVhSQkFDQUlhM1lnQjJvaENDQUVRZkFBYWhBUEdnc2dCQ2tDbkFFaFJDQUVJQWcyQXB3QklBUWdSRGNDb0FFTUFRc0NRQ0FDUlFSQUlBTUVRQ0FFS0FLY0FTRUlEQU1MSUFRb0FxQUJJUWdNQVFzZ0JDQUVLQUowSWdKQkFXbzJBblFDZnlBSElBTkZhaUFFS0FKd0lBSjBRUjkyYWlJQ1FRTkdCRUFnQkNnQ25BRkJBV3NNQVFzZ0FrRUNkQ0FFYWlnQ25BRUxJZ2RGSUFkcUlRZ2dBa0VCUndSQUlBUWdCQ2dDb0FFMkFxUUJDd3NnQkNBRUtBS2NBVFlDb0FFZ0JDQUlOZ0tjQVF1bklRSWdRVUtBZ1B3SGcxQkZCRUFnQkNBRUtBSjBJZ2NnR21vMkFuUWdCQ2dDY0NBSGRFRUFJQjlyZGlBQ2FpRUNDeUFMSUJwcVFSUlBCRUFnQkVId0FHb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDZENJSElBdHFOZ0owSUFRb0FuQWdCM1JCQUNBWmEzWWdBMm9oQXdzZ0JFSHdBR29RRHhvZ0JDQUVLQUp3SWdkQkFDQUtRUmgySWdzZ0JDZ0NkR29pR210MklBdEJBblJCb0IxcUtBSUFjU0FLUWYvL0EzRnFOZ0tFQVNBRUlCb2dGa0VZZGlJS2FpSUxOZ0owSUFRZ0NrRUNkRUdnSFdvb0FnQWdCMEVBSUF0cmRuRWdGa0gvL3dOeGFqWUNsQUVnQkVId0FHb1FEeG9nQkNCQ3B5SUhRUmgySWdvZ0JDZ0NkR29pQ3pZQ2RDQUVJQXBCQW5SQm9CMXFLQUlBSUFRb0FuQkJBQ0FMYTNaeElBZEIvLzhEY1dvMkFvd0JJQVFnQXpZQ09DQUVJQUkyQWp3Z0JDQUlOZ0pBQWtBQ1FBSkFJQVFvQXR3Qklnc2dBMm9pRmlBUVN3MEFJQVlnQWlBRGFpSUthaUFZU3cwQUlBcEJJR29nRENBR2EwME5BUXNnQkNBRVFVQnJLQUlBTmdJSUlBUWdCQ2tET0RjREFDQUdJQXdnQkNBRVFkd0JhaUFRSUJJZ0V5QU5FQjhoQ2d3QkN5QURJQVpxSVFjZ0JpQUxLUUFBTndBQUlBWWdDeWtBQ0RjQUNBSkFJQU5CRVVrTkFDQUdJQXNwQUJBM0FCQWdCaUFMS1FBWU53QVlJQU5CRUd0QkVVZ05BQ0FMUVJCcUlRTWdCa0VnYWlFTEEwQWdDeUFES1FBUU53QUFJQXNnQXlrQUdEY0FDQ0FMSUFNcEFDQTNBQkFnQ3lBREtRQW9Od0FZSUFOQklHb2hBeUFMUVNCcUlnc2dCMGtOQUFzTElBY2dDR3NoQXlBRUlCWTJBdHdCSUFjZ0Vtc2dDRWtFUUNBSUlBY2dFMnRMRFFRZ0RTQU5JQU1nRW1zaUEyb2lDeUFDYWs4RVFDQUhJQXNnQWhBS0dnd0NDeUFISUF0QkFDQURheEFLSUFRZ0FpQURhaUlDTmdJOElBTnJJUWNnRWlFREN5QUlRUkJQQkVBZ0J5QURLUUFBTndBQUlBY2dBeWtBQ0RjQUNDQUNRUkZJRFFFZ0FpQUhhaUVJSUFkQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFjZ0F5MEFBRG9BQUNBSElBTXRBQUU2QUFFZ0J5QURMUUFDT2dBQ0lBY2dBeTBBQXpvQUF5QUhJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBY2dBeWtBQURjQUFBc2dBa0VKU1EwQUlBSWdCMm9oQ3lBSFFRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0Mwa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dBa0VaU0EwQUlBZEJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBdEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0RDeUFHSUFwcUlRWWdCRUh3QUdvUUR5RURJQTlCQVdzaUR3MEFDMEVBSVFJZ0EwRUNTUTBCQTBBZ0FrRURSd1JBSUFVZ0FrRUNkQ0lEYWtHczBBRnFJQU1nQkdvb0Fwd0JOZ0lBSUFKQkFXb2hBZ3dCQ3dzZ0JDZ0MzQUVoQXd0QnVuOGhDU0FRSUFOcklnSWdEQ0FHYTBzTkFDQUdCSDhnQmlBRElBSVFBaUFDYWdWQkFBc2dEbXNoQ1FzZ0NVR0lmMHNOQmdzQ1FDQUZLQUxzNmdGRkRRQWdCU0FGS1FPSTZnRWdDYTE4TndPSTZnRUNRQ0FGS0FMUTZnRWlBaUFKYWlJSVFSOU5CRUFnRGtVTkFTQUNJQ0pxSUE0Z0NSQUNHaUFGS0FMUTZnRWdDV29oQ0F3QkN5QU9JUU1nQWdSQUlBSWdJbW9nQTBFZ0lBSnJFQUlhSUFVb0F0RHFBU0VDSUFWQkFEWUMwT29CSUFVZ0JTa0RrT29CSUFVcEFMRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEa09vQklBVWdCU2tEbU9vQklBVXBBTGpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRG1Pb0JJQVVnQlNrRG9Pb0JJQVVwQU1EcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RvT29CSUFVZ0JTa0RxT29CSUFVcEFNanFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEcU9vQklBTWdBbXRCSUdvaEF3c2dDU0FPYWlJQ0lBTkJJR3BQQkVBZ0FrRWdheUVHSUFVcEE2anFBU0UvSUFVcEE2RHFBU0ZBSUFVcEE1anFBU0ZCSUFVcEE1RHFBU0ZDQTBBZ0F5a0FHRUxQMXRPKzBzZXIyVUorSUQ5OFFoK0pRb2VWcjYrWXR0NmJubjkrSVQ4Z0F5a0FFRUxQMXRPKzBzZXIyVUorSUVCOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVBZ0F5a0FDRUxQMXRPKzBzZXIyVUorSUVGOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVFZ0F5a0FBRUxQMXRPKzBzZXIyVUorSUVKOFFoK0pRb2VWcjYrWXR0NmJubjkrSVVJZ0EwRWdhaUlESUFaTkRRQUxJQVVnUHpjRHFPb0JJQVVnUURjRG9Pb0JJQVVnUVRjRG1Pb0JJQVVnUWpjRGtPb0JDeUFDSUFOTkRRRWdJaUFESUFJZ0Eyc2lDQkFDR2dzZ0JTQUlOZ0xRNmdFTElEVWdGV3NoQXlBVklCdHFJUUlnQ1NBT2FpRU9JQVFvQWpCRkRRQUxJQ2twQXdBaVAwSi9VU0EvSUE0Z0hXdXNVWEpGQkVCQmJDRUpEQVlMSUFVb0F1RHBBUVJBUVdvaENTQURRUVJKRFFZZ0JTZ0M2T29CUlFSQUlDSWdCU2dDME9vQmFpRUtBbjRnQlNrRGlPb0JJajlDSUZvRVFDQUZLUU9ZNmdFaVFFSUhpU0FGS1FPUTZnRWlRVUlCaVh3Z0JTa0RvT29CSWtKQ0RJbDhJQVVwQTZqcUFTSkRRaEtKZkNCQlFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5SUVCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZm9WQ2g1V3ZyNWkyM3B1ZWYzNUNuYU8xNm9PeGpZcjZBSDBnUWtMUDF0Tyswc2VyMlVKK1FoK0pRb2VWcjYrWXR0NmJubjkraFVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0JEUXMvVzA3N1N4NnZaUW41Q0g0bENoNVd2cjVpMjNwdWVmMzZGUW9lVnI2K1l0dDZibm45K1FwMmp0ZXFEc1kySytnQjlEQUVMSUFVcEE2RHFBVUxGejlteThlVzY2aWQ4Q3lBL2ZDRS9JQ0loQmdOQUlBb2dCa0VJYWlJSFR3UkFJQVlwQUFCQ3o5YlR2dExIcTlsQ2ZrSWZpVUtIbGErdm1MYmVtNTUvZmlBL2hVSWJpVUtIbGErdm1MYmVtNTUvZmtLZG83WHFnN0dOaXZvQWZTRS9JQWNoQmd3QkN3c0NRQ0FLSUFaQkJHb2lDRWtFUUNBR0lRZ01BUXNnQmpVQUFFS0hsYSt2bUxiZW01NS9maUEvaFVJWGlVTFAxdE8rMHNlcjJVSitRdm56M2ZHWjlwbXJGbndoUHdzRFFDQUlJQXBKQkVBZ0NERUFBRUxGejlteThlVzY2aWQrSUQrRlFndUpRb2VWcjYrWXR0NmJubjkrSVQ4Z0NFRUJhaUVJREFFTEN5QUNLQUFBSUQ5Q0lZZ2dQNFZDejliVHZ0TEhxOWxDZmlJL1FoMklJRCtGUXZuejNmR1o5cG1yRm40aVAwSWdpQ0EvaGFkSERRY0xJQU5CQkdzaEF5QUNRUVJxSVFJTElBNGdIV3NpQ1VHSmYwOE5CQ0FCSUFscklRRWdDU0FkYWlFZFFRRWhQZ3dCQ3d0QnVIOGhCeUFERFFRZ0hTQUFheUVIREFRTFFXd2hDUXdCQzBHNGZ5RUpDMEc0ZnlFSElBbEJka1lnUG5FTkFRc2dDU0VIQ3lnQ0FBMEFJQVZCL09vQmFpZ0NBQ0VCSUFWQitPb0JhaWdDQUNFQUlBVVFHQ0FGS0FLdzZ3RWdBQ0FCRUJNZ0JVRUFOZ0t3NndFZ0JTZ0NwT3NCSWdJRVFBSkFBa0FDUUFKQUlBSW9BZ0FpQXdSQUlBQkZEUUlnQVNBRElBQVJBZ0FNQVFzZ0FFVU5BZ3NnQVNBQ0lBQVJBZ0FNQWdzZ0F4QUdDeUFDRUFZTElBVkJBRFlDcE9zQkN5QUFCRUFnQVNBRklBQVJBZ0FNQVFzZ0JSQUdDeUFFUWVBQmFpUUFJQWNMQzZnVkNRQkJpQWdMRFFFQUFBQUJBQUFBQWdBQUFBSUFRYUFJQzdNR0FRQUFBQUVBQUFBQ0FBQUFBZ0FBQUNZQUFBQ0NBQUFBSVFVQUFFb0FBQUJuQ0FBQUpnQUFBTUFCQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBS1FBQUFDd0NBQUNBQUFBQVNRVUFBRW9BQUFDK0NBQUFMd0FBQU1vQ0FBQ0FBQUFBaWdVQUFFb0FBQUNFQ1FBQU5RQUFBSE1EQUFDQUFBQUFuUVVBQUVvQUFBQ2dDUUFBUFFBQUFJRURBQUNBQUFBQTZ3VUFBRXNBQUFBK0NnQUFSQUFBQUo0REFBQ0FBQUFBVFFZQUFFc0FBQUNxQ2dBQVN3QUFBTE1EQUFDQUFBQUF3UVlBQUUwQUFBQWZEUUFBVFFBQUFGTUVBQUNBQUFBQUl3Z0FBRkVBQUFDbUR3QUFWQUFBQUprRUFBQ0FBQUFBU3drQUFGY0FBQUN4RWdBQVdBQUFBTm9FQUFDQUFBQUFid2tBQUYwQUFBQWpGQUFBVkFBQUFFVUZBQUNBQUFBQVZBb0FBR29BQUFDTUZBQUFhZ0FBQUs4RkFBQ0FBQUFBZGdrQUFId0FBQUJPRUFBQWZBQUFBTklDQUFDQUFBQUFZd2NBQUpFQUFBQ1FCd0FBa2dBQUFBQUFBQUFCQUFBQUFRQUFBQVVBQUFBTkFBQUFIUUFBQUQwQUFBQjlBQUFBL1FBQUFQMEJBQUQ5QXdBQS9RY0FBUDBQQUFEOUh3QUEvVDhBQVAxL0FBRDkvd0FBL2Y4QkFQMy9Bd0Q5L3djQS9mOFBBUDMvSHdEOS96OEEvZjkvQVAzLy93RDkvLzhCL2YvL0EvMy8vd2Y5Ly84UC9mLy9ILzMvL3ovOS8vOS9BQUFBQUFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBUkFBQUFFZ0FBQUJNQUFBQVVBQUFBRlFBQUFCWUFBQUFYQUFBQUdBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFEQUFBQUJBQUFBQVVBQUFBR0FBQUFCd0FBQUFnQUFBQUpBQUFBQ2dBQUFBc0FBQUFNQUFBQURRQUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ0FBQUFBaEFBQUFJZ0FBQUNNQUFBQWxBQUFBSndBQUFDa0FBQUFyQUFBQUx3QUFBRE1BQUFBN0FBQUFRd0FBQUZNQUFBQmpBQUFBZ3dBQUFBTUJBQUFEQWdBQUF3UUFBQU1JQUFBREVBQUFBeUFBQUFOQUFBQURnQUFBQXdBQkFFSGdEd3RSQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQkFBQUFBVUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUVIRUVBdUxBUUVBQUFBQ0FBQUFBd0FBQUFRQUFBQUZBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFTQUFBQUZBQUFBQllBQUFBWUFBQUFIQUFBQUNBQUFBQW9BQUFBTUFBQUFFQUFBQUNBQUFBQUFBRUFBQUFDQUFBQUJBQUFBQWdBQUFBUUFBQUFJQUFBQUVBQUFBQ0FBQUFBQUFFQVFaQVNDK1lFQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQUVBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQW9BQUFBTEFBQUFEQUFBQUEwQUFBQU9BQUFBRHdBQUFCQUFBQUFCQUFBQUJBQUFBQWdBQUFBQUFBQUFBUUFCQVFZQUFBQUFBQUFFQUFBQUFCQUFBQVFBQUFBQUlBQUFCUUVBQUFBQUFBQUZBd0FBQUFBQUFBVUVBQUFBQUFBQUJRWUFBQUFBQUFBRkJ3QUFBQUFBQUFVSkFBQUFBQUFBQlFvQUFBQUFBQUFGREFBQUFBQUFBQVlPQUFBQUFBQUJCUkFBQUFBQUFBRUZGQUFBQUFBQUFRVVdBQUFBQUFBQ0JSd0FBQUFBQUFNRklBQUFBQUFBQkFVd0FBQUFJQUFHQlVBQUFBQUFBQWNGZ0FBQUFBQUFDQVlBQVFBQUFBQUtCZ0FFQUFBQUFBd0dBQkFBQUNBQUFBUUFBQUFBQUFBQUJBRUFBQUFBQUFBRkFnQUFBQ0FBQUFVRUFBQUFBQUFBQlFVQUFBQWdBQUFGQndBQUFBQUFBQVVJQUFBQUlBQUFCUW9BQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBSUFBQkJSQUFBQUFBQUFFRkVnQUFBQ0FBQVFVV0FBQUFBQUFDQlJnQUFBQWdBQU1GSUFBQUFBQUFBd1VvQUFBQUFBQUdCRUFBQUFBUUFBWUVRQUFBQUNBQUJ3V0FBQUFBQUFBSkJnQUNBQUFBQUFzR0FBZ0FBREFBQUFRQUFBQUFFQUFBQkFFQUFBQWdBQUFGQWdBQUFDQUFBQVVEQUFBQUlBQUFCUVVBQUFBZ0FBQUZCZ0FBQUNBQUFBVUlBQUFBSUFBQUJRa0FBQUFnQUFBRkN3QUFBQ0FBQUFVTUFBQUFBQUFBQmc4QUFBQWdBQUVGRWdBQUFDQUFBUVVVQUFBQUlBQUNCUmdBQUFBZ0FBSUZIQUFBQUNBQUF3VW9BQUFBSUFBRUJUQUFBQUFBQUJBR0FBQUJBQUFBRHdZQWdBQUFBQUFPQmdCQUFBQUFBQTBHQUNBQVFZQVhDNGNDQVFBQkFRVUFBQUFBQUFBRkFBQUFBQUFBQmdROUFBQUFBQUFKQmYwQkFBQUFBQThGL1g4QUFBQUFGUVg5L3g4QUFBQURCUVVBQUFBQUFBY0VmUUFBQUFBQURBWDlEd0FBQUFBU0JmMy9Bd0FBQUJjRi9mOS9BQUFBQlFVZEFBQUFBQUFJQlAwQUFBQUFBQTRGL1Q4QUFBQUFGQVg5L3c4QUFBQUNCUUVBQUFBUUFBY0VmUUFBQUFBQUN3WDlCd0FBQUFBUkJmMy9BUUFBQUJZRi9mOC9BQUFBQkFVTkFBQUFFQUFJQlAwQUFBQUFBQTBGL1I4QUFBQUFFd1g5L3djQUFBQUJCUUVBQUFBUUFBWUVQUUFBQUFBQUNnWDlBd0FBQUFBUUJmMy9BQUFBQUJ3Ri9mLy9Ed0FBR3dYOS8vOEhBQUFhQmYzLy93TUFBQmtGL2YvL0FRQUFHQVg5Ly84QVFaQVpDNFlFQVFBQkFRWUFBQUFBQUFBR0F3QUFBQUFBQUFRRUFBQUFJQUFBQlFVQUFBQUFBQUFGQmdBQUFBQUFBQVVJQUFBQUFBQUFCUWtBQUFBQUFBQUZDd0FBQUFBQUFBWU5BQUFBQUFBQUJoQUFBQUFBQUFBR0V3QUFBQUFBQUFZV0FBQUFBQUFBQmhrQUFBQUFBQUFHSEFBQUFBQUFBQVlmQUFBQUFBQUFCaUlBQUFBQUFBRUdKUUFBQUFBQUFRWXBBQUFBQUFBQ0JpOEFBQUFBQUFNR093QUFBQUFBQkFaVEFBQUFBQUFIQm9NQUFBQUFBQWtHQXdJQUFCQUFBQVFFQUFBQUFBQUFCQVVBQUFBZ0FBQUZCZ0FBQUFBQUFBVUhBQUFBSUFBQUJRa0FBQUFBQUFBRkNnQUFBQUFBQUFZTUFBQUFBQUFBQmc4QUFBQUFBQUFHRWdBQUFBQUFBQVlWQUFBQUFBQUFCaGdBQUFBQUFBQUdHd0FBQUFBQUFBWWVBQUFBQUFBQUJpRUFBQUFBQUFFR0l3QUFBQUFBQVFZbkFBQUFBQUFDQmlzQUFBQUFBQU1HTXdBQUFBQUFCQVpEQUFBQUFBQUZCbU1BQUFBQUFBZ0dBd0VBQUNBQUFBUUVBQUFBTUFBQUJBUUFBQUFRQUFBRUJRQUFBQ0FBQUFVSEFBQUFJQUFBQlFnQUFBQWdBQUFGQ2dBQUFDQUFBQVVMQUFBQUFBQUFCZzRBQUFBQUFBQUdFUUFBQUFBQUFBWVVBQUFBQUFBQUJoY0FBQUFBQUFBR0dnQUFBQUFBQUFZZEFBQUFBQUFBQmlBQUFBQUFBQkFHQXdBQkFBQUFEd1lEZ0FBQUFBQU9CZ05BQUFBQUFBMEdBeUFBQUFBQURBWURFQUFBQUFBTEJnTUlBQUFBQUFvR0F3UUFRYVFkQzlrQkFRQUFBQU1BQUFBSEFBQUFEd0FBQUI4QUFBQS9BQUFBZndBQUFQOEFBQUQvQVFBQS93TUFBUDhIQUFEL0R3QUEveDhBQVA4L0FBRC9md0FBLy84QUFQLy9BUUQvL3dNQS8vOEhBUC8vRHdELy94OEEvLzgvQVAvL2Z3RC8vLzhBLy8vL0FmLy8vd1AvLy84SC8vLy9ELy8vL3gvLy8vOC8vLy8vZndBQUFBQUJBQUFBQWdBQUFBUUFBQUFBQUFBQUFnQUFBQVFBQUFBSUFBQUFBQUFBQUFFQUFBQUNBQUFBQVFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBSUFBQUFDQUFBQUFnQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QkJnQjhMQTRBUkFRPT0iO3ZhciBvZT1uZXcgSkEsZ2U9ITE7YXN5bmMgZnVuY3Rpb24gakkoQSx0LGUpe2xldCBJPW51bGw7dHlwZW9mIEEhPSJzdHJpbmciP0k9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP0k9QTpJPWAke3R9LyR7QX1gLEkuZW5kc1dpdGgoIi5qcyIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTMpKSxJLmVuZHNXaXRoKCIud2FzbSIpJiYoST1JLnN1YnN0cmluZygwLEkubGVuZ3RoLTUpKSxJLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC05KSk7bGV0IHI9YCR7SX0ud2FzbWAsbz1hd2FpdCBiQS5nZXQoYCR7cn0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOmV9KTtnZXx8KGF3YWl0IG9lLmluaXQoKSxnZT0hMCk7bGV0IEM9b2UuZGVjb2RlKG5ldyBVaW50OEFycmF5KG8uZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke0l9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6Q30pfXZhciBpZT1qSTt2YXIgSEE9bmV3IE1hcDthc3luYyBmdW5jdGlvbiBaSShBLHQsZSl7bGV0IEk9QSxyPUEsbz1udWxsO3JldHVybiB0eXBlb2YgQSE9InN0cmluZyImJihJPW5ldyBVUkwoQS5ocmVmKSxyPUkuaHJlZiksSEEuaGFzKHIpP289YXdhaXQgSEEuZ2V0KHIpOihIQS5zZXQocixpZShJLHQsZSkpLG89YXdhaXQgSEEuZ2V0KHIpKSxvfXZhciBzZT1aSTt2YXIgVkk9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LEQ9Vkk7dmFyIFhJPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sTj1YSTt2YXIgX0k9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFA9X0k7ZnVuY3Rpb24gekkoQSx0KXtsZXQgZT1udWxsO3N3aXRjaChBKXtjYXNlIE4uVUludDg6e2U9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBOLkludDg6e2U9bmV3IEludDhBcnJheSh0KTticmVha31jYXNlIE4uVUludDE2OntlPW5ldyBVaW50MTZBcnJheSh0KTticmVha31jYXNlIE4uSW50MTY6e2U9bmV3IEludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBOLlVJbnQzMjp7ZT1uZXcgVWludDMyQXJyYXkodCk7YnJlYWt9Y2FzZSBOLkludDMyOntlPW5ldyBJbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgTi5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ1VpbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBOLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP2U9bmV3IEJpZ0ludDY0QXJyYXkodCk6ZT1uZXcgVWludDhBcnJheSh0KTticmVha31jYXNlIFAuRmxvYXQzMjp7ZT1uZXcgRmxvYXQzMkFycmF5KHQpO2JyZWFrfWNhc2UgUC5GbG9hdDY0OntlPW5ldyBGbG9hdDY0QXJyYXkodCk7YnJlYWt9Y2FzZSJudWxsIjp7ZT1udWxsO2JyZWFrfWNhc2UgbnVsbDp7ZT1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIGV9dmFyIEo9ekk7dmFyIEJlPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLG5lPW5ldyBUZXh0RW5jb2RlcixDZT1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gdkkoQSx0KXtsZXQgZT17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSxJPUEuZnNfb3Blbih0LGUuZmxhZ3MpLG89QS5mc19zdGF0KHQpLnNpemUsZz1udWxsO0JlP2c9bmV3IFNoYXJlZEFycmF5QnVmZmVyKG8pOmc9bmV3IEFycmF5QnVmZmVyKG8pO2xldCBDPW5ldyBVaW50OEFycmF5KGcpO3JldHVybiBBLmZzX3JlYWQoSSxDLDAsbywwKSxBLmZzX2Nsb3NlKEkpLEN9ZnVuY3Rpb24gYWUoQSx0LGUpe2xldCBJPW51bGw7QmU/ST1uZXcgU2hhcmVkQXJyYXlCdWZmZXIoZSk6ST1uZXcgQXJyYXlCdWZmZXIoZSk7bGV0IHI9bmV3IFVpbnQ4QXJyYXkoSSksbz1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsdCxlKTtyZXR1cm4gci5zZXQobykscn1mdW5jdGlvbiBwKEEsdCxlLEkpe2xldCByPTA7cmV0dXJuIHQhPT1udWxsJiYocj1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLEksdC5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheSh0LmJ1ZmZlcikscikpLHJ9ZnVuY3Rpb24gSyhBLHQsZSl7bGV0IEk9SlNPTi5zdHJpbmdpZnkodCkscj1BLmxlbmd0aEJ5dGVzVVRGOChJKSsxLG89QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHJdKTtBLnN0cmluZ1RvVVRGOChJLG8scil9ZnVuY3Rpb24gRihBLHQsZSxJKXtsZXQgcj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxvPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHQsZV0pLGc9YWUoQSxyLG8pO3JldHVybiBKKEksZy5idWZmZXIpfWZ1bmN0aW9uIENBKEEsdCl7bGV0IGU9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCx0XSksST1BLlVURjhUb1N0cmluZyhlKTtyZXR1cm4gSlNPTi5wYXJzZShJKX1mdW5jdGlvbiAkSShBLHQsZSxJKXtJIT1udWxsJiZJLmxlbmd0aD4wJiZJLmZvckVhY2goZnVuY3Rpb24oYSxzKXtzd2l0Y2goYS50eXBlKXtjYXNlIEQuVGV4dFN0cmVhbTp7bGV0IG49bmUuZW5jb2RlKGEuZGF0YS5kYXRhKSxmPXAoQSxuLHMsMCksQj17c2l6ZTpuLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWB9O0soQSxCLHMpO2JyZWFrfWNhc2UgRC5Kc29uQ29tcGF0aWJsZTp7bGV0IG49bmUuZW5jb2RlKEpTT04uc3RyaW5naWZ5KGEuZGF0YSkpLGY9cChBLG4scywwKSxCPXtzaXplOm4uYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07SyhBLEIscyk7YnJlYWt9Y2FzZSBELkJpbmFyeVN0cmVhbTp7bGV0IG49YS5kYXRhLmRhdGEsZj1wKEEsbixzLDApLEI9e3NpemU6bi5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTtLKEEsQixzKTticmVha31jYXNlIEQuVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKGEuZGF0YS5wYXRoLGEuZGF0YS5kYXRhKTticmVha31jYXNlIEQuQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoYS5kYXRhLnBhdGgsYS5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgRC5JbWFnZTp7bGV0IG49YS5kYXRhLGY9cChBLG4uZGF0YSxzLDApLEI9cChBLG4uZGlyZWN0aW9uLHMsMSksUT10eXBlb2Ygbi5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShuLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sbD17aW1hZ2VUeXBlOm4uaW1hZ2VUeXBlLG5hbWU6bi5uYW1lLG9yaWdpbjpuLm9yaWdpbixzcGFjaW5nOm4uc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsc2l6ZTpuLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YCxtZXRhZGF0YTpRfTtLKEEsbCxzKTticmVha31jYXNlIEQuTWVzaDp7bGV0IG49YS5kYXRhLGY9cChBLG4ucG9pbnRzLHMsMCksQj1wKEEsbi5jZWxscyxzLDEpLFE9cChBLG4ucG9pbnREYXRhLHMsMiksbD1wKEEsbi5jZWxsRGF0YSxzLDMpLGM9e21lc2hUeXBlOm4ubWVzaFR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsbnVtYmVyT2ZDZWxsczpuLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsY2VsbEJ1ZmZlclNpemU6bi5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOm4ubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOm4ubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTtLKEEsYyxzKTticmVha31jYXNlIEQuUG9pbnRTZXQ6e2xldCBuPWEuZGF0YSxmPXAoQSxuLnBvaW50cyxzLDApLEI9cChBLG4ucG9pbnREYXRhLHMsMSksUT17cG9pbnRTZXRUeXBlOm4ucG9pbnRTZXRUeXBlLG5hbWU6bi5uYW1lLG51bWJlck9mUG9pbnRzOm4ubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YH07SyhBLFEscyk7YnJlYWt9Y2FzZSBELlRyYW5zZm9ybUxpc3Q6e2xldCBuPWEuZGF0YSxmPVtdLEI9MDtuLmZvckVhY2goUT0+e2xldCBsPSIiLGM9IiI7US50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGw9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtwKEEsUS5maXhlZFBhcmFtZXRlcnMscyxCKX1gLEIrPTEsYz1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke3AoQSxRLnBhcmFtZXRlcnMscyxCKX1gLEIrPTEpO2xldCBkPXt0cmFuc2Zvcm1UeXBlOlEudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpRLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpRLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOlEubmFtZSxpbnB1dFNwYWNlTmFtZTpRLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpRLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmMsZml4ZWRQYXJhbWV0ZXJzOmx9O2YucHVzaChkKX0pLEsoQSxmLHMpO2JyZWFrfWNhc2UgRC5Qb2x5RGF0YTp7bGV0IG49YS5kYXRhLGY9cChBLG4ucG9pbnRzLHMsMCksQj1wKEEsbi52ZXJ0aWNlcyxzLDEpLFE9cChBLG4ubGluZXMscywyKSxsPXAoQSxuLnBvbHlnb25zLHMsMyksYz1wKEEsbi50cmlhbmdsZVN0cmlwcyxzLDQpLGQ9cChBLG4ucG9pbnREYXRhLHMsNSkseT1wKEEsbi5wb2ludERhdGEscyw2KSxtPXtwb2x5RGF0YVR5cGU6bi5wb2x5RGF0YVR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdmVydGljZXNCdWZmZXJTaXplOm4udmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Qn1gLGxpbmVzQnVmZmVyU2l6ZTpuLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1F9YCxwb2x5Z29uc0J1ZmZlclNpemU6bi5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOm4udHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2R9YCxudW1iZXJPZkNlbGxQaXhlbHM6bi5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt5fWB9O0soQSxtLHMpO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCByPUEuc3RhY2tTYXZlKCksbz0wO3RyeXtvPUEuY2FsbE1haW4odC5zbGljZSgpKX1jYXRjaChhKXt0aHJvdyB0eXBlb2YgYT09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShhKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxhfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUocil9bGV0IGc9QS5nZXRNb2R1bGVTdGRvdXQoKSxDPUEuZ2V0TW9kdWxlU3RkZXJyKCksRT1bXTtyZXR1cm4gZSE9bnVsbCYmZS5sZW5ndGg+MCYmbz09PTAmJmUuZm9yRWFjaChmdW5jdGlvbihhLHMpe2xldCBuPW51bGw7c3dpdGNoKGEudHlwZSl7Y2FzZSBELlRleHRTdHJlYW06e2xldCBCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksbD1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsQixRKTtuPXtkYXRhOkNlLmRlY29kZShsKX07YnJlYWt9Y2FzZSBELkpzb25Db21wYXRpYmxlOntsZXQgQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGw9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLEIsUSk7bj1KU09OLnBhcnNlKENlLmRlY29kZShsKSk7YnJlYWt9Y2FzZSBELkJpbmFyeVN0cmVhbTp7bGV0IEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKTtuPXtkYXRhOmFlKEEsQixRKX07YnJlYWt9Y2FzZSBELlRleHRGaWxlOntuPXtwYXRoOmEuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShhLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgRC5CaW5hcnlGaWxlOntuPXtwYXRoOmEuZGF0YS5wYXRoLGRhdGE6dkkoQSxhLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgRC5JbWFnZTp7bGV0IEI9Q0EoQSxzKTtCLmRhdGE9RihBLHMsMCxCLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxCLmRpcmVjdGlvbj1GKEEscywxLFAuRmxvYXQ2NCksQi5tZXRhZGF0YT1uZXcgTWFwKEIubWV0YWRhdGEpLG49QjticmVha31jYXNlIEQuTWVzaDp7bGV0IEI9Q0EoQSxzKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9RihBLHMsMCxCLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Qi5wb2ludHM9SihCLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZDZWxscz4wP0IuY2VsbHM9RihBLHMsMSxCLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTpCLmNlbGxzPUooQi5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEIubnVtYmVyT2ZQb2ludFBpeGVscz4wP0IucG9pbnREYXRhPUYoQSxzLDIsQi5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SihCLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxQaXhlbHM+MD9CLmNlbGxEYXRhPUYoQSxzLDMsQi5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpCLmNlbGxEYXRhPUooQi5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksbj1CO2JyZWFrfWNhc2UgRC5Qb2ludFNldDp7bGV0IEI9Q0EoQSxzKTtCLm51bWJlck9mUG9pbnRzPjA/Qi5wb2ludHM9RihBLHMsMCxCLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOkIucG9pbnRzPUooQi5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Qi5wb2ludERhdGE9RihBLHMsMSxCLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5wb2ludERhdGE9SihCLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLG49QjticmVha31jYXNlIEQuVHJhbnNmb3JtTGlzdDp7bGV0IEI9Q0EoQSxzKSxRPTA7Qi5mb3JFYWNoKChsLGMpPT57bC50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGwubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKEJbY10uZml4ZWRQYXJhbWV0ZXJzPUYoQSxzLFEsUC5GbG9hdDY0KSksUSs9MSxsLm51bWJlck9mUGFyYW1ldGVycz4wJiYoQltjXS5wYXJhbWV0ZXJzPUYoQSxzLFEsbC50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxRKz0xKX0pLG49QjticmVha31jYXNlIEQuUG9seURhdGE6e2xldCBCPUNBKEEscyk7Qi5udW1iZXJPZlBvaW50cz4wP0IucG9pbnRzPUYoQSxzLDAsUC5GbG9hdDMyKTpCLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LEIudmVydGljZXNCdWZmZXJTaXplPjA/Qi52ZXJ0aWNlcz1GKEEscywxLE4uVUludDMyKTpCLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxCLmxpbmVzQnVmZmVyU2l6ZT4wP0IubGluZXM9RihBLHMsMixOLlVJbnQzMik6Qi5saW5lcz1uZXcgVWludDMyQXJyYXksQi5wb2x5Z29uc0J1ZmZlclNpemU+MD9CLnBvbHlnb25zPUYoQSxzLDMsTi5VSW50MzIpOkIucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LEIudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/Qi50cmlhbmdsZVN0cmlwcz1GKEEscyw0LE4uVUludDMyKTpCLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxCLm51bWJlck9mUG9pbnRQaXhlbHM+MD9CLnBvaW50RGF0YT1GKEEscyw1LEIucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpCLnBvaW50RGF0YT1KKEIucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQi5udW1iZXJPZkNlbGxQaXhlbHM+MD9CLmNlbGxEYXRhPUYoQSxzLDYsQi5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Qi5jZWxsRGF0YT1KKEIucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuPUI7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgZj17dHlwZTphLnR5cGUsZGF0YTpufTtFLnB1c2goZil9KSx7cmV0dXJuVmFsdWU6byxzdGRvdXQ6ZyxzdGRlcnI6QyxvdXRwdXRzOkV9fXZhciBRZT0kSTt2YXIgQXI9dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uIHRyKEEsdCl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgZT1bXTtmb3IobGV0IEk9MDtJPEEubGVuZ3RoO0krKyl7bGV0IHI9ZXIoQVtJXSx0KTtyIT09bnVsbCYmZS5wdXNoKHIpfXJldHVybiBlfWZ1bmN0aW9uIGVyKEEsdCl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgZT1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD9lPUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKGU9QSksQXImJmUgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOnQ/ZTplLnNsaWNlKDApfXZhciBFZT10cjtmdW5jdGlvbiBJcihBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIgY2U9SXI7ZnVuY3Rpb24gcnIoQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIGZlPXJyO2Z1bmN0aW9uIG9yKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBsZT1vcjthc3luYyBmdW5jdGlvbiBncihBLHQsZSxJKXtsZXQgcj1RZShBLHQsZSxJKSxvPVtdO3JldHVybiByLm91dHB1dHMuZm9yRWFjaChmdW5jdGlvbihnKXtpZihnLnR5cGU9PT1ELkJpbmFyeVN0cmVhbXx8Zy50eXBlPT09RC5CaW5hcnlGaWxlKXtsZXQgQz1nLmRhdGE7by5wdXNoKEMpfWVsc2UgaWYoZy50eXBlPT09RC5JbWFnZSl7bGV0IEM9Zy5kYXRhO28ucHVzaCguLi5jZShDKSl9ZWxzZSBpZihnLnR5cGU9PT1ELk1lc2gpe2xldCBDPWcuZGF0YTtvLnB1c2goLi4uZmUoQykpfWVsc2UgaWYoZy50eXBlPT09RC5Qb2x5RGF0YSl7bGV0IEM9Zy5kYXRhO28ucHVzaCguLi5sZShDKSl9fSksTUEocixFZShvLCEwKSl9dmFyIHVlPWdyO3ZhciBpcj17cnVuUGlwZWxpbmU6YXN5bmMgZnVuY3Rpb24oQSx0LGUsSSxyLG8pe2xldCBnPWF3YWl0IHNlKEEsdCxvKTtyZXR1cm4gYXdhaXQgdWUoZyxlLEkscil9fTtsQShpcik7JTBBLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjolMEElMEFjb21saW5rL2Rpc3QvZXNtL2NvbWxpbmsubWpzOiUwQSAgKCoqJTBBICAgKiBAbGljZW5zZSUwQSAgICogQ29weXJpZ2h0IDIwMTkgR29vZ2xlIExMQyUwQSAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAlMEEgICAqKSUwQSovJTBBJzskdChlcik7ZXhwb3J0e0QgYXMgZ2V0RGVmYXVsdFdlYldvcmtlcixkIGFzIGdldFBpcGVsaW5lV29ya2VyVXJsLGggYXMgZ2V0UGlwZWxpbmVzQmFzZVVybCxrZSBhcyBoZGY1UmVhZFRyYW5zZm9ybSxVZSBhcyBoZGY1V3JpdGVUcmFuc2Zvcm0sTmUgYXMgbWF0UmVhZFRyYW5zZm9ybSxHZSBhcyBtYXRXcml0ZVRyYW5zZm9ybSxiZSBhcyBtbmNSZWFkVHJhbnNmb3JtLExlIGFzIG1uY1dyaXRlVHJhbnNmb3JtLGxvIGFzIHJlYWRUcmFuc2Zvcm0sdHMgYXMgc2V0RGVmYXVsdFdlYldvcmtlciwkdCBhcyBzZXRQaXBlbGluZVdvcmtlclVybCxWbiBhcyBzZXRQaXBlbGluZXNCYXNlVXJsLEplIGFzIHR4dFJlYWRUcmFuc2Zvcm0sVGUgYXMgdHh0V3JpdGVUcmFuc2Zvcm0sWkEgYXMgdmVyc2lvbixNZSBhcyB3YXNtUmVhZFRyYW5zZm9ybSxIZSBhcyB3YXNtV3JpdGVUcmFuc2Zvcm0sWWUgYXMgd2FzbVpzdGRSZWFkVHJhbnNmb3JtLHFlIGFzIHdhc21ac3RkV3JpdGVUcmFuc2Zvcm0sY28gYXMgd3JpdGVUcmFuc2Zvcm19OwovKiEgQnVuZGxlZCBsaWNlbnNlIGluZm9ybWF0aW9uOgoKY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMKICAgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMAogICAqKQoqLwo=""" +default_js_module = """data:text/javascript;base64,dmFyIG1yPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZHI9KEEsZSk9Pntmb3IodmFyIHQgaW4gZSltcihBLHQse2dldDplW3RdLGVudW1lcmFibGU6ITB9KX07dmFyIHlyPSIxLjEuMCIsb2U9eXI7dmFyIGhyPXtJbnQ4OiJpbnQ4IixVSW50ODoidWludDgiLEludDE2OiJpbnQxNiIsVUludDE2OiJ1aW50MTYiLEludDMyOiJpbnQzMiIsVUludDMyOiJ1aW50MzIiLEludDY0OiJpbnQ2NCIsVUludDY0OiJ1aW50NjQiLFNpemVWYWx1ZVR5cGU6InVpbnQ2NCIsSWRlbnRpZmllclR5cGU6InVpbnQ2NCIsSW5kZXhWYWx1ZVR5cGU6ImludDY0IixPZmZzZXRWYWx1ZVR5cGU6ImludDY0In0sYj1ocjt2YXIgRHI9e0Zsb2F0MzI6ImZsb2F0MzIiLEZsb2F0NjQ6ImZsb2F0NjQiLFNwYWNlUHJlY2lzaW9uVHlwZToiZmxvYXQ2NCJ9LFg9RHI7ZnVuY3Rpb24gd3IoQSxlKXtsZXQgdD1udWxsO3N3aXRjaChBKXtjYXNlIGIuVUludDg6e3Q9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDg6e3Q9bmV3IEludDhBcnJheShlKTticmVha31jYXNlIGIuVUludDE2Ont0PW5ldyBVaW50MTZBcnJheShlKTticmVha31jYXNlIGIuSW50MTY6e3Q9bmV3IEludDE2QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLlVJbnQzMjp7dD1uZXcgVWludDMyQXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDMyOnt0PW5ldyBJbnQzMkFycmF5KGUpO2JyZWFrfWNhc2UgYi5VSW50NjQ6e3R5cGVvZiBnbG9iYWxUaGlzLkJpZ1VpbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ1VpbnQ2NEFycmF5KGUpOnQ9bmV3IFVpbnQ4QXJyYXkoZSk7YnJlYWt9Y2FzZSBiLkludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdJbnQ2NEFycmF5PT0iZnVuY3Rpb24iP3Q9bmV3IEJpZ0ludDY0QXJyYXkoZSk6dD1uZXcgVWludDhBcnJheShlKTticmVha31jYXNlIFguRmxvYXQzMjp7dD1uZXcgRmxvYXQzMkFycmF5KGUpO2JyZWFrfWNhc2UgWC5GbG9hdDY0Ont0PW5ldyBGbG9hdDY0QXJyYXkoZSk7YnJlYWt9Y2FzZSJudWxsIjp7dD1udWxsO2JyZWFrfWNhc2UgbnVsbDp7dD1udWxsO2JyZWFrfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJUeXBlIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYSBUeXBlZEFycmF5Iil9cmV0dXJuIHR9dmFyIE89d3I7ZnVuY3Rpb24gRnIoQSl7bGV0IGU9QS5zbGljZSgoQS5sYXN0SW5kZXhPZigiLiIpLTE+Pj4wKSsyKTtpZihlLnRvTG93ZXJDYXNlKCk9PT0iZ3oiKXtsZXQgdD1BLnNsaWNlKDAsLTMpLmxhc3RJbmRleE9mKCIuIik7ZT1BLnNsaWNlKCh0LTE+Pj4wKSsyKX1lbHNlIGlmKGUudG9Mb3dlckNhc2UoKT09PSJjYm9yIil7bGV0IHQ9QS5zbGljZSgwLC01KS5sYXN0SW5kZXhPZigiLiIpO2U9QS5zbGljZSgodC0xPj4+MCkrMil9ZWxzZSBpZihlLnRvTG93ZXJDYXNlKCk9PT0ienN0Iil7bGV0IHQ9QS5zbGljZSgwLC0xMCkubGFzdEluZGV4T2YoIi4iKTtlPUEuc2xpY2UoKHQtMT4+PjApKzIpfWVsc2UgaWYoZS50b0xvd2VyQ2FzZSgpPT09InppcCIpe2xldCB0PUEuc2xpY2UoMCwtNCkubGFzdEluZGV4T2YoIi4iKTtlPUEuc2xpY2UoKHQtMT4+PjApKzIpfXJldHVybiBlfXZhciBFQT1Gcjt2YXIgUnI9e1RleHRGaWxlOiJUZXh0RmlsZSIsQmluYXJ5RmlsZToiQmluYXJ5RmlsZSIsVGV4dFN0cmVhbToiVGV4dFN0cmVhbSIsQmluYXJ5U3RyZWFtOiJCaW5hcnlTdHJlYW0iLEltYWdlOiJJbWFnZSIsUG9pbnRTZXQ6IlBvaW50U2V0IixNZXNoOiJNZXNoIixQb2x5RGF0YToiUG9seURhdGEiLFRyYW5zZm9ybUxpc3Q6IlRyYW5zZm9ybUxpc3QiLEpzb25Db21wYXRpYmxlOiJKc29uQ29tcGF0aWJsZSJ9LHU9UnI7dmFyIEl0PVN5bWJvbCgiQ29tbGluay5wcm94eSIpLFNyPVN5bWJvbCgiQ29tbGluay5lbmRwb2ludCIpLG5lPVN5bWJvbCgiQ29tbGluay5yZWxlYXNlUHJveHkiKSxpZT1TeW1ib2woIkNvbWxpbmsuZmluYWxpemVyIiksTEE9U3ltYm9sKCJDb21saW5rLnRocm93biIpLG90PUE9PnR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGx8fHR5cGVvZiBBPT0iZnVuY3Rpb24iLGtyPXtjYW5IYW5kbGU6QT0+b3QoQSkmJkFbSXRdLHNlcmlhbGl6ZShBKXtsZXR7cG9ydDE6ZSxwb3J0Mjp0fT1uZXcgTWVzc2FnZUNoYW5uZWw7cmV0dXJuIGF0KEEsZSksW3QsW3RdXX0sZGVzZXJpYWxpemUoQSl7cmV0dXJuIEEuc3RhcnQoKSxnZShBKX19LFVyPXtjYW5IYW5kbGU6QT0+b3QoQSkmJkxBIGluIEEsc2VyaWFsaXplKHt2YWx1ZTpBfSl7bGV0IGU7cmV0dXJuIEEgaW5zdGFuY2VvZiBFcnJvcj9lPXtpc0Vycm9yOiEwLHZhbHVlOnttZXNzYWdlOkEubWVzc2FnZSxuYW1lOkEubmFtZSxzdGFjazpBLnN0YWNrfX06ZT17aXNFcnJvcjohMSx2YWx1ZTpBfSxbZSxbXV19LGRlc2VyaWFsaXplKEEpe3Rocm93IEEuaXNFcnJvcj9PYmplY3QuYXNzaWduKG5ldyBFcnJvcihBLnZhbHVlLm1lc3NhZ2UpLEEudmFsdWUpOkEudmFsdWV9fSxpdD1uZXcgTWFwKFtbInByb3h5Iixrcl0sWyJ0aHJvdyIsVXJdXSk7ZnVuY3Rpb24gTnIoQSxlKXtmb3IobGV0IHQgb2YgQSlpZihlPT09dHx8dD09PSIqInx8dCBpbnN0YW5jZW9mIFJlZ0V4cCYmdC50ZXN0KGUpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGF0KEEsZT1nbG9iYWxUaGlzLHQ9WyIqIl0pe2UuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gcihJKXtpZighSXx8IUkuZGF0YSlyZXR1cm47aWYoIU5yKHQsSS5vcmlnaW4pKXtjb25zb2xlLndhcm4oYEludmFsaWQgb3JpZ2luICcke0kub3JpZ2lufScgZm9yIGNvbWxpbmsgcHJveHlgKTtyZXR1cm59bGV0e2lkOm8sdHlwZTppLHBhdGg6Q309T2JqZWN0LmFzc2lnbih7cGF0aDpbXX0sSS5kYXRhKSxFPShJLmRhdGEuYXJndW1lbnRMaXN0fHxbXSkubWFwKHopLFE7dHJ5e2xldCBhPUMuc2xpY2UoMCwtMSkucmVkdWNlKChjLGcpPT5jW2ddLEEpLG49Qy5yZWR1Y2UoKGMsZyk9PmNbZ10sQSk7c3dpdGNoKGkpe2Nhc2UiR0VUIjpRPW47YnJlYWs7Y2FzZSJTRVQiOmFbQy5zbGljZSgtMSlbMF1dPXooSS5kYXRhLnZhbHVlKSxRPSEwO2JyZWFrO2Nhc2UiQVBQTFkiOlE9bi5hcHBseShhLEUpO2JyZWFrO2Nhc2UiQ09OU1RSVUNUIjp7bGV0IGM9bmV3IG4oLi4uRSk7UT1UcihjKX1icmVhaztjYXNlIkVORFBPSU5UIjp7bGV0e3BvcnQxOmMscG9ydDI6Z309bmV3IE1lc3NhZ2VDaGFubmVsO2F0KEEsZyksUT1zZShjLFtjXSl9YnJlYWs7Y2FzZSJSRUxFQVNFIjpRPXZvaWQgMDticmVhaztkZWZhdWx0OnJldHVybn19Y2F0Y2goYSl7UT17dmFsdWU6YSxbTEFdOjB9fVByb21pc2UucmVzb2x2ZShRKS5jYXRjaChhPT4oe3ZhbHVlOmEsW0xBXTowfSkpLnRoZW4oYT0+e2xldFtuLGNdPU1BKGEpO2UucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LG4pLHtpZDpvfSksYyksaT09PSJSRUxFQVNFIiYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsciksbnQoZSksaWUgaW4gQSYmdHlwZW9mIEFbaWVdPT0iZnVuY3Rpb24iJiZBW2llXSgpKX0pLmNhdGNoKGE9PntsZXRbbixjXT1NQSh7dmFsdWU6bmV3IFR5cGVFcnJvcigiVW5zZXJpYWxpemFibGUgcmV0dXJuIHZhbHVlIiksW0xBXTowfSk7ZS5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbikse2lkOm99KSxjKX0pfSksZS5zdGFydCYmZS5zdGFydCgpfWZ1bmN0aW9uIEdyKEEpe3JldHVybiBBLmNvbnN0cnVjdG9yLm5hbWU9PT0iTWVzc2FnZVBvcnQifWZ1bmN0aW9uIG50KEEpe0dyKEEpJiZBLmNsb3NlKCl9ZnVuY3Rpb24gZ2UoQSxlKXtyZXR1cm4gYWUoQSxbXSxlKX1mdW5jdGlvbiBiQShBKXtpZihBKXRocm93IG5ldyBFcnJvcigiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlIil9ZnVuY3Rpb24gZ3QoQSl7cmV0dXJuIEFBKEEse3R5cGU6IlJFTEVBU0UifSkudGhlbigoKT0+e250KEEpfSl9dmFyIEpBPW5ldyBXZWFrTWFwLFRBPSJGaW5hbGl6YXRpb25SZWdpc3RyeSJpbiBnbG9iYWxUaGlzJiZuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoQT0+e2xldCBlPShKQS5nZXQoQSl8fDApLTE7SkEuc2V0KEEsZSksZT09PTAmJmd0KEEpfSk7ZnVuY3Rpb24gYnIoQSxlKXtsZXQgdD0oSkEuZ2V0KGUpfHwwKSsxO0pBLnNldChlLHQpLFRBJiZUQS5yZWdpc3RlcihBLGUsQSl9ZnVuY3Rpb24gTHIoQSl7VEEmJlRBLnVucmVnaXN0ZXIoQSl9ZnVuY3Rpb24gYWUoQSxlPVtdLHQ9ZnVuY3Rpb24oKXt9KXtsZXQgcj0hMSxJPW5ldyBQcm94eSh0LHtnZXQobyxpKXtpZihiQShyKSxpPT09bmUpcmV0dXJuKCk9PntMcihJKSxndChBKSxyPSEwfTtpZihpPT09InRoZW4iKXtpZihlLmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9Pkl9O2xldCBDPUFBKEEse3R5cGU6IkdFVCIscGF0aDplLm1hcChFPT5FLnRvU3RyaW5nKCkpfSkudGhlbih6KTtyZXR1cm4gQy50aGVuLmJpbmQoQyl9cmV0dXJuIGFlKEEsWy4uLmUsaV0pfSxzZXQobyxpLEMpe2JBKHIpO2xldFtFLFFdPU1BKEMpO3JldHVybiBBQShBLHt0eXBlOiJTRVQiLHBhdGg6Wy4uLmUsaV0ubWFwKGE9PmEudG9TdHJpbmcoKSksdmFsdWU6RX0sUSkudGhlbih6KX0sYXBwbHkobyxpLEMpe2JBKHIpO2xldCBFPWVbZS5sZW5ndGgtMV07aWYoRT09PVNyKXJldHVybiBBQShBLHt0eXBlOiJFTkRQT0lOVCJ9KS50aGVuKHopO2lmKEU9PT0iYmluZCIpcmV0dXJuIGFlKEEsZS5zbGljZSgwLC0xKSk7bGV0W1EsYV09cnQoQyk7cmV0dXJuIEFBKEEse3R5cGU6IkFQUExZIixwYXRoOmUubWFwKG49Pm4udG9TdHJpbmcoKSksYXJndW1lbnRMaXN0OlF9LGEpLnRoZW4oeil9LGNvbnN0cnVjdChvLGkpe2JBKHIpO2xldFtDLEVdPXJ0KGkpO3JldHVybiBBQShBLHt0eXBlOiJDT05TVFJVQ1QiLHBhdGg6ZS5tYXAoUT0+US50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Q30sRSkudGhlbih6KX19KTtyZXR1cm4gYnIoSSxBKSxJfWZ1bmN0aW9uIEpyKEEpe3JldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLEEpfWZ1bmN0aW9uIHJ0KEEpe2xldCBlPUEubWFwKE1BKTtyZXR1cm5bZS5tYXAodD0+dFswXSksSnIoZS5tYXAodD0+dFsxXSkpXX12YXIgc3Q9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gc2UoQSxlKXtyZXR1cm4gc3Quc2V0KEEsZSksQX1mdW5jdGlvbiBUcihBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbihBLHtbSXRdOiEwfSl9ZnVuY3Rpb24gTUEoQSl7Zm9yKGxldFtlLHRdb2YgaXQpaWYodC5jYW5IYW5kbGUoQSkpe2xldFtyLEldPXQuc2VyaWFsaXplKEEpO3JldHVyblt7dHlwZToiSEFORExFUiIsbmFtZTplLHZhbHVlOnJ9LEldfXJldHVyblt7dHlwZToiUkFXIix2YWx1ZTpBfSxzdC5nZXQoQSl8fFtdXX1mdW5jdGlvbiB6KEEpe3N3aXRjaChBLnR5cGUpe2Nhc2UiSEFORExFUiI6cmV0dXJuIGl0LmdldChBLm5hbWUpLmRlc2VyaWFsaXplKEEudmFsdWUpO2Nhc2UiUkFXIjpyZXR1cm4gQS52YWx1ZX19ZnVuY3Rpb24gQUEoQSxlLHQpe3JldHVybiBuZXcgUHJvbWlzZShyPT57bGV0IEk9TXIoKTtBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIG8oaSl7IWkuZGF0YXx8IWkuZGF0YS5pZHx8aS5kYXRhLmlkIT09SXx8KEEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsbykscihpLmRhdGEpKX0pLEEuc3RhcnQmJkEuc3RhcnQoKSxBLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOkl9LGUpLHQpfSl9ZnVuY3Rpb24gTXIoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfWZ1bmN0aW9uIGxBKEEsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkoZSxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6SHJ9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOkJlfT1PYmplY3Qse2l0ZXJhdG9yOllBLHRvU3RyaW5nVGFnOlF0fT1TeW1ib2wsT0E9KEE9PmU9PntsZXQgdD1Ici5jYWxsKGUpO3JldHVybiBBW3RdfHwoQVt0XT10LnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksTT1BPT4oQT1BLnRvTG93ZXJDYXNlKCksZT0+T0EoZSk9PT1BKSxxQT1BPT5lPT50eXBlb2YgZT09PUEse2lzQXJyYXk6dEF9PUFycmF5LGVBPXFBKCJ1bmRlZmluZWQiKTtmdW5jdGlvbiBjQShBKXtyZXR1cm4gQSE9PW51bGwmJiFlQShBKSYmQS5jb25zdHJ1Y3RvciE9PW51bGwmJiFlQShBLmNvbnN0cnVjdG9yKSYmTChBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKSYmQS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihBKX12YXIgRXQ9TSgiQXJyYXlCdWZmZXIiKTtmdW5jdGlvbiBZcihBKXtsZXQgZTtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmQXJyYXlCdWZmZXIuaXNWaWV3P2U9QXJyYXlCdWZmZXIuaXNWaWV3KEEpOmU9QSYmQS5idWZmZXImJkV0KEEuYnVmZmVyKSxlfXZhciBPcj1xQSgic3RyaW5nIiksTD1xQSgiZnVuY3Rpb24iKSxsdD1xQSgibnVtYmVyIiksZkE9QT0+QSE9PW51bGwmJnR5cGVvZiBBPT0ib2JqZWN0Iixxcj1BPT5BPT09ITB8fEE9PT0hMSxIQT1BPT57aWYoT0EoQSkhPT0ib2JqZWN0IilyZXR1cm4hMTtsZXQgZT1CZShBKTtyZXR1cm4oZT09PW51bGx8fGU9PT1PYmplY3QucHJvdG90eXBlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1udWxsKSYmIShRdCBpbiBBKSYmIShZQSBpbiBBKX0seHI9QT0+e2lmKCFmQShBKXx8Y0EoQSkpcmV0dXJuITE7dHJ5e3JldHVybiBPYmplY3Qua2V5cyhBKS5sZW5ndGg9PT0wJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoQSk9PT1PYmplY3QucHJvdG90eXBlfWNhdGNoe3JldHVybiExfX0sUHI9TSgiRGF0ZSIpLEtyPU0oIkZpbGUiKSxXcj1NKCJCbG9iIiksanI9TSgiRmlsZUxpc3QiKSx2cj1BPT5mQShBKSYmTChBLnBpcGUpLFpyPUE9PntsZXQgZTtyZXR1cm4gQSYmKHR5cGVvZiBGb3JtRGF0YT09ImZ1bmN0aW9uIiYmQSBpbnN0YW5jZW9mIEZvcm1EYXRhfHxMKEEuYXBwZW5kKSYmKChlPU9BKEEpKT09PSJmb3JtZGF0YSJ8fGU9PT0ib2JqZWN0IiYmTChBLnRvU3RyaW5nKSYmQS50b1N0cmluZygpPT09IltvYmplY3QgRm9ybURhdGFdIikpfSxWcj1NKCJVUkxTZWFyY2hQYXJhbXMiKSxbWHIsenIsX3IsJHJdPVsiUmVhZGFibGVTdHJlYW0iLCJSZXF1ZXN0IiwiUmVzcG9uc2UiLCJIZWFkZXJzIl0ubWFwKE0pLEFJPUE9PkEudHJpbT9BLnRyaW0oKTpBLnJlcGxhY2UoL15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLCIiKTtmdW5jdGlvbiB1QShBLGUse2FsbE93bktleXM6dD0hMX09e30pe2lmKEE9PT1udWxsfHx0eXBlb2YgQT4idSIpcmV0dXJuO2xldCByLEk7aWYodHlwZW9mIEEhPSJvYmplY3QiJiYoQT1bQV0pLHRBKEEpKWZvcihyPTAsST1BLmxlbmd0aDtyPEk7cisrKWUuY2FsbChudWxsLEFbcl0scixBKTtlbHNle2lmKGNBKEEpKXJldHVybjtsZXQgbz10P09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpOk9iamVjdC5rZXlzKEEpLGk9by5sZW5ndGgsQztmb3Iocj0wO3I8aTtyKyspQz1vW3JdLGUuY2FsbChudWxsLEFbQ10sQyxBKX19ZnVuY3Rpb24gY3QoQSxlKXtpZihjQShBKSlyZXR1cm4gbnVsbDtlPWUudG9Mb3dlckNhc2UoKTtsZXQgdD1PYmplY3Qua2V5cyhBKSxyPXQubGVuZ3RoLEk7Zm9yKDtyLS0gPjA7KWlmKEk9dFtyXSxlPT09SS50b0xvd2VyQ2FzZSgpKXJldHVybiBJO3JldHVybiBudWxsfXZhciBfPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiBzZWxmPCJ1Ij9zZWxmOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzpnbG9iYWwsZnQ9QT0+IWVBKEEpJiZBIT09XztmdW5jdGlvbiBDZSgpe2xldHtjYXNlbGVzczpBLHNraXBVbmRlZmluZWQ6ZX09ZnQodGhpcykmJnRoaXN8fHt9LHQ9e30scj0oSSxvKT0+e2xldCBpPUEmJmN0KHQsbyl8fG87SEEodFtpXSkmJkhBKEkpP3RbaV09Q2UodFtpXSxJKTpIQShJKT90W2ldPUNlKHt9LEkpOnRBKEkpP3RbaV09SS5zbGljZSgpOighZXx8IWVBKEkpKSYmKHRbaV09SSl9O2ZvcihsZXQgST0wLG89YXJndW1lbnRzLmxlbmd0aDtJPG87SSsrKWFyZ3VtZW50c1tJXSYmdUEoYXJndW1lbnRzW0ldLHIpO3JldHVybiB0fXZhciBlST0oQSxlLHQse2FsbE93bktleXM6cn09e30pPT4odUEoZSwoSSxvKT0+e3QmJkwoSSk/QVtvXT1sQShJLHQpOkFbb109SX0se2FsbE93bktleXM6cn0pLEEpLHRJPUE9PihBLmNoYXJDb2RlQXQoMCk9PT02NTI3OSYmKEE9QS5zbGljZSgxKSksQSksckk9KEEsZSx0LHIpPT57QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSxyKSxBLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1BLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJzdXBlciIse3ZhbHVlOmUucHJvdG90eXBlfSksdCYmT2JqZWN0LmFzc2lnbihBLnByb3RvdHlwZSx0KX0sSUk9KEEsZSx0LHIpPT57bGV0IEksbyxpLEM9e307aWYoZT1lfHx7fSxBPT1udWxsKXJldHVybiBlO2Rve2ZvcihJPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEEpLG89SS5sZW5ndGg7by0tID4wOylpPUlbb10sKCFyfHxyKGksQSxlKSkmJiFDW2ldJiYoZVtpXT1BW2ldLENbaV09ITApO0E9dCE9PSExJiZCZShBKX13aGlsZShBJiYoIXR8fHQoQSxlKSkmJkEhPT1PYmplY3QucHJvdG90eXBlKTtyZXR1cm4gZX0sb0k9KEEsZSx0KT0+e0E9U3RyaW5nKEEpLCh0PT09dm9pZCAwfHx0PkEubGVuZ3RoKSYmKHQ9QS5sZW5ndGgpLHQtPWUubGVuZ3RoO2xldCByPUEuaW5kZXhPZihlLHQpO3JldHVybiByIT09LTEmJnI9PT10fSxpST1BPT57aWYoIUEpcmV0dXJuIG51bGw7aWYodEEoQSkpcmV0dXJuIEE7bGV0IGU9QS5sZW5ndGg7aWYoIWx0KGUpKXJldHVybiBudWxsO2xldCB0PW5ldyBBcnJheShlKTtmb3IoO2UtLSA+MDspdFtlXT1BW2VdO3JldHVybiB0fSxhST0oQT0+ZT0+QSYmZSBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmQmUoVWludDhBcnJheSkpLG5JPShBLGUpPT57bGV0IHI9KEEmJkFbWUFdKS5jYWxsKEEpLEk7Zm9yKDsoST1yLm5leHQoKSkmJiFJLmRvbmU7KXtsZXQgbz1JLnZhbHVlO2UuY2FsbChBLG9bMF0sb1sxXSl9fSxnST0oQSxlKT0+e2xldCB0LHI9W107Zm9yKDsodD1BLmV4ZWMoZSkpIT09bnVsbDspci5wdXNoKHQpO3JldHVybiByfSxzST1NKCJIVE1MRm9ybUVsZW1lbnQiKSxDST1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXHNdKFthLXpcZF0pKFx3KikvZyxmdW5jdGlvbih0LHIsSSl7cmV0dXJuIHIudG9VcHBlckNhc2UoKStJfSksQnQ9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4oZSx0KT0+QS5jYWxsKGUsdCkpKE9iamVjdC5wcm90b3R5cGUpLEJJPU0oIlJlZ0V4cCIpLHV0PShBLGUpPT57bGV0IHQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSkscj17fTt1QSh0LChJLG8pPT57bGV0IGk7KGk9ZShJLG8sQSkpIT09ITEmJihyW29dPWl8fEkpfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxyKX0sUUk9QT0+e3V0KEEsKGUsdCk9PntpZihMKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YodCkhPT0tMSlyZXR1cm4hMTtsZXQgcj1BW3RdO2lmKEwocikpe2lmKGUuZW51bWVyYWJsZT0hMSwid3JpdGFibGUiaW4gZSl7ZS53cml0YWJsZT0hMTtyZXR1cm59ZS5zZXR8fChlLnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCAnIit0KyInIil9KX19KX0sRUk9KEEsZSk9PntsZXQgdD17fSxyPUk9PntJLmZvckVhY2gobz0+e3Rbb109ITB9KX07cmV0dXJuIHRBKEEpP3IoQSk6cihTdHJpbmcoQSkuc3BsaXQoZSkpLHR9LGxJPSgpPT57fSxjST0oQSxlKT0+QSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKEE9K0EpP0E6ZTtmdW5jdGlvbiBmSShBKXtyZXR1cm4hIShBJiZMKEEuYXBwZW5kKSYmQVtRdF09PT0iRm9ybURhdGEiJiZBW1lBXSl9dmFyIHVJPUE9PntsZXQgZT1uZXcgQXJyYXkoMTApLHQ9KHIsSSk9PntpZihmQShyKSl7aWYoZS5pbmRleE9mKHIpPj0wKXJldHVybjtpZihjQShyKSlyZXR1cm4gcjtpZighKCJ0b0pTT04iaW4gcikpe2VbSV09cjtsZXQgbz10QShyKT9bXTp7fTtyZXR1cm4gdUEociwoaSxDKT0+e2xldCBFPXQoaSxJKzEpOyFlQShFKSYmKG9bQ109RSl9KSxlW0ldPXZvaWQgMCxvfX1yZXR1cm4gcn07cmV0dXJuIHQoQSwwKX0scEk9TSgiQXN5bmNGdW5jdGlvbiIpLG1JPUE9PkEmJihmQShBKXx8TChBKSkmJkwoQS50aGVuKSYmTChBLmNhdGNoKSxwdD0oKEEsZSk9PkE/c2V0SW1tZWRpYXRlOmU/KCh0LHIpPT4oXy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoe3NvdXJjZTpJLGRhdGE6b30pPT57ST09PV8mJm89PT10JiZyLmxlbmd0aCYmci5zaGlmdCgpKCl9LCExKSxJPT57ci5wdXNoKEkpLF8ucG9zdE1lc3NhZ2UodCwiKiIpfSkpKGBheGlvc0Ake01hdGgucmFuZG9tKCl9YCxbXSk6dD0+c2V0VGltZW91dCh0KSkodHlwZW9mIHNldEltbWVkaWF0ZT09ImZ1bmN0aW9uIixMKF8ucG9zdE1lc3NhZ2UpKSxkST10eXBlb2YgcXVldWVNaWNyb3Rhc2s8InUiP3F1ZXVlTWljcm90YXNrLmJpbmQoXyk6dHlwZW9mIHByb2Nlc3M8InUiJiZwcm9jZXNzLm5leHRUaWNrfHxwdCx5ST1BPT5BIT1udWxsJiZMKEFbWUFdKSxzPXtpc0FycmF5OnRBLGlzQXJyYXlCdWZmZXI6RXQsaXNCdWZmZXI6Y0EsaXNGb3JtRGF0YTpacixpc0FycmF5QnVmZmVyVmlldzpZcixpc1N0cmluZzpPcixpc051bWJlcjpsdCxpc0Jvb2xlYW46cXIsaXNPYmplY3Q6ZkEsaXNQbGFpbk9iamVjdDpIQSxpc0VtcHR5T2JqZWN0OnhyLGlzUmVhZGFibGVTdHJlYW06WHIsaXNSZXF1ZXN0OnpyLGlzUmVzcG9uc2U6X3IsaXNIZWFkZXJzOiRyLGlzVW5kZWZpbmVkOmVBLGlzRGF0ZTpQcixpc0ZpbGU6S3IsaXNCbG9iOldyLGlzUmVnRXhwOkJJLGlzRnVuY3Rpb246TCxpc1N0cmVhbTp2cixpc1VSTFNlYXJjaFBhcmFtczpWcixpc1R5cGVkQXJyYXk6YUksaXNGaWxlTGlzdDpqcixmb3JFYWNoOnVBLG1lcmdlOkNlLGV4dGVuZDplSSx0cmltOkFJLHN0cmlwQk9NOnRJLGluaGVyaXRzOnJJLHRvRmxhdE9iamVjdDpJSSxraW5kT2Y6T0Esa2luZE9mVGVzdDpNLGVuZHNXaXRoOm9JLHRvQXJyYXk6aUksZm9yRWFjaEVudHJ5Om5JLG1hdGNoQWxsOmdJLGlzSFRNTEZvcm06c0ksaGFzT3duUHJvcGVydHk6QnQsaGFzT3duUHJvcDpCdCxyZWR1Y2VEZXNjcmlwdG9yczp1dCxmcmVlemVNZXRob2RzOlFJLHRvT2JqZWN0U2V0OkVJLHRvQ2FtZWxDYXNlOkNJLG5vb3A6bEksdG9GaW5pdGVOdW1iZXI6Y0ksZmluZEtleTpjdCxnbG9iYWw6Xyxpc0NvbnRleHREZWZpbmVkOmZ0LGlzU3BlY0NvbXBsaWFudEZvcm06ZkksdG9KU09OT2JqZWN0OnVJLGlzQXN5bmNGbjpwSSxpc1RoZW5hYmxlOm1JLHNldEltbWVkaWF0ZTpwdCxhc2FwOmRJLGlzSXRlcmFibGU6eUl9O2Z1bmN0aW9uIHJBKEEsZSx0LHIsSSl7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpOnRoaXMuc3RhY2s9bmV3IEVycm9yKCkuc3RhY2ssdGhpcy5tZXNzYWdlPUEsdGhpcy5uYW1lPSJBeGlvc0Vycm9yIixlJiYodGhpcy5jb2RlPWUpLHQmJih0aGlzLmNvbmZpZz10KSxyJiYodGhpcy5yZXF1ZXN0PXIpLEkmJih0aGlzLnJlc3BvbnNlPUksdGhpcy5zdGF0dXM9SS5zdGF0dXM/SS5zdGF0dXM6bnVsbCl9cy5pbmhlcml0cyhyQSxFcnJvcix7dG9KU09OOmZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMuZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOnMudG9KU09OT2JqZWN0KHRoaXMuY29uZmlnKSxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX0pO3ZhciBtdD1yQS5wcm90b3R5cGUsZHQ9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57ZHRbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMockEsZHQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShtdCwiaXNBeGlvc0Vycm9yIix7dmFsdWU6ITB9KTtyQS5mcm9tPShBLGUsdCxyLEksbyk9PntsZXQgaT1PYmplY3QuY3JlYXRlKG10KTtzLnRvRmxhdE9iamVjdChBLGksZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT1FcnJvci5wcm90b3R5cGV9LFE9PlEhPT0iaXNBeGlvc0Vycm9yIik7bGV0IEM9QSYmQS5tZXNzYWdlP0EubWVzc2FnZToiRXJyb3IiLEU9ZT09bnVsbCYmQT9BLmNvZGU6ZTtyZXR1cm4gckEuY2FsbChpLEMsRSx0LHIsSSksQSYmaS5jYXVzZT09bnVsbCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksImNhdXNlIix7dmFsdWU6QSxjb25maWd1cmFibGU6ITB9KSxpLm5hbWU9QSYmQS5uYW1lfHwiRXJyb3IiLG8mJk9iamVjdC5hc3NpZ24oaSxvKSxpfTt2YXIgcD1yQTt2YXIgeEE9bnVsbDtmdW5jdGlvbiBRZShBKXtyZXR1cm4gcy5pc1BsYWluT2JqZWN0KEEpfHxzLmlzQXJyYXkoQSl9ZnVuY3Rpb24gaHQoQSl7cmV0dXJuIHMuZW5kc1dpdGgoQSwiW10iKT9BLnNsaWNlKDAsLTIpOkF9ZnVuY3Rpb24geXQoQSxlLHQpe3JldHVybiBBP0EuY29uY2F0KGUpLm1hcChmdW5jdGlvbihJLG8pe3JldHVybiBJPWh0KEkpLCF0JiZvPyJbIitJKyJdIjpJfSkuam9pbih0PyIuIjoiIik6ZX1mdW5jdGlvbiBoSShBKXtyZXR1cm4gcy5pc0FycmF5KEEpJiYhQS5zb21lKFFlKX12YXIgREk9cy50b0ZsYXRPYmplY3Qocyx7fSxudWxsLGZ1bmN0aW9uKGUpe3JldHVybi9eaXNbQS1aXS8udGVzdChlKX0pO2Z1bmN0aW9uIHdJKEEsZSx0KXtpZighcy5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ0YXJnZXQgbXVzdCBiZSBhbiBvYmplY3QiKTtlPWV8fG5ldyh4QXx8Rm9ybURhdGEpLHQ9cy50b0ZsYXRPYmplY3QodCx7bWV0YVRva2VuczohMCxkb3RzOiExLGluZGV4ZXM6ITF9LCExLGZ1bmN0aW9uKGYsbCl7cmV0dXJuIXMuaXNVbmRlZmluZWQobFtmXSl9KTtsZXQgcj10Lm1ldGFUb2tlbnMsST10LnZpc2l0b3J8fGEsbz10LmRvdHMsaT10LmluZGV4ZXMsRT0odC5CbG9ifHx0eXBlb2YgQmxvYjwidSImJkJsb2IpJiZzLmlzU3BlY0NvbXBsaWFudEZvcm0oZSk7aWYoIXMuaXNGdW5jdGlvbihJKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJ2aXNpdG9yIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Z1bmN0aW9uIFEoQil7aWYoQj09PW51bGwpcmV0dXJuIiI7aWYocy5pc0RhdGUoQikpcmV0dXJuIEIudG9JU09TdHJpbmcoKTtpZihzLmlzQm9vbGVhbihCKSlyZXR1cm4gQi50b1N0cmluZygpO2lmKCFFJiZzLmlzQmxvYihCKSl0aHJvdyBuZXcgcCgiQmxvYiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYSBCdWZmZXIgaW5zdGVhZC4iKTtyZXR1cm4gcy5pc0FycmF5QnVmZmVyKEIpfHxzLmlzVHlwZWRBcnJheShCKT9FJiZ0eXBlb2YgQmxvYj09ImZ1bmN0aW9uIj9uZXcgQmxvYihbQl0pOkJ1ZmZlci5mcm9tKEIpOkJ9ZnVuY3Rpb24gYShCLGYsbCl7bGV0IG09QjtpZihCJiYhbCYmdHlwZW9mIEI9PSJvYmplY3QiKXtpZihzLmVuZHNXaXRoKGYsInt9IikpZj1yP2Y6Zi5zbGljZSgwLC0yKSxCPUpTT04uc3RyaW5naWZ5KEIpO2Vsc2UgaWYocy5pc0FycmF5KEIpJiZoSShCKXx8KHMuaXNGaWxlTGlzdChCKXx8cy5lbmRzV2l0aChmLCJbXSIpKSYmKG09cy50b0FycmF5KEIpKSlyZXR1cm4gZj1odChmKSxtLmZvckVhY2goZnVuY3Rpb24oRixHKXshKHMuaXNVbmRlZmluZWQoRil8fEY9PT1udWxsKSYmZS5hcHBlbmQoaT09PSEwP3l0KFtmXSxHLG8pOmk9PT1udWxsP2Y6ZisiW10iLFEoRikpfSksITF9cmV0dXJuIFFlKEIpPyEwOihlLmFwcGVuZCh5dChsLGYsbyksUShCKSksITEpfWxldCBuPVtdLGM9T2JqZWN0LmFzc2lnbihESSx7ZGVmYXVsdFZpc2l0b3I6YSxjb252ZXJ0VmFsdWU6USxpc1Zpc2l0YWJsZTpRZX0pO2Z1bmN0aW9uIGcoQixmKXtpZighcy5pc1VuZGVmaW5lZChCKSl7aWYobi5pbmRleE9mKEIpIT09LTEpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiAiK2Yuam9pbigiLiIpKTtuLnB1c2goQikscy5mb3JFYWNoKEIsZnVuY3Rpb24obSxOKXsoIShzLmlzVW5kZWZpbmVkKG0pfHxtPT09bnVsbCkmJkkuY2FsbChlLG0scy5pc1N0cmluZyhOKT9OLnRyaW0oKTpOLGYsYykpPT09ITAmJmcobSxmP2YuY29uY2F0KE4pOltOXSl9KSxuLnBvcCgpfX1pZighcy5pc09iamVjdChBKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJkYXRhIG11c3QgYmUgYW4gb2JqZWN0Iik7cmV0dXJuIGcoQSksZX12YXIgaj13STtmdW5jdGlvbiBEdChBKXtsZXQgZT17IiEiOiIlMjEiLCInIjoiJTI3IiwiKCI6IiUyOCIsIikiOiIlMjkiLCJ+IjoiJTdFIiwiJTIwIjoiKyIsIiUwMCI6IlwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC9bIScoKX5dfCUyMHwlMDAvZyxmdW5jdGlvbihyKXtyZXR1cm4gZVtyXX0pfWZ1bmN0aW9uIHd0KEEsZSl7dGhpcy5fcGFpcnM9W10sQSYmaihBLHRoaXMsZSl9dmFyIEZ0PXd0LnByb3RvdHlwZTtGdC5hcHBlbmQ9ZnVuY3Rpb24oZSx0KXt0aGlzLl9wYWlycy5wdXNoKFtlLHRdKX07RnQudG9TdHJpbmc9ZnVuY3Rpb24oZSl7bGV0IHQ9ZT9mdW5jdGlvbihyKXtyZXR1cm4gZS5jYWxsKHRoaXMscixEdCl9OkR0O3JldHVybiB0aGlzLl9wYWlycy5tYXAoZnVuY3Rpb24oSSl7cmV0dXJuIHQoSVswXSkrIj0iK3QoSVsxXSl9LCIiKS5qb2luKCImIil9O3ZhciBQQT13dDtmdW5jdGlvbiBGSShBKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KEEpLnJlcGxhY2UoLyUzQS9naSwiOiIpLnJlcGxhY2UoLyUyNC9nLCIkIikucmVwbGFjZSgvJTJDL2dpLCIsIikucmVwbGFjZSgvJTIwL2csIisiKX1mdW5jdGlvbiBwQShBLGUsdCl7aWYoIWUpcmV0dXJuIEE7bGV0IHI9dCYmdC5lbmNvZGV8fEZJO3MuaXNGdW5jdGlvbih0KSYmKHQ9e3NlcmlhbGl6ZTp0fSk7bGV0IEk9dCYmdC5zZXJpYWxpemUsbztpZihJP289SShlLHQpOm89cy5pc1VSTFNlYXJjaFBhcmFtcyhlKT9lLnRvU3RyaW5nKCk6bmV3IFBBKGUsdCkudG9TdHJpbmcociksbyl7bGV0IGk9QS5pbmRleE9mKCIjIik7aSE9PS0xJiYoQT1BLnNsaWNlKDAsaSkpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK299cmV0dXJuIEF9dmFyIEVlPWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UoZSx0LHIpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDplLHJlamVjdGVkOnQsc3luY2hyb25vdXM6cj9yLnN5bmNocm9ub3VzOiExLHJ1bldoZW46cj9yLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QoZSl7dGhpcy5oYW5kbGVyc1tlXSYmKHRoaXMuaGFuZGxlcnNbZV09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaChlKXtzLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihyKXtyIT09bnVsbCYmZShyKX0pfX0sbGU9RWU7dmFyIEtBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgUnQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOlBBO3ZhciBTdD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyIGt0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIFV0PXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOlJ0LEZvcm1EYXRhOlN0LEJsb2I6a3R9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgdWU9e307ZHIodWUse2hhc0Jyb3dzZXJFbnY6KCk9PmZlLGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+UkksaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT5TSSxuYXZpZ2F0b3I6KCk9PmNlLG9yaWdpbjooKT0+a0l9KTt2YXIgZmU9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsY2U9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLFJJPWZlJiYoIWNlfHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKGNlLnByb2R1Y3QpPDApLFNJPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixrST1mZSYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgdz17Li4udWUsLi4uVXR9O2Z1bmN0aW9uIHBlKEEsZSl7cmV0dXJuIGooQSxuZXcgdy5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbih0LHIsSSxvKXtyZXR1cm4gdy5pc05vZGUmJnMuaXNCdWZmZXIodCk/KHRoaXMuYXBwZW5kKHIsdC50b1N0cmluZygiYmFzZTY0IikpLCExKTpvLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4uZX0pfWZ1bmN0aW9uIFVJKEEpe3JldHVybiBzLm1hdGNoQWxsKC9cdyt8XFsoXHcqKV0vZyxBKS5tYXAoZT0+ZVswXT09PSJbXSI/IiI6ZVsxXXx8ZVswXSl9ZnVuY3Rpb24gTkkoQSl7bGV0IGU9e30sdD1PYmplY3Qua2V5cyhBKSxyLEk9dC5sZW5ndGgsbztmb3Iocj0wO3I8STtyKyspbz10W3JdLGVbb109QVtvXTtyZXR1cm4gZX1mdW5jdGlvbiBHSShBKXtmdW5jdGlvbiBlKHQscixJLG8pe2xldCBpPXRbbysrXTtpZihpPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IEM9TnVtYmVyLmlzRmluaXRlKCtpKSxFPW8+PXQubGVuZ3RoO3JldHVybiBpPSFpJiZzLmlzQXJyYXkoSSk/SS5sZW5ndGg6aSxFPyhzLmhhc093blByb3AoSSxpKT9JW2ldPVtJW2ldLHJdOklbaV09ciwhQyk6KCghSVtpXXx8IXMuaXNPYmplY3QoSVtpXSkpJiYoSVtpXT1bXSksZSh0LHIsSVtpXSxvKSYmcy5pc0FycmF5KElbaV0pJiYoSVtpXT1OSShJW2ldKSksIUMpfWlmKHMuaXNGb3JtRGF0YShBKSYmcy5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCB0PXt9O3JldHVybiBzLmZvckVhY2hFbnRyeShBLChyLEkpPT57ZShVSShyKSxJLHQsMCl9KSx0fXJldHVybiBudWxsfXZhciBXQT1HSTtmdW5jdGlvbiBiSShBLGUsdCl7aWYocy5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKGV8fEpTT04ucGFyc2UpKEEpLHMudHJpbShBKX1jYXRjaChyKXtpZihyLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IHJ9cmV0dXJuKHR8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgbWU9e3RyYW5zaXRpb25hbDpLQSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24oZSx0KXtsZXQgcj10LmdldENvbnRlbnRUeXBlKCl8fCIiLEk9ci5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsbz1zLmlzT2JqZWN0KGUpO2lmKG8mJnMuaXNIVE1MRm9ybShlKSYmKGU9bmV3IEZvcm1EYXRhKGUpKSxzLmlzRm9ybURhdGEoZSkpcmV0dXJuIEk/SlNPTi5zdHJpbmdpZnkoV0EoZSkpOmU7aWYocy5pc0FycmF5QnVmZmVyKGUpfHxzLmlzQnVmZmVyKGUpfHxzLmlzU3RyZWFtKGUpfHxzLmlzRmlsZShlKXx8cy5pc0Jsb2IoZSl8fHMuaXNSZWFkYWJsZVN0cmVhbShlKSlyZXR1cm4gZTtpZihzLmlzQXJyYXlCdWZmZXJWaWV3KGUpKXJldHVybiBlLmJ1ZmZlcjtpZihzLmlzVVJMU2VhcmNoUGFyYW1zKGUpKXJldHVybiB0LnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLGUudG9TdHJpbmcoKTtsZXQgQztpZihvKXtpZihyLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBwZShlLHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKEM9cy5pc0ZpbGVMaXN0KGUpKXx8ci5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gaihDP3siZmlsZXNbXSI6ZX06ZSxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIG98fEk/KHQuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxiSShlKSk6ZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihlKXtsZXQgdD10aGlzLnRyYW5zaXRpb25hbHx8bWUudHJhbnNpdGlvbmFsLHI9dCYmdC5mb3JjZWRKU09OUGFyc2luZyxJPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKHMuaXNSZXNwb25zZShlKXx8cy5pc1JlYWRhYmxlU3RyZWFtKGUpKXJldHVybiBlO2lmKGUmJnMuaXNTdHJpbmcoZSkmJihyJiYhdGhpcy5yZXNwb25zZVR5cGV8fEkpKXtsZXQgaT0hKHQmJnQuc2lsZW50SlNPTlBhcnNpbmcpJiZJO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlLHRoaXMucGFyc2VSZXZpdmVyKX1jYXRjaChDKXtpZihpKXRocm93IEMubmFtZT09PSJTeW50YXhFcnJvciI/cC5mcm9tKEMscC5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpDfX1yZXR1cm4gZX1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6dy5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6dy5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKGUpe3JldHVybiBlPj0yMDAmJmU8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07cy5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PnttZS5oZWFkZXJzW0FdPXt9fSk7dmFyIElBPW1lO3ZhciBMST1zLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLE50PUE9PntsZXQgZT17fSx0LHIsSTtyZXR1cm4gQSYmQS5zcGxpdChgCmApLmZvckVhY2goZnVuY3Rpb24oaSl7ST1pLmluZGV4T2YoIjoiKSx0PWkuc3Vic3RyaW5nKDAsSSkudHJpbSgpLnRvTG93ZXJDYXNlKCkscj1pLnN1YnN0cmluZyhJKzEpLnRyaW0oKSwhKCF0fHxlW3RdJiZMSVt0XSkmJih0PT09InNldC1jb29raWUiP2VbdF0/ZVt0XS5wdXNoKHIpOmVbdF09W3JdOmVbdF09ZVt0XT9lW3RdKyIsICIrcjpyKX0pLGV9O3ZhciBHdD1TeW1ib2woImludGVybmFscyIpO2Z1bmN0aW9uIG1BKEEpe3JldHVybiBBJiZTdHJpbmcoQSkudHJpbSgpLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gakEoQSl7cmV0dXJuIEE9PT0hMXx8QT09bnVsbD9BOnMuaXNBcnJheShBKT9BLm1hcChqQSk6U3RyaW5nKEEpfWZ1bmN0aW9uIEpJKEEpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCksdD0vKFteXHMsOz1dKylccyooPzo9XHMqKFteLDtdKykpPy9nLHI7Zm9yKDtyPXQuZXhlYyhBKTspZVtyWzFdXT1yWzJdO3JldHVybiBlfXZhciBUST1BPT4vXlstX2EtekEtWjAtOV5gfH4sISMkJSYnKisuXSskLy50ZXN0KEEudHJpbSgpKTtmdW5jdGlvbiBkZShBLGUsdCxyLEkpe2lmKHMuaXNGdW5jdGlvbihyKSlyZXR1cm4gci5jYWxsKHRoaXMsZSx0KTtpZihJJiYoZT10KSwhIXMuaXNTdHJpbmcoZSkpe2lmKHMuaXNTdHJpbmcocikpcmV0dXJuIGUuaW5kZXhPZihyKSE9PS0xO2lmKHMuaXNSZWdFeHAocikpcmV0dXJuIHIudGVzdChlKX19ZnVuY3Rpb24gTUkoQSl7cmV0dXJuIEEudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvKFthLXpcZF0pKFx3KikvZywoZSx0LHIpPT50LnRvVXBwZXJDYXNlKCkrcil9ZnVuY3Rpb24gSEkoQSxlKXtsZXQgdD1zLnRvQ2FtZWxDYXNlKCIgIitlKTtbImdldCIsInNldCIsImhhcyJdLmZvckVhY2gocj0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShBLHIrdCx7dmFsdWU6ZnVuY3Rpb24oSSxvLGkpe3JldHVybiB0aGlzW3JdLmNhbGwodGhpcyxlLEksbyxpKX0sY29uZmlndXJhYmxlOiEwfSl9KX12YXIgb0E9Y2xhc3N7Y29uc3RydWN0b3IoZSl7ZSYmdGhpcy5zZXQoZSl9c2V0KGUsdCxyKXtsZXQgST10aGlzO2Z1bmN0aW9uIG8oQyxFLFEpe2xldCBhPW1BKEUpO2lmKCFhKXRocm93IG5ldyBFcnJvcigiaGVhZGVyIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtsZXQgbj1zLmZpbmRLZXkoSSxhKTsoIW58fElbbl09PT12b2lkIDB8fFE9PT0hMHx8UT09PXZvaWQgMCYmSVtuXSE9PSExKSYmKElbbnx8RV09akEoQykpfWxldCBpPShDLEUpPT5zLmZvckVhY2goQywoUSxhKT0+byhRLGEsRSkpO2lmKHMuaXNQbGFpbk9iamVjdChlKXx8ZSBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpaShlLHQpO2Vsc2UgaWYocy5pc1N0cmluZyhlKSYmKGU9ZS50cmltKCkpJiYhVEkoZSkpaShOdChlKSx0KTtlbHNlIGlmKHMuaXNPYmplY3QoZSkmJnMuaXNJdGVyYWJsZShlKSl7bGV0IEM9e30sRSxRO2ZvcihsZXQgYSBvZiBlKXtpZighcy5pc0FycmF5KGEpKXRocm93IFR5cGVFcnJvcigiT2JqZWN0IGl0ZXJhdG9yIG11c3QgcmV0dXJuIGEga2V5LXZhbHVlIHBhaXIiKTtDW1E9YVswXV09KEU9Q1tRXSk/cy5pc0FycmF5KEUpP1suLi5FLGFbMV1dOltFLGFbMV1dOmFbMV19aShDLHQpfWVsc2UgZSE9bnVsbCYmbyh0LGUscik7cmV0dXJuIHRoaXN9Z2V0KGUsdCl7aWYoZT1tQShlKSxlKXtsZXQgcj1zLmZpbmRLZXkodGhpcyxlKTtpZihyKXtsZXQgST10aGlzW3JdO2lmKCF0KXJldHVybiBJO2lmKHQ9PT0hMClyZXR1cm4gSkkoSSk7aWYocy5pc0Z1bmN0aW9uKHQpKXJldHVybiB0LmNhbGwodGhpcyxJLHIpO2lmKHMuaXNSZWdFeHAodCkpcmV0dXJuIHQuZXhlYyhJKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJwYXJzZXIgbXVzdCBiZSBib29sZWFufHJlZ2V4cHxmdW5jdGlvbiIpfX19aGFzKGUsdCl7aWYoZT1tQShlKSxlKXtsZXQgcj1zLmZpbmRLZXkodGhpcyxlKTtyZXR1cm4hIShyJiZ0aGlzW3JdIT09dm9pZCAwJiYoIXR8fGRlKHRoaXMsdGhpc1tyXSxyLHQpKSl9cmV0dXJuITF9ZGVsZXRlKGUsdCl7bGV0IHI9dGhpcyxJPSExO2Z1bmN0aW9uIG8oaSl7aWYoaT1tQShpKSxpKXtsZXQgQz1zLmZpbmRLZXkocixpKTtDJiYoIXR8fGRlKHIscltDXSxDLHQpKSYmKGRlbGV0ZSByW0NdLEk9ITApfX1yZXR1cm4gcy5pc0FycmF5KGUpP2UuZm9yRWFjaChvKTpvKGUpLEl9Y2xlYXIoZSl7bGV0IHQ9T2JqZWN0LmtleXModGhpcykscj10Lmxlbmd0aCxJPSExO2Zvcig7ci0tOyl7bGV0IG89dFtyXTsoIWV8fGRlKHRoaXMsdGhpc1tvXSxvLGUsITApKSYmKGRlbGV0ZSB0aGlzW29dLEk9ITApfXJldHVybiBJfW5vcm1hbGl6ZShlKXtsZXQgdD10aGlzLHI9e307cmV0dXJuIHMuZm9yRWFjaCh0aGlzLChJLG8pPT57bGV0IGk9cy5maW5kS2V5KHIsbyk7aWYoaSl7dFtpXT1qQShJKSxkZWxldGUgdFtvXTtyZXR1cm59bGV0IEM9ZT9NSShvKTpTdHJpbmcobykudHJpbSgpO0MhPT1vJiZkZWxldGUgdFtvXSx0W0NdPWpBKEkpLHJbQ109ITB9KSx0aGlzfWNvbmNhdCguLi5lKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5jb25jYXQodGhpcywuLi5lKX10b0pTT04oZSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gcy5mb3JFYWNoKHRoaXMsKHIsSSk9PntyIT1udWxsJiZyIT09ITEmJih0W0ldPWUmJnMuaXNBcnJheShyKT9yLmpvaW4oIiwgIik6cil9KSx0fVtTeW1ib2wuaXRlcmF0b3JdKCl7cmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMudG9KU09OKCkpW1N5bWJvbC5pdGVyYXRvcl0oKX10b1N0cmluZygpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKS5tYXAoKFtlLHRdKT0+ZSsiOiAiK3QpLmpvaW4oYApgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIHRoaXM/ZTpuZXcgdGhpcyhlKX1zdGF0aWMgY29uY2F0KGUsLi4udCl7bGV0IHI9bmV3IHRoaXMoZSk7cmV0dXJuIHQuZm9yRWFjaChJPT5yLnNldChJKSkscn1zdGF0aWMgYWNjZXNzb3IoZSl7bGV0IHI9KHRoaXNbR3RdPXRoaXNbR3RdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMsST10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBvKGkpe2xldCBDPW1BKGkpO3JbQ118fChISShJLGkpLHJbQ109ITApfXJldHVybiBzLmlzQXJyYXkoZSk/ZS5mb3JFYWNoKG8pOm8oZSksdGhpc319O29BLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtzLnJlZHVjZURlc2NyaXB0b3JzKG9BLnByb3RvdHlwZSwoe3ZhbHVlOkF9LGUpPT57bGV0IHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQocil7dGhpc1t0XT1yfX19KTtzLmZyZWV6ZU1ldGhvZHMob0EpO3ZhciBrPW9BO2Z1bmN0aW9uIGRBKEEsZSl7bGV0IHQ9dGhpc3x8SUEscj1lfHx0LEk9ay5mcm9tKHIuaGVhZGVycyksbz1yLmRhdGE7cmV0dXJuIHMuZm9yRWFjaChBLGZ1bmN0aW9uKEMpe289Qy5jYWxsKHQsbyxJLm5vcm1hbGl6ZSgpLGU/ZS5zdGF0dXM6dm9pZCAwKX0pLEkubm9ybWFsaXplKCksb31mdW5jdGlvbiB5QShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIGJ0KEEsZSx0KXtwLmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHAuRVJSX0NBTkNFTEVELGUsdCksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1zLmluaGVyaXRzKGJ0LHAse19fQ0FOQ0VMX186ITB9KTt2YXIgcT1idDtmdW5jdGlvbiBoQShBLGUsdCl7bGV0IHI9dC5jb25maWcudmFsaWRhdGVTdGF0dXM7IXQuc3RhdHVzfHwhcnx8cih0LnN0YXR1cyk/QSh0KTplKG5ldyBwKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrdC5zdGF0dXMsW3AuRVJSX0JBRF9SRVFVRVNULHAuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcih0LnN0YXR1cy8xMDApLTRdLHQuY29uZmlnLHQucmVxdWVzdCx0KSl9ZnVuY3Rpb24geWUoQSl7bGV0IGU9L14oWy0rXHddezEsMjV9KSg6P1wvXC98OikvLmV4ZWMoQSk7cmV0dXJuIGUmJmVbMV18fCIifWZ1bmN0aW9uIFlJKEEsZSl7QT1BfHwxMDtsZXQgdD1uZXcgQXJyYXkoQSkscj1uZXcgQXJyYXkoQSksST0wLG89MCxpO3JldHVybiBlPWUhPT12b2lkIDA/ZToxZTMsZnVuY3Rpb24oRSl7bGV0IFE9RGF0ZS5ub3coKSxhPXJbb107aXx8KGk9USksdFtJXT1FLHJbSV09UTtsZXQgbj1vLGM9MDtmb3IoO24hPT1JOyljKz10W24rK10sbj1uJUE7aWYoST0oSSsxKSVBLEk9PT1vJiYobz0obysxKSVBKSxRLWk8ZSlyZXR1cm47bGV0IGc9YSYmUS1hO3JldHVybiBnP01hdGgucm91bmQoYyoxZTMvZyk6dm9pZCAwfX12YXIgTHQ9WUk7ZnVuY3Rpb24gT0koQSxlKXtsZXQgdD0wLHI9MWUzL2UsSSxvLGk9KFEsYT1EYXRlLm5vdygpKT0+e3Q9YSxJPW51bGwsbyYmKGNsZWFyVGltZW91dChvKSxvPW51bGwpLEEoLi4uUSl9O3JldHVyblsoLi4uUSk9PntsZXQgYT1EYXRlLm5vdygpLG49YS10O24+PXI/aShRLGEpOihJPVEsb3x8KG89c2V0VGltZW91dCgoKT0+e289bnVsbCxpKEkpfSxyLW4pKSl9LCgpPT5JJiZpKEkpXX12YXIgSnQ9T0k7dmFyIGlBPShBLGUsdD0zKT0+e2xldCByPTAsST1MdCg1MCwyNTApO3JldHVybiBKdChvPT57bGV0IGk9by5sb2FkZWQsQz1vLmxlbmd0aENvbXB1dGFibGU/by50b3RhbDp2b2lkIDAsRT1pLXIsUT1JKEUpLGE9aTw9QztyPWk7bGV0IG49e2xvYWRlZDppLHRvdGFsOkMscHJvZ3Jlc3M6Qz9pL0M6dm9pZCAwLGJ5dGVzOkUscmF0ZTpRfHx2b2lkIDAsZXN0aW1hdGVkOlEmJkMmJmE/KEMtaSkvUTp2b2lkIDAsZXZlbnQ6byxsZW5ndGhDb21wdXRhYmxlOkMhPW51bGwsW2U/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0Eobil9LHQpfSxoZT0oQSxlKT0+e2xldCB0PUEhPW51bGw7cmV0dXJuW3I9PmVbMF0oe2xlbmd0aENvbXB1dGFibGU6dCx0b3RhbDpBLGxvYWRlZDpyfSksZVsxXV19LERlPUE9PiguLi5lKT0+cy5hc2FwKCgpPT5BKC4uLmUpKTt2YXIgVHQ9dy5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLGUpPT50PT4odD1uZXcgVVJMKHQsdy5vcmlnaW4pLEEucHJvdG9jb2w9PT10LnByb3RvY29sJiZBLmhvc3Q9PT10Lmhvc3QmJihlfHxBLnBvcnQ9PT10LnBvcnQpKSkobmV3IFVSTCh3Lm9yaWdpbiksdy5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3Qody5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBNdD13Lmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSxlLHQscixJLG8pe2xldCBpPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQoZSldO3MuaXNOdW1iZXIodCkmJmkucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKHQpLnRvR01UU3RyaW5nKCkpLHMuaXNTdHJpbmcocikmJmkucHVzaCgicGF0aD0iK3IpLHMuaXNTdHJpbmcoSSkmJmkucHVzaCgiZG9tYWluPSIrSSksbz09PSEwJiZpLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1pLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IGU9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXHMqKSgiK0ErIik9KFteO10qKSIpKTtyZXR1cm4gZT9kZWNvZGVVUklDb21wb25lbnQoZVszXSk6bnVsbH0scmVtb3ZlKEEpe3RoaXMud3JpdGUoQSwiIixEYXRlLm5vdygpLTg2NGU1KX19Ont3cml0ZSgpe30scmVhZCgpe3JldHVybiBudWxsfSxyZW1vdmUoKXt9fTtmdW5jdGlvbiB3ZShBKXtyZXR1cm4vXihbYS16XVthLXpcZCtcLS5dKjopP1wvXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIEZlKEEsZSl7cmV0dXJuIGU/QS5yZXBsYWNlKC9cLz9cLyQvLCIiKSsiLyIrZS5yZXBsYWNlKC9eXC8rLywiIik6QX1mdW5jdGlvbiBEQShBLGUsdCl7bGV0IHI9IXdlKGUpO3JldHVybiBBJiYocnx8dD09ITEpP0ZlKEEsZSk6ZX12YXIgSHQ9QT0+QSBpbnN0YW5jZW9mIGs/ey4uLkF9OkE7ZnVuY3Rpb24gSChBLGUpe2U9ZXx8e307bGV0IHQ9e307ZnVuY3Rpb24gcihRLGEsbixjKXtyZXR1cm4gcy5pc1BsYWluT2JqZWN0KFEpJiZzLmlzUGxhaW5PYmplY3QoYSk/cy5tZXJnZS5jYWxsKHtjYXNlbGVzczpjfSxRLGEpOnMuaXNQbGFpbk9iamVjdChhKT9zLm1lcmdlKHt9LGEpOnMuaXNBcnJheShhKT9hLnNsaWNlKCk6YX1mdW5jdGlvbiBJKFEsYSxuLGMpe2lmKHMuaXNVbmRlZmluZWQoYSkpe2lmKCFzLmlzVW5kZWZpbmVkKFEpKXJldHVybiByKHZvaWQgMCxRLG4sYyl9ZWxzZSByZXR1cm4gcihRLGEsbixjKX1mdW5jdGlvbiBvKFEsYSl7aWYoIXMuaXNVbmRlZmluZWQoYSkpcmV0dXJuIHIodm9pZCAwLGEpfWZ1bmN0aW9uIGkoUSxhKXtpZihzLmlzVW5kZWZpbmVkKGEpKXtpZighcy5pc1VuZGVmaW5lZChRKSlyZXR1cm4gcih2b2lkIDAsUSl9ZWxzZSByZXR1cm4gcih2b2lkIDAsYSl9ZnVuY3Rpb24gQyhRLGEsbil7aWYobiBpbiBlKXJldHVybiByKFEsYSk7aWYobiBpbiBBKXJldHVybiByKHZvaWQgMCxRKX1sZXQgRT17dXJsOm8sbWV0aG9kOm8sZGF0YTpvLGJhc2VVUkw6aSx0cmFuc2Zvcm1SZXF1ZXN0OmksdHJhbnNmb3JtUmVzcG9uc2U6aSxwYXJhbXNTZXJpYWxpemVyOmksdGltZW91dDppLHRpbWVvdXRNZXNzYWdlOmksd2l0aENyZWRlbnRpYWxzOmksd2l0aFhTUkZUb2tlbjppLGFkYXB0ZXI6aSxyZXNwb25zZVR5cGU6aSx4c3JmQ29va2llTmFtZTppLHhzcmZIZWFkZXJOYW1lOmksb25VcGxvYWRQcm9ncmVzczppLG9uRG93bmxvYWRQcm9ncmVzczppLGRlY29tcHJlc3M6aSxtYXhDb250ZW50TGVuZ3RoOmksbWF4Qm9keUxlbmd0aDppLGJlZm9yZVJlZGlyZWN0OmksdHJhbnNwb3J0OmksaHR0cEFnZW50OmksaHR0cHNBZ2VudDppLGNhbmNlbFRva2VuOmksc29ja2V0UGF0aDppLHJlc3BvbnNlRW5jb2Rpbmc6aSx2YWxpZGF0ZVN0YXR1czpDLGhlYWRlcnM6KFEsYSxuKT0+SShIdChRKSxIdChhKSxuLCEwKX07cmV0dXJuIHMuZm9yRWFjaChPYmplY3Qua2V5cyh7Li4uQSwuLi5lfSksZnVuY3Rpb24oYSl7bGV0IG49RVthXXx8SSxjPW4oQVthXSxlW2FdLGEpO3MuaXNVbmRlZmluZWQoYykmJm4hPT1DfHwodFthXT1jKX0pLHR9dmFyIHZBPUE9PntsZXQgZT1IKHt9LEEpLHtkYXRhOnQsd2l0aFhTUkZUb2tlbjpyLHhzcmZIZWFkZXJOYW1lOkkseHNyZkNvb2tpZU5hbWU6byxoZWFkZXJzOmksYXV0aDpDfT1lO2lmKGUuaGVhZGVycz1pPWsuZnJvbShpKSxlLnVybD1wQShEQShlLmJhc2VVUkwsZS51cmwsZS5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxDJiZpLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgoQy51c2VybmFtZXx8IiIpKyI6IisoQy5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoQy5wYXNzd29yZCkpOiIiKSkpLHMuaXNGb3JtRGF0YSh0KSl7aWYody5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fHcuaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KWkuc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKHMuaXNGdW5jdGlvbih0LmdldEhlYWRlcnMpKXtsZXQgRT10LmdldEhlYWRlcnMoKSxRPVsiY29udGVudC10eXBlIiwiY29udGVudC1sZW5ndGgiXTtPYmplY3QuZW50cmllcyhFKS5mb3JFYWNoKChbYSxuXSk9PntRLmluY2x1ZGVzKGEudG9Mb3dlckNhc2UoKSkmJmkuc2V0KGEsbil9KX19aWYody5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJihyJiZzLmlzRnVuY3Rpb24ocikmJihyPXIoZSkpLHJ8fHIhPT0hMSYmVHQoZS51cmwpKSl7bGV0IEU9SSYmbyYmTXQucmVhZChvKTtFJiZpLnNldChJLEUpfXJldHVybiBlfTt2YXIgcUk9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixZdD1xSSYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQscil7bGV0IEk9dkEoQSksbz1JLmRhdGEsaT1rLmZyb20oSS5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOkMsb25VcGxvYWRQcm9ncmVzczpFLG9uRG93bmxvYWRQcm9ncmVzczpRfT1JLGEsbixjLGcsQjtmdW5jdGlvbiBmKCl7ZyYmZygpLEImJkIoKSxJLmNhbmNlbFRva2VuJiZJLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKGEpLEkuc2lnbmFsJiZJLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsYSl9bGV0IGw9bmV3IFhNTEh0dHBSZXF1ZXN0O2wub3BlbihJLm1ldGhvZC50b1VwcGVyQ2FzZSgpLEkudXJsLCEwKSxsLnRpbWVvdXQ9SS50aW1lb3V0O2Z1bmN0aW9uIG0oKXtpZighbClyZXR1cm47bGV0IEY9ay5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gbCYmbC5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksVD17ZGF0YTohQ3x8Qz09PSJ0ZXh0Inx8Qz09PSJqc29uIj9sLnJlc3BvbnNlVGV4dDpsLnJlc3BvbnNlLHN0YXR1czpsLnN0YXR1cyxzdGF0dXNUZXh0Omwuc3RhdHVzVGV4dCxoZWFkZXJzOkYsY29uZmlnOkEscmVxdWVzdDpsfTtoQShmdW5jdGlvbihKKXt0KEopLGYoKX0sZnVuY3Rpb24oSil7cihKKSxmKCl9LFQpLGw9bnVsbH0ib25sb2FkZW5kImluIGw/bC5vbmxvYWRlbmQ9bTpsLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFsfHxsLnJlYWR5U3RhdGUhPT00fHxsLnN0YXR1cz09PTAmJiEobC5yZXNwb25zZVVSTCYmbC5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQobSl9LGwub25hYm9ydD1mdW5jdGlvbigpe2wmJihyKG5ldyBwKCJSZXF1ZXN0IGFib3J0ZWQiLHAuRUNPTk5BQk9SVEVELEEsbCkpLGw9bnVsbCl9LGwub25lcnJvcj1mdW5jdGlvbihHKXtsZXQgVD1HJiZHLm1lc3NhZ2U/Ry5tZXNzYWdlOiJOZXR3b3JrIEVycm9yIixaPW5ldyBwKFQscC5FUlJfTkVUV09SSyxBLGwpO1ouZXZlbnQ9R3x8bnVsbCxyKFopLGw9bnVsbH0sbC5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgRz1JLnRpbWVvdXQ/InRpbWVvdXQgb2YgIitJLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsVD1JLnRyYW5zaXRpb25hbHx8S0E7SS50aW1lb3V0RXJyb3JNZXNzYWdlJiYoRz1JLnRpbWVvdXRFcnJvck1lc3NhZ2UpLHIobmV3IHAoRyxULmNsYXJpZnlUaW1lb3V0RXJyb3I/cC5FVElNRURPVVQ6cC5FQ09OTkFCT1JURUQsQSxsKSksbD1udWxsfSxvPT09dm9pZCAwJiZpLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGwmJnMuZm9yRWFjaChpLnRvSlNPTigpLGZ1bmN0aW9uKEcsVCl7bC5zZXRSZXF1ZXN0SGVhZGVyKFQsRyl9KSxzLmlzVW5kZWZpbmVkKEkud2l0aENyZWRlbnRpYWxzKXx8KGwud2l0aENyZWRlbnRpYWxzPSEhSS53aXRoQ3JlZGVudGlhbHMpLEMmJkMhPT0ianNvbiImJihsLnJlc3BvbnNlVHlwZT1JLnJlc3BvbnNlVHlwZSksUSYmKFtjLEJdPWlBKFEsITApLGwuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGMpKSxFJiZsLnVwbG9hZCYmKFtuLGddPWlBKEUpLGwudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixuKSxsLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixnKSksKEkuY2FuY2VsVG9rZW58fEkuc2lnbmFsKSYmKGE9Rj0+e2wmJihyKCFGfHxGLnR5cGU/bmV3IHEobnVsbCxBLGwpOkYpLGwuYWJvcnQoKSxsPW51bGwpfSxJLmNhbmNlbFRva2VuJiZJLmNhbmNlbFRva2VuLnN1YnNjcmliZShhKSxJLnNpZ25hbCYmKEkuc2lnbmFsLmFib3J0ZWQ/YSgpOkkuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixhKSkpO2xldCBOPXllKEkudXJsKTtpZihOJiZ3LnByb3RvY29scy5pbmRleE9mKE4pPT09LTEpe3IobmV3IHAoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrTisiOiIscC5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1sLnNlbmQob3x8bnVsbCl9KX07dmFyIHhJPShBLGUpPT57bGV0e2xlbmd0aDp0fT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYoZXx8dCl7bGV0IHI9bmV3IEFib3J0Q29udHJvbGxlcixJLG89ZnVuY3Rpb24oUSl7aWYoIUkpe0k9ITAsQygpO2xldCBhPVEgaW5zdGFuY2VvZiBFcnJvcj9ROnRoaXMucmVhc29uO3IuYWJvcnQoYSBpbnN0YW5jZW9mIHA/YTpuZXcgcShhIGluc3RhbmNlb2YgRXJyb3I/YS5tZXNzYWdlOmEpKX19LGk9ZSYmc2V0VGltZW91dCgoKT0+e2k9bnVsbCxvKG5ldyBwKGB0aW1lb3V0ICR7ZX0gb2YgbXMgZXhjZWVkZWRgLHAuRVRJTUVET1VUKSl9LGUpLEM9KCk9PntBJiYoaSYmY2xlYXJUaW1lb3V0KGkpLGk9bnVsbCxBLmZvckVhY2goUT0+e1EudW5zdWJzY3JpYmU/US51bnN1YnNjcmliZShvKTpRLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixvKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChRPT5RLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixvKSk7bGV0e3NpZ25hbDpFfT1yO3JldHVybiBFLnVuc3Vic2NyaWJlPSgpPT5zLmFzYXAoQyksRX19LE90PXhJO3ZhciBQST1mdW5jdGlvbiooQSxlKXtsZXQgdD1BLmJ5dGVMZW5ndGg7aWYoIWV8fHQ8ZSl7eWllbGQgQTtyZXR1cm59bGV0IHI9MCxJO2Zvcig7cjx0OylJPXIrZSx5aWVsZCBBLnNsaWNlKHIsSSkscj1JfSxLST1hc3luYyBmdW5jdGlvbiooQSxlKXtmb3IgYXdhaXQobGV0IHQgb2YgV0koQSkpeWllbGQqUEkodCxlKX0sV0k9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgZT1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOnQsdmFsdWU6cn09YXdhaXQgZS5yZWFkKCk7aWYodClicmVhazt5aWVsZCByfX1maW5hbGx5e2F3YWl0IGUuY2FuY2VsKCl9fSxSZT0oQSxlLHQscik9PntsZXQgST1LSShBLGUpLG89MCxpLEM9RT0+e2l8fChpPSEwLHImJnIoRSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKEUpe3RyeXtsZXR7ZG9uZTpRLHZhbHVlOmF9PWF3YWl0IEkubmV4dCgpO2lmKFEpe0MoKSxFLmNsb3NlKCk7cmV0dXJufWxldCBuPWEuYnl0ZUxlbmd0aDtpZih0KXtsZXQgYz1vKz1uO3QoYyl9RS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KGEpKX1jYXRjaChRKXt0aHJvdyBDKFEpLFF9fSxjYW5jZWwoRSl7cmV0dXJuIEMoRSksSS5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIHF0PTY0KjEwMjQse2lzRnVuY3Rpb246WkF9PXMsV3Q9KCh7ZmV0Y2g6QSxSZXF1ZXN0OmUsUmVzcG9uc2U6dH0pPT4oe2ZldGNoOkEsUmVxdWVzdDplLFJlc3BvbnNlOnR9KSkocy5nbG9iYWwpLHtSZWFkYWJsZVN0cmVhbTp4dCxUZXh0RW5jb2RlcjpQdH09cy5nbG9iYWwsS3Q9KEEsLi4uZSk9Pnt0cnl7cmV0dXJuISFBKC4uLmUpfWNhdGNoe3JldHVybiExfX0sakk9QT0+e2xldHtmZXRjaDplLFJlcXVlc3Q6dCxSZXNwb25zZTpyfT1PYmplY3QuYXNzaWduKHt9LFd0LEEpLEk9WkEoZSksbz1aQSh0KSxpPVpBKHIpO2lmKCFJKXJldHVybiExO2xldCBDPUkmJlpBKHh0KSxFPUkmJih0eXBlb2YgUHQ9PSJmdW5jdGlvbiI/KEI9PmY9PkIuZW5jb2RlKGYpKShuZXcgUHQpOmFzeW5jIEI9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyB0KEIpLmFycmF5QnVmZmVyKCkpKSxRPW8mJkMmJkt0KCgpPT57bGV0IEI9ITEsZj1uZXcgdCh3Lm9yaWdpbix7Ym9keTpuZXcgeHQsbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIEI9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gQiYmIWZ9KSxhPWkmJkMmJkt0KCgpPT5zLmlzUmVhZGFibGVTdHJlYW0obmV3IHIoIiIpLmJvZHkpKSxuPXtzdHJlYW06YSYmKEI9PkIuYm9keSl9O0kmJlsidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChCPT57IW5bQl0mJihuW0JdPShmLGwpPT57bGV0IG09ZiYmZltCXTtpZihtKXJldHVybiBtLmNhbGwoZik7dGhyb3cgbmV3IHAoYFJlc3BvbnNlIHR5cGUgJyR7Qn0nIGlzIG5vdCBzdXBwb3J0ZWRgLHAuRVJSX05PVF9TVVBQT1JULGwpfSl9KTtsZXQgYz1hc3luYyBCPT57aWYoQj09bnVsbClyZXR1cm4gMDtpZihzLmlzQmxvYihCKSlyZXR1cm4gQi5zaXplO2lmKHMuaXNTcGVjQ29tcGxpYW50Rm9ybShCKSlyZXR1cm4oYXdhaXQgbmV3IHQody5vcmlnaW4se21ldGhvZDoiUE9TVCIsYm9keTpCfSkuYXJyYXlCdWZmZXIoKSkuYnl0ZUxlbmd0aDtpZihzLmlzQXJyYXlCdWZmZXJWaWV3KEIpfHxzLmlzQXJyYXlCdWZmZXIoQikpcmV0dXJuIEIuYnl0ZUxlbmd0aDtpZihzLmlzVVJMU2VhcmNoUGFyYW1zKEIpJiYoQj1CKyIiKSxzLmlzU3RyaW5nKEIpKXJldHVybihhd2FpdCBFKEIpKS5ieXRlTGVuZ3RofSxnPWFzeW5jKEIsZik9PntsZXQgbD1zLnRvRmluaXRlTnVtYmVyKEIuZ2V0Q29udGVudExlbmd0aCgpKTtyZXR1cm4gbD8/YyhmKX07cmV0dXJuIGFzeW5jIEI9PntsZXR7dXJsOmYsbWV0aG9kOmwsZGF0YTptLHNpZ25hbDpOLGNhbmNlbFRva2VuOkYsdGltZW91dDpHLG9uRG93bmxvYWRQcm9ncmVzczpULG9uVXBsb2FkUHJvZ3Jlc3M6WixyZXNwb25zZVR5cGU6SixoZWFkZXJzOnJlLHdpdGhDcmVkZW50aWFsczpVQT0ic2FtZS1vcmlnaW4iLGZldGNoT3B0aW9uczpfZX09dkEoQik7Sj1KPyhKKyIiKS50b0xvd2VyQ2FzZSgpOiJ0ZXh0IjtsZXQgTkE9T3QoW04sRiYmRi50b0Fib3J0U2lnbmFsKCldLEcpLFFBPW51bGwsVj1OQSYmTkEudW5zdWJzY3JpYmUmJigoKT0+e05BLnVuc3Vic2NyaWJlKCl9KSwkZTt0cnl7aWYoWiYmUSYmbCE9PSJnZXQiJiZsIT09ImhlYWQiJiYoJGU9YXdhaXQgZyhyZSxtKSkhPT0wKXtsZXQgVz1uZXcgdChmLHttZXRob2Q6IlBPU1QiLGJvZHk6bSxkdXBsZXg6ImhhbGYifSksJDtpZihzLmlzRm9ybURhdGEobSkmJigkPVcuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpKSYmcmUuc2V0Q29udGVudFR5cGUoJCksVy5ib2R5KXtsZXRbSWUsR0FdPWhlKCRlLGlBKERlKFopKSk7bT1SZShXLmJvZHkscXQsSWUsR0EpfX1zLmlzU3RyaW5nKFVBKXx8KFVBPVVBPyJpbmNsdWRlIjoib21pdCIpO2xldCBZPW8mJiJjcmVkZW50aWFscyJpbiB0LnByb3RvdHlwZSxBdD17Li4uX2Usc2lnbmFsOk5BLG1ldGhvZDpsLnRvVXBwZXJDYXNlKCksaGVhZGVyczpyZS5ub3JtYWxpemUoKS50b0pTT04oKSxib2R5Om0sZHVwbGV4OiJoYWxmIixjcmVkZW50aWFsczpZP1VBOnZvaWQgMH07UUE9byYmbmV3IHQoZixBdCk7bGV0IEs9YXdhaXQobz9lKFFBLF9lKTplKGYsQXQpKSxldD1hJiYoSj09PSJzdHJlYW0ifHxKPT09InJlc3BvbnNlIik7aWYoYSYmKFR8fGV0JiZWKSl7bGV0IFc9e307WyJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaGVhZGVycyJdLmZvckVhY2godHQ9PntXW3R0XT1LW3R0XX0pO2xldCAkPXMudG9GaW5pdGVOdW1iZXIoSy5oZWFkZXJzLmdldCgiY29udGVudC1sZW5ndGgiKSksW0llLEdBXT1UJiZoZSgkLGlBKERlKFQpLCEwKSl8fFtdO0s9bmV3IHIoUmUoSy5ib2R5LHF0LEllLCgpPT57R0EmJkdBKCksViYmVigpfSksVyl9Sj1KfHwidGV4dCI7bGV0IHByPWF3YWl0IG5bcy5maW5kS2V5KG4sSil8fCJ0ZXh0Il0oSyxCKTtyZXR1cm4hZXQmJlYmJlYoKSxhd2FpdCBuZXcgUHJvbWlzZSgoVywkKT0+e2hBKFcsJCx7ZGF0YTpwcixoZWFkZXJzOmsuZnJvbShLLmhlYWRlcnMpLHN0YXR1czpLLnN0YXR1cyxzdGF0dXNUZXh0Oksuc3RhdHVzVGV4dCxjb25maWc6QixyZXF1ZXN0OlFBfSl9KX1jYXRjaChZKXt0aHJvdyBWJiZWKCksWSYmWS5uYW1lPT09IlR5cGVFcnJvciImJi9Mb2FkIGZhaWxlZHxmZXRjaC9pLnRlc3QoWS5tZXNzYWdlKT9PYmplY3QuYXNzaWduKG5ldyBwKCJOZXR3b3JrIEVycm9yIixwLkVSUl9ORVRXT1JLLEIsUUEpLHtjYXVzZTpZLmNhdXNlfHxZfSk6cC5mcm9tKFksWSYmWS5jb2RlLEIsUUEpfX19LHZJPW5ldyBNYXAsU2U9QT0+e2xldCBlPXMubWVyZ2UuY2FsbCh7c2tpcFVuZGVmaW5lZDohMH0sV3QsQT9BLmVudjpudWxsKSx7ZmV0Y2g6dCxSZXF1ZXN0OnIsUmVzcG9uc2U6SX09ZSxvPVtyLEksdF0saT1vLmxlbmd0aCxDPWksRSxRLGE9dkk7Zm9yKDtDLS07KUU9b1tDXSxRPWEuZ2V0KEUpLFE9PT12b2lkIDAmJmEuc2V0KEUsUT1DP25ldyBNYXA6akkoZSkpLGE9UTtyZXR1cm4gUX0sb249U2UoKTt2YXIga2U9e2h0dHA6eEEseGhyOll0LGZldGNoOntnZXQ6U2V9fTtzLmZvckVhY2goa2UsKEEsZSk9PntpZihBKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIm5hbWUiLHt2YWx1ZTplfSl9Y2F0Y2h7fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJhZGFwdGVyTmFtZSIse3ZhbHVlOmV9KX19KTt2YXIganQ9QT0+YC0gJHtBfWAsVkk9QT0+cy5pc0Z1bmN0aW9uKEEpfHxBPT09bnVsbHx8QT09PSExLFZBPXtnZXRBZGFwdGVyOihBLGUpPT57QT1zLmlzQXJyYXkoQSk/QTpbQV07bGV0e2xlbmd0aDp0fT1BLHIsSSxvPXt9O2ZvcihsZXQgaT0wO2k8dDtpKyspe3I9QVtpXTtsZXQgQztpZihJPXIsIVZJKHIpJiYoST1rZVsoQz1TdHJpbmcocikpLnRvTG93ZXJDYXNlKCldLEk9PT12b2lkIDApKXRocm93IG5ldyBwKGBVbmtub3duIGFkYXB0ZXIgJyR7Q30nYCk7aWYoSSYmKHMuaXNGdW5jdGlvbihJKXx8KEk9SS5nZXQoZSkpKSlicmVhaztvW0N8fCIjIitpXT1JfWlmKCFJKXtsZXQgaT1PYmplY3QuZW50cmllcyhvKS5tYXAoKFtFLFFdKT0+YGFkYXB0ZXIgJHtFfSBgKyhRPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSksQz10P2kubGVuZ3RoPjE/YHNpbmNlIDoKYCtpLm1hcChqdCkuam9pbihgCmApOiIgIitqdChpWzBdKToiYXMgbm8gYWRhcHRlciBzcGVjaWZpZWQiO3Rocm93IG5ldyBwKCJUaGVyZSBpcyBubyBzdWl0YWJsZSBhZGFwdGVyIHRvIGRpc3BhdGNoIHRoZSByZXF1ZXN0ICIrQywiRVJSX05PVF9TVVBQT1JUIil9cmV0dXJuIEl9LGFkYXB0ZXJzOmtlfTtmdW5jdGlvbiBVZShBKXtpZihBLmNhbmNlbFRva2VuJiZBLmNhbmNlbFRva2VuLnRocm93SWZSZXF1ZXN0ZWQoKSxBLnNpZ25hbCYmQS5zaWduYWwuYWJvcnRlZCl0aHJvdyBuZXcgcShudWxsLEEpfWZ1bmN0aW9uIFhBKEEpe3JldHVybiBVZShBKSxBLmhlYWRlcnM9ay5mcm9tKEEuaGVhZGVycyksQS5kYXRhPWRBLmNhbGwoQSxBLnRyYW5zZm9ybVJlcXVlc3QpLFsicG9zdCIsInB1dCIsInBhdGNoIl0uaW5kZXhPZihBLm1ldGhvZCkhPT0tMSYmQS5oZWFkZXJzLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLCExKSxWQS5nZXRBZGFwdGVyKEEuYWRhcHRlcnx8SUEuYWRhcHRlcixBKShBKS50aGVuKGZ1bmN0aW9uKHIpe3JldHVybiBVZShBKSxyLmRhdGE9ZEEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2Usciksci5oZWFkZXJzPWsuZnJvbShyLmhlYWRlcnMpLHJ9LGZ1bmN0aW9uKHIpe3JldHVybiB5QShyKXx8KFVlKEEpLHImJnIucmVzcG9uc2UmJihyLnJlc3BvbnNlLmRhdGE9ZEEuY2FsbChBLEEudHJhbnNmb3JtUmVzcG9uc2Usci5yZXNwb25zZSksci5yZXNwb25zZS5oZWFkZXJzPWsuZnJvbShyLnJlc3BvbnNlLmhlYWRlcnMpKSksUHJvbWlzZS5yZWplY3Qocil9KX12YXIgekE9IjEuMTIuMCI7dmFyIF9BPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoQSxlKT0+e19BW0FdPWZ1bmN0aW9uKHIpe3JldHVybiB0eXBlb2Ygcj09PUF8fCJhIisoZTwxPyJuICI6IiAiKStBfX0pO3ZhciB2dD17fTtfQS50cmFuc2l0aW9uYWw9ZnVuY3Rpb24oZSx0LHIpe2Z1bmN0aW9uIEkobyxpKXtyZXR1cm4iW0F4aW9zIHYiK3pBKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIrbysiJyIraSsocj8iLiAiK3I6IiIpfXJldHVybihvLGksQyk9PntpZihlPT09ITEpdGhyb3cgbmV3IHAoSShpLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKHQ/IiBpbiAiK3Q6IiIpKSxwLkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gdCYmIXZ0W2ldJiYodnRbaV09ITAsY29uc29sZS53YXJuKEkoaSwiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrdCsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSxlP2UobyxpLEMpOiEwfX07X0Euc3BlbGxpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuKHQscik9Pihjb25zb2xlLndhcm4oYCR7cn0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHtlfWApLCEwKX07ZnVuY3Rpb24gWEkoQSxlLHQpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgcCgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIscC5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IHI9T2JqZWN0LmtleXMoQSksST1yLmxlbmd0aDtmb3IoO0ktLSA+MDspe2xldCBvPXJbSV0saT1lW29dO2lmKGkpe2xldCBDPUFbb10sRT1DPT09dm9pZCAwfHxpKEMsbyxBKTtpZihFIT09ITApdGhyb3cgbmV3IHAoIm9wdGlvbiAiK28rIiBtdXN0IGJlICIrRSxwLkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZih0IT09ITApdGhyb3cgbmV3IHAoIlVua25vd24gb3B0aW9uICIrbyxwLkVSUl9CQURfT1BUSU9OKX19dmFyIHdBPXthc3NlcnRPcHRpb25zOlhJLHZhbGlkYXRvcnM6X0F9O3ZhciB4PXdBLnZhbGlkYXRvcnMsYUE9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5kZWZhdWx0cz1lfHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgbGUscmVzcG9uc2U6bmV3IGxlfX1hc3luYyByZXF1ZXN0KGUsdCl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KGUsdCl9Y2F0Y2gocil7aWYociBpbnN0YW5jZW9mIEVycm9yKXtsZXQgST17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShJKTpJPW5ldyBFcnJvcjtsZXQgbz1JLnN0YWNrP0kuc3RhY2sucmVwbGFjZSgvXi4rXG4vLCIiKToiIjt0cnl7ci5zdGFjaz9vJiYhU3RyaW5nKHIuc3RhY2spLmVuZHNXaXRoKG8ucmVwbGFjZSgvXi4rXG4uK1xuLywiIikpJiYoci5zdGFjays9YApgK28pOnIuc3RhY2s9b31jYXRjaHt9fXRocm93IHJ9fV9yZXF1ZXN0KGUsdCl7dHlwZW9mIGU9PSJzdHJpbmciPyh0PXR8fHt9LHQudXJsPWUpOnQ9ZXx8e30sdD1IKHRoaXMuZGVmYXVsdHMsdCk7bGV0e3RyYW5zaXRpb25hbDpyLHBhcmFtc1NlcmlhbGl6ZXI6SSxoZWFkZXJzOm99PXQ7ciE9PXZvaWQgMCYmd0EuYXNzZXJ0T3B0aW9ucyhyLHtzaWxlbnRKU09OUGFyc2luZzp4LnRyYW5zaXRpb25hbCh4LmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOngudHJhbnNpdGlvbmFsKHguYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjp4LnRyYW5zaXRpb25hbCh4LmJvb2xlYW4pfSwhMSksSSE9bnVsbCYmKHMuaXNGdW5jdGlvbihJKT90LnBhcmFtc1NlcmlhbGl6ZXI9e3NlcmlhbGl6ZTpJfTp3QS5hc3NlcnRPcHRpb25zKEkse2VuY29kZTp4LmZ1bmN0aW9uLHNlcmlhbGl6ZTp4LmZ1bmN0aW9ufSwhMCkpLHQuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDB8fCh0aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzIT09dm9pZCAwP3QuYWxsb3dBYnNvbHV0ZVVybHM9dGhpcy5kZWZhdWx0cy5hbGxvd0Fic29sdXRlVXJsczp0LmFsbG93QWJzb2x1dGVVcmxzPSEwKSx3QS5hc3NlcnRPcHRpb25zKHQse2Jhc2VVcmw6eC5zcGVsbGluZygiYmFzZVVSTCIpLHdpdGhYc3JmVG9rZW46eC5zcGVsbGluZygid2l0aFhTUkZUb2tlbiIpfSwhMCksdC5tZXRob2Q9KHQubWV0aG9kfHx0aGlzLmRlZmF1bHRzLm1ldGhvZHx8ImdldCIpLnRvTG93ZXJDYXNlKCk7bGV0IGk9byYmcy5tZXJnZShvLmNvbW1vbixvW3QubWV0aG9kXSk7byYmcy5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLEI9PntkZWxldGUgb1tCXX0pLHQuaGVhZGVycz1rLmNvbmNhdChpLG8pO2xldCBDPVtdLEU9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKGZ1bmN0aW9uKGYpe3R5cGVvZiBmLnJ1bldoZW49PSJmdW5jdGlvbiImJmYucnVuV2hlbih0KT09PSExfHwoRT1FJiZmLnN5bmNocm9ub3VzLEMudW5zaGlmdChmLmZ1bGZpbGxlZCxmLnJlamVjdGVkKSl9KTtsZXQgUT1bXTt0aGlzLmludGVyY2VwdG9ycy5yZXNwb25zZS5mb3JFYWNoKGZ1bmN0aW9uKGYpe1EucHVzaChmLmZ1bGZpbGxlZCxmLnJlamVjdGVkKX0pO2xldCBhLG49MCxjO2lmKCFFKXtsZXQgQj1bWEEuYmluZCh0aGlzKSx2b2lkIDBdO2ZvcihCLnVuc2hpZnQoLi4uQyksQi5wdXNoKC4uLlEpLGM9Qi5sZW5ndGgsYT1Qcm9taXNlLnJlc29sdmUodCk7bjxjOylhPWEudGhlbihCW24rK10sQltuKytdKTtyZXR1cm4gYX1jPUMubGVuZ3RoO2xldCBnPXQ7Zm9yKG49MDtuPGM7KXtsZXQgQj1DW24rK10sZj1DW24rK107dHJ5e2c9QihnKX1jYXRjaChsKXtmLmNhbGwodGhpcyxsKTticmVha319dHJ5e2E9WEEuY2FsbCh0aGlzLGcpfWNhdGNoKEIpe3JldHVybiBQcm9taXNlLnJlamVjdChCKX1mb3Iobj0wLGM9US5sZW5ndGg7bjxjOylhPWEudGhlbihRW24rK10sUVtuKytdKTtyZXR1cm4gYX1nZXRVcmkoZSl7ZT1IKHRoaXMuZGVmYXVsdHMsZSk7bGV0IHQ9REEoZS5iYXNlVVJMLGUudXJsLGUuYWxsb3dBYnNvbHV0ZVVybHMpO3JldHVybiBwQSh0LGUucGFyYW1zLGUucGFyYW1zU2VyaWFsaXplcil9fTtzLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLGZ1bmN0aW9uKGUpe2FBLnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLnJlcXVlc3QoSChyfHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YToocnx8e30pLmRhdGF9KSl9fSk7cy5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyKXtyZXR1cm4gZnVuY3Rpb24obyxpLEMpe3JldHVybiB0aGlzLnJlcXVlc3QoSChDfHx7fSx7bWV0aG9kOmUsaGVhZGVyczpyP3siQ29udGVudC1UeXBlIjoibXVsdGlwYXJ0L2Zvcm0tZGF0YSJ9Ont9LHVybDpvLGRhdGE6aX0pKX19YUEucHJvdG90eXBlW2VdPXQoKSxhQS5wcm90b3R5cGVbZSsiRm9ybSJdPXQoITApfSk7dmFyIEZBPWFBO3ZhciBOZT1jbGFzcyBBe2NvbnN0cnVjdG9yKGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBUeXBlRXJyb3IoImV4ZWN1dG9yIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtsZXQgdDt0aGlzLnByb21pc2U9bmV3IFByb21pc2UoZnVuY3Rpb24obyl7dD1vfSk7bGV0IHI9dGhpczt0aGlzLnByb21pc2UudGhlbihJPT57aWYoIXIuX2xpc3RlbmVycylyZXR1cm47bGV0IG89ci5fbGlzdGVuZXJzLmxlbmd0aDtmb3IoO28tLSA+MDspci5fbGlzdGVuZXJzW29dKEkpO3IuX2xpc3RlbmVycz1udWxsfSksdGhpcy5wcm9taXNlLnRoZW49ST0+e2xldCBvLGk9bmV3IFByb21pc2UoQz0+e3Iuc3Vic2NyaWJlKEMpLG89Q30pLnRoZW4oSSk7cmV0dXJuIGkuY2FuY2VsPWZ1bmN0aW9uKCl7ci51bnN1YnNjcmliZShvKX0saX0sZShmdW5jdGlvbihvLGksQyl7ci5yZWFzb258fChyLnJlYXNvbj1uZXcgcShvLGksQyksdChyLnJlYXNvbikpfSl9dGhyb3dJZlJlcXVlc3RlZCgpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufXN1YnNjcmliZShlKXtpZih0aGlzLnJlYXNvbil7ZSh0aGlzLnJlYXNvbik7cmV0dXJufXRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMucHVzaChlKTp0aGlzLl9saXN0ZW5lcnM9W2VdfXVuc3Vic2NyaWJlKGUpe2lmKCF0aGlzLl9saXN0ZW5lcnMpcmV0dXJuO2xldCB0PXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKGUpO3QhPT0tMSYmdGhpcy5fbGlzdGVuZXJzLnNwbGljZSh0LDEpfXRvQWJvcnRTaWduYWwoKXtsZXQgZT1uZXcgQWJvcnRDb250cm9sbGVyLHQ9cj0+e2UuYWJvcnQocil9O3JldHVybiB0aGlzLnN1YnNjcmliZSh0KSxlLnNpZ25hbC51bnN1YnNjcmliZT0oKT0+dGhpcy51bnN1YnNjcmliZSh0KSxlLnNpZ25hbH1zdGF0aWMgc291cmNlKCl7bGV0IGU7cmV0dXJue3Rva2VuOm5ldyBBKGZ1bmN0aW9uKEkpe2U9SX0pLGNhbmNlbDplfX19LFp0PU5lO2Z1bmN0aW9uIEdlKEEpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gQS5hcHBseShudWxsLHQpfX1mdW5jdGlvbiBiZShBKXtyZXR1cm4gcy5pc09iamVjdChBKSYmQS5pc0F4aW9zRXJyb3I9PT0hMH12YXIgTGU9e0NvbnRpbnVlOjEwMCxTd2l0Y2hpbmdQcm90b2NvbHM6MTAxLFByb2Nlc3Npbmc6MTAyLEVhcmx5SGludHM6MTAzLE9rOjIwMCxDcmVhdGVkOjIwMSxBY2NlcHRlZDoyMDIsTm9uQXV0aG9yaXRhdGl2ZUluZm9ybWF0aW9uOjIwMyxOb0NvbnRlbnQ6MjA0LFJlc2V0Q29udGVudDoyMDUsUGFydGlhbENvbnRlbnQ6MjA2LE11bHRpU3RhdHVzOjIwNyxBbHJlYWR5UmVwb3J0ZWQ6MjA4LEltVXNlZDoyMjYsTXVsdGlwbGVDaG9pY2VzOjMwMCxNb3ZlZFBlcm1hbmVudGx5OjMwMSxGb3VuZDozMDIsU2VlT3RoZXI6MzAzLE5vdE1vZGlmaWVkOjMwNCxVc2VQcm94eTozMDUsVW51c2VkOjMwNixUZW1wb3JhcnlSZWRpcmVjdDozMDcsUGVybWFuZW50UmVkaXJlY3Q6MzA4LEJhZFJlcXVlc3Q6NDAwLFVuYXV0aG9yaXplZDo0MDEsUGF5bWVudFJlcXVpcmVkOjQwMixGb3JiaWRkZW46NDAzLE5vdEZvdW5kOjQwNCxNZXRob2ROb3RBbGxvd2VkOjQwNSxOb3RBY2NlcHRhYmxlOjQwNixQcm94eUF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6NDA3LFJlcXVlc3RUaW1lb3V0OjQwOCxDb25mbGljdDo0MDksR29uZTo0MTAsTGVuZ3RoUmVxdWlyZWQ6NDExLFByZWNvbmRpdGlvbkZhaWxlZDo0MTIsUGF5bG9hZFRvb0xhcmdlOjQxMyxVcmlUb29Mb25nOjQxNCxVbnN1cHBvcnRlZE1lZGlhVHlwZTo0MTUsUmFuZ2VOb3RTYXRpc2ZpYWJsZTo0MTYsRXhwZWN0YXRpb25GYWlsZWQ6NDE3LEltQVRlYXBvdDo0MTgsTWlzZGlyZWN0ZWRSZXF1ZXN0OjQyMSxVbnByb2Nlc3NhYmxlRW50aXR5OjQyMixMb2NrZWQ6NDIzLEZhaWxlZERlcGVuZGVuY3k6NDI0LFRvb0Vhcmx5OjQyNSxVcGdyYWRlUmVxdWlyZWQ6NDI2LFByZWNvbmRpdGlvblJlcXVpcmVkOjQyOCxUb29NYW55UmVxdWVzdHM6NDI5LFJlcXVlc3RIZWFkZXJGaWVsZHNUb29MYXJnZTo0MzEsVW5hdmFpbGFibGVGb3JMZWdhbFJlYXNvbnM6NDUxLEludGVybmFsU2VydmVyRXJyb3I6NTAwLE5vdEltcGxlbWVudGVkOjUwMSxCYWRHYXRld2F5OjUwMixTZXJ2aWNlVW5hdmFpbGFibGU6NTAzLEdhdGV3YXlUaW1lb3V0OjUwNCxIdHRwVmVyc2lvbk5vdFN1cHBvcnRlZDo1MDUsVmFyaWFudEFsc29OZWdvdGlhdGVzOjUwNixJbnN1ZmZpY2llbnRTdG9yYWdlOjUwNyxMb29wRGV0ZWN0ZWQ6NTA4LE5vdEV4dGVuZGVkOjUxMCxOZXR3b3JrQXV0aGVudGljYXRpb25SZXF1aXJlZDo1MTF9O09iamVjdC5lbnRyaWVzKExlKS5mb3JFYWNoKChbQSxlXSk9PntMZVtlXT1BfSk7dmFyIFZ0PUxlO2Z1bmN0aW9uIFh0KEEpe2xldCBlPW5ldyBGQShBKSx0PWxBKEZBLnByb3RvdHlwZS5yZXF1ZXN0LGUpO3JldHVybiBzLmV4dGVuZCh0LEZBLnByb3RvdHlwZSxlLHthbGxPd25LZXlzOiEwfSkscy5leHRlbmQodCxlLG51bGwse2FsbE93bktleXM6ITB9KSx0LmNyZWF0ZT1mdW5jdGlvbihJKXtyZXR1cm4gWHQoSChBLEkpKX0sdH12YXIgUj1YdChJQSk7Ui5BeGlvcz1GQTtSLkNhbmNlbGVkRXJyb3I9cTtSLkNhbmNlbFRva2VuPVp0O1IuaXNDYW5jZWw9eUE7Ui5WRVJTSU9OPXpBO1IudG9Gb3JtRGF0YT1qO1IuQXhpb3NFcnJvcj1wO1IuQ2FuY2VsPVIuQ2FuY2VsZWRFcnJvcjtSLmFsbD1mdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoZSl9O1Iuc3ByZWFkPUdlO1IuaXNBeGlvc0Vycm9yPWJlO1IubWVyZ2VDb25maWc9SDtSLkF4aW9zSGVhZGVycz1rO1IuZm9ybVRvSlNPTj1BPT5XQShzLmlzSFRNTEZvcm0oQSk/bmV3IEZvcm1EYXRhKEEpOkEpO1IuZ2V0QWRhcHRlcj1WQS5nZXRBZGFwdGVyO1IuSHR0cFN0YXR1c0NvZGU9VnQ7Ui5kZWZhdWx0PVI7dmFyIG5BPVI7dmFye0F4aW9zOnJnLEF4aW9zRXJyb3I6SWcsQ2FuY2VsZWRFcnJvcjpvZyxpc0NhbmNlbDppZyxDYW5jZWxUb2tlbjphZyxWRVJTSU9OOm5nLGFsbDpnZyxDYW5jZWw6c2csaXNBeGlvc0Vycm9yOkNnLHNwcmVhZDpCZyx0b0Zvcm1EYXRhOlFnLEF4aW9zSGVhZGVyczpFZyxIdHRwU3RhdHVzQ29kZTpsZyxmb3JtVG9KU09OOmNnLGdldEFkYXB0ZXI6ZmcsbWVyZ2VDb25maWc6dWd9PW5BO2FzeW5jIGZ1bmN0aW9uIHpJKEEsZSl7bGV0IHQ9QSxyPW51bGw7aWYodD09bnVsbClyPW5ldyBXb3JrZXIobmV3IFVSTCgiLi93ZWItd29ya2Vycy9pdGstd2FzbS1waXBlbGluZS53b3JrZXIuanMiLGltcG9ydC5tZXRhLnVybCkse3R5cGU6Im1vZHVsZSJ9KTtlbHNlIGlmKHQuc3RhcnRzV2l0aCgiaHR0cCIpKXtsZXQgST1hd2FpdCBuQS5nZXQodCx7cmVzcG9uc2VUeXBlOiJibG9iIixwYXJhbXM6ZX0pLG89VVJMLmNyZWF0ZU9iamVjdFVSTChJLmRhdGEpO3I9bmV3IFdvcmtlcihvLHt0eXBlOiJtb2R1bGUifSl9ZWxzZSByPW5ldyBXb3JrZXIodCx7dHlwZToibW9kdWxlIn0pO3JldHVybiByfXZhciBSQT16STtmdW5jdGlvbiB6dChBKXtsZXQgZT1nZShBKSx0PUE7cmV0dXJuIHQudGVybWluYXRlZD0hMSx0LndvcmtlclByb3h5PWUsdC5vcmlnaW5hbFRlcm1pbmF0ZT10LnRlcm1pbmF0ZSx0LnRlcm1pbmF0ZT0oKT0+e3QudGVybWluYXRlZD0hMCx0LndvcmtlclByb3h5W25lXSgpLHQub3JpZ2luYWxUZXJtaW5hdGUoKX0se3dvcmtlclByb3h5OmUsd29ya2VyOnR9fWFzeW5jIGZ1bmN0aW9uIF9JKEEsZSx0KXtsZXQgcjtpZihBIT1udWxsKXtsZXQgbz1BO3JldHVybiBvLndvcmtlclByb3h5IT09dm9pZCAwPyhyPW8ud29ya2VyUHJveHkse3dvcmtlclByb3h5OnIsd29ya2VyOm99KTp6dChBKX1sZXQgST1hd2FpdCBSQShlLHQpO3JldHVybiB6dChJKX12YXIgX3Q9X0k7dmFyIFNBLFAsVGUsSmU9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXtUZT1uZXcgVWludDhBcnJheShQLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sJEE9Y2xhc3N7aW5pdCgpe3JldHVybiBTQXx8KHR5cGVvZiBmZXRjaDwidSI/U0E9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIiskdCkudGhlbihlPT5lLmFycmF5QnVmZmVyKCkpLnRoZW4oZT0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoZSxKZSkpLnRoZW4odGhpcy5faW5pdCk6U0E9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oJHQsImJhc2U2NCIpLEplKS50aGVuKHRoaXMuX2luaXQpLFNBKX1faW5pdChlKXtQPWUuaW5zdGFuY2UsSmUuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKGUsdD0wKXtpZighUCl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgcj1lLmJ5dGVMZW5ndGgsST1QLmV4cG9ydHMubWFsbG9jKHIpO1RlLnNldChlLEkpLHQ9dHx8TnVtYmVyKFAuZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKEkscikpO2xldCBvPVAuZXhwb3J0cy5tYWxsb2ModCksaT1QLmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKG8sdCxJLHIpLEM9VGUuc2xpY2UobyxvK2kpO3JldHVybiBQLmV4cG9ydHMuZnJlZShJKSxQLmV4cG9ydHMuZnJlZShvKSxDfX0sJHQ9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgQXI9bmV3ICRBLGVyPSExO2FzeW5jIGZ1bmN0aW9uICRJKEEsZSx0KXtsZXQgcj0idW5rbm93biI7dHlwZW9mIEEhPSJzdHJpbmciP3I9QS5ocmVmOkEuc3RhcnRzV2l0aCgiaHR0cCIpP3I9QTpyPXR5cGVvZiBlPCJ1Ij9gJHtlfS8ke0F9YDpBLHIuZW5kc1dpdGgoIi5qcyIpJiYocj1yLnN1YnN0cmluZygwLHIubGVuZ3RoLTMpKSxyLmVuZHNXaXRoKCIud2FzbSIpJiYocj1yLnN1YnN0cmluZygwLHIubGVuZ3RoLTUpKSxyLmVuZHNXaXRoKCIud2FzbS56c3QiKSYmKHI9ci5zdWJzdHJpbmcoMCxyLmxlbmd0aC05KSk7bGV0IEk9YCR7cn0ud2FzbWAsbz1hd2FpdCBuQS5nZXQoYCR7SX0uenN0YCx7cmVzcG9uc2VUeXBlOiJhcnJheWJ1ZmZlciIscGFyYW1zOnR9KTtlcnx8KGF3YWl0IEFyLmluaXQoKSxlcj0hMCk7bGV0IEM9QXIuZGVjb2RlKG5ldyBVaW50OEFycmF5KG8uZGF0YSkpLmJ1ZmZlcjtyZXR1cm4oYXdhaXQgaW1wb3J0KGAke3J9LmpzYCkpLmRlZmF1bHQoe3dhc21CaW5hcnk6Q30pfXZhciB0cj0kSTt2YXIgcnI9YXN5bmMoKT0+V2ViQXNzZW1ibHkudmFsaWRhdGUobmV3IFVpbnQ4QXJyYXkoWzAsOTcsMTE1LDEwOSwxLDAsMCwwLDEsNSwxLDk2LDAsMSwxMjMsMywyLDEsMCwxMCwxMCwxLDgsMCw2NSwwLDI1MywxNSwyNTMsOTgsMTFdKSk7dmFyIGlyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPT0iZnVuY3Rpb24iLElyPW5ldyBUZXh0RW5jb2Rlcixvcj1uZXcgVGV4dERlY29kZXIoInV0Zi04Iik7ZnVuY3Rpb24gQW8oQSxlKXtsZXQgdD17ZmxhZ3M6InIiLGVuY29kaW5nOiJiaW5hcnkifSxyPUEuZnNfb3BlbihlLHQuZmxhZ3MpLG89QS5mc19zdGF0KGUpLnNpemUsaT1udWxsO2lyP2k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKG8pOmk9bmV3IEFycmF5QnVmZmVyKG8pO2xldCBDPW5ldyBVaW50OEFycmF5KGkpO3JldHVybiBBLmZzX3JlYWQocixDLDAsbywwKSxBLmZzX2Nsb3NlKHIpLEN9ZnVuY3Rpb24gYXIoQSxlLHQpe2xldCByPW51bGw7aXI/cj1uZXcgU2hhcmVkQXJyYXlCdWZmZXIodCk6cj1uZXcgQXJyYXlCdWZmZXIodCk7bGV0IEk9bmV3IFVpbnQ4QXJyYXkociksbz1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsZSx0KTtyZXR1cm4gSS5zZXQobyksSX1mdW5jdGlvbiBTKEEsZSx0LHIpe2xldCBJPTA7cmV0dXJuIGUhPT1udWxsJiYoST1BLmNjYWxsKCJpdGtfd2FzbV9pbnB1dF9hcnJheV9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LHIsZS5idWZmZXIuYnl0ZUxlbmd0aF0pLEEuSEVBUFU4LnNldChuZXcgVWludDhBcnJheShlLmJ1ZmZlciksSSkpLEl9ZnVuY3Rpb24gdihBLGUsdCl7bGV0IHI9SlNPTi5zdHJpbmdpZnkoZSksST1BLmxlbmd0aEJ5dGVzVVRGOChyKSsxLG89QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfanNvbl9hbGxvYyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LEldKTtBLnN0cmluZ1RvVVRGOChyLG8sSSl9ZnVuY3Rpb24gVShBLGUsdCxyKXtsZXQgST1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxlLHRdKSxvPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGUsdF0pLGk9YXIoQSxJLG8pO3JldHVybiBPKHIsaS5idWZmZXIpfWZ1bmN0aW9uIGtBKEEsZSl7bGV0IHQ9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2pzb25fYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiXSxbMCxlXSkscj1BLlVURjhUb1N0cmluZyh0KTtyZXR1cm4gSlNPTi5wYXJzZShyKX1mdW5jdGlvbiBlbyhBLGUsdCxyKXtyIT1udWxsJiZyLmxlbmd0aD4wJiZyLmZvckVhY2goZnVuY3Rpb24oUSxhKXtzd2l0Y2goUS50eXBlKXtjYXNlIHUuVGV4dFN0cmVhbTp7bGV0IG49SXIuZW5jb2RlKFEuZGF0YS5kYXRhKSxjPVMoQSxuLGEsMCksZz17c2l6ZTpuLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWB9O3YoQSxnLGEpO2JyZWFrfWNhc2UgdS5Kc29uQ29tcGF0aWJsZTp7bGV0IG49SXIuZW5jb2RlKEpTT04uc3RyaW5naWZ5KFEuZGF0YSkpLGM9UyhBLG4sYSwwKSxnPXtzaXplOm4uYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YH07dihBLGcsYSk7YnJlYWt9Y2FzZSB1LkJpbmFyeVN0cmVhbTp7bGV0IG49US5kYXRhLmRhdGEsYz1TKEEsbixhLDApLGc9e3NpemU6bi5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gfTt2KEEsZyxhKTticmVha31jYXNlIHUuVGV4dEZpbGU6e0EuZnNfd3JpdGVGaWxlKFEuZGF0YS5wYXRoLFEuZGF0YS5kYXRhKTticmVha31jYXNlIHUuQmluYXJ5RmlsZTp7QS5mc193cml0ZUZpbGUoUS5kYXRhLnBhdGgsUS5kYXRhLmRhdGEpO2JyZWFrfWNhc2UgdS5JbWFnZTp7bGV0IG49US5kYXRhLGM9UyhBLG4uZGF0YSxhLDApLGc9UyhBLG4uZGlyZWN0aW9uLGEsMSksQj10eXBlb2Ygbi5tZXRhZGF0YT8uZW50cmllczwidSI/QXJyYXkuZnJvbShuLm1ldGFkYXRhLmVudHJpZXMoKSk6W10sZj17aW1hZ2VUeXBlOm4uaW1hZ2VUeXBlLG5hbWU6bi5uYW1lLG9yaWdpbjpuLm9yaWdpbixzcGFjaW5nOm4uc3BhY2luZyxkaXJlY3Rpb246YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtnfWAsc2l6ZTpuLnNpemUsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxtZXRhZGF0YTpCfTt2KEEsZixhKTticmVha31jYXNlIHUuTWVzaDp7bGV0IG49US5kYXRhLGM9UyhBLG4ucG9pbnRzLGEsMCksZz1TKEEsbi5jZWxscyxhLDEpLEI9UyhBLG4ucG9pbnREYXRhLGEsMiksZj1TKEEsbi5jZWxsRGF0YSxhLDMpLGw9e21lc2hUeXBlOm4ubWVzaFR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsbnVtYmVyT2ZDZWxsczpuLm51bWJlck9mQ2VsbHMsY2VsbHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtnfWAsY2VsbEJ1ZmZlclNpemU6bi5jZWxsQnVmZmVyU2l6ZSxudW1iZXJPZlBvaW50UGl4ZWxzOm4ubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtCfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOm4ubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gfTt2KEEsbCxhKTticmVha31jYXNlIHUuUG9pbnRTZXQ6e2xldCBuPVEuZGF0YSxjPVMoQSxuLnBvaW50cyxhLDApLGc9UyhBLG4ucG9pbnREYXRhLGEsMSksQj17cG9pbnRTZXRUeXBlOm4ucG9pbnRTZXRUeXBlLG5hbWU6bi5uYW1lLG51bWJlck9mUG9pbnRzOm4ubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Y31gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2d9YH07dihBLEIsYSk7YnJlYWt9Y2FzZSB1LlRyYW5zZm9ybUxpc3Q6e2xldCBuPVEuZGF0YSxjPVtdLGc9MDtuLmZvckVhY2goQj0+e2xldCBmPSIiLGw9IiI7Qi50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGY9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtTKEEsQi5maXhlZFBhcmFtZXRlcnMsYSxnKX1gLGcrPTEsbD1gZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke1MoQSxCLnBhcmFtZXRlcnMsYSxnKX1gLGcrPTEpO2xldCBtPXt0cmFuc2Zvcm1UeXBlOkIudHJhbnNmb3JtVHlwZSxudW1iZXJPZkZpeGVkUGFyYW1ldGVyczpCLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzLG51bWJlck9mUGFyYW1ldGVyczpCLm51bWJlck9mUGFyYW1ldGVycyxuYW1lOkIubmFtZSxpbnB1dFNwYWNlTmFtZTpCLmlucHV0U3BhY2VOYW1lLG91dHB1dFNwYWNlTmFtZTpCLm91dHB1dFNwYWNlTmFtZSxwYXJhbWV0ZXJzOmwsZml4ZWRQYXJhbWV0ZXJzOmZ9O2MucHVzaChtKX0pLHYoQSxjLGEpO2JyZWFrfWNhc2UgdS5Qb2x5RGF0YTp7bGV0IG49US5kYXRhLGM9UyhBLG4ucG9pbnRzLGEsMCksZz1TKEEsbi52ZXJ0aWNlcyxhLDEpLEI9UyhBLG4ubGluZXMsYSwyKSxmPVMoQSxuLnBvbHlnb25zLGEsMyksbD1TKEEsbi50cmlhbmdsZVN0cmlwcyxhLDQpLG09UyhBLG4ucG9pbnREYXRhLGEsNSksTj1TKEEsbi5wb2ludERhdGEsYSw2KSxGPXtwb2x5RGF0YVR5cGU6bi5wb2x5RGF0YVR5cGUsbmFtZTpuLm5hbWUsbnVtYmVyT2ZQb2ludHM6bi5udW1iZXJPZlBvaW50cyxwb2ludHM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtjfWAsdmVydGljZXNCdWZmZXJTaXplOm4udmVydGljZXNCdWZmZXJTaXplLHZlcnRpY2VzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Z31gLGxpbmVzQnVmZmVyU2l6ZTpuLmxpbmVzQnVmZmVyU2l6ZSxsaW5lczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke0J9YCxwb2x5Z29uc0J1ZmZlclNpemU6bi5wb2x5Z29uc0J1ZmZlclNpemUscG9seWdvbnM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtmfWAsdHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplOm4udHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplLHRyaWFuZ2xlU3RyaXBzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mUG9pbnRQaXhlbHM6bi5udW1iZXJPZlBvaW50UGl4ZWxzLHBvaW50RGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke219YCxudW1iZXJPZkNlbGxQaXhlbHM6bi5udW1iZXJPZkNlbGxQaXhlbHMsY2VsbERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtOfWB9O3YoQSxGLGEpO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIGlucHV0IEludGVyZmFjZVR5cGUiKX19KSxBLnJlc2V0TW9kdWxlU3Rkb3V0KCksQS5yZXNldE1vZHVsZVN0ZGVycigpO2xldCBJPUEuc3RhY2tTYXZlKCksbz0wO3RyeXtvPUEuY2FsbE1haW4oZS5zbGljZSgpKX1jYXRjaChRKXt0aHJvdyB0eXBlb2YgUT09Im51bWJlciImJihjb25zb2xlLmxvZygiRXhjZXB0aW9uIHdoaWxlIHJ1bm5pbmcgcGlwZWxpbmU6IiksY29uc29sZS5sb2coInN0ZG91dDoiLEEuZ2V0TW9kdWxlU3Rkb3V0KCkpLGNvbnNvbGUuZXJyb3IoInN0ZGVycjoiLEEuZ2V0TW9kdWxlU3RkZXJyKCkpLHR5cGVvZiBBLmdldEV4Y2VwdGlvbk1lc3NhZ2U8InUiP2NvbnNvbGUuZXJyb3IoImV4Y2VwdGlvbjoiLEEuZ2V0RXhjZXB0aW9uTWVzc2FnZShRKSk6Y29uc29sZS5lcnJvcigiQnVpbGQgbW9kdWxlIGluIERlYnVnIG1vZGUgZm9yIGV4Y2VwdGlvbiBtZXNzYWdlIGluZm9ybWF0aW9uLiIpKSxRfWZpbmFsbHl7QS5zdGFja1Jlc3RvcmUoSSl9bGV0IGk9QS5nZXRNb2R1bGVTdGRvdXQoKSxDPUEuZ2V0TW9kdWxlU3RkZXJyKCksRT1bXTtyZXR1cm4gdCE9bnVsbCYmdC5sZW5ndGg+MCYmbz09PTAmJnQuZm9yRWFjaChmdW5jdGlvbihRLGEpe2xldCBuPW51bGw7c3dpdGNoKFEudHlwZSl7Y2FzZSB1LlRleHRTdHJlYW06e2xldCBnPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGEsMF0pLEI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsYSwwXSksZj1uZXcgVWludDhBcnJheShBLkhFQVBVOC5idWZmZXIsZyxCKTtuPXtkYXRhOm9yLmRlY29kZShmKX07YnJlYWt9Y2FzZSB1Lkpzb25Db21wYXRpYmxlOntsZXQgZz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxhLDBdKSxCPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLGEsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGcsQik7bj1KU09OLnBhcnNlKG9yLmRlY29kZShmKSk7YnJlYWt9Y2FzZSB1LkJpbmFyeVN0cmVhbTp7bGV0IGc9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsYSwwXSksQj1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxhLDBdKTtuPXtkYXRhOmFyKEEsZyxCKX07YnJlYWt9Y2FzZSB1LlRleHRGaWxlOntuPXtwYXRoOlEuZGF0YS5wYXRoLGRhdGE6QS5mc19yZWFkRmlsZShRLmRhdGEucGF0aCx7ZW5jb2Rpbmc6InV0ZjgifSl9O2JyZWFrfWNhc2UgdS5CaW5hcnlGaWxlOntuPXtwYXRoOlEuZGF0YS5wYXRoLGRhdGE6QW8oQSxRLmRhdGEucGF0aCl9O2JyZWFrfWNhc2UgdS5JbWFnZTp7bGV0IGc9a0EoQSxhKTtnLmRhdGE9VShBLGEsMCxnLmltYWdlVHlwZS5jb21wb25lbnRUeXBlKSxnLmRpcmVjdGlvbj1VKEEsYSwxLFguRmxvYXQ2NCksZy5tZXRhZGF0YT1uZXcgTWFwKGcubWV0YWRhdGEpLG49ZzticmVha31jYXNlIHUuTWVzaDp7bGV0IGc9a0EoQSxhKTtnLm51bWJlck9mUG9pbnRzPjA/Zy5wb2ludHM9VShBLGEsMCxnLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSk6Zy5wb2ludHM9TyhnLm1lc2hUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGcubnVtYmVyT2ZDZWxscz4wP2cuY2VsbHM9VShBLGEsMSxnLm1lc2hUeXBlLmNlbGxDb21wb25lbnRUeXBlKTpnLmNlbGxzPU8oZy5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGcubnVtYmVyT2ZQb2ludFBpeGVscz4wP2cucG9pbnREYXRhPVUoQSxhLDIsZy5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Zy5wb2ludERhdGE9TyhnLm1lc2hUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksZy5udW1iZXJPZkNlbGxQaXhlbHM+MD9nLmNlbGxEYXRhPVUoQSxhLDMsZy5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlKTpnLmNlbGxEYXRhPU8oZy5tZXNoVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksbj1nO2JyZWFrfWNhc2UgdS5Qb2ludFNldDp7bGV0IGc9a0EoQSxhKTtnLm51bWJlck9mUG9pbnRzPjA/Zy5wb2ludHM9VShBLGEsMCxnLnBvaW50U2V0VHlwZS5wb2ludENvbXBvbmVudFR5cGUpOmcucG9pbnRzPU8oZy5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksZy5udW1iZXJPZlBvaW50UGl4ZWxzPjA/Zy5wb2ludERhdGE9VShBLGEsMSxnLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6Zy5wb2ludERhdGE9TyhnLnBvaW50U2V0VHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLG49ZzticmVha31jYXNlIHUuVHJhbnNmb3JtTGlzdDp7bGV0IGc9a0EoQSxhKSxCPTA7Zy5mb3JFYWNoKChmLGwpPT57Zi50cmFuc2Zvcm1UeXBlLnRyYW5zZm9ybVBhcmFtZXRlcml6YXRpb24hPT0iQ29tcG9zaXRlIiYmKGYubnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM+MCYmKGdbbF0uZml4ZWRQYXJhbWV0ZXJzPVUoQSxhLEIsWC5GbG9hdDY0KSksQis9MSxmLm51bWJlck9mUGFyYW1ldGVycz4wJiYoZ1tsXS5wYXJhbWV0ZXJzPVUoQSxhLEIsZi50cmFuc2Zvcm1UeXBlLnBhcmFtZXRlcnNWYWx1ZVR5cGUpKSxCKz0xKX0pLG49ZzticmVha31jYXNlIHUuUG9seURhdGE6e2xldCBnPWtBKEEsYSk7Zy5udW1iZXJPZlBvaW50cz4wP2cucG9pbnRzPVUoQSxhLDAsWC5GbG9hdDMyKTpnLnBvaW50cz1uZXcgRmxvYXQzMkFycmF5LGcudmVydGljZXNCdWZmZXJTaXplPjA/Zy52ZXJ0aWNlcz1VKEEsYSwxLGIuVUludDMyKTpnLnZlcnRpY2VzPW5ldyBVaW50MzJBcnJheSxnLmxpbmVzQnVmZmVyU2l6ZT4wP2cubGluZXM9VShBLGEsMixiLlVJbnQzMik6Zy5saW5lcz1uZXcgVWludDMyQXJyYXksZy5wb2x5Z29uc0J1ZmZlclNpemU+MD9nLnBvbHlnb25zPVUoQSxhLDMsYi5VSW50MzIpOmcucG9seWdvbnM9bmV3IFVpbnQzMkFycmF5LGcudHJpYW5nbGVTdHJpcHNCdWZmZXJTaXplPjA/Zy50cmlhbmdsZVN0cmlwcz1VKEEsYSw0LGIuVUludDMyKTpnLnRyaWFuZ2xlU3RyaXBzPW5ldyBVaW50MzJBcnJheSxnLm51bWJlck9mUG9pbnRQaXhlbHM+MD9nLnBvaW50RGF0YT1VKEEsYSw1LGcucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlKTpnLnBvaW50RGF0YT1PKGcucG9seURhdGFUeXBlLnBvaW50UGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksZy5udW1iZXJPZkNlbGxQaXhlbHM+MD9nLmNlbGxEYXRhPVUoQSxhLDYsZy5wb2x5RGF0YVR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6Zy5jZWxsRGF0YT1PKGcucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxuPWc7YnJlYWt9ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5zdXBwb3J0ZWQgb3V0cHV0IEludGVyZmFjZVR5cGUiKX1sZXQgYz17dHlwZTpRLnR5cGUsZGF0YTpufTtFLnB1c2goYyl9KSx7cmV0dXJuVmFsdWU6byxzdGRvdXQ6aSxzdGRlcnI6QyxvdXRwdXRzOkV9fXZhciBucj1lbzt2YXIgdG89dHlwZW9mIGdsb2JhbFRoaXMuU2hhcmVkQXJyYXlCdWZmZXI8InUiO2Z1bmN0aW9uIHJvKEEsZSl7aWYoQT09bnVsbClyZXR1cm5bXTtsZXQgdD1bXTtmb3IobGV0IHI9MDtyPEEubGVuZ3RoO3IrKyl7bGV0IEk9SW8oQVtyXSxlKTtJIT09bnVsbCYmdC5wdXNoKEkpfXJldHVybiB0fWZ1bmN0aW9uIElvKEEsZSl7aWYoQT09bnVsbClyZXR1cm4gbnVsbDtsZXQgdD1udWxsO3JldHVybiBBLmJ1ZmZlciE9PXZvaWQgMD90PUEuYnVmZmVyOkEuYnl0ZUxlbmd0aCE9PXZvaWQgMCYmKHQ9QSksdG8mJnQgaW5zdGFuY2VvZiBTaGFyZWRBcnJheUJ1ZmZlcj9udWxsOmU/dDp0LnNsaWNlKDApfXZhciBncj1ybztmdW5jdGlvbiBvbyhBKXtyZXR1cm5bQS5kYXRhLEEuZGlyZWN0aW9uXX12YXIgc3I9b287ZnVuY3Rpb24gaW8oQSl7cmV0dXJuW0EucG9pbnRzLEEucG9pbnREYXRhLEEuY2VsbHMsQS5jZWxsRGF0YV19dmFyIENyPWlvO2Z1bmN0aW9uIGFvKEEpe3JldHVybltBLnBvaW50cyxBLnZlcnRpY2VzLEEubGluZXMsQS5wb2x5Z29ucyxBLnRyaWFuZ2xlU3RyaXBzLEEucG9pbnREYXRhLEEuY2VsbERhdGFdfXZhciBCcj1hbzt2YXIgbm87ZnVuY3Rpb24gQWUoKXtyZXR1cm4gbm99dmFyIGdvO2Z1bmN0aW9uIFFyKCl7cmV0dXJuIGdvfXZhciBzbztmdW5jdGlvbiBlZSgpe3JldHVybiBzb312YXIgTWU9bmV3IE1hcDtmdW5jdGlvbiBDbygpe2xldCBBPWVlKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bnVsbCksQX1mdW5jdGlvbiBFcigpe2xldCBBPUFlKCk7cmV0dXJuIHR5cGVvZiBBPiJ1IiYmKEE9bmV3IFVSTCgiL3BpcGVsaW5lcyIsZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luKS5ocmVmKSxBfWZ1bmN0aW9uIHRlKCl7bGV0IEE9UXIoKTtyZXR1cm4gdHlwZW9mIEE+InUiJiYoQT17fSksQX1hc3luYyBmdW5jdGlvbiBCbyhBLGUsdCl7bGV0IHI9QSxJPUE7aWYodHlwZW9mIEEhPSJzdHJpbmciJiYocj1uZXcgVVJMKEEuaHJlZiksST1yLmhyZWYpLE1lLmhhcyhJKSlyZXR1cm4gTWUuZ2V0KEkpO3tsZXQgbz1hd2FpdCB0cihBLGU/LnRvU3RyaW5nKCk/P0VyKCksdD8/dGUoKSk7cmV0dXJuIE1lLnNldChJLG8pLG99fWFzeW5jIGZ1bmN0aW9uIFFvKEEsZSx0LHIsSSl7aWYoIWF3YWl0IHJyKCkpe2xldCBsPSJXZWJBc3NlbWJseSBTSU1EIHN1cHBvcnQgaXMgcmVxdWlyZWQgLS0gcGxlYXNlIHVwZGF0ZSB5b3VyIGJyb3dzZXIuIjt0aHJvdyBhbGVydChsKSxuZXcgRXJyb3IobCl9bGV0IG89ST8ud2ViV29ya2VyPz9udWxsO2lmKG89PT0hMSl7bGV0IGw9YXdhaXQgQm8oQS50b1N0cmluZygpLEk/LnBpcGVsaW5lQmFzZVVybCxJPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz90ZSgpKTtyZXR1cm4gbnIobCxlLHQscil9bGV0IGk9byxDPUk/LnBpcGVsaW5lV29ya2VyVXJsPz9DbygpLEU9dHlwZW9mIEMhPSJzdHJpbmciJiZ0eXBlb2YgQz8uaHJlZjwidSI/Qy5ocmVmOkMse3dvcmtlclByb3h5OlEsd29ya2VyOmF9PWF3YWl0IF90KGksRSxJPy5waXBlbGluZVF1ZXJ5UGFyYW1zPz90ZSgpKTtpPWE7bGV0IG49W107ciE9bnVsbCYmci5sZW5ndGg+MCYmci5mb3JFYWNoKGZ1bmN0aW9uKGwpe2lmKGwudHlwZT09PXUuQmluYXJ5U3RyZWFtKXtsZXQgbT1sLmRhdGEuZGF0YTtuLnB1c2gobSl9ZWxzZSBpZihsLnR5cGU9PT11LkJpbmFyeUZpbGUpe2xldCBtPWwuZGF0YS5kYXRhO24ucHVzaChtKX1lbHNlIGlmKGwudHlwZT09PXUuSW1hZ2Upe2xldCBtPWwuZGF0YTttLmRhdGEhPT1udWxsJiZuLnB1c2goLi4uc3IobSkpfWVsc2UgaWYobC50eXBlPT09dS5NZXNoKXtsZXQgbT1sLmRhdGE7bi5wdXNoKC4uLkNyKG0pKX1lbHNlIGlmKGwudHlwZT09PXUuUG9seURhdGEpe2xldCBtPWwuZGF0YTtuLnB1c2goLi4uQnIobSkpfX0pO2xldCBjPUk/LnBpcGVsaW5lQmFzZVVybD8/RXIoKSxnPXR5cGVvZiBjIT0ic3RyaW5nIiYmdHlwZW9mIGM/LmhyZWY8InUiP2MuaHJlZjpjLEI9ciE9bnVsbD9zZShyLGdyKG4sST8ubm9Db3B5KSk6bnVsbCxmPWF3YWl0IFEucnVuUGlwZWxpbmUoQS50b1N0cmluZygpLGcsZSx0LEIsST8ucGlwZWxpbmVRdWVyeVBhcmFtcz8/dGUoKSk7cmV0dXJue3JldHVyblZhbHVlOmYucmV0dXJuVmFsdWUsc3Rkb3V0OmYuc3Rkb3V0LHN0ZGVycjpmLnN0ZGVycixvdXRwdXRzOmYub3V0cHV0cyx3ZWJXb3JrZXI6aX19dmFyIHk9UW87dmFyIEVvPW51bGw7ZnVuY3Rpb24gbHIoKXtyZXR1cm4gRW99dmFyIGxvPW5ldyBNYXAoW10pLGdBPWxvO3ZhciBjbz1uZXcgTWFwKFtbImg1IiwiaGRmNSJdLFsiaGRmNSIsImhkZjUiXSxbInR4dCIsInR4dCJdLFsibWF0IiwibWF0Il0sWyJ4Zm0iLCJtbmMiXSxbIml3dCIsIndhc20iXSxbIml3dC5jYm9yIiwid2FzbSJdLFsiaXd0LmNib3IuenN0Iiwid2FzbS16c3RkIl1dKSxzQT1jbzt2YXIgSGUsZm89YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vQGl0ay13YXNtL3RyYW5zZm9ybS1pb0Ake29lfS9kaXN0L3BpcGVsaW5lc2A7ZnVuY3Rpb24gQnMoQSl7SGU9QX1mdW5jdGlvbiBoKCl7aWYodHlwZW9mIEhlPCJ1IilyZXR1cm4gSGU7bGV0IEE9QWUoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6Zm99dmFyIFllLHVvPW51bGw7ZnVuY3Rpb24gY3IoQSl7WWU9QX1mdW5jdGlvbiBkKCl7aWYodHlwZW9mIFllPCJ1IilyZXR1cm4gWWU7bGV0IEE9ZWUoKTtyZXR1cm4gdHlwZW9mIEE8InUiP0E6dW99dmFyIENBPW51bGw7YXN5bmMgZnVuY3Rpb24gZnIoKXtsZXQgQT1kKCksZT10eXBlb2YgQSE9InN0cmluZyImJnR5cGVvZiBBPy5ocmVmPCJ1Ij9BLmhyZWY6QTtDQT1hd2FpdCBSQShlKX1mdW5jdGlvbiBwcyhBKXtDQT1BfWFzeW5jIGZ1bmN0aW9uIEQoKXtpZihDQSE9PW51bGwpcmV0dXJuIENBLnRlcm1pbmF0ZWQmJmF3YWl0IGZyKCksQ0E7bGV0IEE9bHIoKTtyZXR1cm4gQSE9PW51bGw/QTooYXdhaXQgZnIoKSxDQSl9YXN5bmMgZnVuY3Rpb24gcG8oQSxlPXt9KXtsZXQgdD1be3R5cGU6dS5Kc29uQ29tcGF0aWJsZX0se3R5cGU6dS5UcmFuc2Zvcm1MaXN0fV0scj1BO2lmKEEgaW5zdGFuY2VvZiBGaWxlKXtsZXQgbD1hd2FpdCBBLmFycmF5QnVmZmVyKCk7cj17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShsKX19bGV0IEk9W3t0eXBlOnUuQmluYXJ5RmlsZSxkYXRhOnJ9XSxvPVtdLGk9ci5wYXRoO28ucHVzaChpKSxvLnB1c2goIjAiKSxvLnB1c2goIjEiKSxvLnB1c2goIi0tbWVtb3J5LWlvIiksZS5mbG9hdFBhcmFtZXRlcnMmJmUuZmxvYXRQYXJhbWV0ZXJzJiZvLnB1c2goIi0tZmxvYXQtcGFyYW1ldGVycyIpO2xldCBRPSJoZGY1LXJlYWQtdHJhbnNmb3JtIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCBEKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpjLHN0ZGVycjpnLG91dHB1dHM6Qn09YXdhaXQgeShRLG8sdCxJLHtwaXBlbGluZUJhc2VVcmw6aCgpLHBpcGVsaW5lV29ya2VyVXJsOmQoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoYyE9PTAmJmchPT0iIil0aHJvdyBuZXcgRXJyb3IoZyk7cmV0dXJue3dlYldvcmtlcjpuLGNvdWxkUmVhZDpCWzBdPy5kYXRhLHRyYW5zZm9ybTpCWzFdPy5kYXRhfX12YXIgT2U9cG87YXN5bmMgZnVuY3Rpb24gbW8oQSxlLHQ9e30pe2xldCByPVt7dHlwZTp1Lkpzb25Db21wYXRpYmxlfSx7dHlwZTp1LkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sST1be3R5cGU6dS5UcmFuc2Zvcm1MaXN0LGRhdGE6QX1dLG89W107by5wdXNoKCIwIiksby5wdXNoKCIwIik7bGV0IEU9ZTtvLnB1c2goRSksby5wdXNoKCItLW1lbW9yeS1pbyIpLHQuZmxvYXRQYXJhbWV0ZXJzJiZ0LmZsb2F0UGFyYW1ldGVycyYmby5wdXNoKCItLWZsb2F0LXBhcmFtZXRlcnMiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZvLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IFE9ImhkZjUtd3JpdGUtdHJhbnNmb3JtIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCBEKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpjLHN0ZGVycjpnLG91dHB1dHM6Qn09YXdhaXQgeShRLG8scixJLHtwaXBlbGluZUJhc2VVcmw6aCgpLHBpcGVsaW5lV29ya2VyVXJsOmQoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoYyE9PTAmJmchPT0iIil0aHJvdyBuZXcgRXJyb3IoZyk7cmV0dXJue3dlYldvcmtlcjpuLGNvdWxkV3JpdGU6QlswXT8uZGF0YSxzZXJpYWxpemVkVHJhbnNmb3JtOkJbMV0/LmRhdGF9fXZhciBxZT1tbzthc3luYyBmdW5jdGlvbiB5byhBLGU9e30pe2xldCB0PVt7dHlwZTp1Lkpzb25Db21wYXRpYmxlfSx7dHlwZTp1LlRyYW5zZm9ybUxpc3R9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBsPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGwpfX1sZXQgST1be3R5cGU6dS5CaW5hcnlGaWxlLGRhdGE6cn1dLG89W10saT1yLnBhdGg7by5wdXNoKGkpLG8ucHVzaCgiMCIpLG8ucHVzaCgiMSIpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSxlLmZsb2F0UGFyYW1ldGVycyYmZS5mbG9hdFBhcmFtZXRlcnMmJm8ucHVzaCgiLS1mbG9hdC1wYXJhbWV0ZXJzIik7bGV0IFE9Im1hdC1yZWFkLXRyYW5zZm9ybSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgRCgpKTtsZXR7d2ViV29ya2VyOm4scmV0dXJuVmFsdWU6YyxzdGRlcnI6ZyxvdXRwdXRzOkJ9PWF3YWl0IHkoUSxvLHQsSSx7cGlwZWxpbmVCYXNlVXJsOmgoKSxwaXBlbGluZVdvcmtlclVybDpkKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGMhPT0wJiZnIT09IiIpdGhyb3cgbmV3IEVycm9yKGcpO3JldHVybnt3ZWJXb3JrZXI6bixjb3VsZFJlYWQ6QlswXT8uZGF0YSx0cmFuc2Zvcm06QlsxXT8uZGF0YX19dmFyIHhlPXlvO2FzeW5jIGZ1bmN0aW9uIGhvKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6dS5Kc29uQ29tcGF0aWJsZX0se3R5cGU6dS5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLEk9W3t0eXBlOnUuVHJhbnNmb3JtTGlzdCxkYXRhOkF9XSxvPVtdO28ucHVzaCgiMCIpLG8ucHVzaCgiMCIpO2xldCBFPWU7by5wdXNoKEUpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSx0LmZsb2F0UGFyYW1ldGVycyYmdC5mbG9hdFBhcmFtZXRlcnMmJm8ucHVzaCgiLS1mbG9hdC1wYXJhbWV0ZXJzIiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmby5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBRPSJtYXQtd3JpdGUtdHJhbnNmb3JtIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCBEKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpjLHN0ZGVycjpnLG91dHB1dHM6Qn09YXdhaXQgeShRLG8scixJLHtwaXBlbGluZUJhc2VVcmw6aCgpLHBpcGVsaW5lV29ya2VyVXJsOmQoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoYyE9PTAmJmchPT0iIil0aHJvdyBuZXcgRXJyb3IoZyk7cmV0dXJue3dlYldvcmtlcjpuLGNvdWxkV3JpdGU6QlswXT8uZGF0YSxzZXJpYWxpemVkVHJhbnNmb3JtOkJbMV0/LmRhdGF9fXZhciBQZT1obzthc3luYyBmdW5jdGlvbiBEbyhBLGU9e30pe2xldCB0PVt7dHlwZTp1Lkpzb25Db21wYXRpYmxlfSx7dHlwZTp1LlRyYW5zZm9ybUxpc3R9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBsPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGwpfX1sZXQgST1be3R5cGU6dS5CaW5hcnlGaWxlLGRhdGE6cn1dLG89W10saT1yLnBhdGg7by5wdXNoKGkpLG8ucHVzaCgiMCIpLG8ucHVzaCgiMSIpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSxlLmZsb2F0UGFyYW1ldGVycyYmZS5mbG9hdFBhcmFtZXRlcnMmJm8ucHVzaCgiLS1mbG9hdC1wYXJhbWV0ZXJzIik7bGV0IFE9Im1uYy1yZWFkLXRyYW5zZm9ybSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgRCgpKTtsZXR7d2ViV29ya2VyOm4scmV0dXJuVmFsdWU6YyxzdGRlcnI6ZyxvdXRwdXRzOkJ9PWF3YWl0IHkoUSxvLHQsSSx7cGlwZWxpbmVCYXNlVXJsOmgoKSxwaXBlbGluZVdvcmtlclVybDpkKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGMhPT0wJiZnIT09IiIpdGhyb3cgbmV3IEVycm9yKGcpO3JldHVybnt3ZWJXb3JrZXI6bixjb3VsZFJlYWQ6QlswXT8uZGF0YSx0cmFuc2Zvcm06QlsxXT8uZGF0YX19dmFyIEtlPURvO2FzeW5jIGZ1bmN0aW9uIHdvKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6dS5Kc29uQ29tcGF0aWJsZX0se3R5cGU6dS5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLEk9W3t0eXBlOnUuVHJhbnNmb3JtTGlzdCxkYXRhOkF9XSxvPVtdO28ucHVzaCgiMCIpLG8ucHVzaCgiMCIpO2xldCBFPWU7by5wdXNoKEUpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSx0LmZsb2F0UGFyYW1ldGVycyYmdC5mbG9hdFBhcmFtZXRlcnMmJm8ucHVzaCgiLS1mbG9hdC1wYXJhbWV0ZXJzIiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmby5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBRPSJtbmMtd3JpdGUtdHJhbnNmb3JtIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCBEKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpjLHN0ZGVycjpnLG91dHB1dHM6Qn09YXdhaXQgeShRLG8scixJLHtwaXBlbGluZUJhc2VVcmw6aCgpLHBpcGVsaW5lV29ya2VyVXJsOmQoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoYyE9PTAmJmchPT0iIil0aHJvdyBuZXcgRXJyb3IoZyk7cmV0dXJue3dlYldvcmtlcjpuLGNvdWxkV3JpdGU6QlswXT8uZGF0YSxzZXJpYWxpemVkVHJhbnNmb3JtOkJbMV0/LmRhdGF9fXZhciBXZT13bzthc3luYyBmdW5jdGlvbiBGbyhBLGU9e30pe2xldCB0PVt7dHlwZTp1Lkpzb25Db21wYXRpYmxlfSx7dHlwZTp1LlRyYW5zZm9ybUxpc3R9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBsPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGwpfX1sZXQgST1be3R5cGU6dS5CaW5hcnlGaWxlLGRhdGE6cn1dLG89W10saT1yLnBhdGg7by5wdXNoKGkpLG8ucHVzaCgiMCIpLG8ucHVzaCgiMSIpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSxlLmZsb2F0UGFyYW1ldGVycyYmZS5mbG9hdFBhcmFtZXRlcnMmJm8ucHVzaCgiLS1mbG9hdC1wYXJhbWV0ZXJzIik7bGV0IFE9InR4dC1yZWFkLXRyYW5zZm9ybSIsYT1lPy53ZWJXb3JrZXI7YT09PXZvaWQgMCYmKGE9YXdhaXQgRCgpKTtsZXR7d2ViV29ya2VyOm4scmV0dXJuVmFsdWU6YyxzdGRlcnI6ZyxvdXRwdXRzOkJ9PWF3YWl0IHkoUSxvLHQsSSx7cGlwZWxpbmVCYXNlVXJsOmgoKSxwaXBlbGluZVdvcmtlclVybDpkKCksd2ViV29ya2VyOmEsbm9Db3B5OmU/Lm5vQ29weX0pO2lmKGMhPT0wJiZnIT09IiIpdGhyb3cgbmV3IEVycm9yKGcpO3JldHVybnt3ZWJXb3JrZXI6bixjb3VsZFJlYWQ6QlswXT8uZGF0YSx0cmFuc2Zvcm06QlsxXT8uZGF0YX19dmFyIGplPUZvO2FzeW5jIGZ1bmN0aW9uIFJvKEEsZSx0PXt9KXtsZXQgcj1be3R5cGU6dS5Kc29uQ29tcGF0aWJsZX0se3R5cGU6dS5CaW5hcnlGaWxlLGRhdGE6e3BhdGg6ZSxkYXRhOm5ldyBVaW50OEFycmF5fX1dLEk9W3t0eXBlOnUuVHJhbnNmb3JtTGlzdCxkYXRhOkF9XSxvPVtdO28ucHVzaCgiMCIpLG8ucHVzaCgiMCIpO2xldCBFPWU7by5wdXNoKEUpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSx0LmZsb2F0UGFyYW1ldGVycyYmdC5mbG9hdFBhcmFtZXRlcnMmJm8ucHVzaCgiLS1mbG9hdC1wYXJhbWV0ZXJzIiksdC51c2VDb21wcmVzc2lvbiYmdC51c2VDb21wcmVzc2lvbiYmby5wdXNoKCItLXVzZS1jb21wcmVzc2lvbiIpO2xldCBRPSJ0eHQtd3JpdGUtdHJhbnNmb3JtIixhPXQ/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCBEKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpjLHN0ZGVycjpnLG91dHB1dHM6Qn09YXdhaXQgeShRLG8scixJLHtwaXBlbGluZUJhc2VVcmw6aCgpLHBpcGVsaW5lV29ya2VyVXJsOmQoKSx3ZWJXb3JrZXI6YSxub0NvcHk6dD8ubm9Db3B5fSk7aWYoYyE9PTAmJmchPT0iIil0aHJvdyBuZXcgRXJyb3IoZyk7cmV0dXJue3dlYldvcmtlcjpuLGNvdWxkV3JpdGU6QlswXT8uZGF0YSxzZXJpYWxpemVkVHJhbnNmb3JtOkJbMV0/LmRhdGF9fXZhciB2ZT1Sbzthc3luYyBmdW5jdGlvbiBTbyhBLGU9e30pe2xldCB0PVt7dHlwZTp1Lkpzb25Db21wYXRpYmxlfSx7dHlwZTp1LlRyYW5zZm9ybUxpc3R9XSxyPUE7aWYoQSBpbnN0YW5jZW9mIEZpbGUpe2xldCBsPWF3YWl0IEEuYXJyYXlCdWZmZXIoKTtyPXtwYXRoOkEubmFtZSxkYXRhOm5ldyBVaW50OEFycmF5KGwpfX1sZXQgST1be3R5cGU6dS5CaW5hcnlGaWxlLGRhdGE6cn1dLG89W10saT1yLnBhdGg7by5wdXNoKGkpLG8ucHVzaCgiMCIpLG8ucHVzaCgiMSIpLG8ucHVzaCgiLS1tZW1vcnktaW8iKSxlLmZsb2F0UGFyYW1ldGVycyYmZS5mbG9hdFBhcmFtZXRlcnMmJm8ucHVzaCgiLS1mbG9hdC1wYXJhbWV0ZXJzIik7bGV0IFE9Indhc20tcmVhZC10cmFuc2Zvcm0iLGE9ZT8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IEQoKSk7bGV0e3dlYldvcmtlcjpuLHJldHVyblZhbHVlOmMsc3RkZXJyOmcsb3V0cHV0czpCfT1hd2FpdCB5KFEsbyx0LEkse3BpcGVsaW5lQmFzZVVybDpoKCkscGlwZWxpbmVXb3JrZXJVcmw6ZCgpLHdlYldvcmtlcjphLG5vQ29weTplPy5ub0NvcHl9KTtpZihjIT09MCYmZyE9PSIiKXRocm93IG5ldyBFcnJvcihnKTtyZXR1cm57d2ViV29ya2VyOm4sY291bGRSZWFkOkJbMF0/LmRhdGEsdHJhbnNmb3JtOkJbMV0/LmRhdGF9fXZhciBaZT1Tbzthc3luYyBmdW5jdGlvbiBrbyhBLGUsdD17fSl7bGV0IHI9W3t0eXBlOnUuSnNvbkNvbXBhdGlibGV9LHt0eXBlOnUuQmluYXJ5RmlsZSxkYXRhOntwYXRoOmUsZGF0YTpuZXcgVWludDhBcnJheX19XSxJPVt7dHlwZTp1LlRyYW5zZm9ybUxpc3QsZGF0YTpBfV0sbz1bXTtvLnB1c2goIjAiKSxvLnB1c2goIjAiKTtsZXQgRT1lO28ucHVzaChFKSxvLnB1c2goIi0tbWVtb3J5LWlvIiksdC5mbG9hdFBhcmFtZXRlcnMmJnQuZmxvYXRQYXJhbWV0ZXJzJiZvLnB1c2goIi0tZmxvYXQtcGFyYW1ldGVycyIpLHQudXNlQ29tcHJlc3Npb24mJnQudXNlQ29tcHJlc3Npb24mJm8ucHVzaCgiLS11c2UtY29tcHJlc3Npb24iKTtsZXQgUT0id2FzbS13cml0ZS10cmFuc2Zvcm0iLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IEQoKSk7bGV0e3dlYldvcmtlcjpuLHJldHVyblZhbHVlOmMsc3RkZXJyOmcsb3V0cHV0czpCfT1hd2FpdCB5KFEsbyxyLEkse3BpcGVsaW5lQmFzZVVybDpoKCkscGlwZWxpbmVXb3JrZXJVcmw6ZCgpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihjIT09MCYmZyE9PSIiKXRocm93IG5ldyBFcnJvcihnKTtyZXR1cm57d2ViV29ya2VyOm4sY291bGRXcml0ZTpCWzBdPy5kYXRhLHNlcmlhbGl6ZWRUcmFuc2Zvcm06QlsxXT8uZGF0YX19dmFyIFZlPWtvO2FzeW5jIGZ1bmN0aW9uIFVvKEEsZT17fSl7bGV0IHQ9W3t0eXBlOnUuSnNvbkNvbXBhdGlibGV9LHt0eXBlOnUuVHJhbnNmb3JtTGlzdH1dLHI9QTtpZihBIGluc3RhbmNlb2YgRmlsZSl7bGV0IGw9YXdhaXQgQS5hcnJheUJ1ZmZlcigpO3I9e3BhdGg6QS5uYW1lLGRhdGE6bmV3IFVpbnQ4QXJyYXkobCl9fWxldCBJPVt7dHlwZTp1LkJpbmFyeUZpbGUsZGF0YTpyfV0sbz1bXSxpPXIucGF0aDtvLnB1c2goaSksby5wdXNoKCIwIiksby5wdXNoKCIxIiksby5wdXNoKCItLW1lbW9yeS1pbyIpLGUuZmxvYXRQYXJhbWV0ZXJzJiZlLmZsb2F0UGFyYW1ldGVycyYmby5wdXNoKCItLWZsb2F0LXBhcmFtZXRlcnMiKTtsZXQgUT0id2FzbS16c3RkLXJlYWQtdHJhbnNmb3JtIixhPWU/LndlYldvcmtlcjthPT09dm9pZCAwJiYoYT1hd2FpdCBEKCkpO2xldHt3ZWJXb3JrZXI6bixyZXR1cm5WYWx1ZTpjLHN0ZGVycjpnLG91dHB1dHM6Qn09YXdhaXQgeShRLG8sdCxJLHtwaXBlbGluZUJhc2VVcmw6aCgpLHBpcGVsaW5lV29ya2VyVXJsOmQoKSx3ZWJXb3JrZXI6YSxub0NvcHk6ZT8ubm9Db3B5fSk7aWYoYyE9PTAmJmchPT0iIil0aHJvdyBuZXcgRXJyb3IoZyk7cmV0dXJue3dlYldvcmtlcjpuLGNvdWxkUmVhZDpCWzBdPy5kYXRhLHRyYW5zZm9ybTpCWzFdPy5kYXRhfX12YXIgWGU9VW87YXN5bmMgZnVuY3Rpb24gTm8oQSxlLHQ9e30pe2xldCByPVt7dHlwZTp1Lkpzb25Db21wYXRpYmxlfSx7dHlwZTp1LkJpbmFyeUZpbGUsZGF0YTp7cGF0aDplLGRhdGE6bmV3IFVpbnQ4QXJyYXl9fV0sST1be3R5cGU6dS5UcmFuc2Zvcm1MaXN0LGRhdGE6QX1dLG89W107by5wdXNoKCIwIiksby5wdXNoKCIwIik7bGV0IEU9ZTtvLnB1c2goRSksby5wdXNoKCItLW1lbW9yeS1pbyIpLHQuZmxvYXRQYXJhbWV0ZXJzJiZ0LmZsb2F0UGFyYW1ldGVycyYmby5wdXNoKCItLWZsb2F0LXBhcmFtZXRlcnMiKSx0LnVzZUNvbXByZXNzaW9uJiZ0LnVzZUNvbXByZXNzaW9uJiZvLnB1c2goIi0tdXNlLWNvbXByZXNzaW9uIik7bGV0IFE9Indhc20tenN0ZC13cml0ZS10cmFuc2Zvcm0iLGE9dD8ud2ViV29ya2VyO2E9PT12b2lkIDAmJihhPWF3YWl0IEQoKSk7bGV0e3dlYldvcmtlcjpuLHJldHVyblZhbHVlOmMsc3RkZXJyOmcsb3V0cHV0czpCfT1hd2FpdCB5KFEsbyxyLEkse3BpcGVsaW5lQmFzZVVybDpoKCkscGlwZWxpbmVXb3JrZXJVcmw6ZCgpLHdlYldvcmtlcjphLG5vQ29weTp0Py5ub0NvcHl9KTtpZihjIT09MCYmZyE9PSIiKXRocm93IG5ldyBFcnJvcihnKTtyZXR1cm57d2ViV29ya2VyOm4sY291bGRXcml0ZTpCWzBdPy5kYXRhLHNlcmlhbGl6ZWRUcmFuc2Zvcm06QlsxXT8uZGF0YX19dmFyIHplPU5vO3ZhciBHbz1uZXcgTWFwKFtbImhkZjUiLFtPZSxxZV1dLFsibWF0IixbeGUsUGVdXSxbIm1uYyIsW0tlLFdlXV0sWyJ0eHQiLFtqZSx2ZV1dLFsid2FzbSIsW1plLFZlXV0sWyJ3YXNtWnN0ZCIsW1hlLHplXV1dKSxCQT1Hbzthc3luYyBmdW5jdGlvbiBibyhBLGU9e30pe2xldCB0PUEudHlwZT8/IiIscj1BLm5hbWU/P0EucGF0aD8/ImZpbGVOYW1lIixJPUVBKHIpLnRvTG93ZXJDYXNlKCksbz1lPy53ZWJXb3JrZXIsaT1BO2lmKEEgaW5zdGFuY2VvZiBCbG9iKXtsZXQgZz1hd2FpdCBBLmFycmF5QnVmZmVyKCk7aT17cGF0aDpBLm5hbWUsZGF0YTpuZXcgVWludDhBcnJheShnKX19bGV0IEM9bnVsbDtpZih0JiZnQS5oYXModCkpQz1nQS5nZXQodCk7ZWxzZSBpZihzQS5oYXMoSSkpQz1zQS5nZXQoSSk7ZWxzZSBmb3IobGV0IGcgb2YgQkEudmFsdWVzKCkpaWYoZ1swXSE9PW51bGwpe2xldHt3ZWJXb3JrZXI6Qixjb3VsZFJlYWQ6Zix0cmFuc2Zvcm06bH09YXdhaXQgZ1swXSh7cGF0aDppLnBhdGgsZGF0YTppLmRhdGEuc2xpY2UoKX0se2Zsb2F0UGFyYW1ldGVyczplLmZsb2F0UGFyYW1ldGVycyx3ZWJXb3JrZXI6byxub0NvcHk6ZT8ubm9Db3B5fSk7aWYobz1CLGYpcmV0dXJue3dlYldvcmtlcjpvLHRyYW5zZm9ybTpsfX1pZighQyl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgSU8gZm9yOiAiK3IpO2xldCBRPUJBLmdldChDKVswXSx7d2ViV29ya2VyOmEsY291bGRSZWFkOm4sdHJhbnNmb3JtOmN9PWF3YWl0IFEoaSx7ZmxvYXRQYXJhbWV0ZXJzOmUuZmxvYXRQYXJhbWV0ZXJzLHdlYldvcmtlcjpvLG5vQ29weTplPy5ub0NvcHl9KTtpZihvPWEsIW4pdGhyb3cgRXJyb3IoIkNvdWxkIG5vdCByZWFkOiAiK3IpO3JldHVybnt3ZWJXb3JrZXI6byx0cmFuc2Zvcm06Y319dmFyIExvPWJvO2FzeW5jIGZ1bmN0aW9uIEpvKEEsZSx0PXt9KXtsZXQgcj1BLEk9dC5taW1lVHlwZSxvPUVBKGUpLnRvTG93ZXJDYXNlKCksaT10LndlYldvcmtlcixDPW51bGw7aWYodHlwZW9mIEk8InUiJiZnQS5oYXMoSSkpQz1nQS5nZXQoSSk7ZWxzZSBpZihzQS5oYXMobykpQz1zQS5nZXQobyk7ZWxzZSBmb3IobGV0IEIgb2YgQkEudmFsdWVzKCkpaWYoQlsxXSE9PW51bGwpe2xldHt3ZWJXb3JrZXI6Zixjb3VsZFdyaXRlOmwsc2VyaWFsaXplZFRyYW5zZm9ybTptfT1hd2FpdCBCWzFdKHIsZSx0KTtpZihpPWYsbClyZXR1cm57d2ViV29ya2VyOmksc2VyaWFsaXplZFRyYW5zZm9ybTptfX1pZighQyl0aHJvdyBFcnJvcigiQ291bGQgbm90IGZpbmQgSU8gZm9yOiAiK2UpO2xldCBRPUJBLmdldChDKVsxXSx7d2ViV29ya2VyOmEsY291bGRXcml0ZTpuLHNlcmlhbGl6ZWRUcmFuc2Zvcm06Y309YXdhaXQgUShyLGUsdCk7aWYoaT1hLCFuKXRocm93IEVycm9yKCJDb3VsZCBub3Qgd3JpdGU6ICIrZSk7cmV0dXJue3dlYldvcmtlcjppLHNlcmlhbGl6ZWRUcmFuc2Zvcm06Y319dmFyIFRvPUpvO3ZhciB1cj0nZGF0YTp0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD11dGYtOCx2YXIgWWU9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBxZT0oQSx0KT0+e2Zvcih2YXIgZSBpbiB0KVllKEEsZSx7Z2V0OnRbZV0sZW51bWVyYWJsZTohMH0pfTt2YXIgTnQ9U3ltYm9sKCJDb21saW5rLnByb3h5IiksTWU9U3ltYm9sKCJDb21saW5rLmVuZHBvaW50IiksS2U9U3ltYm9sKCJDb21saW5rLnJlbGVhc2VQcm94eSIpLFZBPVN5bWJvbCgiQ29tbGluay5maW5hbGl6ZXIiKSxtQT1TeW1ib2woIkNvbWxpbmsudGhyb3duIiksVXQ9QT0+dHlwZW9mIEE9PSJvYmplY3QiJiZBIT09bnVsbHx8dHlwZW9mIEE9PSJmdW5jdGlvbiIsT2U9e2NhbkhhbmRsZTpBPT5VdChBKSYmQVtOdF0sc2VyaWFsaXplKEEpe2xldHtwb3J0MTp0LHBvcnQyOmV9PW5ldyBNZXNzYWdlQ2hhbm5lbDtyZXR1cm4gRkEoQSx0KSxbZSxbZV1dfSxkZXNlcmlhbGl6ZShBKXtyZXR1cm4gQS5zdGFydCgpLGplKEEpfX0sVGU9e2NhbkhhbmRsZTpBPT5VdChBKSYmbUEgaW4gQSxzZXJpYWxpemUoe3ZhbHVlOkF9KXtsZXQgdDtyZXR1cm4gQSBpbnN0YW5jZW9mIEVycm9yP3Q9e2lzRXJyb3I6ITAsdmFsdWU6e21lc3NhZ2U6QS5tZXNzYWdlLG5hbWU6QS5uYW1lLHN0YWNrOkEuc3RhY2t9fTp0PXtpc0Vycm9yOiExLHZhbHVlOkF9LFt0LFtdXX0sZGVzZXJpYWxpemUoQSl7dGhyb3cgQS5pc0Vycm9yP09iamVjdC5hc3NpZ24obmV3IEVycm9yKEEudmFsdWUubWVzc2FnZSksQS52YWx1ZSk6QS52YWx1ZX19LEd0PW5ldyBNYXAoW1sicHJveHkiLE9lXSxbInRocm93IixUZV1dKTtmdW5jdGlvbiB4ZShBLHQpe2ZvcihsZXQgZSBvZiBBKWlmKHQ9PT1lfHxlPT09IioifHxlIGluc3RhbmNlb2YgUmVnRXhwJiZlLnRlc3QodCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRkEoQSx0PWdsb2JhbFRoaXMsZT1bIioiXSl7dC5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbiBJKHIpe2lmKCFyfHwhci5kYXRhKXJldHVybjtpZigheGUoZSxyLm9yaWdpbikpe2NvbnNvbGUud2FybihgSW52YWxpZCBvcmlnaW4gXCcke3Iub3JpZ2lufVwnIGZvciBjb21saW5rIHByb3h5YCk7cmV0dXJufWxldHtpZDpnLHR5cGU6byxwYXRoOm59PU9iamVjdC5hc3NpZ24oe3BhdGg6W119LHIuZGF0YSksRT0oci5kYXRhLmFyZ3VtZW50TGlzdHx8W10pLm1hcChXKSxCO3RyeXtsZXQgcz1uLnNsaWNlKDAsLTEpLnJlZHVjZSgobCxhKT0+bFthXSxBKSxDPW4ucmVkdWNlKChsLGEpPT5sW2FdLEEpO3N3aXRjaChvKXtjYXNlIkdFVCI6Qj1DO2JyZWFrO2Nhc2UiU0VUIjpzW24uc2xpY2UoLTEpWzBdXT1XKHIuZGF0YS52YWx1ZSksQj0hMDticmVhaztjYXNlIkFQUExZIjpCPUMuYXBwbHkocyxFKTticmVhaztjYXNlIkNPTlNUUlVDVCI6e2xldCBsPW5ldyBDKC4uLkUpO0I9WGUobCl9YnJlYWs7Y2FzZSJFTkRQT0lOVCI6e2xldHtwb3J0MTpsLHBvcnQyOmF9PW5ldyBNZXNzYWdlQ2hhbm5lbDtGQShBLGEpLEI9X0EobCxbbF0pfWJyZWFrO2Nhc2UiUkVMRUFTRSI6Qj12b2lkIDA7YnJlYWs7ZGVmYXVsdDpyZXR1cm59fWNhdGNoKHMpe0I9e3ZhbHVlOnMsW21BXTowfX1Qcm9taXNlLnJlc29sdmUoQikuY2F0Y2gocz0+KHt2YWx1ZTpzLFttQV06MH0pKS50aGVuKHM9PntsZXRbQyxsXT1TQShzKTt0LnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxDKSx7aWQ6Z30pLGwpLG89PT0iUkVMRUFTRSImJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLEkpLGt0KHQpLFZBIGluIEEmJnR5cGVvZiBBW1ZBXT09ImZ1bmN0aW9uIiYmQVtWQV0oKSl9KS5jYXRjaChzPT57bGV0W0MsbF09U0Eoe3ZhbHVlOm5ldyBUeXBlRXJyb3IoIlVuc2VyaWFsaXphYmxlIHJldHVybiB2YWx1ZSIpLFttQV06MH0pO3QucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LEMpLHtpZDpnfSksbCl9KX0pLHQuc3RhcnQmJnQuc3RhcnQoKX1mdW5jdGlvbiBQZShBKXtyZXR1cm4gQS5jb25zdHJ1Y3Rvci5uYW1lPT09Ik1lc3NhZ2VQb3J0In1mdW5jdGlvbiBrdChBKXtQZShBKSYmQS5jbG9zZSgpfWZ1bmN0aW9uIGplKEEsdCl7cmV0dXJuIFhBKEEsW10sdCl9ZnVuY3Rpb24geUEoQSl7aWYoQSl0aHJvdyBuZXcgRXJyb3IoIlByb3h5IGhhcyBiZWVuIHJlbGVhc2VkIGFuZCBpcyBub3QgdXNlYWJsZSIpfWZ1bmN0aW9uIEx0KEEpe3JldHVybiBfKEEse3R5cGU6IlJFTEVBU0UifSkudGhlbigoKT0+e2t0KEEpfSl9dmFyIHdBPW5ldyBXZWFrTWFwLHBBPSJGaW5hbGl6YXRpb25SZWdpc3RyeSJpbiBnbG9iYWxUaGlzJiZuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoQT0+e2xldCB0PSh3QS5nZXQoQSl8fDApLTE7d0Euc2V0KEEsdCksdD09PTAmJkx0KEEpfSk7ZnVuY3Rpb24gV2UoQSx0KXtsZXQgZT0od0EuZ2V0KHQpfHwwKSsxO3dBLnNldCh0LGUpLHBBJiZwQS5yZWdpc3RlcihBLHQsQSl9ZnVuY3Rpb24gWmUoQSl7cEEmJnBBLnVucmVnaXN0ZXIoQSl9ZnVuY3Rpb24gWEEoQSx0PVtdLGU9ZnVuY3Rpb24oKXt9KXtsZXQgST0hMSxyPW5ldyBQcm94eShlLHtnZXQoZyxvKXtpZih5QShJKSxvPT09S2UpcmV0dXJuKCk9PntaZShyKSxMdChBKSxJPSEwfTtpZihvPT09InRoZW4iKXtpZih0Lmxlbmd0aD09PTApcmV0dXJue3RoZW46KCk9PnJ9O2xldCBuPV8oQSx7dHlwZToiR0VUIixwYXRoOnQubWFwKEU9PkUudG9TdHJpbmcoKSl9KS50aGVuKFcpO3JldHVybiBuLnRoZW4uYmluZChuKX1yZXR1cm4gWEEoQSxbLi4udCxvXSl9LHNldChnLG8sbil7eUEoSSk7bGV0W0UsQl09U0Eobik7cmV0dXJuIF8oQSx7dHlwZToiU0VUIixwYXRoOlsuLi50LG9dLm1hcChzPT5zLnRvU3RyaW5nKCkpLHZhbHVlOkV9LEIpLnRoZW4oVyl9LGFwcGx5KGcsbyxuKXt5QShJKTtsZXQgRT10W3QubGVuZ3RoLTFdO2lmKEU9PT1NZSlyZXR1cm4gXyhBLHt0eXBlOiJFTkRQT0lOVCJ9KS50aGVuKFcpO2lmKEU9PT0iYmluZCIpcmV0dXJuIFhBKEEsdC5zbGljZSgwLC0xKSk7bGV0W0Isc109UnQobik7cmV0dXJuIF8oQSx7dHlwZToiQVBQTFkiLHBhdGg6dC5tYXAoQz0+Qy50b1N0cmluZygpKSxhcmd1bWVudExpc3Q6Qn0scykudGhlbihXKX0sY29uc3RydWN0KGcsbyl7eUEoSSk7bGV0W24sRV09UnQobyk7cmV0dXJuIF8oQSx7dHlwZToiQ09OU1RSVUNUIixwYXRoOnQubWFwKEI9PkIudG9TdHJpbmcoKSksYXJndW1lbnRMaXN0Om59LEUpLnRoZW4oVyl9fSk7cmV0dXJuIFdlKHIsQSkscn1mdW5jdGlvbiBWZShBKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxBKX1mdW5jdGlvbiBSdChBKXtsZXQgdD1BLm1hcChTQSk7cmV0dXJuW3QubWFwKGU9PmVbMF0pLFZlKHQubWFwKGU9PmVbMV0pKV19dmFyIGJ0PW5ldyBXZWFrTWFwO2Z1bmN0aW9uIF9BKEEsdCl7cmV0dXJuIGJ0LnNldChBLHQpLEF9ZnVuY3Rpb24gWGUoQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx7W050XTohMH0pfWZ1bmN0aW9uIFNBKEEpe2ZvcihsZXRbdCxlXW9mIEd0KWlmKGUuY2FuSGFuZGxlKEEpKXtsZXRbSSxyXT1lLnNlcmlhbGl6ZShBKTtyZXR1cm5be3R5cGU6IkhBTkRMRVIiLG5hbWU6dCx2YWx1ZTpJfSxyXX1yZXR1cm5be3R5cGU6IlJBVyIsdmFsdWU6QX0sYnQuZ2V0KEEpfHxbXV19ZnVuY3Rpb24gVyhBKXtzd2l0Y2goQS50eXBlKXtjYXNlIkhBTkRMRVIiOnJldHVybiBHdC5nZXQoQS5uYW1lKS5kZXNlcmlhbGl6ZShBLnZhbHVlKTtjYXNlIlJBVyI6cmV0dXJuIEEudmFsdWV9fWZ1bmN0aW9uIF8oQSx0LGUpe3JldHVybiBuZXcgUHJvbWlzZShJPT57bGV0IHI9X2UoKTtBLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uIGcobyl7IW8uZGF0YXx8IW8uZGF0YS5pZHx8by5kYXRhLmlkIT09cnx8KEEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZyksSShvLmRhdGEpKX0pLEEuc3RhcnQmJkEuc3RhcnQoKSxBLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oe2lkOnJ9LHQpLGUpfSl9ZnVuY3Rpb24gX2UoKXtyZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpPT5NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbigiLSIpfWZ1bmN0aW9uIG9BKEEsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEEuYXBwbHkodCxhcmd1bWVudHMpfX12YXJ7dG9TdHJpbmc6emV9PU9iamVjdC5wcm90b3R5cGUse2dldFByb3RvdHlwZU9mOnZBfT1PYmplY3Qse2l0ZXJhdG9yOk5BLHRvU3RyaW5nVGFnOll0fT1TeW1ib2wsVUE9KEE9PnQ9PntsZXQgZT16ZS5jYWxsKHQpO3JldHVybiBBW2VdfHwoQVtlXT1lLnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfSkoT2JqZWN0LmNyZWF0ZShudWxsKSksTD1BPT4oQT1BLnRvTG93ZXJDYXNlKCksdD0+VUEodCk9PT1BKSxHQT1BPT50PT50eXBlb2YgdD09PUEse2lzQXJyYXk6dn09QXJyYXksej1HQSgidW5kZWZpbmVkIik7ZnVuY3Rpb24gZ0EoQSl7cmV0dXJuIEEhPT1udWxsJiYheihBKSYmQS5jb25zdHJ1Y3RvciE9PW51bGwmJiF6KEEuY29uc3RydWN0b3IpJiZOKEEuY29uc3RydWN0b3IuaXNCdWZmZXIpJiZBLmNvbnN0cnVjdG9yLmlzQnVmZmVyKEEpfXZhciBxdD1MKCJBcnJheUJ1ZmZlciIpO2Z1bmN0aW9uIHZlKEEpe2xldCB0O3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUiJiZBcnJheUJ1ZmZlci5pc1ZpZXc/dD1BcnJheUJ1ZmZlci5pc1ZpZXcoQSk6dD1BJiZBLmJ1ZmZlciYmcXQoQS5idWZmZXIpLHR9dmFyICRlPUdBKCJzdHJpbmciKSxOPUdBKCJmdW5jdGlvbiIpLE10PUdBKCJudW1iZXIiKSxpQT1BPT5BIT09bnVsbCYmdHlwZW9mIEE9PSJvYmplY3QiLEFJPUE9PkE9PT0hMHx8QT09PSExLFJBPUE9PntpZihVQShBKSE9PSJvYmplY3QiKXJldHVybiExO2xldCB0PXZBKEEpO3JldHVybih0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV8fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KT09PW51bGwpJiYhKFl0IGluIEEpJiYhKE5BIGluIEEpfSx0ST1BPT57aWYoIWlBKEEpfHxnQShBKSlyZXR1cm4hMTt0cnl7cmV0dXJuIE9iamVjdC5rZXlzKEEpLmxlbmd0aD09PTAmJk9iamVjdC5nZXRQcm90b3R5cGVPZihBKT09PU9iamVjdC5wcm90b3R5cGV9Y2F0Y2h7cmV0dXJuITF9fSxlST1MKCJEYXRlIiksSUk9TCgiRmlsZSIpLHJJPUwoIkJsb2IiKSxvST1MKCJGaWxlTGlzdCIpLGdJPUE9PmlBKEEpJiZOKEEucGlwZSksaUk9QT0+e2xldCB0O3JldHVybiBBJiYodHlwZW9mIEZvcm1EYXRhPT0iZnVuY3Rpb24iJiZBIGluc3RhbmNlb2YgRm9ybURhdGF8fE4oQS5hcHBlbmQpJiYoKHQ9VUEoQSkpPT09ImZvcm1kYXRhInx8dD09PSJvYmplY3QiJiZOKEEudG9TdHJpbmcpJiZBLnRvU3RyaW5nKCk9PT0iW29iamVjdCBGb3JtRGF0YV0iKSl9LHNJPUwoIlVSTFNlYXJjaFBhcmFtcyIpLFtuSSxDSSxCSSxhSV09WyJSZWFkYWJsZVN0cmVhbSIsIlJlcXVlc3QiLCJSZXNwb25zZSIsIkhlYWRlcnMiXS5tYXAoTCksUUk9QT0+QS50cmltP0EudHJpbSgpOkEucmVwbGFjZSgvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2csIiIpO2Z1bmN0aW9uIHNBKEEsdCx7YWxsT3duS2V5czplPSExfT17fSl7aWYoQT09PW51bGx8fHR5cGVvZiBBPiJ1IilyZXR1cm47bGV0IEkscjtpZih0eXBlb2YgQSE9Im9iamVjdCImJihBPVtBXSksdihBKSlmb3IoST0wLHI9QS5sZW5ndGg7STxyO0krKyl0LmNhbGwobnVsbCxBW0ldLEksQSk7ZWxzZXtpZihnQShBKSlyZXR1cm47bGV0IGc9ZT9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKTpPYmplY3Qua2V5cyhBKSxvPWcubGVuZ3RoLG47Zm9yKEk9MDtJPG87SSsrKW49Z1tJXSx0LmNhbGwobnVsbCxBW25dLG4sQSl9fWZ1bmN0aW9uIEt0KEEsdCl7aWYoZ0EoQSkpcmV0dXJuIG51bGw7dD10LnRvTG93ZXJDYXNlKCk7bGV0IGU9T2JqZWN0LmtleXMoQSksST1lLmxlbmd0aCxyO2Zvcig7SS0tID4wOylpZihyPWVbSV0sdD09PXIudG9Mb3dlckNhc2UoKSlyZXR1cm4gcjtyZXR1cm4gbnVsbH12YXIgWj10eXBlb2YgZ2xvYmFsVGhpczwidSI/Z2xvYmFsVGhpczp0eXBlb2Ygc2VsZjwidSI/c2VsZjp0eXBlb2Ygd2luZG93PCJ1Ij93aW5kb3c6Z2xvYmFsLE90PUE9PiF6KEEpJiZBIT09WjtmdW5jdGlvbiB6QSgpe2xldHtjYXNlbGVzczpBLHNraXBVbmRlZmluZWQ6dH09T3QodGhpcykmJnRoaXN8fHt9LGU9e30sST0ocixnKT0+e2xldCBvPUEmJkt0KGUsZyl8fGc7UkEoZVtvXSkmJlJBKHIpP2Vbb109ekEoZVtvXSxyKTpSQShyKT9lW29dPXpBKHt9LHIpOnYocik/ZVtvXT1yLnNsaWNlKCk6KCF0fHwheihyKSkmJihlW29dPXIpfTtmb3IobGV0IHI9MCxnPWFyZ3VtZW50cy5sZW5ndGg7cjxnO3IrKylhcmd1bWVudHNbcl0mJnNBKGFyZ3VtZW50c1tyXSxJKTtyZXR1cm4gZX12YXIgRUk9KEEsdCxlLHthbGxPd25LZXlzOkl9PXt9KT0+KHNBKHQsKHIsZyk9PntlJiZOKHIpP0FbZ109b0EocixlKTpBW2ddPXJ9LHthbGxPd25LZXlzOkl9KSxBKSxjST1BPT4oQS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihBPUEuc2xpY2UoMSkpLEEpLGZJPShBLHQsZSxJKT0+e0EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsSSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwic3VwZXIiLHt2YWx1ZTp0LnByb3RvdHlwZX0pLGUmJk9iamVjdC5hc3NpZ24oQS5wcm90b3R5cGUsZSl9LGxJPShBLHQsZSxJKT0+e2xldCByLGcsbyxuPXt9O2lmKHQ9dHx8e30sQT09bnVsbClyZXR1cm4gdDtkb3tmb3Iocj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhBKSxnPXIubGVuZ3RoO2ctLSA+MDspbz1yW2ddLCghSXx8SShvLEEsdCkpJiYhbltvXSYmKHRbb109QVtvXSxuW29dPSEwKTtBPWUhPT0hMSYmdkEoQSl9d2hpbGUoQSYmKCFlfHxlKEEsdCkpJiZBIT09T2JqZWN0LnByb3RvdHlwZSk7cmV0dXJuIHR9LHVJPShBLHQsZSk9PntBPVN0cmluZyhBKSwoZT09PXZvaWQgMHx8ZT5BLmxlbmd0aCkmJihlPUEubGVuZ3RoKSxlLT10Lmxlbmd0aDtsZXQgST1BLmluZGV4T2YodCxlKTtyZXR1cm4gSSE9PS0xJiZJPT09ZX0sZEk9QT0+e2lmKCFBKXJldHVybiBudWxsO2lmKHYoQSkpcmV0dXJuIEE7bGV0IHQ9QS5sZW5ndGg7aWYoIU10KHQpKXJldHVybiBudWxsO2xldCBlPW5ldyBBcnJheSh0KTtmb3IoO3QtLSA+MDspZVt0XT1BW3RdO3JldHVybiBlfSxEST0oQT0+dD0+QSYmdCBpbnN0YW5jZW9mIEEpKHR5cGVvZiBVaW50OEFycmF5PCJ1IiYmdkEoVWludDhBcnJheSkpLGhJPShBLHQpPT57bGV0IEk9KEEmJkFbTkFdKS5jYWxsKEEpLHI7Zm9yKDsocj1JLm5leHQoKSkmJiFyLmRvbmU7KXtsZXQgZz1yLnZhbHVlO3QuY2FsbChBLGdbMF0sZ1sxXSl9fSx5ST0oQSx0KT0+e2xldCBlLEk9W107Zm9yKDsoZT1BLmV4ZWModCkpIT09bnVsbDspSS5wdXNoKGUpO3JldHVybiBJfSxtST1MKCJIVE1MRm9ybUVsZW1lbnQiKSx3ST1BPT5BLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvWy1fXFxzXShbYS16XFxkXSkoXFx3KikvZyxmdW5jdGlvbihlLEkscil7cmV0dXJuIEkudG9VcHBlckNhc2UoKStyfSksSHQ9KCh7aGFzT3duUHJvcGVydHk6QX0pPT4odCxlKT0+QS5jYWxsKHQsZSkpKE9iamVjdC5wcm90b3R5cGUpLHBJPUwoIlJlZ0V4cCIpLFR0PShBLHQpPT57bGV0IGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoQSksST17fTtzQShlLChyLGcpPT57bGV0IG87KG89dChyLGcsQSkpIT09ITEmJihJW2ddPW98fHIpfSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoQSxJKX0sU0k9QT0+e1R0KEEsKHQsZSk9PntpZihOKEEpJiZbImFyZ3VtZW50cyIsImNhbGxlciIsImNhbGxlZSJdLmluZGV4T2YoZSkhPT0tMSlyZXR1cm4hMTtsZXQgST1BW2VdO2lmKE4oSSkpe2lmKHQuZW51bWVyYWJsZT0hMSwid3JpdGFibGUiaW4gdCl7dC53cml0YWJsZT0hMTtyZXR1cm59dC5zZXR8fCh0LnNldD0oKT0+e3Rocm93IEVycm9yKCJDYW4gbm90IHJld3JpdGUgcmVhZC1vbmx5IG1ldGhvZCBcJyIrZSsiXCciKX0pfX0pfSxGST0oQSx0KT0+e2xldCBlPXt9LEk9cj0+e3IuZm9yRWFjaChnPT57ZVtnXT0hMH0pfTtyZXR1cm4gdihBKT9JKEEpOkkoU3RyaW5nKEEpLnNwbGl0KHQpKSxlfSxSST0oKT0+e30sTkk9KEEsdCk9PkEhPW51bGwmJk51bWJlci5pc0Zpbml0ZShBPStBKT9BOnQ7ZnVuY3Rpb24gVUkoQSl7cmV0dXJuISEoQSYmTihBLmFwcGVuZCkmJkFbWXRdPT09IkZvcm1EYXRhIiYmQVtOQV0pfXZhciBHST1BPT57bGV0IHQ9bmV3IEFycmF5KDEwKSxlPShJLHIpPT57aWYoaUEoSSkpe2lmKHQuaW5kZXhPZihJKT49MClyZXR1cm47aWYoZ0EoSSkpcmV0dXJuIEk7aWYoISgidG9KU09OImluIEkpKXt0W3JdPUk7bGV0IGc9dihJKT9bXTp7fTtyZXR1cm4gc0EoSSwobyxuKT0+e2xldCBFPWUobyxyKzEpOyF6KEUpJiYoZ1tuXT1FKX0pLHRbcl09dm9pZCAwLGd9fXJldHVybiBJfTtyZXR1cm4gZShBLDApfSxrST1MKCJBc3luY0Z1bmN0aW9uIiksTEk9QT0+QSYmKGlBKEEpfHxOKEEpKSYmTihBLnRoZW4pJiZOKEEuY2F0Y2gpLHh0PSgoQSx0KT0+QT9zZXRJbW1lZGlhdGU6dD8oKGUsSSk9PihaLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCh7c291cmNlOnIsZGF0YTpnfSk9PntyPT09WiYmZz09PWUmJkkubGVuZ3RoJiZJLnNoaWZ0KCkoKX0sITEpLHI9PntJLnB1c2gociksWi5wb3N0TWVzc2FnZShlLCIqIil9KSkoYGF4aW9zQCR7TWF0aC5yYW5kb20oKX1gLFtdKTplPT5zZXRUaW1lb3V0KGUpKSh0eXBlb2Ygc2V0SW1tZWRpYXRlPT0iZnVuY3Rpb24iLE4oWi5wb3N0TWVzc2FnZSkpLGJJPXR5cGVvZiBxdWV1ZU1pY3JvdGFzazwidSI/cXVldWVNaWNyb3Rhc2suYmluZChaKTp0eXBlb2YgcHJvY2VzczwidSImJnByb2Nlc3MubmV4dFRpY2t8fHh0LEpJPUE9PkEhPW51bGwmJk4oQVtOQV0pLGk9e2lzQXJyYXk6dixpc0FycmF5QnVmZmVyOnF0LGlzQnVmZmVyOmdBLGlzRm9ybURhdGE6aUksaXNBcnJheUJ1ZmZlclZpZXc6dmUsaXNTdHJpbmc6JGUsaXNOdW1iZXI6TXQsaXNCb29sZWFuOkFJLGlzT2JqZWN0OmlBLGlzUGxhaW5PYmplY3Q6UkEsaXNFbXB0eU9iamVjdDp0SSxpc1JlYWRhYmxlU3RyZWFtOm5JLGlzUmVxdWVzdDpDSSxpc1Jlc3BvbnNlOkJJLGlzSGVhZGVyczphSSxpc1VuZGVmaW5lZDp6LGlzRGF0ZTplSSxpc0ZpbGU6SUksaXNCbG9iOnJJLGlzUmVnRXhwOnBJLGlzRnVuY3Rpb246Tixpc1N0cmVhbTpnSSxpc1VSTFNlYXJjaFBhcmFtczpzSSxpc1R5cGVkQXJyYXk6REksaXNGaWxlTGlzdDpvSSxmb3JFYWNoOnNBLG1lcmdlOnpBLGV4dGVuZDpFSSx0cmltOlFJLHN0cmlwQk9NOmNJLGluaGVyaXRzOmZJLHRvRmxhdE9iamVjdDpsSSxraW5kT2Y6VUEsa2luZE9mVGVzdDpMLGVuZHNXaXRoOnVJLHRvQXJyYXk6ZEksZm9yRWFjaEVudHJ5OmhJLG1hdGNoQWxsOnlJLGlzSFRNTEZvcm06bUksaGFzT3duUHJvcGVydHk6SHQsaGFzT3duUHJvcDpIdCxyZWR1Y2VEZXNjcmlwdG9yczpUdCxmcmVlemVNZXRob2RzOlNJLHRvT2JqZWN0U2V0OkZJLHRvQ2FtZWxDYXNlOndJLG5vb3A6UkksdG9GaW5pdGVOdW1iZXI6TkksZmluZEtleTpLdCxnbG9iYWw6Wixpc0NvbnRleHREZWZpbmVkOk90LGlzU3BlY0NvbXBsaWFudEZvcm06VUksdG9KU09OT2JqZWN0OkdJLGlzQXN5bmNGbjprSSxpc1RoZW5hYmxlOkxJLHNldEltbWVkaWF0ZTp4dCxhc2FwOmJJLGlzSXRlcmFibGU6Skl9O2Z1bmN0aW9uICQoQSx0LGUsSSxyKXtFcnJvci5jYWxsKHRoaXMpLEVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsdGhpcy5jb25zdHJ1Y3Rvcik6dGhpcy5zdGFjaz1uZXcgRXJyb3IoKS5zdGFjayx0aGlzLm1lc3NhZ2U9QSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLHQmJih0aGlzLmNvZGU9dCksZSYmKHRoaXMuY29uZmlnPWUpLEkmJih0aGlzLnJlcXVlc3Q9SSksciYmKHRoaXMucmVzcG9uc2U9cix0aGlzLnN0YXR1cz1yLnN0YXR1cz9yLnN0YXR1czpudWxsKX1pLmluaGVyaXRzKCQsRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzppLnRvSlNPTk9iamVjdCh0aGlzLmNvbmZpZyksY29kZTp0aGlzLmNvZGUsc3RhdHVzOnRoaXMuc3RhdHVzfX19KTt2YXIgUHQ9JC5wcm90b3R5cGUsanQ9e307WyJFUlJfQkFEX09QVElPTl9WQUxVRSIsIkVSUl9CQURfT1BUSU9OIiwiRUNPTk5BQk9SVEVEIiwiRVRJTUVET1VUIiwiRVJSX05FVFdPUksiLCJFUlJfRlJfVE9PX01BTllfUkVESVJFQ1RTIiwiRVJSX0RFUFJFQ0FURUQiLCJFUlJfQkFEX1JFU1BPTlNFIiwiRVJSX0JBRF9SRVFVRVNUIiwiRVJSX0NBTkNFTEVEIiwiRVJSX05PVF9TVVBQT1JUIiwiRVJSX0lOVkFMSURfVVJMIl0uZm9yRWFjaChBPT57anRbQV09e3ZhbHVlOkF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoJCxqdCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFB0LCJpc0F4aW9zRXJyb3IiLHt2YWx1ZTohMH0pOyQuZnJvbT0oQSx0LGUsSSxyLGcpPT57bGV0IG89T2JqZWN0LmNyZWF0ZShQdCk7aS50b0ZsYXRPYmplY3QoQSxvLGZ1bmN0aW9uKHMpe3JldHVybiBzIT09RXJyb3IucHJvdG90eXBlfSxCPT5CIT09ImlzQXhpb3NFcnJvciIpO2xldCBuPUEmJkEubWVzc2FnZT9BLm1lc3NhZ2U6IkVycm9yIixFPXQ9PW51bGwmJkE/QS5jb2RlOnQ7cmV0dXJuICQuY2FsbChvLG4sRSxlLEksciksQSYmby5jYXVzZT09bnVsbCYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sImNhdXNlIix7dmFsdWU6QSxjb25maWd1cmFibGU6ITB9KSxvLm5hbWU9QSYmQS5uYW1lfHwiRXJyb3IiLGcmJk9iamVjdC5hc3NpZ24obyxnKSxvfTt2YXIgdT0kO3ZhciBrQT1udWxsO2Z1bmN0aW9uICRBKEEpe3JldHVybiBpLmlzUGxhaW5PYmplY3QoQSl8fGkuaXNBcnJheShBKX1mdW5jdGlvbiBadChBKXtyZXR1cm4gaS5lbmRzV2l0aChBLCJbXSIpP0Euc2xpY2UoMCwtMik6QX1mdW5jdGlvbiBXdChBLHQsZSl7cmV0dXJuIEE/QS5jb25jYXQodCkubWFwKGZ1bmN0aW9uKHIsZyl7cmV0dXJuIHI9WnQociksIWUmJmc/IlsiK3IrIl0iOnJ9KS5qb2luKGU/Ii4iOiIiKTp0fWZ1bmN0aW9uIEhJKEEpe3JldHVybiBpLmlzQXJyYXkoQSkmJiFBLnNvbWUoJEEpfXZhciBZST1pLnRvRmxhdE9iamVjdChpLHt9LG51bGwsZnVuY3Rpb24odCl7cmV0dXJuL15pc1tBLVpdLy50ZXN0KHQpfSk7ZnVuY3Rpb24gcUkoQSx0LGUpe2lmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoInRhcmdldCBtdXN0IGJlIGFuIG9iamVjdCIpO3Q9dHx8bmV3KGtBfHxGb3JtRGF0YSksZT1pLnRvRmxhdE9iamVjdChlLHttZXRhVG9rZW5zOiEwLGRvdHM6ITEsaW5kZXhlczohMX0sITEsZnVuY3Rpb24oZixjKXtyZXR1cm4haS5pc1VuZGVmaW5lZChjW2ZdKX0pO2xldCBJPWUubWV0YVRva2VucyxyPWUudmlzaXRvcnx8cyxnPWUuZG90cyxvPWUuaW5kZXhlcyxFPShlLkJsb2J8fHR5cGVvZiBCbG9iPCJ1IiYmQmxvYikmJmkuaXNTcGVjQ29tcGxpYW50Rm9ybSh0KTtpZighaS5pc0Z1bmN0aW9uKHIpKXRocm93IG5ldyBUeXBlRXJyb3IoInZpc2l0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7ZnVuY3Rpb24gQihRKXtpZihRPT09bnVsbClyZXR1cm4iIjtpZihpLmlzRGF0ZShRKSlyZXR1cm4gUS50b0lTT1N0cmluZygpO2lmKGkuaXNCb29sZWFuKFEpKXJldHVybiBRLnRvU3RyaW5nKCk7aWYoIUUmJmkuaXNCbG9iKFEpKXRocm93IG5ldyB1KCJCbG9iIGlzIG5vdCBzdXBwb3J0ZWQuIFVzZSBhIEJ1ZmZlciBpbnN0ZWFkLiIpO3JldHVybiBpLmlzQXJyYXlCdWZmZXIoUSl8fGkuaXNUeXBlZEFycmF5KFEpP0UmJnR5cGVvZiBCbG9iPT0iZnVuY3Rpb24iP25ldyBCbG9iKFtRXSk6QnVmZmVyLmZyb20oUSk6UX1mdW5jdGlvbiBzKFEsZixjKXtsZXQgRD1RO2lmKFEmJiFjJiZ0eXBlb2YgUT09Im9iamVjdCIpe2lmKGkuZW5kc1dpdGgoZiwie30iKSlmPUk/ZjpmLnNsaWNlKDAsLTIpLFE9SlNPTi5zdHJpbmdpZnkoUSk7ZWxzZSBpZihpLmlzQXJyYXkoUSkmJkhJKFEpfHwoaS5pc0ZpbGVMaXN0KFEpfHxpLmVuZHNXaXRoKGYsIltdIikpJiYoRD1pLnRvQXJyYXkoUSkpKXJldHVybiBmPVp0KGYpLEQuZm9yRWFjaChmdW5jdGlvbih5LFIpeyEoaS5pc1VuZGVmaW5lZCh5KXx8eT09PW51bGwpJiZ0LmFwcGVuZChvPT09ITA/V3QoW2ZdLFIsZyk6bz09PW51bGw/ZjpmKyJbXSIsQih5KSl9KSwhMX1yZXR1cm4gJEEoUSk/ITA6KHQuYXBwZW5kKFd0KGMsZixnKSxCKFEpKSwhMSl9bGV0IEM9W10sbD1PYmplY3QuYXNzaWduKFlJLHtkZWZhdWx0VmlzaXRvcjpzLGNvbnZlcnRWYWx1ZTpCLGlzVmlzaXRhYmxlOiRBfSk7ZnVuY3Rpb24gYShRLGYpe2lmKCFpLmlzVW5kZWZpbmVkKFEpKXtpZihDLmluZGV4T2YoUSkhPT0tMSl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluICIrZi5qb2luKCIuIikpO0MucHVzaChRKSxpLmZvckVhY2goUSxmdW5jdGlvbihELEYpeyghKGkuaXNVbmRlZmluZWQoRCl8fEQ9PT1udWxsKSYmci5jYWxsKHQsRCxpLmlzU3RyaW5nKEYpP0YudHJpbSgpOkYsZixsKSk9PT0hMCYmYShELGY/Zi5jb25jYXQoRik6W0ZdKX0pLEMucG9wKCl9fWlmKCFpLmlzT2JqZWN0KEEpKXRocm93IG5ldyBUeXBlRXJyb3IoImRhdGEgbXVzdCBiZSBhbiBvYmplY3QiKTtyZXR1cm4gYShBKSx0fXZhciBUPXFJO2Z1bmN0aW9uIFZ0KEEpe2xldCB0PXsiISI6IiUyNTIxIiwiXCciOiIlMjUyNyIsIigiOiIlMjUyOCIsIikiOiIlMjUyOSIsIn4iOiIlMjU3RSIsIiUyNTIwIjoiKyIsIiUyNTAwIjoiXFwwIn07cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChBKS5yZXBsYWNlKC9bIVwnKCl+XXwlMjUyMHwlMjUwMC9nLGZ1bmN0aW9uKEkpe3JldHVybiB0W0ldfSl9ZnVuY3Rpb24gWHQoQSx0KXt0aGlzLl9wYWlycz1bXSxBJiZUKEEsdGhpcyx0KX12YXIgX3Q9WHQucHJvdG90eXBlO190LmFwcGVuZD1mdW5jdGlvbih0LGUpe3RoaXMuX3BhaXJzLnB1c2goW3QsZV0pfTtfdC50b1N0cmluZz1mdW5jdGlvbih0KXtsZXQgZT10P2Z1bmN0aW9uKEkpe3JldHVybiB0LmNhbGwodGhpcyxJLFZ0KX06VnQ7cmV0dXJuIHRoaXMuX3BhaXJzLm1hcChmdW5jdGlvbihyKXtyZXR1cm4gZShyWzBdKSsiPSIrZShyWzFdKX0sIiIpLmpvaW4oIiYiKX07dmFyIExBPVh0O2Z1bmN0aW9uIE1JKEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvJTI1M0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjUyNC9nLCIkIikucmVwbGFjZSgvJTI1MkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjUyMC9nLCIrIil9ZnVuY3Rpb24gbkEoQSx0LGUpe2lmKCF0KXJldHVybiBBO2xldCBJPWUmJmUuZW5jb2RlfHxNSTtpLmlzRnVuY3Rpb24oZSkmJihlPXtzZXJpYWxpemU6ZX0pO2xldCByPWUmJmUuc2VyaWFsaXplLGc7aWYocj9nPXIodCxlKTpnPWkuaXNVUkxTZWFyY2hQYXJhbXModCk/dC50b1N0cmluZygpOm5ldyBMQSh0LGUpLnRvU3RyaW5nKEkpLGcpe2xldCBvPUEuaW5kZXhPZigiJTIzIik7byE9PS0xJiYoQT1BLnNsaWNlKDAsbykpLEErPShBLmluZGV4T2YoIj8iKT09PS0xPyI/IjoiJiIpK2d9cmV0dXJuIEF9dmFyIEF0PWNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5oYW5kbGVycz1bXX11c2UodCxlLEkpe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDp0LHJlamVjdGVkOmUsc3luY2hyb25vdXM6ST9JLnN5bmNocm9ub3VzOiExLHJ1bldoZW46ST9JLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9ZWplY3QodCl7dGhpcy5oYW5kbGVyc1t0XSYmKHRoaXMuaGFuZGxlcnNbdF09bnVsbCl9Y2xlYXIoKXt0aGlzLmhhbmRsZXJzJiYodGhpcy5oYW5kbGVycz1bXSl9Zm9yRWFjaCh0KXtpLmZvckVhY2godGhpcy5oYW5kbGVycyxmdW5jdGlvbihJKXtJIT09bnVsbCYmdChJKX0pfX0sdHQ9QXQ7dmFyIGJBPXtzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfTt2YXIgenQ9dHlwZW9mIFVSTFNlYXJjaFBhcmFtczwidSI/VVJMU2VhcmNoUGFyYW1zOkxBO3ZhciB2dD10eXBlb2YgRm9ybURhdGE8InUiP0Zvcm1EYXRhOm51bGw7dmFyICR0PXR5cGVvZiBCbG9iPCJ1Ij9CbG9iOm51bGw7dmFyIEFlPXtpc0Jyb3dzZXI6ITAsY2xhc3Nlczp7VVJMU2VhcmNoUGFyYW1zOnp0LEZvcm1EYXRhOnZ0LEJsb2I6JHR9LHByb3RvY29sczpbImh0dHAiLCJodHRwcyIsImZpbGUiLCJibG9iIiwidXJsIiwiZGF0YSJdfTt2YXIgcnQ9e307cWUocnQse2hhc0Jyb3dzZXJFbnY6KCk9Pkl0LGhhc1N0YW5kYXJkQnJvd3NlckVudjooKT0+S0ksaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52OigpPT5PSSxuYXZpZ2F0b3I6KCk9PmV0LG9yaWdpbjooKT0+VEl9KTt2YXIgSXQ9dHlwZW9mIHdpbmRvdzwidSImJnR5cGVvZiBkb2N1bWVudDwidSIsZXQ9dHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJm5hdmlnYXRvcnx8dm9pZCAwLEtJPUl0JiYoIWV0fHxbIlJlYWN0TmF0aXZlIiwiTmF0aXZlU2NyaXB0IiwiTlMiXS5pbmRleE9mKGV0LnByb2R1Y3QpPDApLE9JPXR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZTwidSImJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSYmdHlwZW9mIHNlbGYuaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixUST1JdCYmd2luZG93LmxvY2F0aW9uLmhyZWZ8fCJodHRwOi8vbG9jYWxob3N0Ijt2YXIgaD17Li4ucnQsLi4uQWV9O2Z1bmN0aW9uIG90KEEsdCl7cmV0dXJuIFQoQSxuZXcgaC5jbGFzc2VzLlVSTFNlYXJjaFBhcmFtcyx7dmlzaXRvcjpmdW5jdGlvbihlLEkscixnKXtyZXR1cm4gaC5pc05vZGUmJmkuaXNCdWZmZXIoZSk/KHRoaXMuYXBwZW5kKEksZS50b1N0cmluZygiYmFzZTY0IikpLCExKTpnLmRlZmF1bHRWaXNpdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sLi4udH0pfWZ1bmN0aW9uIHhJKEEpe3JldHVybiBpLm1hdGNoQWxsKC9cXHcrfFxcWyhcXHcqKV0vZyxBKS5tYXAodD0+dFswXT09PSJbXSI/IiI6dFsxXXx8dFswXSl9ZnVuY3Rpb24gUEkoQSl7bGV0IHQ9e30sZT1PYmplY3Qua2V5cyhBKSxJLHI9ZS5sZW5ndGgsZztmb3IoST0wO0k8cjtJKyspZz1lW0ldLHRbZ109QVtnXTtyZXR1cm4gdH1mdW5jdGlvbiBqSShBKXtmdW5jdGlvbiB0KGUsSSxyLGcpe2xldCBvPWVbZysrXTtpZihvPT09Il9fcHJvdG9fXyIpcmV0dXJuITA7bGV0IG49TnVtYmVyLmlzRmluaXRlKCtvKSxFPWc+PWUubGVuZ3RoO3JldHVybiBvPSFvJiZpLmlzQXJyYXkocik/ci5sZW5ndGg6byxFPyhpLmhhc093blByb3AocixvKT9yW29dPVtyW29dLEldOnJbb109SSwhbik6KCghcltvXXx8IWkuaXNPYmplY3QocltvXSkpJiYocltvXT1bXSksdChlLEkscltvXSxnKSYmaS5pc0FycmF5KHJbb10pJiYocltvXT1QSShyW29dKSksIW4pfWlmKGkuaXNGb3JtRGF0YShBKSYmaS5pc0Z1bmN0aW9uKEEuZW50cmllcykpe2xldCBlPXt9O3JldHVybiBpLmZvckVhY2hFbnRyeShBLChJLHIpPT57dCh4SShJKSxyLGUsMCl9KSxlfXJldHVybiBudWxsfXZhciBKQT1qSTtmdW5jdGlvbiBXSShBLHQsZSl7aWYoaS5pc1N0cmluZyhBKSl0cnl7cmV0dXJuKHR8fEpTT04ucGFyc2UpKEEpLGkudHJpbShBKX1jYXRjaChJKXtpZihJLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IEl9cmV0dXJuKGV8fEpTT04uc3RyaW5naWZ5KShBKX12YXIgZ3Q9e3RyYW5zaXRpb25hbDpiQSxhZGFwdGVyOlsieGhyIiwiaHR0cCIsImZldGNoIl0sdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24odCxlKXtsZXQgST1lLmdldENvbnRlbnRUeXBlKCl8fCIiLHI9SS5pbmRleE9mKCJhcHBsaWNhdGlvbi9qc29uIik+LTEsZz1pLmlzT2JqZWN0KHQpO2lmKGcmJmkuaXNIVE1MRm9ybSh0KSYmKHQ9bmV3IEZvcm1EYXRhKHQpKSxpLmlzRm9ybURhdGEodCkpcmV0dXJuIHI/SlNPTi5zdHJpbmdpZnkoSkEodCkpOnQ7aWYoaS5pc0FycmF5QnVmZmVyKHQpfHxpLmlzQnVmZmVyKHQpfHxpLmlzU3RyZWFtKHQpfHxpLmlzRmlsZSh0KXx8aS5pc0Jsb2IodCl8fGkuaXNSZWFkYWJsZVN0cmVhbSh0KSlyZXR1cm4gdDtpZihpLmlzQXJyYXlCdWZmZXJWaWV3KHQpKXJldHVybiB0LmJ1ZmZlcjtpZihpLmlzVVJMU2VhcmNoUGFyYW1zKHQpKXJldHVybiBlLnNldENvbnRlbnRUeXBlKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsITEpLHQudG9TdHJpbmcoKTtsZXQgbjtpZihnKXtpZihJLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpPi0xKXJldHVybiBvdCh0LHRoaXMuZm9ybVNlcmlhbGl6ZXIpLnRvU3RyaW5nKCk7aWYoKG49aS5pc0ZpbGVMaXN0KHQpKXx8SS5pbmRleE9mKCJtdWx0aXBhcnQvZm9ybS1kYXRhIik+LTEpe2xldCBFPXRoaXMuZW52JiZ0aGlzLmVudi5Gb3JtRGF0YTtyZXR1cm4gVChuP3siZmlsZXNbXSI6dH06dCxFJiZuZXcgRSx0aGlzLmZvcm1TZXJpYWxpemVyKX19cmV0dXJuIGd8fHI/KGUuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL2pzb24iLCExKSxXSSh0KSk6dH1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbih0KXtsZXQgZT10aGlzLnRyYW5zaXRpb25hbHx8Z3QudHJhbnNpdGlvbmFsLEk9ZSYmZS5mb3JjZWRKU09OUGFyc2luZyxyPXRoaXMucmVzcG9uc2VUeXBlPT09Impzb24iO2lmKGkuaXNSZXNwb25zZSh0KXx8aS5pc1JlYWRhYmxlU3RyZWFtKHQpKXJldHVybiB0O2lmKHQmJmkuaXNTdHJpbmcodCkmJihJJiYhdGhpcy5yZXNwb25zZVR5cGV8fHIpKXtsZXQgbz0hKGUmJmUuc2lsZW50SlNPTlBhcnNpbmcpJiZyO3RyeXtyZXR1cm4gSlNPTi5wYXJzZSh0LHRoaXMucGFyc2VSZXZpdmVyKX1jYXRjaChuKXtpZihvKXRocm93IG4ubmFtZT09PSJTeW50YXhFcnJvciI/dS5mcm9tKG4sdS5FUlJfQkFEX1JFU1BPTlNFLHRoaXMsbnVsbCx0aGlzLnJlc3BvbnNlKTpufX1yZXR1cm4gdH1dLHRpbWVvdXQ6MCx4c3JmQ29va2llTmFtZToiWFNSRi1UT0tFTiIseHNyZkhlYWRlck5hbWU6IlgtWFNSRi1UT0tFTiIsbWF4Q29udGVudExlbmd0aDotMSxtYXhCb2R5TGVuZ3RoOi0xLGVudjp7Rm9ybURhdGE6aC5jbGFzc2VzLkZvcm1EYXRhLEJsb2I6aC5jbGFzc2VzLkJsb2J9LHZhbGlkYXRlU3RhdHVzOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMDAmJnQ8MzAwfSxoZWFkZXJzOntjb21tb246e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiwiQ29udGVudC1UeXBlIjp2b2lkIDB9fX07aS5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCJdLEE9PntndC5oZWFkZXJzW0FdPXt9fSk7dmFyIEFBPWd0O3ZhciBaST1pLnRvT2JqZWN0U2V0KFsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il0pLHRlPUE9PntsZXQgdD17fSxlLEkscjtyZXR1cm4gQSYmQS5zcGxpdChgJTBBYCkuZm9yRWFjaChmdW5jdGlvbihvKXtyPW8uaW5kZXhPZigiOiIpLGU9by5zdWJzdHJpbmcoMCxyKS50cmltKCkudG9Mb3dlckNhc2UoKSxJPW8uc3Vic3RyaW5nKHIrMSkudHJpbSgpLCEoIWV8fHRbZV0mJlpJW2VdKSYmKGU9PT0ic2V0LWNvb2tpZSI/dFtlXT90W2VdLnB1c2goSSk6dFtlXT1bSV06dFtlXT10W2VdP3RbZV0rIiwgIitJOkkpfSksdH07dmFyIGVlPVN5bWJvbCgiaW50ZXJuYWxzIik7ZnVuY3Rpb24gQ0EoQSl7cmV0dXJuIEEmJlN0cmluZyhBKS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBIQShBKXtyZXR1cm4gQT09PSExfHxBPT1udWxsP0E6aS5pc0FycmF5KEEpP0EubWFwKEhBKTpTdHJpbmcoQSl9ZnVuY3Rpb24gVkkoQSl7bGV0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKSxlPS8oW15cXHMsOz1dKylcXHMqKD86PVxccyooW14sO10rKSk/L2csSTtmb3IoO0k9ZS5leGVjKEEpOyl0W0lbMV1dPUlbMl07cmV0dXJuIHR9dmFyIFhJPUE9Pi9eWy1fYS16QS1aMC05XmB8fiwhJTIzJCUmXCcqKy5dKyQvLnRlc3QoQS50cmltKCkpO2Z1bmN0aW9uIGl0KEEsdCxlLEkscil7aWYoaS5pc0Z1bmN0aW9uKEkpKXJldHVybiBJLmNhbGwodGhpcyx0LGUpO2lmKHImJih0PWUpLCEhaS5pc1N0cmluZyh0KSl7aWYoaS5pc1N0cmluZyhJKSlyZXR1cm4gdC5pbmRleE9mKEkpIT09LTE7aWYoaS5pc1JlZ0V4cChJKSlyZXR1cm4gSS50ZXN0KHQpfX1mdW5jdGlvbiBfSShBKXtyZXR1cm4gQS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8oW2EtelxcZF0pKFxcdyopL2csKHQsZSxJKT0+ZS50b1VwcGVyQ2FzZSgpK0kpfWZ1bmN0aW9uIHpJKEEsdCl7bGV0IGU9aS50b0NhbWVsQ2FzZSgiICIrdCk7WyJnZXQiLCJzZXQiLCJoYXMiXS5mb3JFYWNoKEk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxJK2Use3ZhbHVlOmZ1bmN0aW9uKHIsZyxvKXtyZXR1cm4gdGhpc1tJXS5jYWxsKHRoaXMsdCxyLGcsbyl9LGNvbmZpZ3VyYWJsZTohMH0pfSl9dmFyIHRBPWNsYXNze2NvbnN0cnVjdG9yKHQpe3QmJnRoaXMuc2V0KHQpfXNldCh0LGUsSSl7bGV0IHI9dGhpcztmdW5jdGlvbiBnKG4sRSxCKXtsZXQgcz1DQShFKTtpZighcyl0aHJvdyBuZXcgRXJyb3IoImhlYWRlciBuYW1lIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nIik7bGV0IEM9aS5maW5kS2V5KHIscyk7KCFDfHxyW0NdPT09dm9pZCAwfHxCPT09ITB8fEI9PT12b2lkIDAmJnJbQ10hPT0hMSkmJihyW0N8fEVdPUhBKG4pKX1sZXQgbz0obixFKT0+aS5mb3JFYWNoKG4sKEIscyk9PmcoQixzLEUpKTtpZihpLmlzUGxhaW5PYmplY3QodCl8fHQgaW5zdGFuY2VvZiB0aGlzLmNvbnN0cnVjdG9yKW8odCxlKTtlbHNlIGlmKGkuaXNTdHJpbmcodCkmJih0PXQudHJpbSgpKSYmIVhJKHQpKW8odGUodCksZSk7ZWxzZSBpZihpLmlzT2JqZWN0KHQpJiZpLmlzSXRlcmFibGUodCkpe2xldCBuPXt9LEUsQjtmb3IobGV0IHMgb2YgdCl7aWYoIWkuaXNBcnJheShzKSl0aHJvdyBUeXBlRXJyb3IoIk9iamVjdCBpdGVyYXRvciBtdXN0IHJldHVybiBhIGtleS12YWx1ZSBwYWlyIik7bltCPXNbMF1dPShFPW5bQl0pP2kuaXNBcnJheShFKT9bLi4uRSxzWzFdXTpbRSxzWzFdXTpzWzFdfW8obixlKX1lbHNlIHQhPW51bGwmJmcoZSx0LEkpO3JldHVybiB0aGlzfWdldCh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7aWYoSSl7bGV0IHI9dGhpc1tJXTtpZighZSlyZXR1cm4gcjtpZihlPT09ITApcmV0dXJuIFZJKHIpO2lmKGkuaXNGdW5jdGlvbihlKSlyZXR1cm4gZS5jYWxsKHRoaXMscixJKTtpZihpLmlzUmVnRXhwKGUpKXJldHVybiBlLmV4ZWMocik7dGhyb3cgbmV3IFR5cGVFcnJvcigicGFyc2VyIG11c3QgYmUgYm9vbGVhbnxyZWdleHB8ZnVuY3Rpb24iKX19fWhhcyh0LGUpe2lmKHQ9Q0EodCksdCl7bGV0IEk9aS5maW5kS2V5KHRoaXMsdCk7cmV0dXJuISEoSSYmdGhpc1tJXSE9PXZvaWQgMCYmKCFlfHxpdCh0aGlzLHRoaXNbSV0sSSxlKSkpfXJldHVybiExfWRlbGV0ZSh0LGUpe2xldCBJPXRoaXMscj0hMTtmdW5jdGlvbiBnKG8pe2lmKG89Q0Eobyksbyl7bGV0IG49aS5maW5kS2V5KEksbyk7biYmKCFlfHxpdChJLElbbl0sbixlKSkmJihkZWxldGUgSVtuXSxyPSEwKX19cmV0dXJuIGkuaXNBcnJheSh0KT90LmZvckVhY2goZyk6Zyh0KSxyfWNsZWFyKHQpe2xldCBlPU9iamVjdC5rZXlzKHRoaXMpLEk9ZS5sZW5ndGgscj0hMTtmb3IoO0ktLTspe2xldCBnPWVbSV07KCF0fHxpdCh0aGlzLHRoaXNbZ10sZyx0LCEwKSkmJihkZWxldGUgdGhpc1tnXSxyPSEwKX1yZXR1cm4gcn1ub3JtYWxpemUodCl7bGV0IGU9dGhpcyxJPXt9O3JldHVybiBpLmZvckVhY2godGhpcywocixnKT0+e2xldCBvPWkuZmluZEtleShJLGcpO2lmKG8pe2Vbb109SEEociksZGVsZXRlIGVbZ107cmV0dXJufWxldCBuPXQ/X0koZyk6U3RyaW5nKGcpLnRyaW0oKTtuIT09ZyYmZGVsZXRlIGVbZ10sZVtuXT1IQShyKSxJW25dPSEwfSksdGhpc31jb25jYXQoLi4udCl7cmV0dXJuIHRoaXMuY29uc3RydWN0b3IuY29uY2F0KHRoaXMsLi4udCl9dG9KU09OKHQpe2xldCBlPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGkuZm9yRWFjaCh0aGlzLChJLHIpPT57SSE9bnVsbCYmSSE9PSExJiYoZVtyXT10JiZpLmlzQXJyYXkoSSk/SS5qb2luKCIsICIpOkkpfSksZX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnRvSlNPTigpKVtTeW1ib2wuaXRlcmF0b3JdKCl9dG9TdHJpbmcoKXtyZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy50b0pTT04oKSkubWFwKChbdCxlXSk9PnQrIjogIitlKS5qb2luKGAlMEFgKX1nZXRTZXRDb29raWUoKXtyZXR1cm4gdGhpcy5nZXQoInNldC1jb29raWUiKXx8W119Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iQXhpb3NIZWFkZXJzIn1zdGF0aWMgZnJvbSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHRoaXM/dDpuZXcgdGhpcyh0KX1zdGF0aWMgY29uY2F0KHQsLi4uZSl7bGV0IEk9bmV3IHRoaXModCk7cmV0dXJuIGUuZm9yRWFjaChyPT5JLnNldChyKSksSX1zdGF0aWMgYWNjZXNzb3IodCl7bGV0IEk9KHRoaXNbZWVdPXRoaXNbZWVdPXthY2Nlc3NvcnM6e319KS5hY2Nlc3NvcnMscj10aGlzLnByb3RvdHlwZTtmdW5jdGlvbiBnKG8pe2xldCBuPUNBKG8pO0lbbl18fCh6SShyLG8pLElbbl09ITApfXJldHVybiBpLmlzQXJyYXkodCk/dC5mb3JFYWNoKGcpOmcodCksdGhpc319O3RBLmFjY2Vzc29yKFsiQ29udGVudC1UeXBlIiwiQ29udGVudC1MZW5ndGgiLCJBY2NlcHQiLCJBY2NlcHQtRW5jb2RpbmciLCJVc2VyLUFnZW50IiwiQXV0aG9yaXphdGlvbiJdKTtpLnJlZHVjZURlc2NyaXB0b3JzKHRBLnByb3RvdHlwZSwoe3ZhbHVlOkF9LHQpPT57bGV0IGU9dFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7cmV0dXJue2dldDooKT0+QSxzZXQoSSl7dGhpc1tlXT1JfX19KTtpLmZyZWV6ZU1ldGhvZHModEEpO3ZhciBwPXRBO2Z1bmN0aW9uIEJBKEEsdCl7bGV0IGU9dGhpc3x8QUEsST10fHxlLHI9cC5mcm9tKEkuaGVhZGVycyksZz1JLmRhdGE7cmV0dXJuIGkuZm9yRWFjaChBLGZ1bmN0aW9uKG4pe2c9bi5jYWxsKGUsZyxyLm5vcm1hbGl6ZSgpLHQ/dC5zdGF0dXM6dm9pZCAwKX0pLHIubm9ybWFsaXplKCksZ31mdW5jdGlvbiBhQShBKXtyZXR1cm4hIShBJiZBLl9fQ0FOQ0VMX18pfWZ1bmN0aW9uIEllKEEsdCxlKXt1LmNhbGwodGhpcyxBPz8iY2FuY2VsZWQiLHUuRVJSX0NBTkNFTEVELHQsZSksdGhpcy5uYW1lPSJDYW5jZWxlZEVycm9yIn1pLmluaGVyaXRzKEllLHUse19fQ0FOQ0VMX186ITB9KTt2YXIgSD1JZTtmdW5jdGlvbiBRQShBLHQsZSl7bGV0IEk9ZS5jb25maWcudmFsaWRhdGVTdGF0dXM7IWUuc3RhdHVzfHwhSXx8SShlLnN0YXR1cyk/QShlKTp0KG5ldyB1KCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICIrZS5zdGF0dXMsW3UuRVJSX0JBRF9SRVFVRVNULHUuRVJSX0JBRF9SRVNQT05TRV1bTWF0aC5mbG9vcihlLnN0YXR1cy8xMDApLTRdLGUuY29uZmlnLGUucmVxdWVzdCxlKSl9ZnVuY3Rpb24gc3QoQSl7bGV0IHQ9L14oWy0rXFx3XXsxLDI1fSkoOj9cXC9cXC98OikvLmV4ZWMoQSk7cmV0dXJuIHQmJnRbMV18fCIifWZ1bmN0aW9uIHZJKEEsdCl7QT1BfHwxMDtsZXQgZT1uZXcgQXJyYXkoQSksST1uZXcgQXJyYXkoQSkscj0wLGc9MCxvO3JldHVybiB0PXQhPT12b2lkIDA/dDoxZTMsZnVuY3Rpb24oRSl7bGV0IEI9RGF0ZS5ub3coKSxzPUlbZ107b3x8KG89QiksZVtyXT1FLElbcl09QjtsZXQgQz1nLGw9MDtmb3IoO0MhPT1yOylsKz1lW0MrK10sQz1DJUE7aWYocj0ocisxKSVBLHI9PT1nJiYoZz0oZysxKSVBKSxCLW88dClyZXR1cm47bGV0IGE9cyYmQi1zO3JldHVybiBhP01hdGgucm91bmQobCoxZTMvYSk6dm9pZCAwfX12YXIgcmU9dkk7ZnVuY3Rpb24gJEkoQSx0KXtsZXQgZT0wLEk9MWUzL3QscixnLG89KEIscz1EYXRlLm5vdygpKT0+e2U9cyxyPW51bGwsZyYmKGNsZWFyVGltZW91dChnKSxnPW51bGwpLEEoLi4uQil9O3JldHVyblsoLi4uQik9PntsZXQgcz1EYXRlLm5vdygpLEM9cy1lO0M+PUk/byhCLHMpOihyPUIsZ3x8KGc9c2V0VGltZW91dCgoKT0+e2c9bnVsbCxvKHIpfSxJLUMpKSl9LCgpPT5yJiZvKHIpXX12YXIgb2U9JEk7dmFyIGVBPShBLHQsZT0zKT0+e2xldCBJPTAscj1yZSg1MCwyNTApO3JldHVybiBvZShnPT57bGV0IG89Zy5sb2FkZWQsbj1nLmxlbmd0aENvbXB1dGFibGU/Zy50b3RhbDp2b2lkIDAsRT1vLUksQj1yKEUpLHM9bzw9bjtJPW87bGV0IEM9e2xvYWRlZDpvLHRvdGFsOm4scHJvZ3Jlc3M6bj9vL246dm9pZCAwLGJ5dGVzOkUscmF0ZTpCfHx2b2lkIDAsZXN0aW1hdGVkOkImJm4mJnM/KG4tbykvQjp2b2lkIDAsZXZlbnQ6ZyxsZW5ndGhDb21wdXRhYmxlOm4hPW51bGwsW3Q/ImRvd25sb2FkIjoidXBsb2FkIl06ITB9O0EoQyl9LGUpfSxudD0oQSx0KT0+e2xldCBlPUEhPW51bGw7cmV0dXJuW0k9PnRbMF0oe2xlbmd0aENvbXB1dGFibGU6ZSx0b3RhbDpBLGxvYWRlZDpJfSksdFsxXV19LEN0PUE9PiguLi50KT0+aS5hc2FwKCgpPT5BKC4uLnQpKTt2YXIgZ2U9aC5oYXNTdGFuZGFyZEJyb3dzZXJFbnY/KChBLHQpPT5lPT4oZT1uZXcgVVJMKGUsaC5vcmlnaW4pLEEucHJvdG9jb2w9PT1lLnByb3RvY29sJiZBLmhvc3Q9PT1lLmhvc3QmJih0fHxBLnBvcnQ9PT1lLnBvcnQpKSkobmV3IFVSTChoLm9yaWdpbiksaC5uYXZpZ2F0b3ImJi8obXNpZXx0cmlkZW50KS9pLnRlc3QoaC5uYXZpZ2F0b3IudXNlckFnZW50KSk6KCk9PiEwO3ZhciBpZT1oLmhhc1N0YW5kYXJkQnJvd3NlckVudj97d3JpdGUoQSx0LGUsSSxyLGcpe2xldCBvPVtBKyI9IitlbmNvZGVVUklDb21wb25lbnQodCldO2kuaXNOdW1iZXIoZSkmJm8ucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKGUpLnRvR01UU3RyaW5nKCkpLGkuaXNTdHJpbmcoSSkmJm8ucHVzaCgicGF0aD0iK0kpLGkuaXNTdHJpbmcocikmJm8ucHVzaCgiZG9tYWluPSIrciksZz09PSEwJiZvLnB1c2goInNlY3VyZSIpLGRvY3VtZW50LmNvb2tpZT1vLmpvaW4oIjsgIil9LHJlYWQoQSl7bGV0IHQ9ZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoIihefDtcXFxccyopKCIrQSsiKT0oW147XSopIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmUoQSl7dGhpcy53cml0ZShBLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlKCl7fSxyZWFkKCl7cmV0dXJuIG51bGx9LHJlbW92ZSgpe319O2Z1bmN0aW9uIEJ0KEEpe3JldHVybi9eKFthLXpdW2EtelxcZCtcXC0uXSo6KT9cXC9cXC8vaS50ZXN0KEEpfWZ1bmN0aW9uIGF0KEEsdCl7cmV0dXJuIHQ/QS5yZXBsYWNlKC9cXC8/XFwvJC8sIiIpKyIvIit0LnJlcGxhY2UoL15cXC8rLywiIik6QX1mdW5jdGlvbiBFQShBLHQsZSl7bGV0IEk9IUJ0KHQpO3JldHVybiBBJiYoSXx8ZT09ITEpP2F0KEEsdCk6dH12YXIgc2U9QT0+QSBpbnN0YW5jZW9mIHA/ey4uLkF9OkE7ZnVuY3Rpb24gYihBLHQpe3Q9dHx8e307bGV0IGU9e307ZnVuY3Rpb24gSShCLHMsQyxsKXtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KEIpJiZpLmlzUGxhaW5PYmplY3Qocyk/aS5tZXJnZS5jYWxsKHtjYXNlbGVzczpsfSxCLHMpOmkuaXNQbGFpbk9iamVjdChzKT9pLm1lcmdlKHt9LHMpOmkuaXNBcnJheShzKT9zLnNsaWNlKCk6c31mdW5jdGlvbiByKEIscyxDLGwpe2lmKGkuaXNVbmRlZmluZWQocykpe2lmKCFpLmlzVW5kZWZpbmVkKEIpKXJldHVybiBJKHZvaWQgMCxCLEMsbCl9ZWxzZSByZXR1cm4gSShCLHMsQyxsKX1mdW5jdGlvbiBnKEIscyl7aWYoIWkuaXNVbmRlZmluZWQocykpcmV0dXJuIEkodm9pZCAwLHMpfWZ1bmN0aW9uIG8oQixzKXtpZihpLmlzVW5kZWZpbmVkKHMpKXtpZighaS5pc1VuZGVmaW5lZChCKSlyZXR1cm4gSSh2b2lkIDAsQil9ZWxzZSByZXR1cm4gSSh2b2lkIDAscyl9ZnVuY3Rpb24gbihCLHMsQyl7aWYoQyBpbiB0KXJldHVybiBJKEIscyk7aWYoQyBpbiBBKXJldHVybiBJKHZvaWQgMCxCKX1sZXQgRT17dXJsOmcsbWV0aG9kOmcsZGF0YTpnLGJhc2VVUkw6byx0cmFuc2Zvcm1SZXF1ZXN0Om8sdHJhbnNmb3JtUmVzcG9uc2U6byxwYXJhbXNTZXJpYWxpemVyOm8sdGltZW91dDpvLHRpbWVvdXRNZXNzYWdlOm8sd2l0aENyZWRlbnRpYWxzOm8sd2l0aFhTUkZUb2tlbjpvLGFkYXB0ZXI6byxyZXNwb25zZVR5cGU6byx4c3JmQ29va2llTmFtZTpvLHhzcmZIZWFkZXJOYW1lOm8sb25VcGxvYWRQcm9ncmVzczpvLG9uRG93bmxvYWRQcm9ncmVzczpvLGRlY29tcHJlc3M6byxtYXhDb250ZW50TGVuZ3RoOm8sbWF4Qm9keUxlbmd0aDpvLGJlZm9yZVJlZGlyZWN0Om8sdHJhbnNwb3J0Om8saHR0cEFnZW50Om8saHR0cHNBZ2VudDpvLGNhbmNlbFRva2VuOm8sc29ja2V0UGF0aDpvLHJlc3BvbnNlRW5jb2Rpbmc6byx2YWxpZGF0ZVN0YXR1czpuLGhlYWRlcnM6KEIscyxDKT0+cihzZShCKSxzZShzKSxDLCEwKX07cmV0dXJuIGkuZm9yRWFjaChPYmplY3Qua2V5cyh7Li4uQSwuLi50fSksZnVuY3Rpb24ocyl7bGV0IEM9RVtzXXx8cixsPUMoQVtzXSx0W3NdLHMpO2kuaXNVbmRlZmluZWQobCkmJkMhPT1ufHwoZVtzXT1sKX0pLGV9dmFyIFlBPUE9PntsZXQgdD1iKHt9LEEpLHtkYXRhOmUsd2l0aFhTUkZUb2tlbjpJLHhzcmZIZWFkZXJOYW1lOnIseHNyZkNvb2tpZU5hbWU6ZyxoZWFkZXJzOm8sYXV0aDpufT10O2lmKHQuaGVhZGVycz1vPXAuZnJvbShvKSx0LnVybD1uQShFQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyksQS5wYXJhbXMsQS5wYXJhbXNTZXJpYWxpemVyKSxuJiZvLnNldCgiQXV0aG9yaXphdGlvbiIsIkJhc2ljICIrYnRvYSgobi51c2VybmFtZXx8IiIpKyI6Iisobi5wYXNzd29yZD91bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQobi5wYXNzd29yZCkpOiIiKSkpLGkuaXNGb3JtRGF0YShlKSl7aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnZ8fGguaGFzU3RhbmRhcmRCcm93c2VyV2ViV29ya2VyRW52KW8uc2V0Q29udGVudFR5cGUodm9pZCAwKTtlbHNlIGlmKGkuaXNGdW5jdGlvbihlLmdldEhlYWRlcnMpKXtsZXQgRT1lLmdldEhlYWRlcnMoKSxCPVsiY29udGVudC10eXBlIiwiY29udGVudC1sZW5ndGgiXTtPYmplY3QuZW50cmllcyhFKS5mb3JFYWNoKChbcyxDXSk9PntCLmluY2x1ZGVzKHMudG9Mb3dlckNhc2UoKSkmJm8uc2V0KHMsQyl9KX19aWYoaC5oYXNTdGFuZGFyZEJyb3dzZXJFbnYmJihJJiZpLmlzRnVuY3Rpb24oSSkmJihJPUkodCkpLEl8fEkhPT0hMSYmZ2UodC51cmwpKSl7bGV0IEU9ciYmZyYmaWUucmVhZChnKTtFJiZvLnNldChyLEUpfXJldHVybiB0fTt2YXIgQXI9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PCJ1IixuZT1BciYmZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsSSl7bGV0IHI9WUEoQSksZz1yLmRhdGEsbz1wLmZyb20oci5oZWFkZXJzKS5ub3JtYWxpemUoKSx7cmVzcG9uc2VUeXBlOm4sb25VcGxvYWRQcm9ncmVzczpFLG9uRG93bmxvYWRQcm9ncmVzczpCfT1yLHMsQyxsLGEsUTtmdW5jdGlvbiBmKCl7YSYmYSgpLFEmJlEoKSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnVuc3Vic2NyaWJlKHMpLHIuc2lnbmFsJiZyLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIscyl9bGV0IGM9bmV3IFhNTEh0dHBSZXF1ZXN0O2Mub3BlbihyLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHIudXJsLCEwKSxjLnRpbWVvdXQ9ci50aW1lb3V0O2Z1bmN0aW9uIEQoKXtpZighYylyZXR1cm47bGV0IHk9cC5mcm9tKCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gYyYmYy5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksaz17ZGF0YTohbnx8bj09PSJ0ZXh0Inx8bj09PSJqc29uIj9jLnJlc3BvbnNlVGV4dDpjLnJlc3BvbnNlLHN0YXR1czpjLnN0YXR1cyxzdGF0dXNUZXh0OmMuc3RhdHVzVGV4dCxoZWFkZXJzOnksY29uZmlnOkEscmVxdWVzdDpjfTtRQShmdW5jdGlvbihHKXtlKEcpLGYoKX0sZnVuY3Rpb24oRyl7SShHKSxmKCl9LGspLGM9bnVsbH0ib25sb2FkZW5kImluIGM/Yy5vbmxvYWRlbmQ9RDpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpeyFjfHxjLnJlYWR5U3RhdGUhPT00fHxjLnN0YXR1cz09PTAmJiEoYy5yZXNwb25zZVVSTCYmYy5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpPT09MCl8fHNldFRpbWVvdXQoRCl9LGMub25hYm9ydD1mdW5jdGlvbigpe2MmJihJKG5ldyB1KCJSZXF1ZXN0IGFib3J0ZWQiLHUuRUNPTk5BQk9SVEVELEEsYykpLGM9bnVsbCl9LGMub25lcnJvcj1mdW5jdGlvbihSKXtsZXQgaz1SJiZSLm1lc3NhZ2U/Ui5tZXNzYWdlOiJOZXR3b3JrIEVycm9yIixQPW5ldyB1KGssdS5FUlJfTkVUV09SSyxBLGMpO1AuZXZlbnQ9Unx8bnVsbCxJKFApLGM9bnVsbH0sYy5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtsZXQgUj1yLnRpbWVvdXQ/InRpbWVvdXQgb2YgIityLnRpbWVvdXQrIm1zIGV4Y2VlZGVkIjoidGltZW91dCBleGNlZWRlZCIsaz1yLnRyYW5zaXRpb25hbHx8YkE7ci50aW1lb3V0RXJyb3JNZXNzYWdlJiYoUj1yLnRpbWVvdXRFcnJvck1lc3NhZ2UpLEkobmV3IHUoUixrLmNsYXJpZnlUaW1lb3V0RXJyb3I/dS5FVElNRURPVVQ6dS5FQ09OTkFCT1JURUQsQSxjKSksYz1udWxsfSxnPT09dm9pZCAwJiZvLnNldENvbnRlbnRUeXBlKG51bGwpLCJzZXRSZXF1ZXN0SGVhZGVyImluIGMmJmkuZm9yRWFjaChvLnRvSlNPTigpLGZ1bmN0aW9uKFIsayl7Yy5zZXRSZXF1ZXN0SGVhZGVyKGssUil9KSxpLmlzVW5kZWZpbmVkKHIud2l0aENyZWRlbnRpYWxzKXx8KGMud2l0aENyZWRlbnRpYWxzPSEhci53aXRoQ3JlZGVudGlhbHMpLG4mJm4hPT0ianNvbiImJihjLnJlc3BvbnNlVHlwZT1yLnJlc3BvbnNlVHlwZSksQiYmKFtsLFFdPWVBKEIsITApLGMuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLGwpKSxFJiZjLnVwbG9hZCYmKFtDLGFdPWVBKEUpLGMudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixDKSxjLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIixhKSksKHIuY2FuY2VsVG9rZW58fHIuc2lnbmFsKSYmKHM9eT0+e2MmJihJKCF5fHx5LnR5cGU/bmV3IEgobnVsbCxBLGMpOnkpLGMuYWJvcnQoKSxjPW51bGwpfSxyLmNhbmNlbFRva2VuJiZyLmNhbmNlbFRva2VuLnN1YnNjcmliZShzKSxyLnNpZ25hbCYmKHIuc2lnbmFsLmFib3J0ZWQ/cygpOnIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixzKSkpO2xldCBGPXN0KHIudXJsKTtpZihGJiZoLnByb3RvY29scy5pbmRleE9mKEYpPT09LTEpe0kobmV3IHUoIlVuc3VwcG9ydGVkIHByb3RvY29sICIrRisiOiIsdS5FUlJfQkFEX1JFUVVFU1QsQSkpO3JldHVybn1jLnNlbmQoZ3x8bnVsbCl9KX07dmFyIHRyPShBLHQpPT57bGV0e2xlbmd0aDplfT1BPUE/QS5maWx0ZXIoQm9vbGVhbik6W107aWYodHx8ZSl7bGV0IEk9bmV3IEFib3J0Q29udHJvbGxlcixyLGc9ZnVuY3Rpb24oQil7aWYoIXIpe3I9ITAsbigpO2xldCBzPUIgaW5zdGFuY2VvZiBFcnJvcj9COnRoaXMucmVhc29uO0kuYWJvcnQocyBpbnN0YW5jZW9mIHU/czpuZXcgSChzIGluc3RhbmNlb2YgRXJyb3I/cy5tZXNzYWdlOnMpKX19LG89dCYmc2V0VGltZW91dCgoKT0+e289bnVsbCxnKG5ldyB1KGB0aW1lb3V0ICR7dH0gb2YgbXMgZXhjZWVkZWRgLHUuRVRJTUVET1VUKSl9LHQpLG49KCk9PntBJiYobyYmY2xlYXJUaW1lb3V0KG8pLG89bnVsbCxBLmZvckVhY2goQj0+e0IudW5zdWJzY3JpYmU/Qi51bnN1YnNjcmliZShnKTpCLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixnKX0pLEE9bnVsbCl9O0EuZm9yRWFjaChCPT5CLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixnKSk7bGV0e3NpZ25hbDpFfT1JO3JldHVybiBFLnVuc3Vic2NyaWJlPSgpPT5pLmFzYXAobiksRX19LENlPXRyO3ZhciBlcj1mdW5jdGlvbiooQSx0KXtsZXQgZT1BLmJ5dGVMZW5ndGg7aWYoIXR8fGU8dCl7eWllbGQgQTtyZXR1cm59bGV0IEk9MCxyO2Zvcig7STxlOylyPUkrdCx5aWVsZCBBLnNsaWNlKEksciksST1yfSxJcj1hc3luYyBmdW5jdGlvbiooQSx0KXtmb3IgYXdhaXQobGV0IGUgb2YgcnIoQSkpeWllbGQqZXIoZSx0KX0scnI9YXN5bmMgZnVuY3Rpb24qKEEpe2lmKEFbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKXt5aWVsZCpBO3JldHVybn1sZXQgdD1BLmdldFJlYWRlcigpO3RyeXtmb3IoOzspe2xldHtkb25lOmUsdmFsdWU6SX09YXdhaXQgdC5yZWFkKCk7aWYoZSlicmVhazt5aWVsZCBJfX1maW5hbGx5e2F3YWl0IHQuY2FuY2VsKCl9fSxRdD0oQSx0LGUsSSk9PntsZXQgcj1JcihBLHQpLGc9MCxvLG49RT0+e298fChvPSEwLEkmJkkoRSkpfTtyZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHthc3luYyBwdWxsKEUpe3RyeXtsZXR7ZG9uZTpCLHZhbHVlOnN9PWF3YWl0IHIubmV4dCgpO2lmKEIpe24oKSxFLmNsb3NlKCk7cmV0dXJufWxldCBDPXMuYnl0ZUxlbmd0aDtpZihlKXtsZXQgbD1nKz1DO2UobCl9RS5lbnF1ZXVlKG5ldyBVaW50OEFycmF5KHMpKX1jYXRjaChCKXt0aHJvdyBuKEIpLEJ9fSxjYW5jZWwoRSl7cmV0dXJuIG4oRSksci5yZXR1cm4oKX19LHtoaWdoV2F0ZXJNYXJrOjJ9KX07dmFyIEJlPTY0KjEwMjQse2lzRnVuY3Rpb246cUF9PWksY2U9KCh7ZmV0Y2g6QSxSZXF1ZXN0OnQsUmVzcG9uc2U6ZX0pPT4oe2ZldGNoOkEsUmVxdWVzdDp0LFJlc3BvbnNlOmV9KSkoaS5nbG9iYWwpLHtSZWFkYWJsZVN0cmVhbTphZSxUZXh0RW5jb2RlcjpRZX09aS5nbG9iYWwsRWU9KEEsLi4udCk9Pnt0cnl7cmV0dXJuISFBKC4uLnQpfWNhdGNoe3JldHVybiExfX0sb3I9QT0+e2xldHtmZXRjaDp0LFJlcXVlc3Q6ZSxSZXNwb25zZTpJfT1PYmplY3QuYXNzaWduKHt9LGNlLEEpLHI9cUEodCksZz1xQShlKSxvPXFBKEkpO2lmKCFyKXJldHVybiExO2xldCBuPXImJnFBKGFlKSxFPXImJih0eXBlb2YgUWU9PSJmdW5jdGlvbiI/KFE9PmY9PlEuZW5jb2RlKGYpKShuZXcgUWUpOmFzeW5jIFE9Pm5ldyBVaW50OEFycmF5KGF3YWl0IG5ldyBlKFEpLmFycmF5QnVmZmVyKCkpKSxCPWcmJm4mJkVlKCgpPT57bGV0IFE9ITEsZj1uZXcgZShoLm9yaWdpbix7Ym9keTpuZXcgYWUsbWV0aG9kOiJQT1NUIixnZXQgZHVwbGV4KCl7cmV0dXJuIFE9ITAsImhhbGYifX0pLmhlYWRlcnMuaGFzKCJDb250ZW50LVR5cGUiKTtyZXR1cm4gUSYmIWZ9KSxzPW8mJm4mJkVlKCgpPT5pLmlzUmVhZGFibGVTdHJlYW0obmV3IEkoIiIpLmJvZHkpKSxDPXtzdHJlYW06cyYmKFE9PlEuYm9keSl9O3ImJlsidGV4dCIsImFycmF5QnVmZmVyIiwiYmxvYiIsImZvcm1EYXRhIiwic3RyZWFtIl0uZm9yRWFjaChRPT57IUNbUV0mJihDW1FdPShmLGMpPT57bGV0IEQ9ZiYmZltRXTtpZihEKXJldHVybiBELmNhbGwoZik7dGhyb3cgbmV3IHUoYFJlc3BvbnNlIHR5cGUgXCcke1F9XCcgaXMgbm90IHN1cHBvcnRlZGAsdS5FUlJfTk9UX1NVUFBPUlQsYyl9KX0pO2xldCBsPWFzeW5jIFE9PntpZihRPT1udWxsKXJldHVybiAwO2lmKGkuaXNCbG9iKFEpKXJldHVybiBRLnNpemU7aWYoaS5pc1NwZWNDb21wbGlhbnRGb3JtKFEpKXJldHVybihhd2FpdCBuZXcgZShoLm9yaWdpbix7bWV0aG9kOiJQT1NUIixib2R5OlF9KS5hcnJheUJ1ZmZlcigpKS5ieXRlTGVuZ3RoO2lmKGkuaXNBcnJheUJ1ZmZlclZpZXcoUSl8fGkuaXNBcnJheUJ1ZmZlcihRKSlyZXR1cm4gUS5ieXRlTGVuZ3RoO2lmKGkuaXNVUkxTZWFyY2hQYXJhbXMoUSkmJihRPVErIiIpLGkuaXNTdHJpbmcoUSkpcmV0dXJuKGF3YWl0IEUoUSkpLmJ5dGVMZW5ndGh9LGE9YXN5bmMoUSxmKT0+e2xldCBjPWkudG9GaW5pdGVOdW1iZXIoUS5nZXRDb250ZW50TGVuZ3RoKCkpO3JldHVybiBjPz9sKGYpfTtyZXR1cm4gYXN5bmMgUT0+e2xldHt1cmw6ZixtZXRob2Q6YyxkYXRhOkQsc2lnbmFsOkYsY2FuY2VsVG9rZW46eSx0aW1lb3V0OlIsb25Eb3dubG9hZFByb2dyZXNzOmssb25VcGxvYWRQcm9ncmVzczpQLHJlc3BvbnNlVHlwZTpHLGhlYWRlcnM6V0Esd2l0aENyZWRlbnRpYWxzOmRBPSJzYW1lLW9yaWdpbiIsZmV0Y2hPcHRpb25zOm10fT1ZQShRKTtHPUc/KEcrIiIpLnRvTG93ZXJDYXNlKCk6InRleHQiO2xldCBEQT1DZShbRix5JiZ5LnRvQWJvcnRTaWduYWwoKV0sUiksckE9bnVsbCxqPURBJiZEQS51bnN1YnNjcmliZSYmKCgpPT57REEudW5zdWJzY3JpYmUoKX0pLHd0O3RyeXtpZihQJiZCJiZjIT09ImdldCImJmMhPT0iaGVhZCImJih3dD1hd2FpdCBhKFdBLEQpKSE9PTApe2xldCBPPW5ldyBlKGYse21ldGhvZDoiUE9TVCIsYm9keTpELGR1cGxleDoiaGFsZiJ9KSxYO2lmKGkuaXNGb3JtRGF0YShEKSYmKFg9Ty5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpJiZXQS5zZXRDb250ZW50VHlwZShYKSxPLmJvZHkpe2xldFtaQSxoQV09bnQod3QsZUEoQ3QoUCkpKTtEPVF0KE8uYm9keSxCZSxaQSxoQSl9fWkuaXNTdHJpbmcoZEEpfHwoZEE9ZEE/ImluY2x1ZGUiOiJvbWl0Iik7bGV0IEo9ZyYmImNyZWRlbnRpYWxzImluIGUucHJvdG90eXBlLHB0PXsuLi5tdCxzaWduYWw6REEsbWV0aG9kOmMudG9VcHBlckNhc2UoKSxoZWFkZXJzOldBLm5vcm1hbGl6ZSgpLnRvSlNPTigpLGJvZHk6RCxkdXBsZXg6ImhhbGYiLGNyZWRlbnRpYWxzOko/ZEE6dm9pZCAwfTtyQT1nJiZuZXcgZShmLHB0KTtsZXQgSz1hd2FpdChnP3QockEsbXQpOnQoZixwdCkpLFN0PXMmJihHPT09InN0cmVhbSJ8fEc9PT0icmVzcG9uc2UiKTtpZihzJiYoa3x8U3QmJmopKXtsZXQgTz17fTtbInN0YXR1cyIsInN0YXR1c1RleHQiLCJoZWFkZXJzIl0uZm9yRWFjaChGdD0+e09bRnRdPUtbRnRdfSk7bGV0IFg9aS50b0Zpbml0ZU51bWJlcihLLmhlYWRlcnMuZ2V0KCJjb250ZW50LWxlbmd0aCIpKSxbWkEsaEFdPWsmJm50KFgsZUEoQ3QoayksITApKXx8W107Sz1uZXcgSShRdChLLmJvZHksQmUsWkEsKCk9PntoQSYmaEEoKSxqJiZqKCl9KSxPKX1HPUd8fCJ0ZXh0IjtsZXQgSGU9YXdhaXQgQ1tpLmZpbmRLZXkoQyxHKXx8InRleHQiXShLLFEpO3JldHVybiFTdCYmaiYmaigpLGF3YWl0IG5ldyBQcm9taXNlKChPLFgpPT57UUEoTyxYLHtkYXRhOkhlLGhlYWRlcnM6cC5mcm9tKEsuaGVhZGVycyksc3RhdHVzOksuc3RhdHVzLHN0YXR1c1RleHQ6Sy5zdGF0dXNUZXh0LGNvbmZpZzpRLHJlcXVlc3Q6ckF9KX0pfWNhdGNoKEope3Rocm93IGomJmooKSxKJiZKLm5hbWU9PT0iVHlwZUVycm9yIiYmL0xvYWQgZmFpbGVkfGZldGNoL2kudGVzdChKLm1lc3NhZ2UpP09iamVjdC5hc3NpZ24obmV3IHUoIk5ldHdvcmsgRXJyb3IiLHUuRVJSX05FVFdPUkssUSxyQSkse2NhdXNlOkouY2F1c2V8fEp9KTp1LmZyb20oSixKJiZKLmNvZGUsUSxyQSl9fX0sZ3I9bmV3IE1hcCxFdD1BPT57bGV0IHQ9aS5tZXJnZS5jYWxsKHtza2lwVW5kZWZpbmVkOiEwfSxjZSxBP0EuZW52Om51bGwpLHtmZXRjaDplLFJlcXVlc3Q6SSxSZXNwb25zZTpyfT10LGc9W0kscixlXSxvPWcubGVuZ3RoLG49byxFLEIscz1ncjtmb3IoO24tLTspRT1nW25dLEI9cy5nZXQoRSksQj09PXZvaWQgMCYmcy5zZXQoRSxCPW4/bmV3IE1hcDpvcih0KSkscz1CO3JldHVybiBCfSxHZz1FdCgpO3ZhciBjdD17aHR0cDprQSx4aHI6bmUsZmV0Y2g6e2dldDpFdH19O2kuZm9yRWFjaChjdCwoQSx0KT0+e2lmKEEpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwibmFtZSIse3ZhbHVlOnR9KX1jYXRjaHt9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsImFkYXB0ZXJOYW1lIix7dmFsdWU6dH0pfX0pO3ZhciBmZT1BPT5gLSAke0F9YCxzcj1BPT5pLmlzRnVuY3Rpb24oQSl8fEE9PT1udWxsfHxBPT09ITEsTUE9e2dldEFkYXB0ZXI6KEEsdCk9PntBPWkuaXNBcnJheShBKT9BOltBXTtsZXR7bGVuZ3RoOmV9PUEsSSxyLGc9e307Zm9yKGxldCBvPTA7bzxlO28rKyl7ST1BW29dO2xldCBuO2lmKHI9SSwhc3IoSSkmJihyPWN0WyhuPVN0cmluZyhJKSkudG9Mb3dlckNhc2UoKV0scj09PXZvaWQgMCkpdGhyb3cgbmV3IHUoYFVua25vd24gYWRhcHRlciBcJyR7bn1cJ2ApO2lmKHImJihpLmlzRnVuY3Rpb24ocil8fChyPXIuZ2V0KHQpKSkpYnJlYWs7Z1tufHwiJTIzIitvXT1yfWlmKCFyKXtsZXQgbz1PYmplY3QuZW50cmllcyhnKS5tYXAoKFtFLEJdKT0+YGFkYXB0ZXIgJHtFfSBgKyhCPT09ITE/ImlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVudmlyb25tZW50IjoiaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnVpbGQiKSksbj1lP28ubGVuZ3RoPjE/YHNpbmNlIDolMEFgK28ubWFwKGZlKS5qb2luKGAlMEFgKToiICIrZmUob1swXSk6ImFzIG5vIGFkYXB0ZXIgc3BlY2lmaWVkIjt0aHJvdyBuZXcgdSgiVGhlcmUgaXMgbm8gc3VpdGFibGUgYWRhcHRlciB0byBkaXNwYXRjaCB0aGUgcmVxdWVzdCAiK24sIkVSUl9OT1RfU1VQUE9SVCIpfXJldHVybiByfSxhZGFwdGVyczpjdH07ZnVuY3Rpb24gZnQoQSl7aWYoQS5jYW5jZWxUb2tlbiYmQS5jYW5jZWxUb2tlbi50aHJvd0lmUmVxdWVzdGVkKCksQS5zaWduYWwmJkEuc2lnbmFsLmFib3J0ZWQpdGhyb3cgbmV3IEgobnVsbCxBKX1mdW5jdGlvbiBLQShBKXtyZXR1cm4gZnQoQSksQS5oZWFkZXJzPXAuZnJvbShBLmhlYWRlcnMpLEEuZGF0YT1CQS5jYWxsKEEsQS50cmFuc2Zvcm1SZXF1ZXN0KSxbInBvc3QiLCJwdXQiLCJwYXRjaCJdLmluZGV4T2YoQS5tZXRob2QpIT09LTEmJkEuaGVhZGVycy5zZXRDb250ZW50VHlwZSgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiwhMSksTUEuZ2V0QWRhcHRlcihBLmFkYXB0ZXJ8fEFBLmFkYXB0ZXIsQSkoQSkudGhlbihmdW5jdGlvbihJKXtyZXR1cm4gZnQoQSksSS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkpLEkuaGVhZGVycz1wLmZyb20oSS5oZWFkZXJzKSxJfSxmdW5jdGlvbihJKXtyZXR1cm4gYUEoSSl8fChmdChBKSxJJiZJLnJlc3BvbnNlJiYoSS5yZXNwb25zZS5kYXRhPUJBLmNhbGwoQSxBLnRyYW5zZm9ybVJlc3BvbnNlLEkucmVzcG9uc2UpLEkucmVzcG9uc2UuaGVhZGVycz1wLmZyb20oSS5yZXNwb25zZS5oZWFkZXJzKSkpLFByb21pc2UucmVqZWN0KEkpfSl9dmFyIE9BPSIxLjEyLjAiO3ZhciBUQT17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goKEEsdCk9PntUQVtBXT1mdW5jdGlvbihJKXtyZXR1cm4gdHlwZW9mIEk9PT1BfHwiYSIrKHQ8MT8ibiAiOiIgIikrQX19KTt2YXIgbGU9e307VEEudHJhbnNpdGlvbmFsPWZ1bmN0aW9uKHQsZSxJKXtmdW5jdGlvbiByKGcsbyl7cmV0dXJuIltBeGlvcyB2IitPQSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uIFwnIitnKyJcJyIrbysoST8iLiAiK0k6IiIpfXJldHVybihnLG8sbik9PntpZih0PT09ITEpdGhyb3cgbmV3IHUocihvLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKGU/IiBpbiAiK2U6IiIpKSx1LkVSUl9ERVBSRUNBVEVEKTtyZXR1cm4gZSYmIWxlW29dJiYobGVbb109ITAsY29uc29sZS53YXJuKHIobywiIGhhcyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgdiIrZSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSx0P3QoZyxvLG4pOiEwfX07VEEuc3BlbGxpbmc9ZnVuY3Rpb24odCl7cmV0dXJuKGUsSSk9Pihjb25zb2xlLndhcm4oYCR7SX0gaXMgbGlrZWx5IGEgbWlzc3BlbGxpbmcgb2YgJHt0fWApLCEwKX07ZnVuY3Rpb24gbnIoQSx0LGUpe2lmKHR5cGVvZiBBIT0ib2JqZWN0Iil0aHJvdyBuZXcgdSgib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIsdS5FUlJfQkFEX09QVElPTl9WQUxVRSk7bGV0IEk9T2JqZWN0LmtleXMoQSkscj1JLmxlbmd0aDtmb3IoO3ItLSA+MDspe2xldCBnPUlbcl0sbz10W2ddO2lmKG8pe2xldCBuPUFbZ10sRT1uPT09dm9pZCAwfHxvKG4sZyxBKTtpZihFIT09ITApdGhyb3cgbmV3IHUoIm9wdGlvbiAiK2crIiBtdXN0IGJlICIrRSx1LkVSUl9CQURfT1BUSU9OX1ZBTFVFKTtjb250aW51ZX1pZihlIT09ITApdGhyb3cgbmV3IHUoIlVua25vd24gb3B0aW9uICIrZyx1LkVSUl9CQURfT1BUSU9OKX19dmFyIGNBPXthc3NlcnRPcHRpb25zOm5yLHZhbGlkYXRvcnM6VEF9O3ZhciBZPWNBLnZhbGlkYXRvcnMsSUE9Y2xhc3N7Y29uc3RydWN0b3IodCl7dGhpcy5kZWZhdWx0cz10fHx7fSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgdHQscmVzcG9uc2U6bmV3IHR0fX1hc3luYyByZXF1ZXN0KHQsZSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl9yZXF1ZXN0KHQsZSl9Y2F0Y2goSSl7aWYoSSBpbnN0YW5jZW9mIEVycm9yKXtsZXQgcj17fTtFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZShyKTpyPW5ldyBFcnJvcjtsZXQgZz1yLnN0YWNrP3Iuc3RhY2sucmVwbGFjZSgvXi4rXFxuLywiIik6IiI7dHJ5e0kuc3RhY2s/ZyYmIVN0cmluZyhJLnN0YWNrKS5lbmRzV2l0aChnLnJlcGxhY2UoL14uK1xcbi4rXFxuLywiIikpJiYoSS5zdGFjays9YCUwQWArZyk6SS5zdGFjaz1nfWNhdGNoe319dGhyb3cgSX19X3JlcXVlc3QodCxlKXt0eXBlb2YgdD09InN0cmluZyI/KGU9ZXx8e30sZS51cmw9dCk6ZT10fHx7fSxlPWIodGhpcy5kZWZhdWx0cyxlKTtsZXR7dHJhbnNpdGlvbmFsOkkscGFyYW1zU2VyaWFsaXplcjpyLGhlYWRlcnM6Z309ZTtJIT09dm9pZCAwJiZjQS5hc3NlcnRPcHRpb25zKEkse3NpbGVudEpTT05QYXJzaW5nOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbiksZm9yY2VkSlNPTlBhcnNpbmc6WS50cmFuc2l0aW9uYWwoWS5ib29sZWFuKSxjbGFyaWZ5VGltZW91dEVycm9yOlkudHJhbnNpdGlvbmFsKFkuYm9vbGVhbil9LCExKSxyIT1udWxsJiYoaS5pc0Z1bmN0aW9uKHIpP2UucGFyYW1zU2VyaWFsaXplcj17c2VyaWFsaXplOnJ9OmNBLmFzc2VydE9wdGlvbnMocix7ZW5jb2RlOlkuZnVuY3Rpb24sc2VyaWFsaXplOlkuZnVuY3Rpb259LCEwKSksZS5hbGxvd0Fic29sdXRlVXJscyE9PXZvaWQgMHx8KHRoaXMuZGVmYXVsdHMuYWxsb3dBYnNvbHV0ZVVybHMhPT12b2lkIDA/ZS5hbGxvd0Fic29sdXRlVXJscz10aGlzLmRlZmF1bHRzLmFsbG93QWJzb2x1dGVVcmxzOmUuYWxsb3dBYnNvbHV0ZVVybHM9ITApLGNBLmFzc2VydE9wdGlvbnMoZSx7YmFzZVVybDpZLnNwZWxsaW5nKCJiYXNlVVJMIiksd2l0aFhzcmZUb2tlbjpZLnNwZWxsaW5nKCJ3aXRoWFNSRlRva2VuIil9LCEwKSxlLm1ldGhvZD0oZS5tZXRob2R8fHRoaXMuZGVmYXVsdHMubWV0aG9kfHwiZ2V0IikudG9Mb3dlckNhc2UoKTtsZXQgbz1nJiZpLm1lcmdlKGcuY29tbW9uLGdbZS5tZXRob2RdKTtnJiZpLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwicG9zdCIsInB1dCIsInBhdGNoIiwiY29tbW9uIl0sUT0+e2RlbGV0ZSBnW1FdfSksZS5oZWFkZXJzPXAuY29uY2F0KG8sZyk7bGV0IG49W10sRT0hMDt0aGlzLmludGVyY2VwdG9ycy5yZXF1ZXN0LmZvckVhY2goZnVuY3Rpb24oZil7dHlwZW9mIGYucnVuV2hlbj09ImZ1bmN0aW9uIiYmZi5ydW5XaGVuKGUpPT09ITF8fChFPUUmJmYuc3luY2hyb25vdXMsbi51bnNoaWZ0KGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpKX0pO2xldCBCPVtdO3RoaXMuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLmZvckVhY2goZnVuY3Rpb24oZil7Qi5wdXNoKGYuZnVsZmlsbGVkLGYucmVqZWN0ZWQpfSk7bGV0IHMsQz0wLGw7aWYoIUUpe2xldCBRPVtLQS5iaW5kKHRoaXMpLHZvaWQgMF07Zm9yKFEudW5zaGlmdCguLi5uKSxRLnB1c2goLi4uQiksbD1RLmxlbmd0aCxzPVByb21pc2UucmVzb2x2ZShlKTtDPGw7KXM9cy50aGVuKFFbQysrXSxRW0MrK10pO3JldHVybiBzfWw9bi5sZW5ndGg7bGV0IGE9ZTtmb3IoQz0wO0M8bDspe2xldCBRPW5bQysrXSxmPW5bQysrXTt0cnl7YT1RKGEpfWNhdGNoKGMpe2YuY2FsbCh0aGlzLGMpO2JyZWFrfX10cnl7cz1LQS5jYWxsKHRoaXMsYSl9Y2F0Y2goUSl7cmV0dXJuIFByb21pc2UucmVqZWN0KFEpfWZvcihDPTAsbD1CLmxlbmd0aDtDPGw7KXM9cy50aGVuKEJbQysrXSxCW0MrK10pO3JldHVybiBzfWdldFVyaSh0KXt0PWIodGhpcy5kZWZhdWx0cyx0KTtsZXQgZT1FQSh0LmJhc2VVUkwsdC51cmwsdC5hbGxvd0Fic29sdXRlVXJscyk7cmV0dXJuIG5BKGUsdC5wYXJhbXMsdC5wYXJhbXNTZXJpYWxpemVyKX19O2kuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24odCl7SUEucHJvdG90eXBlW3RdPWZ1bmN0aW9uKGUsSSl7cmV0dXJuIHRoaXMucmVxdWVzdChiKEl8fHt9LHttZXRob2Q6dCx1cmw6ZSxkYXRhOihJfHx7fSkuZGF0YX0pKX19KTtpLmZvckVhY2goWyJwb3N0IiwicHV0IiwicGF0Y2giXSxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKEkpe3JldHVybiBmdW5jdGlvbihnLG8sbil7cmV0dXJuIHRoaXMucmVxdWVzdChiKG58fHt9LHttZXRob2Q6dCxoZWFkZXJzOkk/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOmcsZGF0YTpvfSkpfX1JQS5wcm90b3R5cGVbdF09ZSgpLElBLnByb3RvdHlwZVt0KyJGb3JtIl09ZSghMCl9KTt2YXIgZkE9SUE7dmFyIGx0PWNsYXNzIEF7Y29uc3RydWN0b3IodCl7aWYodHlwZW9mIHQhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO2xldCBlO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihnKXtlPWd9KTtsZXQgST10aGlzO3RoaXMucHJvbWlzZS50aGVuKHI9PntpZighSS5fbGlzdGVuZXJzKXJldHVybjtsZXQgZz1JLl9saXN0ZW5lcnMubGVuZ3RoO2Zvcig7Zy0tID4wOylJLl9saXN0ZW5lcnNbZ10ocik7SS5fbGlzdGVuZXJzPW51bGx9KSx0aGlzLnByb21pc2UudGhlbj1yPT57bGV0IGcsbz1uZXcgUHJvbWlzZShuPT57SS5zdWJzY3JpYmUobiksZz1ufSkudGhlbihyKTtyZXR1cm4gby5jYW5jZWw9ZnVuY3Rpb24oKXtJLnVuc3Vic2NyaWJlKGcpfSxvfSx0KGZ1bmN0aW9uKGcsbyxuKXtJLnJlYXNvbnx8KEkucmVhc29uPW5ldyBIKGcsbyxuKSxlKEkucmVhc29uKSl9KX10aHJvd0lmUmVxdWVzdGVkKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259c3Vic2NyaWJlKHQpe2lmKHRoaXMucmVhc29uKXt0KHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKHQpOnRoaXMuX2xpc3RlbmVycz1bdF19dW5zdWJzY3JpYmUodCl7aWYoIXRoaXMuX2xpc3RlbmVycylyZXR1cm47bGV0IGU9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YodCk7ZSE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKGUsMSl9dG9BYm9ydFNpZ25hbCgpe2xldCB0PW5ldyBBYm9ydENvbnRyb2xsZXIsZT1JPT57dC5hYm9ydChJKX07cmV0dXJuIHRoaXMuc3Vic2NyaWJlKGUpLHQuc2lnbmFsLnVuc3Vic2NyaWJlPSgpPT50aGlzLnVuc3Vic2NyaWJlKGUpLHQuc2lnbmFsfXN0YXRpYyBzb3VyY2UoKXtsZXQgdDtyZXR1cm57dG9rZW46bmV3IEEoZnVuY3Rpb24ocil7dD1yfSksY2FuY2VsOnR9fX0sdWU9bHQ7ZnVuY3Rpb24gdXQoQSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBBLmFwcGx5KG51bGwsZSl9fWZ1bmN0aW9uIGR0KEEpe3JldHVybiBpLmlzT2JqZWN0KEEpJiZBLmlzQXhpb3NFcnJvcj09PSEwfXZhciBEdD17Q29udGludWU6MTAwLFN3aXRjaGluZ1Byb3RvY29sczoxMDEsUHJvY2Vzc2luZzoxMDIsRWFybHlIaW50czoxMDMsT2s6MjAwLENyZWF0ZWQ6MjAxLEFjY2VwdGVkOjIwMixOb25BdXRob3JpdGF0aXZlSW5mb3JtYXRpb246MjAzLE5vQ29udGVudDoyMDQsUmVzZXRDb250ZW50OjIwNSxQYXJ0aWFsQ29udGVudDoyMDYsTXVsdGlTdGF0dXM6MjA3LEFscmVhZHlSZXBvcnRlZDoyMDgsSW1Vc2VkOjIyNixNdWx0aXBsZUNob2ljZXM6MzAwLE1vdmVkUGVybWFuZW50bHk6MzAxLEZvdW5kOjMwMixTZWVPdGhlcjozMDMsTm90TW9kaWZpZWQ6MzA0LFVzZVByb3h5OjMwNSxVbnVzZWQ6MzA2LFRlbXBvcmFyeVJlZGlyZWN0OjMwNyxQZXJtYW5lbnRSZWRpcmVjdDozMDgsQmFkUmVxdWVzdDo0MDAsVW5hdXRob3JpemVkOjQwMSxQYXltZW50UmVxdWlyZWQ6NDAyLEZvcmJpZGRlbjo0MDMsTm90Rm91bmQ6NDA0LE1ldGhvZE5vdEFsbG93ZWQ6NDA1LE5vdEFjY2VwdGFibGU6NDA2LFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZDo0MDcsUmVxdWVzdFRpbWVvdXQ6NDA4LENvbmZsaWN0OjQwOSxHb25lOjQxMCxMZW5ndGhSZXF1aXJlZDo0MTEsUHJlY29uZGl0aW9uRmFpbGVkOjQxMixQYXlsb2FkVG9vTGFyZ2U6NDEzLFVyaVRvb0xvbmc6NDE0LFVuc3VwcG9ydGVkTWVkaWFUeXBlOjQxNSxSYW5nZU5vdFNhdGlzZmlhYmxlOjQxNixFeHBlY3RhdGlvbkZhaWxlZDo0MTcsSW1BVGVhcG90OjQxOCxNaXNkaXJlY3RlZFJlcXVlc3Q6NDIxLFVucHJvY2Vzc2FibGVFbnRpdHk6NDIyLExvY2tlZDo0MjMsRmFpbGVkRGVwZW5kZW5jeTo0MjQsVG9vRWFybHk6NDI1LFVwZ3JhZGVSZXF1aXJlZDo0MjYsUHJlY29uZGl0aW9uUmVxdWlyZWQ6NDI4LFRvb01hbnlSZXF1ZXN0czo0MjksUmVxdWVzdEhlYWRlckZpZWxkc1Rvb0xhcmdlOjQzMSxVbmF2YWlsYWJsZUZvckxlZ2FsUmVhc29uczo0NTEsSW50ZXJuYWxTZXJ2ZXJFcnJvcjo1MDAsTm90SW1wbGVtZW50ZWQ6NTAxLEJhZEdhdGV3YXk6NTAyLFNlcnZpY2VVbmF2YWlsYWJsZTo1MDMsR2F0ZXdheVRpbWVvdXQ6NTA0LEh0dHBWZXJzaW9uTm90U3VwcG9ydGVkOjUwNSxWYXJpYW50QWxzb05lZ290aWF0ZXM6NTA2LEluc3VmZmljaWVudFN0b3JhZ2U6NTA3LExvb3BEZXRlY3RlZDo1MDgsTm90RXh0ZW5kZWQ6NTEwLE5ldHdvcmtBdXRoZW50aWNhdGlvblJlcXVpcmVkOjUxMX07T2JqZWN0LmVudHJpZXMoRHQpLmZvckVhY2goKFtBLHRdKT0+e0R0W3RdPUF9KTt2YXIgZGU9RHQ7ZnVuY3Rpb24gRGUoQSl7bGV0IHQ9bmV3IGZBKEEpLGU9b0EoZkEucHJvdG90eXBlLnJlcXVlc3QsdCk7cmV0dXJuIGkuZXh0ZW5kKGUsZkEucHJvdG90eXBlLHQse2FsbE93bktleXM6ITB9KSxpLmV4dGVuZChlLHQsbnVsbCx7YWxsT3duS2V5czohMH0pLGUuY3JlYXRlPWZ1bmN0aW9uKHIpe3JldHVybiBEZShiKEEscikpfSxlfXZhciBtPURlKEFBKTttLkF4aW9zPWZBO20uQ2FuY2VsZWRFcnJvcj1IO20uQ2FuY2VsVG9rZW49dWU7bS5pc0NhbmNlbD1hQTttLlZFUlNJT049T0E7bS50b0Zvcm1EYXRhPVQ7bS5BeGlvc0Vycm9yPXU7bS5DYW5jZWw9bS5DYW5jZWxlZEVycm9yO20uYWxsPWZ1bmN0aW9uKHQpe3JldHVybiBQcm9taXNlLmFsbCh0KX07bS5zcHJlYWQ9dXQ7bS5pc0F4aW9zRXJyb3I9ZHQ7bS5tZXJnZUNvbmZpZz1iO20uQXhpb3NIZWFkZXJzPXA7bS5mb3JtVG9KU09OPUE9PkpBKGkuaXNIVE1MRm9ybShBKT9uZXcgRm9ybURhdGEoQSk6QSk7bS5nZXRBZGFwdGVyPU1BLmdldEFkYXB0ZXI7bS5IdHRwU3RhdHVzQ29kZT1kZTttLmRlZmF1bHQ9bTt2YXIgeEE9bTt2YXJ7QXhpb3M6UmksQXhpb3NFcnJvcjpOaSxDYW5jZWxlZEVycm9yOlVpLGlzQ2FuY2VsOkdpLENhbmNlbFRva2VuOmtpLFZFUlNJT046TGksYWxsOmJpLENhbmNlbDpKaSxpc0F4aW9zRXJyb3I6SGksc3ByZWFkOllpLHRvRm9ybURhdGE6cWksQXhpb3NIZWFkZXJzOk1pLEh0dHBTdGF0dXNDb2RlOktpLGZvcm1Ub0pTT046T2ksZ2V0QWRhcHRlcjpUaSxtZXJnZUNvbmZpZzp4aX09eEE7dmFyIGxBLE0seXQsaHQ9e2Vudjp7ZW1zY3JpcHRlbl9ub3RpZnlfbWVtb3J5X2dyb3d0aDpmdW5jdGlvbihBKXt5dD1uZXcgVWludDhBcnJheShNLmV4cG9ydHMubWVtb3J5LmJ1ZmZlcil9fX0sUEE9Y2xhc3N7aW5pdCgpe3JldHVybiBsQXx8KHR5cGVvZiBmZXRjaDwidSI/bEE9ZmV0Y2goImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsIitoZSkudGhlbih0PT50LmFycmF5QnVmZmVyKCkpLnRoZW4odD0+V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUodCxodCkpLnRoZW4odGhpcy5faW5pdCk6bEE9V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoQnVmZmVyLmZyb20oaGUsImJhc2U2NCIpLGh0KS50aGVuKHRoaXMuX2luaXQpLGxBKX1faW5pdCh0KXtNPXQuaW5zdGFuY2UsaHQuZW52LmVtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgoMCl9ZGVjb2RlKHQsZT0wKXtpZighTSl0aHJvdyBuZXcgRXJyb3IoIlpTVEREZWNvZGVyOiBBd2FpdCAuaW5pdCgpIGJlZm9yZSBkZWNvZGluZy4iKTtsZXQgST10LmJ5dGVMZW5ndGgscj1NLmV4cG9ydHMubWFsbG9jKEkpO3l0LnNldCh0LHIpLGU9ZXx8TnVtYmVyKE0uZXhwb3J0cy5aU1REX2ZpbmREZWNvbXByZXNzZWRTaXplKHIsSSkpO2xldCBnPU0uZXhwb3J0cy5tYWxsb2MoZSksbz1NLmV4cG9ydHMuWlNURF9kZWNvbXByZXNzKGcsZSxyLEkpLG49eXQuc2xpY2UoZyxnK28pO3JldHVybiBNLmV4cG9ydHMuZnJlZShyKSxNLmV4cG9ydHMuZnJlZShnKSxufX0saGU9IkFHRnpiUUVBQUFBQmJnNWdBMzkvZndGL1lBRi9BWDlnQW45L0FHQUJmd0JnQlg5L2YzOS9BWDlnQTM5L2Z3QmdCSDkvZjM4QmYyQUFBWDlnQW45L0FYOWdCMzkvZjM5L2YzOEJmMkFDZjM4QmZtQUlmMzkvZjM5L2YzOEJmMkFGZjM5L2YzOEFZQTUvZjM5L2YzOS9mMzkvZjM5L2Z3Ri9BaWNCQTJWdWRoOWxiWE5qY21sd2RHVnVYMjV2ZEdsbWVWOXRaVzF2Y25sZlozSnZkM1JvQUFNREl5SUhBQUFCQVFNSEF3RUFDUVFBQlFFSUNBRUZCZ1FFQkFNR0FBQUtBQVVMREEwR0JBVUJjQUVCQVFVSEFRR0FBb0NBQWdZSUFYOEJRWUNqQkFzSHJnRUxCbTFsYlc5eWVRSUFCbTFoYkd4dll3QUZCR1p5WldVQUJneGFVMVJFWDJselJYSnliM0lBRWhsYVUxUkVYMlpwYm1SRVpXTnZiWEJ5WlhOelpXUlRhWHBsQUJ3UFdsTlVSRjlrWldOdmJYQnlaWE56QUNJWlgxOXBibVJwY21WamRGOW1kVzVqZEdsdmJsOTBZV0pzWlFFQUVGOWZaWEp5Ym05ZmJHOWpZWFJwYjI0QUFRbHpkR0ZqYTFOaGRtVUFCd3h6ZEdGamExSmxjM1J2Y21VQUNBcHpkR0ZqYTBGc2JHOWpBQWtLaS9JQklnVUFRWVFmQ3pNQkFYOGdBZ1JBSUFBaEF3TkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQklBSkJBV3NpQWcwQUN3c2dBQXNwQVFGL0lBSUVRQ0FBSVFNRFFDQURJQUU2QUFBZ0EwRUJhaUVESUFKQkFXc2lBZzBBQ3dzZ0FBdHNBUUovUVlBZktBSUFJZ0VnQUVFSGFrRjRjU0lDYWlFQUFrQWdBa0VBSUFBZ0FVMGJEUUFnQUQ4QVFSQjBTd1JBSUFBL0FFRVFkR3RCLy84RGFrRVFka0FBUVg5R0JIOUJBQVZCQUJBQVFRRUxSUTBCQzBHQUh5QUFOZ0lBSUFFUEMwR0VIMEV3TmdJQVFYOEx1U2NCQzM4akFFRVFheUlLSkFBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQmlCOG9BZ0FpQmtFUUlBQkJDMnBCZUhFZ0FFRUxTUnNpQlVFRGRpSUFkaUlCUVFOeEJFQUNRQ0FCUVg5elFRRnhJQUJxSWdKQkEzUWlBVUd3SDJvaUFDQUJRYmdmYWlnQ0FDSUJLQUlJSWdSR0JFQkJpQjhnQmtGK0lBSjNjVFlDQUF3QkN5QUVJQUEyQWd3Z0FDQUVOZ0lJQ3lBQlFRaHFJUUFnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1Ed3NnQlVHUUh5Z0NBQ0lIVFEwQklBRUVRQUpBUVFJZ0FIUWlBa0VBSUFKcmNpQUJJQUIwY1dnaUFVRURkQ0lBUWJBZmFpSUNJQUJCdUI5cUtBSUFJZ0FvQWdnaUJFWUVRRUdJSHlBR1FYNGdBWGR4SWdZMkFnQU1BUXNnQkNBQ05nSU1JQUlnQkRZQ0NBc2dBQ0FGUVFOeU5nSUVJQUFnQldvaUNDQUJRUU4wSWdFZ0JXc2lCRUVCY2pZQ0JDQUFJQUZxSUFRMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFGQm5COG9BZ0FoQWdKL0lBWkJBU0FIUVFOMmRDSURjVVVFUUVHSUh5QURJQVp5TmdJQUlBRU1BUXNnQVNnQ0NBc2hBeUFCSUFJMkFnZ2dBeUFDTmdJTUlBSWdBVFlDRENBQ0lBTTJBZ2dMSUFCQkNHb2hBRUdjSHlBSU5nSUFRWkFmSUFRMkFnQU1Ed3RCakI4b0FnQWlDMFVOQVNBTGFFRUNkRUc0SVdvb0FnQWlBaWdDQkVGNGNTQUZheUVESUFJaEFRTkFBa0FnQVNnQ0VDSUFSUVJBSUFFb0FoUWlBRVVOQVFzZ0FDZ0NCRUY0Y1NBRmF5SUJJQU1nQVNBRFNTSUJHeUVESUFBZ0FpQUJHeUVDSUFBaEFRd0JDd3NnQWlnQ0dDRUpJQUlnQWlnQ0RDSUVSd1JBUVpnZktBSUFHaUFDS0FJSUlnQWdCRFlDRENBRUlBQTJBZ2dNRGdzZ0FrRVVhaUlCS0FJQUlnQkZCRUFnQWlnQ0VDSUFSUTBESUFKQkVHb2hBUXNEUUNBQklRZ2dBQ0lFUVJScUlnRW9BZ0FpQUEwQUlBUkJFR29oQVNBRUtBSVFJZ0FOQUFzZ0NFRUFOZ0lBREEwTFFYOGhCU0FBUWI5L1N3MEFJQUJCQzJvaUFFRjRjU0VGUVl3ZktBSUFJZ2hGRFFCQkFDQUZheUVEQWtBQ1FBSkFBbjlCQUNBRlFZQUNTUTBBR2tFZklBVkIvLy8vQjBzTkFCb2dCVUVtSUFCQkNIWm5JZ0JyZGtFQmNTQUFRUUYwYTBFK2Fnc2lCMEVDZEVHNElXb29BZ0FpQVVVRVFFRUFJUUFNQVF0QkFDRUFJQVZCR1NBSFFRRjJhMEVBSUFkQkgwY2JkQ0VDQTBBQ1FDQUJLQUlFUVhoeElBVnJJZ1lnQTA4TkFDQUJJUVFnQmlJRERRQkJBQ0VESUFFaEFBd0RDeUFBSUFFb0FoUWlCaUFHSUFFZ0FrRWRka0VFY1dvb0FoQWlBVVliSUFBZ0Joc2hBQ0FDUVFGMElRSWdBUTBBQ3dzZ0FDQUVja1VFUUVFQUlRUkJBaUFIZENJQVFRQWdBR3R5SUFoeElnQkZEUU1nQUdoQkFuUkJ1Q0ZxS0FJQUlRQUxJQUJGRFFFTEEwQWdBQ2dDQkVGNGNTQUZheUlDSUFOSklRRWdBaUFESUFFYklRTWdBQ0FFSUFFYklRUWdBQ2dDRUNJQkJIOGdBUVVnQUNnQ0ZBc2lBQTBBQ3dzZ0JFVU5BQ0FEUVpBZktBSUFJQVZyVHcwQUlBUW9BaGdoQnlBRUlBUW9BZ3dpQWtjRVFFR1lIeWdDQUJvZ0JDZ0NDQ0lBSUFJMkFnd2dBaUFBTmdJSURBd0xJQVJCRkdvaUFTZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFFTEEwQWdBU0VHSUFBaUFrRVVhaUlCS0FJQUlnQU5BQ0FDUVJCcUlRRWdBaWdDRUNJQURRQUxJQVpCQURZQ0FBd0xDeUFGUVpBZktBSUFJZ1JOQkVCQm5COG9BZ0FoQUFKQUlBUWdCV3NpQVVFUVR3UkFJQUFnQldvaUFpQUJRUUZ5TmdJRUlBQWdCR29nQVRZQ0FDQUFJQVZCQTNJMkFnUU1BUXNnQUNBRVFRTnlOZ0lFSUFBZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFUVFBaEFrRUFJUUVMUVpBZklBRTJBZ0JCbkI4Z0FqWUNBQ0FBUVFocUlRQU1EUXNnQlVHVUh5Z0NBQ0lDU1FSQVFaUWZJQUlnQldzaUFUWUNBRUdnSDBHZ0h5Z0NBQ0lBSUFWcUlnSTJBZ0FnQWlBQlFRRnlOZ0lFSUFBZ0JVRURjallDQkNBQVFRaHFJUUFNRFF0QkFDRUFJQVZCTDJvaUF3Si9RZUFpS0FJQUJFQkI2Q0lvQWdBTUFRdEI3Q0pDZnpjQ0FFSGtJa0tBb0lDQWdJQUVOd0lBUWVBaUlBcEJER3BCY0hGQjJLclZxZ1Z6TmdJQVFmUWlRUUEyQWdCQnhDSkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ2h4SWdFZ0JVME5ERUhBSWlnQ0FDSUVCRUJCdUNJb0FnQWlCeUFCYWlJSklBZE5JQVFnQ1VseURRMExBa0JCeENJdEFBQkJCSEZGQkVBQ1FBSkFBa0FDUUVHZ0h5Z0NBQ0lFQkVCQnlDSWhBQU5BSUFRZ0FDZ0NBQ0lIVHdSQUlBY2dBQ2dDQkdvZ0JFc05Bd3NnQUNnQ0NDSUFEUUFMQzBFQUVBUWlBa0YvUmcwRElBRWhCa0hrSWlnQ0FDSUFRUUZySWdRZ0FuRUVRQ0FCSUFKcklBSWdCR3BCQUNBQWEzRnFJUVlMSUFVZ0JrOE5BMEhBSWlnQ0FDSUFCRUJCdUNJb0FnQWlCQ0FHYWlJSUlBUk5JQUFnQ0VseURRUUxJQVlRQkNJQUlBSkhEUUVNQlFzZ0JpQUNheUFJY1NJR0VBUWlBaUFBS0FJQUlBQW9BZ1JxUmcwQklBSWhBQXNnQUVGL1JnMEJJQVZCTUdvZ0JrMEVRQ0FBSVFJTUJBdEI2Q0lvQWdBaUFpQURJQVpyYWtFQUlBSnJjU0lDRUFSQmYwWU5BU0FDSUFacUlRWWdBQ0VDREFNTElBSkJmMGNOQWd0QnhDSkJ4Q0lvQWdCQkJISTJBZ0FMSUFFUUJDSUNRWDlHUVFBUUJDSUFRWDlHY2lBQUlBSk5jZzBGSUFBZ0Ftc2lCaUFGUVNocVRRMEZDMEc0SWtHNElpZ0NBQ0FHYWlJQU5nSUFRYndpS0FJQUlBQkpCRUJCdkNJZ0FEWUNBQXNDUUVHZ0h5Z0NBQ0lEQkVCQnlDSWhBQU5BSUFJZ0FDZ0NBQ0lCSUFBb0FnUWlCR3BHRFFJZ0FDZ0NDQ0lBRFFBTERBUUxRWmdmS0FJQUlnQkJBQ0FBSUFKTkcwVUVRRUdZSHlBQ05nSUFDMEVBSVFCQnpDSWdCallDQUVISUlpQUNOZ0lBUWFnZlFYODJBZ0JCckI5QjRDSW9BZ0EyQWdCQjFDSkJBRFlDQUFOQUlBQkJBM1FpQVVHNEgyb2dBVUd3SDJvaUJEWUNBQ0FCUWJ3ZmFpQUVOZ0lBSUFCQkFXb2lBRUVnUncwQUMwR1VIeUFHUVNocklnQkJlQ0FDYTBFSGNTSUJheUlFTmdJQVFhQWZJQUVnQW1vaUFUWUNBQ0FCSUFSQkFYSTJBZ1FnQUNBQ2FrRW9OZ0lFUWFRZlFmQWlLQUlBTmdJQURBUUxJQUlnQTAwZ0FTQURTM0lOQWlBQUtBSU1RUWh4RFFJZ0FDQUVJQVpxTmdJRVFhQWZJQU5CZUNBRGEwRUhjU0lBYWlJQk5nSUFRWlFmUVpRZktBSUFJQVpxSWdJZ0FHc2lBRFlDQUNBQklBQkJBWEkyQWdRZ0FpQURha0VvTmdJRVFhUWZRZkFpS0FJQU5nSUFEQU1MUVFBaEJBd0tDMEVBSVFJTUNBdEJtQjhvQWdBZ0Frc0VRRUdZSHlBQ05nSUFDeUFDSUFacUlRRkJ5Q0loQUFKQUFrQUNRQU5BSUFFZ0FDZ0NBRWNFUUNBQUtBSUlJZ0FOQVF3Q0N3c2dBQzBBREVFSWNVVU5BUXRCeUNJaEFBTkFJQU1nQUNnQ0FDSUJUd1JBSUFFZ0FDZ0NCR29pQkNBRFN3MERDeUFBS0FJSUlRQU1BQXNBQ3lBQUlBSTJBZ0FnQUNBQUtBSUVJQVpxTmdJRUlBSkJlQ0FDYTBFSGNXb2lCeUFGUVFOeU5nSUVJQUZCZUNBQmEwRUhjV29pQmlBRklBZHFJZ1ZySVFBZ0F5QUdSZ1JBUWFBZklBVTJBZ0JCbEI5QmxCOG9BZ0FnQUdvaUFEWUNBQ0FGSUFCQkFYSTJBZ1FNQ0F0Qm5COG9BZ0FnQmtZRVFFR2NIeUFGTmdJQVFaQWZRWkFmS0FJQUlBQnFJZ0EyQWdBZ0JTQUFRUUZ5TmdJRUlBQWdCV29nQURZQ0FBd0lDeUFHS0FJRUlnTkJBM0ZCQVVjTkJpQURRWGh4SVFrZ0EwSC9BVTBFUUNBR0tBSU1JZ0VnQmlnQ0NDSUNSZ1JBUVlnZlFZZ2ZLQUlBUVg0Z0EwRURkbmR4TmdJQURBY0xJQUlnQVRZQ0RDQUJJQUkyQWdnTUJnc2dCaWdDR0NFSUlBWWdCaWdDRENJQ1J3UkFJQVlvQWdnaUFTQUNOZ0lNSUFJZ0FUWUNDQXdGQ3lBR1FSUnFJZ0VvQWdBaUEwVUVRQ0FHS0FJUUlnTkZEUVFnQmtFUWFpRUJDd05BSUFFaEJDQURJZ0pCRkdvaUFTZ0NBQ0lERFFBZ0FrRVFhaUVCSUFJb0FoQWlBdzBBQ3lBRVFRQTJBZ0FNQkF0QmxCOGdCa0VvYXlJQVFYZ2dBbXRCQjNFaUFXc2lDRFlDQUVHZ0h5QUJJQUpxSWdFMkFnQWdBU0FJUVFGeU5nSUVJQUFnQW1wQktEWUNCRUdrSDBId0lpZ0NBRFlDQUNBRElBUkJKeUFFYTBFSGNXcEJMMnNpQUNBQUlBTkJFR3BKR3lJQlFSczJBZ1FnQVVIUUlpa0NBRGNDRUNBQlFjZ2lLUUlBTndJSVFkQWlJQUZCQ0dvMkFnQkJ6Q0lnQmpZQ0FFSElJaUFDTmdJQVFkUWlRUUEyQWdBZ0FVRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2dBRUVFYWlFQUlBUkpEUUFMSUFFZ0EwWU5BQ0FCSUFFb0FnUkJmbkUyQWdRZ0F5QUJJQU5ySWdKQkFYSTJBZ1FnQVNBQ05nSUFJQUpCL3dGTkJFQWdBa0Y0Y1VHd0gyb2hBQUovUVlnZktBSUFJZ0ZCQVNBQ1FRTjJkQ0lDY1VVRVFFR0lIeUFCSUFKeU5nSUFJQUFNQVFzZ0FDZ0NDQXNoQVNBQUlBTTJBZ2dnQVNBRE5nSU1JQU1nQURZQ0RDQURJQUUyQWdnTUFRdEJIeUVBSUFKQi8vLy9CMDBFUUNBQ1FTWWdBa0VJZG1jaUFHdDJRUUZ4SUFCQkFYUnJRVDVxSVFBTElBTWdBRFlDSENBRFFnQTNBaEFnQUVFQ2RFRzRJV29oQVFKQUFrQkJqQjhvQWdBaUJFRUJJQUIwSWdaeFJRUkFRWXdmSUFRZ0JuSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkdTQUFRUUYyYTBFQUlBQkJIMGNiZENFQUlBRW9BZ0FoQkFOQUlBUWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCQ0FBUVFGMElRQWdBU0FFUVFSeGFpSUdLQUlRSWdRTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xRWlFmS0FJQUlnQWdCVTBOQUVHVUh5QUFJQVZySWdFMkFnQkJvQjlCb0I4b0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQWdMUVlRZlFUQTJBZ0JCQUNFQURBY0xRUUFoQWdzZ0NFVU5BQUpBSUFZb0Fod2lBVUVDZEVHNElXb2lCQ2dDQUNBR1JnUkFJQVFnQWpZQ0FDQUNEUUZCakI5QmpCOG9BZ0JCZmlBQmQzRTJBZ0FNQWdzZ0NFRVFRUlFnQ0NnQ0VDQUdSaHRxSUFJMkFnQWdBa1VOQVFzZ0FpQUlOZ0lZSUFZb0FoQWlBUVJBSUFJZ0FUWUNFQ0FCSUFJMkFoZ0xJQVlvQWhRaUFVVU5BQ0FDSUFFMkFoUWdBU0FDTmdJWUN5QUFJQWxxSVFBZ0JpQUphaUlHS0FJRUlRTUxJQVlnQTBGK2NUWUNCQ0FGSUFCQkFYSTJBZ1FnQUNBRmFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVGNGNVR3dIMm9oQVFKL1FZZ2ZLQUlBSWdKQkFTQUFRUU4yZENJQWNVVUVRRUdJSHlBQUlBSnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEFDQUJJQVUyQWdnZ0FDQUZOZ0lNSUFVZ0FUWUNEQ0FGSUFBMkFnZ01BUXRCSHlFRElBQkIvLy8vQjAwRVFDQUFRU1lnQUVFSWRtY2lBV3QyUVFGeElBRkJBWFJyUVQ1cUlRTUxJQVVnQXpZQ0hDQUZRZ0EzQWhBZ0EwRUNkRUc0SVdvaEFRSkFBa0JCakI4b0FnQWlBa0VCSUFOMElnUnhSUVJBUVl3ZklBSWdCSEkyQWdBZ0FTQUZOZ0lBREFFTElBQkJHU0FEUVFGMmEwRUFJQU5CSDBjYmRDRURJQUVvQWdBaEFnTkFJQUlpQVNnQ0JFRjRjU0FBUmcwQ0lBTkJIWFloQWlBRFFRRjBJUU1nQVNBQ1FRUnhhaUlFS0FJUUlnSU5BQXNnQkNBRk5nSVFDeUFGSUFFMkFoZ2dCU0FGTmdJTUlBVWdCVFlDQ0F3QkN5QUJLQUlJSWdBZ0JUWUNEQ0FCSUFVMkFnZ2dCVUVBTmdJWUlBVWdBVFlDRENBRklBQTJBZ2dMSUFkQkNHb2hBQXdDQ3dKQUlBZEZEUUFDUUNBRUtBSWNJZ0JCQW5SQnVDRnFJZ0VvQWdBZ0JFWUVRQ0FCSUFJMkFnQWdBZzBCUVl3ZklBaEJmaUFBZDNFaUNEWUNBQXdDQ3lBSFFSQkJGQ0FIS0FJUUlBUkdHMm9nQWpZQ0FDQUNSUTBCQ3lBQ0lBYzJBaGdnQkNnQ0VDSUFCRUFnQWlBQU5nSVFJQUFnQWpZQ0dBc2dCQ2dDRkNJQVJRMEFJQUlnQURZQ0ZDQUFJQUkyQWhnTEFrQWdBMEVQVFFSQUlBUWdBeUFGYWlJQVFRTnlOZ0lFSUFBZ0JHb2lBQ0FBS0FJRVFRRnlOZ0lFREFFTElBUWdCVUVEY2pZQ0JDQUVJQVZxSWdJZ0EwRUJjallDQkNBQ0lBTnFJQU0yQWdBZ0EwSC9BVTBFUUNBRFFYaHhRYkFmYWlFQUFuOUJpQjhvQWdBaUFVRUJJQU5CQTNaMElnTnhSUVJBUVlnZklBRWdBM0kyQWdBZ0FBd0JDeUFBS0FJSUN5RUJJQUFnQWpZQ0NDQUJJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0FUWUNDQXdCQzBFZklRQWdBMEgvLy84SFRRUkFJQU5CSmlBRFFRaDJaeUlBYTNaQkFYRWdBRUVCZEd0QlBtb2hBQXNnQWlBQU5nSWNJQUpDQURjQ0VDQUFRUUowUWJnaGFpRUJBa0FDUUNBSVFRRWdBSFFpQm5GRkJFQkJqQjhnQmlBSWNqWUNBQ0FCSUFJMkFnQU1BUXNnQTBFWklBQkJBWFpyUVFBZ0FFRWZSeHQwSVFBZ0FTZ0NBQ0VGQTBBZ0JTSUJLQUlFUVhoeElBTkdEUUlnQUVFZGRpRUdJQUJCQVhRaEFDQUJJQVpCQkhGcUlnWW9BaEFpQlEwQUN5QUdJQUkyQWhBTElBSWdBVFlDR0NBQ0lBSTJBZ3dnQWlBQ05nSUlEQUVMSUFFb0FnZ2lBQ0FDTmdJTUlBRWdBallDQ0NBQ1FRQTJBaGdnQWlBQk5nSU1JQUlnQURZQ0NBc2dCRUVJYWlFQURBRUxBa0FnQ1VVTkFBSkFJQUlvQWh3aUFFRUNkRUc0SVdvaUFTZ0NBQ0FDUmdSQUlBRWdCRFlDQUNBRURRRkJqQjhnQzBGK0lBQjNjVFlDQUF3Q0N5QUpRUkJCRkNBSktBSVFJQUpHRzJvZ0JEWUNBQ0FFUlEwQkN5QUVJQWsyQWhnZ0FpZ0NFQ0lBQkVBZ0JDQUFOZ0lRSUFBZ0JEWUNHQXNnQWlnQ0ZDSUFSUTBBSUFRZ0FEWUNGQ0FBSUFRMkFoZ0xBa0FnQTBFUFRRUkFJQUlnQXlBRmFpSUFRUU55TmdJRUlBQWdBbW9pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQUlnQlVFRGNqWUNCQ0FDSUFWcUlnUWdBMEVCY2pZQ0JDQURJQVJxSUFNMkFnQWdCd1JBSUFkQmVIRkJzQjlxSVFCQm5COG9BZ0FoQVFKL1FRRWdCMEVEZG5RaUJTQUdjVVVFUUVHSUh5QUZJQVp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hCaUFBSUFFMkFnZ2dCaUFCTmdJTUlBRWdBRFlDRENBQklBWTJBZ2dMUVp3ZklBUTJBZ0JCa0I4Z0F6WUNBQXNnQWtFSWFpRUFDeUFLUVJCcUpBQWdBQXZTQ3dFSGZ3SkFJQUJGRFFBZ0FFRUlheUlDSUFCQkJHc29BZ0FpQVVGNGNTSUFhaUVGQWtBZ0FVRUJjUTBBSUFGQkEzRkZEUUVnQWlBQ0tBSUFJZ0ZySWdKQm1COG9BZ0JKRFFFZ0FDQUJhaUVBQWtBQ1FFR2NIeWdDQUNBQ1J3UkFJQUZCL3dGTkJFQWdBVUVEZGlFRUlBSW9BZ3dpQVNBQ0tBSUlJZ05HQkVCQmlCOUJpQjhvQWdCQmZpQUVkM0UyQWdBTUJRc2dBeUFCTmdJTUlBRWdBellDQ0F3RUN5QUNLQUlZSVFZZ0FpQUNLQUlNSWdGSEJFQWdBaWdDQ0NJRElBRTJBZ3dnQVNBRE5nSUlEQU1MSUFKQkZHb2lCQ2dDQUNJRFJRUkFJQUlvQWhBaUEwVU5BaUFDUVJCcUlRUUxBMEFnQkNFSElBTWlBVUVVYWlJRUtBSUFJZ01OQUNBQlFSQnFJUVFnQVNnQ0VDSUREUUFMSUFkQkFEWUNBQXdDQ3lBRktBSUVJZ0ZCQTNGQkEwY05Ba0dRSHlBQU5nSUFJQVVnQVVGK2NUWUNCQ0FDSUFCQkFYSTJBZ1FnQlNBQU5nSUFEd3RCQUNFQkN5QUdSUTBBQWtBZ0FpZ0NIQ0lEUVFKMFFiZ2hhaUlFS0FJQUlBSkdCRUFnQkNBQk5nSUFJQUVOQVVHTUgwR01IeWdDQUVGK0lBTjNjVFlDQUF3Q0N5QUdRUkJCRkNBR0tBSVFJQUpHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQVkyQWhnZ0FpZ0NFQ0lEQkVBZ0FTQUROZ0lRSUFNZ0FUWUNHQXNnQWlnQ0ZDSURSUTBBSUFFZ0F6WUNGQ0FESUFFMkFoZ0xJQUlnQlU4TkFDQUZLQUlFSWdGQkFYRkZEUUFDUUFKQUFrQUNRQ0FCUVFKeFJRUkFRYUFmS0FJQUlBVkdCRUJCb0I4Z0FqWUNBRUdVSDBHVUh5Z0NBQ0FBYWlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FDUVp3ZktBSUFSdzBHUVpBZlFRQTJBZ0JCbkI5QkFEWUNBQThMUVp3ZktBSUFJQVZHQkVCQm5COGdBallDQUVHUUgwR1FIeWdDQUNBQWFpSUFOZ0lBSUFJZ0FFRUJjallDQkNBQUlBSnFJQUEyQWdBUEN5QUJRWGh4SUFCcUlRQWdBVUgvQVUwRVFDQUJRUU4ySVFRZ0JTZ0NEQ0lCSUFVb0FnZ2lBMFlFUUVHSUgwR0lIeWdDQUVGK0lBUjNjVFlDQUF3RkN5QURJQUUyQWd3Z0FTQUROZ0lJREFRTElBVW9BaGdoQmlBRklBVW9BZ3dpQVVjRVFFR1lIeWdDQUJvZ0JTZ0NDQ0lESUFFMkFnd2dBU0FETmdJSURBTUxJQVZCRkdvaUJDZ0NBQ0lEUlFSQUlBVW9BaEFpQTBVTkFpQUZRUkJxSVFRTEEwQWdCQ0VISUFNaUFVRVVhaUlFS0FJQUlnTU5BQ0FCUVJCcUlRUWdBU2dDRUNJRERRQUxJQWRCQURZQ0FBd0NDeUFGSUFGQmZuRTJBZ1FnQWlBQVFRRnlOZ0lFSUFBZ0Ftb2dBRFlDQUF3REMwRUFJUUVMSUFaRkRRQUNRQ0FGS0FJY0lnTkJBblJCdUNGcUlnUW9BZ0FnQlVZRVFDQUVJQUUyQWdBZ0FRMEJRWXdmUVl3ZktBSUFRWDRnQTNkeE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnTUVRQ0FCSUFNMkFoQWdBeUFCTmdJWUN5QUZLQUlVSWdORkRRQWdBU0FETmdJVUlBTWdBVFlDR0FzZ0FpQUFRUUZ5TmdJRUlBQWdBbW9nQURZQ0FDQUNRWndmS0FJQVJ3MEFRWkFmSUFBMkFnQVBDeUFBUWY4QlRRUkFJQUJCZUhGQnNCOXFJUUVDZjBHSUh5Z0NBQ0lEUVFFZ0FFRURkblFpQUhGRkJFQkJpQjhnQUNBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFBZ0FTQUNOZ0lJSUFBZ0FqWUNEQ0FDSUFFMkFnd2dBaUFBTmdJSUR3dEJIeUVESUFCQi8vLy9CMDBFUUNBQVFTWWdBRUVJZG1jaUFXdDJRUUZ4SUFGQkFYUnJRVDVxSVFNTElBSWdBellDSENBQ1FnQTNBaEFnQTBFQ2RFRzRJV29oQVFKQUFrQUNRRUdNSHlnQ0FDSUVRUUVnQTNRaUIzRkZCRUJCakI4Z0JDQUhjallDQUNBQklBSTJBZ0FnQWlBQk5nSVlEQUVMSUFCQkdTQURRUUYyYTBFQUlBTkJIMGNiZENFRElBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFOQkhYWWhBU0FEUVFGMElRTWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBQ05nSVFJQUlnQkRZQ0dBc2dBaUFDTmdJTUlBSWdBallDQ0F3QkN5QUVLQUlJSWdBZ0FqWUNEQ0FFSUFJMkFnZ2dBa0VBTmdJWUlBSWdCRFlDRENBQ0lBQTJBZ2dMUWFnZlFhZ2ZLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xCQUFqQUFzR0FDQUFKQUFMRUFBakFDQUFhMEZ3Y1NJQUpBQWdBQXRLQVFGL0lBQWdBVWtFUUNBQUlBRWdBaEFDRHdzZ0FnUkFJQUFnQW1vaEF5QUJJQUpxSVFFRFFDQURRUUZySWdNZ0FVRUJheUlCTFFBQU9nQUFJQUpCQVdzaUFnMEFDd3NnQUF2OURnSVJmd0YrSXdCQk1Hc2lCeVFBUWJoL0lRZ0NRQ0FGUlEwQUlBUXNBQUFpQ1VIL0FYRWhDd0pBSUFsQkFFZ0VRQ0FMUWY0QWEwRUJkaUlHSUFWUERRSkJiQ0VJSUF0Qi93QnJJZ3RCL3dGTERRSWdCRUVCYWlFSVFRQWhCUU5BSUFVZ0MwOEVRQ0FMSVFnZ0JpRUxEQU1GSUFBZ0JXb2dDQ0FGUVFGMmFpSUVMUUFBUVFSMk9nQUFJQUFnQlVFQmNtb2dCQzBBQUVFUGNUb0FBQ0FGUVFKcUlRVU1BUXNBQ3dBTElBVWdDMDBOQVNBSFFmOEJOZ0lFSUFZZ0IwRUVhaUFIUVFocUlBUkJBV29pRGlBTEVBd2lCRUdJZjBzRVFDQUVJUWdNQWd0QlZDRUlJQWNvQWdnaUVFRUdTdzBCSUFjb0FnUWlFVUVCZENJSlFRSnFyVUlCSUJDdGhpSVlRUUVnRUhRaURVRUJhaUlGclVJQ2hueDhRZ3Q4UXZ6Ly8vLy8vLy8vL3dDRFF1UUNWZzBCUVZJaENDQVJRZjhCU3cwQklBMUJmM05CQW5SQjVBSnFyU0FSUVFGcUloVkJBWFN0SUJoOFFnaDhWQTBCSUFzZ0JHc2hGaUFFSUE1cUlSY2dCa0dBQkdvaUVpQUZRUUowYWlJUklBbHFRUUpxSVE0Z0JrR0VCR29oRTBHQWdBSWdFSFJCRUhZaENVRUFJUVZCQVNFUElBMUJBV3NpRkNFS0EwQWdCU0FWUmtVRVFBSkFJQVlnQlVFQmRDSUlhaThCQUNJRVFmLy9BMFlFUUNBVElBcEJBblJxSUFVNkFBSWdDa0VCYXlFS1FRRWhCQXdCQ3lBUFFRQWdDU0FFd1VvYklROExJQWdnRVdvZ0JEc0JBQ0FGUVFGcUlRVU1BUXNMSUFZZ0R6c0JnZ1FnQmlBUU93R0FCQUpBSUFvZ0ZFWUVRQ0FOUVFOMklRaENBQ0VZUVFBaER3TkFJQXdnRlVZRVFDQUlJQTFCQVhacVFRTnFJZ2xCQVhRaENFRUFJUVJCQUNFS0EwQkJBQ0VGSUFvZ0RVOE5CQU5BSUFWQkFrWkZCRUFnRXlBRklBbHNJQVJxSUJSeFFRSjBhaUFPSUFVZ0NtcHFMUUFBT2dBQ0lBVkJBV29oQlF3QkN3c2dDa0VDYWlFS0lBUWdDR29nRkhFaEJBd0FDd0FGSUFZZ0RFRUJkR291QVFBaENTQU9JQTlxSWdRZ0dEY0FBRUVJSVFVRFFDQUZJQWxPUlFSQUlBUWdCV29nR0RjQUFDQUZRUWhxSVFVTUFRc0xJQmhDZ1lLRWlKQ2d3SUFCZkNFWUlBeEJBV29oRENBSklBOXFJUThNQVFzQUN3QUxJQTFCQTNZZ0RVRUJkbXBCQTJvaENFRUFJUVVEUUNBTUlCVkdSUVJBUVFBaENTQUdJQXhCQVhScUxnRUFJZ1JCQUNBRVFRQktHeUVFQTBBZ0JDQUpSa1VFUUNBVElBVkJBblJxSUF3NkFBSURRQ0FGSUFocUlCUnhJZ1VnQ2tzTkFBc2dDVUVCYWlFSkRBRUxDeUFNUVFGcUlRd01BUXNMUVg4aENDQUZEUUlMSUJCQkFXb2hDRUVBSVFVRFFDQUZJQTFHUlFSQUlCRWdFeUFGUVFKMGFpSU9MUUFDUVFGMGFpSUVJQVF2QVFBaUNVRUJhanNCQUNBT0lBZ2dDV2RCWUhOcUlnUTZBQU1nRGlBSklBUjBJQTFyT3dFQUlBVkJBV29oQlF3QkN3c0NRQUpBSUFZdkFZSUVCRUFnQjBFY2FpSUVJQmNnRmhBTklnaEJpSDlMRFFJZ0IwRVVhaUFFSUJJUURpQUhRUXhxSUFRZ0VoQU9RUUFoQlFOQUlBZEJIR29pQkJBUElBVkIrd0ZMY2cwQ0lBQWdCV29pQmlBSFFSUnFJQVFRRURvQUFDQUdJQWRCREdvZ0JCQVFPZ0FCSUFWQkFuSWhCQ0FIUVJ4cUVBOEVRQ0FFSVFVTUF3VWdBQ0FFYWlBSFFSUnFJQWRCSEdvaUJCQVFPZ0FBSUFZZ0IwRU1haUFFRUJBNkFBTWdCVUVFYWlFRkRBRUxBQXNBQ3lBSFFSeHFJZ1FnRnlBV0VBMGlDRUdJZjBzTkFTQUhRUlJxSUFRZ0VoQU9JQWRCREdvZ0JDQVNFQTVCQUNFRkEwQWdCMEVjYWlJRUVBOGdCVUg3QVV0eVJRUkFJQUFnQldvaUJpQUhRUlJxSUFRUUVUb0FBQ0FHSUFkQkRHb2dCQkFST2dBQklBVkJBbkloQkNBSFFSeHFFQThFUUNBRUlRVUZJQUFnQkdvZ0IwRVVhaUFIUVJ4cUlnUVFFVG9BQUNBR0lBZEJER29nQkJBUk9nQURJQVZCQkdvaEJRd0NDd3NMQW44RFFFRzZmeUVJSUFWQi9RRkxEUU1nQUNBRmFpSUdJQWRCRkdvZ0IwRWNhaUlKRUJFNkFBQWdCa0VCYWlFRUlBa1FEMEVEUmdSQUlBZEJER29oQ0VFQ0RBSUxJQVZCL0FGTERRTWdCaUFIUVF4cUlBZEJIR29pQkJBUk9nQUJJQVZCQW1vaEJTQUVFQTlCQTBjTkFBc2dBQ0FGYWlFRUlBZEJGR29oQ0VFREN5QUVJQWdnQjBFY2FoQVJPZ0FBSUFacUlBQnJJUWdNQVFzQ2Z3TkFRYnAvSVFnZ0JVSDlBVXNOQWlBQUlBVnFJZ1lnQjBFVWFpQUhRUnhxSWdrUUVEb0FBQ0FHUVFGcUlRUWdDUkFQUVFOR0JFQWdCMEVNYWlFSVFRSU1BZ3NnQlVIOEFVc05BaUFHSUFkQkRHb2dCMEVjYWlJRUVCQTZBQUVnQlVFQ2FpRUZJQVFRRDBFRFJ3MEFDeUFBSUFWcUlRUWdCMEVVYWlFSVFRTUxJQVFnQ0NBSFFSeHFFQkE2QUFBZ0Jtb2dBR3NoQ0FzZ0NFR0lmMHNOQVFzZ0NDRUVRUUFoQlNBQlFRQkJOQkFESVFsQkFDRUtBMEFnQkNBRlJ3UkFJQUFnQldvaUJpMEFBQ0lCUVF0TEJFQkJiQ0VJREFNRklBa2dBVUVDZEdvaUFTQUJLQUlBUVFGcU5nSUFJQVZCQVdvaEJVRUJJQVl0QUFCMFFRRjFJQXBxSVFvTUFnc0FDd3RCYkNFSUlBcEZEUUFnQ21jaUJVRWZjeUlCUVF0TERRQWdBMEVnSUFWck5nSUFRUUZCQWlBQmRDQUtheUlEWjBFZmN5SUJkQ0FEUncwQUlBQWdCR29nQVVFQmFpSUFPZ0FBSUFrZ0FFRUNkR29pQUNBQUtBSUFRUUZxTmdJQUlBa29BZ1FpQUVFQ1NTQUFRUUZ4Y2cwQUlBSWdCRUVCYWpZQ0FDQUxRUUZxSVFnTElBZEJNR29rQUNBSUM2QUZBUXgvSXdCQkVHc2lEQ1FBQW44Z0JFRUhUUVJBSUF4Q0FEY0RDQ0FNUVFocUlnVWdBeUFFRUFJYVFXd2dBQ0FCSUFJZ0JVRUlFQXdpQUNBQUlBUkxHeUFBSUFCQmlYOUpHd3dCQ3lBQVFRQWdBU2dDQUVFQmFpSU5RUUYwRUFNaEQwRlVJQU1vQUFBaUJrRVBjU0lBUVFwTERRQWFJQUlnQUVFRmFqWUNBQ0FESUFScUlnSkJCR3NoQnlBQ1FRZHJJUXNnQUVFR2FpRU9RUVFoQWlBR1FRUjJJUVZCSUNBQWRDSUlRUUZ5SVFsQkFDRUFRUUVoQmlBRElRUURRQUpBSUFaQkFYRkZCRUFEUUNBRlFYOXpRWUNBZ0lCNGNtZ2lCa0VZU1VVRVFDQUFRU1JxSVFBZ0JDQUxUUVIvSUFSQkEyb0ZJQVFnQzJ0QkEzUWdBbXBCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTElBSWdCa0VlY1NJS2FrRUNhaUVDSUFaQkFYWkJBMndnQUdvZ0JTQUtka0VEY1dvaUFDQU5UdzBCQW44Z0JDQUxTeUFDUVFOMklBUnFJZ1VnQjB0eFJRUkFJQUpCQjNFaEFpQUZEQUVMSUFRZ0IydEJBM1FnQW1wQkgzRWhBaUFIQ3lJRUtBQUFJQUoySVFVTElBVWdDRUVCYTNFaUJpQUlRUUYwUVFGcklnb2dDV3NpRUVrRWZ5QU9RUUZyQlNBRklBcHhJZ1VnRUVFQUlBVWdDRTRiYXlFR0lBNExJUVVnRHlBQVFRRjBhaUFHUVFGcklnbzdBUUFnQUVFQmFpRUFJQUlnQldvaEFpQUlRUUVnQm1zZ0NpQUdRUUJLR3lBSmFpSUpTZ1JBSUFsQkFrZ05BVUVnSUFsbklnVnJJUTVCQVNBRlFSOXpkQ0VJQ3lBQUlBMVBEUUFnQ2tFQVJ5RUdBbjhnQkNBTFN5QUNRUU4xSUFScUlnVWdCMHR4UlFSQUlBSkJCM0VoQWlBRkRBRUxJQUlnQkNBSGEwRURkR3BCSDNFaEFpQUhDeUlFS0FBQUlBSjJJUVVNQVFzTFFXd2dDVUVCUncwQUdrRlFJQUFnRFVzTkFCcEJiQ0FDUVNCS0RRQWFJQUVnQUVFQmF6WUNBQ0FFSUFKQkIycEJBM1ZxSUFOckN5QU1RUkJxSkFBTDhnRUJBWDhnQWtVRVFDQUFRZ0EzQWdBZ0FFRUFOZ0lRSUFCQ0FEY0NDRUc0Znc4TElBQWdBVFlDRENBQUlBRkJCR28yQWhBZ0FrRUVUd1JBSUFBZ0FTQUNhaUlCUVFScklnTTJBZ2dnQUNBREtBQUFOZ0lBSUFGQkFXc3RBQUFpQVFSQUlBQWdBV2RCRjJzMkFnUWdBZzhMSUFCQkFEWUNCRUYvRHdzZ0FDQUJOZ0lJSUFBZ0FTMEFBQ0lETmdJQUFrQUNRQUpBSUFKQkFtc09BZ0VBQWdzZ0FDQUJMUUFDUVJCMElBTnlJZ00yQWdBTElBQWdBUzBBQVVFSWRDQURhallDQUFzZ0FTQUNha0VCYXkwQUFDSUJSUVJBSUFCQkFEWUNCRUZzRHdzZ0FDQUJaeUFDUVFOMGEwRUphallDQkNBQ0MwUUJBbjhnQVNBQ0x3RUFJZ01nQVNnQ0JHb2lCRFlDQkNBQUlBTkJBblJCb0IxcUtBSUFJQUVvQWdCQkFDQUVhM1p4TmdJQUlBRVFEeG9nQUNBQ1FRUnFOZ0lFQzU4QkFRUi9RUU1oQVNBQUtBSUVJZ0pCSUUwRVFDQUFLQUlJSWdFZ0FDZ0NFRThFUUNBQUlBSkJCM0UyQWdRZ0FDQUJJQUpCQTNacklnSTJBZ2dnQUNBQ0tBQUFOZ0lBUVFBUEN5QUFLQUlNSWdNZ0FVWUVRRUVCUVFJZ0FrRWdTUnNQQ3lBQUlBRWdBU0FEYXlBQ1FRTjJJZ1FnQVNBRWF5QURTU0lCR3lJRGF5SUVOZ0lJSUFBZ0FpQURRUU4wYXpZQ0JDQUFJQVFvQUFBMkFnQUxJQUVMU0FFRWZ5QUFLQUlFSUFBb0FnQkJBblJxSWdJdEFBSWdBaThCQUNFRUlBRWdBU2dDQkNJRklBSXRBQU1pQW1vMkFnUWdBQ0FFSUFFb0FnQWdCWFJCQUNBQ2EzWnFOZ0lBQzFJQkJIOGdBQ2dDQkNBQUtBSUFRUUowYWlJQ0xRQUNJQUl2QVFBaEJDQUJJQUl0QUFNaUFpQUJLQUlFYWlJRk5nSUVJQUFnQkNBQ1FRSjBRYUFkYWlnQ0FDQUJLQUlBUVFBZ0JXdDJjV28yQWdBTENBQWdBRUdJZjBzTEdnQWdBQVJBSUFFRVFDQUNJQUFnQVJFQ0FBOExJQUFRQmdzTHBnZ0NEWDhCZmlNQVFSQnJJZ2trQUNBSlFRQTJBZ3dnQ1VFQU5nSUlBbjhDUUNBRFFlZ0phaUFESUFsQkNHb2dDVUVNYWlBQklBSWdBMEdBQVdvUUN5SVBRWWgvU3cwQVFWUWdDU2dDRENJRUlBQW9BZ0FpQVVIL0FYRkJBV3BMRFFFYUlBQkJCR29oQ3lBQUlBRkIvNEdBZUhFZ0JFRVFkRUdBZ1B3SGNYSTJBZ0JCZnlBRUlBUkJBRWdiUVFGcUlRQkJBQ0VCSUFrb0FnZ2hCVUVBSVFJRFFDQUFJQUpHQkVBZ0JVRURheUVCUVFBaEFBTkFBa0JCQUNFQ0lBQWdBVTRFUUFOQUlBQWdCVTROQWlBRElBQWdBMnBCNkFscUxRQUFRUUowYWtGQWF5SUJJQUVvQWdBaUFVRUJhallDQUNBQklBTnFJQUE2QU9nSElBQkJBV29oQUF3QUN3QUZBMEFnQWtFRVJrVUVRQ0FESUFNZ0FDQUNhaUlIYWtIb0NXb3RBQUJCQW5ScVFVQnJJZ2dnQ0NnQ0FDSUlRUUZxTmdJQUlBTWdDR29nQnpvQTZBY2dBa0VCYWlFQ0RBRUxDeUFBUVFScUlRQU1BZ3NBQ3dzZ0JFRUJhaUVPSUFNb0FnQWhCMEVBSVFCQkFTRUlBMEFnQ0NBT1JnMERJQTRnQ0dzaEJDQURJQWhCQW5ScUtBSUFJUVVDUUFKQUFrQUNRQUpBQWtCQkFTQUlkRUVCZFNJTlFRRnJEZ2dBQVFRQ0JBUUVBd1FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFBSVFFRFFDQUNJQVpHRFFVZ0F5QUNJQWRxYWkwQTZBY2hDaUFMSUFGQkFYUnFJZ3dnQkRvQUFTQU1JQW82QUFBZ0FrRUJhaUVDSUFGQkFXb2hBUXdBQ3dBTFFRQWhBaUFGUVFBZ0JVRUFTaHNoQ2lBQUlRRURRQ0FDSUFwR0RRUWdDeUFCUVFGMGFpSUdJQU1nQWlBSGFtb3RBT2dISWd3NkFBSWdCaUFFT2dBQklBWWdERG9BQUNBR0lBUTZBQU1nQWtFQmFpRUNJQUZCQW1vaEFRd0FDd0FMUVFBaEFpQUZRUUFnQlVFQVNoc2hCaUFFUVFoMFFZRCtBM0VoQkNBQUlRRURRQ0FDSUFaR0RRTWdDeUFCUVFGMGFpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK053QUFJQUpCQVdvaEFpQUJRUVJxSVFFTUFBc0FDMEVBSVFJZ0JVRUFJQVZCQUVvYklRWWdCRUVJZEVHQS9nTnhJUVFnQUNFQkEwQWdBaUFHUmcwQ0lBc2dBVUVCZEdvaUNpQUVJQU1nQWlBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0loRTNBQWdnQ2lBUk53QUFJQUpCQVdvaEFpQUJRUWhxSVFFTUFBc0FDMEVBSVFFZ0JVRUFJQVZCQUVvYklRb2dCRUVJZEVHQS9nTnhJUXdnQUNFRUEwQWdBU0FLUmcwQklBc2dCRUVCZEdvaEVDQU1JQU1nQVNBSGFtb3RBT2dIY3ExQ2dZQ0VnSkNBd0FCK0lSRkJBQ0VDQTBBZ0FpQU5Ua1VFUUNBUUlBSkJBWFJxSWdZZ0VUY0FHQ0FHSUJFM0FCQWdCaUFSTndBSUlBWWdFVGNBQUNBQ1FSQnFJUUlNQVFzTElBRkJBV29oQVNBRUlBMXFJUVFNQUFzQUN5QUlRUUZxSVFnZ0JTQUhhaUVISUFVZ0RXd2dBR29oQUF3QUN3QUZJQU1nQWtFQ2RHb2lCMEZBYXlBQk5nSUFJQUpCQVdvaEFpQUhLQUlBSUFGcUlRRU1BUXNBQ3dBTElBOExJQWxCRUdva0FBdnlBZ0VHZnlNQVFTQnJJZ1VrQUNBRUtBSUFJUVlnQlVFTWFpQUNJQU1RRFNJRFFZaC9UUVJBSUFSQkJHb2hBaUFBSUFGcUlnbEJBMnNoQkVFQUlBWkJFSFpyUVI5eElRTURRQ0FGUVF4cUVBOGdBQ0FFVDNKRkJFQWdBaUFGS0FJTUlnWWdCU2dDRUNJSGRDQURka0VCZEdvaUNDMEFBU0VLSUFBZ0NDMEFBRG9BQUNBQ0lBWWdCeUFLYWlJR2RDQURka0VCZEdvaUJ5MEFBQ0VJSUFVZ0JpQUhMUUFCYWpZQ0VDQUFJQWc2QUFFZ0FFRUNhaUVBREFFTEN3TkFJQVZCREdvUUR5RUhJQVVvQWd3aEJpQUZLQUlRSVFRZ0FDQUpUeUFIY2tVRVFDQUNJQVlnQkhRZ0EzWkJBWFJxSWdZdEFBQWhCeUFGSUFRZ0JpMEFBV28yQWhBZ0FDQUhPZ0FBSUFCQkFXb2hBQXdCQ3dzRFFDQUFJQWxQUlFSQUlBSWdCaUFFZENBRGRrRUJkR29pQnkwQUFTRUlJQUFnQnkwQUFEb0FBQ0FBUVFGcUlRQWdCQ0FJYWlFRURBRUxDMEZzUVd3Z0FTQUZLQUlVSUFVb0FoaEhHeUFFUVNCSEd5RURDeUFGUVNCcUpBQWdBd3ZQRkFFamZ5TUFRZEFBYXlJRkpBQkJiQ0VKQWtBZ0EwRUtTUTBBQWtBZ0F5QUNMd0FFSWdjZ0FpOEFBQ0lJSUFJdkFBSWlEV3BxUVFacUlneEpEUUFnQkM4QkFpRUdJQVZCUEdvZ0FrRUdhaUlDSUFnUURTSUpRWWgvU3cwQklBVkJLR29nQWlBSWFpSUNJQTBRRFNJSlFZaC9TdzBCSUFWQkZHb2dBaUFOYWlJQ0lBY1FEU0lKUVloL1N3MEJJQVVnQWlBSGFpQURJQXhyRUEwaUNVR0lmMHNOQVNBRVFRUnFJUW9nQUNBQmFpSWZRUU5ySVNCQkFDQUdhMEVmY1NFTElBVW9BZ2doRVNBRktBSWNJUklnQlNnQ01DRVRJQVVvQWtRaEZDQUZLQUlFSVFrZ0JTZ0NHQ0VOSUFVb0Fpd2hEQ0FGS0FKQUlRWWdCU2dDRUNFaElBVW9BaVFoSWlBRktBSTRJU01nQlNnQ1RDRWtJQVVvQWdBaEZTQUZLQUlVSVJZZ0JTZ0NLQ0VYSUFVb0Fqd2hHRUVCSVE4Z0FDQUJRUU5xUVFKMklnUnFJZ01nQkdvaUFpQUVhaUlaSVFRZ0FpRUlJQU1oQndOQUlBOUJBWEZGSUFRZ0lFOXlSUVJBSUFBZ0NpQVlJQVowSUF0MlFRSjBhaUlPTHdFQU93QUFJQTR0QUFJaEdpQU9MUUFESVJBZ0J5QUtJQmNnREhRZ0MzWkJBblJxSWc0dkFRQTdBQUFnRGkwQUFpRWJJQTR0QUFNaER5QUlJQW9nRmlBTmRDQUxka0VDZEdvaURpOEJBRHNBQUNBT0xRQUNJUndnRGkwQUF5RWRJQVFnQ2lBVklBbDBJQXQyUVFKMGFpSU9Md0VBT3dBQUlBNHRBQUloSGlBT0xRQURJUTRnQUNBUWFpSWxJQW9nR0NBR0lCcHFJZ1owSUF0MlFRSjBhaUlRTHdFQU93QUFJQkF0QUFJZ0VDMEFBeUVtSUFjZ0Qyb2lKeUFLSUJjZ0RDQWJhaUlhZENBTGRrRUNkR29pQnk4QkFEc0FBQ0FITFFBQ0lRd2dCeTBBQXlFUUlBZ2dIV29pR3lBS0lCWWdEU0FjYWlJUGRDQUxka0VDZEdvaUNDOEJBRHNBQUNBSUxRQUNJUTBnQ0MwQUF5RWNJQVFnRG1vaUhTQUtJQlVnQ1NBZWFpSU9kQ0FMZGtFQ2RHb2lDUzhCQURzQUFDQUdhaUVBUVFNaEJ3Si9JQlFnSkVrRVFDQUFJUVpCQXd3QkN5QUFRUWR4SVFZZ0ZDQUFRUU4yYXlJVUtBQUFJUmhCQUFzZ0NTMEFBeUVlSUFrdEFBSWhDQ0FNSUJwcUlRQWdFeUFqU1FSL0lBQUZJQk1nQUVFRGRtc2lFeWdBQUNFWFFRQWhCeUFBUVFkeEN5RU1JQTBnRDJvaEFDQUhjaUVKUVFNaER3Si9JQklnSWtrRVFDQUFJUTFCQXd3QkN5QUFRUWR4SVEwZ0VpQUFRUU4yYXlJU0tBQUFJUlpCQUFzZ0NDQU9haUVBSUFseUlCRWdJVWtFZnlBQUJTQVJJQUJCQTNackloRW9BQUFoRlVFQUlROGdBRUVIY1FzaENTQWxJQ1pxSVFBZ0VDQW5haUVISUJzZ0hHb2hDQ0FkSUI1cUlRUWdEM0pGSVE4TUFRc0xJQVVnRERZQ0xDQUZJQVkyQWtBZ0JTQU5OZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFJZ0Iwa2dBQ0FEUzNJTkFFRnNJUWtnQ0NBWlN3MEJJQU5CQTJzaENRTkFJQVZCUEdvUUQwVWdBQ0FKU1hFRVFDQUFJQW9nQlNnQ1BDSU5JQVVvQWtBaURIUWdDM1pCQW5ScUlnNHZBUUE3QUFBZ0FDQU9MUUFEYWlJR0lBb2dEU0FNSUE0dEFBSnFJZ0IwSUF0MlFRSjBhaUlNTHdFQU93QUFJQVVnQUNBTUxRQUNhallDUUNBR0lBd3RBQU5xSVFBTUFRVWdBMEVDYXlFTUEwQWdCVUU4YWhBUElRWWdCU2dDUENFTklBVW9Ba0FoQ1NBQUlBeExJQVp5UlFSQUlBQWdDaUFOSUFsMElBdDJRUUowYWlJR0x3RUFPd0FBSUFVZ0NTQUdMUUFDYWpZQ1FDQUFJQVl0QUFOcUlRQU1BUXNMQTBBZ0FDQU1TMFVFUUNBQUlBb2dEU0FKZENBTGRrRUNkR29pQmk4QkFEc0FBQ0FBSUFZdEFBTnFJUUFnQ1NBR0xRQUNhaUVKREFFTEN3SkFJQUFnQTA4TkFDQUFJQW9nRFNBSmRDQUxkaUlBUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUpJQU10QUFKcUlRa01BUXNnQ1VFZlN3MEFRU0FnQ1NBS0lBQkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRa0xJQUpCQTJzaERBTkFJQVZCS0dvUUQwVWdCeUFNU1hFRVFDQUhJQW9nQlNnQ0tDSUdJQVVvQWl3aUFIUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0J5QU5MUUFEYWlJRElBb2dCaUFBSUEwdEFBSnFJZ0IwSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQUNBR0xRQUNhallDTENBRElBWXRBQU5xSVFjTUFRVWdBa0VDYXlFR0EwQWdCVUVvYWhBUElRTWdCU2dDS0NFTUlBVW9BaXdoQUNBR0lBZEpJQU55UlFSQUlBY2dDaUFNSUFCMElBdDJRUUowYWlJREx3RUFPd0FBSUFVZ0FDQURMUUFDYWpZQ0xDQUhJQU10QUFOcUlRY01BUXNMQTBBZ0JpQUhTVVVFUUNBSElBb2dEQ0FBZENBTGRrRUNkR29pQXk4QkFEc0FBQ0FISUFNdEFBTnFJUWNnQUNBRExRQUNhaUVBREFFTEN3SkFJQUlnQjAwTkFDQUhJQW9nRENBQWRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUFJQU10QUFKcUlRQU1BUXNnQUVFZlN3MEFRU0FnQUNBS0lBSkJBblJxTFFBQ2FpSUFJQUJCSUU4YklRQUxJQmxCQTJzaERBTkFJQVZCRkdvUUQwVWdDQ0FNU1hFRVFDQUlJQW9nQlNnQ0ZDSUdJQVVvQWhnaUFuUWdDM1pCQW5ScUlnMHZBUUE3QUFBZ0NDQU5MUUFEYWlJRElBb2dCaUFDSUEwdEFBSnFJZ0owSUF0MlFRSjBhaUlHTHdFQU93QUFJQVVnQWlBR0xRQUNhallDR0NBRElBWXRBQU5xSVFnTUFRVWdHVUVDYXlFREEwQWdCVUVVYWhBUElRSWdCU2dDRkNFR0lBVW9BaGdoQnlBRElBaEpJQUp5UlFSQUlBZ2dDaUFHSUFkMElBdDJRUUowYWlJQ0x3RUFPd0FBSUFVZ0J5QUNMUUFDYWpZQ0dDQUlJQUl0QUFOcUlRZ01BUXNMQTBBZ0F5QUlTVVVFUUNBSUlBb2dCaUFIZENBTGRrRUNkR29pQWk4QkFEc0FBQ0FJSUFJdEFBTnFJUWdnQnlBQ0xRQUNhaUVIREFFTEN3SkFJQWdnR1U4TkFDQUlJQW9nQmlBSGRDQUxkaUlDUVFKMGFpSURMUUFBT2dBQUlBTXRBQU5CQVVZRVFDQUhJQU10QUFKcUlRY01BUXNnQjBFZlN3MEFRU0FnQnlBS0lBSkJBblJxTFFBQ2FpSUNJQUpCSUU4YklRY0xBMEFnQlJBUFJTQUVJQ0JKY1FSQUlBUWdDaUFGS0FJQUlnWWdCU2dDQkNJQ2RDQUxka0VDZEdvaURDOEJBRHNBQUNBRUlBd3RBQU5xSWdNZ0NpQUdJQUlnREMwQUFtb2lBblFnQzNaQkFuUnFJZ1F2QVFBN0FBQWdCU0FDSUFRdEFBSnFOZ0lFSUFNZ0JDMEFBMm9oQkF3QkJTQWZRUUpySVFNRFFDQUZFQThoQWlBRktBSUFJUVlnQlNnQ0JDRUlJQU1nQkVrZ0FuSkZCRUFnQkNBS0lBWWdDSFFnQzNaQkFuUnFJZ0l2QVFBN0FBQWdCU0FJSUFJdEFBSnFOZ0lFSUFRZ0FpMEFBMm9oQkF3QkN3c0RRQ0FESUFSSlJRUkFJQVFnQ2lBR0lBaDBJQXQyUVFKMGFpSUNMd0VBT3dBQUlBUWdBaTBBQTJvaEJDQUlJQUl0QUFKcUlRZ01BUXNMQWtBZ0JDQWZUdzBBSUFRZ0NpQUdJQWgwSUF0MklnSkJBblJxSWdNdEFBQTZBQUFnQXkwQUEwRUJSZ1JBSUFnZ0F5MEFBbW9oQ0F3QkN5QUlRUjlMRFFCQklDQUlJQW9nQWtFQ2RHb3RBQUpxSWdJZ0FrRWdUeHNoQ0F0QmJFRnNRV3hCYkVGc1FXeEJiRUZzSUFFZ0NFRWdSeHNnQlNnQ0NDQUZLQUlNUnhzZ0IwRWdSeHNnQlNnQ0hDQUZLQUlnUnhzZ0FFRWdSeHNnQlNnQ01DQUZLQUkwUnhzZ0NVRWdSeHNnQlNnQ1JDQUZLQUpJUnhzaENRd0pDd0FMQUFzQUN3QUxBQXNBQ3dBTEFBdEJiQ0VKQ3lBRlFkQUFhaVFBSUFrTDdCQUJIbjhqQUVIUUFHc2lCU1FBUVd3aENRSkFJQU5CQ2trTkFBSkFJQU1nQWk4QUJDSUdJQUl2QUFBaUJ5QUNMd0FDSWdocWFrRUdhaUlPU1EwQUlBUXZBUUloRHlBRlFUeHFJQUpCQm1vaUFpQUhFQTBpQ1VHSWYwc05BU0FGUVNocUlBSWdCMm9pQWlBSUVBMGlDVUdJZjBzTkFTQUZRUlJxSUFJZ0NHb2lBaUFHRUEwaUNVR0lmMHNOQVNBRklBSWdCbW9nQXlBT2F4QU5JZ2xCaUg5TERRRWdCRUVFYWlFS0lBQWdBV29pSEVFRGF5RWRRUUFnRDJ0QkgzRWhDeUFGS0FJSUlSRWdCU2dDSENFU0lBVW9BakFoRXlBRktBSkVJUlFnQlNnQ0JDRUpJQVVvQWhnaEJpQUZLQUlzSVFjZ0JTZ0NRQ0VJSUFVb0FoQWhIaUFGS0FJa0lSOGdCU2dDT0NFZ0lBVW9Ba3doSVNBRktBSUFJUlVnQlNnQ0ZDRVdJQVVvQWlnaEZ5QUZLQUk4SVJoQkFTRU5JQUFnQVVFRGFrRUNkaUlDYWlJT0lBSnFJZzhnQW1vaUdTRUVJQThoQWlBT0lRTURRQ0FOUlNBRUlCMVBja1VFUUNBS0lCZ2dDSFFnQzNaQkFYUnFJZ3d0QUFFaERTQUFJQXd0QUFBNkFBQWdDaUFYSUFkMElBdDJRUUYwYWlJTUxRQUJJUkFnQXlBTUxRQUFPZ0FBSUFvZ0ZpQUdkQ0FMZGtFQmRHb2lEQzBBQVNFYUlBSWdEQzBBQURvQUFDQUtJQlVnQ1hRZ0MzWkJBWFJxSWd3dEFBRWhHeUFFSUF3dEFBQTZBQUFnQ2lBWUlBZ2dEV29pQ0hRZ0MzWkJBWFJxSWd3dEFBRWhEU0FBSUF3dEFBQTZBQUVnQ2lBWElBY2dFR29pQjNRZ0MzWkJBWFJxSWd3dEFBRWhFQ0FESUF3dEFBQTZBQUVnQ2lBV0lBWWdHbW9pREhRZ0MzWkJBWFJxSWdZdEFBRWhHaUFDSUFZdEFBQTZBQUVnQ2lBVklBa2dHMm9pRzNRZ0MzWkJBWFJxSWdrdEFBRWhJaUFFSUFrdEFBQTZBQUVnQ0NBTmFpRUdRUU1oQ1FKL0lCUWdJVWtFUUVFRElRMGdCZ3dCQ3lBVUlBWkJBM1pySWhRb0FBQWhHRUVBSVEwZ0JrRUhjUXNoQ0NBSElCQnFJUVlnRXlBZ1NRUi9JQVlGSUJNZ0JrRURkbXNpRXlnQUFDRVhRUUFoQ1NBR1FRZHhDeUVISUF3Z0dtb2hEQ0FKSUExeUlSQkJBeUVOQW44Z0VpQWZTUVJBSUF3aEJrRUREQUVMSUF4QkIzRWhCaUFTSUF4QkEzWnJJaElvQUFBaEZrRUFDeUFiSUNKcUlRd2dFSEloRUNBUklCNUpCSDhnREFVZ0VTQU1RUU4yYXlJUktBQUFJUlZCQUNFTklBeEJCM0VMSVFrZ0JFRUNhaUVFSUFKQkFtb2hBaUFEUVFKcUlRTWdBRUVDYWlFQUlBMGdFSEpGSVEwTUFRc0xJQVVnQnpZQ0xDQUZJQWcyQWtBZ0JTQUdOZ0lZSUFVZ0NUWUNCQ0FGSUJRMkFrUWdCU0FUTmdJd0lBVWdFallDSENBRklCRTJBZ2dnQlNBWU5nSThJQVVnRnpZQ0tDQUZJQlkyQWhRZ0JTQVZOZ0lBSUFBZ0Rrc2dBeUFQUzNJTkFFRnNJUWtnQWlBWlN3MEJJQTVCQTJzaENRTkFJQVZCUEdvUUR5QUFJQWxQY2tVRVFDQUtJQVVvQWp3aUJpQUZLQUpBSWdkMElBdDJRUUYwYWlJSUxRQUJJUXdnQUNBSUxRQUFPZ0FBSUFvZ0JpQUhJQXhxSWdaMElBdDJRUUYwYWlJSExRQUFJUWdnQlNBR0lBY3RBQUZxTmdKQUlBQWdDRG9BQVNBQVFRSnFJUUFNQVFzTEEwQWdCVUU4YWhBUElRY2dCU2dDUENFR0lBVW9Ba0FoQ1NBQUlBNVBJQWR5UlFSQUlBb2dCaUFKZENBTGRrRUJkR29pQmkwQUFDRUhJQVVnQ1NBR0xRQUJhallDUUNBQUlBYzZBQUFnQUVFQmFpRUFEQUVMQ3dOQUlBQWdEazlGQkVBZ0NpQUdJQWwwSUF0MlFRRjBhaUlITFFBQklBQWdCeTBBQURvQUFDQUFRUUZxSVFBZ0NXb2hDUXdCQ3dzZ0QwRURheUVBQTBBZ0JVRW9haEFQSUFBZ0EwMXlSUVJBSUFvZ0JTZ0NLQ0lHSUFVb0Fpd2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQURJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaXdnQXlBSU9nQUJJQU5CQW1vaEF3d0JDd3NEUUNBRlFTaHFFQThoQnlBRktBSW9JUVlnQlNnQ0xDRUFJQU1nRDA4Z0IzSkZCRUFnQ2lBR0lBQjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQUFJQVl0QUFGcU5nSXNJQU1nQnpvQUFDQURRUUZxSVFNTUFRc0xBMEFnQXlBUFQwVUVRQ0FLSUFZZ0FIUWdDM1pCQVhScUlnY3RBQUVoQ0NBRElBY3RBQUE2QUFBZ0EwRUJhaUVESUFBZ0NHb2hBQXdCQ3dzZ0dVRURheUVEQTBBZ0JVRVVhaEFQSUFJZ0EwOXlSUVJBSUFvZ0JTZ0NGQ0lHSUFVb0FoZ2lCM1FnQzNaQkFYUnFJZ2d0QUFFaERpQUNJQWd0QUFBNkFBQWdDaUFHSUFjZ0Rtb2lCblFnQzNaQkFYUnFJZ2N0QUFBaENDQUZJQVlnQnkwQUFXbzJBaGdnQWlBSU9nQUJJQUpCQW1vaEFnd0JDd3NEUUNBRlFSUnFFQThoQnlBRktBSVVJUVlnQlNnQ0dDRURJQUlnR1U4Z0IzSkZCRUFnQ2lBR0lBTjBJQXQyUVFGMGFpSUdMUUFBSVFjZ0JTQURJQVl0QUFGcU5nSVlJQUlnQnpvQUFDQUNRUUZxSVFJTUFRc0xBMEFnQWlBWlQwVUVRQ0FLSUFZZ0EzUWdDM1pCQVhScUlnY3RBQUVoQ0NBQ0lBY3RBQUE2QUFBZ0FrRUJhaUVDSUFNZ0NHb2hBd3dCQ3dzRFFDQUZFQThnQkNBZFQzSkZCRUFnQ2lBRktBSUFJZ0lnQlNnQ0JDSUdkQ0FMZGtFQmRHb2lCeTBBQVNFSUlBUWdCeTBBQURvQUFDQUtJQUlnQmlBSWFpSUNkQ0FMZGtFQmRHb2lCaTBBQUNFSElBVWdBaUFHTFFBQmFqWUNCQ0FFSUFjNkFBRWdCRUVDYWlFRURBRUxDd05BSUFVUUR5RUhJQVVvQWdBaEJpQUZLQUlFSVFJZ0JDQWNUeUFIY2tVRVFDQUtJQVlnQW5RZ0MzWkJBWFJxSWdZdEFBQWhCeUFGSUFJZ0JpMEFBV28yQWdRZ0JDQUhPZ0FBSUFSQkFXb2hCQXdCQ3dzRFFDQUVJQnhQUlFSQUlBb2dCaUFDZENBTGRrRUJkR29pQnkwQUFTRUlJQVFnQnkwQUFEb0FBQ0FFUVFGcUlRUWdBaUFJYWlFQ0RBRUxDMEZzUVd4QmJFRnNRV3hCYkVGc1FXd2dBU0FDUVNCSEd5QUZLQUlJSUFVb0FneEhHeUFEUVNCSEd5QUZLQUljSUFVb0FpQkhHeUFBUVNCSEd5QUZLQUl3SUFVb0FqUkhHeUFKUVNCSEd5QUZLQUpFSUFVb0FraEhHeUVKREFFTFFXd2hDUXNnQlVIUUFHb2tBQ0FKQzFnQkEzOENRQ0FBS0FLUTZ3RWlBVVVOQUNBQktBSUFJQUZCdE5VQmFpZ0NBQ0lDSUFGQnVOVUJhaWdDQUNJREVCTWdBZ1JBSUFNZ0FTQUNFUUlBREFFTElBRVFCZ3NnQUVFQU5nS2c2d0VnQUVJQU53T1E2d0VMNlFNQ0JIOENmaUFBUVFCQktCQURJUVFnQWtFQlFRVWdBeHNpQUVrRVFDQUFEd3NnQVVVRVFFRi9Ed3RCQVNFR0FrQUNRQ0FEUVFGR0RRQWdBeUVHSUFFb0FBQWlCVUdvNnI1cFJnMEFRWFloQXlBRlFYQnhRZERVdE1JQlJ3MEJRUWdoQXlBQ1FRaEpEUUVnQVRVQUJDRUlJQVJCQVRZQ0ZDQUVJQWczQXdCQkFBOExJQUVnQWlBR0VCb2lBeUFDU3cwQUlBUWdBellDR0VGeUlRTWdBQ0FCYWlJRlFRRnJMUUFBSWdKQkNIRU5BQ0FDUVNCeElnWkZCRUJCY0NFRElBVXRBQUFpQlVHbkFVc05BU0FGUVFkeHJVSUJJQVZCQTNaQkNtcXRoaUlJUWdPSWZpQUlmQ0VKSUFCQkFXb2hBQXNnQWtFR2RpRUZJQUpCQW5aQkFDRURBa0FDUUFKQUFrQWdBa0VEY1VFQmF3NERBQUVDQXdzZ0FDQUJhaTBBQUNFRElBQkJBV29oQUF3Q0N5QUFJQUZxTHdBQUlRTWdBRUVDYWlFQURBRUxJQUFnQVdvb0FBQWhBeUFBUVFScUlRQUxRUUZ4SVFJQ2ZnSkFBa0FDUUFKQUlBVkJBV3NPQXdFQ0F3QUxRbjhnQmtVTkF4b2dBQ0FCYWpFQUFBd0RDeUFBSUFGcU13QUFRb0FDZkF3Q0N5QUFJQUZxTlFBQURBRUxJQUFnQVdvcEFBQUxJUWdnQkNBQ05nSWdJQVFnQXpZQ0hDQUVJQWczQXdCQkFDRURJQVJCQURZQ0ZDQUVJQWdnQ1NBR0d5SUlOd01JSUFSQ2dJQUlJQWdnQ0VLQWdBaGFHejRDRUFzZ0F3dGZBUUYvUWJoL0lRTWdBVUVCUVFVZ0Foc2lBazhFZnlBQUlBSnFRUUZyTFFBQUlnQkJBM0ZCQW5SQm9CNXFLQUlBSUFKcUlBQkJCSFpCREhGQnNCNXFLQUlBYWlBQVFTQnhJZ0ZGYWlBQlFRVjJJQUJCd0FCSmNXb0ZRYmgvQ3dzTUFDQUFJQUVnQWtFQUVCa0xsd01DQlg4Q2ZpTUFRVUJxSWdRa0FBSkFBMEFnQVVFRlR3UkFBa0FnQUNnQUFFRndjVUhRMUxUQ0FVWUVRRUorSVFjZ0FVRUlTUTBFSUFBb0FBUWlBa0YzU3cwRUlBSkJDR29pQXlBQlN3MEVJQUpCZ1g5SkRRRU1CQXNnQkVFWWFpQUFJQUVRR3lFQ1FuNGdCQ2tER0VJQUlBUW9BaXhCQVVjYklBSWJJZ2RDZlZZTkF5QUhJQWg4SWdnZ0IxUkNmaUVIRFFNQ1FBSkFJQUZCQ0VrTkFDQUFLQUFBUVhCeFFkRFV0TUlCUncwQUlBQW9BQVFpQWtGM1N3MEZRYmgvSUFKQkNHb2lBaUFCSUFKSkd5RUREQUVMSUFSQkdHb2dBQ0FCRUJzaUFrR0lmMHNFUUNBQ0lRTU1BUXRCdUg4aEF5QUNEUUFnQVNBRUtBSXdJZ0pySVFVZ0FDQUNhaUVHQTBBZ0JpQUZJQVJCREdvUUhTSURRWWgvU3cwQklBTkJBMm9pQWlBRlN3UkFRYmgvSVFNTUFnc2dCU0FDYXlFRklBSWdCbW9oQmlBRUtBSVFSUTBBQ3lBRUtBSTRCSDlCdUg4aEF5QUZRUVJKRFFFZ0JrRUVhZ1VnQmdzZ0FHc2hBd3NnQTBHSWYwc05Bd3NnQVNBRGF5RUJJQUFnQTJvaEFBd0JDd3RDZmlBSUlBRWJJUWNMSUFSQlFHc2tBQ0FIQzJRQkFYOUJ1SDhoQXdKQUlBRkJBMGtOQUNBQUxRQUNJUUVnQWlBQUx3QUFJZ0JCQVhFMkFnUWdBaUFBUVFGMlFRTnhJZ00yQWdBZ0FpQUFJQUZCRUhSeVFRTjJJZ0EyQWdnQ1FBSkFJQU5CQVdzT0F3SUJBQUVMUVd3UEN5QUFJUU1MSUFNTFJBRUNmeUFCSUFJb0FnUWlBeUFCS0FJRWFpSUVOZ0lFSUFBZ0EwRUNkRUdnSFdvb0FnQWdBU2dDQUVFQUlBUnJkbkUyQWdBZ0FSQVBHaUFBSUFKQkNHbzJBZ1FMemdFQkJuOUJ1bjhoQ2dKQUlBSW9BZ1FpQ0NBQ0tBSUFJZ2xxSWcwZ0FTQUFhMHNOQUVGc0lRb2dDU0FFSUFNb0FnQWlDMnRMRFFBZ0FDQUphaUlFSUFJb0FnZ2lER3NoQWlBQUlBRkJJR3NpQUNBTElBbEJBQkFnSUFNZ0NTQUxhallDQUFKQUFrQWdCQ0FGYXlBTVR3UkFJQUloQlF3QkN5QU1JQVFnQm10TERRSWdCeUFISUFJZ0JXc2lBbW9pQVNBSWFrOEVRQ0FFSUFFZ0NCQUtHZ3dDQ3lBQ0lBaHFJUWdnQkNBQlFRQWdBbXNRQ2lBQ2F5RUVDeUFFSUFBZ0JTQUlRUUVRSUFzZ0RTRUtDeUFLQzhjRUFRSi9JQUFnQTJvaEJnSkFJQU5CQjB3RVFBTkFJQUFnQms4TkFpQUFJQUl0QUFBNkFBQWdBRUVCYWlFQUlBSkJBV29oQWd3QUN3QUxJQVJCQVVZRVFBSkFJQUFnQW1zaUJVRUhUUVJBSUFBZ0FpMEFBRG9BQUNBQUlBSXRBQUU2QUFFZ0FDQUNMUUFDT2dBQ0lBQWdBaTBBQXpvQUF5QUFJQUlnQlVFQ2RDSUZRY0FlYWlnQ0FHb2lBaWdBQURZQUJDQUNJQVZCNEI1cUtBSUFheUVDREFFTElBQWdBaWtBQURjQUFBc2dBa0VJYWlFQ0lBQkJDR29oQUFzZ0FTQUdUd1JBSUFBZ0Eyb2hBU0FFUVFGSElBQWdBbXRCRDBweVJRUkFBMEFnQUNBQ0tRQUFOd0FBSUFKQkNHb2hBaUFBUVFocUlnQWdBVWtOQUF3REN3QUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQTBFUlNRMEJJQUJCRUdvaEFBTkFJQUFnQWlrQUVEY0FBQ0FBSUFJcEFCZzNBQWdnQUNBQ0tRQWdOd0FRSUFBZ0Fpa0FLRGNBR0NBQ1FTQnFJUUlnQUVFZ2FpSUFJQUZKRFFBTERBRUxBa0FnQUNBQlN3UkFJQUFoQVF3QkN5QUJJQUJySVFVQ1FDQUVRUUZISUFBZ0FtdEJEMHB5UlFSQUlBSWhBd05BSUFBZ0F5a0FBRGNBQUNBRFFRaHFJUU1nQUVFSWFpSUFJQUZKRFFBTERBRUxJQUFnQWlrQUFEY0FBQ0FBSUFJcEFBZzNBQWdnQlVFUlNBMEFJQUJCRUdvaEFDQUNJUU1EUUNBQUlBTXBBQkEzQUFBZ0FDQURLUUFZTndBSUlBQWdBeWtBSURjQUVDQUFJQU1wQUNnM0FCZ2dBMEVnYWlFRElBQkJJR29pQUNBQlNRMEFDd3NnQWlBRmFpRUNDd05BSUFFZ0JrOE5BU0FCSUFJdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdvaEFnd0FDd0FMQzY0SEFnVi9BWDRqQUVHQUFXc2lFU1FBSUJFZ0F6WUNmRUYvSVE4Q1FBSkFBa0FDUUFKQUlBSU9CQUVBQXdJRUN5QUdSUVJBUWJoL0lROE1CQXRCYkNFUElBVXRBQUFpQWlBRFN3MERJQWdnQWtFQ2RDSUNhaWdDQUNFRElBSWdCMm9vQWdBaEFpQUFRUUE2QUFzZ0FFSUFOd0lBSUFBZ0FqWUNEQ0FBSUFNNkFBb2dBRUVBT3dFSUlBRWdBRFlDQUVFQklROE1Bd3NnQVNBSk5nSUFRUUFoRHd3Q0N5QUtSUVJBUVd3aER3d0NDMEVBSVE4Z0MwVWdERUVaU0hJTkFVRUlJQVIwUVFocUlRQkJBQ0VEQTBBZ0FDQURUUTBDSUFOQlFHc2hBd3dBQ3dBTFFXd2hEeUFSSUJGQi9BQnFJQkZCK0FCcUlBVWdCaEFNSWdOQmlIOUxEUUFnRVNnQ2VDSUNJQVJMRFFBZ0VTZ0NmRUVCYWlFSklBQkJDR29oQzBHQWdBSWdBblJCRUhVaEJVRUJJUkJCQVNBQ2RDSVBRUUZySWdvaEVnTkFJQWtnRGtjRVFBSkFJQkVnRGtFQmRDSUVhaThCQUNJTVFmLy9BMFlFUUNBTElCSkJBM1JxSUE0MkFnUWdFa0VCYXlFU1FRRWhEQXdCQ3lBUVFRQWdCU0FNd1VvYklSQUxJQVFnRFdvZ0REc0JBQ0FPUVFGcUlRNE1BUXNMSUFBZ0FqWUNCQ0FBSUJBMkFnQUNRQ0FLSUJKR0JFQWdEVUhxQUdvaEJrRUFJUkJCQUNFTUEwQWdDU0FRUmdSQUlBOUJBM1lnRDBFQmRtcEJBMm9pQlVFQmRDRUVRUUFoREVFQUlSSURRRUVBSVE0Z0R5QVNUUTBFQTBBZ0RrRUNSd1JBSUFzZ0JTQU9iQ0FNYWlBS2NVRURkR29nQmlBT0lCSnFhaTBBQURZQ0JDQU9RUUZxSVE0TUFRc0xJQkpCQW1vaEVpQUVJQXhxSUFweElRd01BQXNBQlNBUklCQkJBWFJxTGdFQUlRVWdCaUFNYWlJRUlCTTNBQUJCQ0NFT0EwQWdCU0FPU2dSQUlBUWdEbW9nRXpjQUFDQU9RUWhxSVE0TUFRc0xJQk5DZ1lLRWlKQ2d3SUFCZkNFVElCQkJBV29oRUNBRklBeHFJUXdNQVFzQUN3QUxJQTlCQTNZZ0QwRUJkbXBCQTJvaEJVRUFJUkJCQUNFT0EwQWdDU0FRUmcwQlFRQWhEQ0FSSUJCQkFYUnFMZ0VBSWdSQkFDQUVRUUJLR3lFRUEwQWdCQ0FNUndSQUlBc2dEa0VEZEdvZ0VEWUNCQU5BSUFVZ0Rtb2dDbkVpRGlBU1N3MEFDeUFNUVFGcUlRd01BUXNMSUJCQkFXb2hFQXdBQ3dBTElBSkJBV29oQlVFQUlRd0RRQ0FNSUE5SEJFQWdEU0FMSUF4QkEzUnFJZ2tvQWdRaUJFRUJkR29pQWlBQ0x3RUFJZ1pCQVdvN0FRQWdDU0FGSUFablFXQnphaUlDT2dBRElBa2dCaUFDZENBUGF6c0JBQ0FKSUFnZ0JFRUNkQ0lDYWlnQ0FEb0FBaUFKSUFJZ0Iyb29BZ0EyQWdRZ0RFRUJhaUVNREFFTEN5QUJJQUEyQWdBZ0F5RVBDeUFSUVlBQmFpUUFJQThMN1ZvQ08zOEdmaU1BUWVBQmF5SUVKQUFDUUVHdzdBa1FCU0lGUlFSQVFVQWhCd3dCQ3lBRlFnQTNBdlRxQVNBRlFRQTJBc1RyQVNBRlFRQTJBclRyQVNBRlFnQTNBcHpyQVNBRlFRQTJBcmpwQVNBRlFRQTJBcXpzQ1NBRlFnQTNBdFRyQVNBRlFnQTNBcXpyQVNBRlFnQTNBNGpyQVNBRlFnQTNBdVRxQVNBRlFnQTNBdVRyQVNBRlFZR0FnTUFBTmdLODZ3RWdCVUlBTndLazZ3RWdCVUg4NmdGcVFRQTJBZ0FnQlVHUTZ3RnFRZ0EzQXdBZ0JSQVlJQVZCck5VQmFpRVVJQVZCK09zQmFpRWNJQVZCc09vQmFpRWlJQVZCb0RCcUlTb2dCVUdZSUdvaEt5QUZRYWpRQUdvaEhpQUZRUkJxSVN3Z0JVRUlhaUVvSUFWQkJHb2hMU0FGUWNEcEFXb2hLU0FGUVlqckFXb2dCRUdVQVdvaEx5QUVRWXdCYWlFd0lBUkJoQUZxSVRFZ0JFSGNBR29oTWlBRVFkUUFhaUV6SUFSQnpBQnFJVFFnQUNFZEFrQUNRQUpBQWtBQ1FBTkFRUUZCQlNBRktBTGs2Z0ViSVFZQ1FBTkFJQU1nQmtrTkFTQUNLQUFBUVhCeFFkRFV0TUlCUmdSQVFiaC9JUWNnQTBFSVNRMElJQUlvQUFRaURrRjNTd1JBUVhJaEJ3d0pDeUFESUE1QkNHb2lDVWtOQ0NBT1FZQi9Td1JBSUFraEJ3d0pDeUFESUFscklRTWdBaUFKYWlFQ0RBRUxDeUFGUWdBM0FxenBBU0FGUWdBM0EranBBU0FGUVFBMkFwanJBU0FGUWdBM0E0RHFBU0FGUWdNM0EvanBBU0FGUWJUcEFXcENBRGNDQUNBRlFmRHBBV3BDQURjREFDQUZRYWpRQUdvaUNVR01nSURnQURZQ0FDQUZRYXpRQVdwQjRCSXBBZ0EzQWdBZ0JVRzAwQUZxUWVnU0tBSUFOZ0lBSUFVZ0JVRVFhallDQUNBRklBVkJvREJxTmdJRUlBVWdCVUdZSUdvMkFnZ2dCU0FKTmdJTUlBVkJBVUVGSUFVb0F1VHFBUnMyQXJ6cEFRSkFJQUZGRFFBZ0JTZ0NyT2tCSWdrZ0hVWU5BQ0FGSUFrMkFyanBBU0FGSUIwMkFxenBBU0FGS0FLdzZRRWhEaUFGSUIwMkFyRHBBU0FGSUIwZ0RpQUphMm8yQXJUcEFRdEJ1SDhoQ1NBRFFRVkJDU0FGS0FMazZnRWlCaHRKRFFVZ0FrRUJRUVVnQmhzZ0JoQWFJZzVCaUg5TEJFQWdEaUVKREFVTElBTWdEa0VEYWtrTkJTQXBJQUlnRGlBR0VCa2lCa0dJZjBzRVFDQUdJUWtNQlFzZ0JnMEZBa0FDUUNBRktBS282d0ZCQVVjTkFDQUZLQUtrNndFaUNVVU5BQ0FGS0FLVTZ3RkZEUUFnQ1NnQ0JFRUJheUlISUFVb0F0enBBU0lLclVLSGxhK3ZtTGJlbTU1L2ZrTEp6OW15OGVXNjZpZUZRaGVKUXMvVzA3N1N4NnZaUW41QytmUGQ4Wm4ybWFzV2ZDSS9RaUdJSUQrRlFzL1cwNzdTeDZ2WlFuNGlQMElkaUNBL2hVTDU4OTN4bWZhWnF4WitJajlDSUlnZ1A0V25jU0VHSUFrb0FnQWhGUU5BUVFBaENBSkFJQlVnQmtFQ2RHb29BZ0FpQ1VVTkFDQUpLQUlJUVFoSkRRQWdDU2dDQkNJU0tBQUFRYmZJd3VGK1J3MEFJQklvQUFRaENBc2dDQ0FLUndSQUlBWWdCM0ZCQVdvaEJpQUlEUUVMQ3lBSlJRMEFJQVVRR0NBRlFYODJBcURyQVNBRklBazJBcFRyQVNBRklBVW9BdHpwQVNJSU5nS1k2d0VNQVFzZ0JTZ0MzT2tCSVFnTEFrQWdDRVVOQUNBRktBS1k2d0VnQ0VZTkFFRmdJUWtNQmdzQ1FDQUZLQUxnNlFFRVFDQUZJQVVvQXVqcUFTSUpSVFlDN09vQklBa05BU0FGUXZucTBORG55YUhrNFFBM0E2anFBU0FGUWdBM0E2RHFBU0FGUXMvVzA3N1N4NnZaUWpjRG1Pb0JJQVZDMXV1Qzd1cjlpZlhnQURjRGtPb0JJQVZDQURjRGlPb0JJQ0pCQUVFb0VBTWFEQUVMSUFWQkFEWUM3T29CQ3lBQklCMXFJU1VnQlNBRktRUG82UUVnRHExOE53UG82UUVnQXlBT2F5RURJQUlnRG1vaEFpQWRJUTREUUNBQ0lBTWdCRUVzYWhBZEloVkJpSDlMQkVBZ0ZTRUpEQVlMSUFOQkEyc2lOU0FWU1EwRUlBSkJBMm9oRzBGc0lRa0NRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBRUtBSXNEZ01DQVFBVkN5QVZRZi8vQjBzTkV5QVZRUU5KRFJJZ0JTa0R5T2tCSVQ4Q1FBSkFJQnN0QUFBaUNVRURjU0lhUVFGckRnTUdBUUFIQ3lBRktBS0E2Z0VOQUVGaUlRa01GUXNnRlVFRlNRMFNJQnNvQUFBaEF3Si9Ba0FDUUFKQUlBbEJBblpCQTNFaUNVRUNhdzRDQVFJQUN5QUpRUUJISVFjZ0EwRUVka0gvQjNFaEMwRURJUVlnQTBFT2RrSC9CM0VNQWd0QkJDRUdJQU5CQkhaQi8vOEFjU0VMUVFFaEJ5QURRUkoyREFFTElBTkJCSFpCLy84UGNTSUxRWUNBQ0VzTkUwRUJJUWRCQlNFR0lBSXRBQWRCQ25RZ0EwRVdkbklMSWdnZ0Jtb2lDU0FWU3cwU0FrQWdDMEdCQmtrTkFDQUZLQUtjNndGRkRRQkJBQ0VEQTBBZ0EwR0RnQUZMRFFFZ0EwRkFheUVEREFBTEFBc2dCaUFiYWlFUElCcEJBMGNOQmlBRktBSU1JZ0l0QUFGQkNIUWhBeUFIRFFjZ0EwVU5DQ0FFUWZBQWFpQVBJQWdRRFNJRFFZaC9TdzBKSUFKQkJHb2hCaUFMSUJ4cUloSkJBMnNoQ2tFQUlBSXZBUUpyUVI5eElRY2dIQ0VEQTBBZ0JFSHdBR29RRDBVZ0F5QUtTWEVFUUNBRElBWWdCQ2dDY0NJSUlBUW9BblFpRDNRZ0IzWkJBblJxSWdJdkFRQTdBQUFnQXlBQ0xRQURhaUlESUFZZ0NDQVBJQUl0QUFKcUlnaDBJQWQyUVFKMGFpSUNMd0VBT3dBQUlBUWdDQ0FDTFFBQ2FqWUNkQ0FESUFJdEFBTnFJUU1NQVFVZ0VrRUNheUVJQTBBZ0JFSHdBR29RRHlFUElBUW9BbkFoQ2lBRUtBSjBJUUlnQXlBSVN5QVBja1VFUUNBRElBWWdDaUFDZENBSGRrRUNkR29pQ2k4QkFEc0FBQ0FFSUFJZ0NpMEFBbW8yQW5RZ0F5QUtMUUFEYWlFRERBRUxDd05BSUFNZ0NFMEVRQ0FESUFZZ0NpQUNkQ0FIZGtFQ2RHb2lEeThCQURzQUFDQURJQTh0QUFOcUlRTWdBaUFQTFFBQ2FpRUNEQUVMQ3dKQUlBTWdFazhOQUNBRElBWWdDaUFDZENBSGRrRUNkR29pQXkwQUFEb0FBQ0FETFFBRFFRRkdCRUFnQWlBRExRQUNhaUVDREFFTElBSkJIMHNOQUVFZ0lBSWdBeTBBQW1vaUFpQUNRU0JQR3lFQ0MwRnNRV3dnQ3lBRUtBSjRJQVFvQW54SEd5QUNRU0JIR3lFRERBc0xBQXNBQ3lBRUtBSTBJZ0lnSlNBT2Ewc05DaUFPUlFSQVFRQWhDU0FDRFFJTURnc2dEaUFiTFFBQUlBSVFBeG9nQWlFSkRBd0xJQlVnSlNBT2Ewc05DU0FPRFFGQkFDRUpJQlZGRFF3TFFiWi9JUWtNRVFzZ0RpQWJJQlVRQWhvZ0ZTRUpEQW9MSUJ3Z0d3Si9Ba0FDUUFKQUlBbEJBblpCQTNGQkFXc09Bd0VBQWdBTElBbEJBM1loQTBFQkRBSUxJQnN2QUFCQkJIWWhBMEVDREFFTElCVkJCRWtORGlBQ0x3QURJQUl0QUFWQkVIUnlJZ0pCajRDQUFVc05EaUFDUVFSMklRTkJBd3NpQW1vdEFBQWdBMEVnYWhBRElRa2dCU0FETmdLQTZ3RWdCU0FKTmdMdzZnRWdBa0VCYWlFSkRBVUxJQlVDZndKQUFrQUNRQ0FKUVFKMlFRTnhRUUZyRGdNQkFBSUFDeUFKUVFOMklRTkJBUXdDQ3lBYkx3QUFRUVIySVFOQkFnd0JDeUFDTHdBRElBSXRBQVZCRUhSeVFRUjJJUU5CQXdzaUFpQURhaUlKUVNCcVNRUkFJQWtnRlVzTkRTQWNJQUlnRzJvZ0F4QUNJUUlnQlNBRE5nS0E2d0VnQlNBQ05nTHc2Z0VnQWlBRGFpSUNRZ0EzQUJnZ0FrSUFOd0FRSUFKQ0FEY0FDQ0FDUWdBM0FBQU1CUXNnQlNBRE5nS0E2d0VnQlNBQ0lCdHFOZ0x3NmdFTUJBc2dCMFVFUUNBZUlBOGdDQ0FVRUJRaUFrR0lmMHNnQWlBSVQzSU5EQ0FjSUFzZ0FpQVBhaUFJSUFKcklCNFFGU0VEREFNTElBdEZJQWhGY2cwTElBdEJDSFlpQXlBSUlBdEpCSDhnQ0VFRWRDQUxiZ1ZCRHd0QkdHd2lBa0dNQ0dvb0FnQnNJQUpCaUFocUtBSUFhaUlHUVFOMklBWnFJQUpCZ0FocUtBSUFJQUpCaEFocUtBSUFJQU5zYWtrRVFDTUFRUkJySWhBa0FDQWVLQUlBSVFNZ0ZFSHdCR3BCQUVIc0FCQURJUVpCVkNFQ0FrQWdBMEgvQVhFaURFRU1TdzBBQWtBZ0ZFSGNDV29nQmlBUVFRaHFJQkJCREdvZ0R5QUlJQlJCM0F0cUloY1FDeUlTUVloL1N3MEFJQkFvQWd3aUJpQU1TdzBCSUJSQnFBVnFJUTBnRkVHa0JXb2hOaUFlUVFScUlSRWdBMEdBZ0lCNGNTRTNJQVpCQVdvaUV5RUNJQVloQXdOQUlBSWlCMEVCYXlFQ0lBTWlDa0VCYXlFRElCUWdDa0VDZEdvb0F2QUVSUTBBQzBFQklBY2dCMEVCVFJzaEZrRUFJUWRCQVNFQ0EwQWdBaUFXUndSQUlCUWdBa0VDZENJRGFpZ0M4QVFoR0NBRElBMXFJQWMyQWdBZ0FrRUJhaUVDSUFjZ0dHb2hCd3dCQ3dzZ0RTQUhOZ0lBUVFBaEFpQVFLQUlJSVFNRFFDQUNJQU5IQkVBZ0RTQUNJQlJxUWR3SmFpMEFBQ0lZUVFKMGFpSVpJQmtvQWdBaUdVRUJhallDQUNBVUlCbEJBWFJxSWhrZ0dEb0EzUVVnR1NBQ09nRGNCU0FDUVFGcUlRSU1BUXNMUVFBaEF5QU5RUUEyQWdBZ0RDQUdRWDl6YWlFR1FRRWhBZ05BSUFJZ0ZrY0VRQ0FVSUFKQkFuUnFJZzBnQXpZQ0FDQU5LQUx3QkNBQ0lBWnFkQ0FEYWlFRElBSkJBV29oQWd3QkN3c2dEQ0FUSUFwcklnWnJRUUZxSVFvZ0JpRURBMEFnQXlBS1NRUkFJQlFnQTBFMGJHb2hEVUVCSVFJRFFDQUNJQlpIQkVBZ0RTQUNRUUowSWhocUlCUWdHR29vQWdBZ0EzWTJBZ0FnQWtFQmFpRUNEQUVMQ3lBRFFRRnFJUU1NQVFzTElCY2dGRUUwRUFJaE9DQVVRWkFNYWlFNUlCTWdER3NoT2lBVVFkd0ZhaUVYUVFBaENnTkFBa0FDUUNBSElBcEhCRUJCQVNBTUlCTWdGeUFLUVFGMGFpSUNMUUFCSWcxcklnTnJJaGgwSVJrZ0FpMEFBQ0VXSURnZ0RVRUNkR29pSHlnQ0FDRUNJQVlnR0UwRVFDQTJRUUVnQXlBNmFpSU5JQTFCQVV3YklpQkJBblFpSkdvb0FnQWhEU0E1SUJRZ0EwRTBiR3BCTkJBQ0lTRWdEVUVCZENFbUlCRWdBa0VDZEdvaEl5QWdRUUZORFFJZ0EwRVFkRUdBZ1B3SGNTQVdja0dBZ0lBSWNpRWdJQ0VnSkdvb0FnQWhKRUVBSVFJRFFDQUNJQ1JHRFFNZ0l5QUNRUUowYWlBZ05nRUFJQUpCQVdvaEFnd0FDd0FMSUFJZ0FpQVphaUlOSUFJZ0RVc2JJUTBnQTBFUWRFR0FnUHdIY1NBV2NrR0FnSUFJY2lFREEwQWdBaUFOUmcwRElCRWdBa0VDZEdvZ0F6WUJBQ0FDUVFGcUlRSU1BQXNBQ3lBZUlBeEJFSFFnTjNJZ0RISkJnQUp5TmdJQURBTUxJQWNnRFdzaEpDQVhJQ1pxSVNaQkFDRU5BMEFnRFNBa1JnMEJRUUVnR0NBVElDWWdEVUVCZEdvaUp5MEFBU0lDYXlJN2EzUWlQQ0FoSUFKQkFuUnFJaUFvQWdBaUFtb2hQU0FESUR0cVFSQjBRWUNBL0FkeElDY3RBQUJCQ0hSeUlCWnlRWUNBZ0JCeUlTY0RRQ0FqSUFKQkFuUnFJQ2MyQVFBZ0FrRUJhaUlDSUQxSkRRQUxJQ0FnSUNnQ0FDQThhallDQUNBTlFRRnFJUTBNQUFzQUN5QWZJQjhvQWdBZ0dXbzJBZ0FnQ2tFQmFpRUtEQUFMQUFzZ0VpRUNDeUFRUVJCcUpBQWdBa0dJZjBzZ0FpQUlUM0lORENBY0lBc2dBaUFQYWlBSUlBSnJJQjRRRmlFRERBTUxJQjRnRHlBSUlCUVFGQ0lDUVloL1N5QUNJQWhQY2cwTElCd2dDeUFDSUE5cUlBZ2dBbXNnSGhBWElRTU1BZ3NnQXdSQUlCd2dDeUFQSUFnZ0FoQVdJUU1NQWdzZ0hDQUxJQThnQ0NBQ0VCY2hBd3dCQ3lBY0lBc2dEeUFJSUFJUUZTRURDeUFEUVloL1N3MElJQVVnQ3pZQ2dPc0JJQVVnSERZQzhPb0JJQVZCQVRZQ2dPb0JJQnBCQWtZRVFDQUZJQjQyQWd3TElBc2dIR29pQWtJQU53QUFJQUpDQURjQUdDQUNRZ0EzQUJBZ0FrSUFOd0FJSUFsQmlIOUxEUW9MSUFrZ0ZVWU5DQ0FWSUFscklRWWdCU2dDbk9zQklRb0NRQ0FKSUJ0cUlnTXRBQUFpRDBVRVFFRUJJUUpCQUNFUFFiaC9JUWtnQmtFQlJnMEJEQXNMQW44Z0EwRUJhaUFQd0NJQ1FRQk9EUUFhSUFKQmYwWUVRQ0FHUVFOSURRc2dBeThBQVVHQS9nRnFJUThnQTBFRGFnd0JDeUFHUVFKSURRb2dBeTBBQVNBUFFRaDBja0dBZ0FKcklROGdBMEVDYWdzaEVrRzRmeUVKSUJKQkFXb2lBaUFWSUJ0cUlnZExEUW9nTENBRklCSXRBQUFpRWtFR2RrRWpRUWtnQWlBSElBSnJRY0FRUWRBUlFmQVNJQVVvQW9UcUFTQUtJQThnRkJBaElnbEJpSDlMRFFnZ0t5QW9JQkpCQkhaQkEzRkJIMEVJSUFJZ0NXb2lBaUFISUFKclFZQUxRWUFNUVlBWElBVW9Bb1RxQVNBRktBS2M2d0VnRHlBVUVDRWlDRUdJZjBzTkNFRnNJUWtnS2lBdElCSkJBblpCQTNGQk5FRUpJQUlnQ0dvaUFpQUhJQUpyUVlBTlFlQU9RWkFaSUFVb0FvVHFBU0FGS0FLYzZ3RWdEeUFVRUNFaUIwR0lmMHNOQ2lBQ0lBZHFJQU5ySWdJaENTQUNRWWgvU3cwS0N5QU9JQTlCQUV4eURRRUxRYnAvSVFrTUNBc2dKU0FPYXlFSklBWWdBbXNoQmlBQ0lBTnFJUWNDUUFKQUFrQWdDa1VFUUNBUFFRbElJQVVwQThqcEFVS0JnSUFJVkhJTkFpQW9LQUlBSWdKQkNHb2hFaUFDS0FJRUlRcEJBQ0VEUVFBaEFnTkFJQU1nQ25aRkJFQWdBaUFTSUFOQkEzUnFMUUFDUVJaTGFpRUNJQU5CQVdvaEF3d0JDd3NnQlVFQU5nS2M2d0VnQWtFSUlBcHJkRUVVVHcwQkRBTUxJQVZCQURZQ25Pc0JDeUFFSUFVb0F2RHFBU0lETmdMY0FTQUpJQTVxSVJZZ0F5QUZLQUtBNndGcUlSY0NRQ0FQUlFSQUlBNGhCd3dCQ3lBRktBSzQ2UUVoR2lBRktBSzA2UUVoR0NBRktBS3c2UUVoRWlBRlFRRTJBb1RxQVVFQUlRTURRQ0FEUVFOSEJFQWdCQ0FEUVFKMElnSnFJQUlnQldwQnJOQUJhaWdDQURZQ1pDQURRUUZxSVFNTUFRc0xRV3doQ1NBRVFUaHFJZ0lnQnlBR0VBMUJpSDlMRFFOQkNDQVBJQTlCQ0U0YklSOGdOQ0FDSUFVb0FnQVFIaUF6SUFJZ0JTZ0NDQkFlSURJZ0FpQUZLQUlFRUI0Z0RpQVNheUVaUVFBaENBTkFJQVJCT0dvUUQwRURSaUFJSUI5T2NrVUVRQ0FFS0FKUUlBUW9Ba3hCQTNScUtRSUFJa0NuSWdkQkVIWWlFVUgvQVhFaEN5QUVLQUpnSUFRb0FseEJBM1JxS1FJQUlrR25JZ3hCRUhZaUlVSC9BWEVoRUNBRUtBSllJQVFvQWxSQkEzUnFLUUlBSWtKQ0lJaW5JUVlnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNrSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NQQ0lLYXlJTklBSWdBaUFOU3hzaUV5QUthallDUENBR0lBUW9BamdnQ25SQkFDQVRhM1lnQWlBVGF5SVRkR29oQ2lBRVFUaHFFQThhSUFJZ0RVME5BU0FFSUFRb0Fqd2lBaUFUYWpZQ1BDQUVLQUk0SUFKMFFRQWdFMnQySUFwcUlRb01BUXNnQkNBQ0lBUW9BandpRFdvMkFqd2dCQ2dDT0NBTmRFRUFJQXByZGlBR2FpRUtJQVJCT0dvUUR4b0xJQVFwQW1RaFJDQUVJQW8yQW1RZ0JDQkVOd0pvREFFTEFrQWdBa1VFUUNBREJFQWdCQ2dDWkNFS0RBTUxJQVFvQW1naENnd0JDeUFFSUFRb0Fqd2lBa0VCYWpZQ1BBSi9JQVlnQTBWcUlBUW9BamdnQW5SQkgzWnFJZ0pCQTBZRVFDQUVLQUprUVFGckRBRUxJQUpCQW5RZ0JHb29BbVFMSWdaRklBWnFJUW9nQWtFQlJ3UkFJQVFnQkNnQ2FEWUNiQXNMSUFRZ0JDZ0NaRFlDYUNBRUlBbzJBbVFMcHlFQ0lFRkNnSUQ4QjROUVJRUkFJQVFnQkNnQ1BDSUdJQkJxTmdJOElBUW9BamdnQm5SQkFDQWhhM1lnQW1vaEFnc2dDeUFRYWtFVVR3UkFJQVJCT0dvUUR4b0xJRUJDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lHSUF0cU5nSThJQVFvQWpnZ0JuUkJBQ0FSYTNZZ0Eyb2hBd3NnQkVFNGFoQVBHaUFFSUFRb0FqZ2lCa0VBSUFkQkdIWWlDeUFFS0FJOGFpSVFhM1lnQzBFQ2RFR2dIV29vQWdCeElBZEIvLzhEY1dvMkFrd2dCQ0FRSUF4QkdIWWlCMm9pQ3pZQ1BDQUVJQWRCQW5SQm9CMXFLQUlBSUFaQkFDQUxhM1p4SUF4Qi8vOERjV28yQWx3Z0JFRTRhaEFQR2lBRUlFS25JZ1pCR0hZaUJ5QUVLQUk4YWlJTE5nSThJQVFnQjBFQ2RFR2dIV29vQWdBZ0JDZ0NPRUVBSUF0cmRuRWdCa0gvL3dOeGFqWUNWQ0FFUWZBQWFpQUlRUXhzYWlJR0lBbzJBZ2dnQmlBQ05nSUVJQVlnQXpZQ0FDQUlRUUZxSVFnZ0F5QVphaUFDYWlFWkRBRUxDeUFJSUI5SURRTWdGa0VnYXlFaElBNGhCd05BSUFSQk9Hb1FEMEVEUmlBSUlBOU9ja1VFUUNBRUtBSlFJQVFvQWt4QkEzUnFLUUlBSWtDbklnWkJFSFlpSTBIL0FYRWhDaUFFS0FKZ0lBUW9BbHhCQTNScUtRSUFJa0duSWcxQkVIWWlJRUgvQVhFaEV5QUVLQUpZSUFRb0FsUkJBM1JxS1FJQUlrSkNJSWluSVFNZ1FVSWdpQ0JBUWlDSXB5RUxBa0FnUWtJUWlLY2lERUgvQVhFaUFrRUNUd1JBQWtBZ0FrRVpTU0EvUW9HQWdCQlVja1VFUUNBRVFTQWdCQ2dDUENJTWF5SVJJQUlnQWlBUlN4c2lFQ0FNYWpZQ1BDQURJQVFvQWpnZ0RIUkJBQ0FRYTNZZ0FpQVFheUlNZEdvaEVDQUVRVGhxRUE4YUlBSWdFVTBOQVNBRUlBUW9BandpQWlBTWFqWUNQQ0FFS0FJNElBSjBRUUFnREd0MklCQnFJUkFNQVFzZ0JDQUNJQVFvQWp3aUVHbzJBandnQkNnQ09DQVFkRUVBSUF4cmRpQURhaUVRSUFSQk9Hb1FEeG9MSUFRcEFtUWhSQ0FFSUJBMkFtUWdCQ0JFTndKb0RBRUxBa0FnQWtVRVFDQUxCRUFnQkNnQ1pDRVFEQU1MSUFRb0FtZ2hFQXdCQ3lBRUlBUW9BandpQWtFQmFqWUNQQUovSUFNZ0MwVnFJQVFvQWpnZ0FuUkJIM1pxSWdKQkEwWUVRQ0FFS0FKa1FRRnJEQUVMSUFKQkFuUWdCR29vQW1RTElnTkZJQU5xSVJBZ0FrRUJSd1JBSUFRZ0JDZ0NhRFlDYkFzTElBUWdCQ2dDWkRZQ2FDQUVJQkEyQW1RTHB5RU1JRUZDZ0lEOEI0TlFSUVJBSUFRZ0JDZ0NQQ0lDSUJOcU5nSThJQVFvQWpnZ0FuUkJBQ0FnYTNZZ0RHb2hEQXNnQ2lBVGFrRVVUd1JBSUFSQk9Hb1FEeG9MSUVCQ2dJRDhCNE5RUlFSQUlBUWdCQ2dDUENJQ0lBcHFOZ0k4SUFRb0FqZ2dBblJCQUNBamEzWWdDMm9oQ3dzZ0JFRTRhaEFQR2lBRUlBUW9BamdpQWtFQUlBWkJHSFlpQXlBRUtBSThhaUlLYTNZZ0EwRUNkRUdnSFdvb0FnQnhJQVpCLy84RGNXbzJBa3dnQkNBS0lBMUJHSFlpQTJvaUJqWUNQQ0FFSUFOQkFuUkJvQjFxS0FJQUlBSkJBQ0FHYTNaeElBMUIvLzhEY1dvMkFsd2dCRUU0YWhBUEdpQUVJRUtuSWdKQkdIWWlBeUFFS0FJOGFpSUdOZ0k4SUFRZ0EwRUNkRUdnSFdvb0FnQWdCQ2dDT0VFQUlBWnJkbkVnQWtILy93TnhhallDVkFKQUFrQUNRQ0FFS0FMY0FTSURJQVJCOEFCcUlBaEJCM0ZCREd4cUloTW9BZ0FpRVdvaUl5QVhTdzBBSUFjZ0V5Z0NCQ0lOSUJGcUlncHFJQ0ZMRFFBZ0NrRWdhaUFXSUFkclRRMEJDeUFFSUJNb0FnZzJBaGdnQkNBVEtRSUFOd01RSUFjZ0ZpQUVRUkJxSUFSQjNBRnFJQmNnRWlBWUlCb1FIeUVLREFFTElBY2dFV29oQWlBVEtBSUlJUVlnQnlBREtRQUFOd0FBSUFjZ0F5a0FDRGNBQ0FKQUlCRkJFVWtOQUNBSElBTXBBQkEzQUJBZ0J5QURLUUFZTndBWUlCRkJFR3RCRVVnTkFDQURRUkJxSVFNZ0IwRWdhaUVSQTBBZ0VTQURLUUFRTndBQUlCRWdBeWtBR0RjQUNDQVJJQU1wQUNBM0FCQWdFU0FES1FBb053QVlJQU5CSUdvaEF5QVJRU0JxSWhFZ0Fra05BQXNMSUFJZ0Jtc2hBeUFFSUNNMkF0d0JJQUlnRW1zZ0Jra0VRQ0FHSUFJZ0dHdExEUWNnR2lBYUlBTWdFbXNpQTJvaUVTQU5hazhFUUNBQ0lCRWdEUkFLR2d3Q0N5QURJQTFxSVEwZ0FpQVJRUUFnQTJzUUNpQURheUVDSUJJaEF3c2dCa0VRVHdSQUlBSWdBeWtBQURjQUFDQUNJQU1wQUFnM0FBZ2dEVUVSU0EwQklBSWdEV29oQmlBQ1FSQnFJUUlEUUNBQ0lBTXBBQkEzQUFBZ0FpQURLUUFZTndBSUlBSWdBeWtBSURjQUVDQUNJQU1wQUNnM0FCZ2dBMEVnYWlFRElBSkJJR29pQWlBR1NRMEFDd3dCQ3dKQUlBWkJCMDBFUUNBQ0lBTXRBQUE2QUFBZ0FpQURMUUFCT2dBQklBSWdBeTBBQWpvQUFpQUNJQU10QUFNNkFBTWdBaUFESUFaQkFuUWlCa0hBSG1vb0FnQnFJZ01vQUFBMkFBUWdBeUFHUWVBZWFpZ0NBR3NoQXd3QkN5QUNJQU1wQUFBM0FBQUxJQTFCQ1VrTkFDQUNJQTFxSVJFZ0FrRUlhaUlHSUFOQkNHb2lBMnRCRDB3RVFBTkFJQVlnQXlrQUFEY0FBQ0FEUVFocUlRTWdCa0VJYWlJR0lCRkpEUUFNQWdzQUN5QUdJQU1wQUFBM0FBQWdCaUFES1FBSU53QUlJQTFCR1VnTkFDQUNRUmhxSVFJRFFDQUNJQU1wQUJBM0FBQWdBaUFES1FBWU53QUlJQUlnQXlrQUlEY0FFQ0FDSUFNcEFDZzNBQmdnQTBFZ2FpRURJQUpCSUdvaUFpQVJTUTBBQ3dzZ0NrR0lmMHNFUUNBS0lRa01CZ1VnRXlBUU5nSUlJQk1nRERZQ0JDQVRJQXMyQWdBZ0NFRUJhaUVJSUFjZ0Ntb2hCeUFMSUJscUlBeHFJUmtNQWdzQUN3c2dDQ0FQU0EwRElBZ2dIMnNoQmdOQUFrQWdCaUFQVGdSQVFRQWhBd05BSUFOQkEwWU5BaUFGSUFOQkFuUWlBbXBCck5BQmFpQUNJQVJxS0FKa05nSUFJQU5CQVdvaEF3d0FDd0FMQWtBQ1FBSkFJQVFvQXR3QklnTWdCRUh3QUdvZ0JrRUhjVUVNYkdvaUNDZ0NBQ0lNYWlJUUlCZExEUUFnQnlBSUtBSUVJZ3NnREdvaUNtb2dJVXNOQUNBS1FTQnFJQllnQjJ0TkRRRUxJQVFnQ0NnQ0NEWUNLQ0FFSUFncEFnQTNBeUFnQnlBV0lBUkJJR29nQkVIY0FXb2dGeUFTSUJnZ0doQWZJUW9NQVFzZ0J5QU1haUVDSUFnb0FnZ2hDQ0FISUFNcEFBQTNBQUFnQnlBREtRQUlOd0FJQWtBZ0RFRVJTUTBBSUFjZ0F5a0FFRGNBRUNBSElBTXBBQmczQUJnZ0RFRVFhMEVSU0EwQUlBTkJFR29oQXlBSFFTQnFJUXdEUUNBTUlBTXBBQkEzQUFBZ0RDQURLUUFZTndBSUlBd2dBeWtBSURjQUVDQU1JQU1wQUNnM0FCZ2dBMEVnYWlFRElBeEJJR29pRENBQ1NRMEFDd3NnQWlBSWF5RURJQVFnRURZQzNBRWdBaUFTYXlBSVNRUkFJQWdnQWlBWWEwc05CeUFhSUJvZ0F5QVNheUlEYWlJTUlBdHFUd1JBSUFJZ0RDQUxFQW9hREFJTElBTWdDMm9oQ3lBQ0lBeEJBQ0FEYXhBS0lBTnJJUUlnRWlFREN5QUlRUkJQQkVBZ0FpQURLUUFBTndBQUlBSWdBeWtBQ0RjQUNDQUxRUkZJRFFFZ0FpQUxhaUVJSUFKQkVHb2hBZ05BSUFJZ0F5a0FFRGNBQUNBQ0lBTXBBQmczQUFnZ0FpQURLUUFnTndBUUlBSWdBeWtBS0RjQUdDQURRU0JxSVFNZ0FrRWdhaUlDSUFoSkRRQUxEQUVMQWtBZ0NFRUhUUVJBSUFJZ0F5MEFBRG9BQUNBQ0lBTXRBQUU2QUFFZ0FpQURMUUFDT2dBQ0lBSWdBeTBBQXpvQUF5QUNJQU1nQ0VFQ2RDSUlRY0FlYWlnQ0FHb2lBeWdBQURZQUJDQURJQWhCNEI1cUtBSUFheUVEREFFTElBSWdBeWtBQURjQUFBc2dDMEVKU1EwQUlBSWdDMm9oRENBQ1FRaHFJZ2dnQTBFSWFpSURhMEVQVEFSQUEwQWdDQ0FES1FBQU53QUFJQU5CQ0dvaEF5QUlRUWhxSWdnZ0RFa05BQXdDQ3dBTElBZ2dBeWtBQURjQUFDQUlJQU1wQUFnM0FBZ2dDMEVaU0EwQUlBSkJHR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBeEpEUUFMQ3lBS1FZaC9Td1JBSUFvaENRd0dCU0FHUVFGcUlRWWdCeUFLYWlFSERBSUxBQXNMSUFRb0F0d0JJUU1MUWJwL0lRa2dGeUFEYXlJQ0lCWWdCMnRMRFFJZ0J3Ui9JQWNnQXlBQ0VBSWdBbW9GUVFBTElBNXJJUWtNQWdzZ0JVRUFOZ0tjNndFTElBUWdCU2dDOE9vQklnTTJBdHdCSUFrZ0Rtb2hEQ0FESUFVb0FvRHJBV29oRUFKQUlBOUZCRUFnRGlFR0RBRUxJQVVvQXJqcEFTRU5JQVVvQXJUcEFTRVRJQVVvQXJEcEFTRVNJQVZCQVRZQ2hPb0JRUUFoQXdOQUlBTkJBMGNFUUNBRUlBTkJBblFpQW1vZ0FpQUZha0dzMEFGcUtBSUFOZ0tjQVNBRFFRRnFJUU1NQVFzTFFXd2hDU0FFUWZBQWFpSUNJQWNnQmhBTlFZaC9TdzBCSURFZ0FpQUZLQUlBRUI0Z01DQUNJQVVvQWdnUUhpQXZJQUlnQlNnQ0JCQWVJQXhCSUdzaEdDQU9JUVlEUUNBRUtBS0lBU0FFS0FLRUFVRURkR29wQWdBaVFLY2lDa0VRZGlJWlFmOEJjU0VMSUFRb0FwZ0JJQVFvQXBRQlFRTjBhaWtDQUNKQnB5SVdRUkIySWg5Qi93RnhJUm9nQkNnQ2tBRWdCQ2dDakFGQkEzUnFLUUlBSWtKQ0lJaW5JUWNnUVVJZ2lDQkFRaUNJcHlFREFrQWdRa0lRaUtjaUNFSC9BWEVpQWtFQ1R3UkFBa0FnQWtFWlNTQS9Rb0dBZ0JCVWNrVUVRQ0FFUVNBZ0JDZ0NkQ0lJYXlJUklBSWdBaUFSU3hzaUZ5QUlhallDZENBSElBUW9BbkFnQ0hSQkFDQVhhM1lnQWlBWGF5SVhkR29oQ0NBRVFmQUFhaEFQR2lBQ0lCRk5EUUVnQkNBRUtBSjBJZ0lnRjJvMkFuUWdCQ2dDY0NBQ2RFRUFJQmRyZGlBSWFpRUlEQUVMSUFRZ0FpQUVLQUowSWhGcU5nSjBJQVFvQW5BZ0VYUkJBQ0FJYTNZZ0Iyb2hDQ0FFUWZBQWFoQVBHZ3NnQkNrQ25BRWhSQ0FFSUFnMkFwd0JJQVFnUkRjQ29BRU1BUXNDUUNBQ1JRUkFJQU1FUUNBRUtBS2NBU0VJREFNTElBUW9BcUFCSVFnTUFRc2dCQ0FFS0FKMElnSkJBV28yQW5RQ2Z5QUhJQU5GYWlBRUtBSndJQUowUVI5MmFpSUNRUU5HQkVBZ0JDZ0NuQUZCQVdzTUFRc2dBa0VDZENBRWFpZ0NuQUVMSWdkRklBZHFJUWdnQWtFQlJ3UkFJQVFnQkNnQ29BRTJBcVFCQ3dzZ0JDQUVLQUtjQVRZQ29BRWdCQ0FJTmdLY0FRdW5JUUlnUVVLQWdQd0hnMUJGQkVBZ0JDQUVLQUowSWdjZ0dtbzJBblFnQkNnQ2NDQUhkRUVBSUI5cmRpQUNhaUVDQ3lBTElCcHFRUlJQQkVBZ0JFSHdBR29RRHhvTElFQkNnSUQ4QjROUVJRUkFJQVFnQkNnQ2RDSUhJQXRxTmdKMElBUW9BbkFnQjNSQkFDQVphM1lnQTJvaEF3c2dCRUh3QUdvUUR4b2dCQ0FFS0FKd0lnZEJBQ0FLUVJoMklnc2dCQ2dDZEdvaUdtdDJJQXRCQW5SQm9CMXFLQUlBY1NBS1FmLy9BM0ZxTmdLRUFTQUVJQm9nRmtFWWRpSUthaUlMTmdKMElBUWdDa0VDZEVHZ0hXb29BZ0FnQjBFQUlBdHJkbkVnRmtILy93TnhhallDbEFFZ0JFSHdBR29RRHhvZ0JDQkNweUlIUVJoMklnb2dCQ2dDZEdvaUN6WUNkQ0FFSUFwQkFuUkJvQjFxS0FJQUlBUW9BbkJCQUNBTGEzWnhJQWRCLy84RGNXbzJBb3dCSUFRZ0F6WUNPQ0FFSUFJMkFqd2dCQ0FJTmdKQUFrQUNRQUpBSUFRb0F0d0JJZ3NnQTJvaUZpQVFTdzBBSUFZZ0FpQURhaUlLYWlBWVN3MEFJQXBCSUdvZ0RDQUdhMDBOQVFzZ0JDQUVRVUJyS0FJQU5nSUlJQVFnQkNrRE9EY0RBQ0FHSUF3Z0JDQUVRZHdCYWlBUUlCSWdFeUFORUI4aENnd0JDeUFESUFacUlRY2dCaUFMS1FBQU53QUFJQVlnQ3lrQUNEY0FDQUpBSUFOQkVVa05BQ0FHSUFzcEFCQTNBQkFnQmlBTEtRQVlOd0FZSUFOQkVHdEJFVWdOQUNBTFFSQnFJUU1nQmtFZ2FpRUxBMEFnQ3lBREtRQVFOd0FBSUFzZ0F5a0FHRGNBQ0NBTElBTXBBQ0EzQUJBZ0N5QURLUUFvTndBWUlBTkJJR29oQXlBTFFTQnFJZ3NnQjBrTkFBc0xJQWNnQ0dzaEF5QUVJQlkyQXR3QklBY2dFbXNnQ0VrRVFDQUlJQWNnRTJ0TERRUWdEU0FOSUFNZ0Vtc2lBMm9pQ3lBQ2FrOEVRQ0FISUFzZ0FoQUtHZ3dDQ3lBSElBdEJBQ0FEYXhBS0lBUWdBaUFEYWlJQ05nSThJQU5ySVFjZ0VpRURDeUFJUVJCUEJFQWdCeUFES1FBQU53QUFJQWNnQXlrQUNEY0FDQ0FDUVJGSURRRWdBaUFIYWlFSUlBZEJFR29oQWdOQUlBSWdBeWtBRURjQUFDQUNJQU1wQUJnM0FBZ2dBaUFES1FBZ053QVFJQUlnQXlrQUtEY0FHQ0FEUVNCcUlRTWdBa0VnYWlJQ0lBaEpEUUFMREFFTEFrQWdDRUVIVFFSQUlBY2dBeTBBQURvQUFDQUhJQU10QUFFNkFBRWdCeUFETFFBQ09nQUNJQWNnQXkwQUF6b0FBeUFISUFNZ0NFRUNkQ0lJUWNBZWFpZ0NBR29pQXlnQUFEWUFCQ0FESUFoQjRCNXFLQUlBYXlFRERBRUxJQWNnQXlrQUFEY0FBQXNnQWtFSlNRMEFJQUlnQjJvaEN5QUhRUWhxSWdnZ0EwRUlhaUlEYTBFUFRBUkFBMEFnQ0NBREtRQUFOd0FBSUFOQkNHb2hBeUFJUVFocUlnZ2dDMGtOQUF3Q0N3QUxJQWdnQXlrQUFEY0FBQ0FJSUFNcEFBZzNBQWdnQWtFWlNBMEFJQWRCR0dvaEFnTkFJQUlnQXlrQUVEY0FBQ0FDSUFNcEFCZzNBQWdnQWlBREtRQWdOd0FRSUFJZ0F5a0FLRGNBR0NBRFFTQnFJUU1nQWtFZ2FpSUNJQXRKRFFBTEN5QUtRWWgvU3dSQUlBb2hDUXdEQ3lBR0lBcHFJUVlnQkVId0FHb1FEeUVESUE5QkFXc2lEdzBBQzBFQUlRSWdBMEVDU1EwQkEwQWdBa0VEUndSQUlBVWdBa0VDZENJRGFrR3MwQUZxSUFNZ0JHb29BcHdCTmdJQUlBSkJBV29oQWd3QkN3c2dCQ2dDM0FFaEF3dEJ1bjhoQ1NBUUlBTnJJZ0lnRENBR2Ewc05BQ0FHQkg4Z0JpQURJQUlRQWlBQ2FnVkJBQXNnRG1zaENRc2dDVUdJZjBzTkJnc0NRQ0FGS0FMczZnRkZEUUFnQlNBRktRT0k2Z0VnQ2ExOE53T0k2Z0VDUUNBRktBTFE2Z0VpQWlBSmFpSUlRUjlOQkVBZ0RrVU5BU0FDSUNKcUlBNGdDUkFDR2lBRktBTFE2Z0VnQ1dvaENBd0JDeUFPSVFNZ0FnUkFJQUlnSW1vZ0EwRWdJQUpyRUFJYUlBVW9BdERxQVNFQ0lBVkJBRFlDME9vQklBVWdCU2tEa09vQklBVXBBTERxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRGtPb0JJQVVnQlNrRG1Pb0JJQVVwQUxqcUFVTFAxdE8rMHNlcjJVSitmRUlmaVVLSGxhK3ZtTGJlbTU1L2ZqY0RtT29CSUFVZ0JTa0RvT29CSUFVcEFNRHFBVUxQMXRPKzBzZXIyVUorZkVJZmlVS0hsYSt2bUxiZW01NS9mamNEb09vQklBVWdCU2tEcU9vQklBVXBBTWpxQVVMUDF0Tyswc2VyMlVKK2ZFSWZpVUtIbGErdm1MYmVtNTUvZmpjRHFPb0JJQU1nQW10QklHb2hBd3NnQ1NBT2FpSUNJQU5CSUdwUEJFQWdBa0VnYXlFR0lBVXBBNmpxQVNFL0lBVXBBNkRxQVNGQUlBVXBBNWpxQVNGQklBVXBBNURxQVNGQ0EwQWdBeWtBR0VMUDF0Tyswc2VyMlVKK0lEOThRaCtKUW9lVnI2K1l0dDZibm45K0lUOGdBeWtBRUVMUDF0Tyswc2VyMlVKK0lFQjhRaCtKUW9lVnI2K1l0dDZibm45K0lVQWdBeWtBQ0VMUDF0Tyswc2VyMlVKK0lFRjhRaCtKUW9lVnI2K1l0dDZibm45K0lVRWdBeWtBQUVMUDF0Tyswc2VyMlVKK0lFSjhRaCtKUW9lVnI2K1l0dDZibm45K0lVSWdBMEVnYWlJRElBWk5EUUFMSUFVZ1B6Y0RxT29CSUFVZ1FEY0RvT29CSUFVZ1FUY0RtT29CSUFVZ1FqY0RrT29CQ3lBQ0lBTk5EUUVnSWlBRElBSWdBMnNpQ0JBQ0dnc2dCU0FJTmdMUTZnRUxJRFVnRldzaEF5QVZJQnRxSVFJZ0NTQU9haUVPSUFRb0FqQkZEUUFMSUNrcEF3QWlQMEovVVNBL0lBNGdIV3VzVVhKRkJFQkJiQ0VKREFZTElBVW9BdURwQVFSQVFXb2hDU0FEUVFSSkRRWWdCU2dDNk9vQlJRUkFJQ0lnQlNnQzBPb0JhaUVLQW40Z0JTa0RpT29CSWo5Q0lGb0VRQ0FGS1FPWTZnRWlRRUlIaVNBRktRT1E2Z0VpUVVJQmlYd2dCU2tEb09vQklrSkNESWw4SUFVcEE2anFBU0pEUWhLSmZDQkJRcy9XMDc3U3g2dlpRbjVDSDRsQ2g1V3ZyNWkyM3B1ZWYzNkZRb2VWcjYrWXR0NmJubjkrUXAyanRlcURzWTJLK2dCOUlFQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZvVkNoNVd2cjVpMjNwdWVmMzVDbmFPMTZvT3hqWXI2QUgwZ1FrTFAxdE8rMHNlcjJVSitRaCtKUW9lVnI2K1l0dDZibm45K2hVS0hsYSt2bUxiZW01NS9ma0tkbzdYcWc3R05pdm9BZlNCRFFzL1cwNzdTeDZ2WlFuNUNINGxDaDVXdnI1aTIzcHVlZjM2RlFvZVZyNitZdHQ2Ym5uOStRcDJqdGVxRHNZMksrZ0I5REFFTElBVXBBNkRxQVVMRno5bXk4ZVc2NmlkOEN5QS9mQ0UvSUNJaEJnTkFJQW9nQmtFSWFpSUhUd1JBSUFZcEFBQkN6OWJUdnRMSHE5bENma0lmaVVLSGxhK3ZtTGJlbTU1L2ZpQS9oVUliaVVLSGxhK3ZtTGJlbTU1L2ZrS2RvN1hxZzdHTml2b0FmU0UvSUFjaEJnd0JDd3NDUUNBS0lBWkJCR29pQ0VrRVFDQUdJUWdNQVFzZ0JqVUFBRUtIbGErdm1MYmVtNTUvZmlBL2hVSVhpVUxQMXRPKzBzZXIyVUorUXZuejNmR1o5cG1yRm53aFB3c0RRQ0FJSUFwSkJFQWdDREVBQUVMRno5bXk4ZVc2NmlkK0lEK0ZRZ3VKUW9lVnI2K1l0dDZibm45K0lUOGdDRUVCYWlFSURBRUxDeUFDS0FBQUlEOUNJWWdnUDRWQ3o5YlR2dExIcTlsQ2ZpSS9RaDJJSUQrRlF2bnozZkdaOXBtckZuNGlQMElnaUNBL2hhZEhEUWNMSUFOQkJHc2hBeUFDUVFScUlRSUxJQTRnSFdzaUNVR0pmMDhOQkNBQklBbHJJUUVnQ1NBZGFpRWRRUUVoUGd3QkN3dEJ1SDhoQnlBRERRUWdIU0FBYXlFSERBUUxRV3doQ1F3QkMwRzRmeUVKQzBHNGZ5RUhJQWxCZGtZZ1BuRU5BUXNnQ1NFSEN5Z0NBQTBBSUFWQi9Pb0JhaWdDQUNFQklBVkIrT29CYWlnQ0FDRUFJQVVRR0NBRktBS3c2d0VnQUNBQkVCTWdCVUVBTmdLdzZ3RWdCU2dDcE9zQklnSUVRQUpBQWtBQ1FBSkFJQUlvQWdBaUF3UkFJQUJGRFFJZ0FTQURJQUFSQWdBTUFRc2dBRVVOQWdzZ0FTQUNJQUFSQWdBTUFnc2dBeEFHQ3lBQ0VBWUxJQVZCQURZQ3BPc0JDeUFBQkVBZ0FTQUZJQUFSQWdBTUFRc2dCUkFHQ3lBRVFlQUJhaVFBSUFjTEM2Z1ZDUUJCaUFnTERRRUFBQUFCQUFBQUFnQUFBQUlBUWFBSUM3TUdBUUFBQUFFQUFBQUNBQUFBQWdBQUFDWUFBQUNDQUFBQUlRVUFBRW9BQUFCbkNBQUFKZ0FBQU1BQkFBQ0FBQUFBU1FVQUFFb0FBQUMrQ0FBQUtRQUFBQ3dDQUFDQUFBQUFTUVVBQUVvQUFBQytDQUFBTHdBQUFNb0NBQUNBQUFBQWlnVUFBRW9BQUFDRUNRQUFOUUFBQUhNREFBQ0FBQUFBblFVQUFFb0FBQUNnQ1FBQVBRQUFBSUVEQUFDQUFBQUE2d1VBQUVzQUFBQStDZ0FBUkFBQUFKNERBQUNBQUFBQVRRWUFBRXNBQUFDcUNnQUFTd0FBQUxNREFBQ0FBQUFBd1FZQUFFMEFBQUFmRFFBQVRRQUFBRk1FQUFDQUFBQUFJd2dBQUZFQUFBQ21Ed0FBVkFBQUFKa0VBQUNBQUFBQVN3a0FBRmNBQUFDeEVnQUFXQUFBQU5vRUFBQ0FBQUFBYndrQUFGMEFBQUFqRkFBQVZBQUFBRVVGQUFDQUFBQUFWQW9BQUdvQUFBQ01GQUFBYWdBQUFLOEZBQUNBQUFBQWRna0FBSHdBQUFCT0VBQUFmQUFBQU5JQ0FBQ0FBQUFBWXdjQUFKRUFBQUNRQndBQWtnQUFBQUFBQUFBQkFBQUFBUUFBQUFVQUFBQU5BQUFBSFFBQUFEMEFBQUI5QUFBQS9RQUFBUDBCQUFEOUF3QUEvUWNBQVAwUEFBRDlId0FBL1Q4QUFQMS9BQUQ5L3dBQS9mOEJBUDMvQXdEOS93Y0EvZjhQQVAzL0h3RDkvejhBL2Y5L0FQMy8vd0Q5Ly84Qi9mLy9BLzMvL3dmOS8vOFAvZi8vSC8zLy96LzkvLzkvQUFBQUFBRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBREFBQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFTQUFBQUV3QUFBQlFBQUFBVkFBQUFGZ0FBQUJjQUFBQVlBQUFBR1FBQUFCb0FBQUFiQUFBQUhBQUFBQjBBQUFBZUFBQUFId0FBQUNBQUFBQWhBQUFBSWdBQUFDTUFBQUFsQUFBQUp3QUFBQ2tBQUFBckFBQUFMd0FBQURNQUFBQTdBQUFBUXdBQUFGTUFBQUJqQUFBQWd3QUFBQU1CQUFBREFnQUFBd1FBQUFNSUFBQURFQUFBQXlBQUFBTkFBQUFEZ0FBQUF3QUJBRUhnRHd0UkFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJBQUFBQVVBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFFSEVFQXVMQVFFQUFBQUNBQUFBQXdBQUFBUUFBQUFGQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBU0FBQUFGQUFBQUJZQUFBQVlBQUFBSEFBQUFDQUFBQUFvQUFBQU1BQUFBRUFBQUFDQUFBQUFBQUVBQUFBQ0FBQUFCQUFBQUFnQUFBQVFBQUFBSUFBQUFFQUFBQUNBQUFBQUFBRUFRWkFTQytZRUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUNBQUFBQXdBQUFBTUFBQUFFQUFBQUJnQUFBQWNBQUFBSUFBQUFDUUFBQUFvQUFBQUxBQUFBREFBQUFBMEFBQUFPQUFBQUR3QUFBQkFBQUFBQkFBQUFCQUFBQUFnQUFBQUFBQUFBQVFBQkFRWUFBQUFBQUFBRUFBQUFBQkFBQUFRQUFBQUFJQUFBQlFFQUFBQUFBQUFGQXdBQUFBQUFBQVVFQUFBQUFBQUFCUVlBQUFBQUFBQUZCd0FBQUFBQUFBVUpBQUFBQUFBQUJRb0FBQUFBQUFBRkRBQUFBQUFBQUFZT0FBQUFBQUFCQlJBQUFBQUFBQUVGRkFBQUFBQUFBUVVXQUFBQUFBQUNCUndBQUFBQUFBTUZJQUFBQUFBQUJBVXdBQUFBSUFBR0JVQUFBQUFBQUFjRmdBQUFBQUFBQ0FZQUFRQUFBQUFLQmdBRUFBQUFBQXdHQUJBQUFDQUFBQVFBQUFBQUFBQUFCQUVBQUFBQUFBQUZBZ0FBQUNBQUFBVUVBQUFBQUFBQUJRVUFBQUFnQUFBRkJ3QUFBQUFBQUFVSUFBQUFJQUFBQlFvQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUlBQUJCUkFBQUFBQUFBRUZFZ0FBQUNBQUFRVVdBQUFBQUFBQ0JSZ0FBQUFnQUFNRklBQUFBQUFBQXdVb0FBQUFBQUFHQkVBQUFBQVFBQVlFUUFBQUFDQUFCd1dBQUFBQUFBQUpCZ0FDQUFBQUFBc0dBQWdBQURBQUFBUUFBQUFBRUFBQUJBRUFBQUFnQUFBRkFnQUFBQ0FBQUFVREFBQUFJQUFBQlFVQUFBQWdBQUFGQmdBQUFDQUFBQVVJQUFBQUlBQUFCUWtBQUFBZ0FBQUZDd0FBQUNBQUFBVU1BQUFBQUFBQUJnOEFBQUFnQUFFRkVnQUFBQ0FBQVFVVUFBQUFJQUFDQlJnQUFBQWdBQUlGSEFBQUFDQUFBd1VvQUFBQUlBQUVCVEFBQUFBQUFCQUdBQUFCQUFBQUR3WUFnQUFBQUFBT0JnQkFBQUFBQUEwR0FDQUFRWUFYQzRjQ0FRQUJBUVVBQUFBQUFBQUZBQUFBQUFBQUJnUTlBQUFBQUFBSkJmMEJBQUFBQUE4Ri9YOEFBQUFBRlFYOS94OEFBQUFEQlFVQUFBQUFBQWNFZlFBQUFBQUFEQVg5RHdBQUFBQVNCZjMvQXdBQUFCY0YvZjkvQUFBQUJRVWRBQUFBQUFBSUJQMEFBQUFBQUE0Ri9UOEFBQUFBRkFYOS93OEFBQUFDQlFFQUFBQVFBQWNFZlFBQUFBQUFDd1g5QndBQUFBQVJCZjMvQVFBQUFCWUYvZjgvQUFBQUJBVU5BQUFBRUFBSUJQMEFBQUFBQUEwRi9SOEFBQUFBRXdYOS93Y0FBQUFCQlFFQUFBQVFBQVlFUFFBQUFBQUFDZ1g5QXdBQUFBQVFCZjMvQUFBQUFCd0YvZi8vRHdBQUd3WDkvLzhIQUFBYUJmMy8vd01BQUJrRi9mLy9BUUFBR0FYOS8vOEFRWkFaQzRZRUFRQUJBUVlBQUFBQUFBQUdBd0FBQUFBQUFBUUVBQUFBSUFBQUJRVUFBQUFBQUFBRkJnQUFBQUFBQUFVSUFBQUFBQUFBQlFrQUFBQUFBQUFGQ3dBQUFBQUFBQVlOQUFBQUFBQUFCaEFBQUFBQUFBQUdFd0FBQUFBQUFBWVdBQUFBQUFBQUJoa0FBQUFBQUFBR0hBQUFBQUFBQUFZZkFBQUFBQUFBQmlJQUFBQUFBQUVHSlFBQUFBQUFBUVlwQUFBQUFBQUNCaThBQUFBQUFBTUdPd0FBQUFBQUJBWlRBQUFBQUFBSEJvTUFBQUFBQUFrR0F3SUFBQkFBQUFRRUFBQUFBQUFBQkFVQUFBQWdBQUFGQmdBQUFBQUFBQVVIQUFBQUlBQUFCUWtBQUFBQUFBQUZDZ0FBQUFBQUFBWU1BQUFBQUFBQUJnOEFBQUFBQUFBR0VnQUFBQUFBQUFZVkFBQUFBQUFBQmhnQUFBQUFBQUFHR3dBQUFBQUFBQVllQUFBQUFBQUFCaUVBQUFBQUFBRUdJd0FBQUFBQUFRWW5BQUFBQUFBQ0Jpc0FBQUFBQUFNR013QUFBQUFBQkFaREFBQUFBQUFGQm1NQUFBQUFBQWdHQXdFQUFDQUFBQVFFQUFBQU1BQUFCQVFBQUFBUUFBQUVCUUFBQUNBQUFBVUhBQUFBSUFBQUJRZ0FBQUFnQUFBRkNnQUFBQ0FBQUFVTEFBQUFBQUFBQmc0QUFBQUFBQUFHRVFBQUFBQUFBQVlVQUFBQUFBQUFCaGNBQUFBQUFBQUdHZ0FBQUFBQUFBWWRBQUFBQUFBQUJpQUFBQUFBQUJBR0F3QUJBQUFBRHdZRGdBQUFBQUFPQmdOQUFBQUFBQTBHQXlBQUFBQUFEQVlERUFBQUFBQUxCZ01JQUFBQUFBb0dBd1FBUWFRZEM5a0JBUUFBQUFNQUFBQUhBQUFBRHdBQUFCOEFBQUEvQUFBQWZ3QUFBUDhBQUFEL0FRQUEvd01BQVA4SEFBRC9Ed0FBL3g4QUFQOC9BQUQvZndBQS8vOEFBUC8vQVFELy93TUEvLzhIQVAvL0R3RC8veDhBLy84L0FQLy9md0QvLy84QS8vLy9BZi8vL3dQLy8vOEgvLy8vRC8vLy94Ly8vLzgvLy8vL2Z3QUFBQUFCQUFBQUFnQUFBQVFBQUFBQUFBQUFBZ0FBQUFRQUFBQUlBQUFBQUFBQUFBRUFBQUFDQUFBQUFRQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0JCZ0I4TEE0QVJBUT09Ijt2YXIgeWU9bmV3IFBBLG1lPSExO2FzeW5jIGZ1bmN0aW9uIENyKEEsdCxlKXtsZXQgST1udWxsO3R5cGVvZiBBIT0ic3RyaW5nIj9JPUEuaHJlZjpBLnN0YXJ0c1dpdGgoImh0dHAiKT9JPUE6ST1gJHt0fS8ke0F9YCxJLmVuZHNXaXRoKCIuanMiKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC0zKSksSS5lbmRzV2l0aCgiLndhc20iKSYmKEk9SS5zdWJzdHJpbmcoMCxJLmxlbmd0aC01KSksSS5lbmRzV2l0aCgiLndhc20uenN0IikmJihJPUkuc3Vic3RyaW5nKDAsSS5sZW5ndGgtOSkpO2xldCByPWAke0l9Lndhc21gLGc9YXdhaXQgeEEuZ2V0KGAke3J9LnpzdGAse3Jlc3BvbnNlVHlwZToiYXJyYXlidWZmZXIiLHBhcmFtczplfSk7bWV8fChhd2FpdCB5ZS5pbml0KCksbWU9ITApO2xldCBuPXllLmRlY29kZShuZXcgVWludDhBcnJheShnLmRhdGEpKS5idWZmZXI7cmV0dXJuKGF3YWl0IGltcG9ydChgJHtJfS5qc2ApKS5kZWZhdWx0KHt3YXNtQmluYXJ5Om59KX12YXIgd2U9Q3I7dmFyIGpBPW5ldyBNYXA7YXN5bmMgZnVuY3Rpb24gQnIoQSx0LGUpe2xldCBJPUEscj1BLGc9bnVsbDtyZXR1cm4gdHlwZW9mIEEhPSJzdHJpbmciJiYoST1uZXcgVVJMKEEuaHJlZikscj1JLmhyZWYpLGpBLmhhcyhyKT9nPWF3YWl0IGpBLmdldChyKTooakEuc2V0KHIsd2UoSSx0LGUpKSxnPWF3YWl0IGpBLmdldChyKSksZ312YXIgcGU9QnI7dmFyIGFyPXtUZXh0RmlsZToiVGV4dEZpbGUiLEJpbmFyeUZpbGU6IkJpbmFyeUZpbGUiLFRleHRTdHJlYW06IlRleHRTdHJlYW0iLEJpbmFyeVN0cmVhbToiQmluYXJ5U3RyZWFtIixJbWFnZToiSW1hZ2UiLFBvaW50U2V0OiJQb2ludFNldCIsTWVzaDoiTWVzaCIsUG9seURhdGE6IlBvbHlEYXRhIixUcmFuc2Zvcm1MaXN0OiJUcmFuc2Zvcm1MaXN0IixKc29uQ29tcGF0aWJsZToiSnNvbkNvbXBhdGlibGUifSxkPWFyO3ZhciBRcj17SW50ODoiaW50OCIsVUludDg6InVpbnQ4IixJbnQxNjoiaW50MTYiLFVJbnQxNjoidWludDE2IixJbnQzMjoiaW50MzIiLFVJbnQzMjoidWludDMyIixJbnQ2NDoiaW50NjQiLFVJbnQ2NDoidWludDY0IixTaXplVmFsdWVUeXBlOiJ1aW50NjQiLElkZW50aWZpZXJUeXBlOiJ1aW50NjQiLEluZGV4VmFsdWVUeXBlOiJpbnQ2NCIsT2Zmc2V0VmFsdWVUeXBlOiJpbnQ2NCJ9LFU9UXI7dmFyIEVyPXtGbG9hdDMyOiJmbG9hdDMyIixGbG9hdDY0OiJmbG9hdDY0IixTcGFjZVByZWNpc2lvblR5cGU6ImZsb2F0NjQifSxWPUVyO2Z1bmN0aW9uIGNyKEEsdCl7bGV0IGU9bnVsbDtzd2l0Y2goQSl7Y2FzZSBVLlVJbnQ4OntlPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ4OntlPW5ldyBJbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBVLlVJbnQxNjp7ZT1uZXcgVWludDE2QXJyYXkodCk7YnJlYWt9Y2FzZSBVLkludDE2OntlPW5ldyBJbnQxNkFycmF5KHQpO2JyZWFrfWNhc2UgVS5VSW50MzI6e2U9bmV3IFVpbnQzMkFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQzMjp7ZT1uZXcgSW50MzJBcnJheSh0KTticmVha31jYXNlIFUuVUludDY0Ont0eXBlb2YgZ2xvYmFsVGhpcy5CaWdVaW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdVaW50NjRBcnJheSh0KTplPW5ldyBVaW50OEFycmF5KHQpO2JyZWFrfWNhc2UgVS5JbnQ2NDp7dHlwZW9mIGdsb2JhbFRoaXMuQmlnSW50NjRBcnJheT09ImZ1bmN0aW9uIj9lPW5ldyBCaWdJbnQ2NEFycmF5KHQpOmU9bmV3IFVpbnQ4QXJyYXkodCk7YnJlYWt9Y2FzZSBWLkZsb2F0MzI6e2U9bmV3IEZsb2F0MzJBcnJheSh0KTticmVha31jYXNlIFYuRmxvYXQ2NDp7ZT1uZXcgRmxvYXQ2NEFycmF5KHQpO2JyZWFrfWNhc2UibnVsbCI6e2U9bnVsbDticmVha31jYXNlIG51bGw6e2U9bnVsbDticmVha31kZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVHlwZSBpcyBub3Qgc3VwcG9ydGVkIGFzIGEgVHlwZWRBcnJheSIpfXJldHVybiBlfXZhciBxPWNyO3ZhciBSZT10eXBlb2YgZ2xvYmFsVGhpcy5TaGFyZWRBcnJheUJ1ZmZlcj09ImZ1bmN0aW9uIixTZT1uZXcgVGV4dEVuY29kZXIsRmU9bmV3IFRleHREZWNvZGVyKCJ1dGYtOCIpO2Z1bmN0aW9uIGZyKEEsdCl7bGV0IGU9e2ZsYWdzOiJyIixlbmNvZGluZzoiYmluYXJ5In0sST1BLmZzX29wZW4odCxlLmZsYWdzKSxnPUEuZnNfc3RhdCh0KS5zaXplLG89bnVsbDtSZT9vPW5ldyBTaGFyZWRBcnJheUJ1ZmZlcihnKTpvPW5ldyBBcnJheUJ1ZmZlcihnKTtsZXQgbj1uZXcgVWludDhBcnJheShvKTtyZXR1cm4gQS5mc19yZWFkKEksbiwwLGcsMCksQS5mc19jbG9zZShJKSxufWZ1bmN0aW9uIE5lKEEsdCxlKXtsZXQgST1udWxsO1JlP0k9bmV3IFNoYXJlZEFycmF5QnVmZmVyKGUpOkk9bmV3IEFycmF5QnVmZmVyKGUpO2xldCByPW5ldyBVaW50OEFycmF5KEkpLGc9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLHQsZSk7cmV0dXJuIHIuc2V0KGcpLHJ9ZnVuY3Rpb24gdyhBLHQsZSxJKXtsZXQgcj0wO3JldHVybiB0IT09bnVsbCYmKHI9QS5jY2FsbCgiaXRrX3dhc21faW5wdXRfYXJyYXlfYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxJLHQuYnVmZmVyLmJ5dGVMZW5ndGhdKSxBLkhFQVBVOC5zZXQobmV3IFVpbnQ4QXJyYXkodC5idWZmZXIpLHIpKSxyfWZ1bmN0aW9uIHgoQSx0LGUpe2xldCBJPUpTT04uc3RyaW5naWZ5KHQpLHI9QS5sZW5ndGhCeXRlc1VURjgoSSkrMSxnPUEuY2NhbGwoIml0a193YXNtX2lucHV0X2pzb25fYWxsb2MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsZSxyXSk7QS5zdHJpbmdUb1VURjgoSSxnLHIpfWZ1bmN0aW9uIFMoQSx0LGUsSSl7bGV0IHI9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAsdCxlXSksZz1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCx0LGVdKSxvPU5lKEEscixnKTtyZXR1cm4gcShJLG8uYnVmZmVyKX1mdW5jdGlvbiB1QShBLHQpe2xldCBlPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9qc29uX2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIl0sWzAsdF0pLEk9QS5VVEY4VG9TdHJpbmcoZSk7cmV0dXJuIEpTT04ucGFyc2UoSSl9ZnVuY3Rpb24gbHIoQSx0LGUsSSl7SSE9bnVsbCYmSS5sZW5ndGg+MCYmSS5mb3JFYWNoKGZ1bmN0aW9uKEIscyl7c3dpdGNoKEIudHlwZSl7Y2FzZSBkLlRleHRTdHJlYW06e2xldCBDPVNlLmVuY29kZShCLmRhdGEuZGF0YSksbD13KEEsQyxzLDApLGE9e3NpemU6Qy5idWZmZXIuYnl0ZUxlbmd0aCxkYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gfTt4KEEsYSxzKTticmVha31jYXNlIGQuSnNvbkNvbXBhdGlibGU6e2xldCBDPVNlLmVuY29kZShKU09OLnN0cmluZ2lmeShCLmRhdGEpKSxsPXcoQSxDLHMsMCksYT17c2l6ZTpDLmJ1ZmZlci5ieXRlTGVuZ3RoLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWB9O3goQSxhLHMpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBDPUIuZGF0YS5kYXRhLGw9dyhBLEMscywwKSxhPXtzaXplOkMuYnVmZmVyLmJ5dGVMZW5ndGgsZGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YH07eChBLGEscyk7YnJlYWt9Y2FzZSBkLlRleHRGaWxlOntBLmZzX3dyaXRlRmlsZShCLmRhdGEucGF0aCxCLmRhdGEuZGF0YSk7YnJlYWt9Y2FzZSBkLkJpbmFyeUZpbGU6e0EuZnNfd3JpdGVGaWxlKEIuZGF0YS5wYXRoLEIuZGF0YS5kYXRhKTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBDPUIuZGF0YSxsPXcoQSxDLmRhdGEscywwKSxhPXcoQSxDLmRpcmVjdGlvbixzLDEpLFE9dHlwZW9mIEMubWV0YWRhdGE/LmVudHJpZXM8InUiP0FycmF5LmZyb20oQy5tZXRhZGF0YS5lbnRyaWVzKCkpOltdLGY9e2ltYWdlVHlwZTpDLmltYWdlVHlwZSxuYW1lOkMubmFtZSxvcmlnaW46Qy5vcmlnaW4sc3BhY2luZzpDLnNwYWNpbmcsZGlyZWN0aW9uOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLHNpemU6Qy5zaXplLGRhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtsfWAsbWV0YWRhdGE6UX07eChBLGYscyk7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMuY2VsbHMscywxKSxRPXcoQSxDLnBvaW50RGF0YSxzLDIpLGY9dyhBLEMuY2VsbERhdGEscywzKSxjPXttZXNoVHlwZTpDLm1lc2hUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLG51bWJlck9mQ2VsbHM6Qy5udW1iZXJPZkNlbGxzLGNlbGxzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7YX1gLGNlbGxCdWZmZXJTaXplOkMuY2VsbEJ1ZmZlclNpemUsbnVtYmVyT2ZQb2ludFBpeGVsczpDLm51bWJlck9mUG9pbnRQaXhlbHMscG9pbnREYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7UX1gLG51bWJlck9mQ2VsbFBpeGVsczpDLm51bWJlck9mQ2VsbFBpeGVscyxjZWxsRGF0YTpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2Z9YH07eChBLGMscyk7YnJlYWt9Y2FzZSBkLlBvaW50U2V0OntsZXQgQz1CLmRhdGEsbD13KEEsQy5wb2ludHMscywwKSxhPXcoQSxDLnBvaW50RGF0YSxzLDEpLFE9e3BvaW50U2V0VHlwZTpDLnBvaW50U2V0VHlwZSxuYW1lOkMubmFtZSxudW1iZXJPZlBvaW50czpDLm51bWJlck9mUG9pbnRzLHBvaW50czpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2x9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHthfWB9O3goQSxRLHMpO2JyZWFrfWNhc2UgZC5UcmFuc2Zvcm1MaXN0OntsZXQgQz1CLmRhdGEsbD1bXSxhPTA7Qy5mb3JFYWNoKFE9PntsZXQgZj0iIixjPSIiO1EudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmPWBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7dyhBLFEuZml4ZWRQYXJhbWV0ZXJzLHMsYSl9YCxhKz0xLGM9YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHt3KEEsUS5wYXJhbWV0ZXJzLHMsYSl9YCxhKz0xKTtsZXQgRD17dHJhbnNmb3JtVHlwZTpRLnRyYW5zZm9ybVR5cGUsbnVtYmVyT2ZGaXhlZFBhcmFtZXRlcnM6US5udW1iZXJPZkZpeGVkUGFyYW1ldGVycyxudW1iZXJPZlBhcmFtZXRlcnM6US5udW1iZXJPZlBhcmFtZXRlcnMsbmFtZTpRLm5hbWUsaW5wdXRTcGFjZU5hbWU6US5pbnB1dFNwYWNlTmFtZSxvdXRwdXRTcGFjZU5hbWU6US5vdXRwdXRTcGFjZU5hbWUscGFyYW1ldGVyczpjLGZpeGVkUGFyYW1ldGVyczpmfTtsLnB1c2goRCl9KSx4KEEsbCxzKTticmVha31jYXNlIGQuUG9seURhdGE6e2xldCBDPUIuZGF0YSxsPXcoQSxDLnBvaW50cyxzLDApLGE9dyhBLEMudmVydGljZXMscywxKSxRPXcoQSxDLmxpbmVzLHMsMiksZj13KEEsQy5wb2x5Z29ucyxzLDMpLGM9dyhBLEMudHJpYW5nbGVTdHJpcHMscyw0KSxEPXcoQSxDLnBvaW50RGF0YSxzLDUpLEY9dyhBLEMucG9pbnREYXRhLHMsNikseT17cG9seURhdGFUeXBlOkMucG9seURhdGFUeXBlLG5hbWU6Qy5uYW1lLG51bWJlck9mUG9pbnRzOkMubnVtYmVyT2ZQb2ludHMscG9pbnRzOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7bH1gLHZlcnRpY2VzQnVmZmVyU2l6ZTpDLnZlcnRpY2VzQnVmZmVyU2l6ZSx2ZXJ0aWNlczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2F9YCxsaW5lc0J1ZmZlclNpemU6Qy5saW5lc0J1ZmZlclNpemUsbGluZXM6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtRfWAscG9seWdvbnNCdWZmZXJTaXplOkMucG9seWdvbnNCdWZmZXJTaXplLHBvbHlnb25zOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Zn1gLHRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZTpDLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZSx0cmlhbmdsZVN0cmlwczpgZGF0YTphcHBsaWNhdGlvbi92bmQuaXRrLmFkZHJlc3MsMDoke2N9YCxudW1iZXJPZlBvaW50UGl4ZWxzOkMubnVtYmVyT2ZQb2ludFBpeGVscyxwb2ludERhdGE6YGRhdGE6YXBwbGljYXRpb24vdm5kLml0ay5hZGRyZXNzLDA6JHtEfWAsbnVtYmVyT2ZDZWxsUGl4ZWxzOkMubnVtYmVyT2ZDZWxsUGl4ZWxzLGNlbGxEYXRhOmBkYXRhOmFwcGxpY2F0aW9uL3ZuZC5pdGsuYWRkcmVzcywwOiR7Rn1gfTt4KEEseSxzKTticmVha31kZWZhdWx0OnRocm93IEVycm9yKCJVbnN1cHBvcnRlZCBpbnB1dCBJbnRlcmZhY2VUeXBlIil9fSksQS5yZXNldE1vZHVsZVN0ZG91dCgpLEEucmVzZXRNb2R1bGVTdGRlcnIoKTtsZXQgcj1BLnN0YWNrU2F2ZSgpLGc9MDt0cnl7Zz1BLmNhbGxNYWluKHQuc2xpY2UoKSl9Y2F0Y2goQil7dGhyb3cgdHlwZW9mIEI9PSJudW1iZXIiJiYoY29uc29sZS5sb2coIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIHBpcGVsaW5lOiIpLGNvbnNvbGUubG9nKCJzdGRvdXQ6IixBLmdldE1vZHVsZVN0ZG91dCgpKSxjb25zb2xlLmVycm9yKCJzdGRlcnI6IixBLmdldE1vZHVsZVN0ZGVycigpKSx0eXBlb2YgQS5nZXRFeGNlcHRpb25NZXNzYWdlPCJ1Ij9jb25zb2xlLmVycm9yKCJleGNlcHRpb246IixBLmdldEV4Y2VwdGlvbk1lc3NhZ2UoQikpOmNvbnNvbGUuZXJyb3IoIkJ1aWxkIG1vZHVsZSBpbiBEZWJ1ZyBtb2RlIGZvciBleGNlcHRpb24gbWVzc2FnZSBpbmZvcm1hdGlvbi4iKSksQn1maW5hbGx5e0Euc3RhY2tSZXN0b3JlKHIpfWxldCBvPUEuZ2V0TW9kdWxlU3Rkb3V0KCksbj1BLmdldE1vZHVsZVN0ZGVycigpLEU9W107cmV0dXJuIGUhPW51bGwmJmUubGVuZ3RoPjAmJmc9PT0wJiZlLmZvckVhY2goZnVuY3Rpb24oQixzKXtsZXQgQz1udWxsO3N3aXRjaChCLnR5cGUpe2Nhc2UgZC5UZXh0U3RyZWFtOntsZXQgYT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfYWRkcmVzcyIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxRPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9zaXplIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLGY9bmV3IFVpbnQ4QXJyYXkoQS5IRUFQVTguYnVmZmVyLGEsUSk7Qz17ZGF0YTpGZS5kZWNvZGUoZil9O2JyZWFrfWNhc2UgZC5Kc29uQ29tcGF0aWJsZTp7bGV0IGE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X2FkZHJlc3MiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSksUT1BLmNjYWxsKCJpdGtfd2FzbV9vdXRwdXRfYXJyYXlfc2l6ZSIsIm51bWJlciIsWyJudW1iZXIiLCJudW1iZXIiLCJudW1iZXIiXSxbMCxzLDBdKSxmPW5ldyBVaW50OEFycmF5KEEuSEVBUFU4LmJ1ZmZlcixhLFEpO0M9SlNPTi5wYXJzZShGZS5kZWNvZGUoZikpO2JyZWFrfWNhc2UgZC5CaW5hcnlTdHJlYW06e2xldCBhPUEuY2NhbGwoIml0a193YXNtX291dHB1dF9hcnJheV9hZGRyZXNzIiwibnVtYmVyIixbIm51bWJlciIsIm51bWJlciIsIm51bWJlciJdLFswLHMsMF0pLFE9QS5jY2FsbCgiaXRrX3dhc21fb3V0cHV0X2FycmF5X3NpemUiLCJudW1iZXIiLFsibnVtYmVyIiwibnVtYmVyIiwibnVtYmVyIl0sWzAscywwXSk7Qz17ZGF0YTpOZShBLGEsUSl9O2JyZWFrfWNhc2UgZC5UZXh0RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOkEuZnNfcmVhZEZpbGUoQi5kYXRhLnBhdGgse2VuY29kaW5nOiJ1dGY4In0pfTticmVha31jYXNlIGQuQmluYXJ5RmlsZTp7Qz17cGF0aDpCLmRhdGEucGF0aCxkYXRhOmZyKEEsQi5kYXRhLnBhdGgpfTticmVha31jYXNlIGQuSW1hZ2U6e2xldCBhPXVBKEEscyk7YS5kYXRhPVMoQSxzLDAsYS5pbWFnZVR5cGUuY29tcG9uZW50VHlwZSksYS5kaXJlY3Rpb249UyhBLHMsMSxWLkZsb2F0NjQpLGEubWV0YWRhdGE9bmV3IE1hcChhLm1ldGFkYXRhKSxDPWE7YnJlYWt9Y2FzZSBkLk1lc2g6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUpOmEucG9pbnRzPXEoYS5tZXNoVHlwZS5wb2ludENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mQ2VsbHM+MD9hLmNlbGxzPVMoQSxzLDEsYS5tZXNoVHlwZS5jZWxsQ29tcG9uZW50VHlwZSk6YS5jZWxscz1xKGEubWVzaFR5cGUuY2VsbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxhLm51bWJlck9mUG9pbnRQaXhlbHM+MD9hLnBvaW50RGF0YT1TKEEscywyLGEubWVzaFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5tZXNoVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscywzLGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSk6YS5jZWxsRGF0YT1xKGEubWVzaFR5cGUuY2VsbFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLEM9YTticmVha31jYXNlIGQuUG9pbnRTZXQ6e2xldCBhPXVBKEEscyk7YS5udW1iZXJPZlBvaW50cz4wP2EucG9pbnRzPVMoQSxzLDAsYS5wb2ludFNldFR5cGUucG9pbnRDb21wb25lbnRUeXBlKTphLnBvaW50cz1xKGEucG9pbnRTZXRUeXBlLnBvaW50Q29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZQb2ludFBpeGVscz4wP2EucG9pbnREYXRhPVMoQSxzLDEsYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUpOmEucG9pbnREYXRhPXEoYS5wb2ludFNldFR5cGUucG9pbnRQaXhlbENvbXBvbmVudFR5cGUsbmV3IEFycmF5QnVmZmVyKDApKSxDPWE7YnJlYWt9Y2FzZSBkLlRyYW5zZm9ybUxpc3Q6e2xldCBhPXVBKEEscyksUT0wO2EuZm9yRWFjaCgoZixjKT0+e2YudHJhbnNmb3JtVHlwZS50cmFuc2Zvcm1QYXJhbWV0ZXJpemF0aW9uIT09IkNvbXBvc2l0ZSImJihmLm51bWJlck9mRml4ZWRQYXJhbWV0ZXJzPjAmJihhW2NdLmZpeGVkUGFyYW1ldGVycz1TKEEscyxRLFYuRmxvYXQ2NCkpLFErPTEsZi5udW1iZXJPZlBhcmFtZXRlcnM+MCYmKGFbY10ucGFyYW1ldGVycz1TKEEscyxRLGYudHJhbnNmb3JtVHlwZS5wYXJhbWV0ZXJzVmFsdWVUeXBlKSksUSs9MSl9KSxDPWE7YnJlYWt9Y2FzZSBkLlBvbHlEYXRhOntsZXQgYT11QShBLHMpO2EubnVtYmVyT2ZQb2ludHM+MD9hLnBvaW50cz1TKEEscywwLFYuRmxvYXQzMik6YS5wb2ludHM9bmV3IEZsb2F0MzJBcnJheSxhLnZlcnRpY2VzQnVmZmVyU2l6ZT4wP2EudmVydGljZXM9UyhBLHMsMSxVLlVJbnQzMik6YS52ZXJ0aWNlcz1uZXcgVWludDMyQXJyYXksYS5saW5lc0J1ZmZlclNpemU+MD9hLmxpbmVzPVMoQSxzLDIsVS5VSW50MzIpOmEubGluZXM9bmV3IFVpbnQzMkFycmF5LGEucG9seWdvbnNCdWZmZXJTaXplPjA/YS5wb2x5Z29ucz1TKEEscywzLFUuVUludDMyKTphLnBvbHlnb25zPW5ldyBVaW50MzJBcnJheSxhLnRyaWFuZ2xlU3RyaXBzQnVmZmVyU2l6ZT4wP2EudHJpYW5nbGVTdHJpcHM9UyhBLHMsNCxVLlVJbnQzMik6YS50cmlhbmdsZVN0cmlwcz1uZXcgVWludDMyQXJyYXksYS5udW1iZXJPZlBvaW50UGl4ZWxzPjA/YS5wb2ludERhdGE9UyhBLHMsNSxhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSk6YS5wb2ludERhdGE9cShhLnBvbHlEYXRhVHlwZS5wb2ludFBpeGVsQ29tcG9uZW50VHlwZSxuZXcgQXJyYXlCdWZmZXIoMCkpLGEubnVtYmVyT2ZDZWxsUGl4ZWxzPjA/YS5jZWxsRGF0YT1TKEEscyw2LGEucG9seURhdGFUeXBlLmNlbGxQaXhlbENvbXBvbmVudFR5cGUpOmEuY2VsbERhdGE9cShhLnBvbHlEYXRhVHlwZS5jZWxsUGl4ZWxDb21wb25lbnRUeXBlLG5ldyBBcnJheUJ1ZmZlcigwKSksQz1hO2JyZWFrfWRlZmF1bHQ6dGhyb3cgRXJyb3IoIlVuc3VwcG9ydGVkIG91dHB1dCBJbnRlcmZhY2VUeXBlIil9bGV0IGw9e3R5cGU6Qi50eXBlLGRhdGE6Q307RS5wdXNoKGwpfSkse3JldHVyblZhbHVlOmcsc3Rkb3V0Om8sc3RkZXJyOm4sb3V0cHV0czpFfX12YXIgVWU9bHI7dmFyIHVyPXR5cGVvZiBnbG9iYWxUaGlzLlNoYXJlZEFycmF5QnVmZmVyPCJ1IjtmdW5jdGlvbiBkcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuW107bGV0IGU9W107Zm9yKGxldCBJPTA7STxBLmxlbmd0aDtJKyspe2xldCByPURyKEFbSV0sdCk7ciE9PW51bGwmJmUucHVzaChyKX1yZXR1cm4gZX1mdW5jdGlvbiBEcihBLHQpe2lmKEE9PW51bGwpcmV0dXJuIG51bGw7bGV0IGU9bnVsbDtyZXR1cm4gQS5idWZmZXIhPT12b2lkIDA/ZT1BLmJ1ZmZlcjpBLmJ5dGVMZW5ndGghPT12b2lkIDAmJihlPUEpLHVyJiZlIGluc3RhbmNlb2YgU2hhcmVkQXJyYXlCdWZmZXI/bnVsbDp0P2U6ZS5zbGljZSgwKX12YXIgR2U9ZHI7ZnVuY3Rpb24gaHIoQSl7cmV0dXJuW0EuZGF0YSxBLmRpcmVjdGlvbl19dmFyIGtlPWhyO2Z1bmN0aW9uIHlyKEEpe3JldHVybltBLnBvaW50cyxBLnBvaW50RGF0YSxBLmNlbGxzLEEuY2VsbERhdGFdfXZhciBMZT15cjtmdW5jdGlvbiBtcihBKXtyZXR1cm5bQS5wb2ludHMsQS52ZXJ0aWNlcyxBLmxpbmVzLEEucG9seWdvbnMsQS50cmlhbmdsZVN0cmlwcyxBLnBvaW50RGF0YSxBLmNlbGxEYXRhXX12YXIgYmU9bXI7YXN5bmMgZnVuY3Rpb24gd3IoQSx0LGUsSSl7bGV0IHI9VWUoQSx0LGUsSSksZz1bXTtyZXR1cm4gci5vdXRwdXRzLmZvckVhY2goZnVuY3Rpb24obyl7aWYoby50eXBlPT09ZC5CaW5hcnlTdHJlYW18fG8udHlwZT09PWQuQmluYXJ5RmlsZSl7bGV0IG49by5kYXRhO2cucHVzaChuKX1lbHNlIGlmKG8udHlwZT09PWQuSW1hZ2Upe2xldCBuPW8uZGF0YTtnLnB1c2goLi4ua2UobikpfWVsc2UgaWYoby50eXBlPT09ZC5NZXNoKXtsZXQgbj1vLmRhdGE7Zy5wdXNoKC4uLkxlKG4pKX1lbHNlIGlmKG8udHlwZT09PWQuUG9seURhdGEpe2xldCBuPW8uZGF0YTtnLnB1c2goLi4uYmUobikpfX0pLF9BKHIsR2UoZywhMCkpfXZhciBKZT13cjt2YXIgcHI9e3J1blBpcGVsaW5lOmFzeW5jIGZ1bmN0aW9uKEEsdCxlLEkscixnKXtsZXQgbz1hd2FpdCBwZShBLHQsZyk7cmV0dXJuIGF3YWl0IEplKG8sZSxJLHIpfX07RkEocHIpOyUwQS8qISBCdW5kbGVkIGxpY2Vuc2UgaW5mb3JtYXRpb246JTBBJTBBY29tbGluay9kaXN0L2VzbS9jb21saW5rLm1qczolMEEgICgqKiUwQSAgICogQGxpY2Vuc2UlMEEgICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBMTEMlMEEgICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wJTBBICAgKiklMEEqLyUwQSc7Y3IodXIpO2V4cG9ydHtEIGFzIGdldERlZmF1bHRXZWJXb3JrZXIsZCBhcyBnZXRQaXBlbGluZVdvcmtlclVybCxoIGFzIGdldFBpcGVsaW5lc0Jhc2VVcmwsT2UgYXMgaGRmNVJlYWRUcmFuc2Zvcm0scWUgYXMgaGRmNVdyaXRlVHJhbnNmb3JtLHhlIGFzIG1hdFJlYWRUcmFuc2Zvcm0sUGUgYXMgbWF0V3JpdGVUcmFuc2Zvcm0sS2UgYXMgbW5jUmVhZFRyYW5zZm9ybSxXZSBhcyBtbmNXcml0ZVRyYW5zZm9ybSxMbyBhcyByZWFkVHJhbnNmb3JtLHBzIGFzIHNldERlZmF1bHRXZWJXb3JrZXIsY3IgYXMgc2V0UGlwZWxpbmVXb3JrZXJVcmwsQnMgYXMgc2V0UGlwZWxpbmVzQmFzZVVybCxqZSBhcyB0eHRSZWFkVHJhbnNmb3JtLHZlIGFzIHR4dFdyaXRlVHJhbnNmb3JtLG9lIGFzIHZlcnNpb24sWmUgYXMgd2FzbVJlYWRUcmFuc2Zvcm0sVmUgYXMgd2FzbVdyaXRlVHJhbnNmb3JtLFhlIGFzIHdhc21ac3RkUmVhZFRyYW5zZm9ybSx6ZSBhcyB3YXNtWnN0ZFdyaXRlVHJhbnNmb3JtLFRvIGFzIHdyaXRlVHJhbnNmb3JtfTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCmNvbWxpbmsvZGlzdC9lc20vY29tbGluay5tanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgTExDCiAgICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKICAgKikKKi8K""" default_config = JsPackageConfig(default_js_module) js_package = JsPackage(default_config) diff --git a/packages/transform/package.json b/packages/transform/package.json index cc28a76e1..e5969f259 100644 --- a/packages/transform/package.json +++ b/packages/transform/package.json @@ -9,6 +9,7 @@ "wasi-docker-image": "quay.io/itkwasm/wasi:latest", "test-data-hash": "bafkreidkya6zzlqxf2c5w4suxmoiz5x7f4vgdopd5nguymqdh2leafh7zu", "test-data-urls": [ + "https://itk.mypinata.cloud/ipfs/bafybeibrqarlknigdc37zwm6hpmknpvhnr6wblpli42zdpe47c24o7jlby/data.tar.gz", "https://bafybeibrqarlknigdc37zwm6hpmknpvhnr6wblpli42zdpe47c24o7jlby.ipfs.w3s.link/ipfs/bafybeibrqarlknigdc37zwm6hpmknpvhnr6wblpli42zdpe47c24o7jlby/data.tar.gz" ], "typescript-package-name": "@itk-wasm/transform",