My43LjIKYmNkMGRhM2Y0OGVlZjAzNzJlY2Q5ZmNiNTlkZGE3ZWM4MTBjOGRhMAoECG86GVNhc3M6OlRyZWU6OlJvb3ROb2RlDDoOQGNoaWxkcmVuWxBvOhxTYXNzOjpUcmVlOjpDb21tZW50Tm9kZQw6C0B2YWx1ZVsGSSJlLyovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAqIFByaXZhdGUgQnJlYWtwb2ludCBWYXJpYWJsZXMKICovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICovBjoGRVQ6CkB0eXBlOgtzaWxlbnQ7BlsAOg5AZmlsZW5hbWUwOg1Ab3B0aW9uc3sAOgpAbGluZWkGOhJAc291cmNlX3JhbmdlbzoYU2Fzczo6U291cmNlOjpSYW5nZQk6D0BzdGFydF9wb3NvOhtTYXNzOjpTb3VyY2U6OlBvc2l0aW9uBzsOaQY6DEBvZmZzZXRpBjoNQGVuZF9wb3NvOxIHOw5pCDsTaSQ6CkBmaWxlSSJ4L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL2JyZWFrcG9pbnQvX2NvbnRleHQuc2NzcwY7CVQ6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsJRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CVQ6GEBzYW1lX25hbWVfd2FybmluZ3NvOghTZXQGOgpAaGFzaH0ARm86HVNhc3M6OlRyZWU6OlZhcmlhYmxlTm9kZQ46CkBuYW1lSSImcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyBjsJVDoKQGV4cHJvOiRTYXNzOjpTY3JpcHQ6OlRyZWU6Okxpc3RMaXRlcmFsDDoOQGVsZW1lbnRzWwA6D0BzZXBhcmF0b3IwOg9AYnJhY2tldGVkRjsOaQk7D287EAk7EW87Egc7DmkJOxNpKzsUbzsSBzsOaQk7E2krOxVADzsWQBA7DEAPOw1ACzoNQGd1YXJkZWQwOgxAZ2xvYmFsMDsGWwA7DDA7DUALOw5pCTsPbzsQCTsRbzsSBzsOaQk7E2kHOxRvOxIHOw5pCTsTaSw7FUAPOxZAEG87HQ47HkkiI3ByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudAY7CVQ7H286IFNhc3M6OlNjcmlwdDo6VHJlZTo6TGl0ZXJhbAk7CG86IFNhc3M6OlNjcmlwdDo6VmFsdWU6Ok51bWJlcgo7CGkAOw1ACzoVQG51bWVyYXRvcl91bml0c1sAOhdAZGVub21pbmF0b3JfdW5pdHNbADoOQG9yaWdpbmFsSSIGMAY7CUY7DmkKOw9vOxAJOxFvOxIHOw5pCjsTaSc7FG87Egc7DmkKOxNpKDsVQA87FkAQOwxADzskVDslMDsGWwA7DDA7DUALOw5pCjsPbzsQCTsRbzsSBzsOaQo7E2kHOxRvOxIHOw5pCjsTaTE7FUAPOxZAEG87Bww7CFsGSSIBli8qLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogKiBCcmVha3BvaW50IEhhcyBDb250ZXh0CiAqIFJldHVybnMgd2hldGhlciBvciBub3QgeW91IGFyZSBpbnNpZGUgYSBCcmVha3BvaW50IHF1ZXJ5CiAqLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAqLwY7CVQ7CjsLOwZbADsMMDsNQAs7DmkMOw9vOxAJOxFvOxIHOw5pDDsTaQY7FG87Egc7DmkPOxNpJDsVQA87FkAQbzodU2Fzczo6VHJlZTo6RnVuY3Rpb25Ob2RlDjseSSIbYnJlYWtwb2ludC1oYXMtY29udGV4dAY7CVQ6CkBhcmdzWwA6C0BzcGxhdDA7BlsGdToXU2Fzczo6VHJlZTo6SWZOb2RlAmMIBAhbCG86IFNhc3M6OlNjcmlwdDo6VHJlZTo6RnVuY2FsbA86DkBjYWxsYWJsZTA6CkBuYW1lSSILbGVuZ3RoBjoGRVQ6CkBhcmdzWwZvOiFTYXNzOjpTY3JpcHQ6OlRyZWU6OlZhcmlhYmxlCzsHSSIjcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50BjsIVDoWQHVuZGVyc2NvcmVkX25hbWVJIiNwcml2YXRlX2JyZWFrcG9pbnRfcXVlcnlfY291bnQGOwhUOgpAbGluZWkROhJAc291cmNlX3JhbmdlbzoYU2Fzczo6U291cmNlOjpSYW5nZQk6D0BzdGFydF9wb3NvOhtTYXNzOjpTb3VyY2U6OlBvc2l0aW9uBzsMaRE6DEBvZmZzZXRpEzoNQGVuZF9wb3NvOxAHOwxpETsRaTI6CkBmaWxlSSJ4L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL2JyZWFrcG9pbnQvX2NvbnRleHQuc2NzcwY7CFQ6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsIRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CFQ6GEBzYW1lX25hbWVfd2FybmluZ3NvOghTZXQGOgpAaGFzaH0ARjoOQGZpbGVuYW1lQA86DUBvcHRpb25zewA6DkBrZXl3b3Jkc286HlNhc3M6OlV0aWw6Ok5vcm1hbGl6ZWRNYXAHOhFAa2V5X3N0cmluZ3N7ADoJQG1hcHsAOgtAc3BsYXQwOhFAa3dhcmdfc3BsYXQwOwxpETsNbzsOCTsPbzsQBzsMaRE7EWkMOxJvOxAHOwxpETsRaTM7E0APOxRAEDsbQA87HEAVdToXU2Fzczo6VHJlZTo6SWZOb2RlAmEDBAhbCDAwWwZvOhtTYXNzOjpUcmVlOjpSZXR1cm5Ob2RlCzoKQGV4cHJvOiBTYXNzOjpTY3JpcHQ6OlRyZWU6OkxpdGVyYWwJOgtAdmFsdWVvOh5TYXNzOjpTY3JpcHQ6OlZhbHVlOjpCb29sCDsIRjoNQG9wdGlvbnN7ADoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc6CkBsaW5laRc6DEBvZmZzZXRpGToNQGVuZF9wb3NvOw4HOw9pFzsQaR46CkBmaWxlSSJ7L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL2JyZWFrcG9pbnQvX2JyZWFrcG9pbnQuc2NzcwY6BkVUOg5AaW1wb3J0ZXJvOiBTYXNzOjpJbXBvcnRlcnM6OkZpbGVzeXN0ZW0IOgpAcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7E0Y6D0ByZWFsX3Jvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOxNUOhhAc2FtZV9uYW1lX3dhcm5pbmdzbzoIU2V0BjoKQGhhc2h9AEY7D2kVOwtvOwwJOw1vOw4HOw9pFTsQaRI7EW87Dgc7D2kVOxBpFzsSSSJ4L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL2JyZWFrcG9pbnQvX2NvbnRleHQuc2NzcwY7E1Q7FEAPOg5AZmlsZW5hbWVAFzoOQGNoaWxkcmVuWwA7GzA7CkAKOw9pFTsLbzsMCTsNbzsOBzsPaRU7EGkKOxFvOw4HOw9pFTsQaRc7EkAXOxRAD1sGbzobU2Fzczo6VHJlZTo6UmV0dXJuTm9kZQs6CkBleHBybzogU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXRlcmFsCToLQHZhbHVlbzoeU2Fzczo6U2NyaXB0OjpWYWx1ZTo6Qm9vbAg7J1Q7HEAVOw1vOw4JOw9vOxAHOwxpEDsRaSE7Em87EAc7DGkQOxFpJTsTSSJ7L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL2JyZWFrcG9pbnQvX2JyZWFrcG9pbnQuc2NzcwY7CFQ7FEAQOwxpEjsNbzsOCTsPbzsQBzsMaRI7EWkSOxJvOxAHOwxpEjsRaRY7E0APOxRAEDsbQA86DkBjaGlsZHJlblsAOxswOxxAFTsMaRI7DW87Dgk7D287EAc7DGkSOxFpCjsSbzsQBzsMaRI7EWkWOxNADzsUQBA7DDA7DUALOw5pEDsPbzsQCTsRbzsSBzsOaRA7E2kGOxRvOxIHOw5pEDsTaSk7FUAPOxZAEDoSQGhhc19jaGlsZHJlblRvOwcMOwhbBkkiAbEvKi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICogQnJlYWtwb2ludCBHZXQgQ29udGV4dAogKiAkZmVhdHVyZTogSW5wdXQgZmVhdHVyZSB0byBnZXQgaXQncyBjdXJyZW50IE1RIGNvbnRleHQuIFJldHVybnMgZmFsc2UgaWYgbm8gY29udGV4dAogKi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gKi8GOwlUOwo7CzsGWwA7DDA7DUALOw5pGTsPbzsQCTsRbzsSBzsOaRk7E2kGOxRvOxIHOw5pHDsTaSQ7FUAPOxZAEG87Kw47HkkiG2JyZWFrcG9pbnQtZ2V0LWNvbnRleHQGOwlUOyxbBlsHbzohU2Fzczo6U2NyaXB0OjpUcmVlOjpWYXJpYWJsZQs7HkkiDGZlYXR1cmUGOwlUOhZAdW5kZXJzY29yZWRfbmFtZUkiDGZlYXR1cmUGOwlUOw5pHTsPbzsQCTsRbzsSBzsOaR07E2knOxRvOxIHOw5pHTsTaS87FUAPOxZAEDsMQA87DUALMDstMDsGWwZ1Oy4C1B4ECFsIbzogU2Fzczo6U2NyaXB0OjpUcmVlOjpGdW5jYWxsDzoOQGNhbGxhYmxlMDoKQG5hbWVJIhBtYXAtaGFzLWtleQY6BkVUOgpAYXJnc1sHbzohU2Fzczo6U2NyaXB0OjpUcmVlOjpWYXJpYWJsZQs7B0kiJnByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcgY7CFQ6FkB1bmRlcnNjb3JlZF9uYW1lSSImcHJpdmF0ZV9icmVha3BvaW50X2NvbnRleHRfaG9sZGVyBjsIVDoKQGxpbmVpHjoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7DGkeOgxAb2Zmc2V0aRg6DUBlbmRfcG9zbzsQBzsMaR47EWk6OgpAZmlsZUkieC9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9icmVha3BvaW50L19jb250ZXh0LnNjc3MGOwhUOg5AaW1wb3J0ZXJvOiBTYXNzOjpJbXBvcnRlcnM6OkZpbGVzeXN0ZW0IOgpAcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CEY6D0ByZWFsX3Jvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwhUOhhAc2FtZV9uYW1lX3dhcm5pbmdzbzoIU2V0BjoKQGhhc2h9AEY6DkBmaWxlbmFtZUAPOg1Ab3B0aW9uc3sAbzsKCzsHSSIMZmVhdHVyZQY7CFQ7C0kiDGZlYXR1cmUGOwhUOwxpHjsNbzsOCTsPbzsQBzsMaR47EWk8OxJvOxAHOwxpHjsRaUQ7E0APOxRAEDsbQA87HEAVOg5Aa2V5d29yZHNvOh5TYXNzOjpVdGlsOjpOb3JtYWxpemVkTWFwBzoRQGtleV9zdHJpbmdzewA6CUBtYXB7ADoLQHNwbGF0MDoRQGt3YXJnX3NwbGF0MDsMaR47DW87Dgk7D287EAc7DGkeOxFpDDsSbzsQBzsMaR47EWlFOxNADzsUQBA7G0APOxxAFXU6F1Nhc3M6OlRyZWU6OklmTm9kZQJyCQQIWwgwMFsGdToXU2Fzczo6VHJlZTo6SWZOb2RlAlIJBAhbCG86IlNhc3M6OlNjcmlwdDo6VHJlZTo6T3BlcmF0aW9uDDoOQG9wZXJhbmQxbzogU2Fzczo6U2NyaXB0OjpUcmVlOjpGdW5jYWxsDzoOQGNhbGxhYmxlMDoKQG5hbWVJIhticmVha3BvaW50LWhhcy1jb250ZXh0BjoGRVQ6CkBhcmdzWwA6DkBrZXl3b3Jkc286HlNhc3M6OlV0aWw6Ok5vcm1hbGl6ZWRNYXAHOhFAa2V5X3N0cmluZ3N7ADoJQG1hcHsAOgtAc3BsYXQwOhFAa3dhcmdfc3BsYXQwOgpAbGluZWkpOhJAc291cmNlX3JhbmdlbzoYU2Fzczo6U291cmNlOjpSYW5nZQk6D0BzdGFydF9wb3NvOhtTYXNzOjpTb3VyY2U6OlBvc2l0aW9uBzsSaSk6DEBvZmZzZXRpDjoNQGVuZF9wb3NvOxYHOxJpKTsXaSY6CkBmaWxlSSJ4L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL2JyZWFrcG9pbnQvX2NvbnRleHQuc2NzcwY7ClQ6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsKRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7ClQ6GEBzYW1lX25hbWVfd2FybmluZ3NvOghTZXQGOgpAaGFzaH0ARjoOQGZpbGVuYW1lQBA6DUBvcHRpb25zewA6DkBvcGVyYW5kMm87AAw7Bm86IVNhc3M6OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOwlJIgxmZWF0dXJlBjsKVDoWQHVuZGVyc2NvcmVkX25hbWVJIgxmZWF0dXJlBjsKVDsSaSk7E287FAk7FW87Fgc7EmkpOxdpKzsYbzsWBzsSaSk7F2kzOxlAEDsaQBE7IUAQOyJAFjsjbzogU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXRlcmFsCToLQHZhbHVlbzogU2Fzczo6U2NyaXB0OjpWYWx1ZTo6U3RyaW5nCTsnSSIKbWVkaWEGOwpUOyJAFjoKQHR5cGU6C3N0cmluZzoiQGRlcHJlY2F0ZWRfaW50ZXJwX2VxdWl2YWxlbnQwOxJpKTsTbzsUCTsVbzsWBzsSaSk7F2k3OxhvOxYHOxJpKTsXaT47GUAQOxpAETshQBA6DkBvcGVyYXRvcjoHZXE7EmkpOxNvOxQJOxVAHDsYbzsWBzsSaSk7F2k/OxlAEDsaQBE7IUAQOyJAFjssOghhbmQ7EmkpOxNvOxQJOxVADjsYbzsWBzsSaSk7F2k/OxlAEDsaQBE7IUAQOyJAFnU6F1Nhc3M6OlRyZWU6OklmTm9kZQJhAwQIWwgwMFsGbzobU2Fzczo6VHJlZTo6UmV0dXJuTm9kZQs6CkBleHBybzogU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXRlcmFsCToLQHZhbHVlbzoeU2Fzczo6U2NyaXB0OjpWYWx1ZTo6Qm9vbAg7CEY6DUBvcHRpb25zewA6EkBzb3VyY2VfcmFuZ2VvOhhTYXNzOjpTb3VyY2U6OlJhbmdlCToPQHN0YXJ0X3Bvc286G1Nhc3M6OlNvdXJjZTo6UG9zaXRpb24HOgpAbGluZWkXOgxAb2Zmc2V0aRk6DUBlbmRfcG9zbzsOBzsPaRc7EGkeOgpAZmlsZUkiey9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9icmVha3BvaW50L19icmVha3BvaW50LnNjc3MGOgZFVDoOQGltcG9ydGVybzogU2Fzczo6SW1wb3J0ZXJzOjpGaWxlc3lzdGVtCDoKQHJvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOxNGOg9AcmVhbF9yb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsTVDoYQHNhbWVfbmFtZV93YXJuaW5nc286CFNldAY6CkBoYXNofQBGOw9pLTsLbzsMCTsNbzsOBzsPaS07EGkUOxFvOw4HOw9pLTsQaRk7EkkieC9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9icmVha3BvaW50L19jb250ZXh0LnNjc3MGOxNUOxRADzoOQGZpbGVuYW1lQBc6DkBjaGlsZHJlblsAOxswOwpACjsPaS07C287DAk7DW87Dgc7D2ktOxBpDDsRbzsOBzsPaS07EGkZOxJAFzsUQA9bBm86G1Nhc3M6OlRyZWU6OlJldHVybk5vZGULOgpAZXhwcm87Bw87CDA7CUkiE2JyZWFrcG9pbnQtZ2V0BjsKVDsLWwZvOyYJOydvOygJOydJIhJkZWZhdWx0IG1lZGlhBjsKVDsiQBY7KTsqOyswOxJpKjsTbzsUCTsVbzsWBzsSaSo7F2kjOxhvOxYHOxJpKjsXaTI7GUAQOxpAETshQBA7DG87DQc7DnsAOw97ADsQMDsRMDsSaSo7E287FAk7FW87Fgc7EmkqOxdpFDsYbzsWBzsSaSo7F2kzOxlAEDsaQBE7IUAQOyJAFjoOQGNoaWxkcmVuWwA7ITA7IkAWOxJpKjsTbzsUCTsVbzsWBzsSaSo7F2kMOxhvOxYHOxJpKjsXaTM7GUAQOxpAEVsJbzodU2Fzczo6VHJlZTo6VmFyaWFibGVOb2RlDjsHSSIIZ2V0BjsIVDoKQGV4cHJvOwAPOwYwOwdJIgxtYXAtZ2V0BjsIVDsJWwdvOwoLOwdJIiZwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIGOwhUOwtJIiZwcml2YXRlX2JyZWFrcG9pbnRfY29udGV4dF9ob2xkZXIGOwhUOwxpHzsNbzsOCTsPbzsQBzsMaR87EWkYOxJvOxAHOwxpHzsRaTo7E0APOxRAEDsbQA87HEAVbzsKCzsHSSIMZmVhdHVyZQY7CFQ7C0kiDGZlYXR1cmUGOwhUOwxpHzsNbzsOCTsPbzsQBzsMaR87EWk8OxJvOxAHOwxpHzsRaUQ7E0APOxRAEDsbQA87HEAVOx1vOx4HOx97ADsgewA7ITA7IjA7DGkfOw1vOw4JOw9vOxAHOwxpHzsRaRA7Em87EAc7DGkfOxFpRTsTQA87FEAQOxtADzscQBU6DUBndWFyZGVkMDoMQGdsb2JhbDA6DkBjaGlsZHJlblsAOxswOxxAFTsMaR87DW87Dgk7D287EAc7DGkfOxFpCzsSbzsQBzsMaR87EWlFOxNADzsUQBBvOhxTYXNzOjpUcmVlOjpDb21tZW50Tm9kZQw6C0B2YWx1ZVsGSSJZLyogU3BlY2lhbCBoYW5kbGluZyBvZiBuby1xdWVyeSBmcm9tIGdldCBzaWRlIHNvIC9mYWxzZS8gcHJlcGVuZHMgYXJlbid0IHJldHVybmVkICovBjsIVDoKQHR5cGU6C3NpbGVudDsoWwA7GzA7HEAVOwxpIDsNbzsOCTsPbzsQBzsMaSA7EWkKOxJvOxAHOwxpIDsRaVs7E0APOxRAEHU7IwI4DgQIWwhvOiJTYXNzOjpTY3JpcHQ6OlRyZWU6Ok9wZXJhdGlvbgw6DkBvcGVyYW5kMW86IVNhc3M6OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOgpAbmFtZUkiDGZlYXR1cmUGOgZFVDoWQHVuZGVyc2NvcmVkX25hbWVJIgxmZWF0dXJlBjsJVDoKQGxpbmVpIToSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7C2khOgxAb2Zmc2V0aQ46DUBlbmRfcG9zbzsPBzsLaSE7EGkWOgpAZmlsZUkieC9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9icmVha3BvaW50L19jb250ZXh0LnNjc3MGOwlUOg5AaW1wb3J0ZXJvOiBTYXNzOjpJbXBvcnRlcnM6OkZpbGVzeXN0ZW0IOgpAcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CUY6D0ByZWFsX3Jvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwlUOhhAc2FtZV9uYW1lX3dhcm5pbmdzbzoIU2V0BjoKQGhhc2h9AEY6DkBmaWxlbmFtZUANOg1Ab3B0aW9uc3sAOg5Ab3BlcmFuZDJvOiBTYXNzOjpTY3JpcHQ6OlRyZWU6OkxpdGVyYWwJOgtAdmFsdWVvOiBTYXNzOjpTY3JpcHQ6OlZhbHVlOjpTdHJpbmcJOx5JIg1uby1xdWVyeQY7CVQ7G0ATOgpAdHlwZToLc3RyaW5nOiJAZGVwcmVjYXRlZF9pbnRlcnBfZXF1aXZhbGVudDA7C2khOwxvOw0JOw5vOw8HOwtpITsQaRo7EW87Dwc7C2khOxBpJDsSQA07E0AOOxpADToOQG9wZXJhdG9yOgdlcTsLaSE7DG87DQk7DkALOxFvOw8HOwtpITsQaSU7EkANOxNADjsaQA07G0ATMFsGdToXU2Fzczo6VHJlZTo6SWZOb2RlAosKBAhbCG86IlNhc3M6OlNjcmlwdDo6VHJlZTo6T3BlcmF0aW9uDDoOQG9wZXJhbmQxbzsADDsGbzsADDsGbzogU2Fzczo6U2NyaXB0OjpUcmVlOjpGdW5jYWxsDzoOQGNhbGxhYmxlMDoKQG5hbWVJIgx0eXBlLW9mBjoGRVQ6CkBhcmdzWwZvOiFTYXNzOjpTY3JpcHQ6OlRyZWU6OlZhcmlhYmxlCzsJSSIIZ2V0BjsKVDoWQHVuZGVyc2NvcmVkX25hbWVJIghnZXQGOwpUOgpAbGluZWkiOhJAc291cmNlX3JhbmdlbzoYU2Fzczo6U291cmNlOjpSYW5nZQk6D0BzdGFydF9wb3NvOhtTYXNzOjpTb3VyY2U6OlBvc2l0aW9uBzsOaSI6DEBvZmZzZXRpGDoNQGVuZF9wb3NvOxIHOw5pIjsTaRw6CkBmaWxlSSJ4L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL2JyZWFrcG9pbnQvX2NvbnRleHQuc2NzcwY7ClQ6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dl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WwdvOzALOx5JIgp2YWx1ZQY7CVQ7MUkiCnZhbHVlBjsJVDsOaTU7D287EAk7EW87Egc7Dmk1OxNpOTsUbzsSBzsOaTU7E2k/OxVADzsWQBA7DEAPOw1ACzA7LTA7BlsKdTsuAncEBAhbCG86IlNhc3M6OlNjcmlwdDo6VHJlZTo6T3BlcmF0aW9uDDoOQG9wZXJhbmQxbzohU2Fzczo6U2NyaXB0OjpUcmVlOjpWYXJpYWJsZQs6CkBuYW1lSSIKdmFsdWUGOgZFVDoWQHVuZGVyc2NvcmVkX25hbWVJIgp2YWx1ZQY7CVQ6CkBsaW5laTY6EkBzb3VyY2VfcmFuZ2VvOhhTYXNzOjpTb3VyY2U6OlJhbmdlCToPQHN0YXJ0X3Bvc286G1Nhc3M6OlNvdXJjZTo6UG9zaXRpb24HOwtpNjoMQG9mZnNldGkMOg1AZW5kX3Bvc287Dwc7C2k2OxBpEjoKQGZpbGVJIngvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MvbWluaW1hbC1taXN0YWtlcy92ZW5kb3IvYnJlYWtwb2ludC9fY29udGV4dC5zY3NzBjsJVDoOQGltcG9ydGVybzogU2Fzczo6SW1wb3J0ZXJzOjpGaWxlc3lzdGVtCDoKQHJvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwlGOg9AcmVhbF9yb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsJVDoYQHNhbWVfbmFtZV93YXJuaW5nc286CFNldAY6CkBoYXNofQBGOg5AZmlsZW5hbWVADToNQG9wdGlvbnN7ADoOQG9wZXJhbmQybzogU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXRlcmFsCToLQHZhbHVlbzogU2Fzczo6U2NyaXB0OjpWYWx1ZTo6U3RyaW5nCTseSSIPbW9ub2Nocm9tZQY7CVQ7G0ATOgpAdHlwZToLc3RyaW5nOiJAZGVwcmVjYXRlZF9pbnRlcnBfZXF1aXZhbGVudDA7C2k2OwxvOw0JOw5vOw8HOwtpNjsQaRY7EW87Dwc7C2k2OxBpIjsSQA07E0AOOxpADToOQG9wZXJhdG9yOgdlcTsLaTY7DG87DQk7DkALOxFvOw8HOwtpNjsQaSM7EkANOxNADjsaQA07G0ATMFsGbzodU2Fzczo6VHJlZTo6VmFyaWFibGVOb2RlDjsISSIMZmVhdHVyZQY7CVQ6CkBleHBybzsdCTsebzsfCTseSSIPbW9ub2Nocm9tZQY7CVQ7G0ATOyA7ITsiMDsLaTc7DG87DQk7Dm87Dwc7C2k3OxBpFDsRbzsPBzsLaTc7EGkgOxJADTsTQA47GkANOg1AZ3VhcmRlZDA6DEBnbG9iYWwwOg5AY2hpbGRyZW5bADsaMDsbQBM7C2k3OwxvOw0JOw5vOw8HOwtpNzsQaQs7EW87Dwc7C2k3OxBpIDsSQA07E0AObzsdDjseSSIMY3VycmVudAY7CVQ7H286IFNhc3M6OlNjcmlwdDo6VHJlZTo6RnVuY2FsbA86DkBjYWxsYWJsZTA7HkkiDG1hcC1nZXQGOwlUOyxbB287MAs7HkkiJnByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcgY7CVQ7MUkiJnByaXZhdGVfYnJlYWtwb2ludF9jb250ZXh0X2hvbGRlcgY7CVQ7Dmk6Ow9vOxAJOxFvOxIHOw5pOjsTaRo7FG87Egc7Dmk6OxNpPDsVQA87FkAQOwxADzsNQAtvOzALOx5JIgxmZWF0dXJlBjsJVDsxSSIMZmVhdHVyZQY7CVQ7Dmk6Ow9vOxAJOxFvOxIHOw5pOjsTaT47FG87Egc7Dmk6OxNpRjsVQA87FkAQOwxADzsNQAs6DkBrZXl3b3Jkc286HlNhc3M6OlV0aWw6Ok5vcm1hbGl6ZWRNYXAHOhFAa2V5X3N0cmluZ3N7ADoJQG1hcHsAOy0wOhFAa3dhcmdfc3BsYXQwOw5pOjsPbzsQCTsRbzsSBzsOaTo7E2kSOxRvOxIHOw5pOjsTaUc7FUAPOxZAEDsMQA87DUALOyQwOyUwOwZbADsMMDsNQAs7Dmk6Ow9vOxAJOxFvOxIHOw5pOjsTaQk7FG87Egc7Dmk6OxNpRzsVQA87FkAQdTsuAp4IBAhbCG86IlNhc3M6OlNjcmlwdDo6VHJlZTo6T3BlcmF0aW9uDDoOQG9wZXJhbmQxbzohU2Fzczo6U2NyaXB0OjpUcmVlOjpWYXJpYWJsZQs6CkBuYW1lSSIMY3VycmVudAY6BkVUOhZAdW5kZXJzY29yZWRfbmFtZUkiDGN1cnJlbnQGOwlUOgpAbGluZWk7OhJAc291cmNlX3JhbmdlbzoYU2Fzczo6U291cmNlOjpSYW5nZQk6D0BzdGFydF9wb3NvOhtTYXNzOjpTb3VyY2U6OlBvc2l0aW9uBzsLaTs6DEBvZmZzZXRpDDoNQGVuZF9wb3NvOw8HOwtpOzsQaRQ6CkBmaWxlSSJ4L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL2JyZWFrcG9pbnQvX2NvbnRleHQuc2NzcwY7CVQ6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsJRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CVQ6GEBzYW1lX25hbWVfd2FybmluZ3NvOghTZXQGOgpAaGFzaH0ARjoOQGZpbGVuYW1lQA06DUBvcHRpb25zewA6DkBvcGVyYW5kMm87AAw7Bm86IFNhc3M6OlNjcmlwdDo6VHJlZTo6RnVuY2FsbA86DkBjYWxsYWJsZTA7CEkiC2xlbmd0aAY7CVQ6CkBhcmdzWwZvOwcLOwhJIgxjdXJyZW50BjsJVDsKSSIMY3VycmVudAY7CVQ7C2k7OwxvOw0JOw5vOw8HOwtpOzsQaSA7EW87Dwc7C2k7OxBpKDsSQA07E0AOOxpADTsbQBM6DkBrZXl3b3Jkc286HlNhc3M6OlV0aWw6Ok5vcm1hbGl6ZWRNYXAHOhFAa2V5X3N0cmluZ3N7ADoJQG1hcHsAOgtAc3BsYXQwOhFAa3dhcmdfc3BsYXQwOwtpOzsMbzsNCTsObzsP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cnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsKRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7ClQ6GEBzYW1lX25hbWVfd2FybmluZ3NvOghTZXQGOgpAaGFzaH0ARjoOQGZpbGVuYW1lQBA6DUBvcHRpb25zewBvOwwLOwlJIgxmZWF0dXJlBjsKVDsNSSIMZmVhdHVyZQY7ClQ7Dmk/Ow9vOxAJOxFvOxIHOw5pPzsTaUA7FG87Egc7Dmk/OxNpSDsVQBA7FkAROx1AEDseQBY6DkBrZXl3b3Jkc286HlNhc3M6OlV0aWw6Ok5vcm1hbGl6ZWRNYXAHOhFAa2V5X3N0cmluZ3N7ADoJQG1hcHsAOgtAc3BsYXQwOhFAa3dhcmdfc3BsYXQwOw5pPzsPbzsQCTsRbzsSBzsOaT87E2kQOxRvOxIHOw5pPzsTaUk7FUAQOxZAETsdQBA7HkAWOg5Ab3BlcmF0b3I6CG5vdDsOaT87D287EAk7EW87Egc7Dmk/OxNpEDsUbzsSBzsOaT87E2lJOxVAEDsWQBE7HUAQOx5AFnU6F1Nhc3M6OlRyZWU6OklmTm9kZQIUFwQIWwgwMFsKbzodU2Fzczo6VHJlZTo6VmFyaWFibGVOb2RlDjoKQG5hbWVJIg12LWhvbGRlcgY6BkVUOgpAZXhwcm86IFNhc3M6OlNjcmlwdDo6VHJlZTo6RnVuY2FsbA86DkBjYWxsYWJsZTA7BkkiDG1hcC1nZXQGOwdUOgpAYXJnc1sHbzohU2Fzczo6U2NyaXB0OjpUcmVlOjpWYXJpYWJsZQs7BkkiJnByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcgY7B1Q6FkB1bmRlcnNjb3JlZF9uYW1lSSImcHJpdmF0ZV9icmVha3BvaW50X2NvbnRleHRfaG9sZGVyBjsHVDoKQGxpbmVpTToSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7DmlNOgxAb2Zmc2V0aR06DUBlbmRfcG9zbzsSBzsOaU07E2k/OgpAZmlsZUkieC9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9icmVha3BvaW50L19jb250ZXh0LnNjc3MGOwdUOg5AaW1wb3J0ZXJvOiBTYXNzOjpJbXBvcnRlcnM6OkZpbGVzeXN0ZW0IOgpAcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7B0Y6D0ByZWFsX3Jvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwdUOhhAc2FtZV9uYW1lX3dhcm5pbmdzbzoIU2V0BjoKQGhhc2h9AEY6DkBmaWxlbmFtZUASOg1Ab3B0aW9uc3sAbzsMCzsGSSIMZmVhdHVyZQY7B1Q7DUkiDGZlYXR1cmUGOwdUOw5pTTsPbzsQCTsRbzsSBzsOaU07E2lBOxRvOxIHOw5pTTsTaUk7FUASOxZAEzsdQBI7HkAYOg5Aa2V5d29yZHNvOh5TYXNzOjpVdGlsOjpOb3JtYWxpemVkTWFwBzoRQGtleV9zdHJpbmdzewA6CUBtYXB7ADoLQHNwbGF0MDoRQGt3YXJnX3NwbGF0MDsOaU07D287EAk7EW87Egc7DmlNOxNpFTsUbzsSBzsOaU07E2lKOxVAEjsWQBM7HUASOx5AGDoNQGd1YXJkZWQwOgxAZ2xvYmFsMDoOQGNoaWxkcmVuWwA7HTA7HkAYOw5pTTsPbzsQCTsRbzsSBzsOaU07E2kLOxRvOxIHOw5pTTsTaUo7FUASOxZAE287AA47BkkiC2xlbmd0aAY7B1Q7CG87CQ87CjA7BkkiC2xlbmd0aAY7B1Q7C1sGbzsMCzsGSSINdi1ob2xkZXIGOwdUOw1JIg12X2hvbGRlcgY7B1Q7DmlOOw9vOxAJOxFvOxIHOw5pTjsTaRo7FG87Egc7DmlOOxNpIzsVQBI7FkATOx1AEjseQBg7H287IAc7IXsAOyJ7ADsjMDskMDsOaU47D287EAk7EW87Egc7DmlOOxNpEzsUbzsSBzsOaU47E2kkOxVAEjsWQBM7HUASOx5AGDslMDsmMDsnWwA7HTA7HkAYOw5pTjsPbzsQCTsRbzsSBzsOaU47E2kLOxRvOxIHOw5pTjsTaSQ7FUASOxZAE286GFNhc3M6OlRyZWU6OkZvck5vZGUPOglAdmFySSIGaQY7B1Q6CkBmcm9tbzsMCzsGSSILbGVuZ3RoBjsHVDsNSSILbGVuZ3RoBjsHVDsOaU87D287EAk7EW87Egc7DmlPOxNpFzsUbzsSBzsOaU87E2keOxVAEjsWQBM7HUASOx5AGDoIQHRvbzoiU2Fzczo6U2NyaXB0OjpUcmVlOjpPcGVyYXRpb24MOg5Ab3BlcmFuZDFvOwwLOwZJIiNwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQGOwdUOw1JIiNwcml2YXRlX2JyZWFrcG9pbnRfcXVlcnlfY291bnQGOwdUOw5pTzsPbzsQCTsRbzsSBzsOaU87E2kiOxRvOxIHOw5pTzsTaUE7FUASOxZAEzsdQBI7HkAYOg5Ab3BlcmFuZDJvOiBTYXNzOjpTY3JpcHQ6OlRyZWU6OkxpdGVyYWwJOgtAdmFsdWVvOiBTYXNzOjpTY3JpcHQ6OlZhbHVlOjpOdW1iZXIKOzBpBjseQBg6FUBudW1lcmF0b3JfdW5pdHNbADoXQGRlbm9taW5hdG9yX3VuaXRzWwA6DkBvcmlnaW5hbEkiBjEGOwdGOw5pTzsPbzsQCTsRbzsSBzsOaU87E2lEOxRvOxIHOw5pTzsTaUU7FUASOxZAEzsdQBI6DkBvcGVyYXRvcjoKbWludXM7DmlPOw9vOxAJOxFASzsUbzsSBzsOaU87E2lGOxVAEjsWQBM7HUASOx5AGDoPQGV4Y2x1c2l2ZVQ7J1sGdToXU2Fzczo6VHJlZTo6SWZOb2RlAhILBAhbCG86IlNhc3M6OlNjcmlwdDo6VHJlZTo6T3BlcmF0aW9uDDoOQG9wZXJhbmQxbzohU2Fzczo6U2NyaXB0OjpUcmVlOjpWYXJpYWJsZQs6CkBuYW1lSSIMZmVhdHVyZQY6BkVUOhZAdW5kZXJzY29yZWRfbmFtZUkiDGZlYXR1cmUGOwlUOgpAbGluZWlQOhJAc291cmNlX3JhbmdlbzoYU2Fzczo6U291cmNlOjpSYW5nZQk6D0BzdGFydF9wb3NvOhtTYXNzOjpTb3VyY2U6OlBvc2l0aW9uBzsLaVA6DEBvZmZzZXRpEDoNQGVuZF9wb3NvOw8HOwtpUDsQaRg6CkBmaWxlSSJ4L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL2JyZWFrcG9pbnQvX2NvbnRleHQuc2NzcwY7CVQ6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsJRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CVQ6GEBzYW1lX25hbWVfd2FybmluZ3NvOghTZXQGOgpAaGFzaH0ARjoOQGZpbGVuYW1lQA06DUBvcHRpb25zewA6DkBvcGVyYW5kMm86IFNhc3M6OlNjcmlwdDo6VHJlZTo6TGl0ZXJhbAk6C0B2YWx1ZW86IFNhc3M6OlNjcmlwdDo6VmFsdWU6OlN0cmluZwk7HkkiCm1lZGlhBjsJVDsbQBM6CkB0eXBlOgtzdHJpbmc6IkBkZXByZWNhdGVkX2ludGVycF9lcXVpdmFsZW50MDsLaVA7DG87DQk7Dm87Dwc7C2lQOxBpHDsRbzsPBzsLaVA7EGkjOxJADTsTQA47GkANOg5Ab3BlcmF0b3I6B2VxOwtpUDsMbzsNCTsOQAs7EW87Dwc7C2lQOxBpJDsSQA07E0AOOxpADTsbQBN1OhdTYXNzOjpUcmVlOjpJZk5vZGUC6AQECFsIMDBbBm86HVNhc3M6OlRyZWU6OlZhcmlhYmxlTm9kZQ46CkBuYW1lSSINdi1ob2xkZXIGOgZFVDoKQGV4cHJvOiBTYXNzOjpTY3JpcHQ6OlRyZWU6OkZ1bmNhbGwPOg5AY2FsbGFibGUwOwZJIgthcHBlbmQGOwdUOgpAYXJnc1sHbzohU2Fzczo6U2NyaXB0OjpUcmVlOjpWYXJpYWJsZQs7BkkiDXYtaG9sZGVyBjsHVDoWQHVuZGVyc2NvcmVkX25hbWVJIg12X2hvbGRlcgY7B1Q6CkBsaW5laVQ6EkBzb3VyY2VfcmFuZ2VvOhhTYXNzOjpTb3VyY2U6OlJhbmdlCToPQHN0YXJ0X3Bvc286G1Nhc3M6OlNvdXJjZTo6UG9zaXRpb24HOw5pVDoMQG9mZnNldGkgOg1AZW5kX3Bvc287Egc7DmlUOxNpKToKQGZpbGVJIngvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MvbWluaW1hbC1taXN0YWtlcy92ZW5kb3IvYnJlYWtwb2ludC9fY29udGV4dC5zY3NzBjsHVDoOQGltcG9ydGVybzogU2Fzczo6SW1wb3J0ZXJzOjpGaWxlc3lzdGVtCDoKQHJvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwdGOg9AcmVhbF9yb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsHVDoYQHNhbWVfbmFtZV93YXJuaW5nc286CFNldAY6CkBoYXNofQBGOg5AZmlsZW5hbWVAEjoNQG9wdGlvbnN7AG86IFNhc3M6OlNjcmlwdDo6VHJlZTo6TGl0ZXJhbAk6C0B2YWx1ZW86HlNhc3M6OlNjcmlwdDo6VmFsdWU6OkJvb2wIOyBGOx5AGDsPbzsQCTsRbzsSBzsOaRc7E2kZOxRvOxIHOw5pFzsTaR47FUkiey9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9icmVha3BvaW50L19icmVha3BvaW50LnNjc3MGOwdU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Og5Ab3BlcmFuZDFvOiFTYXNzOjpTY3JpcHQ6OlRyZWU6OlZhcmlhYmxlCzoKQG5hbWVJIgxmZWF0dXJlBjoGRVQ6FkB1bmRlcnNjb3JlZF9uYW1lSSIMZmVhdHVyZQY7CVQ6CkBsaW5laUI6EkBzb3VyY2VfcmFuZ2VvOhhTYXNzOjpTb3VyY2U6OlJhbmdlCToPQHN0YXJ0X3Bvc286G1Nhc3M6OlNvdXJjZTo6UG9zaXRpb24HOwtpQjoMQG9mZnNldGkQOg1AZW5kX3Bvc287Dwc7C2lCOxBpGDoKQGZpbGVJIngvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MvbWluaW1hbC1taXN0YWtlcy92ZW5kb3IvYnJlYWtwb2ludC9fY29udGV4dC5zY3NzBjsJVDoOQGltcG9ydGVybzogU2Fzczo6SW1wb3J0ZXJzOjpGaWxlc3lzdGVtCDoKQHJvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwlGOg9AcmVhbF9yb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsJVDoYQHNhbWVfbmFtZV93YXJuaW5nc286CFNldAY6CkBoYXNofQBGOg5AZmlsZW5hbWVADToNQG9wdGlvbnN7ADoOQG9wZXJhbmQybzogU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXRlcmFsCToLQHZhbHVlbzogU2Fzczo6U2NyaXB0OjpWYWx1ZTo6U3RyaW5nCTseSSIKbWVkaWEGOwlUOxtAEzoKQHR5cGU6C3N0cmluZzoiQGRlcHJlY2F0ZWRfaW50ZXJwX2VxdWl2YWxlbnQwOwtpQjsMbzsNCTsObzsPBzsLaUI7EGkcOxFvOw8HOwtpQjsQaSM7EkANOxNADjsaQA06DkBvcGVyYXRvcjoHZXE7C2lCOwxvOw0JOw5ACzsRbzsPBzsLaUI7EGkkOxJADTsTQA47GkANOxtAE3U6F1Nhc3M6OlRyZWU6OklmTm9kZQLoBAQIWwgwMFsGbzodU2Fzczo6VHJlZTo6VmFyaWFibGVOb2RlDjoKQG5hbWVJIg12LWhvbGRlcgY6BkVUOgpAZXhwcm86IFNhc3M6OlNjcmlwdDo6VHJlZTo6RnVuY2FsbA86DkBjYWxsYWJsZTA7BkkiC2FwcGVuZAY7B1Q6CkBhcmdzWwdvOiFTYXNzOjpTY3JpcHQ6OlRyZWU6OlZhcmlhYmxlCzsGSSINdi1ob2xkZXIGOwdUOhZAdW5kZXJzY29yZWRfbmFtZUkiDXZfaG9sZGVyBjsHVDoKQGxpbmVpRjoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7DmlGOgxAb2Zmc2V0aSA6DUBlbmRfcG9zbzsSBzsOaUY7E2kpOgpAZmlsZUkieC9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9icmVha3BvaW50L19jb250ZXh0LnNjc3MGOwdUOg5AaW1wb3J0ZXJvOiBTYXNzOjpJbXBvcnRlcnM6OkZpbGVzeXN0ZW0IOgpAcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7B0Y6D0ByZWFsX3Jvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwdUOhhAc2FtZV9uYW1lX3dhcm5pbmdzbzoIU2V0BjoKQGhhc2h9AEY6DkBmaWxlbmFtZUASOg1Ab3B0aW9uc3sAbzogU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXRlcmFsCToLQHZhbHVlbzoeU2Fzczo6U2NyaXB0OjpWYWx1ZTo6Qm9vbAg7IEY7HkAYOw9vOxAJOxFvOxIHOw5pFzsTaRk7FG87Egc7DmkXOxNpHjsVSSJ7L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5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IHRydWU7CiAgfQogIEBlbHNlIHsKICAgIEByZXR1cm4gZmFsc2U7CiAgfQp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gQnJlYWtwb2ludCBHZXQgQ29udGV4dAovLyAkZmVhdHVyZTogSW5wdXQgZmVhdHVyZSB0byBnZXQgaXQncyBjdXJyZW50IE1RIGNvbnRleHQuIFJldHVybnMgZmFsc2UgaWYgbm8gY29udGV4dAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KQGZ1bmN0aW9uIGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJGZlYXR1cmUpIHsKICBAaWYgbWFwLWhhcy1rZXkoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpIHsKICAgICRnZXQ6IG1hcC1nZXQoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgJGZlYXR1cmUpOwogICAgLy8gU3BlY2lhbCBoYW5kbGluZyBvZiBuby1xdWVyeSBmcm9tIGdldCBzaWRlIHNvIC9mYWxzZS8gcHJlcGVuZHMgYXJlbid0IHJldHVybmVkCiAgICBAaWYgJGZlYXR1cmUgPT0gJ25vLXF1ZXJ5JyB7CiAgICAgIEBpZiB0eXBlLW9mKCRnZXQpID09ICdsaXN0JyBhbmQgbGVuZ3RoKCRnZXQpID4gMSBhbmQgbnRoKCRnZXQsIDEpID09IGZhbHNlIHsKICAgICAgICAkZ2V0OiBudGgoJGdldCwgbGVuZ3RoKCRnZXQpKTsKICAgICAgfQogICAgfQogICAgQHJldHVybiAkZ2V0OwogIH0KICBAZWxzZSB7CiAgICBAaWYgYnJlYWtwb2ludC1oYXMtY29udGV4dCgpIGFuZCAkZmVhdHVyZSA9PSAnbWVkaWEnIHsKICAgICAgQHJldHVybiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpOwogICAgfQogICAgQGVsc2UgewogICAgICBAcmV0dXJuIGZhbHNlOwogICAgfQogIH0KfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIFByaXZhdGUgZnVuY3Rpb24gdG8gc2V0IGNvbnRleHQKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCkBmdW5jdGlvbiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSkgewogIEBpZiAkdmFsdWUgPT0gJ21vbm9jaHJvbWUnIHsKICAgICRmZWF0dXJlOiAnbW9ub2Nocm9tZSc7CiAgfQoKICAkY3VycmVudDogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7CiAgQGlmICRjdXJyZW50IGFuZCBsZW5ndGgoJGN1cnJlbnQpID09ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgewogICAgQHdhcm4gIllvdSBoYXZlIGFscmVhZHkgcXVlcmllZCBhZ2FpbnN0IGAjeyRmZWF0dXJlfWAuIFVuZXhwZWN0ZWQgdGhpbmdzIG1heSBoYXBwZW4gaWYgeW91IHF1ZXJ5IGFnYWluc3QgdGhlIHNhbWUgZmVhdHVyZSBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBgYW5kYCBxdWVyeS4gQnJlYWtwb2ludCBpcyBvdmVyd3JpdGluZyB0aGUgY3VycmVudCBjb250ZXh0IHdpdGggYCN7JHZhbHVlfWAiOwogIH0KCiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkgewogICAgJHYtaG9sZGVyOiAoKTsKICAgIEBmb3IgJGkgZnJvbSAxIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgewogICAgICBAaWYgJGZlYXR1cmUgPT0gJ21lZGlhJyB7CiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpKTsKICAgICAgfQogICAgICBAZWxzZSB7CiAgICAgICAgJHYtaG9sZGVyOiBhcHBlbmQoJHYtaG9sZGVyLCBmYWxzZSk7CiAgICAgIH0KICAgIH0KICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgJHZhbHVlKTsKICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1tZXJnZSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAoJGZlYXR1cmU6ICR2LWhvbGRlcikpICFnbG9iYWw7CiAgfQogIEBlbHNlIHsKICAgICR2LWhvbGRlcjogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7CiAgICAkbGVuZ3RoOiBsZW5ndGgoJHYtaG9sZGVyKTsKICAgIEBmb3IgJGkgZnJvbSAkbGVuZ3RoIHRvICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQgLSAxIHsKICAgICAgQGlmICRmZWF0dXJlID09ICdtZWRpYScgewogICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7CiAgICAgIH0KICAgICAgQGVsc2UgewogICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpOwogICAgICB9CiAgICB9CiAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICR2YWx1ZSk7CiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmZWF0dXJlOiAkdi1ob2xkZXIpKSAhZ2xvYmFsOwogIH0KCiAgQHJldHVybiB0cnVlOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byByZXNldCBjb250ZXh0Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpAbWl4aW4gcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzIHsKICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiAoKSAhZ2xvYmFsOwogICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDsKfQY7CVQ7DmkGOw9vOxAJOxFvOxIHOw5pBjsTaQY7FG87Egc7DmkGOxNpBjsVQA87FkAQOy9U