My43LjIKNGQ0YjliZjdjYjBlNzE1NjhiNTQzYzY3NThkYjRiNjA5NGQxODUxOAoECG86GVNhc3M6OlRyZWU6OlJvb3ROb2RlDDoOQGNoaWxkcmVuWxNvOhxTYXNzOjpUcmVlOjpDb21tZW50Tm9kZQw6C0B2YWx1ZVsGSSJULyovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAqIEhhcyBTZXR0aW5nCiAqLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAqLwY6BkVUOgpAdHlwZToLc2lsZW50OwZbADoOQGZpbGVuYW1lMDoNQG9wdGlvbnN7ADoKQGxpbmVpBjoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7DmkGOgxAb2Zmc2V0aQY6DUBlbmRfcG9zbzsSBzsOaQg7E2kkOgpAZmlsZUkieS9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9icmVha3BvaW50L19zZXR0aW5ncy5zY3NzBjsJVDoOQGltcG9ydGVybzogU2Fzczo6SW1wb3J0ZXJzOjpGaWxlc3lzdGVtCDoKQHJvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwlGOg9AcmVhbF9yb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsJVDoYQHNhbWVfbmFtZV93YXJuaW5nc286CFNldAY6CkBoYXNofQBGbzodU2Fzczo6VHJlZTo6RnVuY3Rpb25Ob2RlDjoKQG5hbWVJIhNicmVha3BvaW50LWhhcwY7CVQ6CkBhcmdzWwZbB286IVNhc3M6OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOx5JIgxzZXR0aW5nBjsJVDoWQHVuZGVyc2NvcmVkX25hbWVJIgxzZXR0aW5nBjsJVDsOaQk7D287EAk7EW87Egc7DmkJOxNpHzsUbzsSBzsOaQk7E2knOxVADzsWQBA7DEAPOw1ACzA6C0BzcGxhdDA7BlsGdToXU2Fzczo6VHJlZTo6SWZOb2RlApwIBAhbCG86IFNhc3M6OlNjcmlwdDo6VHJlZTo6RnVuY2FsbA86DkBjYWxsYWJsZTA6CkBuYW1lSSIQbWFwLWhhcy1rZXkGOgZFVDoKQGFyZ3NbB286IVNhc3M6OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOwdJIg9icmVha3BvaW50BjsIVDoWQHVuZGVyc2NvcmVkX25hbWVJIg9icmVha3BvaW50BjsIVDoKQGxpbmVpCjoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7DGkKOgxAb2Zmc2V0aRg6DUBlbmRfcG9zbzsQBzsMaQo7EWkjOgpAZmlsZUkieS9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9icmVha3BvaW50L19zZXR0aW5ncy5zY3NzBjsIVDoOQGltcG9ydGVybzogU2Fzczo6SW1wb3J0ZXJzOjpGaWxlc3lzdGVtCDoKQHJvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwhGOg9AcmVhbF9yb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsIVDoYQHNhbWVfbmFtZV93YXJuaW5nc286CFNldAY6CkBoYXNofQBGOg5AZmlsZW5hbWVADzoNQG9wdGlvbnN7AG87Cgs7B0kiDHNldHRpbmcGOwhUOwtJIgxzZXR0aW5nBjsIVDsMaQo7DW87Dgk7D287EAc7DGkKOxFpJTsSbzsQBzsMaQo7EWktOxNADzsUQBA7G0APOxxAFToOQGtleXdvcmRzbzoeU2Fzczo6VXRpbDo6Tm9ybWFsaXplZE1hcAc6EUBrZXlfc3RyaW5nc3sAOglAbWFwewA6C0BzcGxhdDA6EUBrd2FyZ19zcGxhdDA7DGkKOw1vOw4JOw9vOxAHOwxpCjsRaQw7Em87EAc7DGkKOxFpLjsTQA87FEAQOxtADzscQBV1OhdTYXNzOjpUcmVlOjpJZk5vZGUCYgMECFsIMDBbBm86G1Nhc3M6OlRyZWU6OlJldHVybk5vZGULOgpAZXhwcm86IFNhc3M6OlNjcmlwdDo6VHJlZTo6TGl0ZXJhbAk6C0B2YWx1ZW86HlNhc3M6OlNjcmlwdDo6VmFsdWU6OkJvb2wIOwhGOg1Ab3B0aW9uc3sAOhJAc291cmNlX3JhbmdlbzoYU2Fzczo6U291cmNlOjpSYW5nZQk6D0BzdGFydF9wb3NvOhtTYXNzOjpTb3VyY2U6OlBvc2l0aW9uBzoKQGxpbmVpFzoMQG9mZnNldGkZOg1AZW5kX3Bvc287Dgc7D2kXOxBpHjoKQGZpbGVJInsvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MvbWluaW1hbC1taXN0YWtlcy92ZW5kb3IvYnJlYWtwb2ludC9fYnJlYWtwb2ludC5zY3NzBjoGRVQ6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsTRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7E1Q6GEBzYW1lX25hbWVfd2FybmluZ3NvOghTZXQGOgpAaGFzaH0ARjsPaQ47C287DAk7DW87Dgc7D2kOOxBpEjsRbzsOBzsPaQ47EGkXOxJJInkvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MvbWluaW1hbC1taXN0YWtlcy92ZW5kb3IvYnJlYWtwb2ludC9fc2V0dGluZ3Muc2NzcwY7E1Q7FEAPOg5AZmlsZW5hbWVAFzoOQGNoaWxkcmVuWwA7GzA7CkAKOw9pDjsLbzsMCTsNbzsOBzsPaQ47EGkKOxFvOw4HOw9pDjsQaRc7EkAXOxRAD1sGbzobU2Fzczo6VHJlZTo6UmV0dXJuTm9kZQs6CkBleHBybzogU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXRlcmFsCToLQHZhbHVlbzoeU2Fzczo6U2NyaXB0OjpWYWx1ZTo6Qm9vbAg7J1Q7HEAVOw1vOw4JOw9vOxAHOwxpEDsRaSE7Em87EAc7DGkQOxFpJTsTSSJ7L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL2JyZWFrcG9pbnQvX2JyZWFrcG9pbnQuc2NzcwY7CFQ7FEAQOwxpCzsNbzsOCTsPbzsQBzsMaQs7EWkSOxJvOxAHOwxpCzsRaRY7E0APOxRAEDsbQA86DkBjaGlsZHJlblsAOxswOxxAFTsMaQs7DW87Dgk7D287EAc7DGkLOxFpCjsSbzsQBzsMaQs7EWkWOxNADzsUQBA7DDA7DUALOw5pCTsPbzsQCTsRbzsSBzsOaQk7E2kGOxRvOxIHOw5pCTsTaSk7FUAPOxZAEDoSQGhhc19jaGlsZHJlblRvOwcMOwhbBkkiVS8qLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogKiBHZXQgU2V0dGluZ3MKICovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICovBjsJVDsKOws7BlsAOwwwOw1ACzsOaRI7D287EAk7EW87Egc7DmkSOxNpBjsUbzsSBzsOaRQ7E2kkOxVADzsWQBBvOx0OOx5JIhNicmVha3BvaW50LWdldAY7CVQ7H1sGWwdvOyALOx5JIgxzZXR0aW5nBjsJVDshSSIMc2V0dGluZwY7CVQ7DmkVOw9vOxAJOxFvOxIHOw5pFTsTaR87FG87Egc7DmkVOxNpJzsVQA87FkAQOwxADzsNQAswOyIwOwZbBnU7IwLqCAQIWwhvOiBTYXNzOjpTY3JpcHQ6OlRyZWU6OkZ1bmNhbGwPOg5AY2FsbGFibGUwOgpAbmFtZUkiE2JyZWFrcG9pbnQtaGFzBjoGRVQ6CkBhcmdzWwZvOiFTYXNzOjpTY3JpcHQ6OlRyZWU6OlZhcmlhYmxlCzsHSSIMc2V0dGluZwY7CFQ6FkB1bmRlcnNjb3JlZF9uYW1lSSIMc2V0dGluZwY7CFQ6CkBsaW5laRY6EkBzb3VyY2VfcmFuZ2VvOhhTYXNzOjpTb3VyY2U6OlJhbmdlCToPQHN0YXJ0X3Bvc286G1Nhc3M6OlNvdXJjZTo6UG9zaXRpb24HOwxpFjoMQG9mZnNldGkbOg1AZW5kX3Bvc287EAc7DGkWOxFpIzoKQGZpbGVJInkvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MvbWluaW1hbC1taXN0YWtlcy92ZW5kb3IvYnJlYWtwb2ludC9fc2V0dGluZ3Muc2NzcwY7CFQ6DkBpbXBvcnRlcm86IFNhc3M6OkltcG9ydGVyczo6RmlsZXN5c3RlbQg6CkByb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsIRjoPQHJlYWxfcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CFQ6GEBzYW1lX25hbWVfd2FybmluZ3NvOghTZXQGOgpAaGFzaH0ARjoOQGZpbGVuYW1lQA86DUBvcHRpb25zewA6DkBrZXl3b3Jkc286HlNhc3M6OlV0aWw6Ok5vcm1hbGl6ZWRNYXAHOhFAa2V5X3N0cmluZ3N7ADoJQG1hcHsAOgtAc3BsYXQwOhFAa3dhcmdfc3BsYXQwOwxpFjsNbzsOCTsPbzsQBzsMaRY7EWkMOxJvOxAHOwxpFjsRaSQ7E0APOxRAEDsbQA87HEAVdToXU2Fzczo6VHJlZTo6SWZOb2RlAhAEBAhbCDAwWwZvOhtTYXNzOjpUcmVlOjpSZXR1cm5Ob2RlCzoKQGV4cHJvOiBTYXNzOjpTY3JpcHQ6OlRyZWU6OkZ1bmNhbGwPOg5AY2FsbGFibGUwOgpAbmFtZUkiDG1hcC1nZXQGOgZFVDoKQGFyZ3NbB286IVNhc3M6OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOwlJIhhCcmVha3BvaW50LVNldHRpbmdzBjsKVDoWQHVuZGVyc2NvcmVkX25hbWVJIhhCcmVha3BvaW50X1NldHRpbmdzBjsKVDoKQGxpbmVpGjoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7DmkaOgxAb2Zmc2V0aRo6DUBlbmRfcG9zbzsSBzsOaRo7E2kuOgpAZmlsZUkieS9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9icmVha3BvaW50L19zZXR0aW5ncy5zY3NzBjsKVDoOQGltcG9ydGVybzogU2Fzczo6SW1wb3J0ZXJzOjpGaWxlc3lzdGVtCDoKQHJvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwpGOg9AcmVhbF9yb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsKVDoYQHNhbWVfbmFtZV93YXJuaW5nc286CFNldAY6CkBoYXNofQBGOg5AZmlsZW5hbWVAEToNQG9wdGlvbnN7AG87DAs7CUkiDHNldHRpbmcGOwpUOw1JIgxzZXR0aW5nBjsKVDsOaRo7D287EAk7EW87Egc7DmkaOxNpMDsUbzsSBzsOaRo7E2k4OxVAETsWQBI7HUAROx5AFzoOQGtleXdvcmRzbzoeU2Fzczo6VXRpbDo6Tm9ybWFsaXplZE1hcAc6EUBrZXlfc3RyaW5nc3sAOglAbWFwewA6C0BzcGxhdDA6EUBrd2FyZ19zcGxhdDA7DmkaOw9vOxAJOxFvOxIHOw5pGjsTaRI7FG87Egc7DmkaOxNpOTsVQBE7FkASOx1AETseQBc6DkBjaGlsZHJlblsAOx0wOx5AFzsOaRo7D287EAk7EW87Egc7DmkaOxNpCjsUbzsSBzsOaRo7E2k5OxVAETsWQBJbBm86G1Nhc3M6OlRyZWU6OlJldHVybk5vZGULOgpAZXhwcm87AA87BjA7B0kiDG1hcC1nZXQGOwhUOwlbB287Cgs7B0kiD2JyZWFrcG9pbnQGOwhUOwtJIg9icmVha3BvaW50BjsIVDsMaRc7DW87Dgk7D287EAc7DGkXOxFpGjsSbzsQBzsMaRc7EWklOxNADzsUQBA7G0APOxxAFW87Cgs7B0kiDHNldHRpbmcGOwhUOwtJIgxzZXR0aW5nBjsIVDsMaRc7DW87Dgk7D287EAc7DGkXOxFpJzsSbzsQBzsMaRc7EWkvOxNADzsUQBA7G0APOxxAFTsdbzseBzsfewA7IHsAOyEwOyIwOwxpFzsNbzsOCTsPbzsQBzsMaRc7EWkSOxJvOxAHOwxpFzsRaTA7E0APOxRAEDsbQA87HEAVOg5AY2hpbGRyZW5bADsbMDscQBU7DGkXOw1vOw4JOw9vOxAHOwxpFzsRaQo7Em87EAc7DGkXOxFpMDsTQA87FEAQOwwwOw1ACzsOaRU7D287EAk7EW87Egc7DmkVOxNpBjsUbzsSBzsOaRU7E2kpOxVADzsWQBA7JFRvOwcMOwhbBkkiVS8qLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogKiBTZXQgU2V0dGluZ3MKICovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICovBjsJVDsKOws7BlsAOwwwOw1ACzsOaR47D287EAk7EW87Egc7DmkeOxNpBjsUbzsSBzsOaSA7E2kkOxVADzsWQBBvOx0OOx5JIhNicmVha3BvaW50LXNldAY7CVQ7H1sHWwdvOyALOx5JIgxzZXR0aW5nBjsJVDshSSIMc2V0dGluZwY7CVQ7DmkhOw9vOxAJOxFvOxIHOw5pITsTaR87FG87Egc7DmkhOxNpJzsVQA87FkAQOwxADzsNQAswWwdvOyALOx5JIgp2YWx1ZQY7CVQ7IUkiCnZhbHVlBjsJVDsOaSE7D287EAk7EW87Egc7DmkhOxNpKTsUbzsSBzsOaSE7E2kvOxVADzsWQBA7DEAPOw1ACzA7IjA7BlsIdTsjAtUIBAhbCG86IlNhc3M6OlNjcmlwdDo6VHJlZTo6T3BlcmF0aW9uDDoOQG9wZXJhbmQxbzsADDsGbzogU2Fzczo6U2NyaXB0OjpUcmVlOjpGdW5jYWxsDzoOQGNhbGxhYmxlMDoKQG5hbWVJIg5zdHItaW5kZXgGOgZFVDoKQGFyZ3NbB286IVNhc3M6OlNjcmlwdDo6VHJlZTo6VmFyaWFibGULOwlJIgxzZXR0aW5nBjsKVDoWQHVuZGVyc2NvcmVkX25hbWVJIgxzZXR0aW5nBjsKVDoKQGxpbmVpIjoSQHNvdXJjZV9yYW5nZW86GFNhc3M6OlNvdXJjZTo6UmFuZ2UJOg9Ac3RhcnRfcG9zbzobU2Fzczo6U291cmNlOjpQb3NpdGlvbgc7DmkiOgxAb2Zmc2V0aRc6DUBlbmRfcG9zbzsSBzsOaSI7E2kfOgpAZmlsZUkieS9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2Fzcy9taW5pbWFsLW1pc3Rha2VzL3ZlbmRvci9icmVha3BvaW50L19zZXR0aW5ncy5zY3NzBjsKVDoOQGltcG9ydGVybzogU2Fzczo6SW1wb3J0ZXJzOjpGaWxlc3lzdGVtCDoKQHJvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwpGOg9AcmVhbF9yb290SSJHL0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzBjsKVDoYQHNhbWVfbmFtZV93YXJuaW5nc286CFNldAY6CkBoYXNofQBGOg5AZmlsZW5hbWVAEToNQG9wdGlvbnN7AG86IFNhc3M6OlNjcmlwdDo6VHJlZTo6TGl0ZXJhbAk6C0B2YWx1ZW86IFNhc3M6OlNjcmlwdDo6VmFsdWU6OlN0cmluZwk7IEkiBi0GOwpUOx5AFzoKQHR5cGU6C3N0cmluZzoiQGRlcHJlY2F0ZWRfaW50ZXJwX2VxdWl2YWxlbnQwOw5pIjsPbzsQCTsRbzsSBzsOaSI7E2khOxRvOxIHOw5pIjsTaSQ7FUAROxZAEjsdQBE6DkBrZXl3b3Jk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dGFydF9wb3NvOhtTYXNzOjpTb3VyY2U6OlBvc2l0aW9uBzsOaTw6DEBvZmZzZXRpEzoNQGVuZF9wb3NvOxIHOw5pPDsTaRw6CkBmaWxlSSJ5L0xpYnJhcnkvUnVieS9HZW1zLzIuMy4wL2dlbXMvbWluaW1hbC1taXN0YWtlcy1qZWt5bGwtNC4xNC4xL19zYXNzL21pbmltYWwtbWlzdGFrZXMvdmVuZG9yL2JyZWFrcG9pbnQvX3NldHRpbmdzLnNjc3MGOwpUOg5AaW1wb3J0ZXJvOiBTYXNzOjpJbXBvcnRlcnM6OkZpbGVzeXN0ZW0IOgpAcm9vdEkiRy9MaWJyYXJ5L1J1YnkvR2Vtcy8yLjMuMC9nZW1zL21pbmltYWwtbWlzdGFrZXMtamVreWxsLTQuMTQuMS9fc2FzcwY7CkY6D0ByZWFsX3Jvb3RJIkcvTGlicmFyeS9SdWJ5L0dlbXMvMi4zLjAvZ2Vtcy9taW5pbWFsLW1pc3Rha2VzLWpla3lsbC00LjE0LjEvX3Nhc3MGOwpUOhhAc2FtZV9uYW1lX3dhcm5pbmdzbzoIU2V0BjoKQGhhc2h9AEY6DkBmaWxlbmFtZUAQOg1Ab3B0aW9uc3sAOg5Aa2V5d29yZHNvOh5TYXNzOjpVdGlsOjpOb3JtYWxpemVkTWFwBzoRQGtleV9zdHJpbmdzewA6CUBtYXB7ADoLQHNwbGF0MDoRQGt3YXJnX3NwbGF0MDsOaTw7D287EAk7EW87Egc7Dmk8OxNpDDsUbzsSBzsOaTw7E2kdOxVAEDsWQBE7HUAQOx5AFjoOQG9wZXJhbmQybzogU2Fzczo6U2NyaXB0OjpUcmVlOjpMaXRlcmFsCToLQHZhbHVlbzogU2Fzczo6U2NyaXB0OjpWYWx1ZTo6TnVtYmVyCjsnaQY7HkAWOhVAbnVtZXJhdG9yX3VuaXRzWwA6F0BkZW5vbWluYXRvcl91bml0c1sAOg5Ab3JpZ2luYWxJIgYxBjsKRjsOaTw7D287EAk7EW87Egc7Dmk8OxNpITsUbzsSBzsOaTw7E2kiOxVAEDsWQBE7HUAQOg5Ab3BlcmF0b3I6B2VxOw5pPDsPbzsQCTsRQBs7FG87Egc7Dmk8OxNpIzsVQBA7FkAROx1AEDseQBYwWwZvOh1TYXNzOjpUcmVlOjpWYXJpYWJsZU5v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biBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKSB7CiAgQGlmIChzdHItaW5kZXgoJHNldHRpbmcsICctJykgb3Igc3RyLWluZGV4KCRzZXR0aW5nLCAnXycpKSBhbmQgc3RyLWluZGV4KCRzZXR0aW5nLCAnICcpID09IG51bGwgewogICAgQHdhcm4gIldvcmRzIGluIEJyZWFrcG9pbnQgc2V0dGluZ3Mgc2hvdWxkIGJlIHNlcGFyYXRlZCBieSBzcGFjZXMsIG5vdCBkYXNoZXMgb3IgdW5kZXJzY29yZXMuIFBsZWFzZSByZXBsYWNlIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMgYmV0d2VlbiB3b3JkcyB3aXRoIHNwYWNlcy4gU2V0dGluZ3Mgd2lsbCBub3Qgd29yayBhcyBleHBlY3RlZCB1bnRpbCBjaGFuZ2VkLiI7CiAgfQogICRicmVha3BvaW50OiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnQsICgkc2V0dGluZzogJHZhbHVlKSkgIWdsb2JhbDsKICBAcmV0dXJuIHRydWU7Cn0KCkBtaXhpbiBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKSB7CiAgJGJyZWFrcG9pbnQtY2hhbmdlOiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKTsKfQoKQG1peGluIGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHsKICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTsKfQoKQG1peGluIGJrcHQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHsKICBAaW5jbHVkZSBicmVha3BvaW50LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKTsKfQpAbWl4aW4gYmtwdC1zZXQoJHNldHRpbmcsICR2YWx1ZSkgewogIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gUmVtb3ZlIFNldHRpbmcKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCkBmdW5jdGlvbiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncy4uLikgewogIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAxIHsKICAgICRzZXR0aW5nczogbnRoKCRzZXR0aW5ncywgMSk7CiAgfQoKICBAZWFjaCAkc2V0dGluZyBpbiAkc2V0dGluZ3MgewogICAgJGJyZWFrcG9pbnQ6IG1hcC1yZW1vdmUoJGJyZWFrcG9pbnQsICRzZXR0aW5nKSAhZ2xvYmFsOwogIH0KICBAcmV0dXJuIHRydWU7Cn0KCkBtaXhpbiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncy4uLikgewogICRicmVha3BvaW50LXJlc2V0OiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncyk7Cn0KCkBtaXhpbiBia3B0LXJlc2V0KCRzZXR0aW5ncy4uLikgewogICRicmVha3BvaW50LXJlc2V0OiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncyk7Cn0GOwlUOw5pBjsPbzsQCTsRbzsSBzsOaQY7E2kGOxRvOxIHOw5pBjsTaQY7FUAPOxZAEDskVA==