У стратегического союзника США штурмуют парламент. Детали в телеграм Конта

Экс-лидер «Родины» лишится поста в Госдуме на фоне суда с военкором

13 854
<img src="data:text/html;base64,PCFET0NUWVBFIGh0bWw+CjwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwMzkpaHR0cHM6Ly9uZXdzLm1haWwucnUvcG9saXRpY3MvNjExNjU0OTUvIC0tPgo8aHRtbCBsYW5nPSJydSI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjxzdHlsZT4KICAgICAgLkxheW91dC1vdXRlci0wLTEtNSB7CiAgICAgICAgd2lkdGg6IDk1NXB4OwogICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgfQogICAgICAucGxfbyB7CiAgICAgICAgZmxleDogMCAwIDYzMHB4OwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgfQogICAgPC9zdHlsZT4KICAgICAgICAgICAgICAKICAgICAgICA8IS0tIHN0YXJ0OiAvcmIvNjIwNTMzP19TSVRFSUQ9MjkgLS0+CiAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1TZWN1cml0eS1Qb2xpY3kiIGNvbnRlbnQ9ImRlZmF1bHQtc3JjICYjMzk7c2VsZiYjMzk7IHRlbDogYmxvYjogZGF0YTogJiMzOTt1bnNhZmUtaW5saW5lJiMzOTsgJiMzOTt1bnNhZmUtZXZhbCYjMzk7IG1haWwucnUgKi5tYWlsLnJ1ICouZGV2bWFpbC5ydSAqLmltZ3NtYWlsLnJ1ICouMmdpcy5jb20gKi4yZ2lzLnJ1IHMwLjJtZG4ubmV0ICouYWRsb294dHJhY2tpbmcuY29tICouYWRsb294dHJhY2tpbmcucnUgKi5hZHJpdmVyLnJ1ICouYW1wcHJvamVjdC5uZXQgKi5hbXBwcm9qZWN0Lm9yZyAqLmFwZXN0ZXIuY29tICouY2xvdWRmcm9udC5uZXQgd3d3LmRhaWx5bWFpbC5jby51ayBjb3ViLmNvbSAqLmNvdWIuY29tICouZG91YmxlY2xpY2submV0ICouZG91YmxldmVyaWZ5LmNvbSAqLmdlbWl1cy5wbCBnaXBoeS5jb20gKi5nb29nbGUuY29tICouZ29vZ2xlYXBpcy5jb20gKi5nb29nbGVzeW5kaWNhdGlvbi5jb20gdGhlbWVzLmdvb2dsZXVzZXJjb250ZW50LmNvbSAqLmdzdGF0aWMuY29tIHZpZGVvLmtobC5ydSAqLm1vYXRhZHMuY29tICoubXJhZHgubmV0IG9rLnJ1ICoub2sucnUgKi5wbGF5YnV6ei5jb20gKi5xbWVyY2UuY29tIHJ1dHViZS5ydSAqLnJ1dHViZS5ydSAqLnNlcnZpbmctc3lzLmNvbSAqLnNlcnZpbmctc3lzLnJ1IHNvdW5kY2xvdWQuY29tICouc291bmRjbG91ZC5jb20gKi5zdHJlYW1yYWlsLmNvbSAqLnR3aW1nLmNvbSB0d2l0dGVyLmNvbSAqLnR3aXR0ZXIuY29tIHBsYXllci52aW1lby5jb20gdmluZS5jbyB2ay5jb20gKi52ay5jb20gKi53ZWJvcmFtYS5mciAqLndlYm9yYW1hLXRlY2gucnUgKi55YW5kZXgucnUgYW1jLnlhbmRleC5ydSB5YW5kZXgucnUgKi55YW5kZXgubmV0ICoueWFuZGV4Lm5ldCAqLnN0cm0ueWFuZGV4Lm5ldCB5YW5kZXguc3QgeWFuZGV4YWRleGNoYW5nZS5uZXQgKi55YW5kZXhhZGV4Y2hhbmdlLm5ldCB5YXN0YXRpYy5uZXQgKi55b3V0dWJlLmNvbSAqLmFkc2FmZXByb3RlY3RlZC5jb20gKi5uZXdzdHViZS5ydSAqLmJiYy5jb20gKi52aXFlby50diBmYWNlY2FzdC5uZXQgKi5mYWNlY2FzdC5uZXQgKi5uYXRpdmVyb2xsLnR2ICouc2VlZHIuY29tICouZXguY28gYi5kZWxpdmVyeS5jb25zZW50bWFuYWdlci5uZXQgY2RuLmNvbnNlbnRtYW5hZ2VyLm5ldCBjb25zZW50bWFuYWdlci5tZ3IuY29uc2Vuc3Uub3JnICouY29uc2VudG1hbmFnZXIubWdyLmNvbnNlbnN1Lm9yZyAqLmNyaXRlby5jb20gKi5jcml0ZW8ubmV0ICoudGlrdG9rLmNvbSAqLnRpa3Rva2Nkbi5jb20gcHJvbW90b29scy5jYyB0ZWxlZ3JhbS5vcmcgdC5tZSAqLnBpbnRlcmVzdC5jb20gdmlkZW9saW5rLm15Y2RuLm1lICouYmJjLmNvbSBiYmMtbWFwcy5jYXJ0by5jb20gd3RyZmFsbC5jb20gKi4xdHYucnUgY29ycG1haWwuZmx1aWRzdXJ2ZXlzLmNvbSAqLm5ld3N0dWJlLnJ1ICoubmhsLmNvbSAqLmtuaWdodGxhYi5jb20gaW1ndXIuY29tICoudHJhZGluZ3ZpZXcuY29tICoudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbSBwYXltYXN0ZXIucnUgc2lsYXR2LnJ1ICouc2lsYXR2LnJ1IGNkbi5lbWJlZGx5LmNvbSBwbGF5ZXIudmd0cmsuY29tIHNwb3J0bWFpbC5ydSAqLnNwb3J0bWFpbC5ydSBwaXRlci50diAqLmJvbnVzLXR2LnJ1IHVtYS5tZWRpYSBsZWFybmluZ2FwcHMub3JnICouaG90amFyLmNvbSBvcHJvc3NvLm5ldCAqLnRlbGUtc3BvcnQucnUgd2ViLmljcS5jb20gaWNxLmNvbTtzY3JpcHQtc3JjICYjMzk7c2VsZiYjMzk7ICYjMzk7dW5zYWZlLWlubGluZSYjMzk7ICYjMzk7dW5zYWZlLWV2YWwmIzM5OyBqcy1pbmplY3QgKi5tYWlsLnJ1ICouZGV2bWFpbC5ydSAqLmltZ3NtYWlsLnJ1ICouYXBpLjJnaXMucnUgczAuMm1kbi5uZXQgKi5hZGxvb3h0cmFja2luZy5jb20gKi5hZGxvb3h0cmFja2luZy5ydSAqLmFsZ292aWQuY29tIHMzLmFtYXpvbmF3cy5jb20gY2RuLmFtcHByb2plY3Qub3JnICouYXBlc3Rlci5jb20gKi5iaW5nLmNvbSBzdGF0aWMuYmJjLmNvLnVrIG5ld3MuZmlsZXMuYmJjaS5jby51ayBjb3ViLmNvbSAqLmNvdWIuY29tICouY3JpdGVvLmNvbSAqLmNyaXRlby5uZXQgKi5kb3VibGVjbGljay5uZXQgKi5kb3VibGV2ZXJpZnkuY29tICouZHZ0cHMuY29tICouZmxpY2tyLmNvbSB0cmFuc2xhdGUuZ29vZ2xlLmNvbSAqLmdvb2dsZS5jb20gKi5nb29nbGVhZHNlcnZpY2VzLmNvbSAqLmdvb2dsZWFwaXMuY29tICouZ29vZ2xlc3luZGljYXRpb24uY29tICouZ29vZ2xldGFnbWFuYWdlci5jb20gKi5nb29nbGV0YWdzZXJ2aWNlcy5jb20gKi5nb29nbGUtYW5hbHl0aWNzLmNvbSAqLmdvb2dsZS5ydSBtZWRpYXRvZGF5LnJ1ICoubW9hdGFkcy5jb20gKi5tcmFkeC5uZXQgKi5teHBubC5jb20gKi5vZG5va2xhc3NuaWtpLnJ1IG9rLnJ1ICoub2sucnUgKi5wbGF5YnV6ei5jb20gKi5xbWVyY2UuY29tIHNiLnNjb3JlY2FyZHJlc2VhcmNoLmNvbSAqLnR3aW1nLmNvbSAqLnR3aXR0ZXIuY29tIHBsYXRmb3JtLnZpbmUuY28gdmsuY29tICoudmsuY29tICoud2Vidmlzb3IuY29tICoubXRwcm94eS55YW5kZXgubmV0IGFtYy55YW5kZXgucnUgKi55YW5kZXgubmV0ICouc3RybS55YW5kZXgubmV0ICoueWFuZGV4LnJ1IHlhbmRleC5ydSB5YW5kZXguc3QgeWFzdGF0aWMubmV0ICoucGludGVyZXN0LmNvbSAqLmFkc2FmZXByb3RlY3RlZC5jb20gKi5zZXJ2aW5nLXN5cy5jb20gKi5zZXJ2aW5nLXN5cy5ydSAqLnZpcWVvLnR2ICoudmlkZW9ub3cucnUgKi5uYXRpdmVyb2xsLnR2ICouc2VlZHIuY29tIGIuZGVsaXZlcnkuY29uc2VudG1hbmFnZXIubmV0IGNkbi5jb25zZW50bWFuYWdlci5uZXQgKi5jb25zZW50bWFuYWdlci5tZ3IuY29uc2Vuc3Uub3JnIGNvbnNlbnRtYW5hZ2VyLm1nci5jb25zZW5zdS5vcmcgKi50bnMtY291bnRlci5ydSAqLnlvdXR1YmUuY29tICoueXRpbWcuY29tICouZXguY28gKi53ZWJvcmFtYS5mciAqLndlYm9yYW1hLXRlY2gucnUgKi50aWt0b2suY29tICoudGlrdG9rY2RuLmNvbSBwcm9tb3Rvb2xzLmNjICouaWJ5dGVkdG9zLmNvbSB0ZWxlZ3JhbS5vcmcgdmlkZW9saW5rLm15Y2RuLm1lIG1jLnlhbmRleC5jb20gKi5iZXR3ZWVuZGlnaXRhbC5jb20gbmV3cy5maWxlcy5iYmNpLmNvLnVrIGFwaXMuZ29vZ2xlLmNvbSB3dHJmYWxsLmNvbSAqLmNsb3VkZnJvbnQubmV0ICouaW1ndXIuY29tICoudHJhZGluZ3ZpZXcuY29tICoudHJhZGluZ3ZpZXctd2lkZ2V0LmNvbSBteXRvcGYuY29tICoucmVkZGl0bWVkaWEuY29tIGNkbi5lbWJlZGx5LmNvbSBzcG9ydG1haWwucnUgKi5zcG9ydG1haWwucnUgKi5ob3RqYXIuY29tICouY2xvdWRmbGFyZS5jb20gKi5oaWdoY2hhcnRzLmNvbSBpbS5rb21tZXJzYW50LnJ1IHRucy1jb3VudGVyLnJ1O2Nvbm5lY3Qtc3JjICYjMzk7c2VsZiYjMzk7IHdzczovLyoubWFpbC5ydSB3c3M6Ly8qLmRldm1haWwucnUgd3NzOi8vKi52aXFlby50diAqLm1haWwucnUgKi5kZXZtYWlsLnJ1ICouaW1nc21haWwucnUgKi5hcGkuMmdpcy5ydSBzMC4ybWRuLm5ldCAqLmFkbG9veHRyYWNraW5nLmNvbSAqLmFkbG9veHRyYWNraW5nLnJ1ICouYWxnb3ZpZC5jb20gKi5hbXBwcm9qZWN0Lm5ldCBjZG4uYW1wcHJvamVjdC5vcmcgKi5hcGVzdGVyLmNvbSAqLmRvdWJsZWNsaWNrLm5ldCAqLmZsaWNrci5jb20gKi5nb29nbGVhcGlzLmNvbSAqLmdvb2dsZS1hbmFseXRpY3MuY29tICouZ29vZ2xlc3luZGljYXRpb24uY29tICouZ29vZ2xldGFnbWFuYWdlci5jb20gKi5nc3RhdGljLmNvbSAqLm1peHBhbmVsLmNvbSAqLm1yYWR4Lm5ldCAqLnBsYXlidXp6LmNvbSAqLnFtZXJjZS5jb20gZ2VvLnF1ZXJ5LnlhaG9vLmNvbSB0d2l0dGVyLmNvbSAqLnR3aXR0ZXIuY29tICoueWFkcm8ucnUgYW1jLnlhbmRleC5ydSB5YW5kZXgucnUgKi55YW5kZXgucnUgKi5zdHJtLnlhbmRleC5uZXQgeWFuZGV4LnN0IHlhc3RhdGljLm5ldCAqLnlhbmRleC5uZXQgY29sbGVjdG9yLm1lZGlhdG9yLm1lZGlhICouc2VydmluZy1zeXMuY29tICouc2VydmluZy1zeXMucnUgKi5kb3VibGV2ZXJpZnkuY29tICoudmlxZW8udHYgKi52aWRlb25vdy5ydSAqLnZpZGlvbS5uZXQgKi5uYXRpdmVyb2xsLnR2ICouc2VlZHIuY29tIGIuZGVsaXZlcnkuY29uc2VudG1hbmFnZXIubmV0IGNkbi5jb25zZW50bWFuYWdlci5uZXQgKi5jb25zZW50bWFuYWdlci5tZ3IuY29uc2Vuc3Uub3JnIGNvbnNlbnRtYW5hZ2VyLm1nci5jb25zZW5zdS5vcmcgKi5jcml0ZW8uY29tICouY3JpdGVvLm5ldCAqLmV4LmNvICouaWJ5dGVkdG9zLmNvbSAqLnNtYWlscnUubmV0ICouYWRmb3gucnUgKi53ZWJvcmFtYS5mciAqLndlYm9yYW1hLXRlY2gucnUgb2sucnUgdmsuY29tICoudmsuY29tICoudmsudGVhbSB2aWRlb2xpbmsubXljZG4ubWUgKi5nb29nbGUuY29tIG1jLnlhbmRleC5jb20gd3RyZmFsbC5jb20gKi5tZWRpYXRvci5tZWRpYSBteXRvcGYuY29tICoucmVkZGl0LmNvbSB3c3M6Ly9zcG9ydG1haWwucnUgd3NzOi8vKi5zcG9ydG1haWwucnUgc3BvcnRtYWlsLnJ1ICouc3BvcnRtYWlsLnJ1ICoubWFwcy5tZSB3c3M6Ly8qLmhvdGphci5jb20gKi5ob3RqYXIuY29tICouaG90amFyLmlvICoub3BlbnN0cmVldG1hcC5vcmcgdG5zLWNvdW50ZXIucnU7aW1nLXNyYyAmIzM5O3NlbGYmIzM5OyAqIGRhdGE6IGJsb2I6IG1tcjogKi5jcml0ZW8uY29tICouY3JpdGVvLm5ldCA7d29ya2VyLXNyYyBibG9iOiAmIzM5O3NlbGYmIzM5OyAqLm1haWwucnUgKi5kZXZtYWlsLnJ1IHNwb3J0bWFpbC5ydSAqLnNwb3J0bWFpbC5ydTsiPjxtZXRhIG5hbWU9InJlZmVycmVyIiBjb250ZW50PSJ1bnNhZmUtdXJsIj48bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vbWNkbi5pbWdzbWFpbC5ydS8iIGNyb3Nzb3JpZ2luPSIiPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9tY2RuLmltZ3NtYWlsLnJ1LyI+PGxpbmsgcmVsPSJkbnMtcHJlZmV0Y2giIGhyZWY9Imh0dHBzOi8vbWNkbi5pbWdzbWFpbC5ydS8iPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9hZC5tYWlsLnJ1LyIgY3Jvc3NvcmlnaW49InVzZS1jcmVkZW50aWFscyI+PGxpbmsgcmVsPSJkbnMtcHJlZmV0Y2giIGhyZWY9Imh0dHBzOi8vYWQubWFpbC5ydS8iPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9yZXNpemVyLm1haWwucnUvIj48bGluayByZWw9ImRucy1wcmVmZXRjaCIgaHJlZj0iaHR0cHM6Ly9yZXNpemVyLm1haWwucnUvIj48bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vcnMubWFpbC5ydS8iPjxsaW5rIHJlbD0iZG5zLXByZWZldGNoIiBocmVmPSJodHRwczovL3JzLm1haWwucnUvIj48bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vci5tcmFkeC5uZXQvIj48bGluayByZWw9ImRucy1wcmVmZXRjaCIgaHJlZj0iaHR0cHM6Ly9yLm1yYWR4Lm5ldC8iPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9tYy55YW5kZXgucnUvIj48bGluayByZWw9ImRucy1wcmVmZXRjaCIgaHJlZj0iaHR0cHM6Ly9tYy55YW5kZXgucnUvIj48bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8veWFzdGF0aWMubmV0LyI+PGxpbmsgcmVsPSJkbnMtcHJlZmV0Y2giIGhyZWY9Imh0dHBzOi8veWFzdGF0aWMubmV0LyI+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2F2YXRhcnMubWRzLnlhbmRleC5uZXQvIj48bGluayByZWw9ImRucy1wcmVmZXRjaCIgaHJlZj0iaHR0cHM6Ly9hdmF0YXJzLm1kcy55YW5kZXgubmV0LyI+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2Fkcy5hZGZveC5ydS8iPjxsaW5rIHJlbD0iZG5zLXByZWZldGNoIiBocmVmPSJodHRwczovL2Fkcy5hZGZveC5ydS8iPjxsaW5rIHJlbD0iZG5zLXByZWZldGNoIiBocmVmPSJodHRwczovL2xpbWcuaW1nc21haWwucnUvIj48bGluayByZWw9ImRucy1wcmVmZXRjaCIgaHJlZj0iaHR0cHM6Ly90b3AtZnd6MS5tYWlsLnJ1LyI+PGxpbmsgcmVsPSJkbnMtcHJlZmV0Y2giIGhyZWY9Imh0dHBzOi8vd3d3LnRucy1jb3VudGVyLnJ1LyI+PGxpbmsgcmVsPSJkbnMtcHJlZmV0Y2giIGhyZWY9Imh0dHBzOi8vY291bnRlci55YWRyby5ydS8iPgogICAgICAgIDwhLS0gZW5kOiAvcmIvNjIwNTMzIC0tPgogICAgICAKCiAgICAgICAgICAgICAgPGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy9jbGllbnQuY3NzIiBhcz0ic3R5bGUiPgogICAgICAgICAgICAgIAogIDxtZXRhIGh0dHAtZXF1aXY9IngtdWEtY29tcGF0aWJsZSIgY29udGVudD0iaWU9ZWRnZSxjaHJvbWU9MSI+CiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KICA8dGl0bGU+0K3QutGBLdC70LjQtNC10YAgwqvQoNC+0LTQuNC90YvCuyDQu9C40YjQuNGC0YHRjyDQv9C+0YHRgtCwINCyINCT0L7RgdC00YPQvNC1INC90LAg0YTQvtC90LUg0YHRg9C00LAg0YEg0LLQvtC10L3QutC+0YDQvtC8IC0g0J3QvtCy0L7RgdGC0LggTWFpbC5ydTwvdGl0bGU+CiAgICA8bWV0YSBjb250ZW50PSLQrdC60YEt0LvQuNC00LXRgCDCq9Cg0L7QtNC40L3Ri8K7INC70LjRiNC40YLRgdGPINC/0L7RgdGC0LAg0LIg0JPQvtGB0LTRg9C80LUg0L3QsCDRhNC+0L3QtSDRgdGD0LTQsCDRgSDQstC+0LXQvdC60L7RgNC+0LwiIHByb3BlcnR5PSJvZzp0aXRsZSI+CjxtZXRhIGNvbnRlbnQ9ItCt0LrRgS3Qu9C40LTQtdGAIMKr0KDQvtC00LjQvdGLwrsg0LvQuNGI0LjRgtGB0Y8g0L/QvtGB0YLQsCDQsiDQk9C+0YHQtNGD0LzQtSDQvdCwINGE0L7QvdC1INGB0YPQtNCwINGBINCy0L7QtdC90LrQvtGA0L7QvCIgcHJvcGVydHk9InR3aXR0ZXI6dGl0bGUiPgo8bWV0YSBjb250ZW50PSLQn9C10YDQstGL0Lkg0LfQsNC80LPQu9Cw0LLRiyDRhNGA0LDQutGG0LjQuCDRgdC/0YDQsNCy0L7RgNC+0YHRgdC+0LIg0LIg0JPQvtGB0LTRg9C80LUg0JPQtdC90L3QsNC00LjQuSDQodC10LzQuNCz0LjQvSDRgdC90Y/RgiDRgSDQv9C+0YHRgtCwINC/0YDQtdC00YHQtdC00LDRgtC10LvRjyDQtNGD0LzRgdC60L7Qs9C+INC60L7QvNC40YLQtdGC0LAg0L/QviDQtNC10LvQsNC8INC90LDRhtC40L7QvdCw0LvRjNC90L7RgdGC0LXQuS4g0J7QvSDRgNCw0L3QtdC1INC/0L7QtNCw0Lsg0LjRgdC6INC6INCy0L7QtdC90LrQvtGA0YMg0KLQvtC/0LDQt9GDINC+INC30LDRidC40YLQtSDRh9C10YHRgtC4INC4INC00L7RgdGC0L7QuNC90YHRgtCy0LAg0L3QsCA2INC80LvQvSDRgNGD0LEuIiBuYW1lPSJkZXNjcmlwdGlvbiI+CjxtZXRhIGNvbnRlbnQ9ItCf0LXRgNCy0YvQuSDQt9Cw0LzQs9C70LDQstGLINGE0YDQsNC60YbQuNC4INGB0L/RgNCw0LLQvtGA0L7RgdGB0L7QsiDQsiDQk9C+0YHQtNGD0LzQtSDQk9C10L3QvdCw0LTQuNC5INCh0LXQvNC40LPQuNC9INGB0L3Rj9GCINGBINC/0L7RgdGC0LAg0L/RgNC10LTRgdC10LTQsNGC0LXQu9GPINC00YPQvNGB0LrQvtCz0L4g0LrQvtC80LjRgtC10YLQsCDQv9C+INC00LXQu9Cw0Lwg0L3QsNGG0LjQvtC90LDQu9GM0L3QvtGB0YLQtdC5LiDQntC9INGA0LDQvdC10LUg0L/QvtC00LDQuyDQuNGB0Log0Log0LLQvtC10L3QutC+0YDRgyDQotC+0L/QsNC30YMg0L4g0LfQsNGJ0LjRgtC1INGH0LXRgdGC0Lgg0Lgg0LTQvtGB0YLQvtC40L3RgdGC0LLQsCDQvdCwIDYg0LzQu9C9INGA0YPQsS4iIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiI+CjxtZXRhIGNvbnRlbnQ9ImFydGljbGUiIHByb3BlcnR5PSJvZzp0eXBlIj4KPG1ldGEgY29udGVudD0iaHR0cHM6Ly9yZXNpemVyLm1haWwucnUvcC80MmE0M2IzMC1lMmFhLTVmNDQtYTQ1YS1lZTZhZjE0NjI4MjIvb3A6NDAvbG9nbzpib3R0b206bmV3cy5wbmcvb3Q6MEszUXV0R0JMZEM3MExqUXROQzEwWUFnd3F2UW9OQy0wTFRRdU5DOTBZdkN1eURRdTlDNDBZalF1TkdDMFlIUmp5RFF2OUMtMFlIUmd0Q3dJTkN5SU5DVDBMN1JnZEMwMFlQUXZOQzFJTkM5MExBZzBZVFF2dEM5MExVZzBZSFJnOUMwMExBZzBZRWcwTExRdnRDMTBMM1F1dEMtMFlEUXZ0QzgvQVFBR2NjS0NtY05rSlpELURtUmhrUVdBYkhhZWc0M0NQVzF4N25mRDdDYmdxQTdQSURYcXVpN25OeFJoX2RlN0ZIWUw0b04wRUV3d1YyWUYxWUhfZ1N3dUh5Zy5wbmciIHByb3BlcnR5PSJvZzppbWFnZSI+CjxtZXRhIGNvbnRlbnQ9IjQwMyIgcHJvcGVydHk9Im9nOmltYWdlOmhlaWdodCI+CjxtZXRhIGNvbnRlbnQ9Ijc2OCIgcHJvcGVydHk9Im9nOmltYWdlOndpZHRoIj4KPG1ldGEgY29udGVudD0iaHR0cHM6Ly9uZXdzLm1haWwucnUvcG9saXRpY3MvNjExNjU0OTUvIiBwcm9wZXJ0eT0ib2c6dXJsIj4KPG1ldGEgY29udGVudD0i0J3QvtCy0L7RgdGC0LggTWFpbC5ydSIgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSI+CjxtZXRhIGNvbnRlbnQ9Im5vaW5kZXgsIGZvbGxvdyIgbmFtZT0icm9ib3RzIj4KPG1ldGEgY29udGVudD0i0JHQtdGA0LXQt9C+0LLRgdC60LjQuSDQodC10YDQs9C10LkiIG5hbWU9ImF1dGhvciI+CjxtZXRhIGNvbnRlbnQ9ItCR0LXRgNC10LfQvtCy0YHQutC40Lkg0KHQtdGA0LPQtdC5IiBwcm9wZXJ0eT0iYXV0aG9yIj4KPG1ldGEgY29udGVudD0iMjAyNC0wNS0yMVQxNTo0OTozOCswMzAwIiBwcm9wZXJ0eT0iYXJ0aWNsZTpwdWJsaXNoZWRfdGltZSI+CjxtZXRhIGNvbnRlbnQ9Im1heC1zbmlwcGV0Oi0xLCBtYXgtaW1hZ2UtcHJldmlldzpsYXJnZSwgbWF4LXZpZGVvLXByZXZpZXc6LTEiIG5hbWU9InJvYm90cyI+CjxtZXRhIGNvbnRlbnQ9ItCh0LXRgNCz0LXQuSDQkSAxOTUiIHByb3BlcnR5PSJtYXJrZXI6YXV0aG9yIj4KPG1ldGEgY29udGVudD0i0KDQkdCaIiBwcm9wZXJ0eT0ibWFya2VyOnNvdXJjZSI+CjxtZXRhIGNvbnRlbnQ9ItCT0LXQvdC90LDQtNC40Lkg0KHQtdC80LjQs9C40L0g0YDQsNC90LXQtSDQv9C+0LTQsNC7INC40YHQuiDQuiDQstC+0LXQvdC60L7RgNGDINCi0L7Qv9Cw0LfRgyDQviDQt9Cw0YnQuNGC0LUg0YfQtdGB0YLQuCDQuCDQtNC+0YHRgtC+0LjQvdGB0YLQstCwINC90LAgNiDQvNC70L0g0YDRg9CxIiBwcm9wZXJ0eT0id2lkZ2V0OmRlc2NyaXB0aW9uIj4KPG1ldGEgY29udGVudD0i0K3QutGBLdC70LjQtNC10YAgwqvQoNC+0LTQuNC90YvCuyDQu9C40YjQuNGC0YHRjyDQv9C+0YHRgtCwINCyINCT0L7RgdC00YPQvNC1INC90LAg0YTQvtC90LUg0YHRg9C00LAg0YEg0LLQvtC10L3QutC+0YDQvtC8IiBwcm9wZXJ0eT0ieWFuZGV4X3JlY29tbWVuZGF0aW9uc190aXRsZSI+CjxtZXRhIGNvbnRlbnQ9Imh0dHBzOi8vcmVzaXplci5tYWlsLnJ1L3AvNDJhNDNiMzAtZTJhYS01ZjQ0LWE0NWEtZWU2YWYxNDYyODIyL0FRQUdpNWprc3A4M215M2tEMDdTM2ttNExlb3F2Ym5lUXZRUlJjUnpERTc4WTVwT1dPTVlyaXgzVTIySkROTWFVbVVKWm1BcDh3d1BjV3dDTGRCQ1VsYjUwV00ud2VicCIgcHJvcGVydHk9InlhbmRleF9yZWNvbW1lbmRhdGlvbnNfaW1hZ2UiPgo8bWV0YSBjb250ZW50PSLQn9C+0LvQuNGC0LjQutCwOiDQkiDQoNC+0YHRgdC40LgiIHByb3BlcnR5PSJ5YW5kZXhfcmVjb21tZW5kYXRpb25zX2NhdGVnb3J5Ij4KICAgIDxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9wb2xpdGljcy82MTE2NTQ5NS8iPgogICAgCiAgICAKCiAgICA8bWV0YSBuYW1lPSJjc3JmLXRva2VuIiBjb250ZW50PSJPU0k2Ulo3ZlRHWUFBQUFBIj4KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL2NvbnRleHQuanMu0JHQtdC3INC90LDQt9Cy0LDQvdC40Y8iIGFzeW5jPSIiPjwvc2NyaXB0PjxzY3JpcHQgaWQ9InRvcG1haWxydS1jb2RlIiBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL2NvZGUuanMu0JHQtdC3INC90LDQt9Cy0LDQvdC40Y8iPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBhc3luYz0iIiBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL2NvZGUuanMu0JHQtdC3INC90LDQt9Cy0LDQvdC40Y8iPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBhc3luYz0iIiBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL2NvZGUuanMu0JHQtdC3INC90LDQt9Cy0LDQvdC40Y8iPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBhc3luYz0iIiBpZD0idG1yLWNvZGUiIHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvY29kZS5qcy7QkdC10Lcg0L3QsNC30LLQsNC90LjRjyI+PC9zY3JpcHQ+PHNjcmlwdCBhc3luYz0iIiBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL2NvdW50ZXIuanMu0JHQtdC3INC90LDQt9Cy0LDQvdC40Y8iPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+eyJjcmVhdG9yIjp7ImpvYlRpdGxlIjoi0KDQtdC00LDQutGC0L7RgCIsIm5hbWUiOiLQodC10YDQs9C10Lkg0JHQtdGA0LXQt9C+0LLRgdC60LjQuSIsImltYWdlIjoiaHR0cHM6Ly9uZXdzLm1haWwucnUvaW1nL2xvZ28vbmV3cy9hcHBsZS10b3VjaC1pY29uLnBuZyIsIkB0eXBlIjoiUGVyc29uIn0sImRhdGVNb2RpZmllZCI6IjIwMjQtMDUtMjFUMTk6MzI6NTIrMDM6MDAiLCJhdXRob3IiOnsiam9iVGl0bGUiOiLQoNC10LTQsNC60YLQvtGAIiwibmFtZSI6ItCh0LXRgNCz0LXQuSDQkdC10YDQtdC30L7QstGB0LrQuNC5IiwiaW1hZ2UiOiJodHRwczovL25ld3MubWFpbC5ydS9pbWcvbG9nby9uZXdzL2FwcGxlLXRvdWNoLWljb24ucG5nIiwiQHR5cGUiOiJQZXJzb24ifSwibWFpbkVudGl0eU9mUGFnZSI6eyJAaWQiOiJodHRwczovL25ld3MubWFpbC5ydS9wb2xpdGljcy82MTE2NTQ5NS8iLCJAdHlwZSI6IldlYlBhZ2UifSwiZWRpdG9yIjp7ImpvYlRpdGxlIjoi0KDQtdC00LDQutGC0L7RgCIsIm5hbWUiOiLQodC10YDQs9C10Lkg0JHQtdGA0LXQt9C+0LLRgdC60LjQuSIsImltYWdlIjoiaHR0cHM6Ly9uZXdzLm1haWwucnUvaW1nL2xvZ28vbmV3cy9hcHBsZS10b3VjaC1pY29uLnBuZyIsIkB0eXBlIjoiUGVyc29uIn0sInVybCI6Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L3BvbGl0aWNzLzYxMTY1NDk1LyIsInB1Ymxpc2hlciI6eyJsZWdhbE5hbWUiOiLQntCe0J4g0JLQmiIsInRlbGVwaG9uZSI6Iis3NDk1NzI1NjM1NyIsIm5hbWUiOiLQndC+0LLQvtGB0YLQuCBNYWlsLnJ1IiwiYWdncmVnYXRlUmF0aW5nIjp7InJhdGluZ1ZhbHVlIjoiNC45MyIsInJhdGluZ0NvdW50IjoxNDQyNywid29yc3RSYXRpbmciOjEsImJlc3RSYXRpbmciOjUsIkB0eXBlIjoiQWdncmVnYXRlUmF0aW5nIn0sImltYWdlIjp7IndpZHRoIjoiMTgwIiwidXJsIjoiaHR0cHM6Ly9uZXdzLm1haWwucnUvaW1nL2xvZ28vbmV3cy9hcHBsZS10b3VjaC1pY29uLnBuZyIsImhlaWdodCI6IjE4MCIsIkB0eXBlIjoiSW1hZ2VPYmplY3QifSwibG9nbyI6eyJ3aWR0aCI6IjE4MCIsInVybCI6Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L2ltZy9sb2dvL25ld3MvYXBwbGUtdG91Y2gtaWNvbi5wbmciLCJoZWlnaHQiOiIxODAiLCJAdHlwZSI6IkltYWdlT2JqZWN0In0sImVtYWlsIjoibmV3c0Bjb3JwLm1haWwucnUiLCJ1cmwiOiJodHRwczovL25ld3MubWFpbC5ydS8iLCJhZGRyZXNzIjp7InN0cmVldEFkZHJlc3MiOiLQm9C10L3QuNC90LPRgNCw0LTRgdC60LjQuSDQv9GA0L7RgdC/0LXQutGCIDM5LCDRgdGC0YAuIDc5IiwiYWRkcmVzc0NvdW50cnkiOnsibmFtZSI6ItCg0L7RgdGB0LjRjyIsIkB0eXBlIjoiQ291bnRyeSJ9LCJhZGRyZXNzTG9jYWxpdHkiOiLQnNC+0YHQutCy0LAiLCJwb3N0YWxDb2RlIjoiMTI1MTY3IiwiYWRkcmVzc1JlZ2lvbiI6ItCc0L7RgdC60LLQsCIsIkB0eXBlIjoiUG9zdGFsQWRkcmVzcyJ9LCJAdHlwZSI6Ik9yZ2FuaXphdGlvbiJ9LCJkYXRlQ3JlYXRlZCI6IjIwMjQtMDUtMjFUMTU6NDk6MzgrMDM6MDAiLCJAdHlwZSI6Ik5ld3NBcnRpY2xlIiwiaW5MYW5ndWFnZSI6InJ1IiwidGh1bWJuYWlsVXJsIjoiaHR0cHM6Ly9yZXNpemVyLm1haWwucnUvcC80MmE0M2IzMC1lMmFhLTVmNDQtYTQ1YS1lZTZhZjE0NjI4MjIvQVFBRzZpQ0dwZ3IwYWdvYmZWVG83NXZydnVlTWVwRjNKVTd6Nk9vS3N1RzBMcXJSdHRrVE9lWndZUVNUZVROR2R2YnpmZ0lWbTY2Z25iejR0WnRLOG0tQXRHTS5wbmciLCJuYW1lIjoi0K3QutGBLdC70LjQtNC10YAgwqvQoNC+0LTQuNC90YvCuyDQu9C40YjQuNGC0YHRjyDQv9C+0YHRgtCwINCyINCT0L7RgdC00YPQvNC1INC90LAg0YTQvtC90LUg0YHRg9C00LAg0YEg0LLQvtC10L3QutC+0YDQvtC8IiwibGljZW5zZSI6Imh0dHBzOi8vaGVscC5tYWlsLnJ1L2xlZ2FsL3Rlcm1zL25ld3MvcG9saWN5IiwiZGVzY3JpcHRpb24iOiLQn9C10YDQstGL0Lkg0LfQsNC80LPQu9Cw0LLRiyDRhNGA0LDQutGG0LjQuCDRgdC/0YDQsNCy0L7RgNC+0YHRgdC+0LIg0LIg0JPQvtGB0LTRg9C80LUg0JPQtdC90L3QsNC00LjQuSDQodC10LzQuNCz0LjQvSDRgdC90Y/RgiDRgSDQv9C+0YHRgtCwINC/0YDQtdC00YHQtdC00LDRgtC10LvRjyDQtNGD0LzRgdC60L7Qs9C+INC60L7QvNC40YLQtdGC0LAg0L/QviDQtNC10LvQsNC8INC90LDRhtC40L7QvdCw0LvRjNC90L7RgdGC0LXQuS4g0J7QvSDRgNCw0L3QtdC1INC/0L7QtNCw0Lsg0LjRgdC6INC6INCy0L7QtdC90LrQvtGA0YMg0KLQvtC/0LDQt9GDINC+INC30LDRidC40YLQtSDRh9C10YHRgtC4INC4INC00L7RgdGC0L7QuNC90YHRgtCy0LAg0L3QsCA2INC80LvQvSDRgNGD0LEuIiwiZ2VucmUiOiLQndC+0LLQvtGB0YLQuCIsImltYWdlIjp7IndpZHRoIjoiNzY4IiwicmVwcmVzZW50YXRpdmVPZlBhZ2UiOiJ0cnVlIiwidXJsIjoiaHR0cHM6Ly9yZXNpemVyLm1haWwucnUvcC80MmE0M2IzMC1lMmFhLTVmNDQtYTQ1YS1lZTZhZjE0NjI4MjIvQVFBR004VzlHRTVtVzBxVU1SOXYxZmhhNjVQdTVyWGRhQk03S1BlN2ZYUHpackV6THByWS1yd0J2YzRFUW1HWG5QTWFkRmdHUm9QMDJ2QmNpNGI2T1ctSWdaNC5wbmciLCJoZWlnaHQiOiI0MzIiLCJAdHlwZSI6IkltYWdlT2JqZWN0In0sImRhdGVQdWJsaXNoZWQiOiIyMDI0LTA1LTIxVDE1OjQ5OjM4KzAzOjAwIiwiYXJ0aWNsZUJvZHkiOiLQpNGA0LDQutGG0LjRjyDCq9Ch0L/RgNCw0LLQtdC00LvQuNCy0L7QuSDQoNC+0YHRgdC40Lgg4oCUINCX0LAg0L/RgNCw0LLQtNGDwrsg0LIg0JPQvtGB0LTRg9C80LUg0YHQvdGP0LvQsCDRgSDQtNC+0LvQttC90L7RgdGC0Lgg0LPQu9Cw0LLRgyDQutC+0LzQuNGC0LXRgtCwINC/0L4g0LTQtdC70LDQvCDQvdCw0YbQuNC+0L3QsNC70YzQvdC+0YHRgtC10Lkg0LTQtdC/0YPRgtCw0YLQsCDQk9C10L3QvdCw0LTQuNGPINCh0LXQvNC40LPQuNC90LAsINCx0YvQstGI0LXQs9C+INC70LjQtNC10YDQsCDQv9Cw0YDRgtC40LggwqvQn9Cw0YLRgNC40L7RgtGLINCg0L7RgdGB0LjQuMK7LCDRgdC+0L7QsdGJ0LjQu9CwINC/0YDQtdGB0YEt0YHQu9GD0LbQsdCwINGB0L/RgNCw0LLQvtGA0L7RgdGB0L7Qsi4g0KHQoNCX0J8g0L/RgNC40L3Rj9C70LAg0YDQtdGI0LXQvdC40LUg0L7RgdCy0L7QsdC+0LTQuNGC0Ywg0JPQtdC90L3QsNC00LjRjyDQodC10LzQuNCz0LjQvdCwINC+0YIg0LTQvtC70LbQvdC+0YHRgtC4INC/0YDQtdC00YHQtdC00LDRgtC10LvRjyDQutC+0LzQuNGC0LXRgtCwINCT0JQg0L/QviDQtNC10LvQsNC8INC90LDRhtC40L7QvdCw0LvRjNC90L7RgdGC0LXQuSDQuCDQstGL0LTQstC40L3Rg9GC0Ywg0L3QsCDQvdC10LUg0K/QvdGDINCb0LDQvdGC0YDQsNGC0L7QstGDLCDQtNC+0LHQsNCy0LjQu9C4INCyINC/0YDQtdGB0YEt0YHQu9GD0LbQsdC1LiDQodC10LzQuNCz0LjQvSDQsiDRhNC10LLRgNCw0LvQtSDQvtCx0YDQsNGC0LjQu9GB0Y8g0LIg0YHRg9C0INGBINC40YHQutC+0Lwg0Log0LHRi9Cy0YjQtdC80YMg0LHQvtC50YbRgyDQs9GA0YPQv9C/0YsgwqvQoNGD0YHQuNGHwrssINCy0L7QtdC90L3QvtC80YMg0LrQvtGA0YDQtdGB0L/QvtC90LTQtdC90YLRgyDQldCy0LPQtdC90LjRjiDQoNCw0YHRgdC60LDQt9C+0LLRgywg0LrQvtGC0L7RgNGL0Lkg0LjQt9Cy0LXRgdGC0LXQvSDQv9C+INC/0L7Qt9GL0LLQvdC+0LzRgyDQotC+0L/QsNC3LCDRgSDRgtGA0LXQsdC+0LLQsNC90LjQtdC8IDYg0LzQu9C9INGA0YPQsS4g0LrQvtC80L/QtdC90YHQsNGG0LjQuCDQt9CwINC+0YHQutC+0YDQsdC70LXQvdC40LUg0YfQtdGB0YLQuCwg0LTQvtGB0YLQvtC40L3RgdGC0LLQsCDQuCDQtNC10LvQvtCy0L7QuSDRgNC10L/Rg9GC0LDRhtC40LguINCSINGB0LXRgNC10LTQuNC90LUg0LDQv9GA0LXQu9GPINC10LzRgyDQv9GA0LjRgdGD0LTQuNC70LggNTAwINGC0YvRgS4g0YDRg9CxLiDQutC+0LzQv9C10L3RgdCw0YbQuNC4LiDQn9GD0LHQu9C40LrQsNGG0LjRjywg0LrQvtGC0L7RgNCw0Y8g0YHRgtCw0LvQsCDQv9C+0LLQvtC00L7QvCDQtNC70Y8g0YHQv9C+0YDQsCDQodC10LzQuNCz0LjQvdCwINC4INCg0LDRgdGB0LrQsNC30L7QstCwLCDQsdGL0LvQsCDRgNCw0LfQvNC10YnQtdC90LAg0L3QsCDRgdCw0LnRgtC1IMKr0J/QsNGC0YDQuNC+0YLQvtCyINCg0L7RgdGB0LjQuMK7LiDQkiDQvdC10Lkg0LPQvtCy0L7RgNC40LvQvtGB0Ywg0LIg0YLQvtC8INGH0LjRgdC70LUg0L4g0YDQvtGB0YHQuNC50YHQutC40YUg0LLQvtC10L3QvdGL0YUsINC60L7RgtC+0YDRi9GFINGP0LrQvtCx0Ysg0L/RgNC40YXQvtC00LjRgtGB0Y8gwqvQt9Cw0LPQvtC90Y/RgtGMINC/0LjQvdC60LDQvNC4INC90LAg0L/QvtC70LUg0LHQvtGPwrsuINCh0LXQvNC40LPQuNC9INC30LDRj9Cy0LjQuywg0YfRgtC+INC30LvQvtGD0LzRi9GI0LvQtdC90L3QuNC60Lgg0LLQt9C70L7QvNCw0LvQuCDRgdCw0LnRgiDQtNCy0LjQttC10L3QuNGPINC4INGA0LDQt9C80LXRgdGC0LjQu9C4INGC0LDQvCDRhNC10LnQutC+0LLRg9GOINC/0YPQsdC70LjQutCw0YbQuNGOINC+0YIg0LjQvNC10L3QuCDQv9GA0LXRgdGBLdGB0LvRg9C20LHRiyDQtNCy0LjQttC10L3QuNGPLiDQntC00L3QsNC60L4g0L3QsCDRjdGC0YMg0L/Rg9Cx0LvQuNC60LDRhtC40Y4g0L7QsdGA0LDRgtC40Lsg0LLQvdC40LzQsNC90LjQtSDQuCDQv9GA0L7RhtC40YLQuNGA0L7QstCw0Lsg0KDQsNGB0YHQutCw0LfQvtCyLiDQmNGB0Log0L7RgiDQodC10LzQuNCz0LjQvdCwINC+0L0g0YHQstGP0LfRi9Cy0LDQuyDRgSDRgtC10LwsINGH0YLQviDQtNC10L/Rg9GC0LDRgiDCq9C+0LHQuNC00LXQu9GB0Y8g0L3QsCDRgtC+LCDRh9GC0L4g0Y8g0L7QsdGA0LDRgtC40Lsg0LLQvdC40LzQsNC90LjQtSDQvtCx0YnQtdGB0YLQstC10L3QvdC+0YHRgtC4INC90LAg0Y3RgtGDINC10LPQviDQv9GD0LHQu9C40LrQsNGG0LjRjsK7LiDQmtC+0LzQvNC10L3RgtC40YDRg9GPINGB0L3Rj9GC0LjQtSDQodC10LzQuNCz0LjQvdCwINC4INC/0YDQtdC00LvQvtC20LXQvdC40LUg0L3QsCDQv9C+0YHRgiDQs9C70LDQstGLINC60L7QvNC40YLQtdGC0LAg0JvQsNC90YLRgNCw0YLQvtCy0L7QuSwg0LIg0L/QsNGA0YLQuNC4IMKr0KHQv9GA0LDQstC10LTQu9C40LLQsNGPINCg0L7RgdGB0LjRjyDigJQg0JfQsCDQv9GA0LDQstC00YPCuyDQv9C+0Y/RgdC90LjQu9C4LCDRh9GC0L4g0Y3RgtC4INGA0LXRiNC10L3QuNGPINC/0YDQuNC90Y/RgtGLIMKr0LIg0YDQsNC80LrQsNGFINC/0LvQsNC90L7QstC+0Lkg0LrQsNC00YDQvtCy0L7QuSDRgNC+0YLQsNGG0LjQuCDQstC+INGE0YDQsNC60YbQuNC4INCh0KDQl9CfwrsuIiwiQGNvbnRleHQiOiJodHRwOi8vc2NoZW1hLm9yZyIsImhlYWRsaW5lIjoi0K3QutGBLdC70LjQtNC10YAgwqvQoNC+0LTQuNC90YvCuyDQu9C40YjQuNGC0YHRjyDQv9C+0YHRgtCwINCyINCT0L7RgdC00YPQvNC1INC90LAg0YTQvtC90LUg0YHRg9C00LAg0YEg0LLQvtC10L3QutC+0YDQvtC8In08L3NjcmlwdD4KICAKCiAgICAgICAgICAgICAgPGxpbmsgcmVsPSJtYW5pZmVzdCIgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvbWFuaWZlc3QuanNvbiI+CiAgICAgICAgICAgICAgICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIHR5cGU9ImltYWdlL3gtaWNvbiIgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvaW1nL2xvZ28vbmV3cy9mYXZpY29uLmljbyI+IDxsaW5rIHJlbD0iaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9pbWcvbG9nby9uZXdzL2Zhdmljb24tMzJ4MzIucG5nIiBzaXplcz0iMzJ4MzIiPiA8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvaW1nL2xvZ28vbmV3cy9mYXZpY29uLTEyMHgxMjAucG5nIiBzaXplcz0iMTIweDEyMCI+IDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvaW1nL2xvZ28vbmV3cy9hcHBsZS10b3VjaC1pY29uLnBuZyIgc2l6ZXM9IjE4MHgxODAiPgogICAgICAgICAgICAgIDxtZXRhIG5hbWU9Im1zYXBwbGljYXRpb24tVGlsZUNvbG9yIiBjb250ZW50PSIjMDA1ZmY5Ij4KICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iIzAwNWZmOSI+CiAgICAgICAgICAgICAgPG1ldGEgbmFtZT0ibXNhcHBsaWNhdGlvbi1jb25maWciIGNvbnRlbnQ9Ii9icm93c2VyY29uZmlnLnhtbCI+CgogICAgICAgICAgICAgIAogICAgICAgIDwhLS0gc3RhcnQ6IC9yYi8xMTA4NjA3P3ZrLXRva2Vucz0xJl9TSVRFSUQ9MjkgLS0+CiAgICAgICAgPGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy9wcm9taXNpZmllZERvbUV2ZW50cy5taW4uanMu0JHQtdC3INC90LDQt9Cy0LDQvdC40Y8iIGFzPSJzY3JpcHQiPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iaHR0cHM6Ly9pbWdzMi5pbWdzbWFpbC5ydS9zdGF0aWMvZm9udHMvTWFpbFNhbnMvV09GRjIvTWFpbFNhbnNWYXJpYXRpdmUud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L3dvZmYyIiBjcm9zc29yaWdpbj0iIj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Imh0dHBzOi8vaW1nczIuaW1nc21haWwucnUvc3RhdGljL2ZvbnRzL0ludGVyL1dPRkYyL0ludGVyUmVndWxhci53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvd29mZjIiIGNyb3Nzb3JpZ2luPSIiPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iaHR0cHM6Ly9pbWdzMi5pbWdzbWFpbC5ydS9zdGF0aWMvZm9udHMvSW50ZXIvV09GRjIvSW50ZXJNZWRpdW0ud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L3dvZmYyIiBjcm9zc29yaWdpbj0iIj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Imh0dHBzOi8vaW1nczIuaW1nc21haWwucnUvc3RhdGljL2ZvbnRzL0ludGVyL1dPRkYyL0ludGVyQm9sZC53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvd29mZjIiIGNyb3Nzb3JpZ2luPSIiPjxsaW5rIHJlbD0ic3R5bGVzaGVldCBwcmVsb2FkIiBocmVmPSJodHRwczovL21jZG4uaW1nc21haWwucnUvZm9udHMvdmstdG9rZW5zLzEuMC4yL2ZvbnRzLmNzcyIgYXM9InN0eWxlIj48c2NyaXB0IHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvcHJvbWlzaWZpZWREb21FdmVudHMubWluLmpzLtCR0LXQtyDQvdCw0LfQstCw0L3QuNGPIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvaW50ZXJzZWN0aW9uLW9ic2VydmVyLm1pbi5qcy7QkdC10Lcg0L3QsNC30LLQsNC90LjRjyI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL3N5bmMtbG9hZGVyLmpzLtCR0LXQtyDQvdCw0LfQstCw0L3QuNGPIiBub25jZT0iIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBhc3luYz0iIj48L3NjcmlwdD4KICAgICAgICA8IS0tIGVuZDogL3JiLzExMDg2MDcgLS0+CiAgICAgIAoKICAgICAgICAgICAgICAKICAgICAgICA8IS0tIHN0YXJ0OiAvcmIvMTA4NDY4MT9fU0lURUlEPTI5JnZlcnNpb249d2ViIC0tPgogICAgICAgIDxzY3JpcHQgaWQ9Il9feHJheV9fIj52YXIgeHJheUNvcmU9ZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7ZnVuY3Rpb24gYShhKXtmb3Iobi5wdXNoKGEpO24ubGVuZ3RoPm8ubWF4U2l6ZTspbi5zaGlmdCgpfWZ1bmN0aW9uIGIoYSl7cmV0dXJuIGI9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhfTpmdW5jdGlvbihhKXtyZXR1cm4gYSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmYS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmYSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGF9LGIoYSl9ZnVuY3Rpb24gYyhhKXtyZXR1cm4gYSYmIm9iamVjdCI9PT1iKGEpJiYhZChhKX1mdW5jdGlvbiBkKGEpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSl9ZnVuY3Rpb24gZSgpe2Zvcih2YXIgYSxiPXt9LGQ9MDtkPGFyZ3VtZW50cy5sZW5ndGg7KytkKWZvcih2YXIgZiBpbiBhPWFyZ3VtZW50c1tkXSxhKWJbZl09YltmXSYmYyhiW2ZdKSYmYyhhW2ZdKT9lKGJbZl0sYVtmXSk6YVtmXTtyZXR1cm4gYn1mdW5jdGlvbiBmKGEpe3ZhciBiPWVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShhKSk7cmV0dXJue3NpemU6Yi5sZW5ndGgscmF3OmJ9fWZ1bmN0aW9uIGcoKXt0aGlzLl9iYXRjaGVzQnlVcmxzPXt9LHRoaXMuX3RpbWVvdXRJZD1udWxsLHRoaXMuX2NvbmZpZz17bWF4QmF0Y2hTaXplOjZlNCxtYXhDaHVua1NpemU6NGUzLHRpbWVvdXQ6MTAwMCxpZGxlOiExfSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsdGhpcy5wcm9jZXNzLmJpbmQodGhpcywhMCkpfWZ1bmN0aW9uIGgoYSl7cmV0dXJuInMiLmNvbmNhdChhLCJzIikucmVwbGFjZSgvcysvZywicyIpLnJlcGxhY2UoL15zJC9nLCIiKX1mdW5jdGlvbiBqKGEpe2Zvcih2YXIgYiBpbiBhKSgidW5kZWZpbmVkIj09dHlwZW9mIGFbYl18fG51bGw9PT1hW2JdKSYmZGVsZXRlIGFbYl07cmV0dXJuIGF9ZnVuY3Rpb24gayhhLGIpe2Zvcih2YXIgYz0tMSxkPTA7ZDxhLmxlbmd0aDtkKyspaWYoYj09PWFbZF0pe2M9ZDticmVha31yZXR1cm4gY31mdW5jdGlvbiBsKCl7dGhpcy5fY29uZmlnPXt4cmF5UmFkYXJVcmw6Imh0dHBzOi8veHJheS5tYWlsLnJ1IixwZ2lkOihEYXRlLm5vdygpK01hdGgucmFuZG9tKCkpLnRvU3RyaW5nKDM2KSxyYWRhclByZWZpeDoiIixyOiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LnJlZmVycmVyfHwiIixkZWZhdWx0UGFyYW1zOntwOiJtYWlsIix0X2ZlYXR1cmU6IiIsdjoxLHNraXBkd2g6ITF9fX1mdW5jdGlvbiBtKGEsYil7Zm9yKHZhciBjPWEuc3BsaXQoIiYiKSxkPWNbMF0sZT17fSxmPTE7ZjxjLmxlbmd0aDsrK2Ype3ZhciBnPWNbZl0uc3BsaXQoIj0iKSxoPWRlY29kZVVSSUNvbXBvbmVudChnWzBdKSxqPWRlY29kZVVSSUNvbXBvbmVudChnWzFdKTt0cnl7aj1KU09OLnBhcnNlKGopfWNhdGNoKGEpe31lW2hdPWp9Yj1ifHx7fSxiLmltbWVkaWF0ZWx5P3ouc2VuZEltbWVkaWF0ZWx5KGQsZSxiLmdhKTp6LnNlbmQoZCxlLGIuZ2EpfXZhciBuPVtdLG89e21heFNpemU6NTAwLGdldExvZzpmdW5jdGlvbigpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChuLDApfSxjbGVhcjpmdW5jdGlvbigpe249W119fSxwPXtsb2c6ZnVuY3Rpb24oKXt0cnl7KGNvbnNvbGUuZGVidWd8fGNvbnNvbGUubG9nKS5hcHBseShjb25zb2xlLGFyZ3VtZW50cyl9Y2F0Y2goYSl7fX0sZXJyb3I6ZnVuY3Rpb24oKXt0cnl7Y29uc29sZS5lcnJvci5hcHBseShjb25zb2xlLGFyZ3VtZW50cyl9Y2F0Y2goYSl7fX0sd2FybjpmdW5jdGlvbigpe3RyeXtjb25zb2xlLndhcm4uYXBwbHkoY29uc29sZSxhcmd1bWVudHMpfWNhdGNoKGEpe319fSxxPVsicCIsImVtYWlsIiwic3BsaXQiLCJ1dG0iLCJyIiwicGdpZCIsIm9fc3MiLCJvX3YiXSxyPSExO2cucHJvdG90eXBlLnNldENvbmZpZz1mdW5jdGlvbihhKXt2YXIgYj1NYXRoLm1heDtpZighcilyZXR1cm4gYS50aW1lb3V0PWIoMWUzLGEudGltZW91dHx8MCksdGhpcy5fY29uZmlnPWUodGhpcy5fY29uZmlnLGEpLHZvaWQocj0hMCk7dmFyIGM9W107Zm9yKHZhciBkIGluIGEpe2lmKGQgaW4gdGhpcy5fY29uZmlnKXtjLnB1c2goZCk7Y29udGludWV9dGhpcy5fY29uZmlnW2RdPWFbZF19Yy5sZW5ndGgmJnAud2FybigiUXVldWUgY29uZmlnIGZpZWxkKHMpICIrYy5qb2luKCIsICIpKyIgYXJlIGFscmVhZHkgc2V0IGFuZCBjYW4ndCBiZSBtb2RpZmllZCIpfSxnLnByb3RvdHlwZS5nZXRDb25maWc9ZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLl9jb25maWcse30pfSxnLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGIsYyl7YShjKTt2YXIgZD1iKyIvYmF0Y2g/IitnLl9idWlsZFF1ZXJ5U3RyaW5nKGMpO2M9Zy5fc3RyaW5naWZ5UGFyYW1zKGMpO3ZhciBlPWYoYyk7aWYoZS5zaXplKzI+dGhpcy5fY29uZmlnLm1heEJhdGNoU2l6ZSlyZXR1cm4gdm9pZCBwLmVycm9yKCJSYWRhciAjIitjLnVpZCsiIGJvZHkgaXMgdG9vIGxvbmc6ICIrZS5yYXcpO3RoaXMuX2JhdGNoZXNCeVVybHNbZF18fCh0aGlzLl9iYXRjaGVzQnlVcmxzW2RdPVtbXV0pO3ZhciBoLGo9dGhpcy5fYmF0Y2hlc0J5VXJsc1tkXTtmb3IoaD0wO2g8ai5sZW5ndGg7KytoKXt2YXIgaz1qW2hdO2lmKGYoay5jb25jYXQoW2NdKSkuc2l6ZTw9dGhpcy5fY29uZmlnLm1heEJhdGNoU2l6ZSl7ay5wdXNoKGMpO2JyZWFrfX1oPT09ai5sZW5ndGgmJmoucHVzaChbY10pLHRoaXMuX3RpbWVvdXRJZHx8ImZ1bmN0aW9uIiE9dHlwZW9mIHNldFRpbWVvdXR8fCh0aGlzLl90aW1lb3V0SWQ9c2V0VGltZW91dCh0aGlzLnByb2Nlc3MuYmluZCh0aGlzKSx0aGlzLl9jb25maWcudGltZW91dCkpfSxnLnByb3RvdHlwZS5wcm9jZXNzPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dElkKSx0aGlzLl90aW1lb3V0SWQ9bnVsbCx0aGlzLl9iYXRjaGVzQnlVcmxzKXtmb3IodmFyIGM9dGhpcy5fYmF0Y2hlc0J5VXJsc1tiXSxkPTA7ZDxjLmxlbmd0aDsrK2QpdGhpcy5fc2VuZChiLGNbZF0sYSk7ZGVsZXRlIHRoaXMuX2JhdGNoZXNCeVVybHNbYl19fSxnLnByb3RvdHlwZS5pc0lkbGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29uZmlnLmlkbGV9LGcuX2J1aWxkUXVlcnlTdHJpbmc9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MDtjPHEubGVuZ3RoOysrYyl7dmFyIGQ9cVtjXSxlPSJzdHJpbmciPT10eXBlb2YgYVtkXT9hW2RdOkpTT04uc3RyaW5naWZ5KGFbZF0pOyhkZWxldGUgYVtkXSwidW5kZWZpbmVkIiE9dHlwZW9mIGUmJmUubGVuZ3RoKSYmYi5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChkKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKX12YXIgZj1bXTtmb3IodmFyIGcgaW4gYS5iYXNlUXVlcnkpZi5wdXNoKGcpO2Y9Zi5zb3J0KCk7Zm9yKHZhciBoLGo9MDtqPGYubGVuZ3RoOysrailoPWZbal0sYi5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChoKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGEuYmFzZVF1ZXJ5W2hdKSk7cmV0dXJuIGRlbGV0ZSBhLmJhc2VRdWVyeSxiLmpvaW4oIiYiKX0sZy5wcm90b3R5cGUuX3NlbmQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXt1cmw6YSxkYXRhOiJiYXRjaD0iK2VuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShiKSksdHlwZToiUE9TVCIsYXN5bmM6ITB9O2lmKCF0aGlzLl9jb25maWcuaWRsZSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBYTUxIdHRwUmVxdWVzdCYmIW5hdmlnYXRvci5zZW5kQmVhY29uKXJldHVybiB2b2lkIGZldGNoKGEse21ldGhvZDpkLnR5cGUsYm9keTpkLmRhdGF9KTtpZihjJiZ3aW5kb3cubmF2aWdhdG9yLnNlbmRCZWFjb24pcmV0dXJuIHZvaWQgd2luZG93Lm5hdmlnYXRvci5zZW5kQmVhY29uKGQudXJsLGQuZGF0YSk7dHJ5e3ZhciBlPW5ldyBYTUxIdHRwUmVxdWVzdCxmPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9jb25maWcuYmVmb3JlU2VuZCYmIXRoaXMuX2NvbmZpZy5iZWZvcmVTZW5kKGUsZCk7aWYoZilyZXR1cm4gdm9pZCBlLmFib3J0KCk7ZS5vcGVuKGQudHlwZSxkLnVybCxkLmFzeW5jKSxlLndpdGhDcmVkZW50aWFscz0hMCxlLnNlbmQoZC5kYXRhKX1jYXRjaChhKXtwLmVycm9yKCJ4cmF5LnNlbmQgZmFpbGVkOiIsYSl9fX0sZy5fc3RyaW5naWZ5UGFyYW1zPWZ1bmN0aW9uKGEpe3ZhciBiPXt9O2Zvcih2YXIgYyBpbiBhKXtpZigiaSI9PWMpe2IuaT1nLl9zdHJpbmdpZnlJKGEuaSk7Y29udGludWV9YltjXT0ic3RyaW5nIj09dHlwZW9mIGFbY10/YVtjXTpKU09OLnN0cmluZ2lmeShhW2NdKX1yZXR1cm4gYn0sZy5fc3RyaW5naWZ5ST1mdW5jdGlvbihhKXt2YXIgYj1bXTtmb3IodmFyIGMgaW4gYSl7dmFyIGQ9YVtjXTtiLnB1c2goYysiOiIrZCl9cmV0dXJuIGIuam9pbigiLCIpfTt2YXIgcz0wLHQ9WyJyYWRhclByZWZpeCIsInNwbGl0IiwiciIsInBnaWQiLCJ1dG0iLCJvX3NzIiwib192Il0sdT0hMSx2PW5ldyBnLHc9e3Jsb2dfZG90X2Vycm9yOiJ4cmF5X3Jsb2dfZG90X2Vycm9yIixybG9nX21zZ19hYnM6InhyYXlfcmxvZ19tc2dfYWJzIix0b29fbG9uZzoieHJheV90b29fbG9uZyIsbm90X2NvbmZpZ3VyZWQ6InhyYXlfbm90X2NvbmZpZ3VyZWQifSx4PTMyLHk9NjQ7bC5wcm90b3R5cGUubG9nZ2VyPW8sbC5wcm90b3R5cGUuc2V0Q29uZmlnPWZ1bmN0aW9uKGEsYil7YT1hfHx7fSx1JiZ0aGlzLl9kZWxldGVQcm90ZWN0ZWRQYXJhbXMoYSksdGhpcy51bnNhZmVTZXRDb25maWcoYSxiKX0sbC5wcm90b3R5cGUudW5zYWZlU2V0Q29uZmlnPWZ1bmN0aW9uKGEsYil7YT1hfHx7fSx1PSEwLGEuc3BsaXQmJihhLnNwbGl0PWgoYS5zcGxpdCkpLGEuZGVmYXVsdFBhcmFtcyYmYS5kZWZhdWx0UGFyYW1zLmkmJihhLmRlZmF1bHRQYXJhbXMuaT10aGlzLl9mb3JtYXRJbnRlcnZhbHMoYS5kZWZhdWx0UGFyYW1zLmkpLGRlbGV0ZSB0aGlzLl9jb25maWcuZGVmYXVsdFBhcmFtcy5pKSx0aGlzLl9jb25maWc9Yj9hOmUodGhpcy5fY29uZmlnLGEpLGEuZ2FUcmFja2luZ0lkJiZ0aGlzLl9pbml0R0EoYS5nYVRyYWNraW5nSWQpfSxsLnByb3RvdHlwZS5fZGVsZXRlUHJvdGVjdGVkUGFyYW1zPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8dC5sZW5ndGg7KytiKWRlbGV0ZSBhW3RbYl1dO3JldHVybiBhfSxsLnByb3RvdHlwZS5hZGRTcGxpdD1mdW5jdGlvbihhKXt0aGlzLl9jb25maWcuc3BsaXQ9aCgiIi5jb25jYXQodGhpcy5fY29uZmlnLnNwbGl0fHwiIiwicyIpLmNvbmNhdChhKSl9LGwucHJvdG90eXBlLmdldENvbmZpZz1mdW5jdGlvbigpe3JldHVybiBlKHRoaXMuX2NvbmZpZyx7fSl9LGwucHJvdG90eXBlLmdldFRvdGFsU2VuZGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHN9LGwucHJvdG90eXBlLnNldFF1ZXVlQ29uZmlnPWcucHJvdG90eXBlLnNldENvbmZpZy5iaW5kKHYpLGwucHJvdG90eXBlLmdldFF1ZXVlQ29uZmlnPWcucHJvdG90eXBlLmdldENvbmZpZy5iaW5kKHYpLGwucHJvdG90eXBlLmdldEluc3RhbmNlQ29weT1mdW5jdGlvbigpe3ZhciBhPW5ldyBsO3JldHVybiB1PSExLGEuc2V0Q29uZmlnKHRoaXMuX2NvbmZpZywhMCksYX0sbC5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihhLGIsYyl7dGhpcy5fc2VuZChhLGIsYywhMCl9LGwucHJvdG90eXBlLl9zZW5kPWZ1bmN0aW9uKGEsYixjLGYpe2lmKGYmJiF1JiZhIT09dy5ub3RfY29uZmlndXJlZCl7dmFyIGc9Ynx8e307Zy50PWEsdGhpcy5fbG9nT3duRXJyb3IoZyx3Lm5vdF9jb25maWd1cmVkKSxwLndhcm4oIllvdXIgeHJheSBpbnN0YW5jZSBpcyBub3QgY29uZmlndXJlZCIpfWlmKGI9ZShifHx7fSx7fSksdGhpcy5fY29uZmlnLm1pZGRsZXdhcmVzKWZvcih2YXIgaD0wO2g8dGhpcy5fY29uZmlnLm1pZGRsZXdhcmVzLmxlbmd0aDtoKyspe3ZhciBqPXRoaXMuX2NvbmZpZy5taWRkbGV3YXJlc1toXSxrPWooYSxiLGMpO2E9ay50LGI9ay5wYXJhbXMsYz1rLmdhfWE9ZChhKT9hLmpvaW4oIl8iKTphLGIuaSYmKGIuaT10aGlzLl9mb3JtYXRJbnRlcnZhbHMoYi5pKSksYj1lKHRoaXMuX2NvbmZpZy5kZWZhdWx0UGFyYW1zLHRoaXMuX2NvbmZpZy5leHBpZD97ZHdoOntleHBpZDp0aGlzLl9jb25maWcuZXhwaWR9fTp7fSxiLHt0OmEsc3BsaXQ6dGhpcy5fY29uZmlnLnNwbGl0LHI6dGhpcy5fY29uZmlnLnIscGdpZDp0aGlzLl9jb25maWcucGdpZCx1dG06dGhpcy5fY29uZmlnLnV0bSxvX3NzOnRoaXMuX2NvbmZpZy5vX3NzLG9fdjp0aGlzLl9jb25maWcub192LGJhc2VRdWVyeTp0aGlzLl9jb25maWcuYmFzZVF1ZXJ5LHVpZDpzKyt9KSxiLnNraXBkd2gmJmIuZHdoJiZkZWxldGUgYi5kd2g7Zm9yKHZhciBsPVtiLnRfZmVhdHVyZSx0aGlzLl9jb25maWcucmFkYXJQcmVmaXhdLG09MDttPGwubGVuZ3RoOysrbSlsW21dJiYoYi50PWxbbV0rIl8iK2IudCk7ZGVsZXRlIGIudF9mZWF0dXJlO3RyeXtiPXRoaXMuX3ZhbGlkYXRlUGFyYW1zKGIsZil9Y2F0Y2goYSl7cmV0dXJuIHAubG9nKCJ4cmF5IixiLnVpZCxiKSx2b2lkIHAuZXJyb3IoYS5tZXNzYWdlKX1pZih0aGlzLl9jb25maWcudmVyYm9zZSYmcC5sb2coInhyYXkiLGIudWlkLGIudCxiLGM/IkdBOiAiKyEhYzp2b2lkIDApLHYucHVzaCh0aGlzLl9jb25maWcueHJheVJhZGFyVXJsLGIpLCEwPT09YyYmIXRoaXMuX2NvbmZpZy5nYVRyYWNraW5nSWQpcmV0dXJuIHZvaWQgcC5lcnJvcigiUmFkYXIgIyIrYi51aWQrIjogbm8gR0EgdHJhY2tpbmcgaWQgc3BlY2lmaWVkIik7dmFyIG49InN0cmluZyI9PXR5cGVvZiBjP2M6dGhpcy5fY29uZmlnLmdhVHJhY2tpbmdJZDtpZighIWMmJm4mJiF2LmlzSWRsZSgpKXtpZihiLmkpe2Zvcih2YXIgbyBpbiBiLmkpdGhpcy5fc2VuZEdBKGErIl8iK28sYi5pW29dLG4pO3JldHVybn10aGlzLl9zZW5kR0EoYSxiLnYsbil9fSxsLnByb3RvdHlwZS5zZW5kSW1tZWRpYXRlbHk9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuc2VuZChhLGIsYyksdi5wcm9jZXNzKCl9LGwucHJvdG90eXBlLmFkZE1pZGRsZXdhcmU9ZnVuY3Rpb24oYSl7dGhpcy5fY29uZmlnLm1pZGRsZXdhcmVzfHwodGhpcy5fY29uZmlnLm1pZGRsZXdhcmVzPVtdKSwtMT09PWsodGhpcy5fY29uZmlnLm1pZGRsZXdhcmVzLGEpJiZ0aGlzLl9jb25maWcubWlkZGxld2FyZXMucHVzaChhKX0sbC5wcm90b3R5cGUucmVtb3ZlTWlkZGxld2FyZT1mdW5jdGlvbihhKXtpZih0aGlzLl9jb25maWcubWlkZGxld2FyZXMpe3ZhciBiPWsodGhpcy5fY29uZmlnLm1pZGRsZXdhcmVzLGEpOy0xPGImJnRoaXMuX2NvbmZpZy5taWRkbGV3YXJlcy5zcGxpY2UoYiwxKX19LGwucHJvdG90eXBlLl9zZW5kR0E9ZnVuY3Rpb24oYSxiLGMpeyJmdW5jdGlvbiIhPXR5cGVvZiBndGFnJiZ0aGlzLl9pbml0R0EoYyk7dmFyIGQ9YS5zcGxpdCgvXy9nKSxlPWRbMV18fGRbMF0sZj1kWzFdP2RbMF06IiIsZz1kLnNsaWNlKDIpLmpvaW4oIl8iKSxoPXt2YWx1ZTpiLHNlbmRfdG86Y307ZiYmKGguZXZlbnRfY2F0ZWdvcnk9ZiksZyYmKGguZXZlbnRfbGFiZWw9ZyksZ3RhZygiZXZlbnQiLGUsaCl9LGwucHJvdG90eXBlLl9pbml0R0E9ZnVuY3Rpb24oYSl7aWYoIXdpbmRvdy5ndGFnKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtiLnNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RhZy9qcz9pZD0iK2EsYi50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoYiksd2luZG93LmRhdGFMYXllcj13aW5kb3cuZGF0YUxheWVyfHxbXSx3aW5kb3cuZ3RhZz1mdW5jdGlvbigpe3dpbmRvdy5kYXRhTGF5ZXIucHVzaChhcmd1bWVudHMpfSxndGFnKCJqcyIsbmV3IERhdGUpfWd0YWcoImNvbmZpZyIsYSx7c2VuZF9wYWdlX3ZpZXc6ITF9KX0sbC5wcm90b3R5cGUuX2xvZ093bkVycm9yPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0ieHJheV9lcnIiLGU9YS5wO2lmKGUpe2lmKGUubGVuZ3RoKzgrMT54KXtlPWUuc2xpY2UoMCx4LTgtMSl9ZD0iIi5jb25jYXQoZSwiXyIpLmNvbmNhdCgieHJheV9lcnIiKX12YXIgZj1hLnQ7Zi5sZW5ndGg+eSYmKGY9Zi5zbGljZSgwLHkpKSx0aGlzLl9zZW5kKGIse3NraXBkd2g6ITAscmxvZzpkLHJsb2dfbWVzc2FnZTp7dDpmLGVycjpiLHZhbHVlOmN9fSwhMSwhMSl9LGwucHJvdG90eXBlLl92YWxpZGF0ZVBhcmFtcz1mdW5jdGlvbihhLGIpe2E9aihhKSxhLnJsb2cmJi0xIT09YS5ybG9nLmluZGV4T2YoIi4iKSYmKGImJnRoaXMuX2xvZ093bkVycm9yKGEsdy5ybG9nX2RvdF9lcnJvcixhLnJsb2cpLHAuZXJyb3IoIlJhZGFyICMiLmNvbmNhdChhLnVpZCwiOiBybG9nIGNhbiBub3QgY29udGFpbiBmaWxlIGV4dGVuc2lvbiIpKSxkZWxldGUgYS5ybG9nLGRlbGV0ZSBhLnJsb2dfbWVzc2FnZSksYS5ybG9nJiZhLnJsb2dfbWVzc2FnZXx8KGEucmxvZ19tZXNzYWdlJiYoYiYmdGhpcy5fbG9nT3duRXJyb3IoYSx3LnJsb2dfbXNnX2FicykscC5lcnJvcigiUmFkYXIgIyIuY29uY2F0KGEudWlkLCI6IHJsb2dfbWVzc2FnZSB3b3VsZCBub3QgYmUgc2VudCB3aXRob3V0IHJsb2ciKSkpLGRlbGV0ZSBhLnJsb2csZGVsZXRlIGEucmxvZ19tZXNzYWdlKTt2YXIgYz17MzI6W2EucCxhLnJsb2ddLDY0OlthLnArIl8iK2EudF19O2Zvcih2YXIgZCBpbiBhLmkpY1szMl0ucHVzaChkKSxjWzY0XS5wdXNoKGEucCsiXyIrYS50KyJfIitkKTtmb3IodmFyIGUgaW4gYylmb3IodmFyIGY9Y1tlXSxnPTA7ZzxmLmxlbmd0aDsrK2cpaWYoZltnXSYmZltnXS5sZW5ndGg+ZSl0aHJvdyBiJiZ0aGlzLl9sb2dPd25FcnJvcihhLHcudG9vX2xvbmcsZltnXS5zbGljZSgwLGUpKSxuZXcgRXJyb3IoIlJhZGFyICMiLmNvbmNhdChhLnVpZCwiOiB2YWx1ZSBpcyB0b28gbG9uZzogIikuY29uY2F0KGNbZV1bZ10pKyIgKGxlbjogIi5jb25jYXQoZltnXS5sZW5ndGgsIiwgbGltaXQ6ICIpLmNvbmNhdChlLCIpIikpO3JldHVybiBhfSxsLnByb3RvdHlwZS5fZm9ybWF0SW50ZXJ2YWxzPWZ1bmN0aW9uKGEpe2lmKGMoYSkpcmV0dXJuIGE7dmFyIGI9e307aWYoZChhKSl7Zm9yKHZhciBlLGY9MDtmPGEubGVuZ3RoOysrZillPWFbZl0uc3BsaXQoIjoiKSxiW2VbMF1dPStlWzFdfHx0aGlzLl9jb25maWcuZGVmYXVsdFBhcmFtcy52O3JldHVybiBifWlmKCJzdHJpbmciPT10eXBlb2YgYSl7dmFyIGc9YS5zcGxpdCgiLCIpO3JldHVybiB0aGlzLl9mb3JtYXRJbnRlcnZhbHMoZyl9fTt2YXIgej1uZXcgbDtyZXR1cm4gbS5zZXRDb25maWc9ZnVuY3Rpb24oYSl7ei5zZXRDb25maWcoaih7dmVyYm9zZTphLnZlcmJvc2UscGdpZDphLnBnaWQsc3BsaXQ6YS5zcGxpdCx4cmF5UmFkYXJVcmw6YS54cmF5UmFkYXJVcmx8fGEuWFJBWV9SQURBUl9VUkwscmFkYXJQcmVmaXg6YS5yYWRhclByZWZpeHx8YS5SYWRhclByZWZpeCx1dG06YS51dG0sb19zczphLm9fc3Msb192OmEub192LGJhc2VRdWVyeTphLmJhc2VRdWVyeSxnYVRyYWNraW5nSWQ6YS5nYVRyYWNraW5nSWR8fGEuR0FfVFJBQ0tJTkdfSUQsZGVmYXVsdFBhcmFtczphLmRlZmF1bHRQYXJhbXN8fGooe3A6YS5wcm9qZWN0LGVtYWlsOmEuQWN0aXZlRW1haWx9KX0pKSx6LnNldFF1ZXVlQ29uZmlnKGooe21heEJhdGNoU2l6ZTphLk1BWF9CQVRDSF9TSVpFLG1heENodW5rU2l6ZTphLk1BWF9DSFVOS19TSVpFLGJlZm9yZVNlbmQ6YS5iZWZvcmVTZW5kLHRpbWVvdXQ6YS50aW1lb3V0LGlkbGU6YS5pZGxlfSkpfSxtLmdldENvbmZpZz1sLnByb3RvdHlwZS5nZXRDb25maWcuYmluZCh6KSxtLmFkZFNwbGl0PWwucHJvdG90eXBlLmFkZFNwbGl0LmJpbmQoeiksbS51bnNhZmVTZXRDb25maWc9bC5wcm90b3R5cGUudW5zYWZlU2V0Q29uZmlnLmJpbmQoeiksbS5zZXRRdWV1ZUNvbmZpZz1sLnByb3RvdHlwZS5zZXRRdWV1ZUNvbmZpZy5iaW5kKHopLG0uZ2V0UXVldWVDb25maWc9bC5wcm90b3R5cGUuZ2V0UXVldWVDb25maWcuYmluZCh6KSxtLmdldFRvdGFsU2VuZGVkPWwucHJvdG90eXBlLmdldFRvdGFsU2VuZGVkLmJpbmQoeiksbS5zZW5kPWwucHJvdG90eXBlLnNlbmQuYmluZCh6KSxtLnNlbmRJbW1lZGlhdGVseT1sLnByb3RvdHlwZS5zZW5kSW1tZWRpYXRlbHkuYmluZCh6KSxtLmdldEluc3RhbmNlQ29weT1sLnByb3RvdHlwZS5nZXRJbnN0YW5jZUNvcHkuYmluZCh6KSxtLmFkZE1pZGRsZXdhcmU9bC5wcm90b3R5cGUuYWRkTWlkZGxld2FyZS5iaW5kKHopLG0ucmVtb3ZlTWlkZGxld2FyZT1sLnByb3RvdHlwZS5yZW1vdmVNaWRkbGV3YXJlLmJpbmQoeiksInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJiJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cuZGVmaW5lJiZ3aW5kb3cuZGVmaW5lLmFtZCYmd2luZG93LmRlZmluZSgiQG1haWwveHJheSIsZnVuY3Rpb24oKXtyZXR1cm4gbX0pLG19KCk7PC9zY3JpcHQ+PHNjcmlwdCBpZD0iX194cmF5LWluaXRfXyI+eHJheUNvcmUuc2V0Q29uZmlnKHtkZWZhdWx0UGFyYW1zOiB7cDogJ25ld3MtbWFpbC1ydS13ZWInLH0sdmVyYm9zZTogdHJ1ZX0pO3hyYXlDb3JlLnNlbmQoJ3BrLXhyYXktcmVhZHknKTs8L3NjcmlwdD4KICAgICAgICA8IS0tIGVuZDogL3JiLzEwODQ2ODEgLS0+CiAgICAgIAoKICAgICAgICAgICAgICA8bGluayBocmVmPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy9jbGllbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiPgogICAgICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy9hdXRoR2F0ZS5qcy7QkdC10Lcg0L3QsNC30LLQsNC90LjRjyI+PC9zY3JpcHQ+PHNjcmlwdCBkZWZlcj0iIiBhc3luYz0iIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvZXh0ZXJuYWwubWluLmpzLtCR0LXQtyDQvdCw0LfQstCw0L3QuNGPIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvMDhBMjE0LmpzLtCR0LXQtyDQvdCw0LfQstCw0L3QuNGPIj48L3NjcmlwdD48c3R5bGU+LmFnLXBvcHVwX19vdmVybGF5e3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO29wYWNpdHk6LjQ4O3otaW5kZXg6MTAwMDA7cG9zaXRpb246Zml4ZWQ7YmFja2dyb3VuZDojMDAwOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2Rpc3BsYXk6bm9uZX0uYWctcG9wdXBfX292ZXJsYXlfc2hvd3tkaXNwbGF5OmJsb2NrfS5hZy1wb3B1cF9fZnJhbWV7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7ZGlzcGxheTpub25lfS5hZy1wb3B1cF9fZnJhbWVfX2xheW91dHtvdmVyZmxvdzpoaWRkZW47d2lkdGg6NDIwcHg7b3V0bGluZTpub25lO3RyYW5zaXRpb246aGVpZ2h0IC4xMTFzIGVhc2UtaW4tb3V0fS5hZy1wb3B1cF9fZnJhbWVfX2xheW91dF9faWZyYW1le3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWFyZ2luOjA7Ym9yZGVyOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5hZy1wb3B1cF9fZnJhbWVfX2xheW91dF9fbG9hZGVyLXdyYXBwZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7YmFja2dyb3VuZDojZmZmO2Rpc3BsYXk6bm9uZX0uYWctcG9wdXBfX2ZyYW1lX19sYXlvdXRfX2xvYWRlci13cmFwcGVyX3Nob3d7ZGlzcGxheTpibG9ja30uYWctcG9wdXBfX2ZyYW1lX19sYXlvdXRfX2xvYWRlcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7dG9wOjUwJTtsZWZ0OjUwJTttYXJnaW46LTE2cHggMCAwIC0xNnB4Oy13ZWJraXQtYW5pbWF0aW9uOnNwaW4gMXMgY3ViaWMtYmV6aWVyKDAuNDksIDAuMjgsIDAuNDksIDAuNjcpIGluZmluaXRlO2FuaW1hdGlvbjpzcGluIDFzIGN1YmljLWJlemllcigwLjQ5LCAwLjI4LCAwLjQ5LCAwLjY3KSBpbmZpbml0ZTtmaWxsOiMwMDVmZjl9LmFnLXBvcHVwX19mcmFtZV9fbGF5b3V0X19sb2FkZXI+c3Zne2ZpbGw6IzAwNWZmOSAhaW1wb3J0YW50O2ZpbGwtcnVsZTpub256ZXJvfS5hZy1wb3B1cF9fZnJhbWVfb25vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3otaW5kZXg6MTAwMDE7dGV4dC1hbGlnbjpjZW50ZXJ9LmFnLXBvcHVwX19mcmFtZV9vbm92ZXJsYXkgLmFnLXBvcHVwX19mcmFtZV9fbGF5b3V0LW1vYmlsZXt3aWR0aDpjYWxjKDEwMCUgLSA4cHgpICFpbXBvcnRhbnQ7aGVpZ2h0OmNhbGMoMTAwJSAtIDE2cHgpICFpbXBvcnRhbnQ7bWF4LWhlaWdodDo1MTBweDttYXgtd2lkdGg6NDIwcHg7bWluLXdpZHRoOjMyMHB4ICFpbXBvcnRhbnR9LmFnLXBvcHVwX19mcmFtZV9vbm92ZXJsYXkgLmFnLXBvcHVwX19mcmFtZV9fbGF5b3V0LWRlc2t0b3B7bWF4LWhlaWdodDpjYWxjKDEwMCUgLSAxNnB4KSAhaW1wb3J0YW50fS5hZy1wb3B1cF9fZnJhbWVfb25vdmVybGF5IC5hZy1wb3B1cF9fZnJhbWVfX2xheW91dHtwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2hhZG93OjAgMTZweCA0OHB4IDAgcmdiYSgwLDAsMCwuNDgpO292ZXJmbG93OmhpZGRlbn0uYWctcG9wdXBfX2ZyYW1lX29ub3ZlcmxheSAuYWctcG9wdXBfX2ZyYW1lX19sYXlvdXQsLmFnLXBvcHVwX19mcmFtZV9vbm92ZXJsYXkgLmFnLXBvcHVwX19mcmFtZV9fbGF5b3V0X19pZnJhbWUsLmFnLXBvcHVwX19mcmFtZV9vbm92ZXJsYXkgLmFnLXBvcHVwX19mcmFtZV9fbGF5b3V0X19sb2FkZXItd3JhcHBlcntib3JkZXItcmFkaXVzOjEycHg7Ym9yZGVyLXJhZGl1czp2YXIoLS12a3VpLS1zaXplX2JvcmRlcl9yYWRpdXNfcGFwZXItLXJlZ3VsYXIsIDEycHgpfS5hZy1wb3B1cF9fZnJhbWVfaW5wYWdle3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbjowIGF1dG99LmFnLXBvcHVwX19mcmFtZV9zaG93e2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn1ALXdlYmtpdC1rZXlmcmFtZXMgc3Bpbnt0b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKSB0cmFuc2xhdGV6KDApO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKSB0cmFuc2xhdGV6KDApfX1Aa2V5ZnJhbWVzIHNwaW57dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDM2MGRlZykgdHJhbnNsYXRleigwKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZykgdHJhbnNsYXRleigwKX19PC9zdHlsZT48c2NyaXB0IGFzeW5jPSIiIHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvc2F2ZWRfcmVzb3VyY2UiPjwvc2NyaXB0PjxzdHlsZT4ucGxfbiwucGxfbywucGxfcHttYXJnaW46MCAwIDIwcHggMjBweH0ucGxfbiwucGxfb3ttaW4taGVpZ2h0OjMwMHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5wbF9xLnBsX257ZmxleDowIDAgMzA1cHg7bWluLXdpZHRoOjB9LnBsX3IucGxfcHttYXgtd2lkdGg6bm9uZX0ucGxfci5wbF9ze2hlaWdodDphdXRvO21pbi1oZWlnaHQ6MH0ucGxfdDpub3QoLnBsX3Ape2hlaWdodDphdXRvO21pbi13aWR0aDoyNDBweH0ucGxfdDpub3QoLnBsX3ApOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7cGFkZGluZy1ib3R0b206OTguMzYwNjYlO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9LnBsX3B7ZmxleC1iYXNpczpjYWxjKDEwMCUgLSAyMHB4KX0ucGxfdC5wbF91Om5vdCgucGxfcCk6YmVmb3Jle3BhZGRpbmctYm90dG9tOjB9LnBsX3IucGxfdiwucGxfdntmbGV4OjE7bWluLWhlaWdodDoyMTBweH0ucGxfd3tmbGV4OjEhaW1wb3J0YW50O21pbi1oZWlnaHQ6NjBweCFpbXBvcnRhbnR9LnBsX3h7ZmxleDoxO21hcmdpbjowIDAgMjBweDttYXgtaGVpZ2h0OjMyOHB4O21pbi1oZWlnaHQ6MzAwcHh9LnBsX3g6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLWxlZnQ6MjBweH08L3N0eWxlPjxzdHlsZT4ucGxfYWwsLnBsX2FsOmhvdmVyLC5wbF9hbDp2aXNpdGVke2NvbG9yOmluaGVyaXR9LnBsX2FsLC5wbF9hbDphY3RpdmUsLnBsX2FsOmZvY3VzLC5wbF9hbDpob3ZlciwucGxfYWw6dmlzaXRlZHstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7b3V0bGluZTppbmhlcml0O3RleHQtZGVjb3JhdGlvbjppbmhlcml0fTwvc3R5bGU+PHN0eWxlPi5wbF9hZ3tkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJX0ucGxfYWh7ZGlzcGxheTpibG9jazt3aWR0aDp1bnNldH08L3N0eWxlPjxzdHlsZT4ucGxfYjl7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBsaW5lYXI7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5wbF9jYXtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YXV0b308L3N0eWxlPjxzdHlsZT4ucGxfY2J7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wO3doaXRlLXNwYWNlOm5vcm1hbH08L3N0eWxlPjxzdHlsZT4ucGxfYnUsLnBsX2J2e2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LnBsX2J1e3Bvc2l0aW9uOnJlbGF0aXZlfS5wbF9idnstbXMtb3ZlcmZsb3ctc3R5bGU6bm9uZTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtvdmVyZmxvdzphdXRvO3Njcm9sbGJhci13aWR0aDpub25lO3doaXRlLXNwYWNlOm5vd3JhcH0ucGxfYnY6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX08L3N0eWxlPjxzdHlsZT4ucGxfYm8sLnBsX2Jwe2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0ucGxfYnF7aGVpZ2h0OjE2OHB4O3dpZHRoOjE2OHB4fS5wbF9icSsucGxfYnF7bWFyZ2luLWxlZnQ6NHB4fS5wbF9ib3tiYWNrZ3JvdW5kOm5vLXJlcGVhdCA1MCU7YmFja2dyb3VuZC1zaXplOmNvdmVyO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMTIpO2JvcmRlci10b3A6bm9uZTtjdXJzb3I6cG9pbnRlcn0ucGxfYm8rLnBsX2Jve21hcmdpbi1sZWZ0OjRweH0ucGxfYnJ7YmFja2dyb3VuZDpoc2xhKDAsMCUsMTAwJSwuNik7aGVpZ2h0OjEwMCU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7d2lkdGg6MzFweDt6LWluZGV4OjF9LnBsX2JyOmJlZm9yZXtiYWNrZ3JvdW5kOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIweG1sbnM9JTI3aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmclMjclMjB2aWV3Qm94PSUyNzAlMjAwJTIwNDkyLjAwNCUyMDQ5Mi4wMDQlMjclM0UlM0NwYXRoJTIwZD0lMjdNMzgyLjY3OCUyMDIyNi44MDQlMjAxNjMuNzMlMjA3Ljg2QzE1OC42NjYlMjAyLjc5MiUyMDE1MS45MDYlMjAwJTIwMTQ0LjY5OCUyMDBzLTEzLjk2OCUyMDIuNzkyLTE5LjAzMiUyMDcuODZsLTE2LjEyNCUyMDE2LjEyYy0xMC40OTIlMjAxMC41MDQtMTAuNDkyJTIwMjcuNTc2JTIwMCUyMDM4LjA2NEwyOTMuMzk4JTIwMjQ1LjlsLTE4NC4wNiUyMDE4NC4wNmMtNS4wNjQlMjA1LjA2OC03Ljg2JTIwMTEuODI0LTcuODYlMjAxOS4wMjglMjAwJTIwNy4yMTIlMjAyLjc5NiUyMDEzLjk2OCUyMDcuODYlMjAxOS4wNGwxNi4xMjQlMjAxNi4xMTZjNS4wNjglMjA1LjA2OCUyMDExLjgyNCUyMDcuODYlMjAxOS4wMzIlMjA3Ljg2czEzLjk2OC0yLjc5MiUyMDE5LjAzMi03Ljg2TDM4Mi42NzglMjAyNjVjNS4wNzYtNS4wODQlMjA3Ljg2NC0xMS44NzIlMjA3Ljg0OC0xOS4wODguMDE2LTcuMjQ0LTIuNzcyLTE0LjAyOC03Ljg0OC0xOS4xMDh6JTI3LyUzRSUzQy9zdmclM0UiKSBuby1yZXBlYXQgNTAlO2JhY2tncm91bmQtc2l6ZTpjb250YWluO2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTttYXJnaW46MCBhdXRvO29wYWNpdHk6LjQ1O3dpZHRoOjIwcHh9LnBsX2Jze3JpZ2h0OjB9LnBsX2J0e2xlZnQ6MDt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9PC9zdHlsZT48c3R5bGU+LnBsX2l7b3BhY2l0eToxfS5wbF9qe2JvcmRlci1yYWRpdXM6MTJweDtvdmVyZmxvdzpoaWRkZW59LnBsX2o6bm90KC5wbF9rKXtib3gtc2hhZG93OjAgMCAxNnB4IHJnYmEoMiwxMyw0MSwuMTIpfS5wbF9qOm5vdCgucGxfayk6aG92ZXJ7Ym94LXNoYWRvdzowIDRweCAyMHB4IHJnYmEoMTgsMjUsNDMsLjIpfS5wbF9re29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lfS5wbF9sOmZvY3VzLXdpdGhpbiwucGxfbDpob3Zlcntib3gtc2hhZG93OjAgNHB4IDIwcHggMCByZ2JhKDAsMCwwLC4xNil9LnBsX2w6bm90KC5wbF9rKXt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjVzfS5wbF9te2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNSk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6OHB4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6OHB4O2NvbG9yOiNmZmY7Zm9udC1zaXplOjIwcHg7bGluZS1oZWlnaHQ6MTttYXJnaW46MDtwYWRkaW5nOjhweDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3otaW5kZXg6MTB9PC9zdHlsZT48c3R5bGU+LnBsX2F1e2JhY2tncm91bmQtY29sb3I6I2ZmZjtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJX0ucGxfYXY6YmVmb3Jle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx0cmFuc3BhcmVudCxyZ2JhKDAsMCwwLC40NikpfTwvc3R5bGU+PHN0eWxlPi5wbF9hd3toZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt3aWR0aDoxMDAlfS5wbF9heHtoZWlnaHQ6NDgwcHg7bWluLWhlaWdodDo0ODBweDtwb3NpdGlvbjp1bnNldH08L3N0eWxlPjxzdHlsZT4ucGxfYTR7YmFja2dyb3VuZC1jb2xvcjojMDAwfS5wbF9hNXtvcGFjaXR5OjB9PC9zdHlsZT48c3R5bGU+LnBsX2F5LC5wbF9hei5wbF9hMHtmb250LXNpemU6MDtvdmVyZmxvdzp2aXNpYmxlfS5wbF9hentsaW5lLWhlaWdodDowO21hcmdpbjowIGF1dG99LnBsX2F5e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6MzAwcHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpsZWZ0O3RleHQtZGVjb3JhdGlvbjpub25lO3dpZHRoOjEwMCV9LnBsX2ExIC5wbF9heSwucGxfYXoucGxfYTF7aGVpZ2h0OmF1dG99LnBsX2F6LnBsX2Eye2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6MzAwcHh9LnBsX2F6LnBsX2Ewe2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMCAxNnB4IHJnYmEoMiwxMyw0MSwuMTIpO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpzdGF0aWM7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MTAwJX0ucGxfYXoucGxfYTA6aG92ZXJ7Ym94LXNoYWRvdzowIDRweCAyMHB4IHJnYmEoMTgsMjUsNDMsLjIpfS5wbF9hM3toZWlnaHQ6MTAwJTtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7d2lkdGg6MTAwJTt6LWluZGV4Oi0xfTwvc3R5bGU+PHN0eWxlPi5wbF9hbXtjb2xvcjojMmMyZDJlO2ZvbnQtd2VpZ2h0OjQwMDtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmxlZnQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9LnBsX2Fue2hlaWdodDoxMDAlO2xlZnQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt3aWR0aDoxMDAlfS5wbF9hbiwucGxfYW97cG9zaXRpb246YWJzb2x1dGU7dG9wOjB9LnBsX2Fwe2hlaWdodDo2MHB4fS5wbF9hcSwucGxfYXB7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjIwcHg7bWFyZ2luLWxlZnQ6MjBweDt3aWR0aDoxMDAlfS5wbF9hcXtoZWlnaHQ6MjE4cHh9LnBsX2Fye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LnBsX2Fze21hcmdpbi10b3A6MjBweH1AbWVkaWEgKC1tcy1oaWdoLWNvbnRyYXN0Om5vbmUpLHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OmFjdGl2ZSl7LnBsX2FuLC5wbF9hbXt0cmFuc2Zvcm06bm9uZX19PC9zdHlsZT48c3R5bGU+LnBsX2Fre2JhY2tncm91bmQtY29sb3I6aW5pdGlhbDtib3JkZXI6bm9uZTtjb2xvcjppbmhlcml0O2N1cnNvcjpwb2ludGVyO2ZvbnQ6aW5oZXJpdDtvdXRsaW5lOm5vbmU7cGFkZGluZzowOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX08L3N0eWxlPjxzdHlsZT4ucGxfenthbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLXJhZGl1czo4cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmb250LXNpemU6MTZweDtmb250LXdlaWdodDo1MDA7anVzdGlmeS1jb250ZW50OmNlbnRlcjtsaW5lLWhlaWdodDoyMHB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjEwcHggMTZweDtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmNlbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IsY29sb3IgLjFzIGVhc2Utb3V0Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ucGxfejpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MTAwJTtsZWZ0OjA7b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3RyYW5zaXRpb246b3BhY2l0eSAuMXMgZWFzZS1vdXQ7d2lkdGg6MTAwJX0ucGxfei5wbF8we29wYWNpdHk6LjQ4O3BvaW50ZXItZXZlbnRzOm5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5wbF8xe2ZvbnQtc2l6ZToxM3B4fS5wbF8ye3dpZHRoOjEwMCV9LnBsXzN7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDE2LDYxLC4wOCk7Y29sb3I6IzMzMztmb250LXdlaWdodDo0MDB9LnBsXzM6bm90KC5wbF8wKTpob3ZlcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wNCk7b3BhY2l0eToxfS5wbF8zOm5vdCgucGxfMCk6YWN0aXZlOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjA4KTtvcGFjaXR5OjF9LnBsXzR7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTYsNjEsLjEyKTtjb2xvcjojMmMyZDJlfS5wbF80Om5vdCgucGxfMCk6aG92ZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDQpO29wYWNpdHk6MX0ucGxfNDpub3QoLnBsXzApOmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wOCk7b3BhY2l0eToxfS5wbF81e2JhY2tncm91bmQtY29sb3I6IzAwNWZmOTtjb2xvcjojZmZmfS5wbF81Om5vdCgucGxfMCk6aG92ZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDQpO29wYWNpdHk6MX0ucGxfNTpub3QoLnBsXzApOmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wOCk7b3BhY2l0eToxfS5wbF82e2JvcmRlcjoxcHggc29saWQgIzAwNWZmOTtjb2xvcjojMDA1YmQxfS5wbF82Om5vdCgucGxfMCk6aG92ZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDkxLDIwOSwuMDQpO29wYWNpdHk6MX0ucGxfNjpub3QoLnBsXzApOmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsOTEsMjA5LC4wOCk7b3BhY2l0eToxfS5wbF83e2JhY2tncm91bmQtY29sb3I6I2YwZjBmMDtjb2xvcjojMDA1YmQxfS5wbF83Om5vdCgucGxfMCk6aG92ZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDQpO29wYWNpdHk6MX0ucGxfNzpub3QoLnBsXzApOmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wOCk7b3BhY2l0eToxfS5wbF84e2JhY2tncm91bmQtY29sb3I6I2ZmZjtjb2xvcjojMDA1YmQxfS5wbF84Om5vdCgucGxfMCk6aG92ZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDQpO29wYWNpdHk6MX0ucGxfODpub3QoLnBsXzApOmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wOCk7b3BhY2l0eToxfS5wbF85e2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICMwMDVmZjk7Y29sb3I6IzAwNWJkMX0ucGxfOTpub3QoLnBsXzApOmhvdmVyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjA0KTtvcGFjaXR5OjF9LnBsXzk6bm90KC5wbF8wKTphY3RpdmU6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDgpO29wYWNpdHk6MX0ucGxfYWF7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkICNmZmY7Y29sb3I6I2ZmZn0ucGxfYWE6bm90KC5wbF8wKTpob3ZlcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wNCk7b3BhY2l0eToxfS5wbF9hYTpub3QoLnBsXzApOmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wOCk7b3BhY2l0eToxfS5wbF9hYntiYWNrZ3JvdW5kLWNvbG9yOiMzMzM7Y29sb3I6I2ZmZn0ucGxfYWI6bm90KC5wbF8wKTpob3ZlcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wNCk7b3BhY2l0eToxfS5wbF9hYjpub3QoLnBsXzApOmFjdGl2ZTpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wOCk7b3BhY2l0eToxfS5wbF9hY3ttYXJnaW4tcmlnaHQ6OHB4fS5wbF9hZXt0cmFuc2Zvcm06c2NhbGVYKC0xKX0ucGxfYWZ7Zm9udC13ZWlnaHQ6NTAwO3Bvc2l0aW9uOnJlbGF0aXZlfTwvc3R5bGU+PHN0eWxlPi5wbF9hNntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5wbF9hNj4qKyp7bWFyZ2luLWxlZnQ6MTJweH08L3N0eWxlPjxzdHlsZT4ucGxfYTd7bWFyZ2luOjAgYXV0bzttYXgtd2lkdGg6NTE1cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LnBsX2E4e2NvbG9yOiMyYzJkMmU7Zm9udC1zaXplOjE3cHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjI0cHg7bWFyZ2luLWJvdHRvbTo0cHh9LnBsX2E5e2NvbG9yOiM5MTkzOTk7Zm9udC1zaXplOjE1cHg7bGluZS1oZWlnaHQ6MjBweDt3aGl0ZS1zcGFjZTpwcmUtbGluZX0ucGxfYmF7YmFja2dyb3VuZC1jb2xvcjppbml0aWFsO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB3aWR0aD0lMjcxNiUyNyUyMGhlaWdodD0lMjcxNiUyNyUyMGZpbGw9JTI3bm9uZSUyNyUyMHhtbG5zPSUyN2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJTI3JTNFJTNDcGF0aCUyMGZpbGwtcnVsZT0lMjdldmVub2RkJTI3JTIwY2xpcC1ydWxlPSUyN2V2ZW5vZGQlMjclMjBkPSUyN204LjE5MSUyMDYuNjYzJTIwNC4zNC00LjM0YTEuMTA1JTIwMS4xMDUlMjAwJTIwMCUyMDElMjAxLjU2MiUyMDEuNTYybC00LjM0JTIwNC4zNCUyMDQuMzQlMjA0LjM0YTEuMDglMjAxLjA4JTIwMCUyMDElMjAxLTEuNTI4JTIwMS41MjhsLTQuMzQtNC4zNC00LjM0JTIwNC4zNGExLjEwNSUyMDEuMTA1JTIwMCUyMDAlMjAxLTEuNTYyLTEuNTYybDQuMzQtNC4zNC00LjM0LTQuMzRhMS4wOCUyMDEuMDglMjAwJTIwMSUyMDElMjAxLjUyOC0xLjUyOGw0LjM0JTIwNC4zNHolMjclMjBmaWxsPSUyNyUyM0JGQzFDNyUyNy8lM0UlM0Mvc3ZnJTNFIik7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxNnB4O2hlaWdodDozMnB4O3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMnB4O3RvcDoxMnB4O3dpZHRoOjMycHh9PC9zdHlsZT48c3R5bGU+LnBsX2I1e3Bvc2l0aW9uOnJlbGF0aXZlfS5wbF9iNntib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMTYsNjEsLjEyKTtsZWZ0OmNhbGMoNTAlIC0gOXB4KTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYyg1MCUgKyAycHgpO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt3aWR0aDoyMHB4fS5wbF9iN3tib3R0b206M3B4O2ZvbnQtc2l6ZToxMXB4O2hlaWdodDoxMnB4O2xpbmUtaGVpZ2h0OjEycHg7cmlnaHQ6MDt3aWR0aDo3cHh9LnBsX2I3LC5wbF9iOHtjb2xvcjojMmMyZDJlO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXJ9LnBsX2I4e2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OjUwMDtoZWlnaHQ6MjRweDtsZWZ0OjUwJTtsaW5lLWhlaWdodDoyNHB4O3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpfS5wbF9iNysucGxfYjh7Zm9udC1zaXplOjE3cHg7bGVmdDowO3RvcDowO3RyYW5zZm9ybTpub25lO3dpZHRoOjEwcHh9PC9zdHlsZT48c3R5bGU+LnBsX2J3e3Bvc2l0aW9uOnJlbGF0aXZlfS5wbF9ieHtmaWxsOnRyYW5zcGFyZW50O2Rpc3BsYXk6YmxvY2s7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfS5wbF9ieXtzdHJva2U6cmdiYSg2NiwwLDI1NSwuMDgpfS5wbF9ientzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZTojMjhjNzVkO2ZpbGw6cmdiYSg0MCwxOTksOTMsMCk7dHJhbnNpdGlvbjpzdHJva2UtZGFzaG9mZnNldCAuNHMgZWFzZS1pbi1vdXQsZmlsbCAuMnMgZWFzZS1vdXR9LnBsX2Iwe2hlaWdodDoyOXB4O2xlZnQ6Y2FsYyg1MCUgLSAxOHB4KTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYyg1MCUgLSAxNnB4KTt3aWR0aDozNnB4fS5wbF9iMXtoZWlnaHQ6MzZweDtsZWZ0OmNhbGMoNTAlIC0gOXB4KTtsZWZ0OmNhbGMoNTAlIC0gMTBweCk7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoNTAlICsgM3B4KTt0b3A6Y2FsYyg1MCUgLSAxOHB4KTt3aWR0aDoyMHB4fS5wbF9iMntiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIwd2lkdGg9JTI3MjMlMjclMjBoZWlnaHQ9JTI3MTYlMjclMjBmaWxsPSUyN25vbmUlMjclMjB4bWxucz0lMjdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyNyUzRSUzQ3BhdGglMjBmaWxsLXJ1bGU9JTI3ZXZlbm9kZCUyNyUyMGNsaXAtcnVsZT0lMjdldmVub2RkJTI3JTIwZD0lMjdNMjEuNjc1Ljk1Yy0uOTI1LS45MjUtMi4zMTMtLjkyNS0zLjIzOCUyMDBsLTkuMjUlMjA5LjI1LTQuNjI1LTQuNjI1Yy0uOTI1LS45MjUtMi4zMTItLjkyNS0zLjIzNyUyMDBDLjQlMjA2LjUuNCUyMDcuODg4JTIwMS4zMjUlMjA4LjgxM2w2LjI0MyUyMDYuMjQzYy40NjMuNDYzLjkyNS42OTQlMjAxLjYyLjY5NC42OTMlMjAwJTIwMS4xNTUtLjIzMSUyMDEuNjE4LS42OTRMMjEuNjc1JTIwNC4xODhjLjkyNS0uOTI1LjkyNS0yLjMxMyUyMDAtMy4yMzhaJTI3JTIwZmlsbD0lMjclMjNmZmYlMjcvJTNFJTNDL3N2ZyUzRSIpO2JhY2tncm91bmQtcG9zaXRpb246NTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtoZWlnaHQ6MTZweDtsZWZ0OmNhbGMoNTAlIC0gMTJweCk7b3BhY2l0eTowO3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDUwJSAtIDhweCk7dHJhbnNmb3JtOnNjYWxlKDApO3dpZHRoOjIzcHh9LnBsX2IyLC5wbF9iMHt0cmFuc2l0aW9uLWR1cmF0aW9uOi4yczt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybSxvcGFjaXR5O3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0fS5wbF9iMyAucGxfYjB7aGVpZ2h0OjMycHg7bGVmdDpjYWxjKDUwJSAtIDlweCk7dG9wOmNhbGMoNTAlIC0gMTZweCk7d2lkdGg6MThweH0ucGxfYjMgLnBsX2Iye2hlaWdodDoxNHB4O2xlZnQ6Y2FsYyg1MCUgLSA5cHgpO3RvcDpjYWxjKDUwJSAtIDdweCk7d2lkdGg6MThweH0ucGxfYjQgLnBsX2Iwe29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoMCl9LnBsX2I0IC5wbF9iMntvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpfS5wbF9iNCAucGxfYnp7ZmlsbDojMjhjNzVkfTwvc3R5bGU+PHN0eWxlPi5wbF9iYntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoNjYsMCwyNTUsLjA4KTtib3JkZXItcmFkaXVzOjEycHg7Y29sb3I6IzJjMmQyZTtoZWlnaHQ6ODRweDtwYWRkaW5nOjAgMjBweH0ucGxfYmMsLnBsX2Jie2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5OmZsZXh9LnBsX2Jje2ZsZXgtYmFzaXM6MzYlO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWF4LXdpZHRoOjMwNXB4O21pbi13aWR0aDoxODVweH0ucGxfYmV7Zm9udC1zaXplOjE1cHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjIwcHg7bWFyZ2luLWJvdHRvbToycHh9LnBsX2Jme2NvbG9yOiM5MTkzOTk7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MThweDtvcGFjaXR5OjE7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb24tZHVyYXRpb246LjJzO3RyYW5zaXRpb24tcHJvcGVydHk6aGVpZ2h0LG9wYWNpdHk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXR9LnBsX2Jne2ZsZXg6bm9uZTttYXJnaW46MCAxNnB4fS5wbF9iaHthbGlnbi1pdGVtczpjZW50ZXI7Y291bnRlci1yZXNldDpjb3VudGVyO2Rpc3BsYXk6ZmxleDtmbGV4OjE7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bWFyZ2luOjA7cGFkZGluZzowfS5wbF9iaDphZnRlcntib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwxNiw2MSwuMTIpO2NvbnRlbnQ6IiI7aGVpZ2h0OjUycHg7d2lkdGg6MXB4fS5wbF9iaXthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6IzkxOTM5OTtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MThweDtsaXN0LXN0eWxlOm5vbmU7dHJhbnNpdGlvbjpjb2xvciAuMnMgZWFzZS1vdXQ7d2hpdGUtc3BhY2U6cHJlLWxpbmV9LnBsX2JpOmJlZm9yZXtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwxNiw2MSwuMTQpO2JvcmRlci1yYWRpdXM6NTAlO2NvbnRlbnQ6Y291bnRlcihjb3VudGVyKTtjb3VudGVyLWluY3JlbWVudDpjb3VudGVyO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc2l6ZToxNXB4O2hlaWdodDoyNHB4O2xpbmUtaGVpZ2h0OjIycHg7bWFyZ2luLXJpZ2h0OjhweDt0ZXh0LWFsaWduOmNlbnRlcjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMnMgZWFzZS1vdXQ7d2lkdGg6MjRweH0ucGxfYmkucGxfYmosLnBsX2JpOmJlZm9yZXtjb2xvcjojMmMyZDJlfS5wbF9iaS5wbF9iajpiZWZvcmV7Ym9yZGVyOjFweCBzb2xpZCAjNDIwMGZmfS5wbF9ia3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnJTIwd2lkdGg9JTI3MjAlMjclMjBoZWlnaHQ9JTI3OCUyNyUyMHZpZXdCb3g9JTI3MCUyMDAlMjAyMSUyMDglMjclMjBmaWxsPSUyN25vbmUlMjclMjB4bWxucz0lMjdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyNyUzRSUzQ3BhdGglMjBkPSUyN00yMC4zNTclMjA0LjM1NGEuNS41JTIwMCUyMDAlMjAwJTIwMC0uNzA4TDE3LjE3NC40NjRhLjUuNSUyMDAlMjAxJTIwMC0uNzA3LjcwOEwxOS4yOTYlMjA0bC0yLjgyOSUyMDIuODI4YS41LjUlMjAwJTIwMSUyMDAlMjAuNzA3LjcwOGwzLjE4My0zLjE4MlpNLjAwMyUyMDQuNWgyMHYtMWgtMjB2MVolMjclMjBmaWxsPSUyNyUyMzAwMCUyNy8lM0UlM0Mvc3ZnJTNFIik7aGVpZ2h0OjhweDt3aWR0aDoyMHB4fS5wbF9iYi5wbF9ibHtwYWRkaW5nOjAgMTZweH0ucGxfYmIucGxfYmwgLnBsX2JpOmJlZm9yZXtmb250LXNpemU6MTNweDtoZWlnaHQ6MjRweDtsaW5lLWhlaWdodDoyMnB4O3dpZHRoOjI0cHh9LnBsX2JiLnBsX2JsIC5wbF9iY3tmbGV4LWJhc2lzOjE4NXB4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ucGxfYmIucGxfYmwgLnBsX2Jte3dpZHRoOjEwMHB4fS5wbF9iYi5wbF9ibCAucGxfYmZ7aGVpZ2h0OjM2cHh9LnBsX2JiLnBsX2JuIC5wbF9iZntoZWlnaHQ6MDtvcGFjaXR5OjB9PC9zdHlsZT48c3R5bGU+LnBsX2F0e2JhY2tncm91bmQ6cmdiYSgwLDE2LDYxLC4xMik7aGVpZ2h0OjFweDt3aWR0aDoxMDAlfTwvc3R5bGU+PHN0eWxlPi5wbF9haXtmb250LXdlaWdodDo1MDA7bWFyZ2luLWJvdHRvbToxNnB4O21hcmdpbi1sZWZ0OjIwcHg7bWFyZ2luLXRvcDowfS5wbF9hai5wbF9haSwucGxfYWl7Zm9udC1zaXplOjE3cHg7bGluZS1oZWlnaHQ6MjRweH08L3N0eWxlPjxzdHlsZT4ucGxfeXt3aWR0aDoxMDAlfTwvc3R5bGU+PHN0eWxlPi5wbF9he3dpZHRoOjEwMCV9PC9zdHlsZT48c3R5bGU+LnBsX2J7Ym90dG9tOjA7Ym94LXNpemluZzpib3JkZXItYm94O2xlZnQ6MDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMDAlKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNXM7ei1pbmRleDoyMH0ucGxfY3t0cmFuc2Zvcm06dHJhbnNsYXRlKDApfS5wbF9le3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEwMCUpfS5wbF9mOmhvdmVye2NvbG9yOiM5OTl9LnBsX2d7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHdpZHRoPSUyNzE2JTI3JTIwaGVpZ2h0PSUyNzE2JTI3JTIwZmlsbD0lMjdub25lJTI3JTIweG1sbnM9JTI3aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmclMjclM0UlM0NwYXRoJTIwZmlsbC1ydWxlPSUyN2V2ZW5vZGQlMjclMjBjbGlwLXJ1bGU9JTI3ZXZlbm9kZCUyNyUyMGQ9JTI3TTYuNTg2JTIwOCUyMDQuMjkzJTIwNS43MDdhLjk5OS45OTklMjAwJTIwMSUyMDElMjAxLjQxNC0xLjQxNEw4JTIwNi41ODVsMi4yOTMtMi4yOTJhMSUyMDElMjAwJTIwMCUyMDElMjAxLjQxNCUyMDEuNDEzTDkuNDE0JTIwOGwyLjI5MyUyMDIuMjk0YTElMjAxJTIwMCUyMDAlMjAxLTEuNDE0JTIwMS40MTRMOCUyMDkuNDEzbC0yLjI5MyUyMDIuMjkzYTElMjAxJTIwMCUyMDAlMjAxLTEuNDE0LTEuNDE1TDYuNTg2JTIwOFolMjclMjBmaWxsPSUyNyUyMzMzMyUyNy8lM0UlM0Mvc3ZnJTNFIik7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCU7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxNnB4O2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6bm9uZTtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MDt6LWluZGV4OjEwMH0ucGxfaCwucGxfYjpob3Zlcj4ucGxfZ3tkaXNwbGF5OmZsZXh9PC9zdHlsZT48c3R5bGUgZGF0YS1qc3M9IiIgZGF0YS1tZXRhPSJUb29sdGlwLCBVbnRoZW1lZCI+Ci5Ub29sdGlwLXNob3ctMC0xLTkxIHsKICBhbmltYXRpb246IFRvb2x0aXAta2V5ZnJhbWVzLWZhZGVJbi0wLTEtOTQgYm90aCB2YXIoLS12a3VpLS1hbmltYXRpb25fZHVyYXRpb25fbSwgMC4ycykgdmFyKC0tdmt1aS0tYW5pbWF0aW9uX2Vhc2luZ19kZWZhdWx0LCBjdWJpYy1iZXppZXIoMC4zLCAwLjMsIDAuNSwgMSkpOwp9Ci5Ub29sdGlwLWhpZGUtMC0xLTkyIHsKICBhbmltYXRpb246IFRvb2x0aXAta2V5ZnJhbWVzLWZhZGVPdXQtMC0xLTk1IGJvdGggdmFyKC0tdmt1aS0tYW5pbWF0aW9uX2R1cmF0aW9uX3MsIDAuMXMpIHZhcigtLXZrdWktLWFuaW1hdGlvbl9lYXNpbmdfZGVmYXVsdCwgY3ViaWMtYmV6aWVyKDAuMywgMC4zLCAwLjUsIDEpKTsKfQouVG9vbHRpcC1wcmlzdGluZS0wLTEtOTMgewogIGFuaW1hdGlvbi1kdXJhdGlvbjogMHM7Cn0KQC13ZWJraXQta2V5ZnJhbWVzIFRvb2x0aXAta2V5ZnJhbWVzLWZhZGVJbi0wLTEtOTQgewogIGZyb20gewogICAgb3BhY2l0eTogMDsKICB9CiAgdG8gewogICAgb3BhY2l0eTogMTsKICB9Cn0KQC13ZWJraXQta2V5ZnJhbWVzIFRvb2x0aXAta2V5ZnJhbWVzLWZhZGVPdXQtMC0xLTk1IHsKICBmcm9tIHsKICAgIG9wYWNpdHk6IDE7CiAgfQogIHRvIHsKICAgIG9wYWNpdHk6IDA7CiAgfQp9Cjwvc3R5bGU+PHN0eWxlIGRhdGEtanNzPSIiIGRhdGEtbWV0YT0iQnV0dG9uLCBVbnRoZW1lZCI+Ci5CdXR0b24tcm9vdC0wLTEtNDMgewogIGJvcmRlcjogbm9uZTsKICBjdXJzb3I6IHBvaW50ZXI7CiAgbWFyZ2luOiAwOwogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICBvdXRsaW5lOiBub25lOwogIHBhZGRpbmc6IDA7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIG1pbi13aWR0aDogODBweDsKICBiYWNrZ3JvdW5kOiBub25lOwogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHVzZXItc2VsZWN0OiBub25lOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tdmt1aS0tc2l6ZV9ib3JkZXJfcmFkaXVzLS1yZWd1bGFyLCA4cHgpOwogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Cn0KLkJ1dHRvbi1yb290LTAtMS00Mzpob3ZlciB7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwp9Ci5CdXR0b24tY29udGVudC0wLTEtNDQgewogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwp9Ci5CdXR0b24tbG9hZGVyLTAtMS00NSB7CiAgdG9wOiA1MCU7CiAgbGVmdDogNTAlOwogIHotaW5kZXg6IDE7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwp9Ci5CdXR0b24tbGFiZWwtMC0xLTQ2IHsKICBvdmVyZmxvdzogaGlkZGVuOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwp9Ci5CdXR0b24tcHJpbWFyeS1hY2NlbnQtMC0xLTQ3IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9jb250cmFzdCwgI0ZGRkZGRik7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9hY2NlbnQsICMwMDVGRjkpOwp9Ci5CdXR0b24tcHJpbWFyeS1hY2NlbnQtMC0xLTQ3OmhvdmVyLCAuQnV0dG9uLXByaW1hcnktYWNjZW50LTAtMS00Nzpmb2N1cy12aXNpYmxlIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9jb250cmFzdCwgI0ZGRkZGRik7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9hY2NlbnQtLWhvdmVyLCAjMDA1Q0YxKTsKfQouQnV0dG9uLXByaW1hcnktYWNjZW50LTAtMS00NzphY3RpdmUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X2NvbnRyYXN0LCAjRkZGRkZGKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX2FjY2VudC0tYWN0aXZlLCAjMDA1OUVBKTsKfQouQnV0dG9uLXByaW1hcnktYWNjZW50LTAtMS00Ny5CdXR0b24tZGlzYWJsZWQtMC0xLTc0IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9jb250cmFzdCwgI0ZGRkZGRik7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9hY2NlbnQsICMwMDVGRjkpOwp9Ci5CdXR0b24tcHJpbWFyeS1uZWdhdGl2ZS0wLTEtNDggewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X2NvbnRyYXN0LCAjRkZGRkZGKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX25lZ2F0aXZlLCAjRUQwQTM0KTsKfQouQnV0dG9uLXByaW1hcnktbmVnYXRpdmUtMC0xLTQ4OmhvdmVyLCAuQnV0dG9uLXByaW1hcnktbmVnYXRpdmUtMC0xLTQ4OmZvY3VzLXZpc2libGUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X2NvbnRyYXN0LCAjRkZGRkZGKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX25lZ2F0aXZlLS1ob3ZlciwgI0U0MEEzNCk7Cn0KLkJ1dHRvbi1wcmltYXJ5LW5lZ2F0aXZlLTAtMS00ODphY3RpdmUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X2NvbnRyYXN0LCAjRkZGRkZGKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX25lZ2F0aXZlLS1hY3RpdmUsICNEQTBBMzUpOwp9Ci5CdXR0b24tcHJpbWFyeS1uZWdhdGl2ZS0wLTEtNDguQnV0dG9uLWRpc2FibGVkLTAtMS03NCB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfY29udHJhc3QsICNGRkZGRkYpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfbmVnYXRpdmUsICNFRDBBMzQpOwp9Ci5CdXR0b24tcHJpbWFyeS1uZXV0cmFsLTAtMS00OSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfcHJpbWFyeSwgIzJDMkQyRSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnksICNGMEYxRjMpOwp9Ci5CdXR0b24tcHJpbWFyeS1uZXV0cmFsLTAtMS00OTpob3ZlciwgLkJ1dHRvbi1wcmltYXJ5LW5ldXRyYWwtMC0xLTQ5OmZvY3VzLXZpc2libGUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5LS1ob3ZlciwgI0U2RThFQyk7Cn0KLkJ1dHRvbi1wcmltYXJ5LW5ldXRyYWwtMC0xLTQ5OmFjdGl2ZSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfcHJpbWFyeSwgIzJDMkQyRSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnktLWFjdGl2ZSwgI0REREZFNCk7Cn0KLkJ1dHRvbi1wcmltYXJ5LW5ldXRyYWwtMC0xLTQ5LkJ1dHRvbi1kaXNhYmxlZC0wLTEtNzQgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5LCAjRjBGMUYzKTsKfQouQnV0dG9uLXByaW1hcnktbmV1dHJhbC1tdXRlZC0wLTEtNTAgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5LCAjRjBGMUYzKTsKfQouQnV0dG9uLXByaW1hcnktbmV1dHJhbC1tdXRlZC0wLTEtNTA6aG92ZXIsIC5CdXR0b24tcHJpbWFyeS1uZXV0cmFsLW11dGVkLTAtMS01MDpmb2N1cy12aXNpYmxlIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9wcmltYXJ5LCAjMkMyRDJFKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3NlY29uZGFyeS0taG92ZXIsICNFNkU4RUMpOwp9Ci5CdXR0b24tcHJpbWFyeS1uZXV0cmFsLW11dGVkLTAtMS01MDphY3RpdmUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5LS1hY3RpdmUsICNERERGRTQpOwp9Ci5CdXR0b24tcHJpbWFyeS1uZXV0cmFsLW11dGVkLTAtMS01MC5CdXR0b24tZGlzYWJsZWQtMC0xLTc0IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9wcmltYXJ5LCAjMkMyRDJFKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3NlY29uZGFyeSwgI0YwRjFGMyk7Cn0KLkJ1dHRvbi1wcmltYXJ5LW5ldXRyYWwtbXV0ZWQtMC0xLTUwIC5CdXR0b24tYmVmb3JlLTAtMS02OCwgLkJ1dHRvbi1wcmltYXJ5LW5ldXRyYWwtbXV0ZWQtMC0xLTUwIC5CdXR0b24tYWZ0ZXItMC0xLTY5LCAuQnV0dG9uLXByaW1hcnktbmV1dHJhbC1tdXRlZC0wLTEtNTAuQnV0dG9uLXNpbmdsZUljb24tMC0xLTY3IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfaWNvbl9zZWNvbmRhcnksICNBNUE3QUQpOwp9Ci5CdXR0b24tcHJpbWFyeS1uZXV0cmFsLW11dGVkLTAtMS01MDpob3ZlciAuQnV0dG9uLWJlZm9yZS0wLTEtNjgsIC5CdXR0b24tcHJpbWFyeS1uZXV0cmFsLW11dGVkLTAtMS01MDpob3ZlciAuQnV0dG9uLWFmdGVyLTAtMS02OSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2ljb25fcHJpbWFyeSwgIzJDMkQyRSk7Cn0KLkJ1dHRvbi1wcmltYXJ5LW5ldXRyYWwtbXV0ZWQtMC0xLTUwLkJ1dHRvbi1kaXNhYmxlZC0wLTEtNzQ6aG92ZXIgLkJ1dHRvbi1iZWZvcmUtMC0xLTY4LCAuQnV0dG9uLXByaW1hcnktbmV1dHJhbC1tdXRlZC0wLTEtNTAuQnV0dG9uLWRpc2FibGVkLTAtMS03NDpob3ZlciAuQnV0dG9uLWFmdGVyLTAtMS02OSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2ljb25fc2Vjb25kYXJ5LCAjQTVBN0FEKTsKfQouQnV0dG9uLXByaW1hcnktcG9zaXRpdmUtMC0xLTUxIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9jb250cmFzdCwgI0ZGRkZGRik7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9wb3NpdGl2ZSwgIzBEQzI2OCk7Cn0KLkJ1dHRvbi1wcmltYXJ5LXBvc2l0aXZlLTAtMS01MTpob3ZlciwgLkJ1dHRvbi1wcmltYXJ5LXBvc2l0aXZlLTAtMS01MTpmb2N1cy12aXNpYmxlIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9jb250cmFzdCwgI0ZGRkZGRik7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9wb3NpdGl2ZS0taG92ZXIsICMwQ0JCNjYpOwp9Ci5CdXR0b24tcHJpbWFyeS1wb3NpdGl2ZS0wLTEtNTE6YWN0aXZlIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9jb250cmFzdCwgI0ZGRkZGRik7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9wb3NpdGl2ZS0tYWN0aXZlLCAjMENCNDY1KTsKfQouQnV0dG9uLXByaW1hcnktcG9zaXRpdmUtMC0xLTUxLkJ1dHRvbi1kaXNhYmxlZC0wLTEtNzQgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X2NvbnRyYXN0LCAjRkZGRkZGKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3Bvc2l0aXZlLCAjMERDMjY4KTsKfQouQnV0dG9uLXNlY29uZGFyeS1hY2NlbnQtMC0xLTUyIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9hY2NlbnQsICMwMDVGRjkpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5LCAjRjBGMUYzKTsKfQouQnV0dG9uLXNlY29uZGFyeS1hY2NlbnQtMC0xLTUyOmhvdmVyLCAuQnV0dG9uLXNlY29uZGFyeS1hY2NlbnQtMC0xLTUyOmZvY3VzLXZpc2libGUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X2FjY2VudCwgIzAwNUZGOSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnktLWhvdmVyLCAjRTZFOEVDKTsKfQouQnV0dG9uLXNlY29uZGFyeS1hY2NlbnQtMC0xLTUyOmFjdGl2ZSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfYWNjZW50LCAjMDA1RkY5KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3NlY29uZGFyeS0tYWN0aXZlLCAjRERERkU0KTsKfQouQnV0dG9uLXNlY29uZGFyeS1hY2NlbnQtMC0xLTUyLkJ1dHRvbi1kaXNhYmxlZC0wLTEtNzQgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X2FjY2VudCwgIzAwNUZGOSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnksICNGMEYxRjMpOwp9Ci5CdXR0b24tc2Vjb25kYXJ5LW5lZ2F0aXZlLTAtMS01MyB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfbmVnYXRpdmUsICNFRDBBMzQpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5LCAjRjBGMUYzKTsKfQouQnV0dG9uLXNlY29uZGFyeS1uZWdhdGl2ZS0wLTEtNTM6aG92ZXIsIC5CdXR0b24tc2Vjb25kYXJ5LW5lZ2F0aXZlLTAtMS01Mzpmb2N1cy12aXNpYmxlIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9uZWdhdGl2ZSwgI0VEMEEzNCk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnktLWhvdmVyLCAjRTZFOEVDKTsKfQouQnV0dG9uLXNlY29uZGFyeS1uZWdhdGl2ZS0wLTEtNTM6YWN0aXZlIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9uZWdhdGl2ZSwgI0VEMEEzNCk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnktLWFjdGl2ZSwgI0REREZFNCk7Cn0KLkJ1dHRvbi1zZWNvbmRhcnktbmVnYXRpdmUtMC0xLTUzLkJ1dHRvbi1kaXNhYmxlZC0wLTEtNzQgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X25lZ2F0aXZlLCAjRUQwQTM0KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3NlY29uZGFyeSwgI0YwRjFGMyk7Cn0KLkJ1dHRvbi1zZWNvbmRhcnktbmV1dHJhbC0wLTEtNTQgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5LCAjRjBGMUYzKTsKfQouQnV0dG9uLXNlY29uZGFyeS1uZXV0cmFsLTAtMS01NDpob3ZlciwgLkJ1dHRvbi1zZWNvbmRhcnktbmV1dHJhbC0wLTEtNTQ6Zm9jdXMtdmlzaWJsZSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfcHJpbWFyeSwgIzJDMkQyRSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnktLWhvdmVyLCAjRTZFOEVDKTsKfQouQnV0dG9uLXNlY29uZGFyeS1uZXV0cmFsLTAtMS01NDphY3RpdmUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5LS1hY3RpdmUsICNERERGRTQpOwp9Ci5CdXR0b24tc2Vjb25kYXJ5LW5ldXRyYWwtMC0xLTU0LkJ1dHRvbi1kaXNhYmxlZC0wLTEtNzQgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5LCAjRjBGMUYzKTsKfQouQnV0dG9uLXNlY29uZGFyeS1uZXV0cmFsLW11dGVkLTAtMS01NSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfcHJpbWFyeSwgIzJDMkQyRSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnksICNGMEYxRjMpOwp9Ci5CdXR0b24tc2Vjb25kYXJ5LW5ldXRyYWwtbXV0ZWQtMC0xLTU1OmhvdmVyLCAuQnV0dG9uLXNlY29uZGFyeS1uZXV0cmFsLW11dGVkLTAtMS01NTpmb2N1cy12aXNpYmxlIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9wcmltYXJ5LCAjMkMyRDJFKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3NlY29uZGFyeS0taG92ZXIsICNFNkU4RUMpOwp9Ci5CdXR0b24tc2Vjb25kYXJ5LW5ldXRyYWwtbXV0ZWQtMC0xLTU1OmFjdGl2ZSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfcHJpbWFyeSwgIzJDMkQyRSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnktLWFjdGl2ZSwgI0REREZFNCk7Cn0KLkJ1dHRvbi1zZWNvbmRhcnktbmV1dHJhbC1tdXRlZC0wLTEtNTUuQnV0dG9uLWRpc2FibGVkLTAtMS03NCB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfcHJpbWFyeSwgIzJDMkQyRSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnksICNGMEYxRjMpOwp9Ci5CdXR0b24tc2Vjb25kYXJ5LW5ldXRyYWwtbXV0ZWQtMC0xLTU1IC5CdXR0b24tYmVmb3JlLTAtMS02OCwgLkJ1dHRvbi1zZWNvbmRhcnktbmV1dHJhbC1tdXRlZC0wLTEtNTUgLkJ1dHRvbi1hZnRlci0wLTEtNjksIC5CdXR0b24tc2Vjb25kYXJ5LW5ldXRyYWwtbXV0ZWQtMC0xLTU1LkJ1dHRvbi1zaW5nbGVJY29uLTAtMS02NyB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2ljb25fc2Vjb25kYXJ5LCAjQTVBN0FEKTsKfQouQnV0dG9uLXNlY29uZGFyeS1uZXV0cmFsLW11dGVkLTAtMS01NTpob3ZlciAuQnV0dG9uLWJlZm9yZS0wLTEtNjgsIC5CdXR0b24tc2Vjb25kYXJ5LW5ldXRyYWwtbXV0ZWQtMC0xLTU1OmhvdmVyIC5CdXR0b24tYWZ0ZXItMC0xLTY5IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfaWNvbl9wcmltYXJ5LCAjMkMyRDJFKTsKfQouQnV0dG9uLXNlY29uZGFyeS1uZXV0cmFsLW11dGVkLTAtMS01NS5CdXR0b24tZGlzYWJsZWQtMC0xLTc0OmhvdmVyIC5CdXR0b24tYmVmb3JlLTAtMS02OCwgLkJ1dHRvbi1zZWNvbmRhcnktbmV1dHJhbC1tdXRlZC0wLTEtNTUuQnV0dG9uLWRpc2FibGVkLTAtMS03NDpob3ZlciAuQnV0dG9uLWFmdGVyLTAtMS02OSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2ljb25fc2Vjb25kYXJ5LCAjQTVBN0FEKTsKfQouQnV0dG9uLXNlY29uZGFyeS1wb3NpdGl2ZS0wLTEtNTYgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3Bvc2l0aXZlLCAjMERDMjY4KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3NlY29uZGFyeSwgI0YwRjFGMyk7Cn0KLkJ1dHRvbi1zZWNvbmRhcnktcG9zaXRpdmUtMC0xLTU2OmhvdmVyLCAuQnV0dG9uLXNlY29uZGFyeS1wb3NpdGl2ZS0wLTEtNTY6Zm9jdXMtdmlzaWJsZSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfcG9zaXRpdmUsICMwREMyNjgpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5LS1ob3ZlciwgI0U2RThFQyk7Cn0KLkJ1dHRvbi1zZWNvbmRhcnktcG9zaXRpdmUtMC0xLTU2OmFjdGl2ZSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfcG9zaXRpdmUsICMwREMyNjgpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5LS1hY3RpdmUsICNERERGRTQpOwp9Ci5CdXR0b24tc2Vjb25kYXJ5LXBvc2l0aXZlLTAtMS01Ni5CdXR0b24tZGlzYWJsZWQtMC0xLTc0IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9wb3NpdGl2ZSwgIzBEQzI2OCk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnksICNGMEYxRjMpOwp9Ci5CdXR0b24tdGVydGlhcnktYWNjZW50LTAtMS01NyB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfYWNjZW50LCAjMDA1RkY5KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpOwp9Ci5CdXR0b24tdGVydGlhcnktYWNjZW50LTAtMS01Nzpob3ZlciwgLkJ1dHRvbi10ZXJ0aWFyeS1hY2NlbnQtMC0xLTU3OmZvY3VzLXZpc2libGUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X2FjY2VudCwgIzAwNUZGOSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdHJhbnNwYXJlbnQtLWhvdmVyLCByZ2JhKDAsIDE2LCA2MSwgMC4wNCkpOwp9Ci5CdXR0b24tdGVydGlhcnktYWNjZW50LTAtMS01NzphY3RpdmUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X2FjY2VudCwgIzAwNUZGOSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdHJhbnNwYXJlbnQtLWFjdGl2ZSwgcmdiYSgwLCAxNiwgNjEsIDAuMDgpKTsKfQouQnV0dG9uLXRlcnRpYXJ5LWFjY2VudC0wLTEtNTcuQnV0dG9uLWRpc2FibGVkLTAtMS03NCB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfYWNjZW50LCAjMDA1RkY5KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpOwp9Ci5CdXR0b24tdGVydGlhcnktbmVnYXRpdmUtMC0xLTU4IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9uZWdhdGl2ZSwgI0VEMEEzNCk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50KTsKfQouQnV0dG9uLXRlcnRpYXJ5LW5lZ2F0aXZlLTAtMS01ODpob3ZlciwgLkJ1dHRvbi10ZXJ0aWFyeS1uZWdhdGl2ZS0wLTEtNTg6Zm9jdXMtdmlzaWJsZSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfbmVnYXRpdmUsICNFRDBBMzQpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RyYW5zcGFyZW50LS1ob3ZlciwgcmdiYSgwLCAxNiwgNjEsIDAuMDQpKTsKfQouQnV0dG9uLXRlcnRpYXJ5LW5lZ2F0aXZlLTAtMS01ODphY3RpdmUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X25lZ2F0aXZlLCAjRUQwQTM0KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudC0tYWN0aXZlLCByZ2JhKDAsIDE2LCA2MSwgMC4wOCkpOwp9Ci5CdXR0b24tdGVydGlhcnktbmVnYXRpdmUtMC0xLTU4LkJ1dHRvbi1kaXNhYmxlZC0wLTEtNzQgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X25lZ2F0aXZlLCAjRUQwQTM0KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpOwp9Ci5CdXR0b24tdGVydGlhcnktbmV1dHJhbC0wLTEtNTkgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RyYW5zcGFyZW50LCB0cmFuc3BhcmVudCk7Cn0KLkJ1dHRvbi10ZXJ0aWFyeS1uZXV0cmFsLTAtMS01OTpob3ZlciwgLkJ1dHRvbi10ZXJ0aWFyeS1uZXV0cmFsLTAtMS01OTpmb2N1cy12aXNpYmxlIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9wcmltYXJ5LCAjMkMyRDJFKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudC0taG92ZXIsIHJnYmEoMCwgMTYsIDYxLCAwLjA0KSk7Cn0KLkJ1dHRvbi10ZXJ0aWFyeS1uZXV0cmFsLTAtMS01OTphY3RpdmUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RyYW5zcGFyZW50LS1hY3RpdmUsIHJnYmEoMCwgMTYsIDYxLCAwLjA4KSk7Cn0KLkJ1dHRvbi10ZXJ0aWFyeS1uZXV0cmFsLTAtMS01OS5CdXR0b24tZGlzYWJsZWQtMC0xLTc0IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9wcmltYXJ5LCAjMkMyRDJFKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpOwp9Ci5CdXR0b24tdGVydGlhcnktbmV1dHJhbC1tdXRlZC0wLTEtNjAgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RyYW5zcGFyZW50LCB0cmFuc3BhcmVudCk7Cn0KLkJ1dHRvbi10ZXJ0aWFyeS1uZXV0cmFsLW11dGVkLTAtMS02MDpob3ZlciwgLkJ1dHRvbi10ZXJ0aWFyeS1uZXV0cmFsLW11dGVkLTAtMS02MDpmb2N1cy12aXNpYmxlIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9wcmltYXJ5LCAjMkMyRDJFKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudC0taG92ZXIsIHJnYmEoMCwgMTYsIDYxLCAwLjA0KSk7Cn0KLkJ1dHRvbi10ZXJ0aWFyeS1uZXV0cmFsLW11dGVkLTAtMS02MDphY3RpdmUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RyYW5zcGFyZW50LS1hY3RpdmUsIHJnYmEoMCwgMTYsIDYxLCAwLjA4KSk7Cn0KLkJ1dHRvbi10ZXJ0aWFyeS1uZXV0cmFsLW11dGVkLTAtMS02MC5CdXR0b24tZGlzYWJsZWQtMC0xLTc0IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9wcmltYXJ5LCAjMkMyRDJFKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpOwp9Ci5CdXR0b24tdGVydGlhcnktbmV1dHJhbC1tdXRlZC0wLTEtNjAgLkJ1dHRvbi1iZWZvcmUtMC0xLTY4LCAuQnV0dG9uLXRlcnRpYXJ5LW5ldXRyYWwtbXV0ZWQtMC0xLTYwIC5CdXR0b24tYWZ0ZXItMC0xLTY5LCAuQnV0dG9uLXRlcnRpYXJ5LW5ldXRyYWwtbXV0ZWQtMC0xLTYwLkJ1dHRvbi1zaW5nbGVJY29uLTAtMS02NyB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2ljb25fc2Vjb25kYXJ5LCAjQTVBN0FEKTsKfQouQnV0dG9uLXRlcnRpYXJ5LW5ldXRyYWwtbXV0ZWQtMC0xLTYwOmhvdmVyIC5CdXR0b24tYmVmb3JlLTAtMS02OCwgLkJ1dHRvbi10ZXJ0aWFyeS1uZXV0cmFsLW11dGVkLTAtMS02MDpob3ZlciAuQnV0dG9uLWFmdGVyLTAtMS02OSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2ljb25fcHJpbWFyeSwgIzJDMkQyRSk7Cn0KLkJ1dHRvbi10ZXJ0aWFyeS1uZXV0cmFsLW11dGVkLTAtMS02MC5CdXR0b24tZGlzYWJsZWQtMC0xLTc0OmhvdmVyIC5CdXR0b24tYmVmb3JlLTAtMS02OCwgLkJ1dHRvbi10ZXJ0aWFyeS1uZXV0cmFsLW11dGVkLTAtMS02MC5CdXR0b24tZGlzYWJsZWQtMC0xLTc0OmhvdmVyIC5CdXR0b24tYWZ0ZXItMC0xLTY5IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfaWNvbl9zZWNvbmRhcnksICNBNUE3QUQpOwp9Ci5CdXR0b24tdGVydGlhcnktcG9zaXRpdmUtMC0xLTYxIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9wb3NpdGl2ZSwgIzBEQzI2OCk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50KTsKfQouQnV0dG9uLXRlcnRpYXJ5LXBvc2l0aXZlLTAtMS02MTpob3ZlciwgLkJ1dHRvbi10ZXJ0aWFyeS1wb3NpdGl2ZS0wLTEtNjE6Zm9jdXMtdmlzaWJsZSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfcG9zaXRpdmUsICMwREMyNjgpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RyYW5zcGFyZW50LS1ob3ZlciwgcmdiYSgwLCAxNiwgNjEsIDAuMDQpKTsKfQouQnV0dG9uLXRlcnRpYXJ5LXBvc2l0aXZlLTAtMS02MTphY3RpdmUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3Bvc2l0aXZlLCAjMERDMjY4KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudC0tYWN0aXZlLCByZ2JhKDAsIDE2LCA2MSwgMC4wOCkpOwp9Ci5CdXR0b24tdGVydGlhcnktcG9zaXRpdmUtMC0xLTYxLkJ1dHRvbi1kaXNhYmxlZC0wLTEtNzQgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3Bvc2l0aXZlLCAjMERDMjY4KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpOwp9Ci5CdXR0b24tb3V0bGluZS1hY2NlbnQtMC0xLTYyIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9hY2NlbnQsICMwMDVGRjkpOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS12a3VpLS1jb2xvcl9zdHJva2VfYWNjZW50LCAjMDA1RkY5KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpOwp9Ci5CdXR0b24tb3V0bGluZS1hY2NlbnQtMC0xLTYyOmhvdmVyLCAuQnV0dG9uLW91dGxpbmUtYWNjZW50LTAtMS02Mjpmb2N1cy12aXNpYmxlIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9hY2NlbnQsICMwMDVGRjkpOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS12a3VpLS1jb2xvcl9zdHJva2VfYWNjZW50LS1ob3ZlciwgIzAwNUNGMSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdHJhbnNwYXJlbnQtLWhvdmVyLCByZ2JhKDAsIDE2LCA2MSwgMC4wNCkpOwp9Ci5CdXR0b24tb3V0bGluZS1hY2NlbnQtMC0xLTYyOmFjdGl2ZSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfYWNjZW50LCAjMDA1RkY5KTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tdmt1aS0tY29sb3Jfc3Ryb2tlX2FjY2VudC0tYWN0aXZlLCAjMDA1OUVBKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudC0tYWN0aXZlLCByZ2JhKDAsIDE2LCA2MSwgMC4wOCkpOwp9Ci5CdXR0b24tb3V0bGluZS1hY2NlbnQtMC0xLTYyLkJ1dHRvbi1kaXNhYmxlZC0wLTEtNzQgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X2FjY2VudCwgIzAwNUZGOSk7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLXZrdWktLWNvbG9yX3N0cm9rZV9hY2NlbnQsICMwMDVGRjkpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RyYW5zcGFyZW50LCB0cmFuc3BhcmVudCk7Cn0KLkJ1dHRvbi1vdXRsaW5lLW5lZ2F0aXZlLTAtMS02MyB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfbmVnYXRpdmUsICNFRDBBMzQpOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS12a3VpLS1jb2xvcl9zdHJva2VfbmVnYXRpdmUsICNFRDBBMzQpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RyYW5zcGFyZW50LCB0cmFuc3BhcmVudCk7Cn0KLkJ1dHRvbi1vdXRsaW5lLW5lZ2F0aXZlLTAtMS02Mzpob3ZlciwgLkJ1dHRvbi1vdXRsaW5lLW5lZ2F0aXZlLTAtMS02Mzpmb2N1cy12aXNpYmxlIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9uZWdhdGl2ZSwgI0VEMEEzNCk7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLXZrdWktLWNvbG9yX3N0cm9rZV9uZWdhdGl2ZS0taG92ZXIsICNFNDBBMzQpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RyYW5zcGFyZW50LS1ob3ZlciwgcmdiYSgwLCAxNiwgNjEsIDAuMDQpKTsKfQouQnV0dG9uLW91dGxpbmUtbmVnYXRpdmUtMC0xLTYzOmFjdGl2ZSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfbmVnYXRpdmUsICNFRDBBMzQpOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS12a3VpLS1jb2xvcl9zdHJva2VfbmVnYXRpdmUtLWFjdGl2ZSwgI0RBMEEzNSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdHJhbnNwYXJlbnQtLWFjdGl2ZSwgcmdiYSgwLCAxNiwgNjEsIDAuMDgpKTsKfQouQnV0dG9uLW91dGxpbmUtbmVnYXRpdmUtMC0xLTYzLkJ1dHRvbi1kaXNhYmxlZC0wLTEtNzQgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X25lZ2F0aXZlLCAjRUQwQTM0KTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tdmt1aS0tY29sb3Jfc3Ryb2tlX25lZ2F0aXZlLCAjRUQwQTM0KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpOwp9Ci5CdXR0b24tb3V0bGluZS1uZXV0cmFsLTAtMS02NCB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfcHJpbWFyeSwgIzJDMkQyRSk7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLXZrdWktLWNvbG9yX2ZpZWxkX2JvcmRlcl9hbHBoYSwgcmdiYSgwLCAxNiwgNjEsIDAuMTIpKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpOwp9Ci5CdXR0b24tb3V0bGluZS1uZXV0cmFsLTAtMS02NDpob3ZlciwgLkJ1dHRvbi1vdXRsaW5lLW5ldXRyYWwtMC0xLTY0OmZvY3VzLXZpc2libGUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS12a3VpLS1jb2xvcl9maWVsZF9ib3JkZXJfYWxwaGEtLWhvdmVyLCByZ2JhKDAsIDE2LCA2MSwgMC4xNikpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RyYW5zcGFyZW50LS1ob3ZlciwgcmdiYSgwLCAxNiwgNjEsIDAuMDQpKTsKfQouQnV0dG9uLW91dGxpbmUtbmV1dHJhbC0wLTEtNjQ6YWN0aXZlIHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9wcmltYXJ5LCAjMkMyRDJFKTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tdmt1aS0tY29sb3JfZmllbGRfYm9yZGVyX2FscGhhLS1hY3RpdmUsIHJnYmEoMCwgMTYsIDYxLCAwLjIpKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudC0tYWN0aXZlLCByZ2JhKDAsIDE2LCA2MSwgMC4wOCkpOwp9Ci5CdXR0b24tb3V0bGluZS1uZXV0cmFsLTAtMS02NC5CdXR0b24tZGlzYWJsZWQtMC0xLTc0IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9wcmltYXJ5LCAjMkMyRDJFKTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tdmt1aS0tY29sb3JfZmllbGRfYm9yZGVyX2FscGhhLCByZ2JhKDAsIDE2LCA2MSwgMC4xMikpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RyYW5zcGFyZW50LCB0cmFuc3BhcmVudCk7Cn0KLkJ1dHRvbi1vdXRsaW5lLW5ldXRyYWwtbXV0ZWQtMC0xLTY1IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9wcmltYXJ5LCAjMkMyRDJFKTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tdmt1aS0tY29sb3JfZmllbGRfYm9yZGVyX2FscGhhLCByZ2JhKDAsIDE2LCA2MSwgMC4xMikpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RyYW5zcGFyZW50LCB0cmFuc3BhcmVudCk7Cn0KLkJ1dHRvbi1vdXRsaW5lLW5ldXRyYWwtbXV0ZWQtMC0xLTY1OmhvdmVyLCAuQnV0dG9uLW91dGxpbmUtbmV1dHJhbC1tdXRlZC0wLTEtNjU6Zm9jdXMtdmlzaWJsZSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfcHJpbWFyeSwgIzJDMkQyRSk7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLXZrdWktLWNvbG9yX2ZpZWxkX2JvcmRlcl9hbHBoYS0taG92ZXIsIHJnYmEoMCwgMTYsIDYxLCAwLjE2KSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdHJhbnNwYXJlbnQtLWhvdmVyLCByZ2JhKDAsIDE2LCA2MSwgMC4wNCkpOwp9Ci5CdXR0b24tb3V0bGluZS1uZXV0cmFsLW11dGVkLTAtMS02NTphY3RpdmUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS12a3VpLS1jb2xvcl9maWVsZF9ib3JkZXJfYWxwaGEtLWFjdGl2ZSwgcmdiYSgwLCAxNiwgNjEsIDAuMikpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RyYW5zcGFyZW50LS1hY3RpdmUsIHJnYmEoMCwgMTYsIDYxLCAwLjA4KSk7Cn0KLkJ1dHRvbi1vdXRsaW5lLW5ldXRyYWwtbXV0ZWQtMC0xLTY1LkJ1dHRvbi1kaXNhYmxlZC0wLTEtNzQgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS12a3VpLS1jb2xvcl9maWVsZF9ib3JkZXJfYWxwaGEsIHJnYmEoMCwgMTYsIDYxLCAwLjEyKSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50KTsKfQouQnV0dG9uLW91dGxpbmUtbmV1dHJhbC1tdXRlZC0wLTEtNjUgLkJ1dHRvbi1iZWZvcmUtMC0xLTY4LCAuQnV0dG9uLW91dGxpbmUtbmV1dHJhbC1tdXRlZC0wLTEtNjUgLkJ1dHRvbi1hZnRlci0wLTEtNjksIC5CdXR0b24tb3V0bGluZS1uZXV0cmFsLW11dGVkLTAtMS02NS5CdXR0b24tc2luZ2xlSWNvbi0wLTEtNjcgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9pY29uX3NlY29uZGFyeSwgI0E1QTdBRCk7Cn0KLkJ1dHRvbi1vdXRsaW5lLW5ldXRyYWwtbXV0ZWQtMC0xLTY1OmhvdmVyIC5CdXR0b24tYmVmb3JlLTAtMS02OCwgLkJ1dHRvbi1vdXRsaW5lLW5ldXRyYWwtbXV0ZWQtMC0xLTY1OmhvdmVyIC5CdXR0b24tYWZ0ZXItMC0xLTY5IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfaWNvbl9wcmltYXJ5LCAjMkMyRDJFKTsKfQouQnV0dG9uLW91dGxpbmUtbmV1dHJhbC1tdXRlZC0wLTEtNjUuQnV0dG9uLWRpc2FibGVkLTAtMS03NDpob3ZlciAuQnV0dG9uLWJlZm9yZS0wLTEtNjgsIC5CdXR0b24tb3V0bGluZS1uZXV0cmFsLW11dGVkLTAtMS02NS5CdXR0b24tZGlzYWJsZWQtMC0xLTc0OmhvdmVyIC5CdXR0b24tYWZ0ZXItMC0xLTY5IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfaWNvbl9zZWNvbmRhcnksICNBNUE3QUQpOwp9Ci5CdXR0b24tb3V0bGluZS1wb3NpdGl2ZS0wLTEtNjYgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3Bvc2l0aXZlLCAjMERDMjY4KTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tdmt1aS0tY29sb3Jfc3Ryb2tlX3Bvc2l0aXZlLCAjMERDMjY4KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQpOwp9Ci5CdXR0b24tb3V0bGluZS1wb3NpdGl2ZS0wLTEtNjY6aG92ZXIsIC5CdXR0b24tb3V0bGluZS1wb3NpdGl2ZS0wLTEtNjY6Zm9jdXMtdmlzaWJsZSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfcG9zaXRpdmUsICMwREMyNjgpOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS12a3VpLS1jb2xvcl9zdHJva2VfcG9zaXRpdmUtLWhvdmVyLCAjMENCQjY2KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90cmFuc3BhcmVudC0taG92ZXIsIHJnYmEoMCwgMTYsIDYxLCAwLjA0KSk7Cn0KLkJ1dHRvbi1vdXRsaW5lLXBvc2l0aXZlLTAtMS02NjphY3RpdmUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3Bvc2l0aXZlLCAjMERDMjY4KTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tdmt1aS0tY29sb3Jfc3Ryb2tlX3Bvc2l0aXZlLS1hY3RpdmUsICMwQ0I0NjUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RyYW5zcGFyZW50LS1hY3RpdmUsIHJnYmEoMCwgMTYsIDYxLCAwLjA4KSk7Cn0KLkJ1dHRvbi1vdXRsaW5lLXBvc2l0aXZlLTAtMS02Ni5CdXR0b24tZGlzYWJsZWQtMC0xLTc0IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF9wb3NpdGl2ZSwgIzBEQzI2OCk7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLXZrdWktLWNvbG9yX3N0cm9rZV9wb3NpdGl2ZSwgIzBEQzI2OCk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50KTsKfQouQnV0dG9uLWJlZm9yZS0wLTEtNjggewogIGRpc3BsYXk6IGlubGluZS1mbGV4OwogIHBhZGRpbmctcmlnaHQ6IDhweDsKfQouQnV0dG9uLXNpbmdsZUljb24tMC0xLTY3IC5CdXR0b24tYmVmb3JlLTAtMS02OCB7CiAgcGFkZGluZy1yaWdodDogMDsKfQouQnV0dG9uLWFmdGVyLTAtMS02OSB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgcGFkZGluZy1sZWZ0OiA4cHg7Cn0KLkJ1dHRvbi1zaW5nbGVJY29uLTAtMS02NyAuQnV0dG9uLWFmdGVyLTAtMS02OSB7CiAgcGFkZGluZy1sZWZ0OiAwOwp9Ci5CdXR0b24tbC0wLTEtNzAgewogIGhlaWdodDogdmFyKC0tdmt1aS0tc2l6ZV9idXR0b25fbGFyZ2VfaGVpZ2h0LS1yZWd1bGFyLCA0MHB4KTsKICBwYWRkaW5nOiAwIHZhcigtLXZrdWktLXNpemVfYnV0dG9uX3BhZGRpbmdfaG9yaXpvbnRhbF9sYXJnZS0tcmVndWxhciwgMTZweCk7CiAgZm9udC1zaXplOiB2YXIoLS12a3VpLS1mb250X2hlYWRsaW5lMS0tZm9udF9zaXplLS1jb21wYWN0LCB2YXIoLS12a3VpLS1mb250X2hlYWRsaW5lMS0tZm9udF9zaXplLS1yZWd1bGFyLCAxNXB4KSk7CiAgZm9udC1mYW1pbHk6IHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUxLS1mb250X2ZhbWlseS0tcmVndWxhciwgTWFpbFNhbnMsIEFyaWFsLCBzYW5zLXNlcmlmKTsKICBmb250LXdlaWdodDogdmFyKC0tdmt1aS0tZm9udF9oZWFkbGluZTEtLWZvbnRfd2VpZ2h0LS1yZWd1bGFyLCA1MDApOwogIGxpbmUtaGVpZ2h0OiB2YXIoLS12a3VpLS1mb250X2hlYWRsaW5lMS0tbGluZV9oZWlnaHQtLWNvbXBhY3QsIHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUxLS1saW5lX2hlaWdodC0tcmVndWxhciwgMjBweCkpOwp9Ci5CdXR0b24tbC0wLTEtNzAuQnV0dG9uLXNpbmdsZUljb24tMC0xLTY3IHsKICB3aWR0aDogdmFyKC0tdmt1aS0tc2l6ZV9idXR0b25fbGFyZ2VfaGVpZ2h0LS1yZWd1bGFyLCA0MHB4KTsKICBwYWRkaW5nOiAwOwogIG1pbi13aWR0aDogdmFyKC0tdmt1aS0tc2l6ZV9idXR0b25fbGFyZ2VfaGVpZ2h0LS1yZWd1bGFyLCA0MHB4KTsKfQouQnV0dG9uLW0tMC0xLTcxIHsKICBoZWlnaHQ6IHZhcigtLXZrdWktLXNpemVfYnV0dG9uX21lZGl1bV9oZWlnaHQtLXJlZ3VsYXIsIDMycHgpOwogIHBhZGRpbmc6IDAgdmFyKC0tdmt1aS0tc2l6ZV9idXR0b25fcGFkZGluZ19ob3Jpem9udGFsLS1yZWd1bGFyLCAxMnB4KTsKICBmb250LXNpemU6IHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUyLS1mb250X3NpemUtLWNvbXBhY3QsIHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUyLS1mb250X3NpemUtLXJlZ3VsYXIsIDE0cHgpKTsKICBmb250LWZhbWlseTogdmFyKC0tdmt1aS0tZm9udF9oZWFkbGluZTItLWZvbnRfZmFtaWx5LS1yZWd1bGFyLCBNYWlsU2FucywgQXJpYWwsIHNhbnMtc2VyaWYpOwogIGZvbnQtd2VpZ2h0OiB2YXIoLS12a3VpLS1mb250X2hlYWRsaW5lMi0tZm9udF93ZWlnaHQtLXJlZ3VsYXIsIDUwMCk7CiAgbGluZS1oZWlnaHQ6IHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUyLS1saW5lX2hlaWdodC0tY29tcGFjdCwgdmFyKC0tdmt1aS0tZm9udF9oZWFkbGluZTItLWxpbmVfaGVpZ2h0LS1yZWd1bGFyLCAyMHB4KSk7Cn0KLkJ1dHRvbi1tLTAtMS03MS5CdXR0b24tc2luZ2xlSWNvbi0wLTEtNjcgewogIHdpZHRoOiB2YXIoLS12a3VpLS1zaXplX2J1dHRvbl9tZWRpdW1faGVpZ2h0LS1yZWd1bGFyLCAzMnB4KTsKICBwYWRkaW5nOiAwOwogIG1pbi13aWR0aDogdmFyKC0tdmt1aS0tc2l6ZV9idXR0b25fbWVkaXVtX2hlaWdodC0tcmVndWxhciwgMzJweCk7Cn0KLkJ1dHRvbi1zLTAtMS03MiB7CiAgaGVpZ2h0OiB2YXIoLS12a3VpLS1zaXplX2J1dHRvbl9zbWFsbF9oZWlnaHQtLXJlZ3VsYXIsIDI0cHgpOwogIHBhZGRpbmc6IDAgdmFyKC0tdmt1aS0tc2l6ZV9idXR0b25fcGFkZGluZ19ob3Jpem9udGFsLS1yZWd1bGFyLCAxMnB4KTsKICBmb250LXNpemU6IHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUyLS1mb250X3NpemUtLWNvbXBhY3QsIHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUyLS1mb250X3NpemUtLXJlZ3VsYXIsIDE0cHgpKTsKICBmb250LWZhbWlseTogdmFyKC0tdmt1aS0tZm9udF9oZWFkbGluZTItLWZvbnRfZmFtaWx5LS1yZWd1bGFyLCBNYWlsU2FucywgQXJpYWwsIHNhbnMtc2VyaWYpOwogIGZvbnQtd2VpZ2h0OiB2YXIoLS12a3VpLS1mb250X2hlYWRsaW5lMi0tZm9udF93ZWlnaHQtLXJlZ3VsYXIsIDUwMCk7CiAgbGluZS1oZWlnaHQ6IHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUyLS1saW5lX2hlaWdodC0tY29tcGFjdCwgdmFyKC0tdmt1aS0tZm9udF9oZWFkbGluZTItLWxpbmVfaGVpZ2h0LS1yZWd1bGFyLCAyMHB4KSk7Cn0KLkJ1dHRvbi1zLTAtMS03Mi5CdXR0b24tc2luZ2xlSWNvbi0wLTEtNjcgewogIHdpZHRoOiB2YXIoLS12a3VpLS1zaXplX2J1dHRvbl9zbWFsbF9oZWlnaHQtLXJlZ3VsYXIsIDI0cHgpOwogIHBhZGRpbmc6IDA7CiAgbWluLXdpZHRoOiB2YXIoLS12a3VpLS1zaXplX2J1dHRvbl9zbWFsbF9oZWlnaHQtLXJlZ3VsYXIsIDI0cHgpOwp9Ci5CdXR0b24tc3RyZXRjaGVkLTAtMS03MyB7CiAgd2lkdGg6IDEwMCU7Cn0KLkJ1dHRvbi1kaXNhYmxlZC0wLTEtNzQgewogIGN1cnNvcjogZGVmYXVsdDsKICBvcGFjaXR5OiB2YXIoLS12a3VpLS1vcGFjaXR5X2Rpc2FibGUsIDAuNDgpOwp9Ci5CdXR0b24tcHJvZ3Jlc3MtMC0xLTc1IC5CdXR0b24tY29udGVudC0wLTEtNDQgewogIHZpc2liaWxpdHk6IGhpZGRlbjsKfQo8L3N0eWxlPjxzdHlsZSBkYXRhLWpzcz0iIiBkYXRhLW1ldGE9IkxheW91dCwgVW50aGVtZWQiPgouTGF5b3V0LW91dGVyLTAtMS01IHsKICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsKfQouTGF5b3V0LWFsaWduTGVmdC0wLTEtNiB7CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9Ci5MYXlvdXQtYWxpZ25DZW50ZXItMC0xLTcgewogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIG1hcmdpbi1yaWdodDogYXV0bzsKfQouTGF5b3V0LWFsaWduUmlnaHQtMC0xLTggewogIG1hcmdpbi1sZWZ0OiBhdXRvOwp9Ci5MYXlvdXQtaW5uZXItMC0xLTkgewogIGRpc3BsYXk6IGZsZXg7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICBtYXJnaW4tbGVmdDogLTIwcHg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQouTGF5b3V0LWNhdGVnb3JpZXNMYXlvdXQtMC0xLTEwIC5MYXlvdXQtaW5uZXItMC0xLTkgewogIG1hcmdpbi1sZWZ0OiAwOwp9Cjwvc3R5bGU+PHN0eWxlIGRhdGEtanNzPSIiIGRhdGEtbWV0YT0iQnV0dG9uUGlsbCwgVW50aGVtZWQiPgouQnV0dG9uUGlsbC1yb290LTAtMS0zMSB7CiAgYm9yZGVyOiBub25lOwogIGN1cnNvcjogcG9pbnRlcjsKICBtYXJnaW46IDA7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgb3V0bGluZTogbm9uZTsKICBwYWRkaW5nOiAwOwogIG92ZXJmbG93OiBoaWRkZW47CiAgYmFja2dyb3VuZDogbm9uZTsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgdXNlci1zZWxlY3Q6IG5vbmU7CiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICBib3JkZXItcmFkaXVzOiB2YXIoLS12a3VpLS1zaXplX2JvcmRlcl9yYWRpdXNfcGlsbC0tcmVndWxhciwgMTAwcHgpOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKfQouQnV0dG9uUGlsbC1uZXV0cmFsLTAtMS0zMiB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfcHJpbWFyeSwgIzJDMkQyRSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZCwgI0ZGRkZGRik7Cn0KLkJ1dHRvblBpbGwtbmV1dHJhbC0wLTEtMzI6aG92ZXIsIC5CdXR0b25QaWxsLW5ldXRyYWwtMC0xLTMyOmZvY3VzLXZpc2libGUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmQtLWhvdmVyLCAjRjVGNUY3KTsKfQouQnV0dG9uUGlsbC1uZXV0cmFsLTAtMS0zMjphY3RpdmUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmQtLWFjdGl2ZSwgI0VCRUNFRik7Cn0KLkJ1dHRvblBpbGwtbmV1dHJhbC0wLTEtMzIuQnV0dG9uUGlsbC1kaXNhYmxlZC0wLTEtNDEgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmQsICNGRkZGRkYpOwp9Ci5CdXR0b25QaWxsLW5ldXRyYWwtb3V0bGluZS0wLTEtMzMgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9pY29uX3NlY29uZGFyeSwgI0E1QTdBRCk7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdmt1aS0tY29sb3JfdHJhbnNwYXJlbnQtLWhvdmVyLCByZ2JhKDAsIDE2LCA2MSwgMC4wNCkpOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmQsICNGRkZGRkYpOwp9Ci5CdXR0b25QaWxsLW5ldXRyYWwtb3V0bGluZS0wLTEtMzM6aG92ZXIsIC5CdXR0b25QaWxsLW5ldXRyYWwtb3V0bGluZS0wLTEtMzM6Zm9jdXMtdmlzaWJsZSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfcHJpbWFyeSwgIzJDMkQyRSk7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZCwgI0ZGRkZGRik7Cn0KLkJ1dHRvblBpbGwtbmV1dHJhbC1vdXRsaW5lLTAtMS0zMzphY3RpdmUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnktLWFjdGl2ZSwgIzI4MkIyRik7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZCwgI0ZGRkZGRik7Cn0KLkJ1dHRvblBpbGwtbmV1dHJhbC1vdXRsaW5lLTAtMS0zMy5CdXR0b25QaWxsLWRpc2FibGVkLTAtMS00MSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2ljb25fc2Vjb25kYXJ5LCAjQTVBN0FEKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kLCAjRkZGRkZGKTsKfQouQnV0dG9uUGlsbC1iZWZvcmUtMC0xLTM2IHsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBwYWRkaW5nLXJpZ2h0OiA4cHg7Cn0KLkJ1dHRvblBpbGwtc2luZ2xlSWNvbi0wLTEtMzQgLkJ1dHRvblBpbGwtYmVmb3JlLTAtMS0zNiwgLkJ1dHRvblBpbGwtYm90aEljb24tMC0xLTM1IC5CdXR0b25QaWxsLWJlZm9yZS0wLTEtMzYgewogIHBhZGRpbmctcmlnaHQ6IDA7Cn0KLkJ1dHRvblBpbGwtYWZ0ZXItMC0xLTM3IHsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBwYWRkaW5nLWxlZnQ6IDhweDsKfQouQnV0dG9uUGlsbC1zaW5nbGVJY29uLTAtMS0zNCAuQnV0dG9uUGlsbC1hZnRlci0wLTEtMzcgewogIHBhZGRpbmctbGVmdDogMDsKfQouQnV0dG9uUGlsbC1zLTAtMS0zOCB7CiAgaGVpZ2h0OiB2YXIoLS12a3VpLS1zaXplX2J1dHRvbl9jaXJjbGVfc21hbGwtLXJlZ3VsYXIsIDMycHgpOwogIHBhZGRpbmc6IDAgdmFyKC0tdmt1aS0tc2l6ZV9idXR0b25fcGFkZGluZ19ob3Jpem9udGFsLS1yZWd1bGFyLCAxMnB4KTsKICBmb250LXNpemU6IHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUyLS1mb250X3NpemUtLWNvbXBhY3QsIHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUyLS1mb250X3NpemUtLXJlZ3VsYXIsIDE0cHgpKTsKICBmb250LWZhbWlseTogdmFyKC0tdmt1aS0tZm9udF9oZWFkbGluZTItLWZvbnRfZmFtaWx5LS1yZWd1bGFyLCBNYWlsU2FucywgQXJpYWwsIHNhbnMtc2VyaWYpOwogIGZvbnQtd2VpZ2h0OiB2YXIoLS12a3VpLS1mb250X2hlYWRsaW5lMi0tZm9udF93ZWlnaHQtLXJlZ3VsYXIsIDUwMCk7CiAgbGluZS1oZWlnaHQ6IHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUyLS1saW5lX2hlaWdodC0tY29tcGFjdCwgdmFyKC0tdmt1aS0tZm9udF9oZWFkbGluZTItLWxpbmVfaGVpZ2h0LS1yZWd1bGFyLCAyMHB4KSk7Cn0KLkJ1dHRvblBpbGwtcy0wLTEtMzguQnV0dG9uUGlsbC1zaW5nbGVJY29uLTAtMS0zNCB7CiAgd2lkdGg6IHZhcigtLXZrdWktLXNpemVfYnV0dG9uX2NpcmNsZV9zbWFsbC0tcmVndWxhciwgMzJweCk7CiAgcGFkZGluZzogMDsKICBtaW4td2lkdGg6IHZhcigtLXZrdWktLXNpemVfYnV0dG9uX2NpcmNsZV9zbWFsbC0tcmVndWxhciwgMzJweCk7Cn0KLkJ1dHRvblBpbGwtcy0wLTEtMzguQnV0dG9uUGlsbC1ib3RoSWNvbi0wLTEtMzUgewogIG1pbi13aWR0aDogdmFyKC0tdmt1aS0tc2l6ZV9idXR0b25fY2lyY2xlX3NtYWxsLS1yZWd1bGFyLCAzMnB4KTsKfQouQnV0dG9uUGlsbC1tLTAtMS0zOSB7CiAgaGVpZ2h0OiB2YXIoLS12a3VpLS1zaXplX2J1dHRvbl9jaXJjbGVfbWVkaXVtLS1yZWd1bGFyLCA0MHB4KTsKICBwYWRkaW5nOiAwIHZhcigtLXZrdWktLXNpemVfYnV0dG9uX3BhZGRpbmdfaG9yaXpvbnRhbC0tcmVndWxhciwgMTJweCk7CiAgZm9udC1zaXplOiB2YXIoLS12a3VpLS1mb250X2hlYWRsaW5lMi0tZm9udF9zaXplLS1jb21wYWN0LCB2YXIoLS12a3VpLS1mb250X2hlYWRsaW5lMi0tZm9udF9zaXplLS1yZWd1bGFyLCAxNHB4KSk7CiAgZm9udC1mYW1pbHk6IHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUyLS1mb250X2ZhbWlseS0tcmVndWxhciwgTWFpbFNhbnMsIEFyaWFsLCBzYW5zLXNlcmlmKTsKICBmb250LXdlaWdodDogdmFyKC0tdmt1aS0tZm9udF9oZWFkbGluZTItLWZvbnRfd2VpZ2h0LS1yZWd1bGFyLCA1MDApOwogIGxpbmUtaGVpZ2h0OiB2YXIoLS12a3VpLS1mb250X2hlYWRsaW5lMi0tbGluZV9oZWlnaHQtLWNvbXBhY3QsIHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUyLS1saW5lX2hlaWdodC0tcmVndWxhciwgMjBweCkpOwp9Ci5CdXR0b25QaWxsLW0tMC0xLTM5LkJ1dHRvblBpbGwtc2luZ2xlSWNvbi0wLTEtMzQgewogIHdpZHRoOiB2YXIoLS12a3VpLS1zaXplX2J1dHRvbl9jaXJjbGVfbWVkaXVtLS1yZWd1bGFyLCA0MHB4KTsKICBwYWRkaW5nOiAwOwogIG1pbi13aWR0aDogdmFyKC0tdmt1aS0tc2l6ZV9idXR0b25fY2lyY2xlX21lZGl1bS0tcmVndWxhciwgNDBweCk7Cn0KLkJ1dHRvblBpbGwtbS0wLTEtMzkuQnV0dG9uUGlsbC1ib3RoSWNvbi0wLTEtMzUgewogIG1pbi13aWR0aDogdmFyKC0tdmt1aS0tc2l6ZV9idXR0b25fY2lyY2xlX21lZGl1bS0tcmVndWxhciwgNDBweCk7Cn0KLkJ1dHRvblBpbGwtbC0wLTEtNDAgewogIGhlaWdodDogdmFyKC0tdmt1aS0tc2l6ZV9idXR0b25fY2lyY2xlX2xhcmdlLS1yZWd1bGFyLCA0NHB4KTsKICBwYWRkaW5nOiAwIHZhcigtLXZrdWktLXNpemVfYnV0dG9uX3BhZGRpbmdfaG9yaXpvbnRhbF9sYXJnZS0tcmVndWxhciwgMTZweCk7CiAgZm9udC1zaXplOiB2YXIoLS12a3VpLS1mb250X2hlYWRsaW5lMS0tZm9udF9zaXplLS1jb21wYWN0LCB2YXIoLS12a3VpLS1mb250X2hlYWRsaW5lMS0tZm9udF9zaXplLS1yZWd1bGFyLCAxNXB4KSk7CiAgZm9udC1mYW1pbHk6IHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUxLS1mb250X2ZhbWlseS0tcmVndWxhciwgTWFpbFNhbnMsIEFyaWFsLCBzYW5zLXNlcmlmKTsKICBmb250LXdlaWdodDogdmFyKC0tdmt1aS0tZm9udF9oZWFkbGluZTEtLWZvbnRfd2VpZ2h0LS1yZWd1bGFyLCA1MDApOwogIGxpbmUtaGVpZ2h0OiB2YXIoLS12a3VpLS1mb250X2hlYWRsaW5lMS0tbGluZV9oZWlnaHQtLWNvbXBhY3QsIHZhcigtLXZrdWktLWZvbnRfaGVhZGxpbmUxLS1saW5lX2hlaWdodC0tcmVndWxhciwgMjBweCkpOwp9Ci5CdXR0b25QaWxsLWwtMC0xLTQwLkJ1dHRvblBpbGwtc2luZ2xlSWNvbi0wLTEtMzQgewogIHdpZHRoOiB2YXIoLS12a3VpLS1zaXplX2J1dHRvbl9jaXJjbGVfbGFyZ2UtLXJlZ3VsYXIsIDQ0cHgpOwogIHBhZGRpbmc6IDA7CiAgbWluLXdpZHRoOiB2YXIoLS12a3VpLS1zaXplX2J1dHRvbl9jaXJjbGVfbGFyZ2UtLXJlZ3VsYXIsIDQ0cHgpOwp9Ci5CdXR0b25QaWxsLWwtMC0xLTQwLkJ1dHRvblBpbGwtYm90aEljb24tMC0xLTM1IHsKICBtaW4td2lkdGg6IHZhcigtLXZrdWktLXNpemVfYnV0dG9uX2NpcmNsZV9sYXJnZS0tcmVndWxhciwgNDRweCk7Cn0KLkJ1dHRvblBpbGwtZGlzYWJsZWQtMC0xLTQxIHsKICBjdXJzb3I6IGRlZmF1bHQ7CiAgb3BhY2l0eTogdmFyKC0tdmt1aS0tb3BhY2l0eV9kaXNhYmxlLCAwLjQ4KTsKfQouQnV0dG9uUGlsbC1zaGFkb3ctMC0xLTQyIHsKICBib3gtc2hhZG93OiB2YXIoLS12a3VpLS1lbGV2YXRpb24yLCAwcHggNHB4IDIwcHggcmdiYSgxOCwgMjUsIDQzLCAwLjIpKTsKfQo8L3N0eWxlPjxzdHlsZSBkYXRhLWpzcz0iIiBkYXRhLW1ldGE9IkNvbnRlbnRDYXJkLCBVbnRoZW1lZCI+Ci5Db250ZW50Q2FyZC1yb290LTAtMS0xMDcgewogIHdpZHRoOiAxMDAlOwogIGRpc3BsYXk6IGZsZXg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgYm94LXNoYWRvdzogdmFyKC0tdmt1aS0tZWxldmF0aW9uMSwgMHB4IDRweCAxMnB4IHJnYmEoMTgsIDI1LCA0MywgMC4xMikpOwogIG1pbi1oZWlnaHQ6IDMwMHB4OwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXZrdWktLXNpemVfYm9yZGVyX3JhZGl1c19sYXJnZS0tcmVndWxhciwgMTJweCk7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9jb250ZW50LCAjRkZGRkZGKTsKICB0cmFuc2l0aW9uLWR1cmF0aW9uOiB2YXIoLS12a3VpLS1hbmltYXRpb25fZHVyYXRpb25fbCwgMC40cyk7CiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYm94LXNoYWRvdzsKICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdmt1aS0tYW5pbWF0aW9uX2Vhc2luZ19kZWZhdWx0LCBjdWJpYy1iZXppZXIoMC4zLCAwLjMsIDAuNSwgMSkpOwp9Ci5Db250ZW50Q2FyZC1yb290LTAtMS0xMDc6aG92ZXIsIC5Db250ZW50Q2FyZC1yb290LTAtMS0xMDc6Zm9jdXMtd2l0aGluIHsKICBib3gtc2hhZG93OiB2YXIoLS12a3VpLS1lbGV2YXRpb24yLCAwcHggNHB4IDIwcHggcmdiYSgxOCwgMjUsIDQzLCAwLjIpKTsKfQouQ29udGVudENhcmQtbGluay0wLTEtMTA4IHsKICB3aWR0aDogMTAwJTsKICBjdXJzb3I6IHBvaW50ZXI7CiAgaGVpZ2h0OiAxMDAlOwogIHotaW5kZXg6IDE7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KPC9zdHlsZT48c3R5bGUgZGF0YS1qc3M9IiIgZGF0YS1tZXRhPSJQZW5kaW5nQmxvY2ssIFVudGhlbWVkIj4KLlBlbmRpbmdCbG9jay1yb290LTAtMS0xMDkgewogIGRpc3BsYXk6IGJsb2NrOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICBhbmltYXRpb246IFBlbmRpbmdCbG9jay1rZXlmcmFtZXMtc2hpbmUtMC0xLTExMSAxLjJzIGluZmluaXRlIGxpbmVhcjsKICBib3JkZXItcmFkaXVzOiAycHg7CiAgYmFja2dyb3VuZC1zaXplOiAzMDAlIDEwMCU7CiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS12a3VpLS1jb2xvcl9za2VsZXRvbl9mcm9tLCAjRjNGM0Y1KSwgdmFyKC0tdmt1aS0tY29sb3Jfc2tlbGV0b25fdG8sICNFMEUxRTYpIDMzLjMzMzMlLCB2YXIoLS12a3VpLS1jb2xvcl9za2VsZXRvbl9mcm9tLCAjRjNGM0Y1KSA2Ni42NjY2JSwgdmFyKC0tdmt1aS0tY29sb3Jfc2tlbGV0b25fdG8sICNFMEUxRTYpKTsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodDsKfQouUGVuZGluZ0Jsb2NrLXJvb3QtMC0xLTEwOS5QZW5kaW5nQmxvY2stcm9vdENpcmNsZS0wLTEtMTEwIHsKICBib3JkZXItcmFkaXVzOiA1MCU7Cn0KQC13ZWJraXQta2V5ZnJhbWVzIFBlbmRpbmdCbG9jay1rZXlmcmFtZXMtc2hpbmUtMC0xLTExMSB7CiAgZnJvbSB7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodDsKICB9CiAgdG8gewogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdDsKICB9Cn0KPC9zdHlsZT48c3R5bGUgZGF0YS1qc3M9IiIgZGF0YS1tZXRhPSJDYXJkUHJlbG9hZGVyLCBVbnRoZW1lZCI+Ci5DYXJkUHJlbG9hZGVyLWJvZHktMC0xLTEwMyB7CiAgdG9wOiAwOwogIGxlZnQ6IDA7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwogIGRpc3BsYXk6IGJsb2NrOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKfQouQ2FyZFByZWxvYWRlci1pbWFnZS0wLTEtMTA0IHsKICBoZWlnaHQ6IDE2OHB4OwogIG1heC13aWR0aDogMTAwJTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS12a3VpLS1zaXplX2JvcmRlcl9yYWRpdXNfY2FyZC0tcmVndWxhciwgMTJweCkgdmFyKC0tdmt1aS0tc2l6ZV9ib3JkZXJfcmFkaXVzX2NhcmQtLXJlZ3VsYXIsIDEycHgpIDAgMDsKfQouQ2FyZFByZWxvYWRlci10aXRsZS0wLTEtMTA1IHsKICBoZWlnaHQ6IDIxcHg7CiAgbWFyZ2luOiA4cHggMTZweCA0cHg7CiAgbWF4LXdpZHRoOiAxMDAlOwp9Ci5DYXJkUHJlbG9hZGVyLWRlc2MtMC0xLTEwNiB7CiAgaGVpZ2h0OiAyMXB4OwogIG1hcmdpbjogNHB4IDE2cHg7CiAgbWF4LXdpZHRoOiA1MCU7Cn0KPC9zdHlsZT48c3R5bGUgZGF0YS1qc3M9IiIgZGF0YS1tZXRhPSJMZW50YUhlYWRlciwgVW50aGVtZWQiPgouTGVudGFIZWFkZXItcm9vdC0wLTEtMTEgewogIG1hcmdpbjogMjBweCAwIDE2cHg7CiAgZGlzcGxheTogZmxleDsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwp9Ci5MZW50YUhlYWRlci13aXRob3V0VGl0bGUtMC0xLTEyIHsKICBtYXJnaW46IDAgMCAxNnB4Owp9Ci5MZW50YUhlYWRlci13aXRob3V0VGl0bGVBbmRUYWJzLTAtMS0xMyB7CiAgbWFyZ2luOiAwOwogIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7Cn0KLkxlbnRhSGVhZGVyLXRpdGxlLTAtMS0xNCB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfc2Vjb25kYXJ5LCAjODc4OThGKTsKICBoZWlnaHQ6IDMycHg7CiAgZGlzcGxheTogZmxleDsKICBmb250LXNpemU6IHZhcigtLXZrdWktLWZvbnRfZm9vdG5vdGUtLWZvbnRfc2l6ZS0tcmVndWxhciwgMTNweCk7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBmb250LWZhbWlseTogdmFyKC0tdmt1aS0tZm9udF9mb290bm90ZS0tZm9udF9mYW1pbHktLXJlZ3VsYXIsIEFyaWFsLCBzYW5zLXNlcmlmKTsKICBmb250LXdlaWdodDogdmFyKC0tdmt1aS0tZm9udF9mb290bm90ZS0tZm9udF93ZWlnaHQtLXJlZ3VsYXIsIDQwMCk7CiAgbGluZS1oZWlnaHQ6IDMycHg7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7Cn0KLkxlbnRhSGVhZGVyLXdoaXRlVGl0bGUtMC0xLTE1IHsKICBjb2xvcjogd2hpdGU7Cn0KLkxlbnRhSGVhZGVyLXdoaXRlVGl0bGUtMC0xLTE1IGxpbmsgewogIGNvbG9yOiB3aGl0ZTsKfQouTGVudGFIZWFkZXItbGFyZ2VUaXRsZS0wLTEtMTYgewogIHBhZGRpbmc6IDIwcHggMCAwOwogIGZvbnQtc2l6ZTogdmFyKC0tdmt1aS0tZm9udF90aXRsZTItLWZvbnRfc2l6ZS0tcmVndWxhciwgMjBweCk7Cn0KLkxlbnRhSGVhZGVyLWxhcmdlVGl0bGUtMC0xLTE2IGxpbmsgewogIGZvbnQtc2l6ZTogdmFyKC0tdmt1aS0tZm9udF90aXRsZTItLWZvbnRfc2l6ZS0tcmVndWxhciwgMjBweCk7Cn0KLkxlbnRhSGVhZGVyLWFsaWduUmlnaHQtMC0xLTE3IHsKICBtYXJnaW4tbGVmdDogYXV0bzsKfQouTGVudGFIZWFkZXItYWxpZ25DZW50ZXItMC0xLTE4IHsKICBtYXJnaW4tbGVmdDogYXV0bzsKICBtYXJnaW4tcmlnaHQ6IGF1dG87Cn0KPC9zdHlsZT48c3R5bGUgZGF0YS1qc3M9IiIgZGF0YS1tZXRhPSJMZW50YUZvb3RlciwgVW50aGVtZWQiPgouTGVudGFGb290ZXItcm9vdC0wLTEtOTYgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3NlY29uZGFyeSwgIzg3ODk4Rik7CiAgZm9udC1zaXplOiB2YXIoLS12a3VpLS1mb250X3RpdGxlMy0tZm9udF9zaXplLS1yZWd1bGFyLCAxN3B4KTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgZm9udC1mYW1pbHk6IHZhcigtLXZrdWktLWZvbnRfdGl0bGUzLS1mb250X2ZhbWlseS0tcmVndWxhciwgTWFpbFNhbnMsIEFyaWFsLCBzYW5zLXNlcmlmKTsKICBmb250LXdlaWdodDogdmFyKC0tdmt1aS0tZm9udF90aXRsZTMtLWZvbnRfd2VpZ2h0LS1yZWd1bGFyLCA1MDApOwogIGxpbmUtaGVpZ2h0OiB2YXIoLS12a3VpLS1mb250X3RpdGxlMy0tbGluZV9oZWlnaHQtLXJlZ3VsYXIsIDIycHgpOwogIHBhZGRpbmctdG9wOiAyMHB4OwogIHBhZGRpbmctYm90dG9tOiAyMHB4Owp9Ci5MZW50YUZvb3Rlci1lbXB0eS0wLTEtOTcgewogIHBhZGRpbmc6IDA7Cn0KLkxlbnRhRm9vdGVyLWxvYWRlci0wLTEtOTggewogIG1hcmdpbjogYXV0bzsKfQo8L3N0eWxlPjxzdHlsZSBkYXRhLWpzcz0iIiBkYXRhLW1ldGE9IkNvbnRyb2xQYW5lbCwgVW50aGVtZWQiPgouQ29udHJvbFBhbmVsLXJvb3QtMC0xLTc2IHsKICBkaXNwbGF5OiBmbGV4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIG1pbi13aWR0aDogNDg0cHg7CiAgbWluLWhlaWdodDogNTUwcHg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQouQ29udHJvbFBhbmVsLW1vYmlsZS0wLTEtNzcgewogIG1pbi13aWR0aDogMTAwdnc7CiAgbWF4LWhlaWdodDogNTB2aDsKICBtaW4taGVpZ2h0OiA1MHZoOwp9Ci5Db250cm9sUGFuZWwtY2FuY2VsLTAtMS03OCB7CiAgdG9wOiAxMXB4OwogIHJpZ2h0OiAxNHB4OwogIGN1cnNvcjogcG9pbnRlcjsKICBwb3NpdGlvbjogYWJzb2x1dGU7Cn0KLkNvbnRyb2xQYW5lbC1oZWFkZXItMC0xLTc5IHsKICBkaXNwbGF5OiBmbGV4OwogIHBhZGRpbmc6IDE2cHggMTZweCAxMnB4IDE2cHg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKfQouQ29udHJvbFBhbmVsLXRpdGxlLTAtMS04MCB7CiAgZm9udC1zaXplOiB2YXIoLS12a3VpLS1mb250X3RpdGxlMi0tZm9udF9zaXplLS1yZWd1bGFyLCAyMHB4KTsKICBmb250LWZhbWlseTogdmFyKC0tdmt1aS0tZm9udF90aXRsZTItLWZvbnRfZmFtaWx5LS1yZWd1bGFyLCBNYWlsU2FucywgQXJpYWwsIHNhbnMtc2VyaWYpOwogIGZvbnQtd2VpZ2h0OiB2YXIoLS12a3VpLS1mb250X3RpdGxlMi0tZm9udF93ZWlnaHQtLXJlZ3VsYXIsIDUwMCk7CiAgbGluZS1oZWlnaHQ6IHZhcigtLXZrdWktLWZvbnRfdGl0bGUyLS1saW5lX2hlaWdodC0tcmVndWxhciwgMjZweCk7Cn0KLkNvbnRyb2xQYW5lbC1ib2R5LTAtMS04MSB7CiAgZGlzcGxheTogZmxleDsKICBwYWRkaW5nOiAwIDhweCA4cHggOHB4OwogIG1heC1oZWlnaHQ6IDEwMCU7Cn0KLkNvbnRyb2xQYW5lbC1saXN0LTAtMS04MiB7CiAgZmxleDogMTsKICBvdmVyZmxvdzogYXV0bzsKICBtYXgtaGVpZ2h0OiAxMDAlOwp9Ci5Db250cm9sUGFuZWwtbGlzdC0wLTEtODI6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKICBkaXNwbGF5OiBub25lOwp9Ci5Db250cm9sUGFuZWwtbW9iaWxlLTAtMS03NyAuQ29udHJvbFBhbmVsLWxpc3QtMC0xLTgyIHsKICBtYXgtaGVpZ2h0OiA0MTBweDsKfQouQ29udHJvbFBhbmVsLWl0ZW0tMC0xLTgzIHsKICBwYWRkaW5nOiAxMHB4IDEycHg7Cn0KLkNvbnRyb2xQYW5lbC1pdGVtLTAtMS04Mzpob3ZlciB7CiAgYmFja2dyb3VuZDogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZCwgI0ZGRkZGRik7Cn0KLkNvbnRyb2xQYW5lbC1pdGVtLTAtMS04Mzpob3ZlciAuQ29udHJvbFBhbmVsLWFjdGl2ZUljb24tMC0xLTg2IHsKICBkaXNwbGF5OiBub25lOwp9Ci5Db250cm9sUGFuZWwtaXRlbS0wLTEtODM6aG92ZXIgLkNvbnRyb2xQYW5lbC1yZW1vdmVJY29uLTAtMS04NyB7CiAgZGlzcGxheTogYmxvY2s7Cn0KLkNvbnRyb2xQYW5lbC1pbmFjdGl2ZUxpc3QtMC0xLTg0IC5Db250cm9sUGFuZWwtaXRlbS0wLTEtODMgLkNvbnRyb2xQYW5lbC1hY3RpdmVJY29uLTAtMS04NiB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2ljb25fc2Vjb25kYXJ5LCAjQTVBN0FEKTsKfQouQ29udHJvbFBhbmVsLWluYWN0aXZlTGlzdC0wLTEtODQgLkNvbnRyb2xQYW5lbC1pdGVtLTAtMS04Mzpob3ZlciAuQ29udHJvbFBhbmVsLWFjdGl2ZUljb24tMC0xLTg2IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfaWNvbl9wb3NpdGl2ZSwgIzBEQzI2OCk7CiAgZGlzcGxheTogYmxvY2s7Cn0KLkNvbnRyb2xQYW5lbC1pY29uLTAtMS04NSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX2ljb25fc2Vjb25kYXJ5LCAjQTVBN0FEKTsKfQouQ29udHJvbFBhbmVsLWFjdGl2ZUljb24tMC0xLTg2IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfaWNvbl9wb3NpdGl2ZSwgIzBEQzI2OCk7Cn0KLkNvbnRyb2xQYW5lbC1yZW1vdmVJY29uLTAtMS04NyB7CiAgZGlzcGxheTogbm9uZTsKfQouQ29udHJvbFBhbmVsLXRleHQtMC0xLTg4IHsKICBjb2xvcjogdmFyKC0tdmt1aS0tY29sb3JfdGV4dF90ZXJ0aWFyeSwgI0FBQURCMyk7CiAgZGlzcGxheTogZmxleDsKICBwYWRkaW5nOiAwIDEycHg7CiAgZm9udC1zaXplOiB2YXIoLS12a3VpLS1mb250X3RleHQtLWZvbnRfc2l6ZS0tY29tcGFjdCwgMTZweCk7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZm9udC1mYW1pbHk6IHZhcigtLXZrdWktLWZvbnRfdGV4dC0tZm9udF9mYW1pbHktLXJlZ3VsYXIsIEFyaWFsLCBzYW5zLXNlcmlmKTsKICBmb250LXdlaWdodDogdmFyKC0tdmt1aS0tZm9udF90ZXh0LS1mb250X3dlaWdodC0tcmVndWxhciwgNDAwKTsKICBsaW5lLWhlaWdodDogdmFyKC0tdmt1aS0tZm9udF90ZXh0LS1saW5lX2hlaWdodC0tY29tcGFjdCwgMjJweCk7Cn0KLkNvbnRyb2xQYW5lbC1ub0luYWN0aXZlLTAtMS04OSB7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwp9Ci5Db250cm9sUGFuZWwtZGl2aWRlci0wLTEtOTAgewogIG1hcmdpbjogMCA4cHg7CiAgYm9yZGVyLWxlZnQ6IHZhcigtLXZrdWktLWNvbG9yX3NlcGFyYXRvcl9zZWNvbmRhcnksICNFNkU3RUIpIDJweCBkb3R0ZWQ7Cn0KPC9zdHlsZT48c3R5bGUgZGF0YS1qc3M9IiIgZGF0YS1tZXRhPSJNb3JlVG9vbHRpcCwgVW50aGVtZWQiPgouTW9yZVRvb2x0aXAtbGlzdC0wLTEtOTkgewogIGRpc3BsYXk6IGZsZXg7CiAgcGFkZGluZzogOHB4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KLk1vcmVUb29sdGlwLWl0ZW0tMC0xLTEwMCB7CiAgY3Vyc29yOiBwb2ludGVyOwogIHBhZGRpbmc6IDhweCAxMnB4Owp9Ci5Nb3JlVG9vbHRpcC1hY3RpdmUtMC0xLTEwMSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfYWNjZW50X3RoZW1lZCwgIzAwNUZGOSk7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl9zdHJva2VfYWNjZW50X3RoZW1lZCwgIzAwNUZGOSk7Cn0KPC9zdHlsZT48c3R5bGUgZGF0YS1qc3M9IiIgZGF0YS1tZXRhPSJDYXRlZ29yeVBhZ2UsIFVudGhlbWVkIj4KLkNhdGVnb3J5UGFnZS1yb290LTAtMS0xOSB7CiAgd2lkdGg6IDEwMCU7CiAgZGlzcGxheTogZmxleDsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLkNhdGVnb3J5UGFnZS1oZWFkZXItMC0xLTIwIHsKICB3aWR0aDogMTAwJTsKICBtYXJnaW46IDAgMCA0MHB4IDA7CiAgZGlzcGxheTogZmxleDsKfQouQ2F0ZWdvcnlQYWdlLXRpdGxlLTAtMS0yMSB7CiAgZGlzcGxheTogZmxleDsKICBmb250LXNpemU6IDMycHg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBmb250LWZhbWlseTogdmFyKC0tdmt1aS0tZm9udF9tZWRpYV90aXRsZTMtLWZvbnRfZmFtaWx5LS1yZWd1bGFyLCBNYWlsU2FucywgQXJpYWwsIHNhbnMtc2VyaWYpOwogIGZvbnQtd2VpZ2h0OiB2YXIoLS12a3VpLS1mb250X21lZGlhX3RpdGxlMy0tZm9udF93ZWlnaHQtLXJlZ3VsYXIsIDUwMCk7CiAgbGluZS1oZWlnaHQ6IHZhcigtLXZrdWktLWZvbnRfbWVkaWFfdGl0bGUzLS1saW5lX2hlaWdodC0tcmVndWxhciwgMjhweCk7Cn0KLkNhdGVnb3J5UGFnZS1waWxsc0NvbnRhaW5lci0wLTEtMjIgewogIHdpZHRoOiAxMDAlOwogIGRpc3BsYXk6IGZsZXg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIG1hcmdpbi1sZWZ0OiAyMHB4Owp9Ci5DYXRlZ29yeVBhZ2UtcGlsbHNDb250YWluZXItMC0xLTIyOjotd2Via2l0LXNjcm9sbGJhciB7CiAgZGlzcGxheTogbm9uZTsKfQouQ2F0ZWdvcnlQYWdlLXBpbGxzLTAtMS0yMyB7CiAgd2lkdGg6IDEwMCU7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwp9Ci5DYXRlZ29yeVBhZ2UtcGlsbC0wLTEtMjQgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnksICMyQzJEMkUpOwogIHBhZGRpbmc6IDhweCAxMnB4OwogIG1heC1oZWlnaHQ6IDMycHg7CiAgZmxleC1zaHJpbms6IDA7Cn0KLkNhdGVnb3J5UGFnZS1waWxsLTAtMS0yNDpub3QoOmZpcnN0LWNoaWxkKSB7CiAgbWFyZ2luLWxlZnQ6IDhweDsKfQouQ2F0ZWdvcnlQYWdlLWFjdGl2ZS0wLTEtMjUgewogIGNvbG9yOiB2YXIoLS12a3VpLS1jb2xvcl90ZXh0X2FjY2VudF90aGVtZWQsICMwMDVGRjkpOwogIGJvcmRlci1jb2xvcjogdmFyKC0tdmt1aS0tY29sb3Jfc3Ryb2tlX2FjY2VudF90aGVtZWQsICMwMDVGRjkpOwp9Ci5DYXRlZ29yeVBhZ2UtYWN0aXZlLTAtMS0yNTpob3ZlciB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfYWNjZW50X3RoZW1lZCwgIzAwNUZGOSk7Cn0KLkNhdGVnb3J5UGFnZS1tb3JlLTAtMS0yNiB7CiAgYmFja2dyb3VuZDogdmFyKC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF90ZXJ0aWFyeSwgI0Y5RjlGQSk7Cn0KLkNhdGVnb3J5UGFnZS1tb3JlLTAtMS0yNi5DYXRlZ29yeVBhZ2UtYWN0aXZlLTAtMS0yNSB7CiAgY29sb3I6IHZhcigtLXZrdWktLWNvbG9yX3RleHRfdGVydGlhcnksICNBQUFEQjMpOwogIGJhY2tncm91bmQ6IHZhcigtLXZrdWktLWNvbG9yX2JhY2tncm91bmQsICNGRkZGRkYpOwogIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDI0cHg7CiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDI0cHg7CiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDsKICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsKfQouQ2F0ZWdvcnlQYWdlLXNldHRpbmdzQnRuLTAtMS0yNyB7CiAgbWluLXdpZHRoOiB1bnNldDsKICBtYXJnaW4tbGVmdDogYXV0bzsKfQouQ2F0ZWdvcnlQYWdlLWxpc3QtMC0xLTI4IHsKICBkaXNwbGF5OiBmbGV4OwogIHBhZGRpbmc6IDhweDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9Ci5DYXRlZ29yeVBhZ2UtaXRlbS0wLTEtMjkgewogIGN1cnNvcjogcG9pbnRlcjsKICBwYWRkaW5nOiA4cHggMTJweDsKfQouQ2F0ZWdvcnlQYWdlLW1vYmlsZS0wLTEtMzAgLkNhdGVnb3J5UGFnZS1oZWFkZXItMC0xLTIwIHsKICBvdmVyZmxvdzogaGlkZGVuOwogIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQouQ2F0ZWdvcnlQYWdlLW1vYmlsZS0wLTEtMzAgLkNhdGVnb3J5UGFnZS10aXRsZS0wLTEtMjEgewogIGZvbnQtc2l6ZTogMjhweDsKfQouQ2F0ZWdvcnlQYWdlLW1vYmlsZS0wLTEtMzAgLkNhdGVnb3J5UGFnZS1waWxsc0NvbnRhaW5lci0wLTEtMjIgewogIG92ZXJmbG93OiBhdXRvOwogIG1hcmdpbi10b3A6IDE2cHg7CiAgbWFyZ2luLWxlZnQ6IDA7Cn0KLkNhdGVnb3J5UGFnZS1tb2JpbGUtMC0xLTMwIC5DYXRlZ29yeVBhZ2Utc2V0dGluZ3NCdG4tMC0xLTI3IHsKICB0b3A6IDA7CiAgcmlnaHQ6IDA7CiAgcG9zaXRpb246IGFic29sdXRlOwp9Cjwvc3R5bGU+PHN0eWxlIGRhdGEtanNzPSIiIGRhdGEtbWV0YT0iUHVsc2VMZW50YSwgVW50aGVtZWQiPgouUHVsc2VMZW50YS1yb290LTAtMS0xIHsKICBtaW4td2lkdGg6IDI0MHB4OwogIGZvbnQtZmFtaWx5OiBNYWlsU2FucywgSGVsdmV0aWNhLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZjsKICBvdmVyZmxvdy1hbmNob3I6IG5vbmU7CiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7Cn0KLlB1bHNlTGVudGEtZGFyay0wLTEtMiB7CiAgLS12a3VpLS1jb2xvcnNfc2NoZW1lOiBkYXJrOwogIC0tdmt1aS0tY29sb3JfdGV4dF9saW5rOiAjNTg5QkZGOwogIC0tdmt1aS0tY29sb3JfYWNjZW50X3JlZDogI0VEMEEzNDsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmQ6ICMxOTE5MUE7CiAgLS12a3VpLS1jb2xvcl90ZXh0X211dGVkOiAjRTdFOEVBOwogIC0tdmt1aS0tY29sb3Jfd2hpdGVfYmx1ZTogcmdiYSgyMjYsIDIzNiwgMjU1LCAwLjEyKTsKICAtLXZrdWktLWNvbG9yX2FjY2VudF9ibHVlOiAjMjc3NUZDOwogIC0tdmt1aS0tY29sb3JfYWNjZW50X2dyYXk6ICM5QzlEQTI7CiAgLS12a3VpLS1jb2xvcl9pY29uX2FjY2VudDogIzNDODJGRDsKICAtLXZrdWktLWNvbG9yX2ljb25fbWVkaXVtOiAjQjBCMUI2OwogIC0tdmt1aS0tY29sb3Jfc2tlbGV0b25fdG86ICMzRTNGNDA7CiAgLS12a3VpLS1jb2xvcl9zdGF0ZV9ob3ZlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTsKICAtLXZrdWktLWNvbG9yX3RleHRfYWNjZW50OiAjM0M4MkZEOwogIC0tdmt1aS0tY29sb3JfdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50OwogIC0tdmt1aS0tY29sb3JfYWNjZW50X2dyZWVuOiAjMERDMjY4OwogIC0tdmt1aS0tY29sb3JfaWNvbl9wcmltYXJ5OiAjRDlEQUREOwogIC0tdmt1aS0tY29sb3Jfc3RhdGVfYWN0aXZlOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpOwogIC0tdmt1aS0tY29sb3JfdGV4dF9wcmltYXJ5OiAjRTdFOEVBOwogIC0tdmt1aS0tY29sb3JfdGV4dF9zdWJoZWFkOiAjQkZDMUM1OwogIC0tdmt1aS0tY29sb3JfdHJhY2tfYnVmZmVyOiAjODNBQUVBOwogIC0tdmt1aS0tY29sb3JfYWNjZW50X29yYW5nZTogI0ZGOUUwMDsKICAtLXZrdWktLWNvbG9yX2FjY2VudF9wdXJwbGU6ICM0RjZEREM7CiAgLS12a3VpLS1jb2xvcl9hY2NlbnRfdmlvbGV0OiAjQzE1REYzOwogIC0tdmt1aS0tY29sb3JfYWNjZW50X3llbGxvdzogI0ZGRDQwMDsKICAtLXZrdWktLWNvbG9yX2ljb25fY29udHJhc3Q6ICNGRkZGRkY7CiAgLS12a3VpLS1jb2xvcl9pY29uX25lZ2F0aXZlOiAjRUQwQTM0OwogIC0tdmt1aS0tY29sb3JfaWNvbl9wb3NpdGl2ZTogIzBEQzI2ODsKICAtLXZrdWktLWNvbG9yX2ljb25fdGVydGlhcnk6ICM4Mzg0OEE7CiAgLS12a3VpLS1jb2xvcl9saW5rX2NvbnRyYXN0OiAjRkZGRkZGOwogIC0tdmt1aS0tY29sb3Jfc2tlbGV0b25fZnJvbTogIzJBMkEyQjsKICAtLXZrdWktLWNvbG9yX3N0cm9rZV9hY2NlbnQ6ICMzQzgyRkQ7CiAgLS12a3VpLS1jb2xvcl90ZXh0X2NvbnRyYXN0OiAjRkZGRkZGOwogIC0tdmt1aS0tY29sb3JfdGV4dF9uZWdhdGl2ZTogI0VEMEEzNDsKICAtLXZrdWktLWNvbG9yX3RleHRfcG9zaXRpdmU6ICMwREMyNjg7CiAgLS12a3VpLS1jb2xvcl90ZXh0X3RlcnRpYXJ5OiAjNzQ3NjdBOwogIC0tdmt1aS0tY29sb3JfYXZhdGFyX292ZXJsYXk6IHJnYmEoMTc2LCAxNzgsIDE4MiwgMC40OCk7CiAgLS12a3VpLS1jb2xvcl9pY29uX3NlY29uZGFyeTogIzlDOURBMjsKICAtLXZrdWktLWNvbG9yX292ZXJsYXlfdmlld2VyOiByZ2JhKDAsIDAsIDAsIDAuODgpOwogIC0tdmt1aS0tY29sb3JfdGV4dF9zZWNvbmRhcnk6ICM4QzhFOTQ7CiAgLS12a3VpLS1jb2xvcl93cml0ZV9iYXJfaWNvbjogIzNDODJGRDsKICAtLXZrdWktLWNvbG9yX292ZXJsYXlfcHJpbWFyeTogcmdiYSgwLCAwLCAwLCAwLjI0KTsKICAtLXZrdWktLWNvbG9yX3N0cm9rZV9jb250cmFzdDogI0ZGRkZGRjsKICAtLXZrdWktLWNvbG9yX3N0cm9rZV9uZWdhdGl2ZTogI0VEMEEzNDsKICAtLXZrdWktLWNvbG9yX3N0cm9rZV9wb3NpdGl2ZTogIzBEQzI2ODsKICAtLXZrdWktLWNvbG9yX2FjY2VudF9zZWNvbmRhcnk6ICNGRjlFMDA7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX21vZGFsOiAjMzAzMDMwOwogIC0tdmt1aS0tY29sb3JfdGV4dF9saW5rLS1ob3ZlcjogIzVGOUZGRjsKICAtLXZrdWktLWNvbG9yX3RleHRfbGlua190aGVtZWQ6ICNGRkZGRkY7CiAgLS12a3VpLS1jb2xvcl90cmFja19iYWNrZ3JvdW5kOiAjNDM0NDQ1OwogIC0tdmt1aS0tY29sb3JfYWNjZW50X3JlZC0taG92ZXI6ICNFRTE0M0M7CiAgLS12a3VpLS1jb2xvcl9hY3Rpb25fc2hlZXRfdGV4dDogIzNDODJGRDsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmQtLWhvdmVyOiAjMjIyMjIzOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9hY2NlbnQ6ICMyNzc1RkM7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3B1cnBsZTogIzc5NjBFODsKICAtLXZrdWktLWNvbG9yX2hlYWRlcl9iYWNrZ3JvdW5kOiAjMjMyMzI0OwogIC0tdmt1aS0tY29sb3JfaWNvbl9tZWRpdW1fYWxwaGE6IHJnYmEoMjQ1LCAyNDYsIDI1NSwgMC43KTsKICAtLXZrdWktLWNvbG9yX2ltYWdlX3BsYWNlaG9sZGVyOiAjMzkzQTNCOwogIC0tdmt1aS0tY29sb3JfcGFuZWxfaGVhZGVyX2ljb246ICMzQzgyRkQ7CiAgLS12a3VpLS1jb2xvcl9zZXBhcmF0b3JfcHJpbWFyeTogIzE1MTUxNjsKICAtLXZrdWktLWNvbG9yX3RleHRfbGluay0tYWN0aXZlOiAjNjVBM0ZGOwogIC0tdmt1aS0tY29sb3JfdGV4dF9saW5rX3Zpc2l0ZWQ6ICM1MjhGREY7CiAgLS12a3VpLS1jb2xvcl90ZXh0X211dGVkLS1ob3ZlcjogI0U4RTlFQjsKICAtLXZrdWktLWNvbG9yX3doaXRlX2JsdWUtLWhvdmVyOiByZ2JhKDIyNiwgMjM2LCAyNTUsIDAuMTYpOwogIC0tdmt1aS0tY29sb3JfYWNjZW50X2JsdWUtLWhvdmVyOiAjMzA3QkZDOwogIC0tdmt1aS0tY29sb3JfYWNjZW50X2dyYXktLWhvdmVyOiAjQTBBMUE2OwogIC0tdmt1aS0tY29sb3JfYWNjZW50X3JlZC0tYWN0aXZlOiAjRUUxRTQ0OwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZC0tYWN0aXZlOiAjMkIyQjJDOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9jb250ZW50OiAjMjMyMzI0OwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF93YXJuaW5nOiAjNkM0RTAwOwogIC0tdmt1aS0tY29sb3JfZmllbGRfYm9yZGVyX2FscGhhOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpOwogIC0tdmt1aS0tY29sb3JfaWNvbl9hY2NlbnQtLWhvdmVyOiAjNDQ4N0ZEOwogIC0tdmt1aS0tY29sb3JfaWNvbl9hY2NlbnRfdGhlbWVkOiAjRkZGRkZGOwogIC0tdmt1aS0tY29sb3JfaWNvbl9tZWRpdW0tLWhvdmVyOiAjQjNCNEI5OwogIC0tdmt1aS0tY29sb3JfaW1hZ2VfYm9yZGVyX2FscGhhOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOwogIC0tdmt1aS0tY29sb3Jfc2tlbGV0b25fdG8tLWhvdmVyOiAjNDY0NzQ4OwogIC0tdmt1aS0tY29sb3Jfc3RhdGVfaG92ZXItLWhvdmVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpOwogIC0tdmt1aS0tY29sb3JfdGV4dF9hY2NlbnQtLWhvdmVyOiAjNDQ4N0ZEOwogIC0tdmt1aS0tY29sb3JfdGV4dF9hY2NlbnRfdGhlbWVkOiAjRkZGRkZGOwogIC0tdmt1aS0tY29sb3JfdGV4dF9tdXRlZC0tYWN0aXZlOiAjRTlFQUVDOwogIC0tdmt1aS0tY29sb3JfdHJhbnNwYXJlbnQtLWhvdmVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOwogIC0tdmt1aS0tY29sb3Jfd2hpdGVfYmx1ZS0tYWN0aXZlOiByZ2JhKDIyNiwgMjM2LCAyNTUsIDAuMik7CiAgLS12a3VpLS1jb2xvcl9hY2NlbnRfYmx1ZS0tYWN0aXZlOiAjMzg4MEZDOwogIC0tdmt1aS0tY29sb3JfYWNjZW50X2dyYXktLWFjdGl2ZTogI0E0QTVBOTsKICAtLXZrdWktLWNvbG9yX2FjY2VudF9ncmVlbi0taG92ZXI6ICMxN0M0NkU7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX2NvbnRyYXN0OiAjRkZGRkZGOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9uZWdhdGl2ZTogI0VEMEEzNDsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfcG9zaXRpdmU6ICMwREMyNjg7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3RlcnRpYXJ5OiAjMjUyNTI1OwogIC0tdmt1aS0tY29sb3JfaWNvbl9hY2NlbnQtLWFjdGl2ZTogIzRDOENGRDsKICAtLXZrdWktLWNvbG9yX2ljb25fbWVkaXVtLS1hY3RpdmU6ICNCNkI3QkM7CiAgLS12a3VpLS1jb2xvcl9pY29uX3ByaW1hcnktLWhvdmVyOiAjREJEQkRFOwogIC0tdmt1aS0tY29sb3JfaWNvbl90ZXJ0aWFyeV9hbHBoYTogcmdiYSgyNDUsIDI0NiwgMjU1LCAwLjUpOwogIC0tdmt1aS0tY29sb3JfcHVycGxlX29wYWNpdHlfdGludDogcmdiYSgyMzQsIDIyNiwgMjU1LCAwLjEyKTsKICAtLXZrdWktLWNvbG9yX3NlcGFyYXRvcl9zZWNvbmRhcnk6ICMxODE4MTg7CiAgLS12a3VpLS1jb2xvcl9za2VsZXRvbl90by0tYWN0aXZlOiAjNEQ0RTRGOwogIC0tdmt1aS0tY29sb3Jfc3RhdGVfYWN0aXZlLS1ob3ZlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KTsKICAtLXZrdWktLWNvbG9yX3N0YXRlX2hvdmVyLS1hY3RpdmU6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7CiAgLS12a3VpLS1jb2xvcl90ZXh0X2FjY2VudC0tYWN0aXZlOiAjNEM4Q0ZEOwogIC0tdmt1aS0tY29sb3JfdGV4dF9wcmltYXJ5LS1ob3ZlcjogI0U4RTlFQjsKICAtLXZrdWktLWNvbG9yX3RleHRfc3ViaGVhZC0taG92ZXI6ICNDMkMzQzc7CiAgLS12a3VpLS1jb2xvcl90cmFja19idWZmZXItLWhvdmVyOiAjODhBREVCOwogIC0tdmt1aS0tY29sb3JfdHJhbnNwYXJlbnQtLWFjdGl2ZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTsKICAtLXZrdWktLWNvbG9yX2FjY2VudF9ncmVlbi0tYWN0aXZlOiAjMjBDNzc0OwogIC0tdmt1aS0tY29sb3JfYWNjZW50X29yYW5nZS0taG92ZXI6ICNGRkEyMEE7CiAgLS12a3VpLS1jb2xvcl9hY2NlbnRfcHVycGxlLS1ob3ZlcjogIzU2NzNERDsKICAtLXZrdWktLWNvbG9yX2FjY2VudF92aW9sZXQtLWhvdmVyOiAjQzM2M0YzOwogIC0tdmt1aS0tY29sb3JfYWNjZW50X3llbGxvdy0taG92ZXI6ICNGRkQ2MEE7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX2luZm9fdGludDogcmdiYSgwLCA5NSwgMjQ5LCAwLjI4KTsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5OiAjMkEyQTJCOwogIC0tdmt1aS0tY29sb3JfaWNvbl9jb250cmFzdC0taG92ZXI6ICNGRkZGRkY7CiAgLS12a3VpLS1jb2xvcl9pY29uX2NvbnRyYXN0X3RoZW1lZDogIzJDMkQyRTsKICAtLXZrdWktLWNvbG9yX2ljb25fbmVnYXRpdmUtLWhvdmVyOiAjRUUxNDNDOwogIC0tdmt1aS0tY29sb3JfaWNvbl9wb3NpdGl2ZS0taG92ZXI6ICMxN0M0NkU7CiAgLS12a3VpLS1jb2xvcl9pY29uX3ByaW1hcnktLWFjdGl2ZTogI0RDRERFMDsKICAtLXZrdWktLWNvbG9yX2ljb25fc2Vjb25kYXJ5X2FscGhhOiByZ2JhKDI0NSwgMjQ2LCAyNTUsIDAuNik7CiAgLS12a3VpLS1jb2xvcl9pY29uX3RlcnRpYXJ5LS1ob3ZlcjogIzg4ODk4RjsKICAtLXZrdWktLWNvbG9yX2xpbmtfY29udHJhc3QtLWhvdmVyOiAjRkZGRkZGOwogIC0tdmt1aS0tY29sb3Jfc2tlbGV0b25fZnJvbS0taG92ZXI6ICMzMzMzMzM7CiAgLS12a3VpLS1jb2xvcl9zdGF0ZV9hY3RpdmUtLWFjdGl2ZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOwogIC0tdmt1aS0tY29sb3Jfc3Ryb2tlX2FjY2VudC0taG92ZXI6ICM0NDg3RkQ7CiAgLS12a3VpLS1jb2xvcl9zdHJva2VfYWNjZW50X3RoZW1lZDogI0ZGRkZGRjsKICAtLXZrdWktLWNvbG9yX3RleHRfY29udHJhc3QtLWhvdmVyOiAjRkZGRkZGOwogIC0tdmt1aS0tY29sb3JfdGV4dF9jb250cmFzdF90aGVtZWQ6ICMyQzJEMkU7CiAgLS12a3VpLS1jb2xvcl90ZXh0X25lZ2F0aXZlLS1ob3ZlcjogI0VFMTQzQzsKICAtLXZrdWktLWNvbG9yX3RleHRfcG9zaXRpdmUtLWhvdmVyOiAjMTdDNDZFOwogIC0tdmt1aS0tY29sb3JfdGV4dF9wcmltYXJ5LS1hY3RpdmU6ICNFOUVBRUM7CiAgLS12a3VpLS1jb2xvcl90ZXh0X3N1YmhlYWQtLWFjdGl2ZTogI0M0QzZDQTsKICAtLXZrdWktLWNvbG9yX3RleHRfdGVydGlhcnktLWhvdmVyOiAjN0E3QjdGOwogIC0tdmt1aS0tY29sb3JfdHJhY2tfYnVmZmVyLS1hY3RpdmU6ICM4REIxRUM7CiAgLS12a3VpLS1jb2xvcl9hY2NlbnRfb3JhbmdlLS1hY3RpdmU6ICNGRkE2MTQ7CiAgLS12a3VpLS1jb2xvcl9hY2NlbnRfcHVycGxlLS1hY3RpdmU6ICM1RDc5REY7CiAgLS12a3VpLS1jb2xvcl9hY2NlbnRfdmlvbGV0LS1hY3RpdmU6ICNDNjZBRjQ7CiAgLS12a3VpLS1jb2xvcl9hY2NlbnRfeWVsbG93LS1hY3RpdmU6ICNGRkQ3MTQ7CiAgLS12a3VpLS1jb2xvcl9hdmF0YXJfb3ZlcmxheS0taG92ZXI6IHJnYmEoMTc2LCAxNzgsIDE4MiwgMC41Mik7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX2Vycm9yX3RpbnQ6IHJnYmEoMjM3LCAxMCwgNTIsIDAuMjgpOwogIC0tdmt1aS0tY29sb3JfaWNvbl9jb250cmFzdC0tYWN0aXZlOiAjRkZGRkZGOwogIC0tdmt1aS0tY29sb3JfaWNvbl9uZWdhdGl2ZS0tYWN0aXZlOiAjRUUxRTQ0OwogIC0tdmt1aS0tY29sb3JfaWNvbl9wb3NpdGl2ZS0tYWN0aXZlOiAjMjBDNzc0OwogIC0tdmt1aS0tY29sb3JfaWNvbl9zZWNvbmRhcnktLWhvdmVyOiAjQTBBMUE2OwogIC0tdmt1aS0tY29sb3JfaWNvbl90ZXJ0aWFyeS0tYWN0aXZlOiAjOEQ4RTkzOwogIC0tdmt1aS0tY29sb3JfbGlua19jb250cmFzdC0tYWN0aXZlOiAjRkZGRkZGOwogIC0tdmt1aS0tY29sb3Jfb3ZlcmxheV9wcmltYXJ5X2FscGhhOiByZ2JhKDAsIDAsIDAsIDAuNDgpOwogIC0tdmt1aS0tY29sb3Jfb3ZlcmxheV92aWV3ZXItLWhvdmVyOiByZ2JhKDAsIDAsIDAsIDAuOTIpOwogIC0tdmt1aS0tY29sb3Jfc2tlbGV0b25fZnJvbS0tYWN0aXZlOiAjM0IzQjNDOwogIC0tdmt1aS0tY29sb3Jfc3Ryb2tlX2FjY2VudC0tYWN0aXZlOiAjNEM4Q0ZEOwogIC0tdmt1aS0tY29sb3JfdGV4dF9jb250cmFzdC0tYWN0aXZlOiAjRkZGRkZGOwogIC0tdmt1aS0tY29sb3JfdGV4dF9uZWdhdGl2ZS0tYWN0aXZlOiAjRUUxRTQ0OwogIC0tdmt1aS0tY29sb3JfdGV4dF9wb3NpdGl2ZS0tYWN0aXZlOiAjMjBDNzc0OwogIC0tdmt1aS0tY29sb3JfdGV4dF9zZWNvbmRhcnktLWhvdmVyOiAjOTE5Mzk4OwogIC0tdmt1aS0tY29sb3JfdGV4dF90ZXJ0aWFyeS0tYWN0aXZlOiAjN0Y4MTg1OwogIC0tdmt1aS0tY29sb3Jfd3JpdGVfYmFyX2ljb24tLWhvdmVyOiAjNDQ4N0ZEOwogIC0tdmt1aS0tY29sb3JfYXZhdGFyX292ZXJsYXktLWFjdGl2ZTogcmdiYSgxNzYsIDE3OCwgMTgyLCAwLjU2KTsKICAtLXZrdWktLWNvbG9yX2ljb25fc2Vjb25kYXJ5LS1hY3RpdmU6ICNBNEE1QTk7CiAgLS12a3VpLS1jb2xvcl9vdmVybGF5X3ByaW1hcnktLWhvdmVyOiByZ2JhKDAsIDAsIDAsIDAuMjgpOwogIC0tdmt1aS0tY29sb3Jfb3ZlcmxheV92aWV3ZXItLWFjdGl2ZTogcmdiYSgwLCAwLCAwLCAwLjk2KTsKICAtLXZrdWktLWNvbG9yX3N0cm9rZV9jb250cmFzdC0taG92ZXI6ICNGRkZGRkY7CiAgLS12a3VpLS1jb2xvcl9zdHJva2VfbmVnYXRpdmUtLWhvdmVyOiAjRUUxNDNDOwogIC0tdmt1aS0tY29sb3Jfc3Ryb2tlX3Bvc2l0aXZlLS1ob3ZlcjogIzE3QzQ2RTsKICAtLXZrdWktLWNvbG9yX3RleHRfc2Vjb25kYXJ5LS1hY3RpdmU6ICM5NTk3OUQ7CiAgLS12a3VpLS1jb2xvcl93cml0ZV9iYXJfaWNvbi0tYWN0aXZlOiAjNEM4Q0ZEOwogIC0tdmt1aS0tY29sb3JfYWNjZW50X3NlY29uZGFyeS0taG92ZXI6ICNGRkEyMEE7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX21vZGFsLS1ob3ZlcjogIzM4MzgzODsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfd2FybmluZ190aW50OiByZ2JhKDI1NSwgMTU4LCAwLCAwLjI4KTsKICAtLXZrdWktLWNvbG9yX2ljb25fcHJpbWFyeV9pbnZhcmlhYmx5OiAjMkMyRDJFOwogIC0tdmt1aS0tY29sb3JfaW1hZ2VfcGxhY2Vob2xkZXJfYWxwaGE6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTsKICAtLXZrdWktLWNvbG9yX292ZXJsYXlfcHJpbWFyeS0tYWN0aXZlOiByZ2JhKDAsIDAsIDAsIDAuMzIpOwogIC0tdmt1aS0tY29sb3Jfc2VhcmNoX2ZpZWxkX2JhY2tncm91bmQ6ICMzOTNBM0I7CiAgLS12a3VpLS1jb2xvcl9zZXBhcmF0b3JfcHJpbWFyeV9hbHBoYTogcmdiYSgwLCAwLCAwLCAwLjQpOwogIC0tdmt1aS0tY29sb3Jfc3Ryb2tlX2NvbnRyYXN0LS1hY3RpdmU6ICNGRkZGRkY7CiAgLS12a3VpLS1jb2xvcl9zdHJva2VfbmVnYXRpdmUtLWFjdGl2ZTogI0VFMUU0NDsKICAtLXZrdWktLWNvbG9yX3N0cm9rZV9wb3NpdGl2ZS0tYWN0aXZlOiAjMjBDNzc0OwogIC0tdmt1aS0tY29sb3JfdGV4dF9saW5rX3RoZW1lZC0taG92ZXI6ICNGRkZGRkY7CiAgLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnlfaW52YXJpYWJseTogIzJDMkQyRTsKICAtLXZrdWktLWNvbG9yX3RyYWNrX2JhY2tncm91bmQtLWhvdmVyOiAjNEI0QjRDOwogIC0tdmt1aS0tY29sb3JfYWNjZW50X3NlY29uZGFyeS0tYWN0aXZlOiAjRkZBNjE0OwogIC0tdmt1aS0tY29sb3JfYWN0aW9uX3NoZWV0X3RleHQtLWhvdmVyOiAjNDQ4N0ZEOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9hY2NlbnQtLWhvdmVyOiAjMzA3QkZDOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9hY2NlbnRfdGhlbWVkOiAjRkZGRkZGOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9tb2RhbC0tYWN0aXZlOiAjNDE0MTQxOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9uZWdhdGl2ZV90aW50OiAjNTIyZTJlOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9wb3NpdGl2ZV90aW50OiByZ2JhKDEzLCAxOTQsIDEwNCwgMC4yOCk7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3B1cnBsZS0taG92ZXI6ICM3RTY2RTk7CiAgLS12a3VpLS1jb2xvcl9oZWFkZXJfYmFja2dyb3VuZC0taG92ZXI6ICMyQzJDMkQ7CiAgLS12a3VpLS1jb2xvcl9pY29uX21lZGl1bV9hbHBoYS0taG92ZXI6IHJnYmEoMjQ1LCAyNDYsIDI1NSwgMC43NCk7CiAgLS12a3VpLS1jb2xvcl9pbWFnZV9wbGFjZWhvbGRlci0taG92ZXI6ICM0MTQyNDM7CiAgLS12a3VpLS1jb2xvcl9wYW5lbF9oZWFkZXJfaWNvbi0taG92ZXI6ICM0NDg3RkQ7CiAgLS12a3VpLS1jb2xvcl9zZXBhcmF0b3JfcHJpbWFyeS0taG92ZXI6ICMxRTFFMUY7CiAgLS12a3VpLS1jb2xvcl90ZXh0X2xpbmtfdGhlbWVkLS1hY3RpdmU6ICNGRkZGRkY7CiAgLS12a3VpLS1jb2xvcl90ZXh0X2xpbmtfdmlzaXRlZC0taG92ZXI6ICM1OTkzRTA7CiAgLS12a3VpLS1jb2xvcl90cmFja19iYWNrZ3JvdW5kLS1hY3RpdmU6ICM1MjUzNTQ7CiAgLS12a3VpLS1jb2xvcl9hY3Rpb25fc2hlZXRfdGV4dC0tYWN0aXZlOiAjNEM4Q0ZEOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9hY2NlbnQtLWFjdGl2ZTogIzM4ODBGQzsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfY29udGVudC0taG92ZXI6ICMyQzJDMkQ7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3B1cnBsZS0tYWN0aXZlOiAjODQ2REVBOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF93YXJuaW5nLS1ob3ZlcjogIzcyNTUwQTsKICAtLXZrdWktLWNvbG9yX2ZpZWxkX2JvcmRlcl9hbHBoYS0taG92ZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKICAtLXZrdWktLWNvbG9yX2hlYWRlcl9iYWNrZ3JvdW5kLS1hY3RpdmU6ICMzNTM1MzY7CiAgLS12a3VpLS1jb2xvcl9pY29uX2FjY2VudF90aGVtZWQtLWhvdmVyOiAjRkZGRkZGOwogIC0tdmt1aS0tY29sb3JfaWNvbl9tZWRpdW1fYWxwaGEtLWFjdGl2ZTogcmdiYSgyNDUsIDI0NiwgMjU1LCAwLjc4KTsKICAtLXZrdWktLWNvbG9yX2ltYWdlX2JvcmRlcl9hbHBoYS0taG92ZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7CiAgLS12a3VpLS1jb2xvcl9pbWFnZV9wbGFjZWhvbGRlci0tYWN0aXZlOiAjNDk0QTRCOwogIC0tdmt1aS0tY29sb3JfcGFuZWxfaGVhZGVyX2ljb24tLWFjdGl2ZTogIzRDOENGRDsKICAtLXZrdWktLWNvbG9yX3NlcGFyYXRvcl9wcmltYXJ5LS1hY3RpdmU6ICMyODI4Mjk7CiAgLS12a3VpLS1jb2xvcl90ZXh0X2FjY2VudF90aGVtZWQtLWhvdmVyOiAjRkZGRkZGOwogIC0tdmt1aS0tY29sb3JfdGV4dF9saW5rX3Zpc2l0ZWQtLWFjdGl2ZTogIzYwOThFMjsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfY29udGVudC0tYWN0aXZlOiAjMzUzNTM2OwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9jb250cmFzdC0taG92ZXI6ICNGRkZGRkY7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX25lZ2F0aXZlLS1ob3ZlcjogI0VFMTQzQzsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfcG9zaXRpdmUtLWhvdmVyOiAjMTdDNDZFOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnlfYWxwaGE6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyk7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3RlcnRpYXJ5LS1ob3ZlcjogIzJFMkUyRTsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfd2FybmluZy0tYWN0aXZlOiAjNzg1QzE0OwogIC0tdmt1aS0tY29sb3JfZmllbGRfYm9yZGVyX2FscGhhLS1hY3RpdmU6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNCk7CiAgLS12a3VpLS1jb2xvcl9pY29uX2FjY2VudF90aGVtZWQtLWFjdGl2ZTogI0ZGRkZGRjsKICAtLXZrdWktLWNvbG9yX2ljb25fdGVydGlhcnlfYWxwaGEtLWhvdmVyOiByZ2JhKDI0NSwgMjQ2LCAyNTUsIDAuNTQpOwogIC0tdmt1aS0tY29sb3JfaW1hZ2VfYm9yZGVyX2FscGhhLS1hY3RpdmU6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7CiAgLS12a3VpLS1jb2xvcl9wdXJwbGVfb3BhY2l0eV90aW50LS1ob3ZlcjogcmdiYSgyMzQsIDIyNiwgMjU1LCAwLjE2KTsKICAtLXZrdWktLWNvbG9yX3NlcGFyYXRvcl9zZWNvbmRhcnktLWhvdmVyOiAjMjEyMTIxOwogIC0tdmt1aS0tY29sb3JfdGV4dF9hY2NlbnRfdGhlbWVkLS1hY3RpdmU6ICNGRkZGRkY7CiAgLS12a3VpLS1jb2xvcl93cml0ZV9iYXJfaW5wdXRfYmFja2dyb3VuZDogIzJBMkEyQjsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfYWNjZW50X2FsdGVybmF0ZTogI0ZGOUUwMDsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfY29udHJhc3QtLWFjdGl2ZTogI0ZGRkZGRjsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfaW5mb190aW50LS1ob3ZlcjogcmdiYSgwLCA5NSwgMjQ5LCAwLjMyKTsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfbmVnYXRpdmUtLWFjdGl2ZTogI0VFMUU0NDsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfcG9zaXRpdmUtLWFjdGl2ZTogIzIwQzc3NDsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5LS1ob3ZlcjogIzMzMzMzMzsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfdGVydGlhcnktLWFjdGl2ZTogIzM2MzYzNjsKICAtLXZrdWktLWNvbG9yX2ljb25fY29udHJhc3RfdGhlbWVkLS1ob3ZlcjogIzM0MzUzNjsKICAtLXZrdWktLWNvbG9yX2ljb25fc2Vjb25kYXJ5X2FscGhhLS1ob3ZlcjogcmdiYSgyNDUsIDI0NiwgMjU1LCAwLjY0KTsKICAtLXZrdWktLWNvbG9yX2ljb25fdGVydGlhcnlfYWxwaGEtLWFjdGl2ZTogcmdiYSgyNDUsIDI0NiwgMjU1LCAwLjU4KTsKICAtLXZrdWktLWNvbG9yX3B1cnBsZV9vcGFjaXR5X3RpbnQtLWFjdGl2ZTogcmdiYSgyMzQsIDIyNiwgMjU1LCAwLjIpOwogIC0tdmt1aS0tY29sb3Jfc2VwYXJhdG9yX3NlY29uZGFyeS0tYWN0aXZlOiAjMkEyQTJBOwogIC0tdmt1aS0tY29sb3Jfc3Ryb2tlX2FjY2VudF90aGVtZWQtLWhvdmVyOiAjRkZGRkZGOwogIC0tdmt1aS0tY29sb3JfdGV4dF9jb250cmFzdF90aGVtZWQtLWhvdmVyOiAjMzQzNTM2OwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9lcnJvcl90aW50LS1ob3ZlcjogcmdiYSgyMzcsIDEwLCA1MiwgMC4zMik7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX2luZm9fdGludC0tYWN0aXZlOiByZ2JhKDAsIDk1LCAyNDksIDAuMzYpOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnktLWFjdGl2ZTogIzNCM0IzQzsKICAtLXZrdWktLWNvbG9yX2ljb25fY29udHJhc3RfdGhlbWVkLS1hY3RpdmU6ICMzRDNFM0Y7CiAgLS12a3VpLS1jb2xvcl9pY29uX3NlY29uZGFyeV9hbHBoYS0tYWN0aXZlOiByZ2JhKDI0NSwgMjQ2LCAyNTUsIDAuNjgpOwogIC0tdmt1aS0tY29sb3Jfb3ZlcmxheV9wcmltYXJ5X2FscGhhLS1ob3ZlcjogcmdiYSgwLCAwLCAwLCAwLjUyKTsKICAtLXZrdWktLWNvbG9yX3N0cm9rZV9hY2NlbnRfdGhlbWVkLS1hY3RpdmU6ICNGRkZGRkY7CiAgLS12a3VpLS1jb2xvcl90ZXh0X2NvbnRyYXN0X3RoZW1lZC0tYWN0aXZlOiAjM0QzRTNGOwogIC0tdmt1aS0tY29sb3Jfd3JpdGVfYmFyX2lucHV0X2JvcmRlcl9hbHBoYTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9lcnJvcl90aW50LS1hY3RpdmU6IHJnYmEoMjM3LCAxMCwgNTIsIDAuMzYpOwogIC0tdmt1aS0tY29sb3Jfb3ZlcmxheV9wcmltYXJ5X2FscGhhLS1hY3RpdmU6IHJnYmEoMCwgMCwgMCwgMC41Nik7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3dhcm5pbmdfdGludC0taG92ZXI6IHJnYmEoMjU1LCAxNTgsIDAsIDAuMzIpOwogIC0tdmt1aS0tY29sb3JfaWNvbl9wcmltYXJ5X2ludmFyaWFibHktLWhvdmVyOiAjMzQzNTM2OwogIC0tdmt1aS0tY29sb3JfaW1hZ2VfcGxhY2Vob2xkZXJfYWxwaGEtLWhvdmVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODQpOwogIC0tdmt1aS0tY29sb3Jfc2VhcmNoX2ZpZWxkX2JhY2tncm91bmQtLWhvdmVyOiAjNDE0MjQzOwogIC0tdmt1aS0tY29sb3Jfc2VwYXJhdG9yX3ByaW1hcnlfYWxwaGEtLWhvdmVyOiByZ2JhKDAsIDAsIDAsIDAuNDQpOwogIC0tdmt1aS0tY29sb3JfdGV4dF9wcmltYXJ5X2ludmFyaWFibHktLWhvdmVyOiAjMzQzNTM2OwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9hY2NlbnRfdGhlbWVkLS1ob3ZlcjogI0ZGRkZGRjsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfbmVnYXRpdmVfdGludC0taG92ZXI6ICM1OTM2MzY7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3Bvc2l0aXZlX3RpbnQtLWhvdmVyOiByZ2JhKDEzLCAxOTQsIDEwNCwgMC4zMik7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3dhcm5pbmdfdGludC0tYWN0aXZlOiByZ2JhKDI1NSwgMTU4LCAwLCAwLjM2KTsKICAtLXZrdWktLWNvbG9yX2ljb25fcHJpbWFyeV9pbnZhcmlhYmx5LS1hY3RpdmU6ICMzRDNFM0Y7CiAgLS12a3VpLS1jb2xvcl9pbWFnZV9wbGFjZWhvbGRlcl9hbHBoYS0tYWN0aXZlOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODgpOwogIC0tdmt1aS0tY29sb3Jfc2VhcmNoX2ZpZWxkX2JhY2tncm91bmQtLWFjdGl2ZTogIzQ5NEE0QjsKICAtLXZrdWktLWNvbG9yX3NlcGFyYXRvcl9wcmltYXJ5X2FscGhhLS1hY3RpdmU6IHJnYmEoMCwgMCwgMCwgMC40OCk7CiAgLS12a3VpLS1jb2xvcl90ZXh0X3ByaW1hcnlfaW52YXJpYWJseS0tYWN0aXZlOiAjM0QzRTNGOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9hY2NlbnRfdGhlbWVkLS1hY3RpdmU6ICNGRkZGRkY7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX25lZ2F0aXZlX3RpbnQtLWFjdGl2ZTogIzYwM0YzRjsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfcG9zaXRpdmVfdGludC0tYWN0aXZlOiByZ2JhKDEzLCAxOTQsIDEwNCwgMC4zNik7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX3NlY29uZGFyeV9hbHBoYS0taG92ZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMSk7CiAgLS12a3VpLS1jb2xvcl93cml0ZV9iYXJfaW5wdXRfYmFja2dyb3VuZC0taG92ZXI6ICMzMzMzMzM7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX2FjY2VudF9hbHRlcm5hdGUtLWhvdmVyOiAjRkZBMjBBOwogIC0tdmt1aS0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnlfYWxwaGEtLWFjdGl2ZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsKICAtLXZrdWktLWNvbG9yX3dyaXRlX2Jhcl9pbnB1dF9iYWNrZ3JvdW5kLS1hY3RpdmU6ICMzQjNCM0M7CiAgLS12a3VpLS1jb2xvcl9iYWNrZ3JvdW5kX2FjY2VudF9hbHRlcm5hdGUtLWFjdGl2ZTogI0ZGQTYxNDsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfY29udHJhc3Rfc2Vjb25kYXJ5X2FscGhhOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CiAgLS12a3VpLS1jb2xvcl93cml0ZV9iYXJfaW5wdXRfYm9yZGVyX2FscGhhLS1ob3ZlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg0KTsKICAtLXZrdWktLWNvbG9yX3dyaXRlX2Jhcl9pbnB1dF9ib3JkZXJfYWxwaGEtLWFjdGl2ZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg4KTsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfY29udHJhc3Rfc2Vjb25kYXJ5X2FscGhhLS1ob3ZlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KTsKICAtLXZrdWktLWNvbG9yX2JhY2tncm91bmRfY29udHJhc3Rfc2Vjb25kYXJ5X2FscGhhLS1hY3RpdmU6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yOCk7Cn0KLlB1bHNlTGVudGEtY29tcGFjdC0wLTEtMyB7CiAgLS12a3VpLS1mb250X3RleHQtLWZvbnRfc2l6ZS0tY29tcGFjdDogMTZweDsKICAtLXZrdWktLWZvbnRfdGV4dC0tbGluZV9oZWlnaHQtLWNvbXBhY3Q6IDIycHg7CiAgLS12a3VpLS1mb250X3N1YmhlYWQtLWZvbnRfc2l6ZS0tY29tcGFjdDogMTRweDsKICAtLXZrdWktLWZvbnRfaGVhZGxpbmUxLS1mb250X3NpemUtLWNvbXBhY3Q6IDE2cHg7CiAgLS12a3VpLS1mb250X2hlYWRsaW5lMi0tZm9udF9zaXplLS1jb21wYWN0OiAxNXB4OwogIC0tdmt1aS0tZm9udF9zdWJoZWFkLS1mb250X2ZhbWlseS0tY29tcGFjdDogQXJpYWwsIHNhbnMtc2VyaWY7CiAgLS12a3VpLS1mb250X3N1YmhlYWQtLWZvbnRfd2VpZ2h0LS1jb21wYWN0OiA0MDA7CiAgLS12a3VpLS1mb250X3N1YmhlYWQtLWxpbmVfaGVpZ2h0LS1jb21wYWN0OiAxOHB4OwogIC0tdmt1aS0tZm9udF9tZWRpYV9sZWFkLS1mb250X3NpemUtLWNvbXBhY3Q6IDIycHg7CiAgLS12a3VpLS1mb250X2hlYWRsaW5lMS0tbGluZV9oZWlnaHQtLWNvbXBhY3Q6IDIwcHg7CiAgLS12a3VpLS1mb250X2hlYWRsaW5lMi0tbGluZV9oZWlnaHQtLWNvbXBhY3Q6IDIwcHg7CiAgLS12a3VpLS1mb250X21lZGlhX2hlYWRlci0tZm9udF9zaXplLS1jb21wYWN0OiA0MHB4OwogIC0tdmt1aS0tZm9udF9tZWRpYV9sZWFkLS1saW5lX2hlaWdodC0tY29tcGFjdDogMzJweDsKICAtLXZrdWktLWZvbnRfbWVkaWFfaGVhZGVyLS1mb250X2ZhbWlseS0tY29tcGFjdDogTWFpbFNhbnMsIEFyaWFsLCBzYW5zLXNlcmlmOwogIC0tdmt1aS0tZm9udF9tZWRpYV9oZWFkZXItLWxpbmVfaGVpZ2h0LS1jb21wYWN0OiA0OHB4OwogIC0tdmt1aS0tZm9udF9tZWRpYV9sZWFkLS1sZXR0ZXJfc3BhY2luZy0tY29tcGFjdDogLTAuMDAzZW07CiAgLS12a3VpLS1mb250X21lZGlhX3BhcmFncmFwaC0tZm9udF9zaXplLS1jb21wYWN0OiAxOXB4OwogIC0tdmt1aS0tZm9udF9tZWRpYV9wYXJhZ3JhcGgtLWZvbnRfd2VpZ2h0LS1jb21wYWN0OiA0MDA7CiAgLS12a3VpLS1mb250X21lZGlhX3BhcmFncmFwaC0tbGluZV9oZWlnaHQtLWNvbXBhY3Q6IDMycHg7Cn0KLlB1bHNlTGVudGEtcmVsYXRpdmUtMC0xLTQgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQo8L3N0eWxlPjxzY3JpcHQgc3JjPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy8zRjg4N0EuanMu0JHQtdC3INC90LDQt9Cy0LDQvdC40Y8iIGlkPSJkYXRhLXRyZ2J2aWV3LWNvcmUiIGRhdGEtbG9hZGVkPSJ0cnVlIj48L3NjcmlwdD48bGluayBocmVmPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy9BRTY4QzAuY3NzIiByZWw9InN0eWxlc2hlZXQiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly95YXN0YXRpYy5uZXQvIj48bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vYXZhdGFycy5tZHMueWFuZGV4Lm5ldC8iPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9tYy55YW5kZXgucnUvIj48bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vYWRzLmFkZm94LnJ1LyI+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSJodHRwczovL3lhc3RhdGljLm5ldC9zMy9ob21lL2ZvbnRzL3lzLzMvdGV4dC12YXJpYWJsZS1mdWxsLndvZmYyIiB0eXBlPSJmb250L3dvZmYyIiBhcz0iZm9udCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PHN0eWxlIGlkPSJ5c1RleHRDc3NSdWxlIj5AZm9udC1mYWNlIHsKICAgICAgICBmb250LWZhbWlseTogIllTIFRleHQgVmFyaWFibGUiOwogICAgICAgIHNyYzogdXJsKCJodHRwczovL3lhc3RhdGljLm5ldC9zMy9ob21lL2ZvbnRzL3lzLzMvdGV4dC12YXJpYWJsZS1mdWxsLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDAgNzAwOwogICAgICAgIGZvbnQtZGlzcGxheTogb3B0aW9uYWw7CiAgICB9PC9zdHlsZT48c2NyaXB0IGFzeW5jPSIiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvaG9zdC5qcy7QkdC10Lcg0L3QsNC30LLQsNC90LjRjyI+PC9zY3JpcHQ+PHNjcmlwdCBhc3luYz0iIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIiBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL3dhdGNoLmpzLtCR0LXQtyDQvdCw0LfQstCw0L3QuNGPIj48L3NjcmlwdD48c2NyaXB0IGFzeW5jPSIiIHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvdmlkZW8uanMu0JHQtdC3INC90LDQt9Cy0LDQvdC40Y8iPjwvc2NyaXB0PjxzdHlsZSBpZD0ic3ZlbHRlLTFkcXM3eWoiPjpyb290ey0tbWVkaWEtdHJlbmQtLWNvbG9yX2JhY2tncm91bmQtY29udHJhc3RfdmlkZW8tbGlzdF9zZWNvbmRhcnk6IzJhMmEyYjstLW1lZGlhLXRyZW5kLS1jb2xvcl9iYWNrZ3JvdW5kX2FjY2VudF90aGVtZWQ6IzAwNWZmOTstLW1lZGlhLXRyZW5kLS1jb2xvcl9iYWNrZ3JvdW5kX2NvbnRlbnQ6I2ZmZjstLW1lZGlhLXRyZW5kLS1jb2xvcl9iYWNrZ3JvdW5kX2NvbnRyYXN0X3NlY29uZGFyeV9hbHBoYS0taG92ZXI6cmdiKDI1NSAyNTUgMjU1IC8gMjQlKTstLW1lZGlhLXRyZW5kLS1jb2xvcl9iYWNrZ3JvdW5kX2NvbnRyYXN0X3ZpZGVvLWxpc3RfcHJpbWFyeTojMTkxOTFhOy0tbWVkaWEtdHJlbmQtLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5X2FscGhhLS1hY3RpdmU6cmdiYSgwLCAxNiwgNjEsIDAuMTQpOy0tbWVkaWEtdHJlbmQtLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5X2FscGhhLS1ob3ZlcjpyZ2JhKDAsIDE2LCA2MSwgMC4xKTstLW1lZGlhLXRyZW5kLS1jb2xvcl9iYWNrZ3JvdW5kX3NlY29uZGFyeV9hbHBoYTpyZ2JhKDAsIDE2LCA2MSwgMC4wNik7LS1tZWRpYS10cmVuZC0tY29sb3JfaWNvbl9tZWRpdW06IzgxOGM5OTstLW1lZGlhLXRyZW5kLS1jb2xvcl9saW5lYXItZ3JhZGllbnRfdmlkZW8tbGlzdDpyZ2IoMCAwIDAgLyAwJSkgMCUsICMwMDAgMTAwJSwgdHJhbnNwYXJlbnQ7LS1tZWRpYS10cmVuZC0tY29sb3Jfb3ZlcmxheV9wcmltYXJ5LS1hY3RpdmU6cmdiKDAgMCAwIC8gNDglKTstLW1lZGlhLXRyZW5kLS1jb2xvcl90ZXh0X2NvbnRyYXN0X3RoZW1lZDojZmZmOy0tbWVkaWEtdHJlbmQtLWNvbG9yX3RleHRfcHJpbWFyeTojMDAwOy0tbWVkaWEtdHJlbmQtLWNvbG9yX3RleHRfc2Vjb25kYXJ5OiM4Nzg5OGY7LS1tZWRpYS10cmVuZC0tZm9udF9oZWFkbGluZS0tZm9udF9mYW1pbHktLWRlZmF1bHQ6QXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjstLW1lZGlhLXRyZW5kLS1mb250X2hlYWRsaW5lLS1mb250X2ZhbWlseS0tcmVndWxhcjpNYWlsU2FucywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjstLW1lZGlhLXRyZW5kLS1zaXplX2Jhc2VfcGFkZGluZ19ob3Jpem9udGFsLS1yZWd1bGFyOjEycHg7LS1tZWRpYS10cmVuZC0tc2l6ZV9iYXNlX3BhZGRpbmdfdmVydGljYWwtLXJlZ3VsYXI6MTJweDstLW1lZGlhLXRyZW5kLS1zaXplX2JvcmRlcl9yYWRpdXMtLXJlZ3VsYXI6OHB4Oy0tbWVkaWEtdHJlbmQtLXNpemVfYm9yZGVyX3JhZGl1c19wYXBlci0tcmVndWxhcjoxMnB4Oy0tbWVkaWEtdHJlbmQtLXNpemVfYnV0dG9uX21lZGl1bV9oZWlnaHQtLWNvbXBhY3Q6MzJweDstLW1lZGlhLXRyZW5kLS1zaXplX2J1dHRvbl9wYWRkaW5nX2hvcml6b250YWwtLXJlZ3VsYXI6MTJweDstLW1lZGlhLXRyZW5kLS1zaXplX3NwbGl0X2NvbF9wYWRkaW5nX2hvcml6b250YWwtLXJlZ3VsYXI6MTZweDstLW1lZGlhLXRyZW5kLS1zaXplLXBsYXlsaXN0LXBhZGRpbmc6OHB4Oy0tbWVkaWEtdHJlbmQtLXNpemUtcGxheWxpc3Qtc2Nyb2xsYmFyOjZweDstLW1lZGlhLXRyZW5kLS1zaXplLXBsYXlsaXN0LWZhZGU6NjRweDstLW1lZGlhLXRyZW5kLS1zaXplLXgwOjBweDstLW1lZGlhLXRyZW5kLS1zaXplLXgwMjU6MXB4Oy0tbWVkaWEtdHJlbmQtLXNpemUteDA1OjJweDstLW1lZGlhLXRyZW5kLS1zaXplLXgxOjRweDstLW1lZGlhLXRyZW5kLS1zaXplLXgyOjhweDstLW1lZGlhLXRyZW5kLS1zaXplLXgzOjEycHg7LS1tZWRpYS10cmVuZC0tc2l6ZS14NDoxNnB4Oy0tbWVkaWEtdHJlbmQtLXNpemUteDU6MjBweDstLW1lZGlhLXRyZW5kLS1zaXplLXg2OjI0cHg7LS1tZWRpYS10cmVuZC0tc2l6ZS14ODozMnB4Oy0tbWVkaWEtdHJlbmQtLXNpemUteDEwOjQwcHg7LS1tZWRpYS10cmVuZC0tc2l6ZS14MTI6NDhweDstLW1lZGlhLXRyZW5kLS1zaXplLXgxNTo2MHB4Oy0tbWVkaWEtdHJlbmQtLXNpemUteDIwOjgwcHg7LS1tZWRpYS10cmVuZC0tc2l6ZS1iYXNlOjRweDstLW1lZGlhLXRyZW5kLS1zaXplLXBsYXllci1jb250cm9sczo1NHB4fUBtZWRpYShwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayl7OnJvb3R7LS1tZWRpYS10cmVuZC0tY29sb3JfYmFja2dyb3VuZF9hY2NlbnRfdGhlbWVkOiNmZmY7LS1tZWRpYS10cmVuZC0tY29sb3JfYmFja2dyb3VuZF9jb250ZW50OiMxOTE5MWE7LS1tZWRpYS10cmVuZC0tY29sb3JfYmFja2dyb3VuZF9jb250cmFzdF9zZWNvbmRhcnlfYWxwaGEtLWhvdmVyOmhzbGEoMCwgMCUsIDEwMCUsIDAuMjQpOy0tbWVkaWEtdHJlbmQtLWNvbG9yX2JhY2tncm91bmRfc2Vjb25kYXJ5X2FscGhhLS1hY3RpdmU6aHNsYSgwLCAwJSwgMTAwJSwgMC4yKTstLW1lZGlhLXRyZW5kLS1jb2xvcl9iYWNrZ3JvdW5kX3NlY29uZGFyeV9hbHBoYS0taG92ZXI6aHNsYSgwLCAwJSwgMTAwJSwgMC4xNik7LS1tZWRpYS10cmVuZC0tY29sb3JfYmFja2dyb3VuZF9zZWNvbmRhcnlfYWxwaGE6aHNsYSgwLCAwJSwgMTAwJSwgMC4wOCk7LS1tZWRpYS10cmVuZC0tY29sb3JfaWNvbl9tZWRpdW06I2IwYjFiNjstLW1lZGlhLXRyZW5kLS1jb2xvcl90ZXh0X2NvbnRyYXN0X3RoZW1lZDojMmMyZDJlOy0tbWVkaWEtdHJlbmQtLWNvbG9yX3RleHRfcHJpbWFyeTojZTFlM2U2Oy0tbWVkaWEtdHJlbmQtLWNvbG9yX3RleHRfc2Vjb25kYXJ5OiM4YzhlOTR9fTwvc3R5bGU+PHN0eWxlIGlkPSJzdmVsdGUtMWZic210YiI+QGtleWZyYW1lcyBzdmVsdGUtMWZic210Yi13YXZlezAle3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoLTI1JSwgLTMwMCUpfTEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZSgtMjUlLCAzMDAlKX19LlBsYWNlaG9sZGVyQ29udGFpbmVyLnN2ZWx0ZS0xZmJzbXRie2NvbnRhaW5lcjpQbGFjZWhvbGRlclJvb3QgLyBpbmxpbmUtc2l6ZX0uUGxhY2Vob2xkZXIuc3ZlbHRlLTFmYnNtdGJ7YmFja2dyb3VuZC1jb2xvcjojZjBmMWYzO2JvcmRlci1yYWRpdXM6MTJweDtmb250LXNpemU6MDtoZWlnaHQ6YXV0bztvdmVyZmxvdzpoaWRkZW47dGV4dC1pbmRlbnQ6LTk5OXB4O3dpZHRoOjEwMCV9LlBsYWNlaG9sZGVyLnN2ZWx0ZS0xZmJzbXRiOjpiZWZvcmV7Y29udGVudDonJztoZWlnaHQ6NTAlO3dpZHRoOjMwMCU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRlZywgI2YwZjFmMywgI2ZmZiwgI2YwZjFmMyk7ZGlzcGxheTpibG9jazthbmltYXRpb246c3ZlbHRlLTFmYnNtdGItd2F2ZSAyLjVzIGVhc2UgaW5maW5pdGV9LkNhcHRpb24uc3ZlbHRlLTFmYnNtdGJ7bWFyZ2luOjEycHggMCAwO2N1cnNvcjpkZWZhdWx0fS5Qc2V1ZG9UZXh0LnN2ZWx0ZS0xZmJzbXRie21pbi1oZWlnaHQ6MTVweDttYXJnaW4tdG9wOjVweDtib3JkZXItcmFkaXVzOjRweH0uUHNldWRvVGV4dC5zdmVsdGUtMWZic210YjpmaXJzdC1jaGlsZHt3aWR0aDo3NCU7YmFja2dyb3VuZC1jb2xvcjojZjBmMWYzfS5Qc2V1ZG9UZXh0LnN2ZWx0ZS0xZmJzbXRiOmxhc3QtY2hpbGR7YmFja2dyb3VuZC1jb2xvcjojZjBmMWYzO21hcmdpbi10b3A6OHB4O3dpZHRoOjUwJX0uUGxhY2Vob2xkZXItLWNvbnRyYXN0LnN2ZWx0ZS0xZmJzbXRie2JhY2tncm91bmQtY29sb3I6dmFyKC0tbWVkaWEtdHJlbmQtLWNvbG9yX2JhY2tncm91bmRfY29udHJhc3RfdmlkZW8tbGlzdF9wcmltYXJ5KTsmOjpiZWZvcmUgewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoCiAgICAgICAgMGRlZywKICAgICAgICB2YXIoLS1tZWRpYS10cmVuZC0tY29sb3JfYmFja2dyb3VuZF9jb250cmFzdF92aWRlby1saXN0X3ByaW1hcnkpLAogICAgICAgICMwMDAsCiAgICAgICAgdmFyKC0tbWVkaWEtdHJlbmQtLWNvbG9yX2JhY2tncm91bmRfY29udHJhc3RfdmlkZW8tbGlzdF9wcmltYXJ5KQogICAgICApOwogICAgfX0uUGxhY2Vob2xkZXItLXNpZGViYXIzMDB4NjAwLnN2ZWx0ZS0xZmJzbXRie3dpZHRoOjMwMHB4O2hlaWdodDo2MDBweH0uUGxhY2Vob2xkZXItLXNpZGViYXIuc3ZlbHRlLTFmYnNtdGJ7bWF4LXdpZHRoOjMwMHB4O2FzcGVjdC1yYXRpbzoxLzF9LlBsYWNlaG9sZGVyLS1kZWZhdWx0LnN2ZWx0ZS0xZmJzbXRiLC5QbGFjZWhvbGRlci0tc2ltcGxlLnN2ZWx0ZS0xZmJzbXRiLC5QbGFjZWhvbGRlci0tc2xpZGVyLnN2ZWx0ZS0xZmJzbXRie2FzcGVjdC1yYXRpbzoxNi85fS5QbGFjZWhvbGRlci0td2l0aFBsYXlsaXN0LnN2ZWx0ZS0xZmJzbXRiLC5QbGFjZWhvbGRlci0td2l0aFBsYXlsaXN0QWRhcHRpdmUuc3ZlbHRlLTFmYnNtdGJ7bWF4LXdpZHRoOjEyNjBweDthc3BlY3QtcmF0aW86MX1AY29udGFpbmVyIFBsYWNlaG9sZGVyUm9vdCAobWluLXdpZHRoOiA2MjBweCl7LlBsYWNlaG9sZGVyLS13aXRoUGxheWxpc3Quc3ZlbHRlLTFmYnNtdGIsLlBsYWNlaG9sZGVyLS13aXRoUGxheWxpc3RBZGFwdGl2ZS5zdmVsdGUtMWZic210Ynthc3BlY3QtcmF0aW86MS4zfX1AY29udGFpbmVyIFBsYWNlaG9sZGVyUm9vdCAobWluLXdpZHRoOiA3ODBweCl7LlBsYWNlaG9sZGVyLS13aXRoUGxheWxpc3Quc3ZlbHRlLTFmYnNtdGIsLlBsYWNlaG9sZGVyLS13aXRoUGxheWxpc3RBZGFwdGl2ZS5zdmVsdGUtMWZic210Ynthc3BlY3QtcmF0aW86Mi4zNX19PC9zdHlsZT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy92aWRlb3BsYXllci5qcy7QkdC10Lcg0L3QsNC30LLQsNC90LjRjyI+PC9zY3JpcHQ+PHN0eWxlIGlkPSJzdmVsdGUtMWdnbDJqeCI+aWZyYW1lLnN2ZWx0ZS0xZ2dsMmp4e2FzcGVjdC1yYXRpbzoxNi85O2JhY2tncm91bmQtY29sb3I6IzAwMDtib3JkZXItcmFkaXVzOjEycHg7Ym9yZGVyOjA7aGVpZ2h0OmF1dG87d2lkdGg6MTAwJX08L3N0eWxlPjxzdHlsZSBpZD0ic3ZlbHRlLXl5YnJqNyI+LlBvcHVwVHJpZ2dlcldyYXBwZXIuc3ZlbHRlLXl5YnJqN3tsaW5lLWhlaWdodDowO3Bvc2l0aW9uOnJlbGF0aXZlfS5Qb3B1cFRyaWdnZXJXcmFwcGVyLnN2ZWx0ZS15eWJyajc6OmFmdGVye2NvbnRlbnQ6Jyc7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OmNhbGMoMTAwJSAtIHZhcigtLW1lZGlhLXRyZW5kLS1zaXplLXBsYXllci1jb250cm9scykpO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlfS5Qb3B1cFRyaWdnZXJXcmFwcGVyLS1kaXNhYmxlZC5zdmVsdGUteXlicmo3OjphZnRlcntkaXNwbGF5Om5vbmV9PC9zdHlsZT48c2NyaXB0IGRlZmVyPSIiIGFzeW5jPSIiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy9tYXBpIj48L3NjcmlwdD48L2hlYWQ+CiAgICAgICAgICAgIDxib2R5PgoKICAgICAgICAgICAgICAgIAogICAgICAgIDwhLS0gc3RhcnQ6IC9yYi8xMDg0NjgyP19TSVRFSUQ9MjkgLS0+CiAgICAgICAgPHNjcmlwdCBpZD0iX19jb3JlLWtlZXBlcl9fIj4KdmFyIGNvcmVLZWVwZXI9ZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO3ZhciBTPSJzdHJpbmciLGk9Im9iamVjdCIseT0iZnVuY3Rpb24iO2Z1bmN0aW9uIHooYSxiKXtyZXR1cm4gdHlwZW9mIGE9PT1ifWZ1bmN0aW9uIFQoYyxhKXtmb3IodmFyIGIgaW4gYSlPYmplY3QuZGVmaW5lUHJvcGVydHkoYyxiLHtlbnVtZXJhYmxlOiExLHZhbHVlOmFbYl19KX12YXIgVSxiPXR5cGVvZiBnbG9iYWxUaGlzPT09aSYmZ2xvYmFsVGhpc3x8IHR5cGVvZiB3aW5kb3c9PT1pJiZ3aW5kb3d8fCB0eXBlb2YgZ2xvYmFsPT09aSYmZ2xvYmFsfHx7fSxWPWIuY29uc29sZSxvPWIuZG9jdW1lbnR8fHt9LEE9Yi5sb2NhdGlvbnx8e30scD1iLm5hdmlnYXRvcnx8e30sZD1wLmNvbm5lY3Rpb24saj1iLnBlcmZvcm1hbmNlLGs9ZnVuY3Rpb24oKXt9LEI9eihqJiZqLm5vdyx5KT9mdW5jdGlvbigpe3JldHVybiBqLm5vdygpfTpEYXRlLm5vdyxDPWIuc2V0VGltZW91dC5iaW5kKGIpLFc9KGIucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxDKS5iaW5kKGIpLFg9KGIuYWRkRXZlbnRMaXN0ZW5lcnx8aykuYmluZChiKSxfPW51bGwsWT12b2lkIDA7ZnVuY3Rpb24gRChhKXt2YXIgZSxmLGIsZz0wLGg9KGE9YXx8e30pLm5vd3x8QixpPWEud2FybixqPWEucHJlZml4fHwiIixjPWEuYWRkb25zfHxbXSxrPVtdLGw9ZnVuY3Rpb24oYSxiLGQpe2ZvcihlPWMubGVuZ3RoO2UtLTspY1tlXVthXShiLGQpfSxkPWZ1bmN0aW9uKGMsbSxwLHQsdSxxLG4sbyx2KXtjPWorYywobT09PWJ8fG8pJiYobT0hbyYma1swXXx8XykscFtjXSYmaSYmaSgiVGltZXIgJyIrYysiJyBleGlzdHMiKTt2YXIgcj1xPT1fLGE9cFtjXT17aWQ6KytnLG5hbWU6YyxwYXJlbnQ6bSx1bml0OnR8fCJtcyIsc3RhcnQ6cj9oKCk6cSxlbmQ6biE9Xz9uOl8sbWV0YTp2fTtmdW5jdGlvbiBzKGEsYixjKXsoZj1wW2E9aithXSk/eihmLnN0b3AseSk/Zi5zdG9wKGIsYyk6aSYmaSgiVGltZXIgJyIrYSsiJy5zdG9wIGlzIG5vdCBhIGZ1bmMiLHtlbnRyeTpmfSk6aSYmaSgiVGltZXIgJyIrYSsiJyBub3QgZXhpc3RzIil9cmV0dXJuIFQoYSx7c3RvcDpmdW5jdGlvbihiLGQpe2lmKGI9PV98fGI+PTB8fChkPWIsYj1ZKSxhLm1ldGE9YS5tZXRhfHxkLGEuZW5kPWI9PV8/aCgpOmIscFtjXT1fLHUpZm9yKGU9ay5sZW5ndGg7ZS0tOylrW2VdPT09YSYmay5zcGxpY2UoZSwxKTtyZXR1cm4gbCgiZW5kIixhLHIpLGF9fSksbSYmKG0uZW5kIT09XyYmbj09Xz9pJiZpKCJUaW1lciAnIitjKyInIHN0b3BwZWQiKTooYS51bml0PW0udW5pdCxtLmVudHJpZXMucHVzaChhKSkpLHUmJihhLmVudHJpZXM9W10sVChhLHthZGQ6ZnVuY3Rpb24oYyxlLGIsZixnKXtyZXR1cm4gZChjLGEscCxmLDAsZSxiKS5zdG9wKGIsZyl9LHRpbWU6ZnVuY3Rpb24oZSxiLGMpe3JldHVybiBiPj0wfHwoYz1iLGI9WSksZChlLGEscCxjLFksYil9LGdyb3VwOmZ1bmN0aW9uKGYsYixjLGUpe3JldHVybiB6KGIsImJvb2xlYW4iKSYmKGU9YyxjPWIsYj1fKSx6KGIsUykmJihlPWIsYj1fLGM9MCkseihjLFMpJiYoZT1jKSxkKGYsYSxwLGUsMSxiLF8sYyl9LHRpbWVFbmQ6cyxncm91cEVuZDpzfSksIW8mJmc+MSYmay51bnNoaWZ0KGEpKSxsKCJzdGFydCIsYSxyKSxhfTtyZXR1cm4oYj1kKDAsXyxPYmplY3QuY3JlYXRlKG51bGwpLCJtcyIsMSwwLDAsMSkpLnY9IjIuMC4wLXJjLjI4IixiLmFkZG9ucz1jLGJ9dmFyIGU9ZnVuY3Rpb24oYixjKXt2YXIgYTt0cnl7KGE9bmV3IFBlcmZvcm1hbmNlT2JzZXJ2ZXIoZnVuY3Rpb24oYSl7YS5nZXRFbnRyaWVzKCkubWFwKGMpfSkpLm9ic2VydmUoe3R5cGU6YixidWZmZXJlZDohMH0pfWNhdGNoKGQpe31yZXR1cm4gYX0sWj1mdW5jdGlvbihhKXthJiZhLmRpc2Nvbm5lY3QoKX0sYWE9ZnVuY3Rpb24oYSxiKXt0cnl7YSYmYS50YWtlUmVjb3JkcygpLm1hcChiKX1jYXRjaChjKXt9fSxFPSJoaWRkZW4iLGFiPSExLGFjPSExLEY9LTEsZj1mdW5jdGlvbihiLGEpe2FifHwoYWI9ITAsWCgicGFnZWhpZGUiLGZ1bmN0aW9uKGEpe2FjPSFhLnBlcnNpc3RlZH0pLFgoImJlZm9yZXVubG9hZCIsaykpLFgoInZpc2liaWxpdHljaGFuZ2UiLGZ1bmN0aW9uKGEpe28udmlzaWJpbGl0eVN0YXRlPT09RSYmYihhLnRpbWVTdGFtcCxhYyl9LHtjYXB0dXJlOiEwLG9uY2U6ISFhfSl9O28mJihGPW8udmlzaWJpbGl0eVN0YXRlPT09RT8wOjEvMCxmKGZ1bmN0aW9uKGEpe0Y9YX0sITApKTt2YXIgYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gRn07ZnVuY3Rpb24gYWUoYyl7dmFyIGEsZSxoPXRoaXMuYmFkZ2UsYj1jLnVuaXQsZD0oYy5lbmQtYy5zdGFydCkvKCJLQiI9PT1iPzEwMjQ6MSksZj1oK2MubmFtZSsoIm5vbmUiIT09YiYmYj8iOiAlYyIrKGImJiJyYXciIT09Yj9kLnRvRml4ZWQoMykrYjpkKToiJWMiKSxnPSJmb250LXdlaWdodDpib2xkOyIrKGE9ZCwiY29sb3I6IyIrKChhPSJLQiI9PT0oZT1iKT9hLzg6ImZwcyI9PT1lPzcwLWE6YSk8NT8iY2NjIjphPDEwPyI2NjYiOmE8MjU/IjMzMyI6YTw1MD8iZjkwIjphPDEwMD8iZjYwIjoiZjAwIikpOyJlbnRyaWVzImluIGM/KChWLmdyb3VwQ29sbGFwc2VkfHxWLmdyb3VwKShmLGcpLGMuZW50cmllcy5mb3JFYWNoKGFlLHRoaXMpLFYuZ3JvdXBFbmQoKSk6Vi5sb2coZixnKX12YXIgRyxsLEg9RCh7YWRkb25zOi9way1wcmludC8udGVzdChBKT9bKEc9e2JhZGdlOiJcdXsxRjUwNX0ifSx7c3RhcnQ6ayxlbmQ6ZnVuY3Rpb24oYSl7YS5wYXJlbnR8fGFlLmNhbGwoRyxhKX19KV06W119KSxtPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXtXKGZ1bmN0aW9uKCl7dmFyIGk9SC5ncm91cChhLGIsZSk7Zm9yKHZhciBnIGluIGQpaWYoZC5oYXNPd25Qcm9wZXJ0eShnKSl7dmFyIGg9ZFtnXTtpLmFkZChnLGhbMF0saFsxXSxoWzJdKX1pLnN0b3AoYyxmKX0pfSxnPXAuZGV2aWNlTWVtb3J5LGg9ai5oYXJkd2FyZUNvbmN1cnJlbmN5LHE9aDw9NHx8Zzw9NCxJPWg+NHx8Zz40PyJoaWdoIjpxPyJsb3ciOiJ1bmsiLCQ9cXx8ZCYmKFsic2xvdy0yZyIsIjJnIiwiM2ciXS5pbmRleE9mKGQuZWZmZWN0aXZlVHlwZSk+IC0xfHxkLnNhdmVEYXRhKT8ibG93IjoiaGlnaCIsbj0oKGw9e30pWyJ0eXBlXyIrSV09WzAsMV0sbFsiZXhwXyIrJF09WzAsMV0sbCk7ZyYmKG4ubWVtb3J5PVswLGddKSxoJiYobi5oYXJkd2FyZV9jb25jdXJyZW5jeT1bMCxoXSksbSgicGstZGV2aWNlIiwwLDEsbiwicmF3Iik7dmFyIGFmPTAsSj1mdW5jdGlvbigpe3RyeXt2YXIgYT1qLmdldEVudHJpZXNCeVR5cGUoIm5hdmlnYXRpb24iKVswXSxrPWEuZmV0Y2hTdGFydCxsPWEuZG9tYWluTG9va3VwU3RhcnQsZT1hLmRvbWFpbkxvb2t1cEVuZCxmPWEucmVxdWVzdFN0YXJ0LGc9YS5yZXNwb25zZVN0YXJ0LGI9YS5yZXNwb25zZUVuZCxjPWEuZG9tQ29tcGxldGUsaD1hLmRvbUludGVyYWN0aXZlLGk9YS5kb21Db250ZW50TG9hZGVkRXZlbnRFbmQsZD1hLmxvYWRFdmVudEVuZDtiJiYwPT09YWYmJihhZj0xLG0oInBrLW5hdi1uZXQiLGssYix7ZG5zOltsLGVdLHRjcDpbZSxmXSxyZXF1ZXN0OltmLGddLHJlc3BvbnNlOltnLGJdfSkpLGMmJjE9PT1hZiYmKGFmPTIsbSgicGstbmF2LWRvbS1yZWFkeSIsYixjLHtpbnRlcmFjdGl2ZTpbYixoXSwiY29udGVudC1sb2FkZWQiOltoLGldLGNvbXBsZXRlOltpLGNdfSkpLGQmJjI9PT1hZiYmKGFmPTMsbSgicGstbmF2LWRvbS1sb2FkIixiLGQse3JlYWR5OltiLGNdLGxvYWQ6W2MsZF19KSksMyE9PWFmJiZDKEosMjUwKX1jYXRjaChuKXt9fTtKKCk7dmFyIGFnLGFoPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYTw9Yj8iZ29vZCI6YTw9Yz8ibmVlZHMtaW1wcm92ZW1lbnQiOiJwb29yIn0sYWk9MCxhaj0wLEs9ZnVuY3Rpb24oYil7dmFyIGMsZCxlLGY9Yi5zdGFydFRpbWUsYT1iLnByb2Nlc3NpbmdTdGFydC1mO2Y8YWQoKSYmKGEmJm0oInBrLWZpZCIsMCxhLCgoYz17dmFsdWU6WzAsYV19KVsic2NvcmVfIithaChhLDEwMCwzMDApXT1bMCxhXSxjKSksYWkmJm0oInBrLXRidCIsMCxhaSwoKGQ9e3ZhbHVlOlswLGFpXX0pWyJzY29yZV8iK2FoKGFpLDMwMCw2MDApXT1bMCxhaV0sZCkpLGFqJiZtKCJway10dGkiLDAsYWosKChlPXt2YWx1ZTpbMCxhal19KVsic2NvcmVfIithaChhaiwzODAwLDczMDApXT1bMCxhaV0sZSkpLFooYWcpLFooYWspKX0sYWs9ZSgiZmlyc3QtaW5wdXQiLEspO2YoZnVuY3Rpb24oKXthYShhayxLKX0sITApO3ZhciBhbD17fSxhbT1lKCJwYWludCIsZnVuY3Rpb24oYil7dmFyIGQsYz1iLm5hbWUsYT1iLnN0YXJ0VGltZTthPGFkKCkmJihhbFtjXT1bMCxhXSwiZmlyc3QtY29udGVudGZ1bC1wYWludCI9PT1jJiYoYWxbInNjb3JlXyIrYWgoYSwxZTMsMjUwMCldPVswLGFdLG0oInBrLXBhaW50IiwwLGEsYWwpLGQ9YSxhZz1lKCJsb25ndGFzayIsZnVuY3Rpb24oYSl7dmFyIGM9YS5zdGFydFRpbWUsYj1hLmR1cmF0aW9uO2M+ZCYmInNlbGYiPT09YS5uYW1lJiZiPjAmJihhaSs9Yi01MCxhaj1jK2IpfSksWihhbSkpKX0pLGFuPTAsYW89ITEsTD1mdW5jdGlvbihiKXt2YXIgYT1iLnN0YXJ0VGltZTthPGFkKCk/YW49YTphcSgpfSxhcD1lKCJsYXJnZXN0LWNvbnRlbnRmdWwtcGFpbnQiLEwpLGFxPWZ1bmN0aW9uKCl7dmFyIGE7IWFvJiZhbiYmbSgicGstbGNwIiwwLGFuLCgoYT17dmFsdWU6WzAsYW5dfSlbInNjb3JlXyIrYWgoYW4sMjUwMCw0ZTMpXT1bMCxhbl0sYSkpLGFvPSEwLFooYXApfSxyPWZ1bmN0aW9uKCl7YWEoYXAsTCksYXEoKX07ZihyLCEwKSxmdW5jdGlvbihhKXt0cnl7VXx8KFU9bmV3IFByb21pc2UoZnVuY3Rpb24oYSl7WyJrZXlkb3duIiwibW91c2Vkb3duIiwic2Nyb2xsIiwibW91c2V3aGVlbCIsInRvdWNoc3RhcnQiLCJwb2ludGVyZG93biJdLm1hcChmdW5jdGlvbihiKXtYKGIsYSx7b25jZTohMCxwYXNzaXZlOiEwLGNhcHR1cmU6ITB9KX0pfSkpLFUudGhlbihhKX1jYXRjaChiKXt9fShyKTt2YXIgYXI9MCxNPWZ1bmN0aW9uKGEpe2EuaGFkUmVjZW50SW5wdXR8fChhcis9YS52YWx1ZSl9LGFzPWUoImxheW91dC1zaGlmdCIsTSk7ZihmdW5jdGlvbihjLGIpe3ZhciBhO2FhKGFzLE0pLGImJmFyJiZtKCJway1jbHMiLDAsYXIsKChhPXt2YWx1ZTpbMCxhcl19KVsic2NvcmVfIithaChhciwuMSwuMjUpXT1bMCxhcl0sYSkpfSk7dmFyIHM9ZCx0PWZ1bmN0aW9uKCl7dmFyIGE7bSgicGstY29ubiIsMCwxLCgoYT17ZG93bmxpbms6WzAscy5kb3dubGlua10sZG93bmxpbmtNYXg6WzAscy5kb3dubGlua01heF0scnR0OlswLHMucnR0XX0pWyJzYXZlX2RhdGFfIitzLnNhdmVEYXRhXT1bMCwxXSxhWyJlZmZlY3RpdmVfdHlwZV8iKyhzLmVmZmVjdGl2ZVR5cGV8fCJ1bmsiKV09WzAsMV0sYSksInJhdyIpfTt0cnl7cz8odCgpLHMuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIix0KSk6bSgicGstY29ubiIsMCwxLHtlZmZlY3RpdmVfdHlwZV91bms6WzAsMV19LCJyYXciKX1jYXRjaChhdCl7fXZhciBhdT1mdW5jdGlvbigpe3JldHVybihhdT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihkKXtmb3IodmFyIGEsYj0xLGU9YXJndW1lbnRzLmxlbmd0aDtiPGU7YisrKWZvcih2YXIgYyBpbiBhPWFyZ3VtZW50c1tiXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmKGRbY109YVtjXSk7cmV0dXJuIGR9KS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Z1bmN0aW9uIHUoYSl7cmV0dXJuIGEmJmEuX19lc01vZHVsZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsImRlZmF1bHQiKT9hLmRlZmF1bHQ6YX1mdW5jdGlvbiB2KGIsYSl7cmV0dXJuIGIoYT17ZXhwb3J0czp7fX0sYS5leHBvcnRzKSxhLmV4cG9ydHN9dmFyIHc9dihmdW5jdGlvbihjLGIpe3ZhciBhO09iamVjdC5kZWZpbmVQcm9wZXJ0eShiLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxiLlRhZz12b2lkIDAsKGE9Yi5UYWd8fChiLlRhZz17fSkpLkNvcmU9ImNvcmUiLGEuR2xvYmFsPSJnbCIsYS5TZWxmPSJzZWxmIixhLkFzeW5jPSJhc3luYyIsYS5JZ25vcmU9ImlnbiIsYS5Lbm93bj0ia25vd24iLGEuQVBJPSJhcGkiLGEuU2hhcmVkPSJzaHIiLGEuRXh0PSJleHQiLGEuVGhpcmRQYXJ0eT0iM3JkIixhLlJCPSJyYiIsYS5Vbmtub3duPSJ1bmsifSk7dSh3KSx3LlRhZzt2YXIgYz12KGZ1bmN0aW9uKGIsYSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGEuY29yZUxvZ2dlckhNUj1hLmNvcmVMb2dnZXJEaXNwYXRjaEtub3duRXJyb3I9YS5jb3JlTG9nZ2VyRGlzcGF0Y2hBUElFcnJvcj1hLmNvcmVMb2dnZXJEaXNwYXRjaElnbm9yZWRFcnJvcj1hLmNvcmVMb2dnZXJEaXNwYXRjaFNlbGZFcnJvcj1hLmNvcmVMb2dnZXJEaXNwYXRjaFJlYWN0RXJyb3I9YS5jb3JlTG9nZ2VyRGlzcGF0Y2hFcnJvcj1hLmdldENvcmVMb2dnZXI9YS5UYWc9dm9pZCAwLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJUYWciLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB3LlRhZ319KSxhLmdldENvcmVMb2dnZXI9ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGNvcmVMb2dnZXI/Y29yZUxvZ2dlcjp2b2lkIDB9LGEuY29yZUxvZ2dlckRpc3BhdGNoRXJyb3I9ZnVuY3Rpb24oYyxkLGUpe3ZhciBiO251bGw9PT0oYj0oMCxhLmdldENvcmVMb2dnZXIpKCkpfHwgdm9pZCAwPT09Ynx8Yi5kaXNwYXRjaEVycm9yKGMsZCxlKX0sYS5jb3JlTG9nZ2VyRGlzcGF0Y2hSZWFjdEVycm9yPWZ1bmN0aW9uKGMsZCxlKXt2YXIgYjtudWxsPT09KGI9KDAsYS5nZXRDb3JlTG9nZ2VyKSgpKXx8IHZvaWQgMD09PWJ8fGIuZGlzcGF0Y2hSZWFjdEVycm9yKGMsZCxlKX0sYS5jb3JlTG9nZ2VyRGlzcGF0Y2hTZWxmRXJyb3I9ZnVuY3Rpb24oYixjLGQsZSl7KDAsYS5jb3JlTG9nZ2VyRGlzcGF0Y2hFcnJvcikoYyxkLHtjYXRlZ29yeTpiLHRhZzp3LlRhZy5TZWxmLGxvZzplfSl9LGEuY29yZUxvZ2dlckRpc3BhdGNoSWdub3JlZEVycm9yPWZ1bmN0aW9uKGIsYyxkLGUpeygwLGEuY29yZUxvZ2dlckRpc3BhdGNoRXJyb3IpKGMsZCx7Y2F0ZWdvcnk6Yix0YWc6dy5UYWcuSWdub3JlLGxvZzplfSl9LGEuY29yZUxvZ2dlckRpc3BhdGNoQVBJRXJyb3I9ZnVuY3Rpb24oYixjLGQsZSl7KDAsYS5jb3JlTG9nZ2VyRGlzcGF0Y2hFcnJvcikoYyxkLHtjYXRlZ29yeTpiLHRhZzp3LlRhZy5BUEksbG9nOmV9KX0sYS5jb3JlTG9nZ2VyRGlzcGF0Y2hLbm93bkVycm9yPWZ1bmN0aW9uKGIsYyxkLGUpeygwLGEuY29yZUxvZ2dlckRpc3BhdGNoRXJyb3IpKGMsZCx7Y2F0ZWdvcnk6Yix0YWc6dy5UYWcuS25vd24sbG9nOmV9KX0sYS5jb3JlTG9nZ2VySE1SPWZ1bmN0aW9uKGcsZil7dmFyIGU9KDAsYS5nZXRDb3JlTG9nZ2VyKSgpO2lmKGUpe3ZhciBiPWUuZXJyb3JzLnJ1bGVzLGM9ZS5lcnJvcnMub3B0cy5lcnJvcnMsZD1nLnByaW9yaXR5fHxbXTtiLnNldCgiY2xlYXIiKSxjJiZjLnJ1bGVzJiYoYi5zZXQoYy5ydWxlcyksZC5wdXNoLmFwcGx5KGQsW10uY29uY2F0KGMucHJpb3JpdHl8fE9iamVjdC5rZXlzKGMucnVsZXMpKSkpLGYmJihiLnNldChmLnJ1bGVzKSxkLnB1c2guYXBwbHkoZCxmLnByaW9yaXR5fHxbXSkpLGIuc2V0KGcucnVsZXMpLGIucHJpb3JpdHkoZCk7dHJ5e2UucGtnLnY9IjEyLjIuMSIsbG9jYWxTdG9yYWdlLnNldEl0ZW0ocHJvY2Vzcy5lbnYuTE9HR0VSX0xTX1BSRVNFVF9WRVJfS0VZLCIxMi4yLjEiKX1jYXRjaChoKXt9fX19KTt1KGMpLGMuY29yZUxvZ2dlckhNUixjLmNvcmVMb2dnZXJEaXNwYXRjaEtub3duRXJyb3IsYy5jb3JlTG9nZ2VyRGlzcGF0Y2hBUElFcnJvcixjLmNvcmVMb2dnZXJEaXNwYXRjaElnbm9yZWRFcnJvcixjLmNvcmVMb2dnZXJEaXNwYXRjaFNlbGZFcnJvcixjLmNvcmVMb2dnZXJEaXNwYXRjaFJlYWN0RXJyb3I7dmFyIGF2PWMuY29yZUxvZ2dlckRpc3BhdGNoRXJyb3I7Yy5nZXRDb3JlTG9nZ2VyO3ZhciBOPWMuVGFnLE89e25hbWU6IkBtYWlsLWNvcmUvZGFzaGJvYXJkIix2OiIxMi4yLjEifSxhdz0vXihcZCspXC4oXGQrKVwuKFxkKykvLHg9ZnVuY3Rpb24oYSl7cmV0dXJuInJlcXVlc3QiaW4gYSYmYS5kYXRhJiYic3RhdHVzImluIGEuZGF0YSYmImJvZHkiaW4gYS5kYXRhP2EuZGF0YS5zdGF0dXM6bnVsbH0sYXg9e3BhcnNlU3RhdHVzOnh9LGF5PXt0YWc6Ti5BUEksY2F0ZWdvcnk6IjVYWCIsc2lsZW50OiEwLGxvZzohMH0sYXo9L14oaHR0cHM/Oik/XC9cLy4qP1wvK3xcLypcPysuK3xeXC98YXBpXC8rdjFcLysvZ2ksYUE9L1teJS5hLXpcZC1dKy9nLGFCPS9eYXBpX3YoXGQpL2csYUM9L1wvKmNnaS1iaW4vZyxhRD0vZ29sYW5nL2csYUU9LyhefFwvKShcZCt8KD86XGR8W2Etel0rXGQpW1xkYS16XXsyLH0pKD89XC98JCkvZyxhRj0vKF58XC8pKFswLTktYS1mXXsyLH0tWzAtOS1hLWYtXSspKD89XC98JCkvZyxhRz0vKF91P2lkKXsyLH18JVslYS16XGQuX10rL2csYUg9L2dyYXBocWwvZztmdW5jdGlvbiBhSShhKXtyZXR1cm4gYSYmKCFhLnJlc3BvbnNlVHlwZXx8InRleHQiPT09YS5yZXNwb25zZVR5cGUpJiZhLnJlc3BvbnNlVGV4dHx8IiJ9dmFyIGFKPVtbL1wvKHBofGFnKVwvLywicG9ydGFsIl0sWy9cL2hiXC8vLCJob3Rib3giXSxbL1wvcGtnc1wvLywicGtncyJdLFsvXC5pbWdzbWFpbFwucnVcLy8sImltZ3MiXSxbL1wuZmlsaW5cLm1haWxcLnJ1XC8vLCJmaWxpbiJdLFsvXGJtYWlsXFwucnUvLCJtYWlsIl0sWy9cL1wvdG9wLS8sInRvcCJdLFsvYW5hbHl0aWNzLywiYW5hbHl0Il0sW25ldyBSZWdFeHAoIlxcL1xcLyIrbG9jYXRpb24uaG9zdCsiXFwvIiksImhvc3QiXV07ZnVuY3Rpb24gYUsoZSl7Zm9yKHZhciBiPSIiLGE9MCxjPWFKO2E8Yy5sZW5ndGg7YSsrKXt2YXIgZD1jW2FdO2lmKGRbMF0udGVzdChlKSl7Yj1kWzFdO2JyZWFrfX1yZXR1cm4gYnx8InVuayJ9dmFyIGFMLGFNPSJAbWFpbC1jb3JlL2Rhc2hib2FyZDp0aW1lc3BlbnRfc2VjdGlvbnMiLGFOPXttYXhTZXNzaW9uUGF1c2U6NSxiZWZvcmVTZW5kOmssbG9naW46IiIsc2VjdGlvbjoiX19iYXNlX18ifSxhTz0wO2Z1bmN0aW9uIFAoYil7aWYoY2xlYXJJbnRlcnZhbChhTCksYil7dmFyIGMsYT1hVygpLGg9Yi5zZWN0aW9uLGk9Yi5sb2dpbjtpZihhKXtmb3IodmFyIGQ9MCxnPWE7ZDxnLmxlbmd0aDtkKyspe3ZhciBlPWdbZF07aWYoZS5zZWN0aW9uPT09aCYmZS51c2VyX2lkPT09aSl7Yz1lO2JyZWFrfX1pZihjKXt2YXIgZj1hLmluZGV4T2YoYyk7YVtmXS5sYXN0X2R1cmF0aW9uX3VwZGF0ZV90aW1lc3RhbXA9YSQoKSxhW2ZdLmR1cmF0aW9uX3NlYz1hW2ZdLmR1cmF0aW9uX3NlYysxLGFUKCksYU49YXUoYXUoe30sYU4pLGIpO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShhTSxKU09OLnN0cmluZ2lmeShhKSl9Y2F0Y2goail7fXJldHVybn19YVAoYiksZnVuY3Rpb24oYil7dmFyIGM9YVkoYiksYT1hVygpO251bGw9PWF8fGEucHVzaChjKTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oYU0sSlNPTi5zdHJpbmdpZnkoYSkpfWNhdGNoKGQpe319KGEkKCkpfWVsc2UgYVAoKX1mdW5jdGlvbiBhUChiKXthTj1hdShhdSh7fSxhTiksYik7dmFyIGMsaCxkLGYsZyxhPShjPWFRLGQ9ITEsZnVuY3Rpb24oKXtmb3IodmFyIGI9W10sYT0wO2E8YXJndW1lbnRzLmxlbmd0aDthKyspYlthXT1hcmd1bWVudHNbYV07cmV0dXJuIGR8fChkPSEwLGg9YyhiKSksaH0pO2Y9YSxnPWUoInBhaW50IixmdW5jdGlvbihhKXt2YXIgYj1hLm5hbWU7YS5zdGFydFRpbWU8YWQoKSYmImZpcnN0LWNvbnRlbnRmdWwtcGFpbnQiPT09YiYmKGYoKSxaKGcpKX0pLHdpbmRvdy5zZXRUaW1lb3V0KGEsNWUzKX1mdW5jdGlvbiBhUSgpeyJoaWRkZW4iIT09by52aXNpYmlsaXR5U3RhdGUmJmFSKCksWCgidmlzaWJpbGl0eWNoYW5nZSIsZnVuY3Rpb24oKXsiaGlkZGVuIj09PW8udmlzaWJpbGl0eVN0YXRlP2NsZWFySW50ZXJ2YWwoYUwpOmFSKCl9KX1mdW5jdGlvbiBhUigpe3ZhciBhPWEkKCk7YU98fChhTz1hKSxhVygpP2FTKGEpOmFTKGEsITApLGFUKCl9ZnVuY3Rpb24gYVMoYixjKXt2b2lkIDA9PT1jJiYoYz0hMSk7dmFyIGc9YVcoKTtpZihnKXt2YXIgZCxsLGgsaSxlLGosYT0oZD1nLGw9YixpPShoPWQuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhVShhLGwpfSkpLmZpbHRlcihhWiksZT1kLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4hYVUoYSxsKX0pLGo9ZS5maWx0ZXIoYVopLHt0b1NlbmQ6aCx0b1Jlc2V0OmksdG9MZWF2ZTplLHRvVXBkYXRlOmp9KSxmPWEudG9MZWF2ZSxtPWEudG9SZXNldCxuPWEudG9TZW5kLGs9YS50b1VwZGF0ZTtuLmZvckVhY2goYVgpLG0ubGVuZ3RoJiZmLnB1c2goYVkoYikpLGsubGVuZ3RoJiZrLmZvckVhY2goZnVuY3Rpb24oYSl7YS5sYXN0X2R1cmF0aW9uX3VwZGF0ZV90aW1lc3RhbXA9YixhLmR1cmF0aW9uX3NlYz1hLmR1cmF0aW9uX3NlYysxfSk7dHJ5e2YubGVuZ3RoP2xvY2FsU3RvcmFnZS5zZXRJdGVtKGFNLEpTT04uc3RyaW5naWZ5KGYpKTpsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShhTSl9Y2F0Y2gobyl7fX1lbHNlIGlmKGMpdHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKGFNLEpTT04uc3RyaW5naWZ5KFthWShiKV0pKX1jYXRjaChwKXt9fWZ1bmN0aW9uIGFUKCl7YUw9d2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uKCl7YVMoYSQoKSl9LDFlMyl9ZnVuY3Rpb24gYVUoYSxiKXtyZXR1cm4gYi1hLmxhc3RfZHVyYXRpb25fdXBkYXRlX3RpbWVzdGFtcD5hLm1heF9zZXNzaW9uX3BhdXNlfWZ1bmN0aW9uIGFWKGEpe3JldHVybiBhJiZbInVzZXJfaWQiLCJzZWN0aW9uIiwibGFzdF9kdXJhdGlvbl91cGRhdGVfdGltZXN0YW1wIiwiZHVyYXRpb25fc2VjIiwib3Blbl90aW1lc3RhbXAiLCJtYXhfc2Vzc2lvbl9wYXVzZSJdLmV2ZXJ5KGZ1bmN0aW9uKGIpe3JldHVybiBhLmhhc093blByb3BlcnR5KGIpfSl9ZnVuY3Rpb24gYVcoKXt2YXIgYjt0cnl7dmFyIGE9SlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShhTSl8fCIiKTsobnVsbD09YT92b2lkIDA6YS5sZW5ndGgpJiZBcnJheS5pc0FycmF5KGEpJiZhLmV2ZXJ5KGFWKSYmKGI9YSl9Y2F0Y2goYyl7fXJldHVybiBifWZ1bmN0aW9uIGFYKGIpe3ZhciBhPWIuZHVyYXRpb25fc2VjO2lmKGEpe3ZhciBjPWF1KHtkb21haW46bG9jYXRpb24uaG9zdCxwYXVzZV9hbGxvd2VkX3NlYzphTi5tYXhTZXNzaW9uUGF1c2V9LGIpLGQ9e2R3aDpjfTthTi5iZWZvcmVTZW5kKGMpLG0oInBrLXRpbWVzcGVudCIsMCxhLHtkdXJhdGlvbjpbMCxhXX0sInJhdyIsZCl9fWZ1bmN0aW9uIGFZKGEpe3JldHVybntkdXJhdGlvbl9zZWM6MCxsYXN0X2R1cmF0aW9uX3VwZGF0ZV90aW1lc3RhbXA6YSxvcGVuX3RpbWVzdGFtcDphTyxzZWN0aW9uOmFOLnNlY3Rpb24sdXNlcl9pZDphTi5sb2dpbixtYXhfc2Vzc2lvbl9wYXVzZTphTi5tYXhTZXNzaW9uUGF1c2V9fWZ1bmN0aW9uIGFaKGEpe3ZhciBiPWEudXNlcl9pZCxjPWEuc2VjdGlvbjtyZXR1cm4gYj09PWFOLmxvZ2luJiZjPT09YU4uc2VjdGlvbn1mdW5jdGlvbiBhJCgpe3JldHVybiBNYXRoLmZsb29yKERhdGUubm93KCkvMWUzKX12YXIgYV89e2xhdGVuY3k6WzMwLDYwLDEyMF0scm91dGU6WzIwMCw0MDAsODAwXSwicm91dGU6Y2FjaGVkIjpbMTAwLDMwMCw2MDBdLHBhZ2U6WzEwMCwyMDAsMzAwXSwicGFnZTpmcmFnIjpbMzAsNjAsMTIwXSwicGFnZTpqc29uIjpbMjAsMzAsNjBdLCJpbmxpbmU6Y29kZSI6WzEwMCwyMDAsMzAwXSxmZXRjaDpbNTAwLDFlMywyZTNdLCJmZXRjaDpmYXN0IjpbMTAwLDIwMCwzMDBdLCJhcHA6bG9hZCI6WzMwMCw2MDAsOTAwXSwiYXBwOmluaXQiOlsxNTAsMzAwLDYwMF0sImFwcDpyZW5kZXIiOlszMDAsNjAwLDgwMF0sImFwcDpyZWFkeSI6WzE1MDAsMjUwMCwzNTAwXSwianM6YnVuZGxlIjpbMjAwLDQwMCw4MDBdLCJqczpidW5kbGU6bSI6WzFlMywzZTMsN2UzXSwianM6YnVuZGxlOmwiOlsyZTMsNWUzLDFlNF0sImNzczpidW5kbGUiOlsxNTAsMzAwLDQ1MF0sImNzczpidW5kbGU6bCI6WzMwMCw2MDAsODAwXSwic3J2OnJlc3AiOlsyMDAsNDAwLDgwMF0sImJpejphZHY6YXdhaXQiOlsyZTMsM2UzLDRlM119LGEwPU9iamVjdC5jcmVhdGUobnVsbCksYTE9ITEsYTI9bnVsbCxhMz17InBrLWFwcC1yZWFkeSI6MSwicGstcGFpbnQiOjEsInBrLWxjcCI6MSwicGstY2xzIjoxLCJway1maWQiOjEsInBrLXRidCI6MSwicGstdHRpIjoxfTtmdW5jdGlvbiBhNChiKXtmb3IodmFyIGEgaW4gYTApYTJbITA9PT1iPyJzZW5kSW1tZWRpYXRlbHkiOiJzZW5kIl0oYSxhMFthXSk7YTA9T2JqZWN0LmNyZWF0ZShudWxsKSxhMT0hMX1mdW5jdGlvbiBhNSgpe2lmKGEyKXJldHVybiBhMjt2YXIgYj0idW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz97fTp3aW5kb3csYz1iLnJlcXVpcmUsYT1iLnhyYXlDb3JlO3RyeXthPWEmJmEuc2VuZD9hOmMoIkBtYWlsL3hyYXkiKX1jYXRjaChkKXt0cnl7YT1jKCJtcmcteHJheSIpfWNhdGNoKGUpe319cmV0dXJuIGF9dmFyIGE2PS8tYV81XGRcZCQvO2Z1bmN0aW9uIFEoYyxiLGUsZil7dmFyIGQ9ZiYmZi5kd2gsYT1hMFtiXTthfHwoYT17dDpiLHY6YyxpOnt9fSxkfHxhM1tiXXx8YTYudGVzdChiKXx8KGEuc2tpcGR3aD0hMCksZCYmKGEuZHdoPWQpLGEwW2JdPWEpLGU/YS5pW2Uuc2xpY2UoMCwzMildPWM6YS52PWMsYTF8fChhMT0hMCxmdW5jdGlvbiBhKCl7YTJ8fChhMj1hNSgpKSxhMj9XKGZ1bmN0aW9uKCl7cmV0dXJuIGE0KCl9KTpDKGEsMTAwKX0oKSl9ZnVuY3Rpb24gUihhKXthMj1hfHxhMn12YXIgYTc9WyJnb29kIiwibW9kZXJhdGUiLCJuZWVkcy1pbXAiXSxhOD1EYXRlLm5vdygpLGE5PXt9LGJhPSExLGJiPTAsYmM9ITEsYmQ9bnVsbCxiZT0wLGJmPWZ1bmN0aW9uKCl7cmV0dXJuIG8udmlzaWJpbGl0eVN0YXRlfSxiZz1mdW5jdGlvbigpe3JldHVybiJ2aXNpYmxlIj09PWJmKCl9LGJoPWZ1bmN0aW9uKCl7dmFyIGE7YmcoKSYmYmIrKyxtKCJway12aXMtc3RhdGUiLDAsYmIsKChhPXt9KVtiZigpXT1bMCwxXSxhKSl9LGJpPWZ1bmN0aW9uKGEpe3JldHVybiBhPGFkKCk/IiI6ImlkbGVfIn07ZnVuY3Rpb24gYmooYyl7dmFyIGIsZD1jLnR5cGUsYT1CKCksZT1hPjllNT8ibWF4IjphPjZlNT8iMTVtIjphPjNlNT8iMTBtIjphPjZlND8iNW0iOmE+M2U0PyIxbSI6YT4xNWUzPyIzMHMiOmE+MWU0PyIxNXMiOmE+NWUzPyIxMHMiOiI1cyI7bSgicGstdW5sb2FkIiwwLGEsKChiPXt9KVtkXT1bMCxhXSxiWyJ0eXBlX3Njb3JlXyIrZV09WzAsYV0sYikpfWZ1bmN0aW9uIGJrKGEpe3JldHVybiBhPDJlMz8iZmFzdCI6YTw0ZTM/Im1vZGVyYXRlIjphPDE1ZTM/InNsb3ciOmE8M2U0PyJ2ZXJ5LXNsb3ciOiJmYWlsIn1yZXR1cm4gYS5hcGk9ZnVuY3Rpb24oYixlKXt2b2lkIDA9PT1lJiYoZT17fSk7dmFyIG89ZS5lcnJvcixmPWUuZHVyYXRpb258fDEsaT1lLnVybCxzPWUuY2F0ZWdvcnkscD1lLnJlc3BvbnNlTGVuZ3RoLGw9MCxkPWUuc3RhdHVzfHwidW5rIixoPWUuYXBpU3RhdHVzfHxkO2lmKCJvYmplY3QiPT10eXBlb2YgYil7dmFyIGc9InhociJpbiBiJiZiLnhocnx8InJlcXVlc3QiaW4gYiYmYi5yZXF1ZXN0fHwic3RhdHVzImluIGImJiJyZWFkeVN0YXRlImluIGImJmI7aWYoImR1cmF0aW9uImluIGImJihmPWIuZHVyYXRpb258fGYpLCJzdGF0dXMiaW4gYiYmKGg9ZD1iLnN0YXR1cyksIm9rImluIGImJihsPTQpLGcmJihkPWcuc3RhdHVzfHxkLGw9Zy5yZWFkeVN0YXRlfHxsLHA9ZnVuY3Rpb24oYSl7dmFyIGIsYztpZihhKXtjPWFJKGEpO3RyeXtiPWMubGVuZ3RofHwrYS5nZXRSZXNwb25zZUhlYWRlcigiY29udGVudC1sZW5ndGgiKXx8MH1jYXRjaChkKXt9fXJldHVybiBifShnKSxpPWl8fGcucmVzcG9uc2VVUkwpLCJ1cmwiaW4gYiYmKGk9aXx8Yi51cmwpLGg9YXgucGFyc2VTdGF0dXMoYil8fGgsZS5sb2c1WFgmJihkPj01MDB8fGg+PTUwMCkpe3ZhciB0PSJbSFRUUF0gIisoZz9nLnN0YXR1cysiICIrZy5zdGF0dXNUZXh0OiJObyBYSFIiKSxxPW5ldyBFcnJvcihkPj01MDA/dDoiW0FQSV0gIitoKyIgKCIrdCsiKSIpO3Euc291cmNlPWkscS5zdGFjaz0iIjt0cnl7YXYocSx7c2VuZGVyOiJhcGkiLHVybDppLHN0YXR1czpkLGFwaVN0YXR1czpoLGhlYWRlcnM6ZyYmWyJjb250ZW50LXR5cGUiLCJkYXRlIiwieC1ob3N0IiwieC1yZXF1ZXN0LWlkIiwieC1tcnUtanNvbi1zdGF0dXMiLCJ4LW1ydS1yZXF1ZXN0LWlkIl0ucmVkdWNlKGZ1bmN0aW9uKGEsYil7cmV0dXJuIGFbYl09Zy5nZXRSZXNwb25zZUhlYWRlcihiKSxhfSx7fSkscmVzcG9uc2U6YUkoZykuc2xpY2UoMCwxNDApfSxheSl9Y2F0Y2godyl7YXYodyxxLHtjYXRlZ29yeToiYXBpIix0YWc6Ti5Db3JlfSl9fX1lbHNlIGQ9YixoPWUuYXBpU3RhdHVzfHxkO3ZhciB1LHIsbSxhLGMsbix2PUguZ3JvdXAoInBrLWFwaSIsMCwhMCksaj12LmFkZCxrPSJ4LSIrKCExIT09cz8oKHI9KHU9aSk/dS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoYXosIiIpLnJlcGxhY2UoYUMsInBsIikucmVwbGFjZShhRiwiJDF1aWQiKS5yZXBsYWNlKGFFLCIkMWlkIikucmVwbGFjZShhQSwiXyIpLnJlcGxhY2UoYUIsInYkMSIpLnJlcGxhY2UoYUQsImdvIikucmVwbGFjZShhSCwiZ3FsIikucmVwbGFjZShhRywiX2lkIik6InVuayIpLmxlbmd0aD4yNCYmKHI9ci5yZXBsYWNlKC8oW15fXXszLH0pL2csZnVuY3Rpb24oYixhKXtyZXR1cm4gYS5yZXBsYWNlKC8tLy50ZXN0KGEpPy8tKFthLXpdKVthLXpdKi9nOi8oW14vLV0pW2FlaW91XSsvZywiJDEiKS5yZXBsYWNlKC8oW15hZWlvdV0pKFwxKykvLCIkMSIpfSkpLHIuc2xpY2UoMCwyNCkucmVwbGFjZSgvW18tXSsvZywiXyIpKTpzfHwidW5rIik7aihrKyItaGl0IiwwLGYpLDQhPT1sJiZqKGsrIi1yXyIrKDA9PT0obT1sKT8idW5zZXQiOjE9PT1tPyJvcGVuIjoyPT09bT8iaGVhZGVycyI6Mz09PW0/ImxvYWRpbmciOjQ9PT1tPyJkb25lIjoidW5rIiksMCxmKSxwJiZqKGsrIi1sXyIrKGM9Inplcm8iLG51bGw9PShhPXApP2M9InVuayI6YT4wJiZhPD0xMDI0P2M9MTphPjEwMjQmJmE8PTUxMjA/Yz01OmE+NTEyMCYmYTw9MTAyNDA/Yz0xMDphPjEwMjQwJiZhPD0yNTYwMD9jPTI1OmE+MjU2MDAmJmE8PTUxMjAwP2M9NTA6YT41MTIwMCYmYTw9MTAyNDAwP2M9MTAwOmE+MTAyNDAwJiZhPD0yMDQ4MDA/Yz0yMDA6YT4yMDQ4MDAmJmE8PTUxMmUzP2M9NTAwOmE+NTEyZTMmJihjPSJtYXgiKSwwPT09Yz8iemVybyI6YyksMCxwKSxqKGsrIi1oXyIrZCwwLGYpLGQ+PTIwMCYmZDwzMDAmJmooaysiLWFfIitoLDAsZiksZj4zZTMmJmooaysiLXNfIisoKG49Zik8PTVlMz8iNXMiOm48PTFlND8iMTBzIjpuPD0zZTQ/IjMwcyI6bjw9M2U1P01hdGguY2VpbChuLzZlNCkrIm0iOiJtYXgiKSwwLGYpLG8mJmooaysiLWVfIisobyBpbnN0YW5jZW9mIEVycm9yJiZvLm5hbWV8fG8pLDAsZiksdi5zdG9wKGYpfSxhLmFwcFJlYWR5PWZ1bmN0aW9uKGIpe2lmKCFiYyl7YmM9Ynx8ITA7dmFyIGE9QigpLGM9SC5ncm91cCgicGstYXBwLXJlYWR5IiwwLCEwKSxkPWJpKGEpO2MuYWRkKGI/ImZhaWwiOiJzdWNjZXNzIiwwLGEpLGI/KGF2KGIsbnVsbCx7Y2F0ZWdvcnk6ImFwcC1lcnIiLHRhZzpOLlNlbGZ9KSxjLmFkZCgiZXJyb3JfIisoYi5yZXF1aXJlVHlwZXx8Yi5uYW1lfHwidW5rIiksMCxhKSk6KGMuYWRkKGQrInRvdGFsIiwwLGEpLGMuYWRkKGQrInNjb3JlXyIrYmsoYSksMCxhKSksYy5zdG9wKGEpfX0sYS5heGlvc1JwY0xpa2U9eCxhLmF4aW9zU3dhTGlrZT1mdW5jdGlvbihhKXtyZXR1cm4icmVxdWVzdCJpbiBhJiZhLmRhdGEmJiJjb2RlX251bWJlciJpbiBhLmRhdGE/YS5kYXRhLmNvZGVfbnVtYmVyOm51bGx9LGEuY29tYmluZT1mdW5jdGlvbigpe2Zvcih2YXIgYj1bXSxhPTA7YTxhcmd1bWVudHMubGVuZ3RoO2ErKyliW2FdPWFyZ3VtZW50c1thXTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGQ9W10sYT0wO2E8YXJndW1lbnRzLmxlbmd0aDthKyspZFthXT1hcmd1bWVudHNbYV07Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBlPWJbY10uYXBwbHkobnVsbCxkKTtpZihlKXJldHVybiBlfXJldHVybiBudWxsfX0sYS5pbml0PWZ1bmN0aW9uKGMpe3RyeXsoZnVuY3Rpb24oYSl7dmFyIGI7aWYoIWJhKXtiYT0hMCxudWxsPT0oYmU9KGE5PWEpLmFwcFJlYWR5VGltZW91dCkmJihiZT02ZTQpLFIoYS54cmF5Q29yZSksSC5hZGRvbnMucHVzaC5hcHBseShILmFkZG9ucyxbKHZvaWQgMD09PWomJihqPVEpLHtzdGFydDprLGVuZDpmdW5jdGlvbihhKXt2YXIgYj1hLmVuZC1hLnN0YXJ0LGM9YS5tZXRhfHx7fSxmPWFfW2Muc2NvcmVdfHxjLnNjb3JlLGU9YS5uYW1lKyhjLmFwcGVuZGl4PyItIitjLmFwcGVuZGl4OiIiKSsoYy5wb3N0Zml4fHwiIik7aWYobnVsbD09PWEucGFyZW50JiYvXihwa3x1dCktLy50ZXN0KGUpJiZiJiYoaihiLGUsITEsYS5tZXRhKSwiZW50cmllcyJpbiBhJiZhLmVudHJpZXMuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLmVuZC1hLnN0YXJ0O2I+PTAmJmooYixlLGEubmFtZSl9KSxmJiYzPT09Zi5sZW5ndGgpKWZvcih2YXIgZD0wO2Q8NDtkKyspe2lmKGI8PWZbZF0pe2ooYixlLGE3W2RdKTticmVha30zPT09ZCYmaihiLGUsInBvb3IiKX19fSldLmNvbmNhdChhLnN5c3RlbUFkZG9uc3x8W10pKTt2YXIgaixkLGUsZixnLGM9QigpLGk9KGQ9Ty52LHZvaWQgMD09PWQmJihkPSIiKSx2b2lkIDA9PT1lJiYoZT0xZTQpLChmPWQubWF0Y2goYXcpKSYmICtmWzFdKk1hdGgucG93KGUsMikrICtmWzJdKmUrICtmWzNdfHwgLTEpLGg9YmkoYyk7bSgicGstaW5pdCIsMCxjLCgoYj17fSlbInZlcl8iK2ldPVswLDFdLGJbaCsidG90YWwiXT1bMCxjXSxiW2grInNjb3JlXyIrYmsoYyldPVswLGNdLGJbInRhYl8iK2JmKCldPVswLDFdLGIpKSwoZz1hLmFwaSkmJihheD1hdShhdSh7fSxheCksZykpLGZ1bmN0aW9uKCl7dmFyIGE9InVuZGVmaW5lZCIhPXR5cGVvZiB1c2VyS2VlcGVyJiZ1c2VyS2VlcGVyO2lmKGEpe3ZhciBiPUQoe3ByZWZpeDoidXQtIixhZGRvbnM6SC5hZGRvbnN9KTthLnRpbWU9Yi50aW1lLGEudGltZUVuZD1iLnRpbWVFbmQsYS5mb3JFYWNoKGZ1bmN0aW9uKGEpezA9PT1hWzFdP2IudGltZShhWzBdLGFbMl0sIm1zIik6Yi50aW1lRW5kKGFbMF0sYVsyXSxhWzNdKX0pLGEubGVuZ3RoPTB9fSgpLFAoYS50aW1lc3BlbnQpLGEuY2hlY2tDcm9zc09yaWdpbiYmc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxhPWMubGVuZ3RoO2lmKGE+MCl7Zm9yKHZhciBkPUguZ3JvdXAoIm1jLXNycCIsMCwhMCk7YS0tOyl7dmFyIGI9Y1thXTtiLnNyYyYmIWIuY3Jvc3NPcmlnaW4mJmQuYWRkKGFLKGIuc3JjKSwwLDEpfWQuc3RvcCgxKX19LDZlNCksWCgidW5sb2FkIixiaiksWCgiYmVmb3JldW5sb2FkIixiaiksYmgoKSxvLmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGJoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIixmdW5jdGlvbigpe3ZhciBiLGMsYT1CKCksZD1bW2E8KGE5LmZhc3RDbG9zZUxpbWl0fHwyZTMpPyJmYXN0Ijoibm9mYXN0IixhXSxbYmI/InZpZXciOiJub3ZpZXciLGJiXSxbYmcoKT8iZm9jdXMiOiJub2ZvY3VzIixhXSxbKGJjPyIiOiJubyIpKyJyZWFkeSIrKCEhYmMhPT1iYz8iLWVyciI6IiIpLGFdXTtkLnB1c2goW2QubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhWzBdfSkuam9pbigiXyIpLGFdKSxiZCYmKG51bGw9PT0oYj1hNSgpKXx8IHZvaWQgMD09PWJ8fGIuc2VuZEltbWVkaWF0ZWx5KCJway1jbG9zZS1kdXBsIix7djphLGk6YmR9KSksYmQ9e307Zm9yKHZhciBlPTAsZj1kO2U8Zi5sZW5ndGg7ZSsrKXt2YXIgZz1mW2VdLGg9Z1swXSxpPWdbMV07YmRbaF09aX1udWxsPT09KGM9YTUoKSl8fCB2b2lkIDA9PT1jfHxjLnNlbmRJbW1lZGlhdGVseSgicGstcGFnZS1jbG9zZSIse3Y6YSxpOmJkfSksYTQoITApfSksYmUmJkMoZnVuY3Rpb24oKXtpZighYmMmJkIoKTxhZCgpKXt2YXIgYT17bG9hZFRpbWU6RGF0ZS5ub3coKS1hOCx0aW1lb3V0OmJlfSxiPXAuY29ubmVjdGlvbjt0cnl7YS5lZmZlY3RpdmVUeXBlPWImJmIuZWZmZWN0aXZlVHlwZXx8Ijw8dW5rPj4iLGEuaGlkZGVuPW8uaGlkZGVuLGEudmlzU3RhdGU9by52aXNpYmlsaXR5U3RhdGUsYS5ub3c9QigpfWNhdGNoKGMpe31hdigiQXBwVGltZW91dDogIitiZSxhLHtjYXRlZ29yeToiYXBwLXRpbWVvdXQiLHRhZzpOLklnbm9yZX0pfX0sYmUpfX0pKGN8fHt9KX1jYXRjaChhKXt2YXIgYj1hNSgpO2ImJmIuc2VuZCgicGstaW5pdC1mYWlsIix7cmxvZzoicGstaW5pdC1mYWlsIixybG9nX21lc3NhZ2U6YXUoYXUoYXUoe30sYi5nZXRDb25maWcoKS5kZWZhdWx0UGFyYW1zKSxhKSx7bWVzc2FnZToiIithLHN0YWNrOmEmJmEuc3RhY2t9KX0pfX0sYS5ub3c9QixhLnBrZz1PLGEuc2V0VGltZXNwZW50c0NvbmZpZz1QLGEuc2V0WFJheT1SLGEuc3lzdGVtPUgsYS5zeXN0ZW1TZW5kPW0sYS54cmF5Q29yZT1RLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxhfSh7fSkKPC9zY3JpcHQ+CjxzY3JpcHQgaWQ9Il9fY29yZS1rZWVwZXItaW5pdF9fIj4KCXdpbmRvdy5jb3JlS2VlcGVyICYmIGNvcmVLZWVwZXIuaW5pdCgpOwo8L3NjcmlwdD4KCgogICAgICAgIDwhLS0gZW5kOiAvcmIvMTA4NDY4MiAtLT4KICAgICAgCgogICAgICAgICAgICAgICAgCiAgICAgICAgPCEtLSBzdGFydDogL3JiLzk0OTY4NT9fU0lURUlEPTI5Jl9TSVRFWk9ORT03JnZlcnNpb249ZGVza3RvcCAtLT4KICAgICAgICAKICAgICAgICA8IS0tIGVuZDogL3JiLzk0OTY4NSAtLT4KICAgICAgCgogICAgICAgICAgICAgICAgCiAgICAgICAgPCEtLSBzdGFydDogL3JiLzkxNjA5Nz91c2VyaWQ9JEVtYWlsJnZraWQ9JFNlc3Npb25fVktDVXNlcklEIC0tPgogICAgICAgIAoKCgogICAgICAgIDwhLS0gZW5kOiAvcmIvOTE2MDk3IC0tPgogICAgICAKCiAgICAgICAgICAgICAgICAKICAgIAogICAgCiAgICAKICAgIAoKICAgICAgICAgICAgICAgIAogICAgCiAgICAKICAgIAogICAgCgogICAgICAgICAgICAgICAgCiAgICAgICAgPCEtLSBzdGFydDogL3JiLzMyMDU1Nz92ZXJzaW9uPXdlYiZwcm9qZWN0PW5ld3MgLS0+CiAgICAgICAgCjxzY3JpcHQ+d2luZG93LnVzZU5ld1ZrTG9nbyA9IHRydWU7PC9zY3JpcHQ+CiAgICAgICAgPCEtLSBlbmQ6IC9yYi8zMjA1NTcgLS0+CiAgICAgIAoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImpzLWNvdW50ZXJzIiBzdHlsZT0iaGVpZ2h0OjAiPgogICAgICAgICAgICAgICAgICAKICAgIDwhLS0gLy9yYi8xOTc4IChjb3VudGVycyB0b3ApIC0tPgogICAgPGltZyBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL2QxNTE5ODMwOS5naWYiIHN0eWxlPSJ3aWR0aDowO2hlaWdodDowO3Bvc2l0aW9uOmFic29sdXRlO3Zpc2liaWxpdHk6aGlkZGVuOyIgYWx0PSIiPjwhLS0gbXJfY291bnRlciB0eXBlPSJ0bnMiIHNyYz0iLy93d3cudG5zLWNvdW50ZXIucnUvVjEzYSoqKiptYWlsX3J1L3J1L1VURi04L3Rtc2VjPW1haWxfbmV3cy8iIC0tPgo8IS0tIHRucy1jb3VudGVyLnJ1IC0tPiAKPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4gCgl2YXIgaW1nID0gbmV3IEltYWdlKCk7CglpbWcuc3JjID0gJy8vd3d3LnRucy1jb3VudGVyLnJ1L1YxM2EqKipSPicgKyBkb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKC9cKi9nLCclMmEnKSArICcqbWFpbF9ydS9ydS9VVEYtOC90bXNlYz1tYWlsX25ld3MvJyArIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDAwMDApOwo8L3NjcmlwdD4gCjxub3NjcmlwdD4gCgkmbHQ7aW1nIHNyYz0iLy93d3cudG5zLWNvdW50ZXIucnUvVjEzYSoqKiptYWlsX3J1L3J1L1VURi04L3Rtc2VjPW1haWxfbmV3cy8iIHdpZHRoPSIwIiBoZWlnaHQ9IjAiIGFsdD0iIiZndDsKPC9ub3NjcmlwdD4gCjwhLS0gL21yX2NvdW50ZXIgLS0+CjwhLS0g0KHRh9GR0YLRh9C40Log0L7QsdGJ0LjRhSDQsNGD0LTQuNGC0L7RgNC90YvRhSDQtNCw0L3QvdGL0YUgLS0+CjxzY3JpcHQ+CiAgICAoKGNvdW50ZXJIb3N0bmFtZSkgPT4gewogICAgICAgIHdpbmRvdy5NU0NvdW50ZXIgPSB7CiAgICAgICAgICAgIGNvdW50ZXJIb3N0bmFtZTogY291bnRlckhvc3RuYW1lCiAgICAgICAgfTsKICAgICAgICB3aW5kb3cubXNjb3VudGVyQ2FsbGJhY2tzID0gd2luZG93Lm1zY291bnRlckNhbGxiYWNrcyB8fCBbXTsKICAgICAgICB3aW5kb3cubXNjb3VudGVyQ2FsbGJhY2tzLnB1c2goKCkgPT4gewogICAgICAgICAgICBtc0NvdW50ZXJFeGFtcGxlQ29tID0gbmV3IE1TQ291bnRlci5jb3VudGVyKHsKICAgICAgICAgICAgICAgICAgICAnYWNjb3VudCc6J3ZrJywKICAgICAgICAgICAgICAgICAgICAndG1zZWMnOiAnbXgzX21haWxfbmV3cycsCiAgICAgICAgICAgICAgICAgICAgJ2F1dG9oaXQnIDogdHJ1ZQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgCiAgICAgICAgY29uc3QgbmV3U2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgbmV3U2NyaXB0LmFzeW5jID0gdHJ1ZTsKICAgICAgICBuZXdTY3JpcHQuc3JjID0gYCR7Y291bnRlckhvc3RuYW1lfW5jYy9jb3VudGVyLmpzYDsKICAKICAgICAgICBjb25zdCByZWZlcmVuY2VOb2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2NyaXB0Jyk7CiAgICAgICAgaWYgKHJlZmVyZW5jZU5vZGUpIHsKICAgICAgICAgICAgcmVmZXJlbmNlTm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuZXdTY3JpcHQsIHJlZmVyZW5jZU5vZGUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGRvY3VtZW50LmZpcnN0RWxlbWVudENoaWxkLmFwcGVuZENoaWxkKG5ld1NjcmlwdCk7CiAgICAgICAgfQogICAgfSkoJ2h0dHBzOi8vdG5zLWNvdW50ZXIucnUvJyk7Cjwvc2NyaXB0PgogICAgPCEtLSAvL3JiLzE5NzggLS0+CiAgICAKICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICA8c2NyaXB0PndpbmRvdy5fX3NlYXJjaFJlZ2lvbklkPTY2Ozwvc2NyaXB0PgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgCiAgICAKICAgIAogICAgCiAgICAKCiAgICAgICAgICAgICAgICAKICAgIAogICAgCiAgICAKICAgIAoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICA8c2NyaXB0PndpbmRvdy5fX21lZGlhc2NvcGVSZWdpb24gPSB0cnVlOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ianMtY291bnRlcnMiIHN0eWxlPSJoZWlnaHQ6MCI+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIDwhLS0gc3RhcnQ6IC9yYi8xMjk4ODg2IC0tPgogICAgICAgIDxpbWcgc3JjPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy9kMTQxMzE5NjM0LmdpZiIgc3R5bGU9IndpZHRoOjA7aGVpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW47IiBhbHQ9IiI+PCEtLSBUb3AuTWFpbC5SdSBjb3VudGVyIC0tPgo8IS0tIG1yX2NvdW50ZXIgdHlwZT0idG9wbWFpbCIgZG9tYWluPSJ0b3AtZnd6MS5tYWlsLnJ1IiBpZD0iMzM1MjA3NyIgLS0+PCEtLSAvbXJfY291bnRlciAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp2YXIgX3RtciA9IHdpbmRvdy5fdG1yIHx8ICh3aW5kb3cuX3RtciA9IFtdKTsKX3Rtci5wdXNoKHtpZDogIjMzNTIwNzciLCB0eXBlOiAicGFnZVZpZXciLCBzdGFydDogKG5ldyBEYXRlKCkpLmdldFRpbWUoKX0pOwooZnVuY3Rpb24gKGQsIHcsIGlkKSB7CiAgaWYgKGQuZ2V0RWxlbWVudEJ5SWQoaWQpKSByZXR1cm47CiAgdmFyIHRzID0gZC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsgdHMudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOyB0cy5hc3luYyA9IHRydWU7IHRzLmlkID0gaWQ7CiAgdHMuc3JjID0gImh0dHBzOi8vdG9wLWZ3ejEubWFpbC5ydS9qcy9jb2RlLmpzIjsKICB2YXIgZiA9IGZ1bmN0aW9uICgpIHt2YXIgcyA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdOyBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRzLCBzKTt9OwogIGlmICh3Lm9wZXJhID09ICJbb2JqZWN0IE9wZXJhXSIpIHsgZC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZiwgZmFsc2UpOyB9IGVsc2UgeyBmKCk7IH0KfSkoZG9jdW1lbnQsIHdpbmRvdywgInRtci1jb2RlIik7Cjwvc2NyaXB0Pgo8bm9zY3JpcHQ+Jmx0O2RpdiZndDsmbHQ7aW1nIHNyYz0iaHR0cHM6Ly90b3AtZnd6MS5tYWlsLnJ1L2NvdW50ZXI/aWQ9MzM1MjA3Nztqcz1uYSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTk5OTlweDsiIGFsdD0iVG9wLk1haWwuUnUiIC8mZ3Q7Jmx0Oy9kaXYmZ3Q7PC9ub3NjcmlwdD4KPCEtLSAvVG9wLk1haWwuUnUgY291bnRlciAtLT4KCiAgICAgICAgPCEtLSBlbmQ6IC9yYi8xMjk4ODg2IC0tPgogICAgICAKICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZS1yb290Ij48ZGl2IGRhdGEtcmItc2xvdD0iNTkxNSI+PC9kaXY+PGRpdiBkYXRhLXJiLXNsb3Q9Ijk0OTY4NSI+PC9kaXY+PGRpdiBjbGFzcz0iYjRkMTcyMTZmZiI+PGRpdiBkYXRhLWxvZ2dlci1wYXJlbnQ9InRvcCI+PGhlYWRlciBjbGFzcz0iYzkxODM4YTY2OSI+PGRpdiBjbGFzcz0iZmUzYTRkOTE4ZSBhZjgyNTA5OTVjIj48ZGl2IGNsYXNzPSJmNTFmZjU2NjdlIj48ZGl2PgoKPCEtLW5vaW5kZXgtLT4KPHN0eWxlPi54LXBoe3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTAwMzttYXJnaW46MDtwYWRkaW5nOjA7Zm9udDoxMnB4LzE2cHggSGVsdmV0aWNhTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWFsaWduOmxlZnQ7YmFja2dyb3VuZDojZmZmO2hlaWdodDoyOHB4Oyp6b29tOjF9LngtcGggLncteC1waHt3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtiYWNrZ3JvdW5kOiNmZmZ9LngtcGggLncteC1waCwueC1waCAudy14LXBoX19jb2x7cGFkZGluZzowO21hcmdpbjowO2JvcmRlcjowO2JvcmRlci1zcGFjaW5nOjA7Zm9udDoxMnB4LzE2cHggSGVsdmV0aWNhTmV1ZSxBcmlhbCxzYW5zLXNlcmlmfS54LXBoIC53LXgtcGhfX2NvbHtoZWlnaHQ6MjhweDt2ZXJ0aWNhbC1hbGlnbjp0b3A7d2hpdGUtc3BhY2U6bm93cmFwfS54LXBoIC53LXgtcGhfX2NvbF9sZWZ0e3dpZHRoOjElO3BhZGRpbmctcmlnaHQ6MjBweDt0ZXh0LWFsaWduOmxlZnR9LngtcGggLncteC1waF9fY29sX3JpZ2h0e3RleHQtYWxpZ246cmlnaHR9LngtcGhfX21lbnV7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxMDA0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmctcmlnaHQ6MnB4O2ZvbnQ6MTJweC8xNnB4IEhlbHZldGljYU5ldWUsQXJpYWwsc2Fucy1zZXJpZjt2ZXJ0aWNhbC1hbGlnbjp0b3B9LncteC1waF9fbWVudV9fcGxhY2Vob2xkZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwMCU7bGVmdDo1MCU7d2lkdGg6MDtoZWlnaHQ6MDtmb250OjAvMCBhfS54LXBoX19tZW51X19idXR0b24sLngtcGhfX21lbnVfX2J1dHRvbjpsaW5rLC54LXBoX19tZW51X19idXR0b246dmlzaXRlZCwueC1waF9fbWVudV9fYnV0dG9uOmhvdmVyLC54LXBoX19tZW51X19idXR0b246YWN0aXZlLC54LXBoX19tZW51X19idXR0b246Zm9jdXN7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxMDA1O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCU7cGFkZGluZzo2cHggMCA1cHg7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZmZmO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZmZmO2ZvbnQ6MTJweC8xNnB4IEhlbHZldGljYU5ldWUsQXJpYWwsc2Fucy1zZXJpZjt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmV9LngtcGgtZmYueC1waC13aW4gLngtcGhfX21lbnVfX2J1dHRvbiwueC1waC1mZi54LXBoLXdpbiAueC1waF9fbWVudV9fYnV0dG9uOmxpbmssLngtcGgtZmYueC1waC13aW4gLngtcGhfX21lbnVfX2J1dHRvbjp2aXNpdGVkLC54LXBoLWZmLngtcGgtd2luIC54LXBoX19tZW51X19idXR0b246aG92ZXIsLngtcGgtZmYueC1waC13aW4gLngtcGhfX21lbnVfX2J1dHRvbjphY3RpdmUsLngtcGgtZmYueC1waC13aW4gLngtcGhfX21lbnVfX2J1dHRvbjpmb2N1c3twYWRkaW5nLXRvcDo1cHg7cGFkZGluZy1ib3R0b206NnB4O2hlaWdodDoxN3B4fS54LXBoX19tZW51X19idXR0b25fX3RleHQsLngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fYnV0dG9uOmhvdmVyIC54LXBoX19tZW51X19idXR0b25fX3RleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJTtwYWRkaW5nOjAgMTRweCAwIDZweDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6IzAwNWJkMTtmb250LXN0eWxlOm5vcm1hbDt0ZXh0LWRlY29yYXRpb246bm9uZTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ246dG9wfS54LXBoX19tZW51X19idXR0b246aG92ZXIgLngtcGhfX21lbnVfX2J1dHRvbl9fdGV4dCwueC1waF9fbWVudV9fYnV0dG9uOmZvY3VzIC54LXBoX19tZW51X19idXR0b25fX3RleHQsLngtcGhfX21lbnVfX2J1dHRvbjphY3RpdmUgLngtcGhfX21lbnVfX2J1dHRvbl9fdGV4dCwueC1waF9fbWVudV9vcGVuIC54LXBoX19tZW51X19idXR0b246Zm9jdXMgLngtcGhfX21lbnVfX2J1dHRvbl9fdGV4dCwueC1waF9fbWVudV9vcGVuIC54LXBoX19tZW51X19idXR0b246YWN0aXZlIC54LXBoX19tZW51X19idXR0b25fX3RleHR7Y29sb3I6I2ZmOWUwMH0ueC1waF9fbWVudV9fYnV0dG9uX19pY29uLC54LXBoX19tZW51X29wZW4gLngtcGhfX21lbnVfX2J1dHRvbjpob3ZlciAueC1waF9fbWVudV9fYnV0dG9uX19pY29ue3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjVweDt0b3A6MTNweDt3aWR0aDowO2hlaWdodDowO2JvcmRlci13aWR0aDo0cHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojMDA1YmQxICNmZmYgI2ZmZjtmb250OjAvMCBhfS54LXBoX19tZW51X19idXR0b246aG92ZXIgLngtcGhfX21lbnVfX2J1dHRvbl9faWNvbiwueC1waF9fbWVudV9fYnV0dG9uOmZvY3VzIC54LXBoX19tZW51X19idXR0b25fX2ljb24sLngtcGhfX21lbnVfX2J1dHRvbjphY3RpdmUgLngtcGhfX21lbnVfX2J1dHRvbl9faWNvbiwueC1waF9fbWVudV9vcGVuIC54LXBoX19tZW51X19idXR0b246Zm9jdXMgLngtcGhfX21lbnVfX2J1dHRvbl9faWNvbiwueC1waF9fbWVudV9vcGVuIC54LXBoX19tZW51X19idXR0b246YWN0aXZlIC54LXBoX19tZW51X19idXR0b25fX2ljb257Ym9yZGVyLWNvbG9yOiNmZjllMDAgI2ZmZiAjZmZmfS53LXgtcGhfX21lbnVfX2J1dHRvbl9fc2hhZG93e3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwNzt0b3A6MDtvcGFjaXR5OjA7d2lkdGg6NTBweDtoZWlnaHQ6MDtiYWNrZ3JvdW5kOiNmZmY7LW1vei1ib3gtc2hhZG93OjAgNHB4IDE1cHggcmdiYSgwLDAsMCwuMik7Ym94LXNoYWRvdzowIDRweCAxNXB4IHJnYmEoMCwwLDAsLjIpfS54LXBoX19saW5re2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6NnB4O21hcmdpbi1yaWdodDo2cHg7KnBhZGRpbmc6NXB4IDZweCA3cHg7Knpvb206MTt0ZXh0LWRlY29yYXRpb246bm9uZTt3aGl0ZS1zcGFjZTpub3dyYXA7b3V0bGluZTpub25lO2ZvbnQ6MTJweC8xNnB4IEhlbHZldGljYU5ldWUsQXJpYWwsc2Fucy1zZXJpZn0ueC1waF9fbGluayxhLngtcGhfX2xpbmt7Y29sb3I6IzAwNWJkMX0ueC1waF9fbGluazpob3ZlcixhLngtcGhfX2xpbms6aG92ZXJ7Y29sb3I6I2ZmOWUwMDt0ZXh0LWRlY29yYXRpb246bm9uZX0ueC1waF9fbGluazpob3ZlciAueC1waF9fbGlua19fdGV4dCxhLngtcGhfX2xpbms6aG92ZXIgLngtcGhfX2xpbmtfX3RleHR7Y29sb3I6I2ZmOWUwMH0ueC1waF9fbGlua19leHQsYS54LXBoX19saW5rX2V4dCwueC1waF9fbGlua19leHQ6aG92ZXIsYS54LXBoX19saW5rX2V4dDpob3Zlcnt0ZXh0LWRlY29yYXRpb246bm9uZX0ueC1waF9fbGlua19fdGV4dHt0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXN0eWxlOm5vcm1hbDtjdXJzb3I6cG9pbnRlcn0ueC1waF9fbGlua19fZG90e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjZweDtoZWlnaHQ6NnB4O21hcmdpbi1sZWZ0OjNweDttYXJnaW4tYm90dG9tOjFweDtiYWNrZ3JvdW5kOiNmZjllMDA7LW1vei1ib3JkZXItcmFkaXVzOjNweDtib3JkZXItcmFkaXVzOjNweH0ueC1waF9fbGlua19leHQgLngtcGhfX2xpbmtfX2RvdHtkaXNwbGF5Om5vbmV9LngtcGhfX2xpbmtfX2JhbGxvb257ZGlzcGxheTpub25lO292ZXJmbG93OmhpZGRlbjttYXJnaW4tYm90dG9tOi00cHg7bWFyZ2luLWxlZnQ6M3B4O3BhZGRpbmc6MXB4IDNweDttaW4td2lkdGg6OXB4O2hlaWdodDoxM3B4Oy1tb3otYm9yZGVyLXJhZGl1czo3cHg7Ym9yZGVyLXJhZGl1czo3cHg7YmFja2dyb3VuZC1jb2xvcjojZmY5ZTAwO2NvbG9yOiNmZmY7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtc2l6ZToxMXB4O2xpbmUtaGVpZ2h0OjEzcHg7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246NTAwbXM7LW1vei1hbmltYXRpb24tZHVyYXRpb246NTAwbXM7YW5pbWF0aW9uLWR1cmF0aW9uOjUwMG1zOy13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOy1tb3otYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aH0ueC1waC1mZi54LXBoLW1hYyAueC1waF9fbGlua19fYmFsbG9vbiwueC1waC1vcGVyYSAueC1waF9fbGlua19fYmFsbG9vbntsaW5lLWhlaWdodDoxNHB4fS54LXBoX19saW5rX2V4dCAueC1waF9fbGlua19fYmFsbG9vbntkaXNwbGF5OmlubGluZS1ibG9jazsqZGlzcGxheTppbmxpbmU7Knpvb206MX0ueC1waC1pb3MgLngtcGhfX2xpbmtfX2JhbGxvb257bWFyZ2luLWJvdHRvbTotNXB4O3BhZGRpbmc6MCAzcHggMnB4fS54LXBoX19saW5rX2ZpcnN0e21hcmdpbi1sZWZ0OjE0cHh9LngtcGhfX2xpbmtfbGFzdHttYXJnaW4tcmlnaHQ6MTJweH0ueC1waF9fbGlua19leHR7cGFkZGluZy1yaWdodDoxcHh9LngtcGhfX2xpbmtfc2VsZWN0ZWR7Zm9udC13ZWlnaHQ6NzAwfS54LXBoX19saW5rX3gtc217ZGlzcGxheTpub25lfUBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTE1MHB4KXsueC1waF9fbGlua194LXNte2Rpc3BsYXk6aW5saW5lLWJsb2NrfX0ueC1waC1mZi54LXBoLXdpbiAueC1waF9fbGlua3twYWRkaW5nOjVweCA2cHggN3B4fS54LXBoX19hdXRoX19saW5rX2ljb257cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MCA2cHghaW1wb3J0YW50O3dpZHRoOjE2cHg7aGVpZ2h0OjI4cHg7dmVydGljYWwtYWxpZ246dG9wO3RleHQtaW5kZW50OjMwcHh9LngtcGhfX2F1dGhfX2xpbmtfaWNvbiwueC1waF9fYXV0aF9fbGlua19pY29uOmhvdmVye2NvbG9yOiNmZmYhaW1wb3J0YW50fS54LXBoX19hdXRoX19saW5rX2ljb246YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtsZWZ0OjJweDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0udy14LXBoX19saW5re2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOnRvcH0ueC1waF9fYXV0aHt3aWR0aDoxMDAlfS54LXBoX19hdXRoLC53LXgtcGhfX2F1dGhfX2NvbHttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7Ym9yZGVyLXNwYWNpbmc6MDtmb250OjEycHgvMTZweCBIZWx2ZXRpY2FOZXVlLEFyaWFsLHNhbnMtc2VyaWZ9LncteC1waF9fYXV0aF9fY29se3ZlcnRpY2FsLWFsaWduOnRvcDt0ZXh0LWFsaWduOnJpZ2h0O3doaXRlLXNwYWNlOm5vd3JhcH0udy14LXBoX19hdXRoX19jb2xfbGVmdHt3aWR0aDo5OSV9LncteC1waF9fYXV0aF9fY29sX3JpZ2h0e3BhZGRpbmctcmlnaHQ6MnB4fS54LXBoX19hdXRoX191c2Vye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTttaW4td2lkdGg6MTAwcHg7aGVpZ2h0OjI4cHg7b3ZlcmZsb3c6aGlkZGVufS53LXgtcGhfX2F1dGhfX3VzZXJfaW5uZXJ7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0ZXh0LWFsaWduOmxlZnQ7bWF4LXdpZHRoOjEwMCV9LngtcGhfX2F1dGhfX3VzZXJfX3RleHR7Y29sb3I6IzAwMDtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjZweCAxMHB4IDZweCAwO19wYWRkaW5nOjVweCAxMHB4IDdweCAwO2ZvbnQ6MTJweC8xNnB4IEhlbHZldGljYU5ldWUsQXJpYWwsc2Fucy1zZXJpZn0ueC1waF9fYXV0aF9fdXNlcl9fZmFkZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDotNnB4O3dpZHRoOjE2cHg7aGVpZ2h0OjI4cHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6dXJsKCJodHRwczovL2ltZy5pbWdzbWFpbC5ydS9waC8wLjY1LjM1L2F1dGgvZmFkZTIucG5nIikgcmVwZWF0LXkgMCAwO19kaXNwbGF5Om5vbmV9LngtcGhfX2F1dGhfX2xpbmssLngtcGhfX2F1dGhfX2xpbms6bGluaywueC1waF9fYXV0aF9fbGluazp2aXNpdGVkLC54LXBoX19hdXRoX19saW5rOmhvdmVyLC54LXBoX19hdXRoX19saW5rOmFjdGl2ZSwueC1waF9fYXV0aF9fbGluazpmb2N1c3tmb250OjEycHgvMTZweCBIZWx2ZXRpY2FOZXVlLEFyaWFsLHNhbnMtc2VyaWZ9LncteC1waF9fYXV0aF9fZHJvcGRvd257cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazttaW4td2lkdGg6MTAwcHg7d2lkdGg6MTAwJTtoZWlnaHQ6MXB4O3RleHQtYWxpZ246cmlnaHR9LncteC1waF9fYXV0aF9fZHJvcGRvd25fX2lubmVye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjZweDt3aWR0aDoxMDAlO21pbi13aWR0aDoxMDBweDt0ZXh0LWFsaWduOnJpZ2h0fS54LXBoX19tZW51X2F1dGh7bWF4LXdpZHRoOjEwMCV9LngtcGhfX21lbnVfX2J1dHRvbl9hdXRoLC54LXBoX19tZW51X19idXR0b25fYXV0aDpsaW5rLC54LXBoX19tZW51X19idXR0b25fYXV0aDp2aXNpdGVkLC54LXBoX19tZW51X19idXR0b25fYXV0aDpob3ZlciwueC1waF9fbWVudV9fYnV0dG9uX2F1dGg6YWN0aXZlLC54LXBoX19tZW51X19idXR0b25fYXV0aDpmb2N1c3ttYXgtd2lkdGg6MTAwJX0ueC1waF9fbWVudV9fYnV0dG9uX190ZXh0X2F1dGh7cG9zaXRpb246cmVsYXRpdmV9LngtcGhfX21lbnVfX2J1dHRvbl9fdGV4dF9hdXRoLC54LXBoX19tZW51X29wZW4gLngtcGhfX21lbnVfX2J1dHRvbjpob3ZlciAueC1waF9fbWVudV9fYnV0dG9uX190ZXh0X2F1dGh7bWF4LXdpZHRoOjU2MHB4fS54LXBoX19tZW51X2F1dGhfdW5yZWFkIC54LXBoX19tZW51X19idXR0b25fX3RleHRfYXV0aCwueC1waF9fbWVudV9hdXRoX3VucmVhZC54LXBoX19tZW51X29wZW4gLngtcGhfX21lbnVfX2J1dHRvbjpob3ZlciAueC1waF9fbWVudV9fYnV0dG9uX190ZXh0X2F1dGh7cGFkZGluZy1sZWZ0OjE0cHh9LngtcGhfX21lbnVfX2J1dHRvbl9hdXRoX191bnJlYWR7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NHB4O3RvcDoxMnB4O3dpZHRoOjZweDtoZWlnaHQ6NnB4O2JhY2tncm91bmQ6I2ZmOWUwMDstbW96LWJvcmRlci1yYWRpdXM6M3B4O2JvcmRlci1yYWRpdXM6M3B4fS54LXBoX19tZW51X2F1dGhfdW5yZWFkIC54LXBoX19tZW51X19idXR0b25fYXV0aF9fdW5yZWFke2Rpc3BsYXk6YmxvY2t9LngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fYnV0dG9uIC54LXBoX19tZW51X19idXR0b25fX3RleHQsLngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fYnV0dG9uOmhvdmVyIC54LXBoX19tZW51X19idXR0b25fX3RleHQsLngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fYnV0dG9uOmZvY3VzIC54LXBoX19tZW51X19idXR0b25fX3RleHQsLngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fYnV0dG9uOmFjdGl2ZSAueC1waF9fbWVudV9fYnV0dG9uX190ZXh0e2NvbG9yOiMzMzN9LngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fYnV0dG9uIC54LXBoX19tZW51X19idXR0b25fX2ljb24sLngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fYnV0dG9uOmhvdmVyIC54LXBoX19tZW51X19idXR0b25fX2ljb24sLngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fYnV0dG9uOmZvY3VzIC54LXBoX19tZW51X19idXR0b25fX2ljb24sLngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fYnV0dG9uOmFjdGl2ZSAueC1waF9fbWVudV9fYnV0dG9uX19pY29ue2JvcmRlci1jb2xvcjojMzMzICNmZmYgI2ZmZn0ueC1waF9fbWVudV9fYnV0dG9uX2F1dGhfX3VucmVhZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTEzM3B4fS54LXBoX19tZW51X19idXR0b25fX3RleHRfX2ljb24sLngtcGhfX2F1dGhfbGlzdF9faXRlbV9faW5mb19fc29jaWFse2Rpc3BsYXk6aW5saW5lLWJsb2NrO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4Oy1tb3otYm9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyLXJhZGl1czo4cHg7dmVydGljYWwtYWxpZ246dG9wfS54LXBoX19tZW51X19idXR0b25fX3RleHRfX2ljb246YWZ0ZXIsLngtcGhfX2F1dGhfbGlzdF9faXRlbV9faW5mb19fc29jaWFsOmFmdGVye21hcmdpbjotNHB4IDAgMCAtNHB4fTwvc3R5bGU+CgkKCTxkaXYgY2xhc3M9IngtcGggcG9ydGFsLWhlYWRsaW5lIHgtcGgtd2luIHgtcGgtbm8tdG91Y2ggeC1waC1jc3N0cmFuc2Zvcm1zIHgtcGgtYm94c2hhZG93IiBpZD0icG9ydGFsLWhlYWRsaW5lIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi54LXBoLWljbzpiZWZvcmV7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO2NvbnRlbnQ6IiAiO2JhY2tncm91bmQ6dXJsKCJodHRwczovL2ltZy5pbWdzbWFpbC5ydS9waC8wLjY1LjM1L2ljby9pY28ucG5nIikgbm8tcmVwZWF0fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzoxLjUpLG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOjEuNSksb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjMvMiksb25seSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOjEuNSl7LngtcGgtaWNvOmJlZm9yZXstbW96LWJhY2tncm91bmQtc2l6ZToyMTNweCAyNHB4O2JhY2tncm91bmQtc2l6ZToyMTNweCAyNHB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKCJodHRwczovL2ltZy5pbWdzbWFpbC5ydS9waC8wLjY1LjM1L2ljby9pY29AMngucG5nIil9fS54LXBoLWljbzpob3ZlcjpiZWZvcmV7Y29udGVudDoiICAifS54LXBoLWljbzp2aXNpdGVkOmJlZm9yZXtjb250ZW50OiIgICAifS54LXBoLWljbzphY3RpdmU6YmVmb3Jle2NvbnRlbnQ6IiAgICAifS54LXBoLWljbzpmb2N1czpiZWZvcmV7Y29udGVudDoiICAgICAifS54LXBoLWljb19jYW1lcmE6YmVmb3Jle3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7YmFja2dyb3VuZC1wb3NpdGlvbjotODVweCAwfS54LXBoLWljb19jYW1lcmE6aG92ZXI6YmVmb3Jle2JhY2tncm91bmQtcG9zaXRpb246LTExMXB4IDB9LngtcGgtaWNvX3ZrOmJlZm9yZSwueC1waC1pY29fdmtfc21hbGw6YmVmb3Jley1tb3otYm9yZGVyLXJhZGl1czoxMnB4O2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kLWNvbG9yOiM0OTg2Y2N9LngtcGgtaWNvX29rOmJlZm9yZSwueC1waC1pY29fb2tfc21hbGw6YmVmb3Jley1tb3otYm9yZGVyLXJhZGl1czoxMnB4O2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kLWNvbG9yOiNmNTgzMjZ9LngtcGgtaWNvX2ZiOmJlZm9yZSwueC1waC1pY29fZmJfc21hbGw6YmVmb3Jley1tb3otYm9yZGVyLXJhZGl1czoxMnB4O2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDYyZTB9LngtcGgtaWNvX2Nsb3Nle2Rpc3BsYXk6YmxvY2s7d2lkdGg6OHB4O2hlaWdodDo4cHh9LngtcGgtaWNvX2Nsb3NlOmJlZm9yZXt2ZXJ0aWNhbC1hbGlnbjp0b3B9LngtcGgtaWNvX2NhbWVyYV9ibGFjazpiZWZvcmV7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04NXB4IDB9LngtcGgtaWNvX2NhbWVyYV93aGl0ZTpiZWZvcmV7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTFweCAwfS54LXBoLWljb19jbG9zZTpiZWZvcmV7d2lkdGg6OHB4O2hlaWdodDo4cHg7YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9LngtcGgtaWNvX2ZiOmJlZm9yZXt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O2JhY2tncm91bmQtcG9zaXRpb246LTEzN3B4IDB9LngtcGgtaWNvX2ZiX3NtYWxsOmJlZm9yZXt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JhY2tncm91bmQtcG9zaXRpb246LTEwcHggMH0ueC1waC1pY29fbWFpbDpiZWZvcmV7d2lkdGg6MTlweDtoZWlnaHQ6MTRweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IDB9LngtcGgtaWNvX29rOmJlZm9yZXt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O2JhY2tncm91bmQtcG9zaXRpb246LTE2M3B4IDB9LngtcGgtaWNvX29rX3NtYWxsOmJlZm9yZXt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JhY2tncm91bmQtcG9zaXRpb246LTI4cHggMH0ueC1waC1pY29fdms6YmVmb3Jle3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7YmFja2dyb3VuZC1wb3NpdGlvbjotMTg5cHggMH0ueC1waC1pY29fdmtfc21hbGw6YmVmb3Jle3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7YmFja2dyb3VuZC1wb3NpdGlvbjotNDZweCAwfS54LXBoX19idXR0b24sLngtcGhfX2J1dHRvbjpsaW5rLC54LXBoX19idXR0b246dmlzaXRlZCwueC1waF9fYnV0dG9uOmhvdmVyLC54LXBoX19idXR0b246Zm9jdXMsLngtcGhfX2J1dHRvbjphY3RpdmV7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy10b3A6NHB4O3BhZGRpbmctYm90dG9tOjRweDtmb250OjEzcHgvMTZweCBBcmlhbCxzYW5zLXNlcmlmO3RleHQtZGVjb3JhdGlvbjpub25lO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtvdXRsaW5lOm5vbmV9LngtcGhfX2J1dHRvbl9faW5wdXR7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MjZweDttYXJnaW46MDtwYWRkaW5nOjA7b3V0bGluZTpub25lO2ZvbnQtc2l6ZToxMDBweDtmaWx0ZXI6YWxwaGEob3BhY2l0eT0wKTtvcGFjaXR5OjA7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LngtcGhfX2J1dHRvbl9faW5wdXRbZGlzYWJsZWQ9ImRpc2FibGVkIl17Y3Vyc29yOmRlZmF1bHR9LngtcGhfX2J1dHRvbl9fZmFrZXtwYWRkaW5nOjVweCAxM3B4IDZweDtmb250OjEzcHgvMThweCBBcmlhbCxzYW5zLXNlcmlmOy1tb3otYm9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyOjFweCBzb2xpZCAjZDFkMWQxO2JhY2tncm91bmQtY29sb3I6I2Y4ZjhmODtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20ocmdiYSgyNTUsMjU1LDI1NSwuMDMpKSx0byhyZ2JhKDAsMCwwLC4wMykpKTtiYWNrZ3JvdW5kLWltYWdlOi1tb3otIG9sZGxpbmVhci1ncmFkaWVudCh0b3AscmdiYSgyNTUsMjU1LDI1NSwuMDMpMCUscmdiYSgwLDAsMCwuMDMpMTAwJSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHJnYmEoMjU1LDI1NSwyNTUsLjAzKTAlLHJnYmEoMCwwLDAsLjAzKTEwMCUpOy1tb3otYm94LXNoYWRvdzowIDFweCAwIDFweCByZ2JhKDAsMCwwLC4wNSk7Ym94LXNoYWRvdzowIDFweCAwIDFweCByZ2JhKDAsMCwwLC4wNSk7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6IzAwMDt0ZXh0LXNoYWRvdzowIDFweCByZ2JhKDI1NSwyNTUsMjU1LC42KTtjdXJzb3I6cG9pbnRlcjt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt3aGl0ZS1zcGFjZTpub3dyYXB9LngtcGhfX2J1dHRvbl9hY3Rpb24gLngtcGhfX2J1dHRvbl9fZmFrZSwueC1waF9fYnV0dG9uX2FjdGlvbjpsaW5rIC54LXBoX19idXR0b25fX2Zha2UsLngtcGhfX2J1dHRvbl9hY3Rpb246dmlzaXRlZCAueC1waF9fYnV0dG9uX19mYWtlLC54LXBoX19idXR0b25fYWN0aW9uOmhvdmVyIC54LXBoX19idXR0b25fX2Zha2UsLngtcGhfX2J1dHRvbl9hY3Rpb246Zm9jdXMgLngtcGhfX2J1dHRvbl9fZmFrZSwueC1waF9fYnV0dG9uX2FjdGlvbjphY3RpdmUgLngtcGhfX2J1dHRvbl9fZmFrZXtwYWRkaW5nOjZweCAxM3B4O2ZvbnQ6MTNweC8xNnB4IEFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6IzAwNWZmOTtiYWNrZ3JvdW5kOiMwMDVmZjk7dGV4dC1zaGFkb3c6bm9uZTstbW96LWJvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1yYWRpdXM6MnB4fWE6aG92ZXIgLngtcGhfX2J1dHRvbl9fZmFrZSxhOmZvY3VzIC54LXBoX19idXR0b25fX2Zha2UsLngtcGhfX2J1dHRvbl9fZmFrZTpob3ZlciwueC1waF9fYnV0dG9uX19mYWtlOmZvY3VzLC54LXBoX19idXR0b246aG92ZXIgLngtcGhfX2J1dHRvbl9fZmFrZSwueC1waF9fYnV0dG9uOmZvY3VzIC54LXBoX19idXR0b25fX2Zha2UsLngtcGhfX2J1dHRvbl9faW5wdXQ6aG92ZXIrLngtcGhfX2J1dHRvbl9fZmFrZSwueC1waF9fYnV0dG9uX19pbnB1dDpmb2N1cysueC1waF9fYnV0dG9uX19mYWtle2JhY2tncm91bmQtY29sb3I6I2ZjZmNmY30ueC1waF9fYnV0dG9uX2FjdGlvbiAueC1waF9fYnV0dG9uX19mYWtlOmhvdmVyLC54LXBoX19idXR0b25fYWN0aW9uIC54LXBoX19idXR0b25fX2Zha2U6Zm9jdXMsLngtcGhfX2J1dHRvbl9hY3Rpb246aG92ZXIgLngtcGhfX2J1dHRvbl9fZmFrZSwueC1waF9fYnV0dG9uX2FjdGlvbjpmb2N1cyAueC1waF9fYnV0dG9uX19mYWtlLC54LXBoX19idXR0b25fYWN0aW9uIC54LXBoX19idXR0b25fX2lucHV0OmhvdmVyKy54LXBoX19idXR0b25fX2Zha2UsLngtcGhfX2J1dHRvbl9hY3Rpb24gLngtcGhfX2J1dHRvbl9faW5wdXQ6Zm9jdXMrLngtcGhfX2J1dHRvbl9fZmFrZXtib3JkZXItY29sb3I6IzE1ODFjZjtiYWNrZ3JvdW5kOiMxNTgxY2Z9YTphY3RpdmUgLngtcGhfX2J1dHRvbl9fZmFrZSwueC1waF9fYnV0dG9uX19mYWtlOmFjdGl2ZSwueC1waF9fYnV0dG9uOmFjdGl2ZSAueC1waF9fYnV0dG9uX19mYWtlLC54LXBoX19idXR0b246aG92ZXIgLngtcGhfX2J1dHRvbl9fZmFrZTphY3RpdmUsLngtcGhfX2J1dHRvbl9faW5wdXQ6YWN0aXZlKy54LXBoX19idXR0b25fX2Zha2V7YmFja2dyb3VuZC1jb2xvcjojZmNmY2ZjfS54LXBoX19idXR0b25fYWN0aW9uIC54LXBoX19idXR0b25fX2Zha2U6YWN0aXZlLC54LXBoX19idXR0b25fYWN0aW9uOmFjdGl2ZSAueC1waF9fYnV0dG9uX19mYWtlLC54LXBoX19idXR0b25fYWN0aW9uOmhvdmVyIC54LXBoX19idXR0b25fX2Zha2U6YWN0aXZlLC54LXBoX19idXR0b25fYWN0aW9uIC54LXBoX19idXR0b25fX2lucHV0OmFjdGl2ZSsueC1waF9fYnV0dG9uX19mYWtle2JvcmRlci1jb2xvcjojMTQ3ZmNiO2JhY2tncm91bmQ6IzE0N2ZjYn0ueC1waF9fYnV0dG9uX2Rpc2FibGVkIC54LXBoX19idXR0b25fX2Zha2UsLngtcGhfX2J1dHRvbl9faW5wdXRbZGlzYWJsZWQ9ImRpc2FibGVkIl0rLngtcGhfX2J1dHRvbl9fZmFrZSwueC1waF9fYnV0dG9uOmhvdmVyIC54LXBoX19idXR0b25fX2lucHV0W2Rpc2FibGVkPSJkaXNhYmxlZCJdKy54LXBoX19idXR0b25fX2Zha2UsLngtcGhfX2J1dHRvbjpmb2N1cyAueC1waF9fYnV0dG9uX19pbnB1dFtkaXNhYmxlZD0iZGlzYWJsZWQiXSsueC1waF9fYnV0dG9uX19mYWtle2JvcmRlci1jb2xvcjojZjRmNGY0O2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFVQUFBQWJDQUlBQUFBNzBkSlpBQUFBSzBsRVFWUjQybUw4Ly84L0F4SmdwRGYvMzc5L05PWC8vZnVYcXZ3L2YvN1FsUC83OTI5OGZJQUFBd0RhR1ZCTkRIcy9lZ0FBQUFCSlJVNUVya0pnZ2c9PSIpICFpbXBvcnRhbnQ7Y3Vyc29yOmRlZmF1bHQhaW1wb3J0YW50fS54LXBoX19idXR0b25fYWN0aW9uLngtcGhfX2J1dHRvbl9kaXNhYmxlZCAueC1waF9fYnV0dG9uX19mYWtlLC54LXBoX19idXR0b25fYWN0aW9uIC54LXBoX19idXR0b25fX2lucHV0W2Rpc2FibGVkPSJkaXNhYmxlZCJdKy54LXBoX19idXR0b25fX2Zha2UsLngtcGhfX2J1dHRvbl9hY3Rpb246aG92ZXIgLngtcGhfX2J1dHRvbl9faW5wdXRbZGlzYWJsZWQ9ImRpc2FibGVkIl0rLngtcGhfX2J1dHRvbl9fZmFrZSwueC1waF9fYnV0dG9uX2FjdGlvbjpmb2N1cyAueC1waF9fYnV0dG9uX19pbnB1dFtkaXNhYmxlZD0iZGlzYWJsZWQiXSsueC1waF9fYnV0dG9uX19mYWtle2JvcmRlci1jb2xvcjojOWRhZWMxO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFVQUFBQWJDQVlBQUFDMHMwVU9BQUFBTEVsRVFWUjQybUw4Ly8vL1FnWTB3TVNBQmJBQVZWSWdTQXN6c1F2KysvZVBQaFlORVhmU0l1UUJBZ3dBS2VCSXQzY0VCaXNBQUFBQVNVVk9SSzVDWUlJPSIpICFpbXBvcnRhbnR9LngtcGhfX2J1dHRvbl9kYXJrIC54LXBoX19idXR0b25fX2Zha2UsLngtcGhfX2J1dHRvbl9kYXJrOmxpbmsgLngtcGhfX2J1dHRvbl9fZmFrZSwueC1waF9fYnV0dG9uX2Rhcms6dmlzaXRlZCAueC1waF9fYnV0dG9uX19mYWtlLC54LXBoX19idXR0b25fZGFyazpob3ZlciAueC1waF9fYnV0dG9uX19mYWtlLC54LXBoX19idXR0b25fZGFyazpmb2N1cyAueC1waF9fYnV0dG9uX19mYWtlLC54LXBoX19idXR0b25fZGFyazphY3RpdmUgLngtcGhfX2J1dHRvbl9fZmFrZXtjb2xvcjojZmZmO3RleHQtc2hhZG93OjAgLTFweCByZ2JhKDAsMCwwLC4zKX0ueC1waF9fYnV0dG9uX29ubHktaWNvbiAueC1waF9fYnV0dG9uX19mYWtlLC54LXBoX19idXR0b25fb25seS1pY29uOmxpbmsgLngtcGhfX2J1dHRvbl9fZmFrZSwueC1waF9fYnV0dG9uX29ubHktaWNvbjp2aXNpdGVkIC54LXBoX19idXR0b25fX2Zha2UsLngtcGhfX2J1dHRvbl9vbmx5LWljb246aG92ZXIgLngtcGhfX2J1dHRvbl9fZmFrZSwueC1waF9fYnV0dG9uX29ubHktaWNvbjpmb2N1cyAueC1waF9fYnV0dG9uX19mYWtlLC54LXBoX19idXR0b25fb25seS1pY29uOmFjdGl2ZSAueC1waF9fYnV0dG9uX19mYWtle3BhZGRpbmctcmlnaHQ6MTJweDtwYWRkaW5nLWxlZnQ6MTJweH0ueC1waF9fYnV0dG9uX3dpdGgtaWNvbiAueC1waF9fYnV0dG9uX19mYWtlLC54LXBoX19idXR0b25fd2l0aC1pY29uOmxpbmsgLngtcGhfX2J1dHRvbl9fZmFrZSwueC1waF9fYnV0dG9uX3dpdGgtaWNvbjp2aXNpdGVkIC54LXBoX19idXR0b25fX2Zha2UsLngtcGhfX2J1dHRvbl93aXRoLWljb246aG92ZXIgLngtcGhfX2J1dHRvbl9fZmFrZSwueC1waF9fYnV0dG9uX3dpdGgtaWNvbjpmb2N1cyAueC1waF9fYnV0dG9uX19mYWtlLC54LXBoX19idXR0b25fd2l0aC1pY29uOmFjdGl2ZSAueC1waF9fYnV0dG9uX19mYWtle3BhZGRpbmctbGVmdDoxNXB4fS54LXBoX19idXR0b25fb25seS1pY29uIC54LXBoX19idXR0b25fX2Zha2VfX3RleHQsLngtcGhfX2J1dHRvbl9vbmx5LWljb246bGluayAueC1waF9fYnV0dG9uX19mYWtlX190ZXh0LC54LXBoX19idXR0b25fb25seS1pY29uOnZpc2l0ZWQgLngtcGhfX2J1dHRvbl9fZmFrZV9fdGV4dCwueC1waF9fYnV0dG9uX29ubHktaWNvbjpob3ZlciAueC1waF9fYnV0dG9uX19mYWtlX190ZXh0LC54LXBoX19idXR0b25fb25seS1pY29uOmZvY3VzIC54LXBoX19idXR0b25fX2Zha2VfX3RleHQsLngtcGhfX2J1dHRvbl9vbmx5LWljb246YWN0aXZlIC54LXBoX19idXR0b25fX2Zha2VfX3RleHR7ZGlzcGxheTpub25lfS54LXBoX19idXR0b25fd2l0aC1pY29uIC54LXBoX19idXR0b25fX2Zha2VfX3RleHQsLngtcGhfX2J1dHRvbl93aXRoLWljb246bGluayAueC1waF9fYnV0dG9uX19mYWtlX190ZXh0LC54LXBoX19idXR0b25fd2l0aC1pY29uOnZpc2l0ZWQgLngtcGhfX2J1dHRvbl9fZmFrZV9fdGV4dCwueC1waF9fYnV0dG9uX3dpdGgtaWNvbjpob3ZlciAueC1waF9fYnV0dG9uX19mYWtlX190ZXh0LC54LXBoX19idXR0b25fd2l0aC1pY29uOmZvY3VzIC54LXBoX19idXR0b25fX2Zha2VfX3RleHQsLngtcGhfX2J1dHRvbl93aXRoLWljb246YWN0aXZlIC54LXBoX19idXR0b25fX2Zha2VfX3RleHR7bWFyZ2luLWxlZnQ6NXB4fS54LXBoX19idXR0b25fZGlzYWJsZWQgLngtcGhfX2J1dHRvbl9fZmFrZV9fdGV4dCwueC1waF9fYnV0dG9uX19pbnB1dFtkaXNhYmxlZD0iZGlzYWJsZWQiXSsueC1waF9fYnV0dG9uX19mYWtlIC54LXBoX19idXR0b25fX2Zha2VfX3RleHR7b3BhY2l0eTouNiFpbXBvcnRhbnQ7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NjApIWltcG9ydGFudH0ueC1waF9fYnV0dG9uX19mYWtlX19pY29ue3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6bm9uZTt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2ZvbnQ6MC8wIGE7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO292ZXJmbG93OmhpZGRlbn0ueC1waF9fYnV0dG9uX3dpdGgtaWNvbiAueC1waF9fYnV0dG9uX19mYWtlX19pY29uLC54LXBoX19idXR0b25fd2l0aC1pY29uOmxpbmsgLngtcGhfX2J1dHRvbl9fZmFrZV9faWNvbiwueC1waF9fYnV0dG9uX3dpdGgtaWNvbjp2aXNpdGVkIC54LXBoX19idXR0b25fX2Zha2VfX2ljb24sLngtcGhfX2J1dHRvbl93aXRoLWljb246aG92ZXIgLngtcGhfX2J1dHRvbl9fZmFrZV9faWNvbiwueC1waF9fYnV0dG9uX3dpdGgtaWNvbjpmb2N1cyAueC1waF9fYnV0dG9uX19mYWtlX19pY29uLC54LXBoX19idXR0b25fd2l0aC1pY29uOmFjdGl2ZSAueC1waF9fYnV0dG9uX19mYWtlX19pY29uLC54LXBoX19idXR0b25fb25seS1pY29uIC54LXBoX19idXR0b25fX2Zha2VfX2ljb24sLngtcGhfX2J1dHRvbl9vbmx5LWljb246bGluayAueC1waF9fYnV0dG9uX19mYWtlX19pY29uLC54LXBoX19idXR0b25fb25seS1pY29uOnZpc2l0ZWQgLngtcGhfX2J1dHRvbl9fZmFrZV9faWNvbiwueC1waF9fYnV0dG9uX29ubHktaWNvbjpob3ZlciAueC1waF9fYnV0dG9uX19mYWtlX19pY29uLC54LXBoX19idXR0b25fb25seS1pY29uOmZvY3VzIC54LXBoX19idXR0b25fX2Zha2VfX2ljb24sLngtcGhfX2J1dHRvbl9vbmx5LWljb246YWN0aXZlIC54LXBoX19idXR0b25fX2Zha2VfX2ljb257ZGlzcGxheTppbmxpbmUtYmxvY2t9LngtcGhfX2J1dHRvbl9kaXNhYmxlZCAueC1waF9fYnV0dG9uX19mYWtlX19pY29uLC54LXBoX19idXR0b25fX2lucHV0W2Rpc2FibGVkPSJkaXNhYmxlZCJdKy54LXBoX19idXR0b25fX2Zha2UgLngtcGhfX2J1dHRvbl9fZmFrZV9faWNvbntvcGFjaXR5Oi4yIWltcG9ydGFudDtmaWx0ZXI6YWxwaGEob3BhY2l0eT0yMCkhaW1wb3J0YW50fS54LXBoX19idXR0b25fX2Zha2VfX2ljb257d2lkdGg6MTFweDttYXJnaW4tYm90dG9tOi00cHg7YmFja2dyb3VuZC1pbWFnZTp1cmwoImh0dHBzOi8vaW1nLmltZ3NtYWlsLnJ1L3BoLzAuNjUuMzUvYXV0aC9pY29ucy5naWYiKX0ueC1waF9fYnV0dG9uX19mYWtlX19pY29uX3BsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9LngtcGhfX2J1dHRvbl9fZmFrZV9faWNvbl9leGl0e2JhY2tncm91bmQtcG9zaXRpb246MCAtMjBweH0ueC1waC1idG57ZGlzcGxheTppbmxpbmUtYmxvY2s7LW1vei1ib3gtc2hhZG93OjAgMnB4IHJnYmEoMCwwLDAsLjEyKTtib3gtc2hhZG93OjAgMnB4IHJnYmEoMCwwLDAsLjEyKTstbW96LWJvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1yYWRpdXM6MnB4fS54LXBoLWJ0bi54LXBoLWJ0bnt0ZXh0LWRlY29yYXRpb246bm9uZX0ueC1waC1idG5fbWVkaXVte3BhZGRpbmc6MCAxNnB4O2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjMwcHh9LngtcGgtYnRuX3ByaW1hcnl7YmFja2dyb3VuZDojMDA1ZmY5fS54LXBoLWJ0bl9wcmltYXJ5LngtcGgtYnRuX3ByaW1hcnl7Y29sb3I6I2ZmZn0ueC1waC1idG5fcHJpbWFyeTpob3ZlcntiYWNrZ3JvdW5kOiMwMDU5ZWF9LngtcGhfX21lbnVfb3Blbnt6LWluZGV4OjEwMDZ9LngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fYnV0dG9uLC54LXBoX19tZW51X29wZW4gLngtcGhfX21lbnVfX2J1dHRvbjpsaW5rLC54LXBoX19tZW51X29wZW4gLngtcGhfX21lbnVfX2J1dHRvbjp2aXNpdGVkLC54LXBoX19tZW51X29wZW4gLngtcGhfX21lbnVfX2J1dHRvbjpob3ZlciwueC1waF9fbWVudV9vcGVuIC54LXBoX19tZW51X19idXR0b246YWN0aXZlLC54LXBoX19tZW51X29wZW4gLngtcGhfX21lbnVfX2J1dHRvbjpmb2N1c3tib3JkZXItY29sb3I6I2VmZWZlZjtwYWRkaW5nLWJvdHRvbTo2cHg7ei1pbmRleDoxMDEwO2JhY2tncm91bmQ6I2ZmZjtib3JkZXItY29sb3I6I2VmZWZlZn0ueC1waC1ib3hzaGFkb3cgLngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fYnV0dG9uLC54LXBoLWJveHNoYWRvdyAueC1waF9fbWVudV9vcGVuIC54LXBoX19tZW51X19idXR0b246bGluaywueC1waC1ib3hzaGFkb3cgLngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fYnV0dG9uOnZpc2l0ZWQsLngtcGgtYm94c2hhZG93IC54LXBoX19tZW51X29wZW4gLngtcGhfX21lbnVfX2J1dHRvbjpob3ZlciwueC1waC1ib3hzaGFkb3cgLngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fYnV0dG9uOmFjdGl2ZSwueC1waC1ib3hzaGFkb3cgLngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fYnV0dG9uOmZvY3Vze2JvcmRlci1jb2xvcjojZmZmfS54LXBoX19tZW51X29wZW5fbGVmdCAudy14LXBoX19tZW51X19idXR0b25fX3NoYWRvd19sZWZ0e2xlZnQ6MDtoZWlnaHQ6MjhweDtjbGlwOnJlY3QoMCwwLDQ1cHgsLTIwcHgpfS54LXBoX19tZW51X29wZW5fcmlnaHQgLncteC1waF9fbWVudV9fYnV0dG9uX19zaGFkb3dfbGVmdHtsZWZ0OjA7aGVpZ2h0OjI4cHg7Y2xpcDpyZWN0KDAsMCwyOHB4LC0yMHB4KX0ueC1waF9fbWVudV9vcGVuX2xlZnQgLncteC1waF9fbWVudV9fYnV0dG9uX19zaGFkb3dfcmlnaHR7cmlnaHQ6MDtoZWlnaHQ6MjhweDtjbGlwOnJlY3QoMCw3MHB4LDI4cHgsNTBweCl9LngtcGhfX21lbnVfb3Blbl9yaWdodCAudy14LXBoX19tZW51X19idXR0b25fX3NoYWRvd19yaWdodHtyaWdodDowO2hlaWdodDoyOHB4O2NsaXA6cmVjdCgwLDYwcHgsNDVweCw1MHB4KX0ueC1waF9fbWVudV9vcGVuIC53LXgtcGhfX21lbnVfX2J1dHRvbl9fc2hhZG93e29wYWNpdHk6MTstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMnMgZmFsc2U7LW1vei10cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGZhbHNlO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZmFsc2V9LngtcGhfX21lbnVfX2Ryb3Bkb3due2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTk5OTlweDtsZWZ0Oi05OTk5cHg7ei1pbmRleDoxMDA5O3Zpc2liaWxpdHk6aGlkZGVuO29wYWNpdHk6MH0udy14LXBoX19tZW51X19kcm9wZG93bntwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MXB4IHNvbGlkICNmZmY7LW1vei1ib3JkZXItcmFkaXVzOjAgMCAycHggMnB4O2JvcmRlci1yYWRpdXM6MCAwIDJweCAycHg7LW1vei1ib3gtc2hhZG93OjAgNHB4IDE1cHggcmdiYSgwLDAsMCwuMik7Ym94LXNoYWRvdzowIDRweCAxNXB4IHJnYmEoMCwwLDAsLjIpO2JhY2tncm91bmQ6I2ZmZn0ueC1waC1ib3hzaGFkb3cgLncteC1waF9fbWVudV9fZHJvcGRvd257Ym9yZGVyOjFweCBzb2xpZCAjZmZmfS54LXBoLW5vLWJveHNoYWRvdyAudy14LXBoX19tZW51X19kcm9wZG93bntib3JkZXI6MXB4IHNvbGlkICNlZmVmZWZ9LncteC1waF9fbWVudV9fZHJvcGRvd25fX2NsZWFyZml4e2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7Y2xlYXI6Ym90aDtvdmVyZmxvdzpoaWRkZW47Zm9udDowLzAgYX0ueC1waF9fbWVudV9vcGVuIC54LXBoX19tZW51X19kcm9wZG93bnt0b3A6MjhweDt2aXNpYmlsaXR5OnZpc2libGU7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBmYWxzZTstbW96LXRyYW5zaXRpb246b3BhY2l0eSAuMnMgZmFsc2U7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBmYWxzZX0ueC1waC1uby1ib3hzaGFkb3cgLngtcGhfX21lbnVfb3BlbiAueC1waF9fbWVudV9fZHJvcGRvd257dG9wOjI3cHh9LngtcGhfX21lbnVfb3Blbl9sZWZ0IC54LXBoX19tZW51X19kcm9wZG93bntsZWZ0OjB9LngtcGhfX21lbnVfb3Blbl9sZWZ0IC53LXgtcGhfX21lbnVfX2Ryb3Bkb3duey1tb3otYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowOy1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowfS54LXBoX19tZW51X29wZW5fcmlnaHQgLngtcGhfX21lbnVfX2Ryb3Bkb3due2xlZnQ6YXV0bztyaWdodDowfS54LXBoX19tZW51X29wZW5fcmlnaHQgLncteC1waF9fbWVudV9fZHJvcGRvd257LW1vei1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowOy1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9LngtcGhfX3Byb2plY3RzX19jb2x7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OjQwcHg7dmVydGljYWwtYWxpZ246dG9wfS54LXBoX19wcm9qZWN0c19fZ3JvdXAtdGl0bGV7bWFyZ2luOjA7Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjMycHg7Y29sb3I6IzMzMzt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LngtcGhfX3Byb2plY3RzX19saW5re2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246bGVmdDtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDozMnB4O3doaXRlLXNwYWNlOm5vd3JhcH0ueC1waF9fcHJvamVjdHNfX2xpbmssLngtcGhfX3Byb2plY3RzX19saW5rOmxpbmssLngtcGhfX3Byb2plY3RzX19saW5rOnZpc2l0ZWQsLngtcGhfX3Byb2plY3RzX19saW5rOmhvdmVyLC54LXBoX19wcm9qZWN0c19fbGluazphY3RpdmUsLngtcGhfX3Byb2plY3RzX19saW5rOmZvY3Vze2NvbG9yOiMwMDViZDE7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTpub25lfS54LXBoX19wcm9qZWN0c19fbGluazpob3ZlciwueC1waF9fcHJvamVjdHNfX2xpbms6Zm9jdXMsLngtcGhfX3Byb2plY3RzX19saW5rOmFjdGl2ZXtjb2xvcjojZmY5ZTAwfS54LXBoX19wcm9qZWN0c19fbGlua3N7ZGlzcGxheTpibG9jaztib3JkZXItdG9wOjFweCBzb2xpZCAjZjBmMGYwO2hlaWdodDozMnB4O3BhZGRpbmc6NHB4IDQwcHggNHB4IDE2cHh9LngtcGhfX3Byb2plY3RzX19pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjI0cHg7dmVydGljYWwtYWxpZ246dG9wfS53LXgtcGhfX3Byb2plY3RzLWJvZHl7cGFkZGluZzoxMHB4IDAgMTBweCAxNnB4fS54LXBoX19wcm9qZWN0c19fbGlua3MtbGVmdC1wYW5lbHtmbG9hdDpsZWZ0fS54LXBoX19wcm9qZWN0c19fbGlua3MtcmlnaHQtcGFuZWx7ZmxvYXQ6cmlnaHR9LngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGh7dGV4dC1hbGlnbjpsZWZ0O3doaXRlLXNwYWNlOm5vcm1hbDttaW4td2lkdGg6MzEwcHg7bWF4LXdpZHRoOjIyMCV9LngtcGgtbm8tYm94c2hhZG93IC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoe3otaW5kZXg6MTAxMX0udy13LXgtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGh7bWFyZ2luOi0xcHh9LngtcGgtbm8tYm94c2hhZG93IC53LXcteC1waF9fbWVudV9fZHJvcGRvd25fYXV0aHttYXJnaW46MH0ueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbG9hZGVye2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO2hlaWdodDoxNTBweDtiYWNrZ3JvdW5kOnVybCgiaHR0cHM6Ly9pbWcuaW1nc21haWwucnUvcGgvMC42NS4zNS9sb2FkZXIuZ2lmIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXJ9LngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfbG9hZGluZyAueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbG9hZGVye2Rpc3BsYXk6YmxvY2t9LngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2Vycm9ye2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MTZweDtvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6I2ZlZmJkNjtjb2xvcjojZGIxMzBjO2ZvbnQ6MTJweC8xNnB4IEhlbHZldGljYU5ldWUsQXJpYWwsc2Fucy1zZXJpZjtwYWRkaW5nOjY4cHggMThweCA2NnB4O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6MCAwfS54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX2Vycm9yIC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19lcnJvcntkaXNwbGF5OmJsb2NrfS54LXBoX19hdXRoX2xpc3R7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW59LngtcGhfX2F1dGhfbGlzdF9zY3JvbGx7b3ZlcmZsb3cteTpzY3JvbGx9LngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfZXJyb3IgLngtcGhfX2F1dGhfbGlzdCwueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9sb2FkaW5nIC54LXBoX19hdXRoX2xpc3R7ZGlzcGxheTpub25lfS54LXBoX19hdXRoX2xpc3RfX2l0ZW17cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO2N1cnNvcjpwb2ludGVyO2hlaWdodDo0MHB4O2xpbmUtaGVpZ2h0OjQwcHg7cGFkZGluZzoxMnB4IDEycHggMTJweCA2MnB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNlZmVmZWY7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94IWltcG9ydGFudDtib3gtc2l6aW5nOmNvbnRlbnQtYm94IWltcG9ydGFudH0ueC1waF9fYXV0aF9saXN0X19pdGVtOmZpcnN0LWNoaWxke2JvcmRlcjowfS54LXBoX19hdXRoX2xpc3RfYWN0aXZlIC54LXBoX19hdXRoX2xpc3RfX2l0ZW17cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXRvcDowO3BhZGRpbmc6MTJweCAxMnB4IDhweCA3MnB4O2hlaWdodDo1MHB4O2xpbmUtaGVpZ2h0OjUwcHh9LngtcGhfX2F1dGhfbGlzdF9hY3RpdmUgLngtcGhfX2F1dGhfbGlzdF9faXRlbV9fYXZhdGFye2hlaWdodDo1MHB4O3dpZHRoOjUwcHg7LW1vei1ib3JkZXItcmFkaXVzOjI1cHg7Ym9yZGVyLXJhZGl1czoyNXB4O3RvcDoxMnB4O2xlZnQ6MTJweDtiYWNrZ3JvdW5kLWNvbG9yOiNjY2N9LngtcGhfX2F1dGhfbGlzdF9hY3RpdmUgLngtcGhfX2F1dGhfbGlzdF9faXRlbV9fYXZhdGFyX19zb2NpYWwsLngtcGhfX2F1dGhfbGlzdF9hY3RpdmUgLngtcGhfX2F1dGhfbGlzdF9faXRlbV9fYXZhdGFyX19jYW1lcmF7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweDtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrOy1tb3otYm9yZGVyLXJhZGl1czoxMnB4O2JvcmRlci1yYWRpdXM6MTJweDtyaWdodDotNXB4O2JvdHRvbTotNXB4fS54LXBoX19hdXRoX2xpc3RfYWN0aXZlIC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2F2YXRhcl9fY2FtZXJhe2JhY2tncm91bmQtY29sb3I6I2Y3ZjdmN30ueC1waF9fYXV0aF9saXN0X2FjdGl2ZSAueC1waF9fYXV0aF9saXN0X19pdGVtX19hdmF0YXJfX2NhbWVyYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDViZDF9LngtcGhfX2F1dGhfbGlzdF9hY3RpdmUgLngtcGhfX2F1dGhfbGlzdF9faXRlbV9fYXZhdGFyX19zb2NpYWw6YmVmb3JlLC54LXBoX19hdXRoX2xpc3RfYWN0aXZlIC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2F2YXRhcl9fY2FtZXJhOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7ei1pbmRleDoxfS54LXBoX19hdXRoX2xpc3RfYWN0aXZlIC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2F2YXRhcl9fY2FtZXJhOmFmdGVye2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOm5vbmUhaW1wb3J0YW50O2JvcmRlcjoycHggc29saWQgIzAwNWJkMTtoZWlnaHQ6NDlweDt3aWR0aDo0OXB4Oy1tb3otYm9yZGVyLXJhZGl1czoyN3B4O2JvcmRlci1yYWRpdXM6MjdweDt0b3A6LTMycHg7bGVmdDotMzJweDtjb250ZW50OicgJ30ueC1waF9fYXV0aF9saXN0X2FjdGl2ZSAueC1waF9fYXV0aF9saXN0X19pdGVtX19hdmF0YXJfX2NhbWVyYTpob3ZlcjphZnRlcntkaXNwbGF5OmJsb2NrfS54LXBoX19hdXRoX2xpc3RfYWN0aXZlIC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2xvZ291dHt0b3A6MDtwYWRkaW5nOjA7bWFyZ2luLWxlZnQ6MTBweH0ueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9zb2NpYWwgLngtcGhfX2F1dGhfbGlzdF9hY3RpdmV7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RlZGVkZX0ueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9zb2NpYWwgLngtcGhfX2F1dGhfbGlzdF9hY3RpdmUgLngtcGhfX2F1dGhfbGlzdF9faXRlbV9jdXJyZW50e3BhZGRpbmctYm90dG9tOjE1cHh9LngtcGhfX2F1dGhfbGlzdF9faXRlbTpsaW5rLC54LXBoX19hdXRoX2xpc3RfX2l0ZW06dmlzaXRlZCwueC1waF9fYXV0aF9saXN0X19pdGVtOmhvdmVyLC54LXBoX19hdXRoX2xpc3RfX2l0ZW06Zm9jdXMsLngtcGhfX2F1dGhfbGlzdF9faXRlbTphY3RpdmV7YmFja2dyb3VuZDojZjJmMmYyfS54LXBoX19hdXRoX2xpc3RfX2l0ZW1fY3VycmVudCwueC1waF9fYXV0aF9saXN0X19pdGVtX2N1cnJlbnQ6bGluaywueC1waF9fYXV0aF9saXN0X19pdGVtX2N1cnJlbnQ6dmlzaXRlZCwueC1waF9fYXV0aF9saXN0X19pdGVtX2N1cnJlbnQ6aG92ZXIsLngtcGhfX2F1dGhfbGlzdF9faXRlbV9jdXJyZW50OmZvY3VzLC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fY3VycmVudDphY3RpdmV7YmFja2dyb3VuZDojZjdmN2Y3O2N1cnNvcjpkZWZhdWx0fS54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2F2YXRhcntwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJSA1MCU7LW1vei1iYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LW1vei1ib3JkZXItcmFkaXVzOjIycHg7Ym9yZGVyLXJhZGl1czoyMnB4O3RvcDoxMnB4O2xlZnQ6MTJweDtoZWlnaHQ6NDBweDt3aWR0aDo0MHB4fS53LXgtcGhfX2F1dGhfbGlzdF9faXRlbV9faW5mb3tvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OjEwMCV9LngtcGhfX2F1dGhfbGlzdF9faXRlbV9faW5mb3t3aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtwYWRkaW5nOjA7dmVydGljYWwtYWxpZ246bWlkZGxlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2luZm9fX2VtYWlse21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nLXRvcDoycHh9LngtcGhfX2F1dGhfbGlzdF9faXRlbTpob3ZlciAueC1waF9fYXV0aF9saXN0X19pdGVtX19pbmZvX19lbWFpbCwueC1waF9fYXV0aF9saXN0X19pdGVtOmZvY3VzIC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2luZm9fX2VtYWlsLC54LXBoX19hdXRoX2xpc3RfX2l0ZW06YWN0aXZlIC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2luZm9fX2VtYWlsLC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fY3VycmVudCAueC1waF9fYXV0aF9saXN0X19pdGVtX19pbmZvX19lbWFpbCwueC1waF9fYXV0aF9saXN0X19pdGVtX2N1cnJlbnQ6bGluayAueC1waF9fYXV0aF9saXN0X19pdGVtX19pbmZvX19lbWFpbCwueC1waF9fYXV0aF9saXN0X19pdGVtX2N1cnJlbnQ6dmlzaXRlZCAueC1waF9fYXV0aF9saXN0X19pdGVtX19pbmZvX19lbWFpbCwueC1waF9fYXV0aF9saXN0X19pdGVtX2N1cnJlbnQ6aG92ZXIgLngtcGhfX2F1dGhfbGlzdF9faXRlbV9faW5mb19fZW1haWwsLngtcGhfX2F1dGhfbGlzdF9faXRlbV9jdXJyZW50OmZvY3VzIC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2luZm9fX2VtYWlsLC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fY3VycmVudDphY3RpdmUgLngtcGhfX2F1dGhfbGlzdF9faXRlbV9faW5mb19fZW1haWx7Y29sb3I6IzMzM30ueC1waF9fYXV0aF9saXN0X19pdGVtX19pbmZvX19lbWFpbF9fdGV4dHtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2ZvbnQ6MTVweC8yMHB4IEhlbHZldGljYU5ldWUsQXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMzMzfS54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2luZm9fX2xvZ291dHtwYWRkaW5nOjJweCAwO21hcmdpbi10b3A6N3B4O2NvbG9yOiMwMDViZDF9LngtcGhfX2F1dGhfbGlzdF9faXRlbV9faW5mb19fZW1haWxfX2NvdW50ZXJ7ZGlzcGxheTpub25lO2Zsb2F0OnJpZ2h0O3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmctbGVmdDo5cHg7Zm9udDoxM3B4LzE3cHggSGVsdmV0aWNhTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO3RvcDoxM3B4fS54LXBoLWZmLngtcGgtd2luIC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2luZm9fX2VtYWlsX19jb3VudGVye3RvcDowfS54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2luZm9fX2VtYWlsX19jb3VudGVyX3Zpc2libGV7ZGlzcGxheTpibG9ja30ueC1waF9fYXV0aF9saXN0X19pdGVtX19pbmZvX19lbWFpbF9fY291bnRlcl9fdGV4dHtjb2xvcjojMzMzO2ZvbnQ6MTNweC8xOHB4IEhlbHZldGljYU5ldWUsQXJpYWwsc2Fucy1zZXJpZn0ueC1waF9fYXV0aF9saXN0X19pdGVtX19pbmZvX19lbWFpbF9fY291bnRlcl9fdGV4dDpiZWZvcmV7bWFyZ2luOi00cHggNHB4IDAgMH0ueC1waF9fYXV0aF9saXN0X19pdGVtX19pbmZvX190ZXh0e21heC13aWR0aDoxMDAlO2NvbG9yOmdyYXk7Zm9udDoxM3B4LzE4cHggSGVsdmV0aWNhTmV1ZSxBcmlhbCxzYW5zLXNlcmlmfS54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2luZm9fX3RleHQ6YmVmb3Jle3ZlcnRpY2FsLWFsaWduOnRvcH0ueC1waF9fYXV0aF9saXN0X19pdGVtX2N1cnJlbnQgLngtcGhfX2F1dGhfbGlzdF9faXRlbV9faW5mb19fdGV4dCwueC1waF9fYXV0aF9saXN0X19pdGVtX2N1cnJlbnQ6bGluayAueC1waF9fYXV0aF9saXN0X19pdGVtX19pbmZvX190ZXh0LC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fY3VycmVudDp2aXNpdGVkIC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2luZm9fX3RleHQsLngtcGhfX2F1dGhfbGlzdF9faXRlbV9jdXJyZW50OmhvdmVyIC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2luZm9fX3RleHQsLngtcGhfX2F1dGhfbGlzdF9faXRlbV9jdXJyZW50OmZvY3VzIC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2luZm9fX3RleHQsLngtcGhfX2F1dGhfbGlzdF9faXRlbV9jdXJyZW50OmFjdGl2ZSAueC1waF9fYXV0aF9saXN0X19pdGVtX19pbmZvX190ZXh0e2NvbG9yOiM2NjZ9LngtcGhfX2F1dGhfbGlzdF9faXRlbV9fbG9nb3V0e2Rpc3BsYXk6bm9uZTtjb2xvcjojMDA1YmQxO2Zsb2F0OnJpZ2h0O3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6M3B4IDVweCAwO21hcmdpbi1yaWdodDotM3B4O29wYWNpdHk6MH0ueC1waF9fYXV0aF9saXN0X19pdGVtX19sb2dvdXQ6aG92ZXJ7Y29sb3I6I2ZmOWUwMH0ueC1waC1ub3QtZGVzayAueC1waF9fYXV0aF9saXN0X19pdGVtX19sb2dvdXR7ZGlzcGxheTpibG9jaztvcGFjaXR5OjF9LngtcGhfX2F1dGhfbGlzdF9faXRlbTpob3ZlciAueC1waF9fYXV0aF9saXN0X19pdGVtX19sb2dvdXQsLngtcGhfX2F1dGhfbGlzdF9faXRlbTpmb2N1cyAueC1waF9fYXV0aF9saXN0X19pdGVtX19sb2dvdXQsLngtcGhfX2F1dGhfbGlzdF9faXRlbTphY3RpdmUgLngtcGhfX2F1dGhfbGlzdF9faXRlbV9fbG9nb3V0e2Rpc3BsYXk6YmxvY2s7b3BhY2l0eToxfS54LXBoX19hdXRoX2xpc3RfX2l0ZW06aG92ZXIgLngtcGhfX2F1dGhfbGlzdF9faXRlbV9faW5mb19fZW1haWxfX2NvdW50ZXJfdmlzaWJsZSwueC1waF9fYXV0aF9saXN0X19pdGVtOmZvY3VzIC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2luZm9fX2VtYWlsX19jb3VudGVyX3Zpc2libGUsLngtcGhfX2F1dGhfbGlzdF9faXRlbTphY3RpdmUgLngtcGhfX2F1dGhfbGlzdF9faXRlbV9faW5mb19fZW1haWxfX2NvdW50ZXJfdmlzaWJsZXtkaXNwbGF5Om5vbmV9LngtcGhfX2F1dGhfbGlzdF9faXRlbSAueC1waF9fYXV0aF9saXN0X19pdGVtX19sb2dvdXQ6aG92ZXIsLngtcGhfX2F1dGhfbGlzdF9faXRlbSAueC1waF9fYXV0aF9saXN0X19pdGVtX19sb2dvdXQ6Zm9jdXMsLngtcGhfX2F1dGhfbGlzdF9faXRlbSAueC1waF9fYXV0aF9saXN0X19pdGVtX19sb2dvdXQ6YWN0aXZle2Rpc3BsYXk6YmxvY2s7b3BhY2l0eToxfS54LXBoX19hdXRoX2xpc3RfX2l0ZW1fY3VycmVudCAueC1waF9fYXV0aF9saXN0X19pdGVtX19sb2dvdXQsLngtcGhfX2F1dGhfbGlzdF9faXRlbV9jdXJyZW50OmxpbmsgLngtcGhfX2F1dGhfbGlzdF9faXRlbV9fbG9nb3V0LC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fY3VycmVudDp2aXNpdGVkIC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fX2xvZ291dCwueC1waF9fYXV0aF9saXN0X19pdGVtX2N1cnJlbnQ6aG92ZXIgLngtcGhfX2F1dGhfbGlzdF9faXRlbV9fbG9nb3V0LC54LXBoX19hdXRoX2xpc3RfX2l0ZW1fY3VycmVudDpmb2N1cyAueC1waF9fYXV0aF9saXN0X19pdGVtX19sb2dvdXQsLngtcGhfX2F1dGhfbGlzdF9faXRlbV9jdXJyZW50OmFjdGl2ZSAueC1waF9fYXV0aF9saXN0X19pdGVtX19sb2dvdXR7ZGlzcGxheTpibG9jaztvcGFjaXR5OjF9LngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2xvZ2lue2JvcmRlci10b3A6MXB4IHNvbGlkICNkZWRlZGU7bWFyZ2luLXRvcDotMXB4O3BhZGRpbmc6MTJweDtwb3NpdGlvbjpyZWxhdGl2ZX0ueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9lcnJvciAueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbG9naW4sLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfbG9hZGluZyAueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbG9naW4sLngtcGhfX21lbnVfYXV0aF9tdWx0aV9saW1pdCAueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbG9naW57ZGlzcGxheTpub25lfS54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19sb2dpbl9fbGluaywueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbG9naW5fX2xpbms6bGluaywueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbG9naW5fX2xpbms6dmlzaXRlZCwueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbG9naW5fX2xpbms6aG92ZXIsLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2xvZ2luX19saW5rOmFjdGl2ZSwueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbG9naW5fX2xpbms6Zm9jdXN7ZGlzcGxheTpibG9jazttYXgtd2lkdGg6MzEwcHg7aGVpZ2h0OjMwcHg7bWFyZ2luOjAgYXV0bztjb2xvcjojZmZmO291dGxpbmU6bm9uZTtmb250OjE1cHgvMzBweCBIZWx2ZXRpY2FOZXVlLEFyaWFsLHNhbnMtc2VyaWY7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7cGFkZGluZzowfS54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19sb2dpbl9fbGluayAueC1waF9fYnV0dG9uX19mYWtle2Rpc3BsYXk6YmxvY2s7Zm9udC1mYW1pbHk6SGVsdmV0aWNhTmV1ZSxBcmlhbCxzYW5zLXNlcmlmfS54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19sb2dpbl9fbGluayAueC1waF9fYnV0dG9uX19mYWtlX190ZXh0e2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb3twb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmNlbnRlcjtmb250OjEycHgvMThweCBIZWx2ZXRpY2FOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Y29sb3I6IzY2Nn0ueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9lcnJvciAueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mbywueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9sb2FkaW5nIC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvLC54LXBoX19tZW51X2F1dGhfbXVsdGkgLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2luZm97ZGlzcGxheTpub25lfS54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rLC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rOmxpbmssLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2luZm9fX2xpbms6dmlzaXRlZCwueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGluazpob3ZlciwueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGluazpmb2N1cywueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGluazphY3RpdmV7ZGlzcGxheTpibG9jaztmb250OjEzcHgvMTZweCBIZWx2ZXRpY2FOZXVlLEFyaWFsLHNhbnMtc2VyaWY7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWJvdHRvbToxMnB4O3RleHQtZGVjb3JhdGlvbjpub25lfS54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rIC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rX190ZXh0LC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rOmxpbmsgLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2luZm9fX2xpbmtfX3RleHQsLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2luZm9fX2xpbms6dmlzaXRlZCAueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGlua19fdGV4dCwueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGluazpob3ZlciAueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGlua19fdGV4dCwueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGluazpmb2N1cyAueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGlua19fdGV4dCwueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGluazphY3RpdmUgLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2luZm9fX2xpbmtfX3RleHR7Y29sb3I6IzY2Njt0ZXh0LWRlY29yYXRpb246bm9uZX0ueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGluayAueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGlua19fbGluaywueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGluazpsaW5rIC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rX19saW5rLC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rOnZpc2l0ZWQgLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2luZm9fX2xpbmtfX2xpbmssLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2luZm9fX2xpbms6aG92ZXIgLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2luZm9fX2xpbmtfX2xpbmssLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2luZm9fX2xpbms6YWN0aXZlIC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rX19saW5rLC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rOmZvY3VzIC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rX19saW5re2NvbG9yOiMwMDViZDE7b3V0bGluZTpub25lO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZX0ueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGluazpob3ZlciAueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGlua19fbGluaywueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGluazphY3RpdmUgLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2luZm9fX2xpbmtfX2xpbmssLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2luZm9fX2xpbms6Zm9jdXMgLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2luZm9fX2xpbmtfX2xpbmt7Y29sb3I6I2ZmOWUwMH0ueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbGlua3N7YmFja2dyb3VuZDojZjdmN2Y3O3BhZGRpbmctbGVmdDo2MXB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZWRlZGV9LngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfc29jaWFsIC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19saW5rcywueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9lcnJvciAueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbGlua3MsLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfbG9hZGluZyAueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbGlua3N7ZGlzcGxheTpub25lfS54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19saW5rc19fbGlua3tkaXNwbGF5OmJsb2NrO21hcmdpbjowO3BhZGRpbmc6N3B4IDEycHg7Zm9udDoxM3B4LzE1cHggSGVsdmV0aWNhTmV1ZSxBcmlhbCxzYW5zLXNlcmlmfS54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19saW5rc19fbGluazpsaW5rLC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19saW5rc19fbGluazp2aXNpdGVke2NvbG9yOiMzMzM7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2xpbmtzX19saW5rOmhvdmVyLC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19saW5rc19fbGluazpmb2N1cywueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbGlua3NfX2xpbms6YWN0aXZle2JhY2tncm91bmQ6I2RlZGVkZTt0ZXh0LWRlY29yYXRpb246bm9uZX0ueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbGlua3NfX2xpbmtfX3RleHR7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbGlua3NfX2xpbmtfX3N1YnRleHR7Zm9udC1zaXplOjExcHg7Y29sb3I6IzY2NjtsaW5lLWhlaWdodDoxM3B4O21hcmdpbi10b3A6NnB4O2Rpc3BsYXk6YmxvY2t9LngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2xpbmtzX19zZXB7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RlZGVkZX0ueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbG9naW5fYWRkYWNjb3VudHt0ZXh0LWFsaWduOmxlZnR9LngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2xvZ2luX2FkZGFjY291bnQgLngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2luZm9fX2xpbms6bGluaywueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbG9naW5fYWRkYWNjb3VudCAueC1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9faW5mb19fbGluazp2aXNpdGVkLC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19sb2dpbl9hZGRhY2NvdW50IC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rOmhvdmVyLC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19sb2dpbl9hZGRhY2NvdW50IC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rOmZvY3VzLC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19sb2dpbl9hZGRhY2NvdW50IC54LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rOmFjdGl2ZXt0ZXh0LWFsaWduOmxlZnQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWJvdHRvbTo1cHh9Lngtdy1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbG9naW5fX2xpbmt7ZGlzcGxheTpub25lfS54LXBoX19tZW51X2F1dGhfbXVsdGkgLngtdy1waF9fbWVudV9fZHJvcGRvd25fYXV0aF9fbG9naW5fX2xpbmt7ZGlzcGxheTpibG9ja30ueC1waC1hZGRhY2NvdW50e21hcmdpbi1yaWdodDoyMHB4O2Rpc3BsYXk6YmxvY2s7LW1vei1ib3JkZXItcmFkaXVzOjI0cHg7Ym9yZGVyLXJhZGl1czoyNHB4O2hlaWdodDo0N3B4O3dpZHRoOjQ3cHg7YmFja2dyb3VuZDojMDA1ZmY5O3Bvc2l0aW9uOnJlbGF0aXZlO2Zsb2F0OmxlZnR9LngtcGgtYWRkYWNjb3VudDphZnRlciwueC1waC1hZGRhY2NvdW50OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2NvbnRlbnQ6Jyc7aGVpZ2h0OjlweDt3aWR0aDo5cHg7Ym9yZGVyOjAgc29saWQgI2ZmZn0ueC1waC1hZGRhY2NvdW50OmJlZm9yZXt0b3A6MTNweDtsZWZ0OjEzcHg7Ym9yZGVyLXdpZHRoOjAgM3B4IDNweCAwO2NvbnRlbnQ6IiAifS54LXBoLWFkZGFjY291bnQ6YWZ0ZXJ7Ym9yZGVyLXdpZHRoOjNweCAwIDAgM3B4O3RvcDoyMnB4O2xlZnQ6MjJweDtjb250ZW50OiIgIn0ueC1waC1hZGRhY2NvdW50LXRleHQ6bGlua3tmb250LXNpemU6MTVweDtwYWRkaW5nLXRvcDo1cHg7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW59LngtcGgtYWRkYWNjb3VudC10ZXh0OmxpbmssLngtcGgtYWRkYWNjb3VudC10ZXh0OmhvdmVyLC54LXBoLWFkZGFjY291bnQtdGV4dDphY3RpdmUsLngtcGgtYWRkYWNjb3VudC10ZXh0OnZpc2l0ZWR7Y29sb3I6IzAwMDt0ZXh0LWRlY29yYXRpb246bm9uZX0ueC1waF9fb3ZlcmxheXtkaXNwbGF5Om5vbmU7cG9zaXRpb246Zml4ZWQ7X3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjEwMDAwO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDojMDAwO29wYWNpdHk6LjQ7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApfS54LXBoX19vdmVybGF5X3Zpc2libGV7ZGlzcGxheTpibG9ja30udy14LXBoX19wb3B1cHtkaXNwbGF5Om5vbmU7Zm9udDowLzAgYTtoZWlnaHQ6MH0udy14LXBoX19wb3B1cF92aXNpYmxle2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ei1pbmRleDoxMDAwMX0udy14LXBoX19wb3B1cF9fbGF5b3V0e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjEwMDAxO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Zm9udDoxM3B4LzE2cHggQXJpYWwsc2Fucy1zZXJpZjtib3JkZXItc3BhY2luZzowO2JvcmRlcjowfS53LXgtcGhfX3BvcHVwX19sYXlvdXRfX3ZhbGlnbntwYWRkaW5nOjA7dmVydGljYWwtYWxpZ246bWlkZGxlfS54LXBoX19wb3B1cHtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MCBhdXRvO3dpZHRoOjMyMHB4O2NvbG9yOiMyMjI7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2Q5ZDlkOTstbW96LWJvcmRlci1yYWRpdXM6NHB4O2JvcmRlci1yYWRpdXM6NHB4Oy1tb3otYm94LXNoYWRvdzowIDRweCA5cHggcmdiYSgwLDAsMCwuMyk7Ym94LXNoYWRvdzowIDRweCA5cHggcmdiYSgwLDAsMCwuMyl9LncteC1waF9fcG9wdXBfX3RpdGxle3BhZGRpbmc6MjVweCAyNXB4IDE1cHh9LngtcGhfX3BvcHVwX190aXRsZXt3aWR0aDoxMDAlO2NvbG9yOiMwMDA7Zm9udDoxOHB4LzIycHggQXJpYWwsc2Fucy1zZXJpZjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXB9LngtcGhfX3BvcHVwX19jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCAyNXB4IDIwcHh9LngtcGhfX3BvcHVwX19jb250ZW50X19wcmVsb2FkZXJ7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjEwO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7YmFja2dyb3VuZC1pbWFnZTp1cmwoImh0dHBzOi8vaW1nLmltZ3NtYWlsLnJ1L3BoLzAuNjUuMzUvbG9hZGVyLmdpZiIpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXJ9LngtcGhfX3BvcHVwX19jb250ZW50X3ByZWxvYWRlcl92aXNpYmxlIC54LXBoX19wb3B1cF9fY29udGVudF9fcHJlbG9hZGVye2Rpc3BsYXk6YmxvY2t9LngtcGhfX3BvcHVwX19mb290ZXJ7cGFkZGluZzoxNHB4IDI1cHggMTVweDtib3JkZXItdG9wOjFweCBzb2xpZCAjZTVlNWU1Oy1tb3otYm9yZGVyLXJhZGl1czowIDAgNHB4IDRweDtib3JkZXItcmFkaXVzOjAgMCA0cHggNHB4O2JhY2tncm91bmQ6I2YyZjJmMn0ueC1waF9fcG9wdXBfX2Zvb3Rlcl9fY29udHJvbHN7d2lkdGg6MTAwJTtoZWlnaHQ6MzBweDtsaW5lLWhlaWdodDozMHB4fS54LXBoX19wb3B1cF9fZm9vdGVyX19jb250cm9sc19fY29sOmFmdGVye2NvbnRlbnQ6JyAnO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDozMHB4O2xpbmUtaGVpZ2h0OjMwcHg7dmVydGljYWwtYWxpZ246bWlkZGxlO3Zpc2liaWxpdHk6aGlkZGVufS54LXBoX19wb3B1cF9fZm9vdGVyX19jb250cm9sc19fY29sX2xlZnR7ZmxvYXQ6bGVmdDt0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZy1yaWdodDoxMHB4fS54LXBoX19wb3B1cF9fZm9vdGVyX19jb250cm9sc19fY29sX3JpZ2h0e2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246cmlnaHR9LngtcGhfX3BvcHVwX19mb290ZXJfX2NvbnRyb2xzX19pdGVte21hcmdpbi1yaWdodDoxN3B4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ueC1waF9fcG9wdXBfX2Zvb3Rlcl9fY29udHJvbHNfX2l0ZW1fbGFzdHttYXJnaW4tcmlnaHQ6MH0ueC1waF9fcG9wdXBfX2Zvb3Rlcl9fY29udHJvbHNfX2l0ZW1fbGluaywueC1waF9fcG9wdXBfX2Zvb3Rlcl9fY29udHJvbHNfX2l0ZW1fbGluazpsaW5rLC54LXBoX19wb3B1cF9fZm9vdGVyX19jb250cm9sc19faXRlbV9saW5rOnZpc2l0ZWQsLngtcGhfX3BvcHVwX19mb290ZXJfX2NvbnRyb2xzX19pdGVtX2xpbms6aG92ZXIsLngtcGhfX3BvcHVwX19mb290ZXJfX2NvbnRyb2xzX19pdGVtX2xpbms6Zm9jdXMsLngtcGhfX3BvcHVwX19mb290ZXJfX2NvbnRyb2xzX19pdGVtX2xpbms6YWN0aXZle2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjtjb2xvcjojMDAwO2ZvbnQtc2l6ZToxM3B4O2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS54LXBoX19wb3B1cF9fZm9vdGVyX19jb250cm9sc19faXRlbV9saW5rOmhvdmVyLC54LXBoX19wb3B1cF9fZm9vdGVyX19jb250cm9sc19faXRlbV9saW5rOmZvY3VzLC54LXBoX19wb3B1cF9fZm9vdGVyX19jb250cm9sc19faXRlbV9saW5rOmFjdGl2ZXtjb2xvcjojZjM3ODIzfS54LXBoX19wb3B1cF9fZm9vdGVyX19jb250cm9sc19faXRlbV9saW5rX190ZXh0e3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LngtcGhfX3BvcHVwX19mb290ZXJfX2NvbnRyb2xzX19pdGVtX190ZXh0e2NvbG9yOiMwMDA7Zm9udC1zaXplOjEzcHh9LngtcGhfX3BvcHVwX19jbG9zZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7Y3Vyc29yOnBvaW50ZXJ9LngtcGhfX3BvcHVwX19jbG9zZV9faWNvbnttYXJnaW4tdG9wOjE4cHg7bWFyZ2luLWxlZnQ6OHB4O3dpZHRoOjhweDtoZWlnaHQ6OHB4O3RleHQtaW5kZW50Oi05OTllbTtiYWNrZ3JvdW5kOnVybCgiLy9pbWcuaW1nc21haWwucnUvcC9wb3B1cC9jbG9zZS52Mi5wbmciKSBuby1yZXBlYXQgMCAwO292ZXJmbG93OmhpZGRlbn0ueC1waF9fcG9wdXBfX2Nsb3NlOmhvdmVyIC54LXBoX19wb3B1cF9fY2xvc2VfX2ljb24sLngtcGhfX3BvcHVwX19jbG9zZTpmb2N1cyAueC1waF9fcG9wdXBfX2Nsb3NlX19pY29uLC54LXBoX19wb3B1cF9fY2xvc2U6YWN0aXZlIC54LXBoX19wb3B1cF9fY2xvc2VfX2ljb257YmFja2dyb3VuZC1wb3NpdGlvbjowIC05cHh9LncteC1waF9fZm9ybV9fcm93e21hcmdpbi1ib3R0b206MjBweDtwb3NpdGlvbjpyZWxhdGl2ZX0udy14LXBoX19mb3JtX19yb3dfbGFzdHttYXJnaW4tYm90dG9tOjB9LncteC1waF9fZm9ybV9fcm93X29hdXRoe2Rpc3BsYXk6bm9uZTtoZWlnaHQ6NjJweDtvdmVyZmxvdzpoaWRkZW59LncteC1waF9fZm9ybV9fcm93X19jb2x7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6NTAlfS53LXgtcGhfX2Zvcm1fX3Jvd19fY29sX2xlZnR7dGV4dC1hbGlnbjpsZWZ0fS53LXgtcGhfX2Zvcm1fX3Jvd19fY29sX3JpZ2h0e3RleHQtYWxpZ246cmlnaHR9LngtcGhfX2Zvcm1fX2xpbmssLngtcGhfX2Zvcm1fX2xpbms6bGluaywueC1waF9fZm9ybV9fbGluazp2aXNpdGVkLC54LXBoX19mb3JtX19saW5rOmhvdmVyLC54LXBoX19mb3JtX19saW5rOmFjdGl2ZSwueC1waF9fZm9ybV9fbGluazpmb2N1c3tjb2xvcjojMDA1YmQxO3RleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQ6MTJweC8xNnB4IEFyaWFsLHNhbnMtc2VyaWZ9LngtcGhfX2Zvcm1fX2xpbms6aG92ZXIsLngtcGhfX2Zvcm1fX2xpbms6Zm9jdXMsLngtcGhfX2Zvcm1fX2xpbms6YWN0aXZle2NvbG9yOiNmZjllMDB9LngtcGhfX2Zvcm1fX3NlbGVjdHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO2N1cnNvcjpkZWZhdWx0O292ZXJmbG93OmhpZGRlbjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LngtcGhfX2Zvcm1fX3NlbGVjdF9fZWxlbWVudHtwb3NpdGlvbjphYnNvbHV0ZTttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6MjZweDtsZWZ0OjA7cmlnaHQ6MDt0b3A6MDtib3R0b206MDtvcGFjaXR5OjA7ei1pbmRleDoyO2ZpbHRlcjphbHBoYShvcGFjaXR5PTApOy13ZWJraXQtYXBwZWFyYW5jZTptZW51bGlzdC1idXR0b259LngtcGhfX2Zvcm1fX3NlbGVjdF9fYm94e2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MjZweDtwYWRkaW5nOjRweCAyMHB4IDJweCA5cHg7Zm9udDoxMnB4LzE2cHggQXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMzMzO2JvcmRlcjoxcHggc29saWQgI2M2YzZjNjstbW96LWJvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1yYWRpdXM6MnB4Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kLWNvbG9yOiNlZGVkZWQ7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCNmZmYpLHRvKCNlZGVkZWQpKTtiYWNrZ3JvdW5kLWltYWdlOi1tb3otIG9sZGxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiwjZWRlZGVkKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2ZmZiwjZWRlZGVkKTt3aGl0ZS1zcGFjZTpub3dyYXB9LngtcGhfX2Zvcm1fX3NlbGVjdF9ob3ZlciAueC1waF9fZm9ybV9fc2VsZWN0X19ib3h7YmFja2dyb3VuZC1jb2xvcjojZjRmNGY0O2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjZmZmKSx0bygjZjRmNGY0KSk7YmFja2dyb3VuZC1pbWFnZTotbW96LSBvbGRsaW5lYXItZ3JhZGllbnQodG9wLCNmZmYsI2Y0ZjRmNCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCNmZmYsI2Y0ZjRmNCk7b3V0bGluZTpub25lfS54LXBoX19mb3JtX19zZWxlY3RfZm9jdXMgLngtcGhfX2Zvcm1fX3NlbGVjdF9fYm94e2JhY2tncm91bmQtY29sb3I6I2Q4ZGFkYztiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oI2ZmZiksdG8oI2Q4ZGFkYykpO2JhY2tncm91bmQtaW1hZ2U6LW1vei0gb2xkbGluZWFyLWdyYWRpZW50KHRvcCwjZmZmLCNkOGRhZGMpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZmZmLCNkOGRhZGMpO291dGxpbmU6bm9uZX0ueC1waF9fZm9ybV9fc2VsZWN0X2hvdmVyIC54LXBoX19mb3JtX19zZWxlY3RfX2JveCwueC1waF9fZm9ybV9fY29tYm9faG92ZXIgLngtcGhfX2Zvcm1fX3NlbGVjdF9fYm94e2JvcmRlci1jb2xvcjojOTk5fS54LXBoX19mb3JtX19zZWxlY3RfZm9jdXMgLngtcGhfX2Zvcm1fX3NlbGVjdF9fYm94LC54LXBoX19mb3JtX19jb21ib19mb2N1cyAueC1waF9fZm9ybV9fc2VsZWN0X19ib3h7Ym9yZGVyLWNvbG9yOiM4NWI4ZWJ9LngtcGhfX2Zvcm1fX3NlbGVjdF9lcnJvciAueC1waF9fZm9ybV9fc2VsZWN0X19ib3gsLngtcGhfX2Zvcm1fX2NvbWJvX2Vycm9yIC54LXBoX19mb3JtX19zZWxlY3RfX2JveHtib3JkZXItY29sb3I6I2NlMTkwMH0ueC1waF9fZm9ybV9fc2VsZWN0X19ib3hfX3RleHR7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ueC1waF9fZm9ybV9fc2VsZWN0X19hcnJvd3tkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMXB4O3JpZ2h0OjhweDtib3JkZXItY29sb3I6IzAwMCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOjRweCA0cHggMDt6LWluZGV4OjF9LngtcGhfX2Zvcm1fX2lucHV0e2Rpc3BsYXk6YmxvY2s7Y3Vyc29yOnRleHQ7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO292ZXJmbG93OmhpZGRlbjtib3JkZXI6MXB4IHNvbGlkICNjNmM2YzY7LW1vei1ib3JkZXItcmFkaXVzOjJweDtib3JkZXItcmFkaXVzOjJweDstbW96LWJveC1zaGFkb3c6aW5zZXQgMXB4IDFweCA0cHggcmdiYSgwLDAsMCwuMTcpO2JveC1zaGFkb3c6aW5zZXQgMXB4IDFweCA0cHggcmdiYSgwLDAsMCwuMTcpO2JhY2tncm91bmQ6I2ZmZjtmbG9hdDpub25lO3RvcDowO21hcmdpbjowfS53LXgtcGhfX2Zvcm1fX2lucHV0e2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjI0cHg7cGFkZGluZy1yaWdodDoxMnB4O292ZXJmbG93OmhpZGRlbn0ueC1waF9fZm9ybV9faW5wdXRfX3BsYWNlaG9sZGVye2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NXB4O2xlZnQ6N3B4O2NvbG9yOiM5OTk7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3doaXRlLXNwYWNlOm5vd3JhcDtmb250OjEzcHgvMTZweCBBcmlhbCxzYW5zLXNlcmlmfS54LXBoX19mb3JtX19pbnB1dF9fdGV4dHtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjE2cHg7bWFyZ2luOjA7cGFkZGluZzo0cHggNnB4Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JvcmRlcjowOy1tb3otYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojMzMzO2ZvbnQ6MTNweC8xNnB4IEFyaWFsLHNhbnMtc2VyaWY7YmFja2dyb3VuZDowIDA7b3V0bGluZTpub25lO2N1cnNvcjp0ZXh0fS54LXBoX19mb3JtX19pbnB1dF9ob3ZlciwueC1waF9fZm9ybV9fY29tYm9faG92ZXIgLngtcGhfX2Zvcm1fX2lucHV0e2JvcmRlci1jb2xvcjojOTk5fS54LXBoX19mb3JtX19pbnB1dF9mb2N1cywueC1waF9fZm9ybV9fY29tYm9fZm9jdXMgLngtcGhfX2Zvcm1fX2lucHV0e2JvcmRlci1jb2xvcjojODViOGVifS54LXBoX19mb3JtX19pbnB1dF9lcnJvciwueC1waF9fZm9ybV9fY29tYm9fZXJyb3IgLngtcGhfX2Zvcm1fX2lucHV0e2JvcmRlci1jb2xvcjojY2UxOTAwIWltcG9ydGFudH0ueC1waF9fZm9ybV9faW5wdXRfX3RleHQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6Izk5OX0ueC1waF9fZm9ybV9faW5wdXRfX3RleHQ6LW1vei1wbGFjZWhvbGRlcntjb2xvcjojOTk5fS54LXBoX19mb3JtX19jb21ibyAueC1waF9fZm9ybV9faW5wdXR7b3ZlcmZsb3c6aGlkZGVufS54LXBoX19mb3JtX19jb21ibyAueC1waF9fZm9ybV9faW5wdXR7LXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowOy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDstbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6MDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6MDstbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowOy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLXJpZ2h0LWNvbG9yOiNjNmM2YzZ9LngtcGhfX2Zvcm1fX2NvbWJvIC54LXBoX19mb3JtX19zZWxlY3R7ZmxvYXQ6cmlnaHQ7bWF4LXdpZHRoOjUwJX0ueC1waF9fZm9ybV9fY29tYm8gLngtcGhfX2Zvcm1fX3NlbGVjdF9fYm94ey13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowOy13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOy1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjA7LW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDstbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItbGVmdDowfS54LXBoX19mb3JtX19jaGVja2JveHt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1ib3R0b206LTJweH0ueC1waF9fZm9ybV9fY2hlY2tib3hfX2lucHV0e3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6Mjt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttYXJnaW46MDtvcGFjaXR5OjA7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MCk7b3V0bGluZTowfS54LXBoX19mb3JtX19jaGVja2JveF9fY2hlY2ttYXJre3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTt3aWR0aDoxMHB4O2hlaWdodDoxMHB4O2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojOTk5O2ZvbnQ6MC8wIGE7LW1vei1ib3JkZXItcmFkaXVzOjJweDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZWZlZmV9LngtcGhfX2Zvcm1fX2NoZWNrYm94X2ZvY3VzIC54LXBoX19mb3JtX19jaGVja2JveF9fY2hlY2ttYXJre2JvcmRlci1jb2xvcjojODViOGVifS54LXBoX19mb3JtX19jaGVja2JveF9ob3ZlciAueC1waF9fZm9ybV9fY2hlY2tib3hfX2NoZWNrbWFya3tib3JkZXItY29sb3I6IzMzM30ueC1waF9fZm9ybV9fY2hlY2tib3hfX2NoZWNrbWFya19fdntkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxO3RvcDotMXB4O2xlZnQ6MDt3aWR0aDoxNHB4O2hlaWdodDoxMHB4O2JvcmRlcjowO2JhY2tncm91bmQ6dXJsKCJodHRwczovL2ltZy5pbWdzbWFpbC5ydS9waC8wLjY1LjM1L2F1dGhGb3JtL2ljb25zLnBuZyIpIG5vLXJlcGVhdCAwIDA7LW1vei1iYWNrZ3JvdW5kLXNpemU6MjBweCBhdXRvO2JhY2tncm91bmQtc2l6ZToyMHB4IGF1dG99LngtcGhfX2Zvcm1fX2NoZWNrYm94X2NoZWNrZWQgLngtcGhfX2Zvcm1fX2NoZWNrYm94X19jaGVja21hcmtfX3Z7ZGlzcGxheTpibG9ja30ueC1waF9fZm9ybV9fbGFiZWx7Zm9udDoxMnB4LzE2cHggQXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojOTk5Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtmbG9hdDpub25lO3RvcDowO21hcmdpbjowfS54LXBoX19mb3JtX19tZXNzYWdle2Rpc3BsYXk6bm9uZTtjb2xvcjojOTk5O2ZvbnQ6MTJweC8xNnB4IEFyaWFsLHNhbnMtc2VyaWZ9LngtcGhfX2Zvcm1fX21lc3NhZ2VfZXJyb3J7Y29sb3I6I2VhMDAwMH0ueC1waF9fZm9ybV9fbWVzc2FnZV9vYXV0aHtkaXNwbGF5OmJsb2NrO2NvbG9yOiMzMzN9LngtcGhfX3BvcHVwX2F1dGhGb3Jte3dpZHRoOjM5NnB4fS54LXBoX19mb3JtX19jaGVja2JveHttYXJnaW4tcmlnaHQ6NnB4fS54LXBoX19hdXRoRm9ybV9fZG9tYWluc3tkaXNwbGF5Om5vbmU7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2YyZjJmMn0ueC1waF9fYXV0aEZvcm1fX2RvbWFpbnNfX2xpc3R7dGV4dC1hbGlnbjpqdXN0aWZ5O2ZvbnQtc2l6ZToycHh9LngtcGhfX2F1dGhGb3JtX19kb21haW5zX19saXN0X19sZWd7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjE4cHg7d2lkdGg6ODAlO292ZXJmbG93OmhpZGRlbn0ueC1waF9fYXV0aEZvcm1fX2RvbWFpbnNfX2xpc3RfX2l0ZW17ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OjI2cHg7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtwYWRkaW5nOjJweDtvdmVyZmxvdzpoaWRkZW47dmVydGljYWwtYWxpZ246bWlkZGxlOy1tb3otYm9yZGVyLXJhZGl1czozcHg7Ym9yZGVyLXJhZGl1czozcHg7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCUgNTAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtjb2xvcjojMDAwO2ZvbnQ6MTNweC8xOHB4IEFyaWFsLHNhbnMtc2VyaWY7dGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOnBvaW50ZXJ9LngtcGhfX2F1dGhGb3JtX19kb21haW5zX19saXN0X19pdGVtX3NlbGVjdGVkLC54LXBoX19hdXRoRm9ybV9fZG9tYWluc19fbGlzdF9faXRlbV9zZWxlY3RlZDpsaW5rLC54LXBoX19hdXRoRm9ybV9fZG9tYWluc19fbGlzdF9faXRlbV9zZWxlY3RlZDp2aXNpdGVkLC54LXBoX19hdXRoRm9ybV9fZG9tYWluc19fbGlzdF9faXRlbV9zZWxlY3RlZDpob3ZlciwueC1waF9fYXV0aEZvcm1fX2RvbWFpbnNfX2xpc3RfX2l0ZW1fc2VsZWN0ZWQ6Zm9jdXMsLngtcGhfX2F1dGhGb3JtX19kb21haW5zX19saXN0X19pdGVtX3NlbGVjdGVkOmFjdGl2ZSwueC1waF9fYXV0aEZvcm1fX2RvbWFpbnNfX2xpc3RfX2l0ZW06aG92ZXIsLngtcGhfX2F1dGhGb3JtX19kb21haW5zX19saXN0X19pdGVtOmZvY3VzLC54LXBoX19hdXRoRm9ybV9fZG9tYWluc19fbGlzdF9faXRlbTphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZmZmOy1tb3otYm94LXNoYWRvdzowIDFweCAxcHggcmdiYSgwLDAsMCwuMSk7Ym94LXNoYWRvdzowIDFweCAxcHggcmdiYSgwLDAsMCwuMSk7b3V0bGluZTpub25lfS54LXBoX19hdXRoRm9ybV9fZG9tYWluc19fbGlzdF9faXRlbTpob3Zlcntib3JkZXItY29sb3I6I2VjZWNlY30ueC1waF9fYXV0aEZvcm1fX2RvbWFpbnNfX2xpc3RfX2l0ZW06Zm9jdXMsLngtcGhfX2F1dGhGb3JtX19kb21haW5zX19saXN0X19pdGVtOmFjdGl2ZXtib3JkZXItY29sb3I6Izg1YjhlYn0ueC1waF9fYXV0aEZvcm1fX2RvbWFpbnNfX2xpc3RfX2l0ZW1fc2VsZWN0ZWQsLngtcGhfX2F1dGhGb3JtX19kb21haW5zX19saXN0X19pdGVtX3NlbGVjdGVkOmxpbmssLngtcGhfX2F1dGhGb3JtX19kb21haW5zX19saXN0X19pdGVtX3NlbGVjdGVkOnZpc2l0ZWQsLngtcGhfX2F1dGhGb3JtX19kb21haW5zX19saXN0X19pdGVtX3NlbGVjdGVkOmhvdmVyLC54LXBoX19hdXRoRm9ybV9fZG9tYWluc19fbGlzdF9faXRlbV9zZWxlY3RlZDpmb2N1cywueC1waF9fYXV0aEZvcm1fX2RvbWFpbnNfX2xpc3RfX2l0ZW1fc2VsZWN0ZWQ6YWN0aXZle2JvcmRlci1jb2xvcjojYzdjN2M3O2N1cnNvcjpkZWZhdWx0fS54LXBoX19hdXRoRm9ybV9fZG9tYWluc19fbGlzdF9faXRlbV9zZWxlY3RlZDpmb2N1cywueC1waF9fYXV0aEZvcm1fX2RvbWFpbnNfX2xpc3RfX2l0ZW1fc2VsZWN0ZWQ6YWN0aXZle2JvcmRlci1jb2xvcjojODViOGVifS54LXBoX19hdXRoRm9ybV9fZG9tYWluc19fbGlzdF9faXRlbV9vdGhlcnt0ZXh0LWluZGVudDowfS54LXBoX19hdXRoRm9ybV9fZG9tYWluc19fbGlzdF9faXRlbV9leHRlcm5hbHtkaXNwbGF5Om5vbmV9LncteC1waF9fYXV0aEZvcm1fX2RvbWFpbnNfX2xpc3RfX2l0ZW17ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246bWlkZGxlO3BhZGRpbmc6NHB4O2JhY2tncm91bmQtcG9zaXRpb246NTAlIDUwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7aGVpZ2h0OjE4cHh9LncteC1waF9fYXV0aEZvcm1fX2RvbWFpbnNfX2xpc3RfX2l0ZW1fbWFpbHJ1e3BhZGRpbmctcmlnaHQ6NnB4O3BhZGRpbmctbGVmdDo2cHg7LW1vei1ib3JkZXItcmFkaXVzOjJweDtib3JkZXItcmFkaXVzOjJweDt3aWR0aDo2MnB4O2JhY2tncm91bmQtaW1hZ2U6dXJsKCJodHRwczovL2ltZy5pbWdzbWFpbC5ydS9waC8wLjY1LjM1L2F1dGhGb3JtL2xvZ28vbWFpbC5ydS5wbmciKTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDVmZjk7LW1vei1iYWNrZ3JvdW5kLXNpemU6NjJweCAxM3B4O2JhY2tncm91bmQtc2l6ZTo2MnB4IDEzcHh9LncteC1waF9fYXV0aEZvcm1fX2RvbWFpbnNfX2xpc3RfX2l0ZW1feWFuZGV4cnV7d2lkdGg6NDVweDtiYWNrZ3JvdW5kLWltYWdlOnVybCgiaHR0cHM6Ly9pbWcuaW1nc21haWwucnUvcGgvMC42NS4zNS9hdXRoRm9ybS9sb2dvL3lhbmRleC5ydS5wbmciKTstbW96LWJhY2tncm91bmQtc2l6ZTo0NXB4IDE3cHg7YmFja2dyb3VuZC1zaXplOjQ1cHggMTdweH0udy14LXBoX19hdXRoRm9ybV9fZG9tYWluc19fbGlzdF9faXRlbV9yYW1ibGVycnV7d2lkdGg6NTlweDtiYWNrZ3JvdW5kLWltYWdlOnVybCgiaHR0cHM6Ly9pbWcuaW1nc21haWwucnUvcGgvMC42NS4zNS9hdXRoRm9ybS9sb2dvL3JhbWJsZXIucnUucG5nIik7LW1vei1iYWNrZ3JvdW5kLXNpemU6NTlweCAxOHB4O2JhY2tncm91bmQtc2l6ZTo1OXB4IDE4cHh9LncteC1waF9fYXV0aEZvcm1fX2RvbWFpbnNfX2xpc3RfX2l0ZW1fZ21haWxjb217d2lkdGg6NDhweDtiYWNrZ3JvdW5kLWltYWdlOnVybCgiaHR0cHM6Ly9pbWcuaW1nc21haWwucnUvcGgvMC42NS4zNS9hdXRoRm9ybS9sb2dvL2dtYWlsLmNvbS5wbmciKTstbW96LWJhY2tncm91bmQtc2l6ZTo0OHB4IDE3cHg7YmFja2dyb3VuZC1zaXplOjQ4cHggMTdweH1AbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MS4yNSksb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86MS4yNSksb25seSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOjIpLG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246MTIwZHBpKSxvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOjEuMjVkcHB4KXsudy14LXBoX19hdXRoRm9ybV9fZG9tYWluc19fbGlzdF9faXRlbV9tYWlscnV7YmFja2dyb3VuZC1pbWFnZTp1cmwoImh0dHBzOi8vaW1nLmltZ3NtYWlsLnJ1L3BoLzAuNjUuMzUvYXV0aEZvcm0vbG9nby9tYWlsLnJ1QHgyLnBuZyIpfS53LXgtcGhfX2F1dGhGb3JtX19kb21haW5zX19saXN0X19pdGVtX3lhbmRleHJ1e2JhY2tncm91bmQtaW1hZ2U6dXJsKCJodHRwczovL2ltZy5pbWdzbWFpbC5ydS9waC8wLjY1LjM1L2F1dGhGb3JtL2xvZ28veWFuZGV4LnJ1QHgyLnBuZyIpfS53LXgtcGhfX2F1dGhGb3JtX19kb21haW5zX19saXN0X19pdGVtX3JhbWJsZXJydXtiYWNrZ3JvdW5kLWltYWdlOnVybCgiaHR0cHM6Ly9pbWcuaW1nc21haWwucnUvcGgvMC42NS4zNS9hdXRoRm9ybS9sb2dvL3JhbWJsZXIucnVAeDIucG5nIil9LncteC1waF9fYXV0aEZvcm1fX2RvbWFpbnNfX2xpc3RfX2l0ZW1fZ21haWxjb217YmFja2dyb3VuZC1pbWFnZTp1cmwoImh0dHBzOi8vaW1nLmltZ3NtYWlsLnJ1L3BoLzAuNjUuMzUvYXV0aEZvcm0vbG9nby9nbWFpbC5jb21AeDIucG5nIil9fS54LXBoX19hdXRoRm9ybV9fZG9tYWluc19fbGlzdF9faXRlbV9faW1hZ2V7dmVydGljYWwtYWxpZ246bWlkZGxlfS54LXBoX19hdXRoRm9ybV9fZG9tYWluc19fbGlzdF9faXRlbV9fbGVne2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtaW5kZW50Oi0xMDAwcHh9LngtcGhfX2F1dGhGb3JtX19kb21haW5zX19saXN0X19pdGVtX190ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQ6MTNweC8xM3B4IEFyaWFsLHNhbnMtc2VyaWY7Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkICMwMDB9LngtcGhfX2F1dGhGb3JtX19kb21haW5zX19saXN0X19pdGVtX290aGVyIC54LXBoX19hdXRoRm9ybV9fZG9tYWluc19fbGlzdF9faXRlbV9fdGV4dHtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MXB4fS54LXBoX19hdXRoRm9ybV9fY2hhbmdlQXV0aHtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6LTFweDt0ZXh0LWFsaWduOnJpZ2h0fS54LXBoX19hdXRoRm9ybV9fY2hhbmdlQXV0aF9fdGV4dHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6OHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtjb2xvcjojMDAwO2ZvbnQ6MTNweC8zMHB4IEFyaWFsLHNhbnMtc2VyaWZ9LngtcGhfX2F1dGhGb3JtX19jaGFuZ2VBdXRoX19lbWFpbHtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LncteC1waF9fYXV0aEZvcm1fX2NoYW5nZUF1dGhfX2VtYWlse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDoxNjBweH0ueC1waF9fZm9ybV9fcGFzc3dvcmRfX2ljb257d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtwb3NpdGlvbjpyZWxhdGl2ZTtmbG9hdDpyaWdodDt0b3A6MnB4O292ZXJmbG93OmhpZGRlbjt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTtmb250OjAvMCBhO2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDp1cmwoImh0dHBzOi8vaW1nLmltZ3NtYWlsLnJ1L3BoLzAuNjUuMzUvYXV0aEZvcm0vaWNvbnMucG5nIikgbm8tcmVwZWF0Oy1tb3otYmFja2dyb3VuZC1zaXplOjIwcHggODhweDtiYWNrZ3JvdW5kLXNpemU6MjBweCA4OHB4fS54LXBoX19mb3JtX19wYXNzd29yZF9faWNvbl93YXJuaW5ne21hcmdpbjowIDJweCAwIDA7Y3Vyc29yOmRlZmF1bHQ7YmFja2dyb3VuZC1wb3NpdGlvbjoycHggLTIxcHh9LngtcGhfX2Zvcm1fX3Bhc3N3b3JkX19pY29uX2V5ZXtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLXBvc2l0aW9uOjJweCAtNjJweDttYXJnaW46MCA0cHggMCAwfS54LXBoX19mb3JtX19wYXNzd29yZF9faWNvbl9leWUtc2hvd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjJweCAtNDBweH0ueC1waC1hbmltYXRlZF9mbGFzaHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOngtcGgtZmxhc2g7LW1vei1hbmltYXRpb24tbmFtZTp4LXBoLWZsYXNoO2FuaW1hdGlvbi1uYW1lOngtcGgtZmxhc2h9QC1tb3ota2V5ZnJhbWVzIHgtcGgtZmxhc2h7MCUsNTAlLDEwMCV7b3BhY2l0eToxfTI1JSw3NSV7b3BhY2l0eTowfX1ALXdlYmtpdC1rZXlmcmFtZXMgeC1waC1mbGFzaHswJSw1MCUsMTAwJXtvcGFjaXR5OjF9MjUlLDc1JXtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgeC1waC1mbGFzaHswJSw1MCUsMTAwJXtvcGFjaXR5OjF9MjUlLDc1JXtvcGFjaXR5OjB9fS54LXBoLWhpbnR7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTAwMDtwYWRkaW5nOjVweCA3cHg7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiMwMDA7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC44KTtib3JkZXI6MXB4IHNvbGlkICNjY2N9LngtcGgtYm94c2hhZG93IC54LXBoLWhpbnR7Ym9yZGVyLWNvbG9yOiNmZmZ9LngtcGgtaGludF93aGl0ZXtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC45KTtjb2xvcjojNjY1ZDRjfS54LXBoLWhpbnRfaWZyYW1le21hcmdpbjowO3BhZGRpbmc6MDtvdmVyZmxvdzpoaWRkZW59LngtcGgtaGludF9hdXRoe3RvcDoxMDAlO21hcmdpbi10b3A6MTBweDtyaWdodDowO2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMzMzM7LW1vei1ib3JkZXItcmFkaXVzOjRweDtib3JkZXItcmFkaXVzOjRweDstbW96LWJveC1zaGFkb3c6MCAwIDhweCAjY2JjYmNiO2JveC1zaGFkb3c6MCAwIDhweCAjY2JjYmNiOy1tb3otYm94LXNoYWRvdzowIDAgOHB4IHJnYmEoMCwwLDAsLjMpO2JveC1zaGFkb3c6MCAwIDhweCByZ2JhKDAsMCwwLC4zKTtwYWRkaW5nOjEzcHggMTdweH0ueC1waC1ib3hzaGFkb3cgLngtcGgtaGludF9fdGlwe3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjA7aGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO2ZvbnQtc2l6ZTowO2JvcmRlcjpzb2xpZCB0cmFuc3BhcmVudH0ueC1waC1ib3hzaGFkb3cgLngtcGgtaGludF9fdGlwX2JvdHRvbXtsZWZ0OjE2cHg7dG9wOjEwMCU7Ym9yZGVyLXRvcC1jb2xvcjojMDAwO2JvcmRlci10b3AtY29sb3I6cmdiYSgwLDAsMCwuOCk7Ym9yZGVyLXdpZHRoOjdweCA3cHggMH0ueC1waC1ib3hzaGFkb3cgLngtcGgtaGludF9fdGlwX3RvcHtsZWZ0OjE2cHg7Ym90dG9tOjEwMCU7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDAwO2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLDAsMCwuOCk7Ym9yZGVyLXdpZHRoOjAgN3B4IDdweH0ueC1waC1ib3hzaGFkb3cgLngtcGgtaGludF9fdGlwX3doaXRlX2JvdHRvbXtsZWZ0OjE2cHg7dG9wOjEwMCU7Ym9yZGVyLXRvcC1jb2xvcjojZmZmO2JvcmRlci10b3AtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOCk7Ym9yZGVyLXdpZHRoOjdweCA3cHggMH0ueC1waC1ib3hzaGFkb3cgLngtcGgtaGludF9fdGlwX3doaXRlX3RvcHtsZWZ0OjE2cHg7Ym90dG9tOjEwMCU7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZmZmO2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOCk7Ym9yZGVyLXdpZHRoOjAgN3B4IDdweH0ueC1waC1ib3hzaGFkb3cgLngtcGgtaGludF9fdGlwX3doaXRlZF90b3BfcmlnaHR7cmlnaHQ6MTZweDtib3R0b206MTAwJTtib3JkZXItYm90dG9tLWNvbG9yOiNmZmY7Ym9yZGVyLXdpZHRoOjAgN3B4IDdweH0ueC1waC1oaW50X19jb250ZW50e2ZvbnQtc2l6ZToxMnB4O3doaXRlLXNwYWNlOm5vd3JhcH0ueC1waC1oaW50X19jbG9zZXt0b3A6NXB4O3JpZ2h0OjVweDtwb3NpdGlvbjphYnNvbHV0ZTtwYWRkaW5nLXRvcDoycHg7aGVpZ2h0OjE4cHg7d2lkdGg6MjBweDtjdXJzb3I6cG9pbnRlcjt0ZXh0LWFsaWduOmNlbnRlcn0ueC1waC1idWJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwMCU7bGVmdDo2cHg7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjE2cHg7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlOy1tb3otYm9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLXJhZGl1czoycHg7LW1vei1ib3gtc2hhZG93OjAgNHB4IDEycHggNHB4IHJnYmEoMCwwLDAsLjEyKTtib3gtc2hhZG93OjAgNHB4IDEycHggNHB4IHJnYmEoMCwwLDAsLjEyKX0ueC1waC1uby1ib3hzaGFkb3cgLngtcGgtYnVie2JvcmRlcjoxcHggc29saWQgI2Q1ZDVkNX0ueC1waC1idWJfX2NvbnRlbnQsYS54LXBoLWJ1Yl9fY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7cGFkZGluZzoxNnB4Oy1tb3otYm9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDojZmZmO2Rpc3BsYXk6YmxvY2s7Y29sb3I6IzAwMH0ueC1waC1idWJfX2NvbnRlbnRfX3dyYXAsYS54LXBoLWJ1Yl9fY29udGVudF9fd3JhcHtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxOTZweDt2ZXJ0aWNhbC1hbGlnbjp0b3A7d2hpdGUtc3BhY2U6bm9ybWFsfS54LXBoLWJ1Yl9fbWVzc2FnZXtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6NnB4fS54LXBoLWJ1Yl9faWNvbntkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6OHB4O3dpZHRoOjQ1cHg7aGVpZ2h0OjQ1cHg7dmVydGljYWwtYWxpZ246dG9wfUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzoxLjUpLG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOjEuNSksb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjMvMiksb25seSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOjEuNSl7LngtcGgtYnViX19pY29uey1tb3otYmFja2dyb3VuZC1zaXplOjQ1cHggNDVweDtiYWNrZ3JvdW5kLXNpemU6NDVweCA0NXB4fX0ueC1waC1idWJfX2ljb25fcHJlc2VudHtiYWNrZ3JvdW5kLWltYWdlOnVybCgiaHR0cHM6Ly9pbWcuaW1nc21haWwucnUvcGgvMC42NS4zNS9idWIvcHJlc2VudC5wbmciKX1AbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MS41KSxvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzoxLjUpLG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzozLzIpLG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS1waXhlbC1yYXRpbzoxLjUpey54LXBoLWJ1Yl9faWNvbl9wcmVzZW50e2JhY2tncm91bmQtaW1hZ2U6dXJsKCJodHRwczovL2ltZy5pbWdzbWFpbC5ydS9waC8wLjY1LjM1L2J1Yi9wcmVzZW50QDJ4LnBuZyIpfX0ueC1waC1idWJfX2ljb25fZnJpZW5kc2hpcHtiYWNrZ3JvdW5kLWltYWdlOnVybCgiaHR0cHM6Ly9pbWcuaW1nc21haWwucnUvcGgvMC42NS4zNS9idWIvZnJpZW5kc2hpcC5wbmciKX1AbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MS41KSxvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzoxLjUpLG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzozLzIpLG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS1waXhlbC1yYXRpbzoxLjUpey54LXBoLWJ1Yl9faWNvbl9mcmllbmRzaGlwe2JhY2tncm91bmQtaW1hZ2U6dXJsKCJodHRwczovL2ltZy5pbWdzbWFpbC5ydS9waC8wLjY1LjM1L2J1Yi9mcmllbmRzaGlwQDJ4LnBuZyIpfX0ueC1waC1idWJfX2J1dHRvbnttYXJnaW4tdG9wOjE2cHh9LngtcGgtYnViX19jbG9zZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NnB4O3JpZ2h0OjZweDt6LWluZGV4OjM7cGFkZGluZzo0cHg7Y3Vyc29yOnBvaW50ZXJ9LngtcGgtYnViX19wbGFjZWhvbGRlcntwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MDtyaWdodDowO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXJpZ2h0OjRweDtoZWlnaHQ6MH0ueC1waC1idWJfdGlwOmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbToxMDAlO2xlZnQ6MTZweDtjb250ZW50OicnfS54LXBoLWNzc3RyYW5zZm9ybXMgLngtcGgtYnViX3RpcDphZnRlcnt6LWluZGV4OjE7bWFyZ2luLWJvdHRvbTotOHB4O3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7LW1vei1ib3JkZXItcmFkaXVzOjJweDtib3JkZXItcmFkaXVzOjJweDstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpOy1tb3otdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtiYWNrZ3JvdW5kOiNmZmY7LW1vei1ib3gtc2hhZG93OjAgNHB4IDEycHggNHB4IHJnYmEoMCwwLDAsLjEyKTtib3gtc2hhZG93OjAgNHB4IDEycHggNHB4IHJnYmEoMCwwLDAsLjEyKX08L3N0eWxlPjx0YWJsZSBjbGFzcz0idy14LXBoIiBjZWxsc3BhY2luZz0iMCI+PHRib2R5Pjx0cj48dGQgY2xhc3M9IncteC1waF9fY29sIHcteC1waF9fY29sX2xlZnQiPjxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJ4LXBoX19saW5rIHgtcGhfX2xpbmtfZmlyc3QiIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9pMDJ5NzQ/bXRfc3ViMT1vdGhlciI+TWFpbC5ydTwvYT48YSBpZD0icGhfbWFpbCIgcmVsPSJub2ZvbGxvdyIgY2xhc3M9IngtcGhfX2xpbmsiIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9jcHRtbTk/bXRfc3ViMT1vdGhlciI+PHNwYW4gY2xhc3M9IngtcGhfX2xpbmtfX3RleHQiIGlkPSJQSF9kb3QiPtCf0L7Rh9GC0LA8L3NwYW4+PGkgY2xhc3M9IngtcGhfX2xpbmtfX2RvdCI+PC9pPjxpIGNsYXNzPSJ4LXBoX19saW5rX19iYWxsb29uIiBpZD0iZ19tYWlsX2V2ZW50cyI+MDwvaT48L2E+PGEgaWQ9InBoX215IiByZWw9Im5vZm9sbG93IiBzdHlsZT0iIiBjbGFzcz0ieC1waF9fbGluayIgaHJlZj0iaHR0cHM6Ly90cmsubWFpbC5ydS9jL3BzYzNhNT9tdF9zdWIxPW90aGVyIj48c3BhbiBjbGFzcz0ieC1waF9fbGlua19fdGV4dCI+0JzQvtC5INCc0LjRgDwvc3Bhbj48aSBjbGFzcz0ieC1waF9fbGlua19fYmFsbG9vbiIgaWQ9ImdfbXlfZXZlbnRzIj4wPC9pPjwvYT48c3BhbiBjbGFzcz0idy14LXBoX19saW5rIj48YSByZWw9Im5vZm9sbG93IiBjbGFzcz0ieC1waF9fbGluayIgaHJlZj0iaHR0cHM6Ly90cmsubWFpbC5ydS9jL2pyMjNiND9tdF9zdWIxPW90aGVyIj48c3BhbiBjbGFzcz0ieC1waF9fbGlua19fdGV4dCI+0J7QtNC90L7QutC70LDRgdGB0L3QuNC60Lg8L3NwYW4+PGkgY2xhc3M9IngtcGhfX2xpbmtfX2JhbGxvb24iIGlkPSJnX29rX2V2ZW50cyI+MDwvaT48L2E+PHNwYW4gaWQ9IlBIX2J1YjpvayIgY2xhc3M9IngtcGgtYnViX19wbGFjZWhvbGRlciI+PC9zcGFuPjwvc3Bhbj48YSBocmVmPSJodHRwczovL3Ryay5tYWlsLnJ1L2MvZ3Foa2c2P210X3N1YjE9bWFpbC5ydSZhbXA7bXRfY2FtcGFpZ249bmV3cHJvbW9tYWlsJmFtcDttdF9zdWIyPW5hdmluZXciIHJlbD0ibm9mb2xsb3ciIHN0eWxlPSIiIGNsYXNzPSJ4LXBoX19saW5rIj48c3Bhbj7QktCa0L7QvdGC0LDQutGC0LU8L3NwYW4+PGkgY2xhc3M9IngtcGhfX2xpbmtfX2JhbGxvb24iIGlkPSJ2a19jb3VudGVyIiBzdHlsZT0iIj40ODwvaT48L2E+PGEgY2xhc3M9IngtcGhfX2xpbmsiIHJlbD0ibm9mb2xsb3ciIHN0eWxlPSIiIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9mdmh6dzc/bXRfc3ViMT1vdGhlciI+PHNwYW4gY2xhc3M9IngtcGhfX2xpbmtfX3RleHQiPtCY0LPRgNGLPC9zcGFuPjxpIGNsYXNzPSJ4LXBoX19saW5rX19iYWxsb29uIiBpZD0iZ19nYW1lc19ldmVudHMiPjA8L2k+PC9hPjxhIHJlbD0ibm9mb2xsb3ciIHN0eWxlPSIiIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy90NmtzNzI/bXRfc3ViMT1vdGhlciIgY2xhc3M9IngtcGhfX2xpbmsiPjxzcGFuIGNsYXNzPSJ4LXBoX19saW5rX190ZXh0Ij7Ql9C90LDQutC+0LzRgdGC0LLQsDwvc3Bhbj48aSBjbGFzcz0ieC1waF9fbGlua19fYmFsbG9vbiIgaWQ9ImdfbG92ZV9ldmVudHMiPjA8L2k+PC9hPjxhIHJlbD0ibm9mb2xsb3ciIHN0eWxlPSIiIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9id3ptNDg/bXRfc3ViMT1vdGhlciIgY2xhc3M9IngtcGhfX2xpbmsiPtCd0L7QstC+0YHRgtC4PC9hPjxhIHJlbD0ibm9mb2xsb3ciIHN0eWxlPSIiIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy95cjY1dDE/bXRfc3ViMT1vdGhlciIgY2xhc3M9IngtcGhfX2xpbmsiPtCa0LDQu9C10L3QtNCw0YDRjDwvYT48YSByZWw9Im5vZm9sbG93IiBzdHlsZT0iIiBjbGFzcz0ieC1waF9fbGluayIgaHJlZj0iaHR0cHM6Ly90cmsubWFpbC5ydS9jL2JndDhjMz9tdF9zdWIxPW90aGVyIj7QntCx0LvQsNC60L48L2E+PGEgcmVsPSJub2ZvbGxvdyIgc3R5bGU9IiIgaHJlZj0iaHR0cHM6Ly90cmsubWFpbC5ydS9jL2pyZm5iMz9tdF9zdWIxPW90aGVyIiBjbGFzcz0ieC1waF9fbGluayI+0JfQsNC80LXRgtC60Lg8L2E+PGEgaWQ9IlBIX2FsbFByb2plY3RzIiBjbGFzcz0ieC1waF9fbGluayIgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cHM6Ly90cmsubWFpbC5ydS9jL3V5bTg4ND9tdF9zdWIxPW90aGVyIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPtCS0YHQtSDQv9GA0L7QtdC60YLRizwvYT48c3BhbiBjbGFzcz0ieC1waF9fbWVudSIgaWQ9IlBIX3Byb2plY3RzTWVudSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsiPjxpIGNsYXNzPSJ3LXgtcGhfX21lbnVfX2J1dHRvbl9fc2hhZG93IHcteC1waF9fbWVudV9fYnV0dG9uX19zaGFkb3dfbGVmdCI+PC9pPjxpIGNsYXNzPSJ3LXgtcGhfX21lbnVfX2J1dHRvbl9fc2hhZG93IHcteC1waF9fbWVudV9fYnV0dG9uX19zaGFkb3dfcmlnaHQiPjwvaT48YSByZWw9Im5vZm9sbG93IiBjbGFzcz0ieC1waF9fbWVudV9fYnV0dG9uIiBpZD0iUEhfcHJvamVjdHNNZW51X2J1dHRvbiIgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvcG9saXRpY3MvNjExNjU0OTUvIyI+PGkgY2xhc3M9IngtcGhfX21lbnVfX2J1dHRvbl9faWNvbiI+PC9pPjxpIGNsYXNzPSJ4LXBoX19tZW51X19idXR0b25fX3RleHQiPtCS0YHQtSDQv9GA0L7QtdC60YLRizwvaT48L2E+PGRpdiBjbGFzcz0ieC1waF9fbWVudV9fZHJvcGRvd24geC1waF9fcHJvamVjdHMiIGlkPSJQSF9wcm9qZWN0c01lbnVfZHJvcGRvd24iIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PGRpdiBjbGFzcz0idy14LXBoX19tZW51X19kcm9wZG93biB3LXgtcGhfX3Byb2plY3RzIj48ZGl2IGNsYXNzPSJ3LXgtcGhfX3Byb2plY3RzLWJvZHkiPjxkaXYgaWQ9IngtcGhfX3Byb2plY3RzX2l0ZW1zIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyI+PHNwYW4gY2xhc3M9IngtcGhfX3Byb2plY3RzX19jb2wiPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9sZm1uNTk/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj7QkNCy0YLQvjwvYT48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL3Ryay5tYWlsLnJ1L2Mvc3htZzkyP210X3N1YjE9bmV3cy5tYWlsLnJ1IiBjbGFzcz0ianMtbGluayB4LXBoX19wcm9qZWN0c19fbGluayI+0JPQvtGA0L7RgdC60L7Qv9GLPC9hPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9jNmc1ZDk/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj7QlNC10YLQuDwvYT48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL3Ryay5tYWlsLnJ1L2MvdDJlbWQ2P210X3N1YjE9bmV3cy5tYWlsLnJ1IiBjbGFzcz0ianMtbGluayB4LXBoX19wcm9qZWN0c19fbGluayI+0JTQvtCx0YDQvjwvYT48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL3Ryay5tYWlsLnJ1L2MveDFubDc1P210X3N1YjE9bmV3cy5tYWlsLnJ1IiBjbGFzcz0ianMtbGluayB4LXBoX19wcm9qZWN0c19fbGluayI+0JTQvtC8PC9hPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9vdWc2NzQ/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj7Ql9Cw0LTQsNGH0Lg8L2E+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cHM6Ly90cmsubWFpbC5ydS9jL3M4YzJqNj9tdF9zdWIxPW5ld3MubWFpbC5ydSIgY2xhc3M9ImpzLWxpbmsgeC1waF9fcHJvamVjdHNfX2xpbmsiPtCX0LLQvtC90LrQuDwvYT48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL3Ryay5tYWlsLnJ1L2Mvdm02NWk2P210X3N1YjE9bmV3cy5tYWlsLnJ1IiBjbGFzcz0ianMtbGluayB4LXBoX19wcm9qZWN0c19fbGluayI+0JfQtNC+0YDQvtCy0YzQtTwvYT48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL3Ryay5tYWlsLnJ1L2MvcWplbmc4P210X3N1YjE9bmV3cy5tYWlsLnJ1IiBjbGFzcz0ianMtbGluayB4LXBoX19wcm9qZWN0c19fbGluayI+0JrQuNC90L48L2E+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cHM6Ly90cmsubWFpbC5ydS9jL3A3d3B0Mj9tdF9zdWIxPW5ld3MubWFpbC5ydSIgY2xhc3M9ImpzLWxpbmsgeC1waF9fcHJvamVjdHNfX2xpbmsiPtCb0LXQtNC4PC9hPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9kaW52ejM/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj7QnNC+0Lkg0JzQuNGAPC9hPjwvc3Bhbj48c3BhbiBjbGFzcz0ieC1waF9fcHJvamVjdHNfX2NvbCI+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cHM6Ly90cmsubWFpbC5ydS9jL3Q0NmVnNz9tdF9zdWIxPW5ld3MubWFpbC5ydSIgY2xhc3M9ImpzLWxpbmsgeC1waF9fcHJvamVjdHNfX2xpbmsiPtCe0LHQu9Cw0LrQvjwvYT48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL3Ryay5tYWlsLnJ1L2MvbmVwNGE3P210X3N1YjE9bmV3cy5tYWlsLnJ1IiBjbGFzcz0ianMtbGluayB4LXBoX19wcm9qZWN0c19fbGluayI+0J7RgtCy0LXRgtGLPC9hPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy94OHBqNzk/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj7Qn9C40YLQvtC80YbRizwvYT48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL3Ryay5tYWlsLnJ1L2MvcXRjeWg5P210X3N1YjE9bmV3cy5tYWlsLnJ1IiBjbGFzcz0ianMtbGluayB4LXBoX19wcm9qZWN0c19fbGluayI+0J/QvtCz0L7QtNCwPC9hPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9rejVqajE/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj7QodC/0L7RgNGCPC9hPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9rN3EzOTg/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj7QotCSINC/0YDQvtCz0YDQsNC80LzQsDwvYT48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL3Ryay5tYWlsLnJ1L2MvbDloaGY4P210X3N1YjE9bmV3cy5tYWlsLnJ1IiBjbGFzcz0ianMtbGluayB4LXBoX19wcm9qZWN0c19fbGluayI+0KbQtdC90YLRgCDQvtC/0LvQsNGCPC9hPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9ibWh4Zzk/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj7QqNGC0YDQsNGE0Ys8L2E+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cHM6Ly90cmsubWFpbC5ydS9jL2ptb2t4ND9tdF9zdWIxPW5ld3MubWFpbC5ydSIgY2xhc3M9ImpzLWxpbmsgeC1waF9fcHJvamVjdHNfX2xpbmsiPkhpLVRlY2g8L2E+PC9zcGFuPjwvZGl2PjxkaXYgaWQ9IngtcGhfX3Byb2plY3RzX2J1c2luZXNzIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyI+PHNwYW4gY2xhc3M9IngtcGhfX3Byb2plY3RzX19jb2wiPjxoMyBjbGFzcz0ieC1waF9fcHJvamVjdHNfX2dyb3VwLXRpdGxlIj7QlNC70Y8g0LHQuNC30L3QtdGB0LA8L2gzPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9rcjN3ODg/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj5WSyBUZWNoPC9hPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9ieGh2azk/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj5WSyBDbG91ZDwvYT48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL3Ryay5tYWlsLnJ1L2MvcXI0Z2o1P210X3N1YjE9bmV3cy5tYWlsLnJ1IiBjbGFzcz0ianMtbGluayB4LXBoX19wcm9qZWN0c19fbGluayI+VksgV29ya1NwYWNlPC9hPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy96MjBvYjM/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj5WSyBXb3JrRGlzazwvYT48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL3Ryay5tYWlsLnJ1L2MvZWQ4cm4xP210X3N1YjE9bmV3cy5tYWlsLnJ1IiBjbGFzcz0ianMtbGluayB4LXBoX19wcm9qZWN0c19fbGluayI+VksgVGVhbXM8L2E+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cHM6Ly90cmsubWFpbC5ydS9jL2Zua3lmOT9tdF9zdWIxPW5ld3MubWFpbC5ydSIgY2xhc3M9ImpzLWxpbmsgeC1waF9fcHJvamVjdHNfX2xpbmsiPlZLINCg0LXQutC70LDQvNCwPC9hPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9qMG9xYjQ/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj5NeVRyYWNrZXI8L2E+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cHM6Ly90cmsubWFpbC5ydS9jL3lxMW1rMz9tdF9zdWIxPW5ld3MubWFpbC5ydSIgY2xhc3M9ImpzLWxpbmsgeC1waF9fcHJvamVjdHNfX2xpbmsiPtCf0L7Rh9GC0LAg0LTQu9GPINCx0LjQt9C90LXRgdCwPC9hPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9keXRheDQ/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj7Qn9C+0YfRgtCwINC00LvRjyDQvtCx0YDQsNC30L7QstCw0L3QuNGPPC9hPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9xOG5mdjI/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj7QoNC10LnRgtC40L3QsyDRgdCw0LnRgtC+0LI8L2E+PC9zcGFuPjwvZGl2PjxkaXYgaWQ9IngtcGhfX3Byb2plY3RzX290aGVyIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyI+PHNwYW4gY2xhc3M9IngtcGhfX3Byb2plY3RzX19jb2wiPjxoMyBjbGFzcz0ieC1waF9fcHJvamVjdHNfX2dyb3VwLXRpdGxlIj7QlNGA0YPQs9C40LUg0L/RgNC+0LXQutGC0Ys8L2gzPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9teXhnbTQ/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj48c3BhbiBjbGFzcz0ieC1waF9fcHJvamVjdHNfX2ljb24iIHN0eWxlPSJtYXJnaW4tdG9wOjhweDsKCQkJCQkJCQkJaGVpZ2h0OjE2cHg7CgkJCQkJCQkJCWJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL3IubXJhZHgubmV0L3BpY3R1cmVzLzUxL0MxNDg4NS5wbmcpOwoJCQkJCQkJCQliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwoJCQkJCQkJCQliYWNrZ3JvdW5kLXNpemU6MTZweCAxNnB4OyI+PC9zcGFuPtCR0YDQsNGD0LfQtdGAIEF0b208L2E+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cHM6Ly90cmsubWFpbC5ydS9jL3djNWJiMT9tdF9zdWIxPW5ld3MubWFpbC5ydSIgY2xhc3M9ImpzLWxpbmsgeC1waF9fcHJvamVjdHNfX2xpbmsiPjxzcGFuIGNsYXNzPSJ4LXBoX19wcm9qZWN0c19faWNvbiIgc3R5bGU9Im1hcmdpbi10b3A6OHB4OwoJCQkJCQkJCQloZWlnaHQ6MTZweDsKCQkJCQkJCQkJYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vci5tcmFkeC5uZXQvcGljdHVyZXMvMEQvMTk2RDRDLnBuZyk7CgkJCQkJCQkJCWJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CgkJCQkJCQkJCWJhY2tncm91bmQtc2l6ZToxNnB4IDE2cHg7Ij48L3NwYW4+0JrQsNC/0YHRg9C70LA8L2E+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cHM6Ly90cmsubWFpbC5ydS9jL2lnbG1wMT9tdF9zdWIxPW5ld3MubWFpbC5ydSIgY2xhc3M9ImpzLWxpbmsgeC1waF9fcHJvamVjdHNfX2xpbmsiPjxzcGFuIGNsYXNzPSJ4LXBoX19wcm9qZWN0c19faWNvbiIgc3R5bGU9Im1hcmdpbi10b3A6OHB4OwoJCQkJCQkJCQloZWlnaHQ6MTZweDsKCQkJCQkJCQkJYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vci5tcmFkeC5uZXQvcGljdHVyZXMvQjkvMzgwRTc0LnBuZyk7CgkJCQkJCQkJCWJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CgkJCQkJCQkJCWJhY2tncm91bmQtc2l6ZToxNnB4IDE2cHg7Ij48L3NwYW4+0KLQsNC80KLQsNC8PC9hPjxhIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vdHJrLm1haWwucnUvYy9qNmhkeTM/bXRfc3ViMT1uZXdzLm1haWwucnUiIGNsYXNzPSJqcy1saW5rIHgtcGhfX3Byb2plY3RzX19saW5rIj48c3BhbiBjbGFzcz0ieC1waF9fcHJvamVjdHNfX2ljb24iIHN0eWxlPSJtYXJnaW4tdG9wOjhweDsKCQkJCQkJCQkJaGVpZ2h0OjE2cHg7CgkJCQkJCQkJCWJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL3IubXJhZHgubmV0L3BpY3R1cmVzLzMzLzJDREU5Qi5wbmcpOwoJCQkJCQkJCQliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwoJCQkJCQkJCQliYWNrZ3JvdW5kLXNpemU6MTZweCAxNnB4OyI+PC9zcGFuPtCu0LvQsDwvYT48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL3Ryay5tYWlsLnJ1L2MvYnRiNnA2P210X3N1YjE9bmV3cy5tYWlsLnJ1IiBjbGFzcz0ianMtbGluayB4LXBoX19wcm9qZWN0c19fbGluayI+PHNwYW4gY2xhc3M9IngtcGhfX3Byb2plY3RzX19pY29uIiBzdHlsZT0ibWFyZ2luLXRvcDo4cHg7CgkJCQkJCQkJCWhlaWdodDoxNnB4OwoJCQkJCQkJCQliYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly9yLm1yYWR4Lm5ldC9waWN0dXJlcy9FMS8xMkRGQTIucG5nKTsKCQkJCQkJCQkJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCQkJCQkJCQkJYmFja2dyb3VuZC1zaXplOjE2cHggMTZweDsiPjwvc3Bhbj5JQ1EgTmV3PC9hPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ4LXBoX19wcm9qZWN0c19fbGlua3MiPjxzcGFuIGNsYXNzPSJ4LXBoX19wcm9qZWN0c19fbGlua3MtbGVmdC1wYW5lbCI+PGEgcmVsPSJub2ZvbGxvdyIgaHJlZj0iaHR0cHM6Ly90cmsubWFpbC5ydS9jL3V5bTg4ND9tdF9zdWIxPW5ld3MubWFpbC5ydSIgY2xhc3M9ImpzLWxpbmsgeC1waF9fcHJvamVjdHNfX2xpbmsiPtCh0L/QuNGB0L7QuiDQstGB0LXRhSDQv9GA0L7QtdC60YLQvtCyPC9hPjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48L3NwYW4+PC90ZD48dGQgY2xhc3M9IncteC1waF9fY29sIHcteC1waF9fY29sX3JpZ2h0IiBzdHlsZT0iIj48ZGl2IGlkPSJQSF9hdXRoVmlldyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PHRhYmxlIGNsYXNzPSJ4LXBoX19hdXRoIiBjZWxsc3BhY2luZz0iMCI+PHRib2R5Pjx0cj48dGQgY2xhc3M9IncteC1waF9fYXV0aF9fY29sIHcteC1waF9fYXV0aF9fY29sX2xlZnQiPjxzcGFuIGlkPSJQSF9zaW5nbGV1c2VyIiBjbGFzcz0ieC1waF9fYXV0aF9fdXNlciIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij48c3BhbiBjbGFzcz0idy14LXBoX19hdXRoX191c2VyX2lubmVyIj48c3BhbiBpZD0iUEhfdXNlci1lbWFpbF9kaXNhYmxlZCIgY2xhc3M9IngtcGhfX2F1dGhfX3VzZXJfX3RleHQiPjwvc3Bhbj48c3BhbiBjbGFzcz0ieC1waF9fYXV0aF9fdXNlcl9fZmFkZSI+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PGRpdiBpZD0iUEhfbWlsdGl1c2VyIiBzdHlsZT0iZGlzcGxheTogYmxvY2s7IiBjbGFzcz0idy14LXBoX19hdXRoX19kcm9wZG93biI+PGRpdiBjbGFzcz0idy14LXBoX19hdXRoX19kcm9wZG93bl9faW5uZXIiPjxkaXYgY2xhc3M9IngtcGhfX21lbnUgeC1waF9fbWVudV9hdXRoIiBpZD0iUEhfYXV0aE1lbnUiPjxpIGNsYXNzPSJ3LXgtcGhfX21lbnVfX2J1dHRvbl9fc2hhZG93IHcteC1waF9fbWVudV9fYnV0dG9uX19zaGFkb3dfbGVmdCI+PC9pPjxpIGNsYXNzPSJ3LXgtcGhfX21lbnVfX2J1dHRvbl9fc2hhZG93IHcteC1waF9fbWVudV9fYnV0dG9uX19zaGFkb3dfcmlnaHQiPjwvaT48c3BhbiBjbGFzcz0ieC1waF9fbWVudV9fYnV0dG9uIHgtcGhfX21lbnVfX2J1dHRvbl9hdXRoIiBpZD0iUEhfYXV0aE1lbnVfYnV0dG9uIj48aSBjbGFzcz0ieC1waF9fbWVudV9fYnV0dG9uX2F1dGhfX3VucmVhZCIgdGl0bGU9IiI+PC9pPjxpIGNsYXNzPSJ4LXBoX19tZW51X19idXR0b25fX2ljb24geC1waF9fbWVudV9fYnV0dG9uX19pY29uX2F1dGgiPjwvaT48aSBjbGFzcz0ieC1waF9fbWVudV9fYnV0dG9uX190ZXh0IHgtcGhfX21lbnVfX2J1dHRvbl9fdGV4dF9hdXRoIiBpZD0iUEhfdXNlci1lbWFpbCI+dW5kZWZpbmVkPC9pPjwvc3Bhbj48ZGl2IGlkPSJQSDphdXRoTWVudTpkcm9wZG93biIgY2xhc3M9IngtcGhfX21lbnVfX2Ryb3Bkb3duIHgtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGgiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PGRpdiBjbGFzcz0idy14LXBoX19tZW51X19kcm9wZG93biB3LXgtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGgiPjxkaXYgY2xhc3M9Inctdy14LXBoX19tZW51X19kcm9wZG93bl9hdXRoIj48ZGl2IGNsYXNzPSJ4LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19sb2FkZXIiPjwvZGl2PjxkaXYgY2xhc3M9IngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2Vycm9yIj7Qn9GA0L7QuNC30L7RiNC70LAg0L7RiNC40LHQutCwINGB0L7QtdC00LjQvdC10L3QuNGPPC9kaXY+PGRpdiBjbGFzcz0ieC1waF9fYXV0aF9saXN0IHgtcGhfX2F1dGhfbGlzdF9hY3RpdmUiIGlkPSJQSDphdXRoTWVudTphY3RpdmVBY2NvdW50Ij48L2Rpdj48ZGl2IGNsYXNzPSJ4LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19saW5rcyIgaWQ9IlBIOmF1dGhNZW51OmFjdGl2ZUFjY291bnRMaW5rcyI+PC9kaXY+PGRpdiBjbGFzcz0ieC1waF9fYXV0aF9saXN0IHgtcGhfX2F1dGhfbGlzdF9ub3QtYWN0aXZlIiBpZD0iUEg6YXV0aE1lbnU6bGlzdFdyYXAiPjxkaXYgaWQ9IlBIOmF1dGhNZW51OmluYWN0aXZlQWNjb3VudHMiPjwvZGl2PjwvZGl2PjxkaXYgaWQ9IlBIX21lbnVMb2dpbiIgY2xhc3M9IngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2xvZ2luIj48ZGl2IGNsYXNzPSJ4LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvIj48YSByZWw9Im5vZm9sbG93IiBocmVmPSJodHRwczovL3IubWFpbC5ydS9jbGIxMTI2MDAxL21haWxibG9nLm1haWwucnUvbXVsdGlhdXRoLTIvIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9IngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2luZm9fX2xpbmsiPjxzcGFuIGNsYXNzPSJ4LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rX190ZXh0Ij7QktGLINC80L7QttC10YLQtSDQvtC00L3QvtCy0YDQtdC80LXQvdC90L4g0YDQsNCx0L7RgtCw0YLRjDxicj7RgSDQvdC10YHQutC+0LvRjNC60LjQvNC4INC/0L7Rh9GC0L7QstGL0LzQuCDRj9GJ0LjQutCw0LzQuC48L3NwYW4+IDxzcGFuIGNsYXNzPSJ4LXBoX19tZW51X19kcm9wZG93bl9hdXRoX19pbmZvX19saW5rX19saW5rIj7Qo9C30L3QsNGC0Ywg0LHQvtC70YzRiNC1PC9zcGFuPjwvYT48L2Rpdj48YSBpZD0iUEhfbG9naW5Bbm90aGVyTGluayIgY2xhc3M9IngtcGhfX21lbnVfX2Ryb3Bkb3duX2F1dGhfX2xvZ2luX19saW5rIGpzLWxvZ2luIHgtcGhfX2J1dHRvbiIgaHJlZj0iaHR0cHM6Ly9yLm1haWwucnUvY2xzOTUxODI3L2UubWFpbC5ydS9sb2dpbj9sYW5nPXJ1X1JVJmFtcDtwYWdlPWh0dHBzJTNBJTJGJTJGbmV3cy5tYWlsLnJ1JTJGcG9saXRpY3MlMkY2MTE2NTQ5NSUyRiZhbXA7ZnJvbT1tdWx0aSIgeG5hbWU9ImNsYjExMjYwNjciPjxzcGFuIGNsYXNzPSJ4LXBoX19idXR0b25fX2Zha2UiPjxzcGFuIGNsYXNzPSJqcy10ZXh0IHgtcGhfX2J1dHRvbl9fZmFrZV9fdGV4dCI+0JTQvtCx0LDQstC40YLRjCDQv9C+0YfRgtC+0LLRi9C5INGP0YnQuNC6PC9zcGFuPjwvc3Bhbj48L2E+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC90ZD48dGQgY2xhc3M9IncteC1waF9fYXV0aF9fY29sIHcteC1waF9fYXV0aF9fY29sX3JpZ2h0Ij48YSBpZD0iUEhfbG9nb3V0TGluayIgY2xhc3M9IngtcGhfX2xpbmsgeC1waF9fbGlua19sYXN0IHgtcGhfX2F1dGhfX2xpbmsiIGhyZWY9Imh0dHBzOi8vci5tYWlsLnJ1L2NsczEwNzQyMDEvYXV0aC5tYWlsLnJ1L2NnaS1iaW4vbG9nb3V0P25leHQ9MSZhbXA7bGFuZz1ydV9SVSZhbXA7cGFnZT1odHRwcyUzQSUyRiUyRm5ld3MubWFpbC5ydSUyRnBvbGl0aWNzJTJGNjExNjU0OTUlMkYiIHRpdGxlPSLQstGL0YXQvtC0IiByZWw9Im5vZm9sbG93IiB4bmFtZT0iY2xiMTA3NDIwMSI+0LLRi9GF0L7QtDwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjxkaXYgaWQ9IlBIX25vQXV0aFZpZXciIHN0eWxlPSIiPjx0YWJsZSBjbGFzcz0ieC1waF9fYXV0aCIgY2VsbHNwYWNpbmc9IjAiPjx0Ym9keT48dHI+PHRkIGNsYXNzPSJ3LXgtcGhfX2F1dGhfX2NvbCB3LXgtcGhfX2F1dGhfX2NvbF9yaWdodCI+PGEgaWQ9IlBIX3JlZ0xpbmsiIGNsYXNzPSJ4LXBoX19saW5rIHgtcGhfX2F1dGhfX2xpbmsiIHJlbD0ibm9mb2xsb3ciIGhyZWY9Imh0dHBzOi8vci5tYWlsLnJ1L2NsYjExMjYwMTEvYWNjb3VudC5tYWlsLnJ1L3NpZ251cD9mcm9tPW5hdmkmYW1wO2xhbmc9cnVfUlUmYW1wO2FwcF9pZF9teXRyYWNrZXI9NTI4MjcmYW1wO3NpdGVpZD0yOSI+0KDQtdCz0LjRgdGC0YDQsNGG0LjRjzwvYT48YSBjbGFzcz0ieC1waF9fbGluayB4LXBoX19saW5rX2xhc3QgeC1waF9fYXV0aF9fbGluayIgaHJlZj0iaHR0cHM6Ly9yLm1haWwucnUvY2xzOTUxODI3L2UubWFpbC5ydS9sb2dpbj9sYW5nPXJ1X1JVJmFtcDtwYWdlPWh0dHBzJTNBJTJGJTJGbmV3cy5tYWlsLnJ1JTJGcG9saXRpY3MlMkY2MTE2NTQ5NSUyRiIgcmVsPSJub2ZvbGxvdyIgaWQ9IlBIX2F1dGhMaW5rIiB4bmFtZT0iY2xiOTUxODI3Ij7QktGF0L7QtDwvYT48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PGRpdiBpZD0iUEhfaW5uZXJIVE1MIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PC9kaXY+PCEtLVtpZiBJRSA3XT48c2NyaXB0PnZhciBfX19fX19fX19fX19pZTcgPSB0cnVlOzwvc2NyaXB0PjwhW2VuZGlmXS0tPjwhLS1baWYgSUUgOF0+PHNjcmlwdD52YXIgX19fX19fX19fX19faWU4ID0gdHJ1ZTs8L3NjcmlwdD48IVtlbmRpZl0tLT48c2NyaXB0PgoJCQlpZiAoIXdpbmRvdy5fX1BIUykgdmFyIF9fUEhTID0ge307CgoJCQkoZnVuY3Rpb24gKHMpIHsKCQkJCWNvbnN0IGxvZ2luT3B0aW9ucyA9IHsKCQkJCQlwcm9qZWN0OiAnb3RoZXInCgkJCQkJLCBhcHBfaWRfbXl0cmFja2VyIDogJzUyODI3JwoJCQkJfQoKCQkJCXMubG9naW5PcHRpb25zID0gbG9naW5PcHRpb25zOwoJCQkJcy5leHAgPSB7fTsKCQkJCQoJCQkJcy5sYW5nID0gInJ1X1JVIjsKCQkJCXMubG9nRGV0YWlscyA9IHRydWU7CgkJCQlzLm1heEFjY291bnRzID0gMjA7CgkJCQlzLmJvdFRpbWVyID0gNzAwOwoJCQkJcy5laWQgPSAnJzsKCQkJCXMuaWQgPSA1MjU0Njg7CgkJCQlzLnNldHRpbmdzSWQgPSArJzM3NTcwNjkwJzsKCQkJCXMuc2l0ZWlkID0gKycyOSc7CgkJCQlzLnNpdGV6b25lID0gKycnOwoJCQkJcy5wdiA9ICcyJzsKCQkJCXMucmJ2ID0gJzIuMTAxNSc7CgkJCQlzLnJlZ2lvbiA9ICfQldC60LDRgtC10YDQuNC90LHRg9GA0LMnOwoJCQkJcy5sb2dpbkxpbmsgPSAnaHR0cHM6Ly9yLm1haWwucnUvY2xzOTUxODI3L2UubWFpbC5ydS9sb2dpbj9sYW5nPXJ1X1JVJnBhZ2U9aHR0cHMlM0ElMkYlMkZuZXdzLm1haWwucnUlMkZwb2xpdGljcyUyRjYxMTY1NDk1JTJGJzsKCQkJCXMuYXV0aEZvcm1FeHREb21haW5zRW5hYmxlZCA9IGZhbHNlOwoJCQkJcy5wb3J0YWxBdXRoRW5hYmxlZCA9IHRydWU7CgkJCQlzLmF1dGhGb3JtRW5hYmxlZCA9IHRydWU7CgkJCQkKCQkJCXMuZGlzYWJsZUdhbWVzQ291bnRlciA9IGZhbHNlOwoJCQkJcy5sb2dpbkxpbmtYTmFtZSA9ICdjbGIxMTI2MDY3JzsKCQkJCXMucmVnaXN0ZXJCYWNrVXJsID0gZmFsc2U7CgkJCQlzLmJpekxpbmtzID0gZmFsc2U7CgkJCQlzLmVuYWJsZUxvdmVDb3VudGVyID0gdHJ1ZTsKCQkJCXMuZW5hYmxlT2tDb3VudGVyID0gdHJ1ZTsKCQkJCXMubWFpbEV2ZW50cyA9IGZhbHNlOwoJCQkJcy5kaXNhYmxlSUZDaGVjayA9IGZhbHNlOwoJCQkJcy5tYWlsU3BsYXNoVXBkYXRlID0gZmFsc2U7CgkJCQlzLnNldHRpbmdzVGV4dCA9IGZhbHNlOwoJCQkJcy5hcHBJZE15dHJhY2tlciA9ICI1MjgyNyI7CgkJCQlzLnNldHRpbmdzUGFnZSA9IGZhbHNlOwoJCQkJcy5zaG93UGFzc3dvcmQgPSBmYWxzZTsKCQkJCXMuc2hvd1ZLID0gdHJ1ZTsKCQkJCXMuaGlkZU9LID0gZmFsc2U7CgkJCQlzLmlzRHVwbGljYXRlQ291bnRlcnMgPSBmYWxzZTsKCQkJCXMuaXNEdXBsaWNhdGVQcm9qZWN0c0NvdW50ZXJzID0gZmFsc2U7CgkJCQlzLmlzU2hvd0RvdCA9IHRydWU7CgkJCQlzLnhockVuYWJsZWRPSyA9IGZhbHNlOwoJCQkJcy5lbmFibGVUYXJnZXRCbGFuayA9IGZhbHNlOwoJCQkJcy5sb2dpbkZyb21Qcm9qZWN0ID0gZmFsc2U7CgkJCQlzLnBhdXNlVXBkYXRlID0gZmFsc2U7CgkJCQlzLnBhdXNlVXBkYXRlVGltZSA9IDA7CgkJCQlzLmF1dGhHYXRlID0gdHJ1ZTsKCQkJCXMuaXNBdXRoR2F0ZU1vYmlsZVJlZGlyZWN0ID0gZmFsc2U7CgkJCQlzLmF1dGhHYXRlSlMgPSAiaHR0cHM6Ly9pbWcuaW1nc21haWwucnUvaGIvZS5tYWlsLnJ1L2F1dGguZ2F0ZS8yLjEwLjEvYXV0aEdhdGUuanMiOwoJCQkJcy5zZWN1cml0eVNldHRpbmdzTGluayA9ICJodHRwczovL2lkLm1haWwucnUvc2VjdXJpdHkiOwoJCQkJcy5hdXRoR2F0ZUpTSGFzVmVyID0gdHJ1ZTsKCQkJCQoJCQkJcy5kZXZBdXRoID0gLyhefFwuKWRldm1haWxcLnJ1JC8udGVzdCh3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpOwoJCQkJaWYgKCFzLnNvY2lhbEF1dGgpIHMuc29jaWFsQXV0aCA9IGZhbHNlO3MuZXh0ZXJuYWxKUyA9ICdodHRwczovL2ltZy5pbWdzbWFpbC5ydS9waC8wLjY1LjM1L2V4dGVybmFsLm1pbi5qcyc7CgkJCQlzLmpzb25wRW5hYmxlZD0rJyc7CgkJCQlzLnByb2plY3Q9J290aGVyJzsKCQkJCXMucHJvamVjdHNNZW51PXsicHJvamVjdHMiOiBbeyJpdGVtcyI6IFt7InRpdGxlIjogItCQ0LLRgtC+IiwidXJsIjogImh0dHBzOi8vdHJrLm1haWwucnUvYy9sZm1uNTkifSx7InRpdGxlIjogItCT0L7RgNC+0YHQutC+0L/RiyIsInVybCI6ICJodHRwczovL3Ryay5tYWlsLnJ1L2Mvc3htZzkyIn0seyJ0aXRsZSI6ICLQlNC10YLQuCIsInVybCI6ICJodHRwczovL3Ryay5tYWlsLnJ1L2MvYzZnNWQ5In0seyJ0aXRsZSI6ICLQlNC+0LHRgNC+IiwidXJsIjogImh0dHBzOi8vdHJrLm1haWwucnUvYy90MmVtZDYifSx7InRpdGxlIjogItCU0L7QvCIsInVybCI6ICJodHRwczovL3Ryay5tYWlsLnJ1L2MveDFubDc1In0seyJ0aXRsZSI6ICLQl9Cw0LTQsNGH0LgiLCJ1cmwiOiAiaHR0cHM6Ly90cmsubWFpbC5ydS9jL291ZzY3NCJ9LHsidGl0bGUiOiAi0JfQstC+0L3QutC4IiwidXJsIjogImh0dHBzOi8vdHJrLm1haWwucnUvYy9zOGMyajYifSx7InRpdGxlIjogItCX0LTQvtGA0L7QstGM0LUiLCJ1cmwiOiAiaHR0cHM6Ly90cmsubWFpbC5ydS9jL3ZtNjVpNiJ9LHsidGl0bGUiOiAi0JrQuNC90L4iLCJ1cmwiOiAiaHR0cHM6Ly90cmsubWFpbC5ydS9jL3FqZW5nOCJ9LHsidGl0bGUiOiAi0JvQtdC00LgiLCJ1cmwiOiAiaHR0cHM6Ly90cmsubWFpbC5ydS9jL3A3d3B0MiJ9LHsidGl0bGUiOiAi0JzQvtC5INCc0LjRgCIsInVybCI6ICJodHRwczovL3Ryay5tYWlsLnJ1L2MvZGludnozIn0seyJ0aXRsZSI6ICLQntCx0LvQsNC60L4iLCJ1cmwiOiAiaHR0cHM6Ly90cmsubWFpbC5ydS9jL3Q0NmVnNyJ9LHsidGl0bGUiOiAi0J7RgtCy0LXRgtGLIiwidXJsIjogImh0dHBzOi8vdHJrLm1haWwucnUvYy9uZXA0YTcifSx7InRpdGxlIjogItCf0LjRgtC+0LzRhtGLIiwidXJsIjogImh0dHBzOi8vdHJrLm1haWwucnUvYy94OHBqNzkifSx7InRpdGxlIjogItCf0L7Qs9C+0LTQsCIsInVybCI6ICJodHRwczovL3Ryay5tYWlsLnJ1L2MvcXRjeWg5In0seyJ0aXRsZSI6ICLQodC/0L7RgNGCIiwidXJsIjogImh0dHBzOi8vdHJrLm1haWwucnUvYy9rejVqajEifSx7InRpdGxlIjogItCi0JIg0L/RgNC+0LPRgNCw0LzQvNCwIiwidXJsIjogImh0dHBzOi8vdHJrLm1haWwucnUvYy9rN3EzOTgifSx7InRpdGxlIjogItCm0LXQvdGC0YAg0L7Qv9C70LDRgiIsInVybCI6ICJodHRwczovL3Ryay5tYWlsLnJ1L2MvbDloaGY4In0seyJ0aXRsZSI6ICLQqNGC0YDQsNGE0YsiLCJ1cmwiOiAiaHR0cHM6Ly90cmsubWFpbC5ydS9jL2JtaHhnOSJ9LHsidGl0bGUiOiAiSGktVGVjaCIsInVybCI6ICJodHRwczovL3Ryay5tYWlsLnJ1L2Mvam1va3g0In1dfSx7InRpdGxlIjogItCU0LvRjyDQsdC40LfQvdC10YHQsCIsIml0ZW1zIjogW3sidGl0bGUiOiAiVksgVGVjaCIsInVybCI6ICJodHRwczovL3Ryay5tYWlsLnJ1L2Mva3Izdzg4In0seyJ0aXRsZSI6ICJWSyBDbG91ZCIsInVybCI6ICJodHRwczovL3Ryay5tYWlsLnJ1L2MvYnhodms5In0seyJ0aXRsZSI6ICJWSyBXb3JrU3BhY2UiLCJ1cmwiOiAiaHR0cHM6Ly90cmsubWFpbC5ydS9jL3FyNGdqNSJ9LHsidGl0bGUiOiAiVksgV29ya0Rpc2siLCJ1cmwiOiAiaHR0cHM6Ly90cmsubWFpbC5ydS9jL3oyMG9iMyJ9LHsidGl0bGUiOiAiVksgVGVhbXMiLCJ1cmwiOiAiaHR0cHM6Ly90cmsubWFpbC5ydS9jL2VkOHJuMSJ9LHsidGl0bGUiOiAiVksg0KDQtdC60LvQsNC80LAiLCJ1cmwiOiAiaHR0cHM6Ly90cmsubWFpbC5ydS9jL2Zua3lmOSJ9LHsidGl0bGUiOiAiTXlUcmFja2VyIiwidXJsIjogImh0dHBzOi8vdHJrLm1haWwucnUvYy9qMG9xYjQifSx7InRpdGxlIjogItCf0L7Rh9GC0LAg0LTQu9GPINCx0LjQt9C90LXRgdCwIiwidXJsIjogImh0dHBzOi8vdHJrLm1haWwucnUvYy95cTFtazMifSx7InRpdGxlIjogItCf0L7Rh9GC0LAg0LTQu9GPINC+0LHRgNCw0LfQvtCy0LDQvdC40Y8iLCJ1cmwiOiAiaHR0cHM6Ly90cmsubWFpbC5ydS9jL2R5dGF4NCJ9LHsidGl0bGUiOiAi0KDQtdC50YLQuNC90LMg0YHQsNC50YLQvtCyIiwidXJsIjogImh0dHBzOi8vdHJrLm1haWwucnUvYy9xOG5mdjIifV19LHsidGl0bGUiOiAi0JTRgNGD0LPQuNC1INC/0YDQvtC10LrRgtGLIiwiaXRlbXMiOiBbeyJ0aXRsZSI6ICLQkdGA0LDRg9C30LXRgCBBdG9tIiwidXJsIjogImh0dHBzOi8vdHJrLm1haWwucnUvYy9teXhnbTQiLCAiaW1nIjogImh0dHBzOi8vci5tcmFkeC5uZXQvcGljdHVyZXMvNTEvQzE0ODg1LnBuZyIsICJpbWdXaWR0aCI6ICIxNiIsICJpbWdIZWlnaHQiOiAiMTYiLCAiaW1nXzJ4IjogImh0dHBzOi8vci5tcmFkeC5uZXQvcGljdHVyZXMvREMvQzQ1MzJBLnBuZyJ9LHsidGl0bGUiOiAi0JrQsNC/0YHRg9C70LAiLCJ1cmwiOiAiaHR0cHM6Ly90cmsubWFpbC5ydS9jL3djNWJiMSIsICJpbWciOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC9waWN0dXJlcy8wRC8xOTZENEMucG5nIiwgImltZ1dpZHRoIjogIjE2IiwgImltZ0hlaWdodCI6ICIxNiIsICJpbWdfMngiOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC9waWN0dXJlcy8yQy9GMEU5NUMucG5nIn0seyJ0aXRsZSI6ICLQotCw0LzQotCw0LwiLCJ1cmwiOiAiaHR0cHM6Ly90cmsubWFpbC5ydS9jL2lnbG1wMSIsICJpbWciOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC9waWN0dXJlcy9COS8zODBFNzQucG5nIiwgImltZ1dpZHRoIjogIjE2IiwgImltZ0hlaWdodCI6ICIxNiIsICJpbWdfMngiOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC9waWN0dXJlcy9BOS9BQzdBODUucG5nIn0seyJ0aXRsZSI6ICLQrtC70LAiLCJ1cmwiOiAiaHR0cHM6Ly90cmsubWFpbC5ydS9jL2o2aGR5MyIsICJpbWciOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC9waWN0dXJlcy8zMy8yQ0RFOUIucG5nIiwgImltZ1dpZHRoIjogIjE2IiwgImltZ0hlaWdodCI6ICIxNiIsICJpbWdfMngiOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC9waWN0dXJlcy9BQS9GRUUyMTUucG5nIn0seyJ0aXRsZSI6ICJJQ1EgTmV3IiwidXJsIjogImh0dHBzOi8vdHJrLm1haWwucnUvYy9idGI2cDYiLCAiaW1nIjogImh0dHBzOi8vci5tcmFkeC5uZXQvcGljdHVyZXMvRTEvMTJERkEyLnBuZyIsICJpbWdXaWR0aCI6ICIxNiIsICJpbWdIZWlnaHQiOiAiMTYiLCAiaW1nXzJ4IjogImh0dHBzOi8vci5tcmFkeC5uZXQvcGljdHVyZXMvNUIvRTlBOTY2LnBuZyJ9XX1dLCAibGlua3MiOiBbeyJ0aXRsZSI6ICLQodC/0LjRgdC+0Log0LLRgdC10YUg0L/RgNC+0LXQutGC0L7QsiIsInVybCI6ICJodHRwczovL3Ryay5tYWlsLnJ1L2MvdXltODg0In1dfTsKCQkJCXMudXNlcj0nJzsKCQkJfSkod2luZG93Ll9fUEhTKTsoZnVuY3Rpb24oZCxtKXtmdW5jdGlvbiBEYShhLGUpe3JldHVybiBhLmJpbmQuYXBwbHkoYSxQLmNhbGwoYXJndW1lbnRzLDEpKX1mdW5jdGlvbiBiYShhKXtmb3IodmFyIGE9YXx8e30sZT0xLGM9YXJndW1lbnRzLmxlbmd0aDtlPGM7ZSsrKXt2YXIgYj1hcmd1bWVudHNbZV0sZDtmb3IoZCBpbiBiKWIuaGFzT3duUHJvcGVydHkoZCkmJihhW2RdPWJbZF0pfXJldHVybiBhfWZ1bmN0aW9uIEVhKGEsZSl7Zm9yKHZhciBiIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsYikmJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxiKSYmKGFbYl09ZVtiXSk7cmV0dXJuIGF9ZnVuY3Rpb24gY2EoYSl7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpfWZ1bmN0aW9uIEZhKGEsZSxiLGYpe3ZhciBkPSIiLGc9W10saj0wO2lmKCJzdHJpbmciPT09dHlwZW9mIGEpZy5wdXNoKFthLGVdKSxqKz1lLCJvYmplY3QiPT10eXBlb2YgYiYmCihmPWIsYj1IKTtlbHNle2Zvcih2YXIgayBpbiBhKWEuaGFzT3duUHJvcGVydHkoaykmJihnLnB1c2goW2ssYVtrXV0pLGorPWFba10pOyJzdHJpbmciPT10eXBlb2YgZT8oZj1iLGI9ZSk6Im9iamVjdCI9PXR5cGVvZiBlJiYoZj1lLGI9SCl9dm9pZCAwPT09YiYmKGI9SCk7YT0wO2ZvcihlPWcubGVuZ3RoO2E8ZTthKyspZ1thXT1nW2FdLmpvaW4oIjoiKTsib2JqZWN0Ij09dHlwZW9mIGYmJigic3RyaW5nIj09dHlwZW9mIGYucmxvZyYmZi5ybG9nLmxlbmd0aCYmQXJyYXkuaXNBcnJheShmLnJsb2dfbWVzc2FnZSkmJmYucmxvZ19tZXNzYWdlLmxlbmd0aCkmJihkPSImcmxvZz0iK2YucmxvZysiJnJsb2dfbWVzc2FnZT0iK2YucmxvZ19tZXNzYWdlLmpvaW4oIiwiKSsoZi5lbWFpbD8iJmVtYWlsPSIrZi5lbWFpbDoiIikpOyhuZXcgSW1hZ2UpLnNyYz0iLy9zdGF0LnJhZGFyLmltZ3NtYWlsLnJ1L3VwZGF0ZT9wPWhlYWRsaW5lJnQ9IitiKyImdj0iK2orIiZpPSIrZy5qb2luKCIsIikrCihkb2N1bWVudC5yZWZlcnJlcj8iJnI9Iitlc2NhcGUoZG9jdW1lbnQucmVmZXJyZXIpOiIiKStkKyImcm5kPSIrTWF0aC5yYW5kb20oKX1mdW5jdGlvbiBHYShhLGUsYil7ZnVuY3Rpb24gZigpe2EoKTtnfHwoZD1RKGYsZSkpfXZhciBkLGc7YiYmYSgpO2Q9UShmLGUpO3JldHVybiBmdW5jdGlvbigpe2c9ITA7ZGEoZCl9fWZ1bmN0aW9uIEhhKGEpe2Euc3RvcFByb3BhZ2F0aW9uP2Euc3RvcFByb3BhZ2F0aW9uKCk6YS5jYW5jZWxCdWJibGU9ITA7YS5wcmV2ZW50RGVmYXVsdD9hLnByZXZlbnREZWZhdWx0KCk6YS5yZXR1cm5WYWx1ZT0hMX1mdW5jdGlvbiBJYShhKXthLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExfWZ1bmN0aW9uIGVhKGEsZSxiLGYpe2lmKGUpaWYoZS5hZGRFdmVudExpc3RlbmVyKWVbYT8iYWRkRXZlbnRMaXN0ZW5lciI6InJlbW92ZUV2ZW50TGlzdGVuZXIiXShiLGYsITEpO2Vsc2UgZVthPyJhdHRhY2hFdmVudCI6ImRldGFjaEV2ZW50Il0oIm9uIisKYixmKX1mdW5jdGlvbiB5KGEpe3JldHVybiBhJiYxPT1hLm5vZGVUeXBlfWZ1bmN0aW9uIGZhKGEpeyhmdW5jdGlvbigpe2Zvcih2YXIgYSxiPWFyZ3VtZW50cyxmPWIubGVuZ3RoO2YtLTspe2E9YltmXS5zcGxpdCgiLCIpO2Zvcih2YXIgaT1hLmxlbmd0aDtpLS07KXt2YXIgZz1hW2ldLGo9dm9pZCAwLGs9cGFyc2VJbnQoMUU5Kk1hdGgucmFuZG9tKCkpLG49dm9pZCAwO2lmKGo9Zy5tYXRjaCgvXig/OmNsKFtibl0pfChbYWRnaW5dKSkoXGQrKSg/OnN6KFxkKykpPy8pKWpbMV0/bj0icyIralsxXToibiI9PWpbMl0/bj0ibmMiOigiaSI9PWpbMl0mJihrPW51bGwpLG49alsyXSksbis9alszXSsiLmdpZj8iLGpbNF0mJihuKz0ic3o9IitqWzRdKSxrJiYobis9IiZybmQ9IitrKSxkLnNldHRpbmdzLmVpZCYmKG4rPSImdGVzdF9pZD0iK2Quc2V0dGluZ3MuZWlkKSwobmV3IEltYWdlKS5zcmM9Ii8vcnMubWFpbC5ydS8iK259fX0pKGEpfWZ1bmN0aW9uIEphKGEpe2VhKDEsYSwibW91c2Vkb3duIiwKZnVuY3Rpb24oYSl7YXx8KGE9d2luZG93LmV2ZW50KTtmb3IoYT1hLnRhcmdldHx8YS5zcmNFbGVtZW50O2E7KWEuZ2V0QXR0cmlidXRlJiZhLmdldEF0dHJpYnV0ZSgieG5hbWUiKSYmZmEoYS5nZXRBdHRyaWJ1dGUoInhuYW1lIikpLGE9YS5wYXJlbnROb2RlfSl9ZnVuY3Rpb24gS2EoYSxlKXt2YXIgYjtiPXkoZSk/ZnVuY3Rpb24oYSxlKXtyZXR1cm4gYT09ZX06ZnVuY3Rpb24oYSxlKXtyZXR1cm4gSShhLGUpfTtmb3IodmFyIGY9YS5wYXJlbnROb2RlO2Y7KXtpZihiKGYsZSkpcmV0dXJuIGY7Zj1mLnBhcmVudE5vZGV9cmV0dXJuITF9ZnVuY3Rpb24gTGEoYSl7Zm9yKDthLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYS5maXJzdENoaWxkKX1mdW5jdGlvbiBJKGEsZSl7cmV0dXJuIHkoYSkmJko/YS5jbGFzc0xpc3QuY29udGFpbnMoZSk6ISF+KCIgIithLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoIiAiK2UrIiAiKX1mdW5jdGlvbiBSKGEsZSl7aWYoeShhKSlpZihKKWZvcih2YXIgZT0KZS5zcGxpdCgiICIpLGI9MDtiPGUubGVuZ3RoO2IrKylhLmNsYXNzTGlzdC5hZGQoZVtiXSk7ZWxzZSFJKGEsZSkmJihhLmNsYXNzTmFtZSs9IiAiK2UpfWZ1bmN0aW9uIGdhKGEsZSl7eShhKSYmKEo/YS5jbGFzc0xpc3QucmVtb3ZlKGUpOmEuY2xhc3NOYW1lPWEuY2xhc3NOYW1lLnJlcGxhY2UoUmVnRXhwKCIoXnxcXHMpIitlKyIoXFxzfCQpIiwiZyIpLCIkMSIpKX1mdW5jdGlvbiBNYShhLGUpe2lmKCF5KGEpKXJldHVybiBKP2EuY2xhc3NMaXN0LnRvZ2dsZShlKTpJKGEsZSk/KGdhKGEsZSksITEpOihSKGEsZSksITApfWZ1bmN0aW9uIE5hKGEpe2lmKCJzdHJpbmciIT09dHlwZW9mIGF8fCFhKXJldHVybiBudWxsO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShhKX1jYXRjaChlKXt0aHJvdyBlO319ZnVuY3Rpb24gT2EoKXtyZXR1cm4hIWIuU0Nvb2tpZS5nZXRHbG9iYWwoaGEpfWZ1bmN0aW9uIFBhKGEpe3ZhciBlPXsiJiI6IiZhbXA7IiwiPCI6IiZsdDsiLCI+IjoiJmd0OyIsJyInOiImcXVvdDsifSwKYj1bXSxmO2ZvcihmIGluIGUpYi5wdXNoKGYpO2I9IlsiK2Iuam9pbigiIikrIl0iO2Y9ZnVuY3Rpb24oYSl7cmV0dXJuIGVbYV19O3JldHVybiJzdHJpbmciPT09dHlwZW9mIGEmJlJlZ0V4cChiKS50ZXN0KGEpP2EucmVwbGFjZShSZWdFeHAoYiwiZyIpLGYpOm51bGw9PWE/IiI6YX1mdW5jdGlvbiBpYSgpe3RoaXMuX2ludm9jYXRpb25zPVtdO3RoaXMuX2NvbnRleHQ9dGhpcy5fZm49bnVsbH1mdW5jdGlvbiB2KCl7fWZ1bmN0aW9uIFMoYSl7dGhpcy5fbm9kZT1iLmJ5SWQoYSk7dGhpcy5fY29udGFpbmVyPXRoaXMuX25vZGUucGFyZW50Tm9kZX1mdW5jdGlvbiBRYShhKXt0aGlzLl9jb3VudGVycz1hO2Zvcih2YXIgZSBpbiB0aGlzLl9jb3VudGVycyl0aGlzLl9jb3VudGVycy5oYXNPd25Qcm9wZXJ0eShlKSYmKHRoaXMuX2NvdW50ZXJzW2VdPW5ldyBTKHRoaXMuX2NvdW50ZXJzW2VdKSk7dGhpcy51cGRhdGU9ZnVuY3Rpb24oYSxlKXtpZigic3RyaW5nIj09dHlwZW9mIGEpe3ZhciBiPQp7fTtiW2FdPWU7dGhpcy51cGRhdGUoYil9ZWxzZSBmb3IoYiBpbiBhKWEuaGFzT3duUHJvcGVydHkoYikmJih0aGlzLl9jb3VudGVyc1tiXS51cGRhdGUoYVtiXSksdGhpcy5fY291bnRlcnNbYl0uX2lzQW5pbT1kLmFjdGl2ZVVzZXIoKSl9fWZ1bmN0aW9uIGwoYSl7bC5fX2FsbC5wdXNoKHRoaXMpO3RoaXMuX29wdHM9YTt0aGlzLl9vcGVuPXRoaXMuX29wZW4uYmluZCh0aGlzKTt0aGlzLl9iYXNlQ2xhc3M9YS5iYXNlQ2xhc3M7dGhpcy5fcm9vdE5vZGU9YS5yb290Tm9kZTt0aGlzLl9kcm9wZG93bj1hLmRyb3Bkb3duO3RoaXMuX2J1dHRvbj1hLmJ1dHRvbjt0aGlzLl9vcGVuQ291bnRlcj1hLm9wZW5Db3VudGVyfHxudWxsO3RoaXMuX2hpZGVUaW1lb3V0PW51bGw7dGhpcy5fb3JpZW50YXRpb249dGhpcy5fb3B0cy5vcmllbnRhdGlvbjt0aGlzLl9vcGVuQ2xhc3M9dGhpcy5fYmFzZUNsYXNzKyJfb3BlbiI7dGhpcy5fcmlnaHRDbGFzcz10aGlzLl9vcGVuQ2xhc3MrIl9yaWdodCI7CnRoaXMuX2xlZnRDbGFzcz10aGlzLl9vcGVuQ2xhc3MrIl9sZWZ0Ijt0aGlzLl9pbml0ZWQ9ISF0aGlzLl9kcm9wZG93bjt0aGlzLl90cmlnZ2VySGlkZU9uSW5pdD10aGlzLl90cmlnZ2VyU2hvd09uSW5pdD0hMTtiLmV2ZW50KDEsdGhpcy5fYnV0dG9uLCJjbGljayIsdGhpcy5zaG93LmJpbmQodGhpcykpfWZ1bmN0aW9uIHMoYSxlKXtlPWV8fHt9O3RoaXMuX3VybD1hO3RoaXMuX2VuY29kaW5nPWUuZW5jb2Rpbmc7dGhpcy5fSlNPTlBDYWxsYmFja1BhcmFtPWUuSlNPTlBDYWxsYmFja1BhcmFtfHwiY2FsbGJhY2siO3RoaXMuX3hockVuYWJsZWQ9IV9fUEhTLmpzb25wRW5hYmxlZCYmIWUuanNvbnBFbmFibGVkO3RoaXMuX3Byb2Nlc3Npbmc9ITE7dGhpcy5fcmVxdWVzdFNvdXJjZT1lLnJlcXVlc3RTb3VyY2U7dGhpcy5feGhyMlN1cHBvcnRlZD0hMTt0cnl7WE1MSHR0cFJlcXVlc3QmJiJ3aXRoQ3JlZGVudGlhbHMiaW4gbmV3IFhNTEh0dHBSZXF1ZXN0JiYodGhpcy5feGhyMlN1cHBvcnRlZD0KITApfWNhdGNoKGIpe319ZnVuY3Rpb24gUmEoYSl7ZnVuY3Rpb24gZSgpe2chPT0oZz1sb2NhdGlvbi5oYXNoLnJlcGxhY2UoL14jLywiIil8fG51bGwpJiZmKCl9dGhpcy5fdXNlckVtYWlsPWEudXNlckVtYWlsO3RoaXMuX19fX3VzZXI9dGhpcy5fdXNlckVtYWlsLmlubmVySFRNTHx8dm9pZCAwO3ZhciBjPSJzdHJpbmciPT10eXBlb2YgdGhpcy5fX19fdXNlciYmdGhpcy5fX19fdXNlci5sZW5ndGg7dGhpcy5fdXNlcj1kLnNldHRpbmdzLmxvZ2luRnJvbVByb2plY3QmJiJtYWlsIj09Yi5wcm9qZWN0JiZjP3RoaXMuX19fX3VzZXI6bnVsbDt0aGlzLl91cGRhdGVCeVRpbWVvdXQ9YS51cGRhdGVCeVRpbWVvdXQ7dGhpcy51cGRhdGVMYXN0UmVxdWVzdD0wO3RoaXMuX25vQXV0aFZpZXc9YS5ub0F1dGhWaWV3O3RoaXMuX2F1dGhWaWV3PWEuYXV0aFZpZXc7dGhpcy51cGRhdGVBY2NvdW50SW5mbygpO3ZhciBmPWIuYmluZCh0aGlzLnVwZGF0ZUFjY291bnRJbmZvLHRoaXMpLGk9ITE7CmlmKCF0aGlzLl91cGRhdGVCeVRpbWVvdXQpaWYod2luZG93LmpzSGlzdG9yeSYmd2luZG93LmpzSGlzdG9yeS5jaGFuZ2Upd2luZG93LmpzSGlzdG9yeS5jaGFuZ2UoZnVuY3Rpb24oKXtpJiZmKCk7aT0hMH0pO2Vsc2UgaWYoIm9uaGFzaGNoYW5nZSJpbiB3aW5kb3cpYi5ldmVudCgxLHdpbmRvdywiaGFzaGNoYW5nZSIsZik7ZWxzZXt2YXIgZz1sb2NhdGlvbi5oYXNoLnJlcGxhY2UoL14jLywiIil8fG51bGw7Yi5zZXRJbnRlcnZhbEJ5VGltZW91dChlLDUwKX19ZnVuY3Rpb24gamEoYSxlKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxmPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07InVuZGVmaW5lZCIhPT10eXBlb2YgZSYmKGIuZGVmZXI9ImRlZmVyIixiLmFzeW5jPSJhc3luYyIpO2IudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtiLnNyYz1hOyEoIm9wZXJhImluIHdpbmRvdyl8fCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlPwpmLmFwcGVuZENoaWxkKGIpOndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe2YuYXBwZW5kQ2hpbGQoYil9LCExKX1mdW5jdGlvbiB0KGEsZSl7ZT1lP2UrIiwiK2Quc2V0dGluZ3MucHJvamVjdCsiOjEiOmQuc2V0dGluZ3MucHJvamVjdCsiOjEiOyhuZXcgSW1hZ2UpLnNyYz0iLy9zdGF0LnJhZGFyLmltZ3NtYWlsLnJ1L3VwZGF0ZT9wPWhlYWRsaW5lJnQ9IithKyImaT0iK2UrIiZ2PTEmcm5kPSIrTWF0aC5yYW5kb20oKX1pZighZCl7dmFyIGI9e307bS5zd2FEb21haW49Ii8vcG9ydGFsLm1haWwucnUiO20uYXV0aERvbWFpbj0iaHR0cHM6Ly9hdXRoLm1haWwucnUiOy9eaHR0cHM/OlwvXC9bXi9dKj9cLmRldlwubWFpbFwucnUoJHxcL1xTKikvaS50ZXN0KGxvY2F0aW9uLmhyZWYpPyhtLnN3YURvbWFpbj0iLy9wb3J0YWwuZGV2Lm1haWwucnUiLG0uYXV0aERvbWFpbj0iaHR0cHM6Ly9hdXRoLmRldi5tYWlsLnJ1Iik6L15odHRwcz86XC9cL1teL10qP1wuZGV2bWFpbFwucnUoJHxcL1xTKikvaS50ZXN0KGxvY2F0aW9uLmhyZWYpJiYKKG0uc3dhRG9tYWluPSIvL3BvcnRhbC5kZXZtYWlsLnJ1IixtLmF1dGhEb21haW49Imh0dHBzOi8vYXV0aC5kZXZtYWlsLnJ1Iik7bS5zd2FUZXN0JiYobS5zd2FEb21haW49Ii8vcG9ydGFsLnRlc3QubWFpbC5ydSIsbS5hdXRoRG9tYWluPSJodHRwczovL3Rlc3QuYXV0aC5tYWlsLnJ1Iik7d2luZG93Ll9fUEg9ZD17XzpiLGV4cGVyaW1lbnRzOm0uZXhwfTtkZWxldGUgbS5leHA7ZC5zZXR0aW5ncz1tO3ZhciBQPUFycmF5LnByb3RvdHlwZS5zbGljZTt2b2lkIDA9PT1GdW5jdGlvbi5wcm90b3R5cGUuYmluZCYmKEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKGEpe3ZhciBlPVAuY2FsbChhcmd1bWVudHMsMSksYj10aGlzO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiLmFwcGx5KGEsZS5jb25jYXQoUC5jYWxsKGFyZ3VtZW50cywwKSkpfX0pO0FycmF5LmlzQXJyYXl8fChBcnJheS5pc0FycmF5PWZ1bmN0aW9uKGEpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSl9KTsKdmFyIEg9Im90aGVyIixRPXdpbmRvdy5zZXRUaW1lb3V0LGRhPXdpbmRvdy5jbGVhclRpbWVvdXQsa2E9Y2EoInBvcnRhbC1oZWFkbGluZSIpLFQ9ITEsSj0iY2xhc3NMaXN0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxTYT1BcnJheS5wcm90b3R5cGUuaW5kZXhPZj9mdW5jdGlvbihhLGIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGEsYil9OmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTAsZj1hLmxlbmd0aDtjPGY7YysrKWlmKGFbY109PWIpcmV0dXJuIGM7cmV0dXJuLTF9LGxhPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLFRhPXZvaWQgMCE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUuYmFja2dyb3VuZFNpemUmJjE8bGEsaGE9InNfYyIsbWE9e30sVWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvKFtBLVpdKS9nLGZ1bmN0aW9uKGEsYil7cmV0dXJuIi0iK2IudG9Mb3dlckNhc2UoKX0pLnJlcGxhY2UoL15tcy0vLAoiLW1zLSIpfSxWYT1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC8oW2Etel0pLShbYS16XSkvZyxmdW5jdGlvbihhLGIsZil7cmV0dXJuIGIrZi50b1VwcGVyQ2FzZSgpfSkucmVwbGFjZSgvXi0vLCIiKX0sbmE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc2xpY2UoMSk7YTp7dmFyIGM9KGErIiAiK1dhLmpvaW4oYysiICIpK2MpLnNwbGl0KCIgIiksZjtiOmlmKGY9Yy5sZW5ndGgsIkNTUyJpbiB3aW5kb3cmJiJzdXBwb3J0cyJpbiB3aW5kb3cuQ1NTKXtmb3IoO2YtLTspaWYod2luZG93LkNTUy5zdXBwb3J0cyhVYShjW2ZdKSxiKSl7Zj0hMDticmVhayBifWY9ITF9ZWxzZSBmPXZvaWQgMDtpZih2b2lkIDAhPT1mKWM9ZjtlbHNle3ZhciBkLGc7ZD1jLmxlbmd0aDtmb3IoZj0wO2Y8ZDtmKyspaWYoZz1jW2ZdLH4oIiIrZykuaW5kZXhPZigiLSIpJiYoZz1WYShnKSksdm9pZCAwIT09WGFbZ10pe2M9ITA7YnJlYWsgYX1jPSExfX1yZXR1cm4gY30sCldhPVsiTW96IiwiTyIsIm1zIiwiV2Via2l0Il0sRD1bXSxwPVtdLFhhPWZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIiE9PXR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50P2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYXJndW1lbnRzWzBdKToic3ZnIj09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP2RvY3VtZW50LmNyZWF0ZUVsZW1lbnROUy5jYWxsKGRvY3VtZW50LCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsYXJndW1lbnRzWzBdKTpkb2N1bWVudC5jcmVhdGVFbGVtZW50LmFwcGx5KGRvY3VtZW50LGFyZ3VtZW50cyl9KCJ0ZXN0ZWxlbSIpLnN0eWxlLHU9bmF2aWdhdG9yLnVzZXJBZ2VudDstMSE9dS5pbmRleE9mKCJGaXJlZm94Iik/cC5wdXNoKCJmZiIpOi0xIT11LmluZGV4T2YoIk9wZXJhIik/cC5wdXNoKCJvcGVyYSIpOi0xIT11LmluZGV4T2YoIkNocm9tZS80MCIpJiZwLnB1c2goImNocm9tZTQwIik7aWYoLTEhPXUuaW5kZXhPZigiaVBhZCIpfHwKLTEhPXUuaW5kZXhPZigiaVBob25lIil8fC0xIT11LmluZGV4T2YoImlQb2QiKSlwLnB1c2goImlvcyIpLFQ9ITA7LTEhPXUuaW5kZXhPZigiTWFjIE9TIikmJiFUP3AucHVzaCgibWFjIik6LTEhPXUuaW5kZXhPZigiV2luZG93cyIpP3AucHVzaCgid2luIik6cC5wdXNoKCJub3QtZGVzayIpOyJvbnRvdWNoc3RhcnQiaW4gd2luZG93P3AucHVzaCgidG91Y2giKTpwLnB1c2goIm5vLXRvdWNoIik7RC5wdXNoKHtuYW1lOiJjc3N0cmFuc2Zvcm1zIixmbjpmdW5jdGlvbigpe3JldHVybi0xPT09bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJBbmRyb2lkIDIuIikmJm5hKCJ0cmFuc2Zvcm0iLCJzY2FsZSgxKSIsITApfSxvcHRpb25zOnZvaWQgMH0pO3ZhciBZYT1uYSgiYm94U2hhZG93IiwiMXB4IDFweCIsITApO0QucHVzaCh7bmFtZToiYm94c2hhZG93IixmbjpZYSxvcHRpb25zOnZvaWQgMH0pO3ZhciBLLHosVSxMLFYsVztmb3IoVyBpbiBEKWlmKEQuaGFzT3duUHJvcGVydHkoVykpe0s9CltdO3o9RFtXXTt6Lm5hbWUmJksucHVzaCh6Lm5hbWUudG9Mb3dlckNhc2UoKSk7VT0iZnVuY3Rpb24iPT09dHlwZW9mIHouZm4/ei5mbigpOnouZm47Zm9yKEw9MDtMPEsubGVuZ3RoO0wrKylWPUtbTF0sbWFbVl09VSxwLnB1c2goKFU/IiI6Im5vLSIpK1YpfVIoa2EsIngtcGgtIitwLmpvaW4oIiB4LXBoLSIpKTt2YXIgb2E9MSpuZXcgRGF0ZSsiIixaYT1vYS5zdWJzdHJpbmcob2EubGVuZ3RoLTIpLCRhPWIsYWI9SCxiYj0vXHMqKFxTKylccyovZyxjYj0hL1xbbmF0aXZlXHMrY29kZVxdL2kudGVzdChkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3MrIiIpLGRiPS9cLi9nO2JhKCRhLHt0aW1lcnM6e30scGVyY2VudDpmdW5jdGlvbihhKXtyZXR1cm4gWmE8YX0sc3VwcG9ydHM6bWEsZXh0ZW5kOmJhLGFwcGVuZDpFYSxkcHI6bGEscmV0aW5hOlRhLHByb2plY3Q6YWIsc2V0VGltZW91dDpmdW5jdGlvbihhLGIpe3JldHVybiBRKGEsYil9LGNsZWFyVGltZW91dDpmdW5jdGlvbihhKXtyZXR1cm4gZGEoYSl9LApyb290Tm9kZTprYSxieUlkOmNhLGJ5Q2xhc3NOYW1lOmZ1bmN0aW9uKGEsYixjKXt2YXIgZixkOyJzdHJpbmciPT09dHlwZW9mIGEmJihjPWIsYj1hLGE9ZG9jdW1lbnQpO2M9Y3x8IiI7aWYoIWF8fG51bGw9PWIpcmV0dXJuW107Yj1iLnJlcGxhY2UoL1xzKy9naSwiLiIpOyIuIiE9YlswXSYmKGI9Ii4iK2IpO2lmKCJxdWVyeVNlbGVjdG9yQWxsImluIGEpe2M9YS5xdWVyeVNlbGVjdG9yQWxsKGMrYik7aWYoY2Ipe2Y9LTE7Zm9yKGE9W107ZD1jWysrZl07KWEucHVzaChkKTtyZXR1cm4gYX1yZXR1cm4gY31jPWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoY3x8IioiKTtiJiYoYj1iLnJlcGxhY2UoZGIsIiAiKSxiPVJlZ0V4cChiLnJlcGxhY2UoYmIsIig/PShefC4qXFxzKSQxKFxcc3wkKSkiKSkpO2Y9LTE7Zm9yKGE9W107ZD1jWysrZl07KTE9PT1kLm5vZGVUeXBlJiYoIWJ8fGIudGVzdChkLmNsYXNzTmFtZSkpJiZhLnB1c2goZCk7cmV0dXJuIGF9LHJhZGFyOkZhLGJpbmQ6RGEsc2V0SW50ZXJ2YWxCeVRpbWVvdXQ6R2EsCmV2ZW50Q2FuY2VsOkhhLGV2ZW50UHJldmVudERlZmF1bHQ6SWEsZXZlbnQ6ZWEsaXNOb2RlOnksZW1wdHlOb2RlOkxhLGNvdW50OmZhLGNvdW50RWw6SmEsaGFzUGFyZW50OkthLGhhc0NsYXNzOkkscmVtb3ZlQ2xhc3M6Z2EsYWRkQ2xhc3M6Uix0b2dnbGVDbGFzczpNYSxBcnJheUluZGV4T2Y6U2EscGFyc2VKc29uOk5hLGlzQ29ycDpPYSxpc0NvcnBDb29raWU6aGEsaU9zOlQscmVwbGFjZVVuc2FmZVN5bWJvbHM6UGF9KTt2YXIgcSxNPWZ1bmN0aW9uKGEsYixjKXtpZih2b2lkIDAhPT1iKXt2YXIgZixjPWN8fHt9O251bGw9PT1iJiYoYj0iIixjLmV4cGlyZXM9LTEpO2IrPSIiO2RvY3VtZW50LmNvb2tpZT1hKyI9IitiKyhjLmV4cGlyZXMmJihmPSJudW1iZXIiPT10eXBlb2YgYy5leHBpcmVzJiYoZj1uZXcgRGF0ZSksZi5zZXRUaW1lKGYuZ2V0VGltZSgpKzg2NEU1KmMuZXhwaXJlcyksZnx8InRvVVRDU3RyaW5nImluIGMuZXhwaXJlcyYmYy5leHBpcmVzKSYmIjsgZXhwaXJlcz0iKwpmLnRvVVRDU3RyaW5nKCl8fCIiKSsoYy5wYXRoPyI7IHBhdGg9IitjLnBhdGg6IiIpKyhjLmRvbWFpbj8iOyBkb21haW49IitjLmRvbWFpbjoiIikrKGMuc2FtZXNpdGU/IjsgU2FtZVNpdGU9IitjLnNhbWVzaXRlOiIiKSsoYy5zZWN1cmU/Ijsgc2VjdXJlIjoiIik7cmV0dXJuIGJ9aWYoIiIhPT0oZG9jdW1lbnQuY29va2llfHwiIikpcmV0dXJuIGI9KGRvY3VtZW50LmNvb2tpZS5tYXRjaChSZWdFeHAoIig/Ol58OyA/KSIrYSsiXFw9KFxcUyo/KSg/OjsgP3wkKSIpKXx8W10pWzFdLHZvaWQgMD09PWI/dm9pZCAwOmJ9OyJmdW5jdGlvbiIhPXR5cGVvZiBPYmplY3QuYXNzaWduJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LCJhc3NpZ24iLHt2YWx1ZTpmdW5jdGlvbihhLGIpe3ZhciBjPWFyZ3VtZW50cztpZihudWxsPT1hKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdCIpO2Zvcih2YXIgZj1PYmplY3QoYSksCmQ9MTtkPGFyZ3VtZW50cy5sZW5ndGg7ZCsrKXt2YXIgZz1jW2RdO2lmKG51bGwhPWcpZm9yKHZhciBqIGluIGcpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGcsaikmJihmW2pdPWdbal0pfXJldHVybiBmfSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9KTtBcnJheS5mcm9tfHwoQXJyYXkuZnJvbT1mdW5jdGlvbihhKXt2YXIgYj1bXTtpZighYSlyZXR1cm4gYjtzd2l0Y2goYS5jb25zdHJ1Y3Rvci5uYW1lKXtjYXNlICJPYmplY3QiOnJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhKTtjYXNlICJTZXQiOnJldHVybiBhLmZvckVhY2goZnVuY3Rpb24oYSl7Yi5wdXNoKGEpfSksYjtjYXNlICJNYXAiOnJldHVybiBhLmZvckVhY2goZnVuY3Rpb24oYSxmKXtiLnB1c2goW2YsYV0pfSksYjtkZWZhdWx0OnJldHVybltdfX0pO3ZhciBlYj1mdW5jdGlvbigpe3ZhciBhO2E9bmF2aWdhdG9yLnVzZXJBZ2VudDthPSEvVmVyc2lvblwvLiogU2FmYXJpXC8vLnRlc3QoYSl8fAovQ2hyb20oZXxpdW0pLy50ZXN0KGEpPyExOihhPWEubWF0Y2goL1woTWFjaW50b3NoOy4qTWFjIE9TIFggKFxkKylfKFxkKylbX1xkXSouKlwpIEFwcGxlV2ViS2l0XC8vKSkmJiIxMCI9PT1hWzFdJiYiMTQiPT09YVsyXTthfHwoYT0oYT1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9cKGlQLis7IENQVSAuKk9TIChcZCspW19cZF0qLipcKSBBcHBsZVdlYktpdFwvLykpJiYiMTIiPT09YVsxXSk7aWYoYSlyZXR1cm4iIjtkb2N1bWVudC5jb29raWU9Il9zX3Rlc3Q9MTtwYXRoPS87U2FtZVNpdGU9Tm9uZTtTZWN1cmUiO3JldHVybihhPWRvY3VtZW50LmNvb2tpZS5tYXRjaChSZWdFeHAoIig/Ol58OyApIisiX3NfdGVzdCIucmVwbGFjZSgvKFtcLiQ/Knx7fVwoXClcW1xdXFxcL1wrXl0pL2csIlxcJDEiKSsiPShbXjtdKikiKSkpJiZkZWNvZGVVUklDb21wb25lbnQoYVsxXSk/KGRvY3VtZW50LmNvb2tpZT0iX3NfdGVzdD0xO3BhdGg9LzttYXgtYWdlPS0xO1NhbWVTaXRlPU5vbmU7U2VjdXJlIiwKIjtTYW1lU2l0ZT1Ob25lO1NlY3VyZSIpOiIifSxwYT0vKF58XC4pZGV2bWFpbFwucnUkLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSksaD17X1NfY29va2llX3NldF9nZXRfcmVtb3ZlOmZ1bmN0aW9uKGEsYixjLGYpe3ZhciBkLGcsaj1SZWdFeHAoIihefFxcfCkoIitjKyI9KSguKj8pKFxcfHwkKSIpLGI9T2JqZWN0LmFzc2lnbih7ZG9tYWluOmIsZXhwaXJlczozNjUscGF0aDoiLyJ9LCI7U2FtZVNpdGU9Tm9uZTtTZWN1cmUiPT09ZWIoKSYme3NhbWVzaXRlOiJOb25lIixzZWN1cmU6ITB9KTtpZihjKXtkPU0oYSl8fCIiO2c9KGQubWF0Y2goail8fFtdKVszXTt2YXIgaz1udWxsO3ZvaWQgMCE9PWY/KGM9dm9pZCAwIT09Z3x8bnVsbD09PWY/az1kLnJlcGxhY2UoaixudWxsPT09Zj9mdW5jdGlvbihhLGIsZSxjLGYsZCl7cmV0dXJuIDA9PT1kPyIiOmZ9OiIkMSQyIitmKyIkNCIpOihkP2QrInwiOiIiKStjKyI9IitmLE0oYSxjLGIpLCIiPT09ayYmTShhLG51bGwsYikpOgpmPWc7cmV0dXJuIGZ9fSxfdGhyb3dfbm9WYWx1ZV9FcnJvcjpmdW5jdGlvbigpe3Rocm93IEVycm9yKCJuZWVkIHZhbHVlIik7fSxfX3ByZWZpeDpudWxsLF9fZG9tYWluOnBhPyIuZGV2bWFpbC5ydSI6Ii5tYWlsLnJ1IixzZXRQcm9qZWN0OmZ1bmN0aW9uKGEsYil7aWYoIWF8fCFiKXRocm93IEVycm9yKCJwcm9qZWN0IGlzIG5vdCB2YWxpZCIpOyIuIiE9PWIuc3Vic3RyKDAsMSkmJihiPSIuIitiKTtoLl9fcHJlZml4PWE7cGEmJihiPWIucmVwbGFjZSgvLlthLXowLTlcLV0qLlthLXowLTldKiQvLCIuZGV2bWFpbC5ydSIpKTtoLl9fZG9tYWluPWJ9LF9nZXRQcmVmaXg6ZnVuY3Rpb24oYSl7YXx8KGE9e30pO2EucHJlZml4PWEucHJlZml4fHxoLl9fcHJlZml4O2EuZG9tYWluPWEuZG9tYWlufHxoLl9fZG9tYWluO2lmKCFhLnByZWZpeHx8IWEuZG9tYWluKXRocm93IEVycm9yKCJydW4gc2V0UHJvamVjdCBiZWZvcmUiKTtyZXR1cm4gYX0sZ2V0R2xvYmFsOmZ1bmN0aW9uKGEpe3JldHVybiBoLl9TX2Nvb2tpZV9zZXRfZ2V0X3JlbW92ZSgicyIsCmguX19kb21haW4sYSl9LHNldEdsb2JhbDpmdW5jdGlvbihhLGIpe3ZvaWQgMD09PWImJmguX3Rocm93X25vVmFsdWVfRXJyb3IoKTtoLl9TX2Nvb2tpZV9zZXRfZ2V0X3JlbW92ZSgicyIsaC5fX2RvbWFpbixhLGIpO3JldHVybiBoLmdldEdsb2JhbChhKX0scmVtb3ZlR2xvYmFsOmZ1bmN0aW9uKGEpe3ZhciBiPWguZ2V0R2xvYmFsKGEpO2guX1NfY29va2llX3NldF9nZXRfcmVtb3ZlKCJzIixoLl9fZG9tYWluLGEsbnVsbCk7cmV0dXJuIGJ9LGdldExvY2FsOmZ1bmN0aW9uKGEsYil7Yj1oLl9nZXRQcmVmaXgoYik7cmV0dXJuIGguX1NfY29va2llX3NldF9nZXRfcmVtb3ZlKCJzXyIrYi5wcmVmaXgsYi5kb21haW4sYSl9LHNldExvY2FsOmZ1bmN0aW9uKGEsYixjKXtjPWguX2dldFByZWZpeChjKTt2b2lkIDA9PT1iJiZoLl90aHJvd19ub1ZhbHVlX0Vycm9yKCk7aC5fU19jb29raWVfc2V0X2dldF9yZW1vdmUoInNfIitjLnByZWZpeCxjLmRvbWFpbixhLGIpO3JldHVybiBoLmdldExvY2FsKGEsCmMpfSxyZW1vdmVMb2NhbDpmdW5jdGlvbihhLGIpe3ZhciBiPWguX2dldFByZWZpeChiKSxjPWguZ2V0TG9jYWwoYSxiKTtoLl9TX2Nvb2tpZV9zZXRfZ2V0X3JlbW92ZSgic18iK2IucHJlZml4LGIuZG9tYWluLGEsbnVsbCk7cmV0dXJuIGN9fTtxPWIuU0Nvb2tpZT1oO2lhLnByb3RvdHlwZT17Z2V0UXVlcnk6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmludm9rZS5iaW5kKHRoaXMpO2EucmVwbGFjZT10aGlzLnJlcGxhY2UuYmluZCh0aGlzKTtyZXR1cm4gYX0saW52b2tlOmZ1bmN0aW9uKCl7dGhpcy5fZm4/dGhpcy5fZm4uYXBwbHkodGhpcy5fY29udGV4dCxhcmd1bWVudHMpOnRoaXMuX2ludm9jYXRpb25zLnB1c2goYXJndW1lbnRzKX0scmVwbGFjZTpmdW5jdGlvbihhLGIpe2lmKCF0aGlzLl9mbil7Zm9yKHZhciBiPWJ8fHdpbmRvdyxjPTAsZj10aGlzLl9pbnZvY2F0aW9ucy5sZW5ndGg7YzxmO2MrKylhLmFwcGx5KGIsdGhpcy5faW52b2NhdGlvbnNbY10pO2RlbGV0ZSB0aGlzLl9pbnZvY2F0aW9uczsKdGhpcy5fZm49YTt0aGlzLl9jb250ZXh0PWJ9fX07Yi5leHRlbmQoYix7RGVmZXJyZWRRdWVyeTppYX0pO3YucHJvdG90eXBlPXtlbWl0OmZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBmKCl7LS1nfHxjJiZjKCl9dm9pZCAwPT1iJiYoYj17fSk7dmFyIGQ9dGhpcy5saXN0ZW5lcnMoYSk7aWYoZClmb3IodmFyIGQ9ZC5zbGljZSgpLGE9bmV3IHYuRXZlbnQoYSxiKSxnPWQubGVuZ3RoLGI9MCxqPWc7YjxqO2IrKyl7dmFyIGs9ZFtiXTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGspdHJ5e2suY2FsbCh0aGlzLGEsZil9Y2F0Y2goaCl7ZigpfX1lbHNlIGMmJmMoKX0sbGlzdGVuZXJzOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLl9ldmVudHMmJnRoaXMuX2V2ZW50c1thXSYmdGhpcy5fZXZlbnRzW2FdLmxlbmd0aCYmdGhpcy5fZXZlbnRzW2FdfSxhZGRMaXN0ZW5lcjpmdW5jdGlvbihhLGIpe2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgYil0aHJvdyBFcnJvcigiaW52YWxpZCBhcmd1bWVudCIpOwp0aGlzLl9ldmVudHN8fCh0aGlzLl9ldmVudHM9e30pO3RoaXMuX2V2ZW50c1thXXx8KHRoaXMuX2V2ZW50c1thXT1bXSk7dGhpcy5fZXZlbnRzW2FdLnB1c2goYik7dGhpcy5lbWl0KCJuZXdsaXN0ZW5lciIse3R5cGU6YX0pO3JldHVybiB0aGlzfSxvbmNlOmZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe3RoaXMucmVtb3ZlTGlzdGVuZXIoYSxjKTtiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1pZigiZnVuY3Rpb24iIT09dHlwZW9mIGIpdGhyb3cgRXJyb3IoImludmFsaWQgYXJndW1lbnQiKTt0aGlzLm9uKGEsYyk7cmV0dXJuIHRoaXN9LHJlbW92ZUxpc3RlbmVyOmZ1bmN0aW9uKGEsZSl7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBlKXRocm93IEVycm9yKCJpbnZhbGlkIGFyZ3VtZW50Iik7aWYoIXRoaXMuX2V2ZW50c1thXSlyZXR1cm4gdGhpczt2YXIgYz10aGlzLl9ldmVudHNbYV0sZj1iLkFycmF5SW5kZXhPZihjLGUpO2lmKDA+ZilyZXR1cm4gdGhpcztjLnNwbGljZShmLDEpOzA9PT0KYy5sZW5ndGgmJmRlbGV0ZSB0aGlzLl9ldmVudHNbYV07cmV0dXJuIHRoaXN9fTt2LnByb3RvdHlwZS5vbj12LnByb3RvdHlwZS5hZGRMaXN0ZW5lcjt2LkV2ZW50PWZ1bmN0aW9uKGEsYil7dGhpcy50eXBlPWE7dGhpcy5kYXRhPWJ9O3YucmVsYXk9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZj0wLGQ9YS5sZW5ndGg7ZjxkO2YrKyl7dmFyIGc9YVtmXTtiLm9uKGcsZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKCl7Yy5lbWl0KGEpfX0oZykpfX07Yi5FdmVudEVtaXR0ZXI9djt2YXIgQT1mdW5jdGlvbigpe3ZhciBhPXEuZ2V0R2xvYmFsKHFhKSxiO2lmKCFhKXJldHVybiBFKDAsMCx7aWQ6MCxjdXJyZW50OjB9KSx7aWQ6MCxjdXJyZW50OjB9O2I9cGFyc2VJbnQoYS5zdWJzdHIoMCwzKSwxNik7YT1wYXJzZUludChhLnN1YnN0cigzLDYpLDE2KTtyZXR1cm57aWQ6YixjdXJyZW50OmF9fSxFPWZ1bmN0aW9uKGEsYixjKXsoYz1jfHxBKCkpfHwoYz17fSk7dm9pZCAwIT09YSYmKGMuaWQ9CmEpO2MuaWQ9dm9pZCAwIT1jLmlkJiZjLmlkLnRvU3RyaW5nKDE2KTtzd2l0Y2goYy5pZC5sZW5ndGgpe2Nhc2UgMTpjLmlkPSIwMCIrYy5pZDticmVhaztjYXNlIDI6Yy5pZD0iMCIrYy5pZH12b2lkIDAhPT1iJiYoYy5jdXJyZW50PWIpO2MuY3VycmVudD12b2lkIDAhPWMuY3VycmVudCYmYy5jdXJyZW50LnRvU3RyaW5nKDE2KTtzd2l0Y2goYy5jdXJyZW50Lmxlbmd0aCl7Y2FzZSAxOmMuY3VycmVudD0iMDAiK2MuY3VycmVudDticmVhaztjYXNlIDI6Yy5jdXJyZW50PSIwIitjLmN1cnJlbnR9cS5zZXRHbG9iYWwocWEsYy5pZCtjLmN1cnJlbnQpfSxHPWZ1bmN0aW9uKGEsZSl7ZnVuY3Rpb24gYyhhKXtOIT09YSYmKE49YSxkLmVtaXQoInZpc2liaWxpdHljaGFuZ2UiLHtoaWRkZW46YSx2aXNpYmxlOiFhfSkpfXZhciBmO2lmKGUpZj1lLmhpZGRlbixjKGYpO2Vsc2UgaWYoZj0iZm9jdXMiPT1hLnR5cGV8fCJmb2N1c2luIj09YS50eXBlPyExOiJibHVyIj09YS50eXBlfHwiZm9jdXNvdXQiPT0KYS50eXBlPyEwOiEhZG9jdW1lbnRbRl0sImZvY3Vzb3V0Ij09YS50eXBlKXI9Yi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cj12b2lkIDA7YyhmKX0sMCk7ZWxzZSBpZigiZm9jdXNpbiI9PWEudHlwZSl2b2lkIDAhPT1yP2IuY2xlYXJUaW1lb3V0KHIpOmMoZikscj12b2lkIDA7ZWxzZSBpZigocmF8fHNhKSYmIUIpaWYoZilyPWIuc2V0VGltZW91dChmdW5jdGlvbigpe3I9dm9pZCAwO3RyeXtBKCkuY3VycmVudD09PXd8fGMoZil9Y2F0Y2goYSl7Yi5yYWRhcigiY29va2llRXJyb3IiLDEpfX0sMjAwKTtlbHNle3RyeXtBKCkuY3VycmVudCE9PXcmJihFKHZvaWQgMCx3KSxjKGYpKX1jYXRjaChpKXtiLnJhZGFyKCJjb29raWVFcnJvciIsMSl9Yi5jbGVhclRpbWVvdXQocik7cj12b2lkIDB9ZWxzZSBjKGYpfSxGLHIsTj0hMSxCLFg9e2hpZGRlbjoidmlzaWJpbGl0eWNoYW5nZSIsbW96SGlkZGVuOiJtb3p2aXNpYmlsaXR5Y2hhbmdlIix3ZWJraXRIaWRkZW46IndlYmtpdHZpc2liaWxpdHljaGFuZ2UiLAptc0hpZGRlbjoibXN2aXNpYmlsaXR5Y2hhbmdlIixvSGlkZGVuOiJvdmlzaWJpbGl0eWNoYW5nZSJ9O2ZvcihGIGluIFgpaWYoWC5oYXNPd25Qcm9wZXJ0eShGKSYmRiBpbiBkb2N1bWVudCl7Qj1YW0ZdO2JyZWFrfXZhciBDPW5hdmlnYXRvci51c2VyQWdlbnQsdGE9LTE8Qy5pbmRleE9mKCJpUGFkIil8fC0xPEMuaW5kZXhPZigiaVBob25lIil8fC0xPEMuaW5kZXhPZigiaVBvZCIpLHJhPSFCJiYtMTxDLmluZGV4T2YoIk9wZXJhIiksc2E9MDxDLmluZGV4T2YoIlNhZmFyaSIpJiYtMT09PUMuaW5kZXhPZigiQ2hyb21lIiksZmI9KHJhfHx0YXx8c2EpJiYhQixxYT0idCI7dHJ5e2lmKGZiKXt2YXIgdyxPPUEoKTtPLmlkKys7dmFyIFk9Ty5pZDs0MDk1PFkmJihZPTApO0UoWSk7Tz1BKCk7dz1PLmlkO0Uodm9pZCAwLHcpfX1jYXRjaChrYil7Yi5yYWRhcigiY29va2llRXJyb3IiLDEpfWlmKEIpYi5ldmVudCgxLGRvY3VtZW50LEIsRyk7ZWxzZSBpZih0YSl7dmFyIHVhPW5ldyBEYXRlLAp2YT1mdW5jdGlvbigpe2IuY2xlYXJUaW1lb3V0KDUwKTtiLnNldFRpbWVvdXQodmEsNTApO3ZhciBhPW5ldyBEYXRlOzEwMDxhLmdldFRpbWUoKS11YS5nZXRUaW1lKCkmJkEoKS5jdXJyZW50IT09dyYmKEUodm9pZCAwLHcpLE49ITEsRyh7fSx7aGlkZGVuOiEwfSksTj0hMCxHKHt9LHtoaWRkZW46ITF9KSk7dWE9YX07Yi5zZXRUaW1lb3V0KHZhLDUwKX1lbHNlIGIuZXZlbnQoMSx3aW5kb3csImZvY3VzIixHKSxiLmV2ZW50KDEsd2luZG93LCJibHVyIixHKTtTLnByb3RvdHlwZT17dmlzaWJsZUNsYXNzOiJ4LXBoX19saW5rX2V4dCIsc2hvdzpmdW5jdGlvbigpe2IuYWRkQ2xhc3ModGhpcy5fY29udGFpbmVyLHRoaXMudmlzaWJsZUNsYXNzKTtiLmNsZWFyVGltZW91dCh0aGlzLl9hbmltVGltZW91dCk7Yi5jbGVhclRpbWVvdXQodGhpcy5fYW5pbVJlc2V0VGltZW91dCk7dGhpcy5fYW5pbSYmdGhpcy5faXNBbmltJiYodGhpcy5fYW5pbVRpbWVvdXQ9Yi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi5hZGRDbGFzcyh0aGlzLl9ub2RlLAoieC1waC1hbmltYXRlZF9mbGFzaCIpO3RoaXMuX2FuaW1SZXNldFRpbWVvdXQ9Yi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi5yZW1vdmVDbGFzcyh0aGlzLl9ub2RlLCJ4LXBoLWFuaW1hdGVkX2ZsYXNoIil9LmJpbmQodGhpcyksMUUzKX0uYmluZCh0aGlzKSwxMDApKX0saGlkZTpmdW5jdGlvbigpe2IucmVtb3ZlQ2xhc3ModGhpcy5fY29udGFpbmVyLHRoaXMudmlzaWJsZUNsYXNzKX0sdmFsdWU6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YSYmKHRoaXMuX25vZGUuaW5uZXJIVE1MPXRoaXMucHJlcGFyZShhKSk7cmV0dXJuIHBhcnNlSW50KHRoaXMuX25vZGUuaW5uZXJIVE1MLDEwKXx8dm9pZCAwfSxwcmVwYXJlOmZ1bmN0aW9uKGEpe2E9cGFyc2VJbnQoYSk7cmV0dXJuIDA8YT9hOjB9LHVwZGF0ZTpmdW5jdGlvbihhKXt2YXIgZT10aGlzLnZhbHVlKCk7Yi5jbGVhclRpbWVvdXQodGhpcy5fdXBkYXRlVGltZW91dCk7dGhpcy5fdXBkYXRlVGltZW91dD1iLnNldFRpbWVvdXQoZnVuY3Rpb24oKXthPQp0aGlzLnZhbHVlKGEpO2lmKHZvaWQgMCE9PWUmJmE+ZXx8ZC5hY3RpdmVVc2VyKCkhPXRoaXMuX2lzQW5pbSl0aGlzLl9hbmltPSEwO3RoaXNbYT8ic2hvdyI6ImhpZGUiXSgpO3RoaXMuX2FuaW09ITF9LmJpbmQodGhpcyksMTAwKX19O2IuQ291bnRlcnM9UWE7Yi5Db3VudGVyPVM7bC5fX2FsbD1bXTtsLnJlc2V0U2hvd09uSW5pdD1mdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPWwuX19hbGwubGVuZ3RoO2I8YztiKyspe3ZhciBmPWwuX19hbGxbYl07aWYoIWF8fGYhPT1hKWYuX3RyaWdnZXJTaG93T25Jbml0PSExLGYuX3RyaWdnZXJIaWRlT25Jbml0PSExfX07bC5oaWRlQWxsPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPTAsYj1sLl9fYWxsLmxlbmd0aDthPGI7YSsrKXt2YXIgYz1sLl9fYWxsW2FdO2MuX3RyaWdnZXJTaG93T25Jbml0PSExO2MuX3RyaWdnZXJIaWRlT25Jbml0PSExO2MuaGlkZSgpfX07Yi5leHRlbmQobC5wcm90b3R5cGUsYi5FdmVudEVtaXR0ZXIucHJvdG90eXBlLHtpbml0OmZ1bmN0aW9uKGEpeyF0aGlzLl9kcm9wZG93biYmCmEmJih0aGlzLl9kcm9wZG93bj1hLHRoaXMuX3Jvb3ROb2RlLmFwcGVuZENoaWxkKGEpLHRoaXMuX2luaXRlZD0hMCx0aGlzLl90cmlnZ2VyU2hvd09uSW5pdCYmdGhpcy5zaG93KCksdGhpcy5fdHJpZ2dlckhpZGVPbkluaXQmJnRoaXMuaGlkZSgpLHRoaXMuX3RyaWdnZXJIaWRlT25Jbml0PXRoaXMuX3RyaWdnZXJTaG93T25Jbml0PSExKX0sX21vdXNlSW46ZnVuY3Rpb24oKXtiLmNsZWFyVGltZW91dCh0aGlzLl9oaWRlVGltZW91dCl9LF9tb3VzZU91dDpmdW5jdGlvbigpe2IuY2xlYXJUaW1lb3V0KHRoaXMuX2hpZGVUaW1lb3V0KTt0aGlzLl9oaWRlVGltZW91dD1iLnNldFRpbWVvdXQodGhpcy5oaWRlLmJpbmQodGhpcyksNEUzKX0saXNWaXNpYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGIuaGFzQ2xhc3ModGhpcy5fcm9vdE5vZGUsdGhpcy5fb3BlbkNsYXNzKX0sc2hvdzpmdW5jdGlvbihhKXtiLmNsZWFyVGltZW91dCh0aGlzLl9oaWRlVGltZW91dCk7YSYmYi5ldmVudFByZXZlbnREZWZhdWx0KGEpOwp0aGlzLl9pbml0ZWQ/dGhpcy5pc1Zpc2libGUoKXx8dGhpcy5lbWl0KCJzaG93Iix7fSxmdW5jdGlvbigpe3RoaXMuX190b2dnbGUoITApfS5iaW5kKHRoaXMpKToodGhpcy5fdHJpZ2dlclNob3dPbkluaXQ9ITAsbC5yZXNldFNob3dPbkluaXQodGhpcykpfSxoaWRlOmZ1bmN0aW9uKCl7dGhpcy5faW5pdGVkP3RoaXMuaXNWaXNpYmxlKCkmJnRoaXMuZW1pdCgiaGlkZSIse30sZnVuY3Rpb24oKXt0aGlzLl9fdG9nZ2xlKCExKX0uYmluZCh0aGlzKSk6dGhpcy5fdHJpZ2dlclNob3dPbkluaXQ9IXRoaXMuX3RyaWdnZXJTaG93T25Jbml0fSxfaGlkZU90aGVyOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPTAsYj1sLl9fYWxsLmxlbmd0aDthPGI7YSsrKXt2YXIgYz1sLl9fYWxsW2FdO2MhPXRoaXMmJmMuaXNWaXNpYmxlKCkmJmMuaGlkZSgpO2MuX3RyaWdnZXJTaG93T25Jbml0PSExfX0sX2NsaWNrOmZ1bmN0aW9uKGEpe3ZhciBlPWEudGFyZ2V0fHxhLnNyY0VsZW1lbnQ7ZT09dGhpcy5fZHJvcGRvd258fApiLmhhc1BhcmVudChlLHRoaXMuX2Ryb3Bkb3duKT90aGlzLmVtaXQoImNsaWNrIix7Y2xpY2tFdmVudDphfSxiLmJpbmQodGhpcy5oaWRlLHRoaXMpKToiY2xpY2siPT1hLnR5cGUmJihiLmhhc1BhcmVudChlLHRoaXMuX3Jvb3ROb2RlKSYmYi5ldmVudFByZXZlbnREZWZhdWx0KGEpLHRoaXMuaGlkZSgpKX0sX29wZW46ZnVuY3Rpb24oKXtiLmNsZWFyVGltZW91dCh0aGlzLl9vcGVuVGltZW91dCk7dGhpcy5fb3BlblRpbWVvdXQ9Yi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYodGhpcy5fb3JpZW50YXRpb24pYi5hZGRDbGFzcyh0aGlzLl9yb290Tm9kZSx0aGlzLl9vcGVuQ2xhc3MpLGIuYWRkQ2xhc3ModGhpcy5fcm9vdE5vZGUsdGhpc1siXyIrdGhpcy5fb3JpZW50YXRpb24rIkNsYXNzIl0pO2Vsc2V7dmFyIGE9dGhpcy5fZHJvcGRvd24uY2xpZW50V2lkdGgsZT10aGlzLl9yb290Tm9kZS5vZmZzZXRMZWZ0LGM9YSsodGhpcy5fcm9vdE5vZGUub2Zmc2V0UGFyZW50PT1iLnJvb3ROb2RlPwplOjFFNCksZj1kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoO2IuYWRkQ2xhc3ModGhpcy5fcm9vdE5vZGUsdGhpcy5fb3BlbkNsYXNzKTtiLnJlbW92ZUNsYXNzKHRoaXMuX3Jvb3ROb2RlLGM8PWY/dGhpcy5fcmlnaHRDbGFzczp0aGlzLl9sZWZ0Q2xhc3MpO2IuYWRkQ2xhc3ModGhpcy5fcm9vdE5vZGUsYz5mP3RoaXMuX3JpZ2h0Q2xhc3M6dGhpcy5fbGVmdENsYXNzKTt0aGlzLl9kcm9wZG93bi5zdHlsZS5yaWdodD1lK3RoaXMuX3Jvb3ROb2RlLmNsaWVudFdpZHRoPGEmJmM+Zj8tKGEtKGUrdGhpcy5fcm9vdE5vZGUuY2xpZW50V2lkdGgpKzEwKSsicHgiOiIifWE9ZnVuY3Rpb24oKXtpZih3aW5kb3cuVVJMfHx3aW5kb3cud2Via2l0VVJMKXRoaXMuX2Ryb3Bkb3duLnN0eWxlLndpZHRoPXRoaXMuX2Ryb3Bkb3duLmNsaWVudFdpZHRoKzErInB4Iix0aGlzLl9kcm9wZG93bi5zdHlsZS53aWR0aD1udWxsfS5iaW5kKHRoaXMpO2EoKTtiLnNldFRpbWVvdXQoYSwwKX0uYmluZCh0aGlzKSwKMCl9LF9fdG9nZ2xlOmZ1bmN0aW9uKGEpe2IuY2xlYXJUaW1lb3V0KHRoaXMuX19ldmVudHNUaW1lb3V0KTt0aGlzLl9fZXZlbnRzVGltZW91dD1iLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiLmV2ZW50KGEsZG9jdW1lbnQsImNsaWNrIix0aGlzLl9fY2xpY2t8fCh0aGlzLl9fY2xpY2s9dGhpcy5fY2xpY2suYmluZCh0aGlzKSkpO2IuZXZlbnQoYSx0aGlzLl9yb290Tm9kZSwibW91c2VvdXQiLHRoaXMuX19tb3VzZU91dHx8KHRoaXMuX19tb3VzZU91dD10aGlzLl9tb3VzZU91dC5iaW5kKHRoaXMpKSk7Yi5ldmVudChhLHRoaXMuX3Jvb3ROb2RlLCJtb3VzZW92ZXIiLHRoaXMuX19tb3VzZUlufHwodGhpcy5fX21vdXNlSW49dGhpcy5fbW91c2VJbi5iaW5kKHRoaXMpKSl9LmJpbmQodGhpcyksMTApO2E/KHRoaXMuX29wZW5Db3VudGVyJiZiLmNvdW50KHRoaXMuX29wZW5Db3VudGVyKSwiYmxvY2siIT09dGhpcy5fZHJvcGRvd24uc3R5bGUuZGlzcGxheSYmKHRoaXMuX2Ryb3Bkb3duLnN0eWxlLmRpc3BsYXk9CiJibG9jayIpLHRoaXMuX29wZW4oKSxiLmV2ZW50KDEsd2luZG93LCJyZXNpemUiLHRoaXMuX29wZW4pKTooYi5yZW1vdmVDbGFzcyh0aGlzLl9yb290Tm9kZSx0aGlzLl9vcGVuQ2xhc3MpLGIucmVtb3ZlQ2xhc3ModGhpcy5fcm9vdE5vZGUsdGhpcy5fbGVmdENsYXNzKSxiLnJlbW92ZUNsYXNzKHRoaXMuX3Jvb3ROb2RlLHRoaXMuX3JpZ2h0Q2xhc3MpLGIuZXZlbnQoMCx3aW5kb3csInJlc2l6ZSIsdGhpcy5fb3BlbikpfX0pO2IuTWVudT1sO3ZhciB3YT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdO3MucHJvdG90eXBlPXtnZXQ6ZnVuY3Rpb24oYSl7YT1iLmV4dGVuZCh7ZW5jb2Rpbmc6dGhpcy5fZW5jb2RpbmcscGFyYW1zOnt9LGNvbXBsZXRlOmZ1bmN0aW9uKCl7fX0sYSk7dGhpcy5jYW5jZWwoKTtyZXR1cm4gdGhpc1t0aGlzLl9pc1hIUjIoKT8iX2dldFhIUiI6Il9nZXRTY3JpcHQiXSh0aGlzLl91cmwsYSl9LF9pc1hIUjI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5feGhyRW5hYmxlZCYmCnRoaXMuX3hocjJTdXBwb3J0ZWR9LF9nZXRVcmw6ZnVuY3Rpb24oYSxiKXt2YXIgYz0hIX5hLmluZGV4T2YoIj8iKTtiLnJuZD0obmV3IERhdGUpLmdldFRpbWUoKTtmb3IodmFyIGYgaW4gYilpZihiLmhhc093blByb3BlcnR5KGYpKXt2YXIgZD1iW2ZdOyJmdW5jdGlvbiI9PXR5cGVvZiBkJiYoZD1kKGIpKTt2b2lkIDAhPT1kJiYoYSs9KGM/IiYiOiI/IikrZisiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGQpLGM9ITApfXJldHVybiBhfSxfZ2V0WEhSOmZ1bmN0aW9uKGEsZSl7dmFyIGM9bmV3IFhNTEh0dHBSZXF1ZXN0O3RoaXMuX3Byb2Nlc3Npbmc9ITA7Yi5jbGVhclRpbWVvdXQodGhpcy5feGhyVGltZW91dCk7ZS50aW1lb3V0JiYodGhpcy5feGhyVGltZW91dD1iLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aGlzLl9wcm9jZXNzaW5nJiYoYi5jbGVhclRpbWVvdXQodGhpcy5feGhyVGltZW91dCksdGhpcy5fcHJvY2Vzc2luZz0hMSx0aGlzLmNhbmNlbCgpLGUuY29tcGxldGUoe3N0YXR1czoiZXJyb3IiLAplcnJvclR5cGU6InRpbWVvdXQifSkpfS5iaW5kKHRoaXMpLGUudGltZW91dCkpO2Mub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYodGhpcy5fcHJvY2Vzc2luZyl7dmFyIGE7aWYoND09PWMucmVhZHlTdGF0ZSl7Yi5jbGVhclRpbWVvdXQodGhpcy5feGhyVGltZW91dCk7dGhpcy5fcHJvY2Vzc2luZz0hMTt2YXIgZDtpZigyMDA9PWMuc3RhdHVzKXt0cnl7ZD1iLnBhcnNlSnNvbihjLnJlc3BvbnNlVGV4dCl9Y2F0Y2goZyl7YT0hIWd9aWYoIm9iamVjdCIhPT10eXBlb2YgZHx8IWQpYT0hMH0hYSYmMjAwPT1jLnN0YXR1cz8oYT1kLGEuZXJyb3ImJiFhLmVycm9yVHlwZSYmKGEuZXJyb3JUeXBlPSJzZXJ2ZXJFcnJvciIpKTphPWE/e3N0YXR1czoiZXJyb3IiLGVycm9yVHlwZToicGFyc2VFcnJvciJ9OjIwMCE9Yy5zdGF0dXM/e3N0YXR1czoiZXJyb3IiLGVycm9yVHlwZToibmV0RXJyb3IifTp7c3RhdHVzOiJlcnJvciJ9O3RoaXMuX3JlcXVlc3RTb3VyY2UmJihhLnJlcXVlc3RTb3VyY2U9CnRoaXMuX3JlcXVlc3RTb3VyY2UpO2UuY29tcGxldGUoYSl9fX0uYmluZCh0aGlzKTtjLm9wZW4oImdldCIsdGhpcy5fZ2V0VXJsKGEsZS5wYXJhbXMpLCEwKTtjLndpdGhDcmVkZW50aWFscz0hMDtjLnNlbmQobnVsbCk7dGhpcy5feGhyPWN9LF9nZXRTY3JpcHQ6ZnVuY3Rpb24oYSxlKXtmdW5jdGlvbiBjKCl7d2EuYXBwZW5kQ2hpbGQoaSk7Yi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7d2EucmVtb3ZlQ2hpbGQoaSl9LDZFNCl9dmFyIGQ9dGhpcy5fY2JOYW1lPSJfX1BISlNPTlBDYWxsYmFja18iK3MuZ2V0VXVpZCgpLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksZyxqPWUudGltZW91dDtlLnBhcmFtc1t0aGlzLl9KU09OUENhbGxiYWNrUGFyYW1dPWQ7YT10aGlzLl9nZXRVcmwoYSxlLnBhcmFtcyk7d2luZG93W2RdPWZ1bmN0aW9uKGEpe2IuY2xlYXJUaW1lb3V0KGcpO3dpbmRvd1tkXT1zLl9fUEhFbXB0eUNhbGxiYWNrO3RoaXMuX2NiTmFtZT1udWxsO3RoaXMuX3Byb2Nlc3Npbmc9CiExO3RoaXMuX3JlcXVlc3RTb3VyY2UmJihhLnJlcXVlc3RTb3VyY2U9dGhpcy5fcmVxdWVzdFNvdXJjZSk7YS5lcnJvciYmIWEuZXJyb3JUeXBlJiYoYS5lcnJvclR5cGU9InNlcnZlckVycm9yIik7ImNhbmNlbCIhPWEuc3RhdHVzJiZlLmNvbXBsZXRlKGEpfS5iaW5kKHRoaXMpO2kuZGVmZXI9ImRlZmVyIjtpLmFzeW5jPSJhc3luYyI7aS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO2UuZW5jb2RpbmcmJihpLmNoYXJzZXQ9ZS5lbmNvZGluZyk7aS5zcmM9YTshKCJvcGVyYSJpbiB3aW5kb3cpfHwiY29tcGxldGUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZT8odGhpcy5fcHJvY2Vzc2luZz0hMCxjKCkpOndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixiLmJpbmQoZnVuY3Rpb24oKXt0aGlzLl9wcm9jZXNzaW5nPSEwO2MoKX0sdGhpcyksITEpO2omJihnPWIuc2V0VGltZW91dChiLmJpbmQoZnVuY3Rpb24oKXt3aW5kb3dbdGhpcy5fY2JOYW1lXSh7c3RhdHVzOiJlcnJvciIsCmVycm9yVHlwZToidGltZW91dCJ9KX0sdGhpcyksaikpfSxpc1Byb2Nlc3Npbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJvY2Vzc2luZ30sY2FuY2VsOmZ1bmN0aW9uKCl7dGhpcy5faXNYSFIyKCk/dGhpcy5fY2FuY2VsWEhSKCk6dGhpcy5fY2FuY2VsU2NyaXB0KCl9LF9jYW5jZWxYSFI6ZnVuY3Rpb24oKXt0aGlzLl94aHImJnRoaXMuX3hoci5hYm9ydCgpfSxfY2FuY2VsU2NyaXB0OmZ1bmN0aW9uKCl7dGhpcy5fY2JOYW1lJiZ3aW5kb3dbdGhpcy5fY2JOYW1lXSYmd2luZG93W3RoaXMuX2NiTmFtZV0oe3N0YXR1czoiY2FuY2VsIn0pfX07cy5fX3V1aWQ9MDtzLmdldFV1aWQ9ZnVuY3Rpb24oKXtyZXR1cm4gcy5fX3V1aWQrK307cy5fX1BIRW1wdHlDYWxsYmFjaz1mdW5jdGlvbigpe307Yi5leHRlbmQoYix7VHJhbnNwb3J0OnN9KTtiLkFjY291bnRNYW5hZ2VyPVJhO2IuZXh0ZW5kKGIuQWNjb3VudE1hbmFnZXIucHJvdG90eXBlLGIuRXZlbnRFbWl0dGVyLnByb3RvdHlwZSwKe2FjdGl2ZVVzZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdXNlcn0sdXBkYXRlTG9naW46ZnVuY3Rpb24oYSxiKXt0aGlzLl91c2VyPWE7dGhpcy5fdXNlckVtYWlsLmlubmVySFRNTD10aGlzLmRyYXdOYW1lKGEsYik7YT8odGhpcy5fbm9BdXRoVmlldy5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLl9hdXRoVmlldy5zdHlsZS5kaXNwbGF5PSIiKToodGhpcy5fYXV0aFZpZXcuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5fbm9BdXRoVmlldy5zdHlsZS5kaXNwbGF5PSIiKX0saXNDb3JwOmIuaXNDb3JwLGlzQ29ycENvb2tpZTpiLmlzQ29ycENvb2tpZSxzZXRDb3JwOmZ1bmN0aW9uKGEpe2Zvcih2YXIgZT0wLGM9YS5sZW5ndGg7ZTxjO2UrKylpZigiY29ycC5tYWlsLnJ1Ij09PWFbZV0uc3BsaXQoIkAiKVsxXSlyZXR1cm4gYi5TQ29va2llLnNldEdsb2JhbCh0aGlzLmlzQ29ycENvb2tpZSwobmV3IERhdGUpLmdldFRpbWUoKSksITA7aWYoKGE9Yi5TQ29va2llLmdldEdsb2JhbCh0aGlzLmlzQ29ycENvb2tpZSkpJiYKKG5ldyBEYXRlKS5nZXRUaW1lKCk+MSphKzg2NEU1KXJldHVybiBiLlNDb29raWUucmVtb3ZlR2xvYmFsKHRoaXMuaXNDb3JwQ29va2llKSwhMX0sZHJhd05hbWU6ZnVuY3Rpb24oYSxlKXt2YXIgYz0iIjsic3RyaW5nIiE9dHlwZW9mIGU/KHRoaXMuX3VzZXJFbWFpbC5jbGFzc05hbWU9ZC5zZXR0aW5ncy5tdWx0aUF1dGhFbmFibGVkPyJ4LXBoX19tZW51X19idXR0b25fX3RleHQgeC1waF9fbWVudV9fYnV0dG9uX190ZXh0X2F1dGgiOiJ4LXBoX19hdXRoX191c2VyX190ZXh0IixjPWEpOihiLmFkZENsYXNzKHRoaXMuX3VzZXJFbWFpbCwieC1waC1pY28geC1waC1pY29fIit0aGlzLmdldFNvY2lhbElkKGEpKyJfc21hbGwiKSxjPSImbmJzcDsiK2UpO3JldHVybiBjfSxnZXRTb2NpYWxJZDpmdW5jdGlvbihhKXthPWEubWF0Y2goL15bMC05XStAKHZrfG9rfGZiKSQvKTtyZXR1cm4gbnVsbD09YT92b2lkIDA6YVsxXX19KTt2YXIgeGE9ITE7Yi5leHRlbmQoYi5BY2NvdW50TWFuYWdlci5wcm90b3R5cGUsCnt1cGRhdGVDb3VudGVyczpmdW5jdGlvbihhKXt2YXIgZT17fSxhPWF8fHt9O2lmKCJtYWlsIiE9Yi5wcm9qZWN0JiYhKCJob21lIj09Yi5wcm9qZWN0JiZkLnNldHRpbmdzLm1haWxTcGxhc2hVcGRhdGUpfHwheGEmJiJtYWlsIj09Yi5wcm9qZWN0JiYhZC5zZXR0aW5ncy5tYWlsRXZlbnRzKWUubWFpbD1hLm1haWxfY250fHwwO3hhPSEwO2UubXk9YS5teV9jbnR8fDA7ZC5zZXR0aW5ncy5kaXNhYmxlR2FtZXNDb3VudGVyfHwoZS5nYW1lcz1hLmdhbWVzX2NudHx8MCk7dGhpcy51cGRhdGVOb3RpZmllcihhKTtiLmNvdW50ZXJzLnVwZGF0ZShlKX0sdXBkYXRlTm90aWZpZXI6ZnVuY3Rpb24oYSl7dmFyIGU9Yi5ieUlkKCJQSF9hdXRoTWVudSIpLGE9YS5tYWlsX25vdGlmaWVyP3BhcnNlSW50KGEubWFpbF9ub3RpZmllciwxMCk6MDtiWygwPT1hPyJyZW1vdmUiOiJhZGQiKSsiQ2xhc3MiXShlLCJ4LXBoX19tZW51X2F1dGhfdW5yZWFkIil9LF9zZW5kRXJyb3I6ZnVuY3Rpb24oYSl7dmFyIGU9Cnt1cGRhdGVFcnJvcjoxfSxjPWQuc2V0dGluZ3MubG9nRGV0YWlscz97cmxvZzoibmF2aWRhdGFfZXJyb3JzIixlbWFpbDpkLmFjdGl2ZVVzZXIoKSxybG9nX21lc3NhZ2U6W119Om51bGw7YS5lcnJvclR5cGUmJihlWyJ1cGRhdGVFcnJvcl8iK2EuZXJyb3JUeXBlXT0xLGMmJmMucmxvZ19tZXNzYWdlLnB1c2goYS5lcnJvclR5cGUpKTthLnJlcXVlc3RTb3VyY2UmJihlWyJ1cGRhdGVFcnJvcl8iK2EucmVxdWVzdFNvdXJjZV09MSxjJiZjLnJsb2dfbWVzc2FnZS5wdXNoKGEucmVxdWVzdFNvdXJjZSksYS5lcnJvclR5cGUmJihlWyJ1cGRhdGVFcnJvcl8iK2EuZXJyb3JUeXBlKyJfIithLnJlcXVlc3RTb3VyY2VdPTEsYyYmYy5ybG9nX21lc3NhZ2UucHVzaChhLmVycm9yVHlwZSkpKTtjP2IucmFkYXIoZSxjKTpiLnJhZGFyKGUpO3RoaXMuZW1pdCgidXBkYXRlRXJyb3IiKX0sX1BIVXBkYXRlcjpmdW5jdGlvbihhLGUsYyl7ZnVuY3Rpb24gZihhKXsib2siIT1iLnByb2plY3QmJmQuc2V0dGluZ3MucG9ydGFsQXV0aEVuYWJsZWQmJgp0aGlzLnVwZGF0ZUxvZ2luKGssbSk7dGhpcy51cGRhdGVDb3VudGVycyhnKTsiZnVuY3Rpb24iPT09dHlwZW9mIGEmJmEoKX12YXIgaT1hLnN0YXR1cyxlPWV8fGZ1bmN0aW9uKCl7fTtpZigiZXJyb3IiPT1pKXRoaXMuX3NlbmRFcnJvcihhKSxlKCk7ZWxzZXt2YXIgZz1hLmRhdGEsaj1nLmFjdGlvbixrPWcuZW1haWwsaD1nLnJlcXVlc3RlZExvZ2luLGw9Yi5iaW5kKGYsdGhpcyksbT0idW5kZWZpbmVkIiE9PXR5cGVvZiBnLnNvY19uYW1lP2IucmVwbGFjZVVuc2FmZVN5bWJvbHMoZy5zb2NfbmFtZSk6dm9pZCAwO3RoaXMuc2V0Q29ycChnLmxpc3R8fFtdKTtkLnNldHRpbmdzLnBvcnRhbEF1dGhFbmFibGVkPyJzd2l0Y2giPT1qPyJkaXNhYmxlZCI9PWk/Yz8oYi5yYWRhcih7ZGlzYWJsZWRVc2VyOjEsZGlzYWJsZWRVc2VyUmVzdG9yZToxfSksZSgpKToodGhpcy5lbWl0KCJkaXNhYmxlZFVzZXIiKSxkLmVtaXQoImRpc2FibGVkVXNlciIsYS5kYXRhLGZ1bmN0aW9uKCl7Yi5yYWRhcih7ZGlzYWJsZWRVc2VyOjEsCmRpc2FibGVkVXNlclNlbmRUb0xvZ2luOjF9KTt3aW5kb3cubG9jYXRpb249Imh0dHBzOi8vZS5tYWlsLnJ1L2xvZ2luP2ZhaWw9MSZkMSZwYWdlPSIrZW5jb2RlVVJJQ29tcG9uZW50KGxvY2F0aW9uLmhyZWYpKyImZW1haWw9IitlbmNvZGVVUklDb21wb25lbnQoayl9KSk6Im9rIj09aSYmayE9dGhpcy5hY3RpdmVVc2VyKCk/KHRoaXMuZW1pdCgiYXV0aENoYW5nZSIpLChuZXcgSW1hZ2UpLnNyYz0iLy9yMy5tYWlsLnJ1L2s/YXV0aD0xJnJuZD0iK01hdGgucmFuZG9tKCksZC5saXN0ZW5lcnMoImF1dGhDaGFuZ2UiKT8oYi5yYWRhcigiYXV0aENoYW5nZSIsMSksIWt8fHZvaWQgMCE9PWcubWFpbF9jbnQ/ZC5lbWl0KCJhdXRoQ2hhbmdlIixhLmRhdGEsZnVuY3Rpb24oKXtsKGUpfSk6dGhpcy5sb2FkQWNjb3VudEluZm8oYi5iaW5kKGZ1bmN0aW9uKGEpeyJlcnJvciI9PWEuc3RhdHVzPyh0aGlzLl9zZW5kRXJyb3IoYSksZSgpKTooZz1iLmV4dGVuZChhLmRhdGEsZyksZC5lbWl0KCJhdXRoQ2hhbmdlIiwKZyxmdW5jdGlvbigpe2woZSl9KSl9LHRoaXMpLGspKTpjPyhiLnJhZGFyKCJhdXRoQ2hhbmdlUmVsb2FkRGlzIiwxKSwha3x8dm9pZCAwIT09Zy5tYWlsX2NudD9sKGUpOnRoaXMubG9hZEFjY291bnRJbmZvKGIuYmluZChmdW5jdGlvbihhKXsiZXJyb3IiPT1hLnN0YXR1cz8odGhpcy5fc2VuZEVycm9yKGEpLGUoKSk6KGc9Yi5leHRlbmQoYS5kYXRhLGcpLGwoZSkpfSx0aGlzKSxrKSk6KGIucmFkYXIoImF1dGhDaGFuZ2VSZWxvYWQiLDEpLGIuc2V0VGltZW91dChmdW5jdGlvbigpe2xvY2F0aW9uLnJlbG9hZCgpfSwxMCkpKToibm9hdXRoIj09aSYmayE9dGhpcy5hY3RpdmVVc2VyKCk/KCJob21lIj09PWIucHJvamVjdCYmKGk9W10saS5wdXNoKCJoZWFkbGluZUF1dGhMb3N0IiksaS5wdXNoKCJtcG9wPSIrKGQuY29va2llKCJNcG9wIik/IjEiOiIwIikpLGkucHVzaCgiYWN0aXZlRW1haWw9Iit0aGlzLmFjdGl2ZVVzZXIoKSksaS5wdXNoKCJuZXdFbWFpbD0iK2spLChuZXcgSW1hZ2UpLnNyYz0KIi8vZ3N0YXQuaW1nc21haWwucnUvZ3N0YXQ/dWE9MSZsb2dtZT0iK2VuY29kZVVSSUNvbXBvbmVudChpLmpvaW4oIjsiKSkrIiZybmQ9IisobmV3IERhdGUpLmdldFRpbWUoKStNYXRoLnJhbmRvbSgpKSwtMSE9PWcubGlzdC5pbmRleE9mKGgpP19fUEguYXV0aEZvcm0uc2hvdyh7dHlwZToiY2hvaWNlIixlbWFpbDpofSk6KGIucmFkYXIoImF1dGhMb3N0IiwxKSx0aGlzLmVtaXQoImF1dGhMb3N0IiksaT1mdW5jdGlvbigpe2Euc3RhdHVzPSJvayI7YS5kYXRhLmFjdGlvbj0ic3dpdGNoIjt0aGlzLl9QSFVwZGF0ZXIoYSxlLGMpfS5iaW5kKHRoaXMpLGQuZW1pdCgiYXV0aExvc3QiLGEuZGF0YSxpKSkpOihiLnJhZGFyKCJhdXRoUmVzdG9yZSIsMSksImZ1bmN0aW9uIj09PXR5cGVvZiBlJiZlKCkpOiJsaXN0Ij09aiYmKCJfX19fdXNlciJpbiB0aGlzJiYodGhpcy5fX19fdXNlciE9PWsmJiJtYWlsIj09PWIucHJvamVjdCYmKChuZXcgSW1hZ2UpLnNyYz0iLy9nc3RhdC5pbWdzbWFpbC5ydS9nc3RhdD9sb2dtZT0iKwplbmNvZGVVUklDb21wb25lbnQoImhlYWRsaW5lRmFpbDtoZWFkbGluZUVtYWlsPSIraysiO3Byb2plY3RFbWFpbD0iK3RoaXMuX19fX3VzZXIpKyImcm5kPSIrKG5ldyBEYXRlKS5nZXRUaW1lKCkrTWF0aC5yYW5kb20oKSxoPXt1c2VyTWlzbWF0Y2g6MX0saFsidXNlck1pc21hdGNoXyIrKGs/IiI6Im5vIikrIkhlYWRsaW5lVXNlciJdPTEsaFsidXNlck1pc21hdGNoXyIrKHRoaXMuX19fX3VzZXI/IiI6Im5vIikrIlByb2plY3RVc2VyIl09MSxoWyJ1c2VyTWlzbWF0Y2hfIisodGhpcy5fX19fdXNlcj8iIjoibm8iKSsiUFVzZXJfIisoaz8iIjoibm8iKSsiSFVzZXIiXT0xLGIucmFkYXIoaCkpLGRlbGV0ZSB0aGlzLl9fX191c2VyKSxudWxsPT09dGhpcy5hY3RpdmVVc2VyKCk/KGQuc2V0dGluZ3MuZW5hYmxlVXBkYXRlUmFkYXJzJiZiLnJhZGFyKCJ1cGRhdGUiLDEpLHRoaXMuZW1pdCgidXBkYXRlIiksZC5lbWl0KCJ1cGRhdGUiLGEuZGF0YSxmdW5jdGlvbigpe2woZSl9KSk6az09CnRoaXMuYWN0aXZlVXNlcigpPygoaD1kLmNvb2tpZSgiTXBvcCIpKSYmKCJvayI9PWkmJnRoaXMuYWN0aXZlVXNlcigpJiYtMT09aC5pbmRleE9mKHRoaXMuYWN0aXZlVXNlcigpKSkmJmIuY291bnQoImQxNDA5Mjg5IiksZC5zZXR0aW5ncy5lbmFibGVVcGRhdGVSYWRhcnMmJmIucmFkYXIoInVwZGF0ZSIsMSksdGhpcy5lbWl0KCJ1cGRhdGUiKSxkLmVtaXQoInVwZGF0ZSIsYS5kYXRhLGZ1bmN0aW9uKCl7bChlKX0pKTooYS5kYXRhLmFjdGlvbj0ic3dpdGNoIix0aGlzLl9QSFVwZGF0ZXIoYSxlLCEwKSkpOihkLnNldHRpbmdzLmVuYWJsZVVwZGF0ZVJhZGFycyYmYi5yYWRhcigidXBkYXRlIiwxKSx0aGlzLmVtaXQoInVwZGF0ZSIpLGQuZW1pdCgidXBkYXRlIixhLmRhdGEsZnVuY3Rpb24oKXtsKGUpfSkpfX19KTtiLmV4dGVuZChiLkFjY291bnRNYW5hZ2VyLnByb3RvdHlwZSx7X2F1dGhUcmFuc3BvcnQ6bmV3IGIuVHJhbnNwb3J0KGQuc2V0dGluZ3MuYXV0aERvbWFpbisiL2NnaS1iaW4vYXV0aD9tYWM9MSIsCntKU09OUENhbGxiYWNrUGFyYW06IkpTT05QX2NhbGwiLHJlcXVlc3RTb3VyY2U6ImF1dGgifSksc3dpdGNoQWNjb3VudDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9e307aWYoYSl7ZC5Mb2dpbj1hO3ZhciBpPXRoaXMudXBkYXRlUmVzdW1lKGJ8fGZ1bmN0aW9uKCl7fSksYj1mdW5jdGlvbihiKXtiLmRhdGEmJihiLmRhdGEucmVxdWVzdGVkTG9naW49YSk7dGhpcy5fUEhVcGRhdGVyKGIsaSxjKX0uYmluZCh0aGlzKTt0aGlzLl9hdXRoVHJhbnNwb3J0LmdldCh7cGFyYW1zOmQsY29tcGxldGU6Yix0aW1lb3V0OjNFNH0pfX0sX2xvZ291dFRyYW5zcG9ydDpuZXcgYi5UcmFuc3BvcnQoZC5zZXR0aW5ncy5hdXRoRG9tYWluKyIvY2dpLWJpbi9sb2dvdXQ/bWFjPTEiLHtKU09OUENhbGxiYWNrUGFyYW06IkpTT05QX2NhbGwiLHJlcXVlc3RTb3VyY2U6ImxvZ291dCJ9KSxsb2dvdXRBY2NvdW50OmZ1bmN0aW9uKGEsYil7dmFyIGM9e307aWYoYSYmYSE9PXRoaXMuYWN0aXZlVXNlcigpKWMuTG9naW49CmE7ZWxzZSB0aHJvdyBFcnJvcigiQ2FuIG5vdCBsb2dvdXQuIE5vdCBhY3RpdmUgYWNjb3VudCBleHBlY3RlZC4iKTt0aGlzLl9sb2dvdXRUcmFuc3BvcnQuZ2V0KHtwYXJhbXM6Yyxjb21wbGV0ZTpifSl9fSk7dmFyIFo9ITEseWE7Yi5leHRlbmQoYi5BY2NvdW50TWFuYWdlci5wcm90b3R5cGUse19hY2NvdW50SW5mb1RyYW5zcG9ydDpuZXcgYi5UcmFuc3BvcnQoZC5zZXR0aW5ncy5zd2FEb21haW4rIi9OYXZpRGF0YT9tYWM9MSZnYW1lc2NudD0xJlNvY2lhbHM9MSIse0pTT05QQ2FsbGJhY2tQYXJhbToiSlNPTlBfY2FsbCIscmVxdWVzdFNvdXJjZToiYWNjb3VudEluZm8ifSksbG9hZEFjY291bnRJbmZvOmZ1bmN0aW9uKGEsYil7dmFyIGM9e307aWYoYj0hZC5zZXR0aW5ncy5tdWx0aUF1dGhFbmFibGVkP3ZvaWQgMDpifHx0aGlzLmFjdGl2ZVVzZXIoKSljLkxvZ2luPWI7dGhpcy5fYWNjb3VudEluZm9UcmFuc3BvcnQuZ2V0KHtwYXJhbXM6Yyxjb21wbGV0ZTpmdW5jdGlvbihiKXsiZnVuY3Rpb24iPT09CnR5cGVvZiBhJiZhKGIpfSx0aW1lb3V0OjNFNH0pfSx1cGRhdGVBY2NvdW50SW5mbzpmdW5jdGlvbihhLGIpe2lmKCFaKXt2YXIgYz0rbmV3IERhdGU7aWYodGhpcy5fdXBkYXRlQnlUaW1lb3V0fHwhdGhpcy5fdXBkYXRlQnlUaW1lb3V0JiZ0aGlzLnVwZGF0ZUxhc3RSZXF1ZXN0PGMtdGhpcy51cGRhdGVSZXF1ZXN0VGltZW91dHx8YikhdGhpcy5fdXBkYXRlQnlUaW1lb3V0JiZ0aGlzLnVwZGF0ZUxhc3RSZXF1ZXN0JiYoKG5ldyBJbWFnZSkuc3JjPSIvL3JzLm1haWwucnUvZCIrIjUyNTQ2OCIucmVwbGFjZSgiJSIsIiIpKyIuZ2lmPyIrYyksdGhpcy51cGRhdGVMYXN0UmVxdWVzdD1jLGM9ZnVuY3Rpb24oYil7dGhpcy5fUEhVcGRhdGVyKGIsYSl9LmJpbmQodGhpcyksYz10aGlzLnVwZGF0ZVJlc3VtZShjKSx0aGlzLmxvYWRBY2NvdW50SW5mbyhjKX19LHVwZGF0ZVJlcXVlc3RUaW1lb3V0OjZFNCx1cGRhdGVSZXNldDpmdW5jdGlvbihhKXt0aGlzLl91cGRhdGVCeVRpbWVvdXQmJihhPwooYT10aGlzLnVwZGF0ZVJlcXVlc3RUaW1lb3V0LShuZXcgRGF0ZSkuZ2V0VGltZSgpK3RoaXMudXBkYXRlTGFzdFJlcXVlc3QsMD5hJiYoYT0wKSk6YT10aGlzLnVwZGF0ZVJlcXVlc3RUaW1lb3V0LGIuY2xlYXJUaW1lb3V0KHRoaXMuX2xpc3RBY2NvdW50VGltZW91dCksdGhpcy5fbGlzdEFjY291bnRUaW1lb3V0PWIuc2V0VGltZW91dChiLmJpbmQodGhpcy51cGRhdGVBY2NvdW50SW5mbyx0aGlzKSxhKSl9LHVwZGF0ZVJlc3VtZTpmdW5jdGlvbihhKXtpZih0aGlzLl91cGRhdGVCeVRpbWVvdXQpe3ZhciBlPXRoaXMuX2FjY291bnRJbmZvVHJhbnNwb3J0LmlzUHJvY2Vzc2luZygpO3RoaXMuX2FjY291bnRJbmZvVHJhbnNwb3J0LmNhbmNlbCgpO3RoaXMudXBkYXRlUmVzZXQoKTt2YXIgYz0hMTt0aGlzLm9uY2UoImF1dGhDaGFuZ2UiLGZ1bmN0aW9uKGEsYil7Yz0hMDsiZnVuY3Rpb24iPT09dHlwZW9mIGImJmIoKX0pfXJldHVybiBiLmJpbmQoZnVuY3Rpb24oYil7dGhpcy5fdXBkYXRlQnlUaW1lb3V0JiYKKGU/Yz90aGlzLnVwZGF0ZVJlc2V0KCk6dGhpcy51cGRhdGVBY2NvdW50SW5mbygpOmM/dGhpcy51cGRhdGVSZXNldCgpOnRoaXMudXBkYXRlUmVzZXQoITApKTsiZnVuY3Rpb24iPT10eXBlb2YgYSYmYShiKX0sdGhpcyl9LHBhdXNlVXBkYXRlOmZ1bmN0aW9uKGEsYil7YT95YT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Wj0hMH0sYik6KGNsZWFyVGltZW91dCh5YSksWj0hMSl9fSk7RXZlbnQucHJvdG90eXBlLmNvbXBvc2VkUGF0aHx8KEV2ZW50LnByb3RvdHlwZS5jb21wb3NlZFBhdGg9ZnVuY3Rpb24oKXtmb3IodmFyIGE9dGhpcy50YXJnZXQsYj1bXTtudWxsIT09YTspYi5wdXNoKGEpLGE9YS5wYXJlbnROb2RlO3JldHVybiBifSk7Yi5TQ29va2llWyhiLnJldGluYT8ic2V0IjoicmVtb3ZlIikrIkdsb2JhbCJdKCJydCIsMSk7Yi5TQ29va2llWyhiLnJldGluYT8ic2V0IjoicmVtb3ZlIikrIkdsb2JhbCJdKCJkcHIiLGIuZHByKTtkLnNldHRpbmdzLmVuYWJsZVVwZGF0ZVJhZGFycz0KYi5wZXJjZW50KDEpO2Quc2V0dGluZ3MubXVsdGlBdXRoRW5hYmxlZD1kLnNldHRpbmdzLnBvcnRhbEF1dGhFbmFibGVkO2IucmJDb3VudGVycz1kLnNldHRpbmdzLmlzRHVwbGljYXRlQ291bnRlcnM/e3Byb2plY3RNZW51T3BlbjoiZDYxMDIxODcyIn06e3Byb2plY3RNZW51T3BlbjoiZDExOTg3MDEifTt2YXIgemE9ITEseD1uYXZpZ2F0b3IudXNlckFnZW50O2lmKH54LmluZGV4T2YoIk9wZXJhIikmJighfnguaW5kZXhPZigiT3BlcmEvOS44Iil8fH54LmluZGV4T2YoIlZlcnNpb24vMTAiKXx8fnguaW5kZXhPZigiVmVyc2lvbi8xMSIpfHx+eC5pbmRleE9mKCJPcGVyYS8xMCIpfHx+eC5pbmRleE9mKCJPcGVyYSAxMCIpKXx8d2luZG93Ll9fX19fX19fX19fX2llN3x8fnguaW5kZXhPZigiRmlyZWZveC8zLiIpKWQuc2V0dGluZ3MubXVsdGlBdXRoRW5hYmxlZD0hMSxkLnNldHRpbmdzLmF1dGhGb3JtRW5hYmxlZD0hMSx6YT0hMDtiLmJ5SWQoIlBIX3NpbmdsZXVzZXIiKS5zdHlsZS5kaXNwbGF5PQpkLnNldHRpbmdzLm11bHRpQXV0aEVuYWJsZWQ/Im5vbmUiOiJibG9jayI7Yi5ieUlkKCJQSF9taWx0aXVzZXIiKS5zdHlsZS5kaXNwbGF5PWQuc2V0dGluZ3MubXVsdGlBdXRoRW5hYmxlZD8iYmxvY2siOiJub25lIjtkLnNldHRpbmdzLnByb2plY3RzTWVudUVuYWJsZWQ9ITE7emF8fChkLnNldHRpbmdzLnByb2plY3RzTWVudUVuYWJsZWQ9ITAsYi5ieUlkKCJQSF9wcm9qZWN0c01lbnUiKS5zdHlsZS5kaXNwbGF5PSJpbmxpbmUtYmxvY2siLGIuYnlJZCgiUEhfYWxsUHJvamVjdHMiKS5zdHlsZS5kaXNwbGF5PSJub25lIixiLnByb2plY3RzTWVudU9wZW49KG5ldyBiLkRlZmVycmVkUXVlcnkpLmdldFF1ZXJ5KCksYi5ldmVudCgxLGIuYnlJZCgiUEhfcHJvamVjdHNNZW51X2J1dHRvbiIpLCJjbGljayIsYi5wcm9qZWN0c01lbnVPcGVuKSk7ZC5zZXR0aW5ncy5iaXpMaW5rcyYmKGIuYnlJZCgiUEhfcHJvamVjdHNNZW51Iikuc3R5bGUuZGlzcGxheT0ibm9uZSIsYi5ieUlkKCJQSF9hbGxQcm9qZWN0cyIpLnN0eWxlLmRpc3BsYXk9CiJub25lIik7Yi5jb3VudEVsKGIuYnlJZCgiUEhfbG9nb3V0TGluayIpKTtiLmV2ZW50KDEsYi5ieUlkKCJQSF9sb2dvdXRMaW5rIiksIm1vdXNlZG93biIsZnVuY3Rpb24oKXtiLmNvdW50KCJjbGI3NTA2ODk0NCIpfSk7Yi5jb3VudEVsKGIuYnlJZCgiUEhfbG9naW5MaW5rIil8fGIuYnlJZCgiUEhfYXV0aExpbmsiKSk7Yi5leHRlbmQoZCxiLkV2ZW50RW1pdHRlci5wcm90b3R5cGUse2Nvb2tpZTpNfSk7ZC5jb29raWUucz17fTtiLmV4dGVuZChkLmNvb2tpZS5zLHtnZXRMb2NhbDpxLmdldExvY2FsLHNldExvY2FsOnEuc2V0TG9jYWwscmVtb3ZlTG9jYWw6cS5yZW1vdmVMb2NhbCxnZXRHbG9iYWw6cS5nZXRHbG9iYWwsc2V0R2xvYmFsOnEuc2V0R2xvYmFsLHJlbW92ZUdsb2JhbDpxLnJlbW92ZUdsb2JhbCxzZXRQcm9qZWN0OnEuc2V0UHJvamVjdH0pO3ZhciBBYT0ibWFpbCIhPT1iLnByb2plY3Q7Yi5hY2NvdW50TWFuYWdlcj1uZXcgYi5BY2NvdW50TWFuYWdlcih7bm9BdXRoVmlldzpiLmJ5SWQoIlBIX25vQXV0aFZpZXciKSwKYXV0aFZpZXc6Yi5ieUlkKCJQSF9hdXRoVmlldyIpLHVzZXJFbWFpbDpiLmJ5SWQoZC5zZXR0aW5ncy5tdWx0aUF1dGhFbmFibGVkPyJQSF91c2VyLWVtYWlsIjoiUEhfdXNlci1lbWFpbF9kaXNhYmxlZCIpLHVwZGF0ZUJ5VGltZW91dDpBYX0pO2IuY291bnRlcnM9bmV3IGIuQ291bnRlcnMoe21haWw6ImdfbWFpbF9ldmVudHMiLG15OiJnX215X2V2ZW50cyIsb2s6Imdfb2tfZXZlbnRzIixnYW1lczoiZ19nYW1lc19ldmVudHMiLGxvdmU6ImdfbG92ZV9ldmVudHMifSk7ZC51cGRhdGVDb3VudGVyPWZ1bmN0aW9uKGEpeyJzdGluZyI9PT10eXBlb2YgYXx8Im51bWJlciI9PT10eXBlb2YgYXx8dm9pZCAwPT09YXx8bnVsbD09PWE/Yi5jb3VudGVycy5fY291bnRlcnNbYi5wcm9qZWN0XSYmYi5jb3VudGVycy51cGRhdGUoYi5wcm9qZWN0LGEpOmIuY291bnRlcnMudXBkYXRlKGEpO0FhfHxiLmFjY291bnRNYW5hZ2VyLnVwZGF0ZUFjY291bnRJbmZvKCl9OyJtYWlsIj09Yi5wcm9qZWN0JiYKd2luZG93LmpRdWVyeSYmd2luZG93LmpRdWVyeSh3aW5kb3cpLmJpbmQoInVwZGF0ZW1lc3NhZ2VzY291bnQiLGZ1bmN0aW9uKGEsYil7ZC51cGRhdGVDb3VudGVyKGIpfSk7ZC5pc011bHRpQXV0aD1mdW5jdGlvbigpe3JldHVybiBkLnNldHRpbmdzLm11bHRpQXV0aEVuYWJsZWR9O2QuYWN0aXZlVXNlcj1mdW5jdGlvbigpe2lmKGQuc2V0dGluZ3MucG9ydGFsQXV0aEVuYWJsZWQpe3ZhciBhPWIuYWNjb3VudE1hbmFnZXIuYWN0aXZlVXNlcigpO3JldHVybiBudWxsPT09YT9iLmFjY291bnRNYW5hZ2VyLl9fX191c2VyOmF9cmV0dXJuIGIuYnlJZCgiUEhfdXNlci1lbWFpbF9kaXNhYmxlZCIpLmlubmVySFRNTHx8dm9pZCAwfTtkLnNldHRpbmdzLnBvcnRhbEF1dGhFbmFibGVkJiYoZC5pc0NvcnA9ZnVuY3Rpb24oKXt2YXIgYT1kLmFjdGl2ZVVzZXIoKTtyZXR1cm4iY29ycC5tYWlsLnJ1Ij09KGEmJmEuc3BsaXQoIkAiKVsxXSl9LGQuc3dpdGNoQWNjb3VudD1mdW5jdGlvbihhLGUpe2IuYWNjb3VudE1hbmFnZXIuc3dpdGNoQWNjb3VudChhLAplKX0sZC5sb2dvdXRBY2NvdW50PWZ1bmN0aW9uKGEsZSl7Yi5hY2NvdW50TWFuYWdlci5sb2dvdXRBY2NvdW50KGEsZnVuY3Rpb24oKXtiLmFjY291bnRNYW5hZ2VyLmxvYWRBY2NvdW50c0xpc3QoZSl9KX0pO2lmKGQuc2V0dGluZ3MubXVsdGlBdXRoRW5hYmxlZCl7dmFyIEJhPWQuc2V0dGluZ3MuZWlkPyJfIitkLnNldHRpbmdzLmVpZDoiIjtkLmxvYWRBY2NvdW50c0xpc3Q9KG5ldyBiLkRlZmVycmVkUXVlcnkpLmdldFF1ZXJ5KCk7dCgiZXh0cmFfYmxvY2tfc2hvdyIrQmEpO2lmKHBlcmZvcm1hbmNlLm5vdyl7dmFyIGdiPXBlcmZvcm1hbmNlLm5vdygpLGhiPSJ0aW1lOiIrTWF0aC5yb3VuZChnYik7dCgiYXBwX2luaXQiLGhiKX1kLnNldHRpbmdzLnVzZXJ8fCh0KCJsb2dpbl9jb3VudGVyX3Nob3ciK0JhKSxiLnRpbWVycy5ub0F1dGhSZW5kZXI9MSpuZXcgRGF0ZSk7ZC5vbigidmlzaWJpbGl0eWNoYW5nZSIsZnVuY3Rpb24oYSl7YS5kYXRhLmhpZGRlbj9kLnNldHRpbmdzLnBhdXNlVXBkYXRlJiYKYi5hY2NvdW50TWFuYWdlci5wYXVzZVVwZGF0ZSghMCxkLnNldHRpbmdzLnBhdXNlVXBkYXRlVGltZXx8MzZFNSk6KG51bGwhPT1iLmFjY291bnRNYW5hZ2VyLmFjdGl2ZVVzZXIoKSYmYi5hY2NvdW50TWFuYWdlci5hY3RpdmVVc2VyKCk/Yi5hY2NvdW50TWFuYWdlci5zd2l0Y2hBY2NvdW50KGIuYWNjb3VudE1hbmFnZXIuYWN0aXZlVXNlcigpLG51bGwsITApOmIuYWNjb3VudE1hbmFnZXIudXBkYXRlQWNjb3VudEluZm8oZnVuY3Rpb24oKXt9LCEwKSxkLnNldHRpbmdzLnBhdXNlVXBkYXRlJiZiLmFjY291bnRNYW5hZ2VyLnBhdXNlVXBkYXRlKCkpfSl9Yi5hdXRoTWVudT1uZXcgYi5NZW51KHtiYXNlQ2xhc3M6IngtcGhfX21lbnUiLG9yaWVudGF0aW9uOiJyaWdodCIscm9vdE5vZGU6Yi5ieUlkKCJQSF9hdXRoTWVudSIpLGJ1dHRvbjpiLmJ5SWQoIlBIX2F1dGhNZW51X2J1dHRvbiIpLG9wZW5Db3VudGVyOiJob21lIj09Yi5wcm9qZWN0PyJkMTEyNjAwMyI6Im1haWwiPT1iLnByb2plY3Q/CiJkMTEyNjAwMiI6Im15Ij09Yi5wcm9qZWN0PyJkMTI3MDkwMSI6ImQxMTI2MDA1In0pO2QuYXV0aE1lbnU9bmV3IGIuRXZlbnRFbWl0dGVyO2QuYXV0aEZvcm09bmV3IGIuRXZlbnRFbWl0dGVyO3ZhciAkPWIuYnlJZCgiUEhfYXV0aE1lbnUiKTskJiYkLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24oYSl7dmFyIGU9Yi5ieUlkKCJQSF9wcml2YXRlRGF0YSIpLGM9Yi5ieUlkKCJQSF9wYXNzd29yZEFuZFNlY3VyaXR5IiksZD1iLmJ5SWQoIlBIX2xvZ2luQW5vdGhlckxpbmsiKSxhPWEucGF0aHx8YS5jb21wb3NlZFBhdGgoKSxoO0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYSxmdW5jdGlvbihhLGIpe2E9PT0kJiYoaD1iKX0pO2E9YS5zbGljZSgwLGgrMSk7MDw9YS5pbmRleE9mKGUpP2IuY291bnQoImNsYjc1MDY4OTM2Iik6MDw9YS5pbmRleE9mKGMpP2IuY291bnQoImNsYjc1MDY4OTQwIik6MDw9YS5pbmRleE9mKGQpJiZiLmNvdW50KCJob21lIj09Yi5wcm9qZWN0PwoiY2xiMTEyNjA2NCI6Im1haWwiPT1iLnByb2plY3Q/ImNsYjExMjYwNjEiOiJteSI9PWIucHJvamVjdD8iY2xiMTI3MDkwMiI6ImNsYjExMjYwNjciKX0pO2Quc2V0dGluZ3MubXVsdGlBdXRoRW5hYmxlZCYmKGQuYXV0aE1lbnUuc2hvdz1iLmF1dGhNZW51LnNob3cuYmluZChiLmF1dGhNZW51KSxkLmF1dGhNZW51LmhpZGU9Yi5hdXRoTWVudS5oaWRlLmJpbmQoYi5hdXRoTWVudSkpO2Quc2V0dGluZ3MuYXV0aEZvcm1FbmFibGVkPyhiLnNob3dRdWVyeT0obmV3IGIuRGVmZXJyZWRRdWVyeSkuZ2V0UXVlcnkoKSxkLmF1dGhGb3JtLnNob3c9ZnVuY3Rpb24oKXtiLnRpbWVycy5yZW5kZXI9MSpuZXcgRGF0ZTtiLnNob3dRdWVyeS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGQuYXV0aEZvcm0uaGlkZT0obmV3IGIuRGVmZXJyZWRRdWVyeSkuZ2V0UXVlcnkoKSxkLmF1dGhGb3JtLmluc2VydD0obmV3IGIuRGVmZXJyZWRRdWVyeSkuZ2V0UXVlcnkoKSxkLmF1dGhGb3JtLmlzVmlzaWJsZT0KZnVuY3Rpb24oKXtyZXR1cm4hMX0pOihkLmF1dGhGb3JtLnNob3c9ZnVuY3Rpb24oYSl7dmFyIGQ9W107YXx8KGE9e30pO2EubG9naW4mJmEuZG9tYWluJiZkLnB1c2goImVtYWlsPSIrYS5sb2dpbisiQCIrYS5kb21haW4pO2Euc3VjY2Vzc1BhZ2U/ZC5wdXNoKCJwYWdlPSIrYS5zdWNjZXNzUGFnZSk6ZC5wdXNoKCJwYWdlPSIrKCJtYWlsIj09Yi5wcm9qZWN0fHwiaG9tZSI9PWIucHJvamVjdD8iaHR0cHM6Ly9lLm1haWwucnUvbWVzc2FnZXMvaW5ib3g/YmFjaz0xIjp3aW5kb3cubG9jYXRpb24uaHJlZikpO3dpbmRvdy5sb2NhdGlvbj0iaHR0cHM6Ly9lLm1haWwucnUvbG9naW4/IitkLmpvaW4oIiYiKX0sZC5hdXRoRm9ybS5oaWRlPWZ1bmN0aW9uKCl7fSxkLmF1dGhGb3JtLmlzVmlzaWJsZT1mdW5jdGlvbigpe3JldHVybiBiLmF1dGhGb3JtP2IuYXV0aEZvcm0uaXNWaXNpYmxlKCk6ITF9KTtiLmF1dGhMaW5rQ2xpY2tIYW5kbGVyPWZ1bmN0aW9uKGEpe3ZhciBlPWQubGlzdGVuZXJzKCJsb2dpblJlcXVlc3QiKSwKYz1kLnNldHRpbmdzLmVpZD8iXyIrZC5zZXR0aW5ncy5laWQ6IiIsZj0xKm5ldyBEYXRlLWIudGltZXJzLm5vQXV0aFJlbmRlcjw9KGQuc2V0dGluZ3MuYm90VGltZXJ8fDUwMCk7ZT8oYi5ldmVudFByZXZlbnREZWZhdWx0KGEpLGQuZW1pdCgibG9naW5SZXF1ZXN0IikpOmQuc2V0dGluZ3MuYXV0aEZvcm1FbmFibGVkJiYoYi5ldmVudFByZXZlbnREZWZhdWx0KGEpLGQuYXV0aEZvcm0uc2hvdygpKTtiLmNvdW50KCJjbGI3NTA2ODk5NiIpO3QoImxvZ2luX2NvdW50ZXJfY2xpY2siK2MpO2YmJnQoImJvdF9sb2dpbl9jb3VudGVyIitjKX07Yi5ldmVudCgxLGIuYnlJZCgiUEhfYXV0aExpbmsiKSwiY2xpY2siLGIuYXV0aExpbmtDbGlja0hhbmRsZXIpO2IucmVnaXN0ZXJMaW5rQ2xpY2tIYW5kbGVyPWZ1bmN0aW9uKGEpe2QubGlzdGVuZXJzKCJyZWdpc3RlclJlcXVlc3QiKSYmKGIuZXZlbnRQcmV2ZW50RGVmYXVsdChhKSxkLmF1dGhGb3JtLmhpZGUoKSxkLmVtaXQoInJlZ2lzdGVyUmVxdWVzdCIpKTsKYi5jb3VudCgiY2xiNzUwNjg5OTUiKX07Yi5ldmVudCgxLGIuYnlJZCgiUEhfcmVnTGluayIpLCJjbGljayIsYi5yZWdpc3RlckxpbmtDbGlja0hhbmRsZXIpO2QuaXNBdXRoRm9ybUVuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gZC5zZXR0aW5ncy5hdXRoRm9ybUVuYWJsZWR9O2lmKGQuc2V0dGluZ3MucHJvamVjdHNNZW51RW5hYmxlZHx8ZC5zZXR0aW5ncy5tdWx0aUF1dGhFbmFibGVkfHxkLnNldHRpbmdzLmF1dGhGb3JtRW5hYmxlZClkLnNldHRpbmdzLmF1dGhHYXRlJiZqYShkLnNldHRpbmdzLmF1dGhHYXRlSlMrKGQuc2V0dGluZ3MuYXV0aEdhdGVKU0hhc1Zlcj8iIjoiP189IitNYXRoLnJhbmRvbSgpKSksamEoZC5zZXR0aW5ncy5leHRlcm5hbEpTLCEwKTtpZihkLnNldHRpbmdzLmlzRHVwbGljYXRlQ291bnRlcnMpe3ZhciBpYj1bNjEwMjE4NTQsNjEwMjE4NTYsNjEwMjE4NTcsNjEwMjE4NTgsNjEwMjE4NTksNjEwMjE4NjAsNjEwMjE4NjEsNjEwMjE4NjIsNjEwMjE4NjMsCjYxMDIxODY2LDYxOTQ0NDI0XSxqYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudy14LXBoIC53LXgtcGhfX2NvbF9sZWZ0Iik7QXJyYXkuZnJvbShqYi5xdWVyeVNlbGVjdG9yQWxsKCIueC1waF9fbGluayIpKS5maWx0ZXIoZnVuY3Rpb24oYSl7aWYoIm5vbmUiIT1hLnN0eWxlLmRpc3BsYXkpcmV0dXJuITB9KS5mb3JFYWNoKGZ1bmN0aW9uKGEsZCl7dmFyIGM9aWJbZF07Yi5ldmVudCgxLGEsIm1vdXNlZG93biIsZnVuY3Rpb24oKXtiLmNvdW50KCJjbGIiK2MpfSl9KX1kLnNldHRpbmdzLmlzU2hvd0RvdCYmKGIuY291bnQoImQ4MDU1NjgyOCIpLGIuZXZlbnQoMSxiLmJ5SWQoIlBIX2RvdCIpLCJtb3VzZWRvd24iLGZ1bmN0aW9uKCl7Yi5jb3VudCgiY2xiODA1NTY4MjgiKX0pKTt0KCJoaXQiKTt0KCJyYiIsZC5zZXR0aW5ncy5yYnYpO3ZhciBDYSxhYT1udWxsO0NhPWZ1bmN0aW9uKCl7dmFyIGE9YWE7YWE9RGF0ZS5ub3coKTsoIWF8fDFFNDxhYS1hKSYmdCgiZG9jdW1lbnRfZHJhZ2VudGVyIil9Owpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW50ZXIiLGZ1bmN0aW9uKGEpe2lmKGE9YS5kYXRhVHJhbnNmZXImJmEuZGF0YVRyYW5zZmVyLnR5cGVzKXt2YXIgYj0hMSxjPSExO2EuZm9yRWFjaChmdW5jdGlvbihhKXt+YS5pbmRleE9mKCJ0ZXh0IikmJihjPSEwKTt+YS5pbmRleE9mKCJGaWxlIikmJihiPSEwKX0pO2ImJiFjJiZDYSgpfX0sITApfX0pKHdpbmRvdy5fX1BILHdpbmRvdy5fX1BIUyk7IC8vIyBzb3VyY2VVUkw9aHR0cHM6Ly9pbWcuaW1nc21haWwucnUvcGgvMC42NS4zNS9pbmxpbmUuanMKPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvcHguanMu0JHQtdC3INC90LDQt9Cy0LDQvdC40Y8iPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL3B4LmpzKDEpLtCR0LXQtyDQvdCw0LfQstCw0L3QuNGPIj48L3NjcmlwdD48c2NyaXB0PgoJCQlmdW5jdGlvbiBhYnBEZXRlY3RlZCgpIHsKCQkJCXRyeSB7CgkJCQkJdmFyIF8weDM5OGE9Wyc9PVx4MjAtJywnLmNzcycsJ09iamUnLCdleE9mJywnYS5pbicsJyhceDI3aGUnLCcxKVx4MjB7Jywnci5nZScsJ1x4MjAhPT0nLCdceDIwb3JwJywnXHgyMC0xKScsJ3RoO1x4MjAnLCd0XHgyMCYmJywnaXB0bycsJ3lUYWcnLCdlbWVuJywnZXgrKycsJ1dpbmQnLCdUZXh0JywnOlx4MjA0MycsJ1x4MDlceDA5XHgwOX0nLCdceDBhXHgwOVx4MDlceDA5JywnZGRlbicsJ2VceDIwPVx4MjAnLCc9XHgyMHJ1JywnXHgyMFx4MjdjbycsJ21wb3InLCdtZUVsJywnZG93XHgyNycsJygpO1x4MGEnLCdsaXR5JywnTmFtZScsJ2UpXHgyMHsnLCdmXHgyMCh1JywnXHgyMCFpbScsJ1x4MjdPUFInLCdpbXBvJywnQnlUYScsJztceDBhXHgwOVx4MDknLCdceDA5aWZceDIwJywnXHgyMG5vZCcsJ31ceDBhXHgwOVx4MDknLCdJRnJhJywnMjFceDIwIScsJ25qZWMnLCdceDA5XHgwOX1ceDBhJywnb3VyYycsJ1x4MDlceDA5XHgwOWknLCcucnVsJywnbGVzXHgyMCcsJyYmXHgyMGQnLCdzW25vJywnYWRceDI3KScsJ2hhbnMnLCdndGhceDIwJywndXNlcicsJ1x4MjBydWwnLCdudGVuJywncnVsZScsJ3NvdXInLCdceDIwZGVzJywnKHZhcicsJ2dldEUnLCd0Y2hceDIwJywnZ05hbScsJ293XHgyNyknLCd2YXJceDIwJywncm5ceDIwXHgyNycsJ2RibG8nLCd0ZW50JywnZUluZCcsJ25vZGUnLCd5cGUsJywndWxlcycsJ2UudGUnLCdkZS5zJywndG9yKCcsJ290b3QnLCcuaW5kJywnXHgwOXZhcicsJylceDIwe1x4MGEnLCdmb3JceDIwJywnLmdldCcsJyk7XHgwYVx4MDknLCdoZWV0JywnY2tceDI3OycsJ3BlcnQnLCdldE93JywnbGF5OicsJyhkZXMnLCdceDIwe1x4MGFceDA5JywnYWRibCcsJ25ceDIwXHgyN2EnLCdmKFx4MjdpJywndFdpbicsJ1x4MDlceDA5XHgwOXInLCdjaFx4MjAoJywnc1tydScsJ3tceDBhXHgwOVx4MDknLCdsZW1lJywnb2N1bScsJ25Qcm8nLCdJbmRlJywncnRhbicsJ1x4MjAwLFx4MjAnLCd4T2YoJywnXHgwYVx4MDlceDA5aScsJ2V4XHgyMD0nLCdlXHgyMCFpJywnaW5kZScsJyhceDI3e1x4MjAnLCc9XHgyMG5vJywnRWxlbScsJztceDIwdmknLCd9XHgyMGNhJywnY3JpcCcsJ1x4MDlceDA5XHgwOVx4MDknLCdndGg7JywnZlx4MjAocicsJ2VudC4nLCdyaW5nJywnZXNjcicsJ2hlYWQnLCdceDA5fVx4MGFceDA5Jywnb2NrXHgyNycsJ2lmXHgyMCgnLCdwb3J0JywnZXM7XHgwYScsJ3Rvclx4MjAnLCdkZXhPJywnXHgwYVx4MDlceDA5dicsJ0hUTUwnLCdsZUluJywnXHgyMCYmXHgyMCcsJ3h0Q28nLCdsZW5nJywneFx4MjA8XHgyMCcsJ1x4MjcpO1x4MGEnLCd0SW50JywndFx4MjddOycsJ2RlSW4nLCdlbnRzJywnZGlzcCcsJ29Db24nLCdkZXhdJywnXHgwOVx4MDl2YScsJ3NMZW4nLCdlZXQpJywneURlcycsJ1x4MjcpXHgyMCEnLCd0KVx4MjB7JywnOlx4MjBoaScsJ2lnYXQnLCdwZXJhJywnbGVzLicsJ3VhXHgyMD0nLCdnZXQuJywndG9yLicsJ3NceDIwPVx4MjAnLCdceDA5dHJ5JywnIW5vZCcsJ1x4MjBuYXYnLCdlKFx4MjdzJywnZS5pbicsJ3RvU3QnLCdjZVx4MjA9J107KGZ1bmN0aW9uKF8weDI3YTU0OCxfMHgzOThhOTMpe3ZhciBfMHg1ODIyNmI9ZnVuY3Rpb24oXzB4MjI3YjVlKXt3aGlsZSgtLV8weDIyN2I1ZSl7XzB4MjdhNTQ4WydwdXNoJ10oXzB4MjdhNTQ4WydzaGlmdCddKCkpO319O18weDU4MjI2YigrK18weDM5OGE5Myk7fShfMHgzOThhLDB4MTBhKSk7dmFyIF8weDU4MjI9ZnVuY3Rpb24oXzB4MjdhNTQ4LF8weDM5OGE5Myl7XzB4MjdhNTQ4PV8weDI3YTU0OC0weDA7dmFyIF8weDU4MjI2Yj1fMHgzOThhW18weDI3YTU0OF07cmV0dXJuIF8weDU4MjI2Yjt9O3JldHVybiBGdW5jdGlvbihfMHg1ODIyKCcweDFlJykrJ2FyXHgyMGQnK18weDU4MjIoJzB4MTUnKStfMHg1ODIyKCcweDRmJykrJ3JceDIwPVx4MjAnK18weDU4MjIoJzB4NDQnKSsnY3QuZycrXzB4NTgyMignMHg5OScpK18weDU4MjIoJzB4MScpK18weDU4MjIoJzB4OTgnKStfMHg1ODIyKCcweDMwJykrXzB4NTgyMignMHhmJykrXzB4NTgyMignMHg4ZScpK18weDU4MjIoJzB4MWYnKStfMHg1ODIyKCcweDZjJykrXzB4NTgyMignMHg1ZCcpK18weDU4MjIoJzB4NTEnKSsndC5wcicrXzB4NTgyMignMHg4ZicpK18weDU4MjIoJzB4OGEnKStfMHg1ODIyKCcweDViJykrXzB4NTgyMignMHg3YicpK18weDU4MjIoJzB4YTAnKStfMHg1ODIyKCcweDVlJykrXzB4NTgyMignMHg5NScpK18weDU4MjIoJzB4NjknKStfMHg1ODIyKCcweDliJykrXzB4NTgyMignMHhmJykrXzB4NTgyMignMHgxYycpK18weDU4MjIoJzB4NzQnKSsnZXNjcicrXzB4NTgyMignMHg0ZicpK18weDU4MjIoJzB4NDknKStfMHg1ODIyKCcweDMyJykrXzB4NTgyMignMHg1NycpKyd2YXJceDIwJytfMHg1ODIyKCcweDdkJykrXzB4NTgyMignMHg0MScpK18weDU4MjIoJzB4N2UnKSsnY3JpcCcrXzB4NTgyMignMHgzOScpK18weDU4MjIoJzB4MzgnKStfMHg1ODIyKCcweDQwJykrXzB4NTgyMignMHgxNCcpK18weDU4MjIoJzB4NWYnKStfMHg1ODIyKCcweDcxJykrJ2ZceDIwKHMnK18weDU4MjIoJzB4NzAnKStfMHg1ODIyKCcweDNmJykrJ2RleE8nK18weDU4MjIoJzB4OWYnKStfMHg1ODIyKCcweDZlJykrXzB4NTgyMignMHgyNicpK18weDU4MjIoJzB4MmInKStfMHg1ODIyKCcweDg3JykrXzB4NTgyMignMHg1MycpK18weDU4MjIoJzB4ODMnKStfMHg1ODIyKCcweDRhJykrXzB4NTgyMignMHg0YycpK18weDU4MjIoJzB4OWMnKStfMHg1ODIyKCcweGExJykrJ2V0dXInK18weDU4MjIoJzB4OWUnKStfMHg1ODIyKCcweDg2JykrXzB4NTgyMignMHg5NycpK18weDU4MjIoJzB4NTcnKStfMHg1ODIyKCcweDZiJykrJ31ceDBhXHgwOVx4MDknK18weDU4MjIoJzB4ODQnKStfMHg1ODIyKCcweDM3JykrXzB4NTgyMignMHgzZCcpK18weDU4MjIoJzB4MzQnKSsnb3JbXHgyNycrXzB4NTgyMignMHg3OScpKydBZ2VuJytfMHg1ODIyKCcweDI3JykrXzB4NTgyMignMHg2JykrXzB4NTgyMignMHg2MycpK18weDU4MjIoJzB4NDYnKStfMHg1ODIyKCcweDFkJykrJ2YoXHgyN08nK18weDU4MjIoJzB4MzUnKStfMHg1ODIyKCcweDMxJykrXzB4NTgyMignMHg0MicpKycxXHgyMHx8JysnXHgyMHVhLicrXzB4NTgyMignMHg5JykrXzB4NTgyMignMHg1JykrXzB4NTgyMignMHg2NScpK18weDU4MjIoJzB4MzEnKSsnPT1ceDIwLScrXzB4NTgyMignMHg0OCcpK18weDU4MjIoJzB4NTcnKStfMHg1ODIyKCcweDg0JykrXzB4NTgyMignMHgxNicpKydceDIwPVx4MjBkJytfMHg1ODIyKCcweDAnKStfMHg1ODIyKCcweDEzJykrXzB4NTgyMignMHg4MCcpK18weDU4MjIoJzB4YTUnKSsnbnRzQicrXzB4NTgyMignMHg1MCcpK18weDU4MjIoJzB4NjEnKStfMHg1ODIyKCcweDQ3JykrXzB4NTgyMignMHg3NicpKydbMF07JysnXHgwYVx4MDlceDA5XHgwOScrXzB4NTgyMignMHgxOScpK18weDU4MjIoJzB4MTYnKStfMHg1ODIyKCcweDkyJykrJ1x4MDlceDA5XHgwOVx4MDknK18weDU4MjIoJzB4ODQnKStfMHg1ODIyKCcweDg5JykrXzB4NTgyMignMHgzYScpK18weDU4MjIoJzB4MTYnKStfMHg1ODIyKCcweDk0JykrXzB4NTgyMignMHhjJykrXzB4NTgyMignMHgyOScpK18weDU4MjIoJzB4NjcnKStfMHg1ODIyKCcweDgyJykrXzB4NTgyMignMHgzZScpKyd0eWxlJytfMHg1ODIyKCcweDI1JykrXzB4NTgyMignMHgxMCcpK18weDU4MjIoJzB4OTMnKStfMHg1ODIyKCcweDdmJykrJ1x4MjBub2QnK18weDU4MjIoJzB4ODgnKStfMHg1ODIyKCcweDcnKStfMHg1ODIyKCcweDQnKStfMHg1ODIyKCcweDg5JykrXzB4NTgyMignMHgyZScpK18weDU4MjIoJzB4NzgnKStfMHg1ODIyKCcweGInKSsnZGVzLicrXzB4NTgyMignMHgyMycpKyd0aDtceDIwJytfMHg1ODIyKCcweDg5JykrXzB4NTgyMignMHgyJykrXzB4NTgyMignMHgyNCcpK18weDU4MjIoJzB4ODknKSsnc0xlbicrXzB4NTgyMignMHgxMScpK18weDU4MjIoJzB4NmEnKStfMHg1ODIyKCcweDg4JykrXzB4NTgyMignMHg1MicpKycpXHgyMHtceDBhJytfMHg1ODIyKCcweDEwJykrJ1x4MDl0cnknK18weDU4MjIoJzB4OWMnKStfMHg1ODIyKCcweDEwJykrXzB4NTgyMignMHg5MScpK18weDU4MjIoJzB4NmEnKStfMHg1ODIyKCcweDU5JykrXzB4NTgyMignMHg4OScpK18weDU4MjIoJzB4NzUnKStfMHg1ODIyKCcweDI4JykrXzB4NTgyMignMHgyYycpK18weDU4MjIoJzB4NjgnKStfMHg1ODIyKCcweDEwJykrJ2lmXHgyMCgnKydub2RlJytfMHg1ODIyKCcweDIxJykrXzB4NTgyMignMHgzYycpK18weDU4MjIoJzB4OGMnKStfMHg1ODIyKCcweDIyJykrXzB4NTgyMignMHg3YicpK18weDU4MjIoJzB4NGUnKSsnXHgyMG5vZCcrJ2Uuc2gnK18weDU4MjIoJzB4MmYnKStfMHg1ODIyKCcweDljJykrXzB4NTgyMignMHgxMCcpK18weDU4MjIoJzB4MmQnKSsnclx4MjBydScrXzB4NTgyMignMHg3MycpK18weDU4MjIoJzB4YicpK18weDU4MjIoJzB4OGQnKStfMHg1ODIyKCcweDk2JykrXzB4NTgyMignMHg3MicpK18weDU4MjIoJzB4MWInKStfMHg1ODIyKCcweDEwJykrXzB4NTgyMignMHg3MScpK18weDU4MjIoJzB4MTInKStfMHg1ODIyKCcweDhiJykrJylceDIwe1x4MGEnK18weDU4MjIoJzB4MTAnKSsnXHgwOVx4MDlceDA5XHgwOScrXzB4NTgyMignMHg5MycpK18weDU4MjIoJzB4N2YnKStfMHg1ODIyKCcweDdhJykrXzB4NTgyMignMHg4OCcpK18weDU4MjIoJzB4NycpK18weDU4MjIoJzB4NCcpK18weDU4MjIoJzB4N2MnKStfMHg1ODIyKCcweDJlJykrJ2d0aFx4MjAnK18weDU4MjIoJzB4NWEnKStfMHg1ODIyKCcweDM2JykrXzB4NTgyMignMHgyMycpK18weDU4MjIoJzB4NGQnKStfMHg1ODIyKCcweDdjJykrXzB4NTgyMignMHgyJykrJ3hceDIwPFx4MjAnK18weDU4MjIoJzB4N2MnKStfMHg1ODIyKCcweDJlJykrXzB4NTgyMignMHgxMScpK18weDU4MjIoJzB4N2EnKStfMHg1ODIyKCcweDg4JykrJ2V4KysnK18weDU4MjIoJzB4OTInKSsnXHgwOVx4MDlceDA5XHgwOScrXzB4NTgyMignMHgxMCcpK18weDU4MjIoJzB4M2InKSsnXHgyMHtceDBhXHgwOScrXzB4NTgyMignMHgxMCcpKydceDA5XHgwOVx4MDlceDA5JytfMHg1ODIyKCcweDkxJykrXzB4NTgyMignMHg3YScpKydlXHgyMD1ceDIwJytfMHg1ODIyKCcweDdjJykrXzB4NTgyMignMHhhMycpK18weDU4MjIoJzB4MjAnKStfMHg1ODIyKCcweDJjJykrXzB4NTgyMignMHg2OCcpK18weDU4MjIoJzB4MTAnKSsnXHgwOVx4MDlceDA5XHgwOScrXzB4NTgyMignMHgxOScpK18weDU4MjIoJzB4N2MnKStfMHg1ODIyKCcweDQzJykrXzB4NTgyMignMHg1NCcpK18weDU4MjIoJzB4OTAnKStfMHg1ODIyKCcweDQ1JykrXzB4NTgyMignMHhhJykrXzB4NTgyMignMHgyYScpK18weDU4MjIoJzB4OWEnKSsnXHgyMG5vbicrXzB4NTgyMignMHg4JykrXzB4NTgyMignMHg1YycpKyd0YW50JytfMHg1ODIyKCcweGQnKSsnc2liaScrXzB4NTgyMignMHg2MCcpK18weDU4MjIoJzB4MzMnKStfMHg1ODIyKCcweDU4JykrXzB4NTgyMignMHg2NCcpK18weDU4MjIoJzB4MWEnKSsnYW50OycrXzB4NTgyMignMHg0YicpK18weDU4MjIoJzB4NzcnKSsoXzB4NTgyMignMHg1NScpK18weDU4MjIoJzB4NmQnKStfMHg1ODIyKCcweDY2JykrXzB4NTgyMignMHgzJykrJ3Q7XHgyMH0nK18weDU4MjIoJzB4MzEnKStfMHg1ODIyKCcweDQyJykrXzB4NTgyMignMHg0OCcpK18weDU4MjIoJzB4NTcnKStfMHg1ODIyKCcweDEwJykrXzB4NTgyMignMHgxMCcpKydyZXR1JytfMHg1ODIyKCcweDg1JykrXzB4NTgyMignMHg5ZCcpK18weDU4MjIoJzB4MTgnKStfMHg1ODIyKCcweDY4JykrXzB4NTgyMignMHgxMCcpK18weDU4MjIoJzB4MTAnKStfMHg1ODIyKCcweDZiJykrXzB4NTgyMignMHgxMCcpK18weDU4MjIoJzB4NTYnKSsnXHgyMGNhdCcrXzB4NTgyMignMHhhMicpK18weDU4MjIoJzB4NjInKSsnXHgwYVx4MDlceDA5XHgwOScrXzB4NTgyMignMHgxMCcpKydceDA5XHgwOX1ceDBhJytfMHg1ODIyKCcweDEwJykrXzB4NTgyMignMHgxMCcpK18weDU4MjIoJzB4NmInKStfMHg1ODIyKCcweDEwJykrJ1x4MDl9XHgwYVx4MDknK18weDU4MjIoJzB4MTAnKStfMHg1ODIyKCcweDE3JykrXzB4NTgyMignMHgxMCcpK18weDU4MjIoJzB4ZScpK18weDU4MjIoJzB4ODEnKSsnKGUpXHgyMCcrXzB4NTgyMignMHhhNCcpK18weDU4MjIoJzB4NTYnKStfMHg1ODIyKCcweDU3JykrXzB4NTgyMignMHgxNycpK18weDU4MjIoJzB4NmYnKSsnXHgwOVx4MDl9XHgwYScrJ1x4MDknKSkoKTsKCQkJCX0gY2F0Y2ggKGUpIHsKCQkJCX0KCQkJfQoKCQkJd2luZG93Ll9fa25vd25CbG9ja2VyID0gISFhYnBEZXRlY3RlZCgpCgkJPC9zY3JpcHQ+PCEtLS9ub2luZGV4LS0+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYWNlMmMyMDQ0YyBlOGFjMDg2YjRmIj48ZGl2IGNsYXNzPSJiZWJkYjA4NTg5Ij48ZGl2IGNsYXNzPSJjMTE5MzYwOTRhIGFmYTcwNmJmM2MgcC1maXhlZC1wYW5lbCIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTsiPjxuYXYgY2xhc3M9ImNjMTliNDZlYTgiIGRhdGEtbG9nZ2VyPSJQb3J0YWxNZW51IiBkYXRhLWxvZ2dlci1pZD0iZHllZTNhYmJ1ZXVqIj48ZGl2IGNsYXNzPSJhNjEwY2NhZTZmIj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGU0MTcyOTQxYjQiPjxkaXYgY2xhc3M9ImM5ZTUzZmYzYjYiPjxhIHRpdGxlPSJNYWlsLnJ1IiBocmVmPSJodHRwczovL21haWwucnUvIiBjbGFzcz0iZGZlNzgzOGY5NSBlNTljOWI3YjhkIiByZWw9IiI+PHNwYW4gY2xhc3M9ImIzYmUyYmYzNWEiIGRhdGEtcWE9Ikljb24iPjxzdmcgd2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiB2aWV3Qm94PSIwIDAgMjggMjgiIGZpbGw9Im5vbmUiIGRhdGEtcWE9Ikljb25TdmciIGNsYXNzPSJjNTNhODgyZTNlIGU3NGMwYjI2YzciPjxwYXRoIGQ9Ik0xOC4yMTEgMTRBNC4yMTYgNC4yMTYgMCAwMTE0IDE4LjIxMSA0LjIxNiA0LjIxNiAwIDAxOS43ODkgMTQgNC4yMTYgNC4yMTYgMCAwMTE0IDkuNzg5IDQuMjE2IDQuMjE2IDAgMDExOC4yMTEgMTR6TTE0IDBDNi4yOCAwIDAgNi4yOCAwIDE0czYuMjggMTQgMTQgMTRhMTMuOTIgMTMuOTIgMCAwMDcuODg2LTIuNDM1bC4wNC0uMDI4LTEuODg2LTIuMTkyLS4wMzIuMDJBMTEuMDc3IDExLjA3NyAwIDAxMTQgMjUuMTNDNy44NjMgMjUuMTMgMi44NyAyMC4xMzcgMi44NyAxNCAyLjg3IDcuODYzIDcuODYzIDIuODcgMTQgMi44N2M2LjEzNyAwIDExLjEzIDQuOTkzIDExLjEzIDExLjEzIDAgLjc5NS0uMDg5IDEuNi0uMjYyIDIuMzkyLS4zNTIgMS40NDUtMS4zNjQgMS44ODctMi4xMjMgMS44MjktLjc2NC0uMDYyLTEuNjU4LS42MDYtMS42NjQtMS45MzhWMTRBNy4wODggNy4wODggMCAwMDE0IDYuOTE5IDcuMDg4IDcuMDg4IDAgMDA2LjkxOSAxNGE3LjA4OCA3LjA4OCAwIDAwOS44IDYuNTQxIDcuMDIyIDcuMDIyIDAgMDAyLjI5OC0xLjU1IDQuNTUgNC41NSAwIDAwMy40OTggMi4wOTEgNC43MzMgNC43MzMgMCAwMDMuMjE4LS45NDNjLjgzOS0uNjM4IDEuNDY2LTEuNTU5IDEuODEyLTIuNjY2LjA1NS0uMTc5LjE1Ny0uNTg4LjE1Ny0uNTkxbC4wMDMtLjAxNWMuMjA0LS44ODguMjk1LTEuNzczLjI5NS0yLjg2NyAwLTcuNzItNi4yOC0xNC0xNC0xNCIgZmlsbD0iI0ZGOUUwMCI+PC9wYXRoPjwvc3ZnPjwvc3Bhbj48L2E+PGEgdGl0bGU9ItCd0LAg0LPQu9Cw0LLQvdGD0Y4g0J3QvtCy0L7RgdGC0LgiIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1LyIgY2xhc3M9ImRmZTc4MzhmOTUgZmE3MjExYzM1MyIgcmVsPSIiPjxzcGFuIGNsYXNzPSJiM2JlMmJmMzVhIiBkYXRhLXFhPSJJY29uIj48c3ZnIHdpZHRoPSIxMTMiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAxMTMgMzIiIGRhdGEtcWE9Ikljb25TdmciIGNsYXNzPSJjNTNhODgyZTNlIGQ3YjI5YWFhZDQiPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQuODQxIDE3LjQ3djYuMDc2SDEuODZWOC45NTNoMi45ODFWMTQuNmg3LjM0OFY4Ljk1M2gyLjk4MXYxNC41OTNoLTIuOTgxVjE3LjQ3SDQuODQxem0yMC42ODQtOC44ODhhNy42NzUgNy42NzUgMCAwMTcuNjcxIDcuNjcgNy42NzQgNy42NzQgMCAwMS03LjY3MSA3LjY3MiA3LjY3NSA3LjY3NSAwIDAxLTcuNjcxLTcuNjcxIDcuNjc2IDcuNjc2IDAgMDE3LjY3MS03LjY3MXptMCAyLjk4YTQuNjkzIDQuNjkzIDAgMDE0LjY5MSA0LjY5IDQuNjkzIDQuNjkzIDAgMDEtNC42OTEgNC42OTIgNC42OTMgNC42OTMgMCAwMS00LjY5MS00LjY5MSA0LjY5MyA0LjY5MyAwIDAxNC42OTEtNC42OTF6bTE5LjAyNyAxMS45ODRIMzUuODhWOC45NTNoOC4wOTlhMy45OSAzLjk5IDAgMDEzLjk4MiAzLjk4OWMwIDEuMjYtLjUyNiAyLjA4My0xLjE1OSAyLjc4OSAxLjI3OS43NDIgMS45NjIgMi4wMjkgMS45NjIgMy40NjYgMCAyLjMyNS0xLjg4OCA0LjM0OS00LjIxMiA0LjM0OXptLS42MDQtNi4xNjNoLTUuMTEzdjMuMjkzaDUuMTEzYTEuNjQ4IDEuNjQ4IDAgMDAwLTMuMjkzem0tLjQyNi01LjU2aC00LjY4N3YyLjc1M2g0LjY4N2ExLjM3OCAxLjM3OCAwIDAwMC0yLjc1M3ptMTQuODcxLTMuMjQxYTcuNjc1IDcuNjc1IDAgMDE3LjY3MSA3LjY3IDcuNjc0IDcuNjc0IDAgMDEtNy42NzEgNy42NzIgNy42NzQgNy42NzQgMCAwMS03LjY3MS03LjY3MSA3LjY3NSA3LjY3NSAwIDAxNy42NzEtNy42NzF6bTAgMi45OGE0LjY5MyA0LjY5MyAwIDAxNC42OTEgNC42OSA0LjY5MyA0LjY5MyAwIDAxLTQuNjkxIDQuNjkyIDQuNjkzIDQuNjkzIDAgMDEtNC42OTEtNC42OTEgNC42OTMgNC42OTMgMCAwMTQuNjkxLTQuNjkxek04Mi4zIDIwLjc1YTcuNzM3IDcuNzM3IDAgMDEtNi4yNTMgMy4xNzQgNy42NzQgNy42NzQgMCAwMS03LjY3MS03LjY3MSA3LjY3NSA3LjY3NSAwIDAxNy42Ny03LjY3MSA3Ljc0IDcuNzQgMCAwMTUuODY4IDIuNjgzbC0yLjM2MiAxLjgyNmMtLjg1OC0uOTQtMi4wMTgtMS41My0zLjUwNS0xLjUzLTIuNTkgMC00LjYyNSAyLjEwMy00LjYyNSA0LjY5MiAwIDIuNTg4IDIuMDM2IDQuNjkgNC42MjUgNC42OSAxLjY5OSAwIDMuMDE2LS43OCAzLjg2Ny0xLjk3OEw4Mi4zIDIwLjc1em0xNC4yNjktOC45MjdoLTUuMDQxdjExLjcyM2gtMy4wMzJWMTEuODIzaC01LjA0MnYtMi44N2gxMy4xMTV2Mi44N3ptNC42NSAxMS43MjNoLTIuNDc3VjguOTUzaDIuOTgydjkuNzQzbDguNDY4LTkuNzQzaDIuNDc2djE0LjU5M2gtMi45ODF2LTkuNTRsLTguNDY4IDkuNTR6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiPjwvcGF0aD48L3N2Zz48L3NwYW4+PC9hPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImM1MjYwOWM3YzEiPjxkaXYgZGF0YS1xYT0iTW9yZUxpc3QiIGNsYXNzPSJjYWYzYTdiZGFiIGIzYTVkOTM4N2EiPjxkaXYgY2xhc3M9ImMyMWRiMmY0YzgiPjxkaXYgY2xhc3M9ImY4YTYyYzViOWYiPjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCI+CiAgICAKICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvaW5yZWdpb25zL3VyYWwvNjYvIiBjbGFzcz0iYTM1YjcyOGU2MCBiNTUzY2U1ZmNiICIgfT0iIj4KICAgICAgICA8c3BhbiBjbGFzcz0iZTYxZDdmM2VjYyBhMzkxYmYwMWIwIj7QodCy0LXRgNC00LvQvtCy0YHQutCw0Y8g0L7QsdC7Ljwvc3Bhbj4KICAgICAgPC9hPgogICAgCiAgPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZjhhNjJjNWI5ZiI+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIGM1YWExNGZjYmEiPjxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L3BvbGl0aWNzLyIgY2xhc3M9ImRmZTc4MzhmOTUgYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIiByZWw9IiI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBhMzkxYmYwMWIwIj7Qn9C+0LvQuNGC0LjQutCwPC9zcGFuPjwvYT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmOGE2MmM1YjlmIj48ZGl2IGRhdGEtcGxhY2VtZW50PSJyaWdodCIgY2xhc3M9ImJiYzVhMTA3YjkiPjxkaXYgY2xhc3M9ImZmNjk2ODdmM2EiPjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCI+PHN0cm9uZyBjbGFzcz0iYjU1M2NlNWZjYiI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBjZTZlZWI4NWViIGEzOTFiZjAxYjAiPtCV0YnRkTwvc3Bhbj48L3N0cm9uZz48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjZDA0Mzg5NzE0IGMxOWIyYTc2NjgiPjxkaXYgc3R5bGU9ImNvbHVtbi1jb3VudDogMTsiPjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCBjMmJhNzk4YWRhIGJiMGQyYmM3YmIiPjxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L2Vjb25vbWljcy8iIGNsYXNzPSJkZmU3ODM4Zjk1IGEzNWI3MjhlNjAgYjU1M2NlNWZjYiBkZTZiYmExYmRkIiByZWw9IiI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBhMzkxYmYwMWIwIj7QrdC60L7QvdC+0LzQuNC60LA8L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCBjMmJhNzk4YWRhIGJiMGQyYmM3YmIiPjxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L3NvY2lldHkvIiBjbGFzcz0iZGZlNzgzOGY5NSBhMzViNzI4ZTYwIGI1NTNjZTVmY2IgZGU2YmJhMWJkZCIgcmVsPSIiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgYTM5MWJmMDFiMCI+0J7QsdGJ0LXRgdGC0LLQvjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIGMyYmE3OThhZGEgYmIwZDJiYzdiYiI+PGEgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvaW5jaWRlbnQvIiBjbGFzcz0iZGZlNzgzOGY5NSBhMzViNzI4ZTYwIGI1NTNjZTVmY2IgZGU2YmJhMWJkZCIgcmVsPSIiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgYTM5MWJmMDFiMCI+0KHQvtCx0YvRgtC40Y88L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCBjMmJhNzk4YWRhIGJiMGQyYmM3YmIiPjxzdHJvbmcgY2xhc3M9ImI1NTNjZTVmY2IgZGU2YmJhMWJkZCI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBhMzkxYmYwMWIwIj7QktGB0LUg0YHQtdGA0LLQuNGB0Ys8L3NwYW4+PC9zdHJvbmc+PC9kaXY+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIGMyYmE3OThhZGEiPjxhIGhyZWY9Imh0dHBzOi8vZmluYW5jZS5tYWlsLnJ1LyIgY2xhc3M9ImRmZTc4MzhmOTUgYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIGRlNmJiYTFiZGQiIHJlbD0ibm9vcGVuZXIgIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBjN2FlZDBkN2YzIj7QpNC40L3QsNC90YHRizwvc3Bhbj48c3BhbiBjbGFzcz0iZmZjOTk1MzlkZCI+PGRpdiBjbGFzcz0iYzQwMmMyMDM4MSI+PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGlzcGxheT0iYmxvY2siIGNsYXNzPSIgSWNvbiBJY29uLS0xNiBJY29uLS13LTE2IEljb24tLWgtMTYgSWNvbi0tbGlua19vdXRsaW5lXzE2ICIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PHVzZSB4bGluazpocmVmPSIjbGlua19vdXRsaW5lXzE2IiBzdHlsZT0iZmlsbDogY3VycmVudGNvbG9yOyI+PC91c2U+PC9zdmc+PC9kaXY+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQgYzJiYTc5OGFkYSI+PGEgaHJlZj0iaHR0cHM6Ly9zcG9ydG1haWwucnUvIiBjbGFzcz0iZGZlNzgzOGY5NSBhMzViNzI4ZTYwIGI1NTNjZTVmY2IgZGU2YmJhMWJkZCIgcmVsPSJub29wZW5lciAiIHRhcmdldD0iX2JsYW5rIj48c3BhbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBlNjFkN2YzZWNjIGM3YWVkMGQ3ZjMiPtCh0L/QvtGA0YI8L3NwYW4+PHNwYW4gY2xhc3M9ImZmYzk5NTM5ZGQiPjxkaXYgY2xhc3M9ImM0MDJjMjAzODEiPjxzdmcgYXJpYS1oaWRkZW49InRydWUiIGRpc3BsYXk9ImJsb2NrIiBjbGFzcz0iIEljb24gSWNvbi0tMTYgSWNvbi0tdy0xNiBJY29uLS1oLTE2IEljb24tLWxpbmtfb3V0bGluZV8xNiAiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsiPjx1c2UgeGxpbms6aHJlZj0iI2xpbmtfb3V0bGluZV8xNiIgc3R5bGU9ImZpbGw6IGN1cnJlbnRjb2xvcjsiPjwvdXNlPjwvc3ZnPjwvZGl2Pjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIGMyYmE3OThhZGEiPjxhIGhyZWY9Imh0dHBzOi8vdmZva3VzZS5tYWlsLnJ1LyIgY2xhc3M9ImRmZTc4MzhmOTUgYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIGRlNmJiYTFiZGQiIHJlbD0ibm9vcGVuZXIgIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBjN2FlZDBkN2YzIj7QktGE0L7QutGD0YHQtTwvc3Bhbj48c3BhbiBjbGFzcz0iZmZjOTk1MzlkZCI+PGRpdiBjbGFzcz0iYzQwMmMyMDM4MSI+PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGlzcGxheT0iYmxvY2siIGNsYXNzPSIgSWNvbiBJY29uLS0xNiBJY29uLS13LTE2IEljb24tLWgtMTYgSWNvbi0tbGlua19vdXRsaW5lXzE2ICIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PHVzZSB4bGluazpocmVmPSIjbGlua19vdXRsaW5lXzE2IiBzdHlsZT0iZmlsbDogY3VycmVudGNvbG9yOyI+PC91c2U+PC9zdmc+PC9kaXY+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQgYzJiYTc5OGFkYSI+PGEgaHJlZj0iaHR0cHM6Ly9wb2dvZGEubWFpbC5ydS8iIGNsYXNzPSJkZmU3ODM4Zjk1IGEzNWI3MjhlNjAgYjU1M2NlNWZjYiBkZTZiYmExYmRkIiByZWw9Im5vb3BlbmVyICIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgYzdhZWQwZDdmMyI+0J/QvtCz0L7QtNCwPC9zcGFuPjxzcGFuIGNsYXNzPSJmZmM5OTUzOWRkIj48ZGl2IGNsYXNzPSJjNDAyYzIwMzgxIj48c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBkaXNwbGF5PSJibG9jayIgY2xhc3M9IiBJY29uIEljb24tLTE2IEljb24tLXctMTYgSWNvbi0taC0xNiBJY29uLS1saW5rX291dGxpbmVfMTYgIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48dXNlIHhsaW5rOmhyZWY9IiNsaW5rX291dGxpbmVfMTYiIHN0eWxlPSJmaWxsOiBjdXJyZW50Y29sb3I7Ij48L3VzZT48L3N2Zz48L2Rpdj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCBjMmJhNzk4YWRhIj48YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9jdXJyZW5jeS8iIGNsYXNzPSJkZmU3ODM4Zjk1IGEzNWI3MjhlNjAgYjU1M2NlNWZjYiBkZTZiYmExYmRkIiByZWw9IiI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBjN2FlZDBkN2YzIj7QmtGD0YDRgdGLPC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQgYzJiYTc5OGFkYSI+PGEgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvbGFuZGluZy9zZGVsYW5vLXYtcm9zc2lpLTM4LyIgY2xhc3M9ImRmZTc4MzhmOTUgYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIGRlNmJiYTFiZGQiIHJlbD0iIj48c3BhbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBlNjFkN2YzZWNjIGM3YWVkMGQ3ZjMiPtCh0LTQtdC70LDQvdC+INCyINCg0L7RgdGB0LjQuDwvc3Bhbj48L2E+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZTYyNDcyZGY0MSBkYjc5NzI5ZDdmIGViNDI0YjVlMTEiPjwvZGl2PjxkaXYgY2xhc3M9ImU2MjQ3MmRmNDEgYjk5YjRhYmM2MyBhNGU5Y2E0MjY2Ij48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmMTYzNGNmMDIxIj48ZGl2IGNsYXNzPSJmOGE2MmM1YjlmIj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQiPgogICAgCiAgICAgIDxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L2lucmVnaW9ucy91cmFsLzY2LyIgY2xhc3M9ImEzNWI3MjhlNjAgYjU1M2NlNWZjYiAiIH09IiI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImU2MWQ3ZjNlY2MgYTM5MWJmMDFiMCI+0KHQstC10YDQtNC70L7QstGB0LrQsNGPINC+0LHQuy48L3NwYW4+CiAgICAgIDwvYT4KICAgIAogIDwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImY4YTYyYzViOWYiPjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCBjNWFhMTRmY2JhIj48YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9wb2xpdGljcy8iIGNsYXNzPSJkZmU3ODM4Zjk1IGEzNWI3MjhlNjAgYjU1M2NlNWZjYiIgcmVsPSIiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgYTM5MWJmMDFiMCI+0J/QvtC70LjRgtC40LrQsDwvc3Bhbj48L2E+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZjhhNjJjNWI5ZiI+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIj48YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9lY29ub21pY3MvIiBjbGFzcz0iZGZlNzgzOGY5NSBhMzViNzI4ZTYwIGI1NTNjZTVmY2IiIHJlbD0iIj48c3BhbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBlNjFkN2YzZWNjIGEzOTFiZjAxYjAiPtCt0LrQvtC90L7QvNC40LrQsDwvc3Bhbj48L2E+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZjhhNjJjNWI5ZiI+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIj48YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9zb2NpZXR5LyIgY2xhc3M9ImRmZTc4MzhmOTUgYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIiByZWw9IiI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBhMzkxYmYwMWIwIj7QntCx0YnQtdGB0YLQstC+PC9zcGFuPjwvYT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmOGE2MmM1YjlmIj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQiPjxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L2luY2lkZW50LyIgY2xhc3M9ImRmZTc4MzhmOTUgYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIiByZWw9IiI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBhMzkxYmYwMWIwIj7QodC+0LHRi9GC0LjRjzwvc3Bhbj48L2E+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZjhhNjJjNWI5ZiI+PGRpdiBjbGFzcz0iY2JiMDI3M2I0NyI+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIGZlNGY2YWFiNTQiPjxzdHJvbmcgY2xhc3M9ImI1NTNjZTVmY2IgZGU4YzRlN2YwYyI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBlNmE4ZWVlOGY5IGEzOTFiZjAxYjAiPtCS0YHQtSDRgdC10YDQstC40YHRizwvc3Bhbj48L3N0cm9uZz48L2Rpdj48ZGl2IGNsYXNzPSJjZDA0Mzg5NzE0IGYzNzJlNGM2ZDUiPjxkaXYgc3R5bGU9ImNvbHVtbi1jb3VudDoxIj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQgYzJiYTc5OGFkYSI+PGEgaHJlZj0iaHR0cHM6Ly9maW5hbmNlLm1haWwucnUvIiBjbGFzcz0iZGZlNzgzOGY5NSBhMzViNzI4ZTYwIGI1NTNjZTVmY2IgZGU2YmJhMWJkZCIgcmVsPSJub29wZW5lciAiIHRhcmdldD0iX2JsYW5rIj48c3BhbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBlNjFkN2YzZWNjIGM3YWVkMGQ3ZjMiPtCk0LjQvdCw0L3RgdGLPC9zcGFuPjxzcGFuIGNsYXNzPSJmZmM5OTUzOWRkIj48ZGl2IGNsYXNzPSJjNDAyYzIwMzgxIj48c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBkaXNwbGF5PSJibG9jayIgY2xhc3M9IiBJY29uIEljb24tLTE2IEljb24tLXctMTYgSWNvbi0taC0xNiBJY29uLS1saW5rX291dGxpbmVfMTYgIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9IndpZHRoOjE2cHg7aGVpZ2h0OjE2cHgiPjx1c2UgeGxpbms6aHJlZj0iI2xpbmtfb3V0bGluZV8xNiIgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIj48L3VzZT48L3N2Zz48L2Rpdj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCBjMmJhNzk4YWRhIj48YSBocmVmPSJodHRwczovL3Nwb3J0bWFpbC5ydS8iIGNsYXNzPSJkZmU3ODM4Zjk1IGEzNWI3MjhlNjAgYjU1M2NlNWZjYiBkZTZiYmExYmRkIiByZWw9Im5vb3BlbmVyICIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgYzdhZWQwZDdmMyI+0KHQv9C+0YDRgjwvc3Bhbj48c3BhbiBjbGFzcz0iZmZjOTk1MzlkZCI+PGRpdiBjbGFzcz0iYzQwMmMyMDM4MSI+PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGlzcGxheT0iYmxvY2siIGNsYXNzPSIgSWNvbiBJY29uLS0xNiBJY29uLS13LTE2IEljb24tLWgtMTYgSWNvbi0tbGlua19vdXRsaW5lXzE2ICIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHN0eWxlPSJ3aWR0aDoxNnB4O2hlaWdodDoxNnB4Ij48dXNlIHhsaW5rOmhyZWY9IiNsaW5rX291dGxpbmVfMTYiIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvciI+PC91c2U+PC9zdmc+PC9kaXY+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQgYzJiYTc5OGFkYSI+PGEgaHJlZj0iaHR0cHM6Ly92Zm9rdXNlLm1haWwucnUvIiBjbGFzcz0iZGZlNzgzOGY5NSBhMzViNzI4ZTYwIGI1NTNjZTVmY2IgZGU2YmJhMWJkZCIgcmVsPSJub29wZW5lciAiIHRhcmdldD0iX2JsYW5rIj48c3BhbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBlNjFkN2YzZWNjIGM3YWVkMGQ3ZjMiPtCS0YTQvtC60YPRgdC1PC9zcGFuPjxzcGFuIGNsYXNzPSJmZmM5OTUzOWRkIj48ZGl2IGNsYXNzPSJjNDAyYzIwMzgxIj48c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBkaXNwbGF5PSJibG9jayIgY2xhc3M9IiBJY29uIEljb24tLTE2IEljb24tLXctMTYgSWNvbi0taC0xNiBJY29uLS1saW5rX291dGxpbmVfMTYgIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9IndpZHRoOjE2cHg7aGVpZ2h0OjE2cHgiPjx1c2UgeGxpbms6aHJlZj0iI2xpbmtfb3V0bGluZV8xNiIgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIj48L3VzZT48L3N2Zz48L2Rpdj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCBjMmJhNzk4YWRhIj48YSBocmVmPSJodHRwczovL3BvZ29kYS5tYWlsLnJ1LyIgY2xhc3M9ImRmZTc4MzhmOTUgYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIGRlNmJiYTFiZGQiIHJlbD0ibm9vcGVuZXIgIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBjN2FlZDBkN2YzIj7Qn9C+0LPQvtC00LA8L3NwYW4+PHNwYW4gY2xhc3M9ImZmYzk5NTM5ZGQiPjxkaXYgY2xhc3M9ImM0MDJjMjAzODEiPjxzdmcgYXJpYS1oaWRkZW49InRydWUiIGRpc3BsYXk9ImJsb2NrIiBjbGFzcz0iIEljb24gSWNvbi0tMTYgSWNvbi0tdy0xNiBJY29uLS1oLTE2IEljb24tLWxpbmtfb3V0bGluZV8xNiAiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBzdHlsZT0id2lkdGg6MTZweDtoZWlnaHQ6MTZweCI+PHVzZSB4bGluazpocmVmPSIjbGlua19vdXRsaW5lXzE2IiBzdHlsZT0iZmlsbDpjdXJyZW50Q29sb3IiPjwvdXNlPjwvc3ZnPjwvZGl2Pjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIGMyYmE3OThhZGEiPjxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L2N1cnJlbmN5LyIgY2xhc3M9ImRmZTc4MzhmOTUgYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIGRlNmJiYTFiZGQiIHJlbD0iIj48c3BhbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBlNjFkN2YzZWNjIGM3YWVkMGQ3ZjMiPtCa0YPRgNGB0Ys8L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCBjMmJhNzk4YWRhIj48YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9sYW5kaW5nL3NkZWxhbm8tdi1yb3NzaWktMzgvIiBjbGFzcz0iZGZlNzgzOGY5NSBhMzViNzI4ZTYwIGI1NTNjZTVmY2IgZGU2YmJhMWJkZCIgcmVsPSIiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgYzdhZWQwZDdmMyI+0KHQtNC10LvQsNC90L4g0LIg0KDQvtGB0YHQuNC4PC9zcGFuPjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJlNjI0NzJkZjQxIGI5OWI0YWJjNjMgYjUxZjI2NDcyMiI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZjhhNjJjNWI5ZiI+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIj48c3Ryb25nIGNsYXNzPSJiNTUzY2U1ZmNiIj48c3BhbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBlNjFkN2YzZWNjIGNlNmVlYjg1ZWIgYTM5MWJmMDFiMCI+0JXRidGRPC9zcGFuPjwvc3Ryb25nPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgZGF0YS1sb2dnZXI9IlBvcnRhbE1lbnVQcm9tbyIgY2xhc3M9ImVhNjg5MWEzMGQiIGRhdGEtbG9nZ2VyLWlkPSJiZGR4aHdmMnJ2Y2IiPjwvZGl2PjxkaXYgY2xhc3M9ImE2MmU0OTc5MjEiPjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAiPjxhIGhyZWY9Imh0dHBzOi8vbWFpbC5ydS9yZWdpb24/cGFnZT1odHRwczovL25ld3MubWFpbC5ydS9wb2xpdGljcy82MTE2NTQ5NS8iIGNsYXNzPSJkZmU3ODM4Zjk1IGMxMzI2YmNhNzkiIHJlbD0iIj48c3BhbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBiZmI3YzZmZjg1IGE5Yzc2YWQ2YjEiPjxzdmcgYXJpYS1oaWRkZW49InRydWUiIGRpc3BsYXk9ImJsb2NrIiBjbGFzcz0iIEljb24gSWNvbi0tMjAgSWNvbi0tdy0yMCBJY29uLS1oLTIwIEljb24tLWxvY2F0aW9uX291dGxpbmVfMjAgIiB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHgiPjx1c2UgeGxpbms6aHJlZj0iI2xvY2F0aW9uX291dGxpbmVfMjAiIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvciI+PC91c2U+PC9zdmc+PHNwYW4gY2xhc3M9ImUyMjljOGU5YTgiPjxzcGFuPtCV0LrQsNGC0LXRgNC40L3QsdGD0YDQszwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQiPjxhIGhyZWY9Imh0dHBzOi8vcG9nb2RhLm1haWwucnUvIiBjbGFzcz0iZGZlNzgzOGY5NSBhMzViNzI4ZTYwIGI1NTNjZTVmY2IgZTYwNzI4NzRiNSIgcmVsPSIiPjxzcGFuIGNsYXNzPSJlOGFmZTljNzNkIGJjZDhhMDY5MDMiPjxkaXY+PGltZyBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzLzA0LnBuZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBhbHQ9IiI+PC9kaXY+PC9zcGFuPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgYTM5MWJmMDFiMCI+PGRpdj4rMTHCsDwvZGl2Pjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIj4KICAgIAogICAgICA8YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9jdXJyZW5jeS9zcmMvQ0JSRi9jaGFyY29kZS9VU0QvIiBjbGFzcz0iYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIj4KICAgICAgICA8c3BhbiBjbGFzcz0iZThhZmU5YzczZCBkOTQwMGFjMjIzIj48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTYgMTYiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNOC4wMDAxIDFhLjc1Ljc1IDAgMCAxIC43NS43NXYuNzg3N2MxLjkzNjQuMTk4MiAzLjI2OSAxLjE1MSAzLjY5MjkgMi4xNzU2YS43NS43NSAwIDAgMS0uNDA2My45Nzk3Ljc1Ljc1IDAgMCAxLS45Nzk3LS40MDYzYy0uMTQzLS4zNDU3LS44NDgzLTEuMDUzNS0yLjMwNjktMS4yNDA1VjcuMzM5YzEuNDE0LjIxNiAyLjM0OC42MTYgMi45Mzk1IDEuMTcuNzIyMS42NzY2LjgxMDQgMS40NjI4LjgxMDQgMS45OTA5IDAgLjk3MjEtLjYyNTQgMS43NDE1LTEuNDI1OCAyLjIyOTktLjYzNDMuMzg3MS0xLjQzNTMuNjQwOC0yLjMyNC43MzIydi43ODc5YS43NS43NSAwIDAgMS0xLjUgMHYtLjc4NzZjLTEuOTM2Ni0uMTk4Mi0zLjI2OTMtMS4xNTEtMy42OTMyLTIuMTc1N2EuNzUuNzUgMCAwIDEgLjQwNjMtLjk3OTcuNzUuNzUgMCAwIDEgLjk3OTcuNDA2M2MuMTQzLjM0NTcuODQ4NCAxLjA1MzYgMi4zMDcxIDEuMjQwNlY4LjY2MUM1LjgzNiA4LjQ0NSA0LjkwMiA4LjA0NSA0LjMxMDQgNy40OTA4IDMuNTg4NCA2LjgxNDMgMy41IDYuMDI4MSAzLjUgNS41YzAtLjk3MjEuNjI1NC0xLjc0MTUgMS40MjU4LTIuMjI5OS42MzQzLS4zODcgMS40MzU1LS42NDA5IDIuMzI0My0uNzMyMlYxLjc1YS43NS43NSAwIDAgMSAuNzUtLjc1Wm0tLjc1IDMuMDQ4Yy0uNjMyMi4wODMxLTEuMTU4Ny4yNjgtMS41NDMuNTAyNUM1LjE3MTYgNC44NzczIDUgNS4yMzMgNSA1LjVjMCAuMzQyOS4wNTEuNjI5Mi4zMzYuODk2Mi4yNjY3LjI0OTkuODEwMy41NSAxLjkxNDEuNzQ0OFY0LjA0OFptMS41IDQuODExdjMuMDkzMWMuNjMyMi0uMDgzMiAxLjE1ODYtLjI2ODIgMS41NDI4LS41MDI2LjUzNTUtLjMyNjguNzA3MS0uNjgyNS43MDcxLS45NDk1IDAtLjM0MjgtLjA1MS0uNjI5MS0uMzM2LS44OTYyLS4yNjY3LS4yNDk4LS44MTAyLS41NS0xLjkxMzktLjc0NDdaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiPjwvcGF0aD48L3N2Zz48L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImU2MWQ3ZjNlY2MgYTM5MWJmMDFiMCI+OTAuNDE8L3NwYW4+CiAgICAgIDwvYT4KICAgIAogIDwvZGl2PjxkaXYgY2xhc3M9ImQxYmI4YWNhNGYgZjI3ZjM4NTBjMiI+PGRpdiBjbGFzcz0iZGVjNTIxNzJkMyIgc3R5bGU9IndpZHRoOjQwMHB4Ij48ZGl2IGNsYXNzPSJhMTM2MzM0YmMzIj48c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBkaXNwbGF5PSJibG9jayIgY2xhc3M9IiBJY29uIEljb24tLTIwIEljb24tLXctMjAgSWNvbi0taC0yMCBJY29uLS1zZWFyY2hfMjAgIiB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHgiPjx1c2UgeGxpbms6aHJlZj0iI3NlYXJjaF8yMCIgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIj48L3VzZT48L3N2Zz48L2Rpdj48Zm9ybSBjbGFzcz0iYzU4NjgxMTFkOSBjNzFkODRmNGFiIiBhY3Rpb249Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L3NlYXJjaC8iPjxkaXYgZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZjAyMTJjYmI5OSI+PGlucHV0IG5hbWU9InVzaWQiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IjY2Ij48aW5wdXQgdHlwZT0idGV4dCIgYXV0b2NvbXBsZXRlPSJvZmYiIG5hbWU9InEiIHBsYWNlaG9sZGVyPSLQn9C+0LjRgdC6INC/0L4g0YHQsNC50YLRgyIgY2xhc3M9ImZhMDQ2ODAyMjgiPjwvZGl2PjwvZm9ybT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGU1Nzk4Njc0Y2YiPjxzcGFuIGNsYXNzPSJmYmJlYjEwMDA4Ij48c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBkaXNwbGF5PSJibG9jayIgY2xhc3M9IiBJY29uIEljb24tLTI0IEljb24tLXctMjQgSWNvbi0taC0yNCBJY29uLS1zZWFyY2hfMjQgIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgc3R5bGU9IndpZHRoOjI0cHg7aGVpZ2h0OjI0cHgiPjx1c2UgeGxpbms6aHJlZj0iI3NlYXJjaF8yNCIgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIj48L3VzZT48L3N2Zz48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBlMGQwYzkyOWMxIGVjNTViYjRhMjEiPjxzcGFuIGNsYXNzPSJmYmJlYjEwMDA4Ij48c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBkaXNwbGF5PSJibG9jayIgY2xhc3M9IiBJY29uIEljb24tLTI0IEljb24tLXctMjQgSWNvbi0taC0yNCBJY29uLS1tZW51X291dGxpbmVfMjQgIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgc3R5bGU9IndpZHRoOjI0cHg7aGVpZ2h0OjI0cHgiPjx1c2UgeGxpbms6aHJlZj0iI21lbnVfb3V0bGluZV8yNCIgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIj48L3VzZT48L3N2Zz48L3NwYW4+PC9kaXY+PC9uYXY+PGRpdiBjbGFzcz0iZDMyM2FmNzMwYSIgZGF0YS1sb2dnZXI9IlBvcnRhbE1lbnVCdXJnZXIiIGRhdGEtbG9nZ2VyLWlkPSJ5Z2cyaXZqZGF6Z2YiPjxkaXYgY2xhc3M9ImI0MjZjY2VjMjUiPjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAiPjxhIGhyZWY9Imh0dHBzOi8vbWFpbC5ydS9yZWdpb24/cGFnZT1odHRwczovL25ld3MubWFpbC5ydS9wb2xpdGljcy82MTE2NTQ5NS8iIGNsYXNzPSJkZmU3ODM4Zjk1IGMxMzI2YmNhNzkiIHJlbD0iIj48c3BhbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBiZmI3YzZmZjg1IGE5Yzc2YWQ2YjEiPjxzdmcgYXJpYS1oaWRkZW49InRydWUiIGRpc3BsYXk9ImJsb2NrIiBjbGFzcz0iIEljb24gSWNvbi0tMjAgSWNvbi0tdy0yMCBJY29uLS1oLTIwIEljb24tLWxvY2F0aW9uX291dGxpbmVfMjAgIiB2aWV3Qm94PSIwIDAgMjAgMjAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHgiPjx1c2UgeGxpbms6aHJlZj0iI2xvY2F0aW9uX291dGxpbmVfMjAiIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvciI+PC91c2U+PC9zdmc+PHNwYW4gY2xhc3M9ImUyMjljOGU5YTgiPjxzcGFuPtCV0LrQsNGC0LXRgNC40L3QsdGD0YDQszwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQiPjxhIGhyZWY9Imh0dHBzOi8vcG9nb2RhLm1haWwucnUvIiBjbGFzcz0iZGZlNzgzOGY5NSBhMzViNzI4ZTYwIGI1NTNjZTVmY2IgZTYwNzI4NzRiNSBjZmRlYTI2MDJlIiByZWw9IiI+PHNwYW4gY2xhc3M9ImU4YWZlOWM3M2QgYmNkOGEwNjkwMyI+PGRpdj48aW1nIHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvMDQucG5nIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGFsdD0iIj48L2Rpdj48L3NwYW4+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBhMzkxYmYwMWIwIj48ZGl2PisxMcKwPC9kaXY+PC9zcGFuPjxzcGFuIGNsYXNzPSJmNzI4MjA4ZTI0IGUzMjJiMzdkMjkiPjxkaXY+0L7QsdC70LDRh9C90L4sINCx0LXQtyDRgdGD0YnQtdGB0YLQstC10L3QvdGL0YUg0L7RgdCw0LTQutC+0LI8L2Rpdj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImQ0ZGRhOWU3MjYiPjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCBlYmZlOTUwYThhIGQ1Mjk2OWYzODkiPgogICAgCiAgICAgIDxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L2lucmVnaW9ucy91cmFsLzY2LyIgY2xhc3M9ImEzNWI3MjhlNjAgYjU1M2NlNWZjYiBjMDEyZTU2YzA2IiB9PSIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJlNjFkN2YzZWNjIGEzOTFiZjAxYjAiPtCh0LLQtdGA0LTQu9C+0LLRgdC60LDRjyDQvtCx0LsuPC9zcGFuPgogICAgICA8L2E+CiAgICAKICA8L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQgYzVhYTE0ZmNiYSBlYmZlOTUwYThhIGQ1Mjk2OWYzODkgZjBlMDI1YjZlZSI+PGEgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvcG9saXRpY3MvIiBjbGFzcz0iZGZlNzgzOGY5NSBhMzViNzI4ZTYwIGI1NTNjZTVmY2IgYzAxMmU1NmMwNiIgcmVsPSIiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgZWU3MDliODQyMiBhMzkxYmYwMWIwIj7Qn9C+0LvQuNGC0LjQutCwPC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQgZWJmZTk1MGE4YSBkNTI5NjlmMzg5Ij48YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9lY29ub21pY3MvIiBjbGFzcz0iZGZlNzgzOGY5NSBhMzViNzI4ZTYwIGI1NTNjZTVmY2IgYzAxMmU1NmMwNiIgcmVsPSIiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgZWU3MDliODQyMiBhMzkxYmYwMWIwIj7QrdC60L7QvdC+0LzQuNC60LA8L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCBlYmZlOTUwYThhIGQ1Mjk2OWYzODkiPjxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L3NvY2lldHkvIiBjbGFzcz0iZGZlNzgzOGY5NSBhMzViNzI4ZTYwIGI1NTNjZTVmY2IgYzAxMmU1NmMwNiIgcmVsPSIiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgZWU3MDliODQyMiBhMzkxYmYwMWIwIj7QntCx0YnQtdGB0YLQstC+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQgZWJmZTk1MGE4YSBkNTI5NjlmMzg5Ij48YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9pbmNpZGVudC8iIGNsYXNzPSJkZmU3ODM4Zjk1IGEzNWI3MjhlNjAgYjU1M2NlNWZjYiBjMDEyZTU2YzA2IiByZWw9IiI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBlZTcwOWI4NDIyIGEzOTFiZjAxYjAiPtCh0L7QsdGL0YLQuNGPPC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQgZWJmZTk1MGE4YSBkNTI5NjlmMzg5Ij48c3Ryb25nIGNsYXNzPSJiNTUzY2U1ZmNiIGMwMTJlNTZjMDYiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgZWU3MDliODQyMiBhMzkxYmYwMWIwIj7QktGB0LUg0YHQtdGA0LLQuNGB0Ys8L3NwYW4+PC9zdHJvbmc+PGRpdiBjbGFzcz0iZDgzNzE5ZDE3OSI+PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGlzcGxheT0iYmxvY2siIGNsYXNzPSIgSWNvbiBJY29uLS0yNCBJY29uLS13LTI0IEljb24tLWgtMjQgSWNvbi0tY2hldnJvbl9kb3duXzI0ICIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHN0eWxlPSJ3aWR0aDoyNHB4O2hlaWdodDoyNHB4Ij48dXNlIHhsaW5rOmhyZWY9IiNjaGV2cm9uX2Rvd25fMjQiIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvciI+PC91c2U+PC9zdmc+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYjdiZTAxYTdmYiI+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIGViZmU5NTBhOGEiPjxhIGhyZWY9Imh0dHBzOi8vZmluYW5jZS5tYWlsLnJ1LyIgY2xhc3M9ImRmZTc4MzhmOTUgYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIGMwMTJlNTZjMDYiIHJlbD0ibm9vcGVuZXIgIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBlZTcwOWI4NDIyIGM3YWVkMGQ3ZjMiPtCk0LjQvdCw0L3RgdGLPC9zcGFuPjxzcGFuIGNsYXNzPSJmZmM5OTUzOWRkIj48ZGl2IGNsYXNzPSJjNDAyYzIwMzgxIj48c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBkaXNwbGF5PSJibG9jayIgY2xhc3M9IiBJY29uIEljb24tLTE2IEljb24tLXctMTYgSWNvbi0taC0xNiBJY29uLS1saW5rX291dGxpbmVfMTYgIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9IndpZHRoOjE2cHg7aGVpZ2h0OjE2cHgiPjx1c2UgeGxpbms6aHJlZj0iI2xpbmtfb3V0bGluZV8xNiIgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIj48L3VzZT48L3N2Zz48L2Rpdj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCBlYmZlOTUwYThhIj48YSBocmVmPSJodHRwczovL3Nwb3J0bWFpbC5ydS8iIGNsYXNzPSJkZmU3ODM4Zjk1IGEzNWI3MjhlNjAgYjU1M2NlNWZjYiBjMDEyZTU2YzA2IiByZWw9Im5vb3BlbmVyICIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgZWU3MDliODQyMiBjN2FlZDBkN2YzIj7QodC/0L7RgNGCPC9zcGFuPjxzcGFuIGNsYXNzPSJmZmM5OTUzOWRkIj48ZGl2IGNsYXNzPSJjNDAyYzIwMzgxIj48c3ZnIGFyaWEtaGlkZGVuPSJ0cnVlIiBkaXNwbGF5PSJibG9jayIgY2xhc3M9IiBJY29uIEljb24tLTE2IEljb24tLXctMTYgSWNvbi0taC0xNiBJY29uLS1saW5rX291dGxpbmVfMTYgIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9IndpZHRoOjE2cHg7aGVpZ2h0OjE2cHgiPjx1c2UgeGxpbms6aHJlZj0iI2xpbmtfb3V0bGluZV8xNiIgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIj48L3VzZT48L3N2Zz48L2Rpdj48L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCBlYmZlOTUwYThhIj48YSBocmVmPSJodHRwczovL3Zmb2t1c2UubWFpbC5ydS8iIGNsYXNzPSJkZmU3ODM4Zjk1IGEzNWI3MjhlNjAgYjU1M2NlNWZjYiBjMDEyZTU2YzA2IiByZWw9Im5vb3BlbmVyICIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgZWU3MDliODQyMiBjN2FlZDBkN2YzIj7QktGE0L7QutGD0YHQtTwvc3Bhbj48c3BhbiBjbGFzcz0iZmZjOTk1MzlkZCI+PGRpdiBjbGFzcz0iYzQwMmMyMDM4MSI+PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGlzcGxheT0iYmxvY2siIGNsYXNzPSIgSWNvbiBJY29uLS0xNiBJY29uLS13LTE2IEljb24tLWgtMTYgSWNvbi0tbGlua19vdXRsaW5lXzE2ICIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHN0eWxlPSJ3aWR0aDoxNnB4O2hlaWdodDoxNnB4Ij48dXNlIHhsaW5rOmhyZWY9IiNsaW5rX291dGxpbmVfMTYiIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvciI+PC91c2U+PC9zdmc+PC9kaXY+PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQgZWJmZTk1MGE4YSI+PGEgaHJlZj0iaHR0cHM6Ly9wb2dvZGEubWFpbC5ydS8iIGNsYXNzPSJkZmU3ODM4Zjk1IGEzNWI3MjhlNjAgYjU1M2NlNWZjYiBjMDEyZTU2YzA2IiByZWw9Im5vb3BlbmVyICIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgZWU3MDliODQyMiBjN2FlZDBkN2YzIj7Qn9C+0LPQvtC00LA8L3NwYW4+PHNwYW4gY2xhc3M9ImZmYzk5NTM5ZGQiPjxkaXYgY2xhc3M9ImM0MDJjMjAzODEiPjxzdmcgYXJpYS1oaWRkZW49InRydWUiIGRpc3BsYXk9ImJsb2NrIiBjbGFzcz0iIEljb24gSWNvbi0tMTYgSWNvbi0tdy0xNiBJY29uLS1oLTE2IEljb24tLWxpbmtfb3V0bGluZV8xNiAiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBzdHlsZT0id2lkdGg6MTZweDtoZWlnaHQ6MTZweCI+PHVzZSB4bGluazpocmVmPSIjbGlua19vdXRsaW5lXzE2IiBzdHlsZT0iZmlsbDpjdXJyZW50Q29sb3IiPjwvdXNlPjwvc3ZnPjwvZGl2Pjwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIGViZmU5NTBhOGEiPjxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L2N1cnJlbmN5LyIgY2xhc3M9ImRmZTc4MzhmOTUgYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIGMwMTJlNTZjMDYiIHJlbD0iIj48c3BhbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBlNjFkN2YzZWNjIGVlNzA5Yjg0MjIgYzdhZWQwZDdmMyI+0JrRg9GA0YHRizwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIGViZmU5NTBhOGEiPjxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L2xhbmRpbmcvc2RlbGFuby12LXJvc3NpaS0zOC8iIGNsYXNzPSJkZmU3ODM4Zjk1IGEzNWI3MjhlNjAgYjU1M2NlNWZjYiBjMDEyZTU2YzA2IiByZWw9IiI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBlZTcwOWI4NDIyIGM3YWVkMGQ3ZjMiPtCh0LTQtdC70LDQvdC+INCyINCg0L7RgdGB0LjQuDwvc3Bhbj48L2E+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZDRkZGE5ZTcyNiBmNmJlY2RlODc3Ij48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQgZWJmZTk1MGE4YSBkNTI5NjlmMzg5Ij48YSBocmVmPSJodHRwczovL3ZrLmNvbXBhbnkvcnUvcHJvamVjdHMvIiBjbGFzcz0iZGZlNzgzOGY5NSBhMzViNzI4ZTYwIGI1NTNjZTVmY2IgYzAxMmU1NmMwNiIgcmVsPSJub29wZW5lciAiIHRhcmdldD0iX2JsYW5rIj48c3BhbiBjbGFzcz0iZThhZmU5YzczZCI+PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGlzcGxheT0iYmxvY2siIGNsYXNzPSIgSWNvbiBJY29uLS0yMCBJY29uLS13LTIwIEljb24tLWgtMjAgSWNvbi0tYWxsX2NhdGVnb3JpZXNfb3V0bGluZV8yOCAiIHZpZXdCb3g9IjAgMCAyOCAyOCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiBzdHlsZT0id2lkdGg6MjBweDtoZWlnaHQ6MjBweCI+PHVzZSB4bGluazpocmVmPSIjYWxsX2NhdGVnb3JpZXNfb3V0bGluZV8yOCIgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIj48L3VzZT48L3N2Zz48L3NwYW4+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBlZTcwOWI4NDIyIGEzOTFiZjAxYjAiPtCS0YHQtSDQv9GA0L7QtdC60YLRizwvc3Bhbj48c3BhbiBjbGFzcz0iZmZjOTk1MzlkZCI+PGRpdiBjbGFzcz0iYzQwMmMyMDM4MSI+PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGlzcGxheT0iYmxvY2siIGNsYXNzPSIgSWNvbiBJY29uLS0xNiBJY29uLS13LTE2IEljb24tLWgtMTYgSWNvbi0tbGlua19vdXRsaW5lXzE2ICIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHN0eWxlPSJ3aWR0aDoxNnB4O2hlaWdodDoxNnB4Ij48dXNlIHhsaW5rOmhyZWY9IiNsaW5rX291dGxpbmVfMTYiIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvciI+PC91c2U+PC9zdmc+PC9kaXY+PC9zcGFuPjwvYT48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmNzBmOWJmMjQzIj48aHIgY2xhc3M9ImQzMmEwOWYyMTAgZTVmNzI2NDc0YiI+PGRpdiBjbGFzcz0iZTYxMGM2ZjZiZSIgZGF0YS1sb2dnZXI9IlBvcnRhbE1lbnVCdXJnZXJTb2NpYWwiIGRhdGEtbG9nZ2VyLWlkPSJ5c2JwbDA4MnBubnMiPjxkaXYgZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgYzNkNGQzYTAxNiBhYmFkYjI1MjEzIGQzNzk0NzI4NWMiPtCc0Ysg0LIg0YHQvtGG0YHQtdGC0Y/RhTwvZGl2PjxkaXYgY2xhc3M9ImRiNzkxZThhMzIiPjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZWVlZjQxYzNiNiI+PGEgaHJlZj0iaHR0cHM6Ly92ay5jb20vbm92b3N0aW5hbWFpbGUiIGNsYXNzPSJkZmU3ODM4Zjk1IGMwOTI5MDZmZjMiIHJlbD0ibm9vcGVuZXIgIiB0YXJnZXQ9Il9ibGFuayI+PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZGlzcGxheT0iYmxvY2siIGNsYXNzPSIgSWNvbiBJY29uLS0yMCBJY29uLS13LTIwIEljb24tLWgtMjAgSWNvbi0tbG9nb192a18yMCAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiBzdHlsZT0id2lkdGg6MjBweDtoZWlnaHQ6MjBweCI+PHVzZSB4bGluazpocmVmPSIjbG9nb192a18yMCIgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIj48L3VzZT48L3N2Zz48L2E+PC9kaXY+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBlZWVmNDFjM2I2Ij48YSBocmVmPSJodHRwczovL29rLnJ1L25vdm9zdGluYW1haWxlIiBjbGFzcz0iZGZlNzgzOGY5NSBjMDkyOTA2ZmYzIiByZWw9Im5vb3BlbmVyICIgdGFyZ2V0PSJfYmxhbmsiPjxzdmcgYXJpYS1oaWRkZW49InRydWUiIGRpc3BsYXk9ImJsb2NrIiBjbGFzcz0iIEljb24gSWNvbi0tMjAgSWNvbi0tdy0yMCBJY29uLS1oLTIwIEljb24tLWxvZ29fb2tfMjQgIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgc3R5bGU9IndpZHRoOjIwcHg7aGVpZ2h0OjIwcHgiPjx1c2UgeGxpbms6aHJlZj0iI2xvZ29fb2tfMjQiIHN0eWxlPSJmaWxsOmN1cnJlbnRDb2xvciI+PC91c2U+PC9zdmc+PC9hPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImU2MTBjNmY2YmUiIGRhdGEtbG9nZ2VyPSJQb3J0YWxNZW51QnVyZ2VyRm9vdGVyIiBkYXRhLWxvZ2dlci1pZD0ia2Nka3FmMjRnZWFvIj48ZGl2IGNsYXNzPSJkYjc5MWU4YTMyIj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQiPjxzdHJvbmcgY2xhc3M9ImI1NTNjZTVmY2IgYzQxY2E1NWEzOSI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBlY2YzMDgyZjc4IGE5Yzc2YWQ2YjEiPjxkaXY+wqkgVkssIDE5OTktMjAyNDwvZGl2Pjwvc3Bhbj48L3N0cm9uZz48L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQiPjxhIGhyZWY9Imh0dHBzOi8vdmsuY29tcGFueS9ydS8iIGNsYXNzPSJkZmU3ODM4Zjk1IGEzNWI3MjhlNjAgYjU1M2NlNWZjYiBjNDFjYTU1YTM5IiByZWw9Im5vb3BlbmVyICIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgZWNmMzA4MmY3OCBhOWM3NmFkNmIxIj7QniDQutC+0LzQv9Cw0L3QuNC4PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQiPjxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L2VkaXRvcnMvIiBjbGFzcz0iZGZlNzgzOGY5NSBhMzViNzI4ZTYwIGI1NTNjZTVmY2IgYzQxY2E1NWEzOSIgcmVsPSIiPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGU2MWQ3ZjNlY2MgZWNmMzA4MmY3OCBhOWM3NmFkNmIxIj7QniDQv9GA0L7QtdC60YLQtTwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIj48YSBocmVmPSJodHRwczovL2hlbHAubWFpbC5ydS9sZWdhbC90ZXJtcy9jb21tb24vbWVkaWFyZWNvbW1lbmRhdGlvbiIgY2xhc3M9ImRmZTc4MzhmOTUgYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIGM0MWNhNTVhMzkiIHJlbD0ibm9vcGVuZXIgIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBlY2YzMDgyZjc4IGE5Yzc2YWQ2YjEiPtCeINGC0LXRhdC90L7Qu9C+0LPQuNGP0YUg0YDQtdC60L7QvNC10L3QtNCw0YbQuNC5PC9zcGFuPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJmNzA2NTQ3NmYwIGY1OTUzYWU1ZWQiPjxhIGhyZWY9Imh0dHBzOi8vaGVscC5tYWlsLnJ1L25ld3Nfc3VwcG9ydCIgY2xhc3M9ImRmZTc4MzhmOTUgYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIGM0MWNhNTVhMzkiIHJlbD0ibm9vcGVuZXIgIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBlY2YzMDgyZjc4IGE5Yzc2YWQ2YjEiPtCe0LHRgNCw0YLQvdCw0Y8g0YHQstGP0LfRjDwvc3Bhbj48L2E+PC9kaXY+PGRpdiBjbGFzcz0iZjcwNjU0NzZmMCBmNTk1M2FlNWVkIj48YSBocmVmPSJodHRwczovL2hlbHAubWFpbC5ydS9sZWdhbC90ZXJtcyIgY2xhc3M9ImRmZTc4MzhmOTUgYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIGM0MWNhNTVhMzkiIHJlbD0ibm9vcGVuZXIgIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBlY2YzMDgyZjc4IGE5Yzc2YWQ2YjEiPtCj0YHQu9C+0LLQuNGPINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNGPINGB0LXRgNCy0LjRgdC+0LI8L3NwYW4+PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImY3MDY1NDc2ZjAgZjU5NTNhZTVlZCI+PGEgaHJlZj0iaHR0cHM6Ly9ub25zdGFuZGFyZC5zYWxlcy52ay5jb21wYW55LyIgY2xhc3M9ImRmZTc4MzhmOTUgYTM1YjcyOGU2MCBiNTUzY2U1ZmNiIGM0MWNhNTVhMzkiIHJlbD0ibm9vcGVuZXIgIiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZTYxZDdmM2VjYyBlY2YzMDgyZjc4IGE5Yzc2YWQ2YjEiPtCg0LXQutC70LDQvNCwPC9zcGFuPjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48c3Bhbj4KICAgICAgICA8IS0tIHN0YXJ0OiAvcmIvMTQwMTMxOD9pc19jb21tZXJjaWFsPTAmYnJhbmRzYWZldHk9MCZtZWRpYV9zdGF0X2NhdGVnb3J5PTUmc2l0ZXpvbmU9NyZlbnRpdHlfaWQ9NjExNjU0OTUmZW50aXR5X3R5cGU9YXJ0aWNsZSZlbnRpdHlfY29udGVudF9zdWJ0eXBlPW91dGVyX25ld3MmcHJvamVjdF91dWlkPTI3MDBjMTY3LWViMjUtZmM2Mi1mMmJiLTk2OTRmYzI1MGFhYSAtLT4KICAgICAgICAKCgoKCgoKCjxkaXYgY2xhc3M9Im1haWxydS12aXNpYmlsaXR5LWNoZWNrIiBpZD0ibWFpbHJ1MTcxNjMxMzI5NzE5ODQ0NjI3NyI+IDxzcGFuIGNsYXNzPSJtYWlscnUtdmlzaWJpbGl0eS1jaGVjay1jb3VudGVyIiBkYXRhLWNvdW50ZXI9Imh0dHBzOi8vcnMubWFpbC5ydS9kMTUyNTM2MTY4LmdpZj9zej03JmFtcDtybmQ9MzI3NzIwMzgwOSZhbXA7dHM9MTcxNjMxNDAxNCZhbXA7c3o9NyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9zcGFuPiA8aW1nIHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvZTE1MjUzNjE2OC5naWYiIHN0eWxlPSJ3aWR0aDowO2hlaWdodDowO3Bvc2l0aW9uOmFic29sdXRlO3Zpc2liaWxpdHk6aGlkZGVuOyIgYWx0PSIiPgo8c3R5bGU+Ci5yYi1zbG90X3BsdWcteDkwIHsKaGVpZ2h0OiA5MHB4IWltcG9ydGFudDsKcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogMTsKICAgIAp9Cjwvc3R5bGU+CjwhLS0gRWZmUmVnaW9uSUQ9NTUyOSBQcm92aW5jZUlEPTMyIFJlZ2lvbklEPTU1MjkgYmFubmVyPTE1MjUzNjE2OCBicmFuZHNhZmV0eT0wIGFkZHI9OTQuMjUuMTc5Ljg3IC0tPgogPC9kaXY+Cgo8c2NyaXB0PgogIHRyeXsKICAgIChmdW5jdGlvbiAodywgZCwgcHJlZml4KSB7CiAgICB3LlJCID0gdy5SQiAmJiB3LlJCLnYgJiYgdy5SQi52ID09PSAxID8gdy5SQiA6IChmdW5jdGlvbiAoKSB7CiAgICAgIHZhciAvLyBtYWluIGZsYWcsCiAgICAgICAgZW5hYmxlZCA9ICExLAogICAgICAgIHNlcnZpbmdUeXBlID0gc2VydmVUeXBlKCksCiAgICAgICAgdXNlT2JzZXJ2ZXIgPSAhIXdpbmRvdy5JbnRlcnNlY3Rpb25PYnNlcnZlciwKICAgICAgICB1c2VHZW9tID0gIXVzZU9ic2VydmVyICYmIHNlcnZpbmdUeXBlICE9PSAiWERfRlJBTUUiLAogICAgICAgIC8vIG9sZCBvcGVyYSBmb2N1cyBmbGFnCiAgICAgICAgZm9jdXNlZCA9ICEwLAogICAgICAgIC8vIGNvdW50ZWQgZmxhZwogICAgICAgIGNvdW50ZWQgPSAibWFpbHJ1LXZpc2liaWxpdHktY291bnRlZCIsCiAgICAgICAgLy8gYmFubmVycyB0byBpbnNwZWN0CiAgICAgICAgYmFubmVycyA9IHt9LAogICAgICAgIC8vIHNob3J0Y3V0cwogICAgICAgIGUgPSBkLmRvY3VtZW50RWxlbWVudCwKICAgICAgICBWRSA9IGQubW96VmlzaWJpbGl0eVN0YXRlID8gIm1venZpc2liaWxpdHljaGFuZ2UiIDogZC53ZWJraXRWaXNpYmlsaXR5U3RhdGUgPyAid2Via2l0dmlzaWJpbGl0eWNoYW5nZSIgOiBkLnZpc2liaWxpdHlTdGF0ZSA/ICJ2aXNpYmlsaXR5Y2hhbmdlIiA6ICIiLAogICAgICAgIEhQID0gImhpZGRlbiIgaW4gZCA/ICJoaWRkZW4iIDogIndlYmtpdEhpZGRlbiIgaW4gZCA/ICJ3ZWJraXRIaWRkZW4iIDogIm1vekhpZGRlbiIgaW4gZCA/ICJtb3pIaWRkZW4iIDogIiIsCiAgICAgICAgLy8gbGFzdFRpbWVTdGFtcCA9IDAsCgogICAgICAgIC8vIHRpbWluZwogICAgICAgIHRtLAogICAgICAgIC8vIGludGVyc3Rpb24gb2JzZXJ2ZXIgaW5zdGFuY2UKICAgICAgICBvYnNlcnZlcjsKCiAgICAgIC8vIGhhbmRsZXJzCiAgICAgIGZ1bmN0aW9uIG9uRm9jdXNJbigpIHsKICAgICAgICBmb2N1c2VkID0gITA7CiAgICAgICAgQyghMCk7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIG9uRm9jdXNPdXQoKSB7CiAgICAgICAgZm9jdXNlZCA9ICExOwogICAgICB9CgogICAgICBmdW5jdGlvbiBvblVubG9hZCgpIHsKICAgICAgICBDbGVhcigpOwogICAgICAgIG9mZigpOwogICAgICB9CgogICAgICAvLyB1c2luZyB2aXNpYmlsaXR5IGNvdWxkIGhhdmUgcHJvZml0cyB3aGVuIHRhYiBpcyBub3QKCiAgICAgIGZ1bmN0aW9uIG9uVmlzaWJpbGl0eUNoYW5nZSgpIHsKICAgICAgICBpZiAoIWRbSFBdKSBvbkZvY3VzSW4oKTsKICAgICAgICBlbHNlIG9uRm9jdXNPdXQoKTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gb25XaW5kb3dTY3JvbGwoKSB7CiAgICAgICAgQygpOwogICAgICB9CgogICAgICBmdW5jdGlvbiBvbldpbmRvd1Jlc2l6ZSgpIHsKICAgICAgICBDKCk7CiAgICAgIH0KCiAgICAgIC8vIEkgJm5kYXNoOyBpbnNwZWN0CgogICAgICBmdW5jdGlvbiBJKGJhbm5lck9iamVjdCwgaWQpIHsKICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGJhbm5lck9iamVjdCkgPT09ICJbb2JqZWN0IEFycmF5XSIpIHsKICAgICAgICAgIENsZWFyKGJhbm5lck9iamVjdCk7CiAgICAgICAgICB2YXIgayA9IGJhbm5lck9iamVjdC5sZW5ndGggLSAxOwogICAgICAgICAgZm9yICg7IGsgPj0gMDsgay0tKSB7CiAgICAgICAgICAgIGlmICghcyhiYW5uZXJPYmplY3Rba10uZWwsIGNvdW50ZWQpKSB7CiAgICAgICAgICAgICAgSShiYW5uZXJPYmplY3Rba10pOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBpZiAoIXVzZU9ic2VydmVyICYmICF1c2VHZW9tKSB7CiAgICAgICAgICB0cihiYW5uZXJPYmplY3QucGl4ZWxzX3VuZGV0ZXJtaW5lZCk7CiAgICAgICAgICBiYW5uZXJPYmplY3QuZWxbY291bnRlZF0gPSB0cnVlOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAvLyBiYW5uZXJPYmplY3QgY29udGFpbnMgYmFubmVyT2JqZWN0LmVsIGFuZCBiYW5uZXJPYmplY3QucGl4ZWxzCiAgICAgICAgaWYgKCFiYW5uZXJPYmplY3QuZWwuaWQpIHsKICAgICAgICAgIGlkID0KICAgICAgICAgICAgcHJlZml4ICsKICAgICAgICAgICAgbmV3IERhdGUoKS5nZXRUaW1lKCkgKwogICAgICAgICAgICBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxZTYpOwogICAgICAgICAgYmFubmVyT2JqZWN0LmVsLmlkID0gaWQ7CiAgICAgICAgfQoKICAgICAgICBpZCA9IGJhbm5lck9iamVjdC5lbC5pZDsKCiAgICAgICAgLy8gbGFzdFRpbWVTdGFtcCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICAgIC8vIGFkZGluZyB0aGUgYmFubmVyIGNvbnRhaW5lciB0byBzdG9yYWdlCiAgICAgICAgaWYgKCFiYW5uZXJzW2lkXSkgewogICAgICAgICAgYmFubmVyc1tpZF0gPSB7CiAgICAgICAgICAgIGM6IGJhbm5lck9iamVjdC5lbCwKICAgICAgICAgICAgcHg6IGJhbm5lck9iamVjdC5waXhlbHMsCiAgICAgICAgICAgIHB4X3VuOiBiYW5uZXJPYmplY3QucGl4ZWxzX3VuZGV0ZXJtaW5lZCwKICAgICAgICAgICAgcHhfbnY6IGJhbm5lck9iamVjdC5waXhlbHNfbm9udmlld2FibGUsCiAgICAgICAgICAgIGNiOiBiYW5uZXJPYmplY3QuY2FsbGJhY2ssCiAgICAgICAgICAgIGlvOiB1c2VPYnNlcnZlcgogICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIC8vIGVuYWJsaW5nIGFueXdheQogICAgICAgIG9uKCk7CiAgICAgICAgaWYgKHVzZU9ic2VydmVyKSB7CiAgICAgICAgICBvKGJhbm5lck9iamVjdC5lbCk7CiAgICAgICAgfQogICAgICAgIEMoITApOwogICAgICB9CgogICAgICAvLyBDICZuZGFzaDsgY2hlY2sgdmlld2FiaWxpdHkgb2YgYmFubmVyIHdpdGggdCwgdGltZW91dCBhZnRlciBsb2FkaW5nCgogICAgICBmdW5jdGlvbiBDKHQpIHsKICAgICAgICBmb3IgKHZhciBpZCBpbiBiYW5uZXJzKSB7CiAgICAgICAgICBpZiAoYmFubmVyc1tpZF0gJiYgIUcoaWQpKSB7CiAgICAgICAgICAgIENMKGlkKTsKICAgICAgICAgIH0gZWxzZSBpZiAoCiAgICAgICAgICAgIGJhbm5lcnNbaWRdICYmCiAgICAgICAgICAgIGdldFZBKGJhbm5lcnNbaWRdLmMpID49IDUwICYmCiAgICAgICAgICAgIGhhc0ZvY3VzKCkgJiYKICAgICAgICAgICAgIWJhbm5lcnNbaWRdLnQKICAgICAgICAgICkgewogICAgICAgICAgICAoZnVuY3Rpb24gKF9pZCkgewogICAgICAgICAgICAgIGJhbm5lcnNbX2lkXS50ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICBQKF9pZCk7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fQogICAgICAgICAgICAgIH0sIDFFMyk7CiAgICAgICAgICAgIH0pKGlkKTsKICAgICAgICAgIH0gZWxzZSBpZiAoCiAgICAgICAgICAgIGJhbm5lcnNbaWRdICYmCiAgICAgICAgICAgIGdldFZBKGJhbm5lcnNbaWRdLmMpIDwgNTAKICAgICAgICAgICkgewogICAgICAgICAgICBpZiAoYmFubmVyc1tpZF0udCkgewogICAgICAgICAgICAgIGNsZWFyVGltZW91dChiYW5uZXJzW2lkXS50KTsKICAgICAgICAgICAgICBkZWxldGUgYmFubmVyc1tpZF0udDsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChiYW5uZXJzW2lkXSAmJiAhaGFzRm9jdXMoKSkgewogICAgICAgICAgICBpZiAoYmFubmVyc1tpZF0udCkgewogICAgICAgICAgICAgIGNsZWFyVGltZW91dChiYW5uZXJzW2lkXS50KTsKICAgICAgICAgICAgICBkZWxldGUgYmFubmVyc1tpZF0udDsKICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodG0pOwogICAgICAgICAgICAgIHQgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmICghYmFubmVyc1tpZF0pIHsKICAgICAgICAgICAgQ0woaWQpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKHQpIHsKICAgICAgICAgIGNsZWFyVGltZW91dCh0bSk7CiAgICAgICAgICB0bSA9IHNldFRpbWVvdXQoCiAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICBDKCEwKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgdXNlR2VvbSA/IDNlMiA6IDEwZTMKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBDTCAmbmRhc2g7IENsZWFyIHRpbWVycyBhbmQgc3RvcCBsaXN0ZW5lcnMKCiAgICAgIGZ1bmN0aW9uIENMKGlkLCBvbmx5VE0sIG5vQ291bnQpIHsKICAgICAgICBpZiAoaWQgJiYgYmFubmVyc1tpZF0pIHsKICAgICAgICAgIGNsZWFyVGltZW91dChiYW5uZXJzW2lkXS50KTsKICAgICAgICAgIGJhbm5lcnNbaWRdLnQgPSBudWxsOwogICAgICAgICAgaWYgKCFvbmx5VE0pIHsKICAgICAgICAgICAgaWYgKGJhbm5lcnNbaWRdLmlvICYmIG9ic2VydmVyKSB7CiAgICAgICAgICAgICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGJhbm5lcnNbaWRdLmMpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIW5vQ291bnQgJiYgIXMoYmFubmVyc1tpZF0uYywgY291bnRlZCkpIHsKICAgICAgICAgICAgICB0cihiYW5uZXJzW2lkXS5weF9udik7CiAgICAgICAgICAgICAgYmFubmVyc1tpZF0uY1tjb3VudGVkXSA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYmFubmVyc1tpZF0uYyA9IG51bGw7CiAgICAgICAgICAgIGRlbGV0ZSBiYW5uZXJzW2lkXTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY2xlYXJUaW1lb3V0KHRtKTsKICAgICAgICB0bSA9IG51bGw7CiAgICAgICAgZm9yICh2YXIgaWQgaW4gYmFubmVycykgewogICAgICAgICAgaWYgKGJhbm5lcnNbaWRdLnQpIHsKICAgICAgICAgICAgQ0woaWQsICEwKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIENsZWFyKGJhbm5lcnNBcnJheSkgewogICAgICAgIGlmIChiYW5uZXJzQXJyYXkgJiYgYmFubmVyc0FycmF5Lmxlbmd0aCA+PSAwKSB7CiAgICAgICAgICAvL2NsZWFyIGJhbm5lcnMgZnJvbSBhcnJheQogICAgICAgICAgdmFyIGsgPSBiYW5uZXJzQXJyYXkubGVuZ3RoIC0gMTsKICAgICAgICAgIHZhciBpZDsKICAgICAgICAgIGZvciAoOyBrID49IDA7IGstLSkgewogICAgICAgICAgICBpZCA9IGJhbm5lcnNBcnJheVtrXS5lbC5pZDsKICAgICAgICAgICAgaWYgKGlkICYmIGJhbm5lcnNbaWRdKSB7CiAgICAgICAgICAgICAgLy8gY2xlYXIgYnV0IGRvbid0IGNvdW50IG5vbnZpZXdhYmxlCiAgICAgICAgICAgICAgQ0woaWQsICExLCAhMCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgZm9yICh2YXIgaWQgaW4gYmFubmVycykgewogICAgICAgICAgICAvL2NsZWFyIGFsbAogICAgICAgICAgICBDTChpZCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBQICZuZGFzaDsgcGl4ZWwgdG8gc2VuZAogICAgICBmdW5jdGlvbiBQKGlkLCBvYmosIGNudCkgewogICAgICAgIGlmICghRyhpZCkpIHsKICAgICAgICAgIENMKGlkKTsKICAgICAgICAgIC8vIGJhbm5lciByZW1vdmVkCiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBpZiAoYmFubmVyc1tpZF0pIHsKICAgICAgICAgIG9iaiA9IGJhbm5lcnNbaWRdLmM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmICghaGFzRm9jdXMoKSkgewogICAgICAgICAgQ0woaWQsICEwKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9IGVsc2UgaWYgKGdldFZBKG9iaikgPCA1MCkgewogICAgICAgICAgQ0woaWQsICEwKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGZvciAoY250ID0gYmFubmVyc1tpZF0ucHgubGVuZ3RoIC0gMTsgY250ID49IDA7IGNudC0tKSB7CiAgICAgICAgICBuZXcgSW1hZ2UoKS5zcmMgPSBiYW5uZXJzW2lkXS5weFtjbnRdOwogICAgICAgIH0KICAgICAgICAvLyBzZXQgY291bnRlZCBmbGFnIC0gc2tpcCBpbiBuZXh0IGNvbGxlY3QgbG9vcHMKICAgICAgICBvYmpbY291bnRlZF0gPSB0cnVlOwogICAgICAgIC8vdHJ5IGZpcmUgY2FsbGJhY2sKICAgICAgICB2YXIgY2IgPSBiYW5uZXJzW2lkXS5jYjsKICAgICAgICBpZiAoY2IgJiYgdHlwZW9mIGNiID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBjYigpOwogICAgICAgICAgfSBjYXRjaCAoZSkge30KICAgICAgICB9CiAgICAgICAgLy8gcmVtb3ZlIGJhbm5lciBmcm9tIHN0b3JhZ2Ugb2YgaW5zcGVjdGFibGUgaXRlbXMKICAgICAgICBDTChpZCk7CiAgICAgICAgLy8gdHVybiBsaXN0ZW5lcnMgb2ZmIGlmIGJhbm5lcnMgYXJlIG5vdCBwcmVzZW50CiAgICAgICAgaWYgKCFsKGJhbm5lcnMpKSBvZmYoKTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gaGFzRm9jdXMoKSB7CiAgICAgICAgaWYgKEhQKSBmb2N1c2VkID0gIWRbSFBdOwogICAgICAgIGVsc2UgaWYgKCFWRSAmJiB0eXBlb2YgZC5oYXNGb2N1cyA9PT0gImZ1bmN0aW9uIikKICAgICAgICAgIGZvY3VzZWQgPSBkLmhhc0ZvY3VzKCk7CiAgICAgICAgcmV0dXJuIGZvY3VzZWQ7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGdldFZBKG9iaiwgc291cmNlKSB7CiAgICAgICAgaWYgKG9iai5pZCAmJiBiYW5uZXJzW29iai5pZF0gJiYgYmFubmVyc1tvYmouaWRdLmlvKSB7CiAgICAgICAgICByZXR1cm4gYmFubmVyc1tvYmouaWRdLnYgfHwgMDsKICAgICAgICB9CgogICAgICAgIHZhciBwZXJjZW50ID0gZ2V0R2VvbWV0cnlWaWV3YWJsZUFyZWEob2JqKS5wZXJjZW50OwoKICAgICAgICByZXR1cm4gcGVyY2VudDsKICAgICAgfQoKICAgICAgLyoqIExJU1RFTkVSUyBTV0lUQ0hFUlMgKiovCiAgICAgIGZ1bmN0aW9uIG9uKCkgewogICAgICAgIGlmIChlbmFibGVkKSByZXR1cm47CiAgICAgICAgaWYgKHVzZUdlb20pIHsKICAgICAgICAgIGV2KHcsICJyZXNpemUiLCBvbldpbmRvd1Jlc2l6ZSk7CiAgICAgICAgICBldih3LCAic2Nyb2xsIiwgb25XaW5kb3dTY3JvbGwpOwogICAgICAgIH0KICAgICAgICBpZiAodXNlT2JzZXJ2ZXIpIHsKICAgICAgICAgIG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGgsIHsKICAgICAgICAgICAgdGhyZXNob2xkOiBbMC4xLCAwLjIsIDAuMywgMC40LCAwLjUsIDAuNiwgMC43LCAwLjgsIDAuOSwgMS4wXSwKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBpZiAoVkUpIGV2KGQsIFZFLCBvblZpc2liaWxpdHlDaGFuZ2UpOwogICAgICAgIGVsc2UgewogICAgICAgICAgZXYodywgImJsdXIiLCBvbkZvY3VzT3V0KTsKICAgICAgICAgIGV2KHcsICJmb2N1cyIsIG9uRm9jdXNJbik7CiAgICAgICAgfQogICAgICAgIGV2KHcsICJ1bmxvYWQiLCBvblVubG9hZCk7CiAgICAgICAgZW5hYmxlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIG9mZigpIHsKICAgICAgICBybSh3LCAidW5sb2FkIiwgb25VbmxvYWQpOwogICAgICAgIHJtKHcsICJyZXNpemUiLCBvbldpbmRvd1Jlc2l6ZSk7CiAgICAgICAgcm0odywgInNjcm9sbCIsIG9uV2luZG93U2Nyb2xsKTsKICAgICAgICBpZiAoVkUpIHJtKGQsIFZFLCBvblZpc2liaWxpdHlDaGFuZ2UpOwogICAgICAgIHJtKHcsICJmb2N1cyIsIG9uRm9jdXNJbik7CiAgICAgICAgcm0odywgImJsdXIiLCBvbkZvY3VzT3V0KTsKICAgICAgICBpZiAob2JzZXJ2ZXIpIHsKICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTsKICAgICAgICAgIG9ic2VydmVyID0gbnVsbDsKICAgICAgICB9CiAgICAgICAgY2xlYXJUaW1lb3V0KHRtKTsKICAgICAgICBlbmFibGVkID0gZmFsc2U7CiAgICAgIH0KCiAgICAgIC8qKiBJTlRFUlNFQ1RJT04gT0JTRVJWRVIgVVRJTFMgKiovCiAgICAgIGZ1bmN0aW9uIG8oZSkgewogICAgICAgIG9ic2VydmVyICYmIG9ic2VydmVyLm9ic2VydmUoZSk7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGgoY2hhbmdlcykgewogICAgICAgIGNoYW5nZXMuZm9yRWFjaChmdW5jdGlvbiAoY2hhbmdlUmVjb3JkKSB7CiAgICAgICAgICB2YXIgZWxlbWVudCA9IGNoYW5nZVJlY29yZC50YXJnZXQ7CiAgICAgICAgICB2YXIgaWQgPSBlbGVtZW50LmlkOwoKICAgICAgICAgIGlmIChpZCAmJiBiYW5uZXJzW2lkXSkgewogICAgICAgICAgICBiYW5uZXJzW2lkXS52ID0gTWF0aC5yb3VuZCgKICAgICAgICAgICAgICBjaGFuZ2VSZWNvcmQuaW50ZXJzZWN0aW9uUmF0aW8gKiAxMDAKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBDKCk7CiAgICAgIH0KCiAgICAgIC8qKiBVVElMUyAqKi8KICAgICAgLy8gRyAtIGdldCBlbGVtZW50IGJ5IElEOwogICAgICBmdW5jdGlvbiBHKEUpIHsKICAgICAgICByZXR1cm4gZC5nZXRFbGVtZW50QnlJZChFKTsKICAgICAgfQogICAgICAvLyBldiAtIEVWZW50IHRvIGhhbmRsZQogICAgICBmdW5jdGlvbiBldihlbGVtLCBldmVudE5hbWUsIGNhbGxiYWNrKSB7CiAgICAgICAgZWxlbS5hZGRFdmVudExpc3RlbmVyCiAgICAgICAgICA/IGVsZW0uYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrLCAhMSkKICAgICAgICAgIDogZWxlbS5hdHRhY2hFdmVudCAmJgogICAgICAgICAgICBlbGVtLmF0dGFjaEV2ZW50KCJvbiIgKyBldmVudE5hbWUsIGNhbGxiYWNrKTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gcm0oZWxlbSwgZXZlbnROYW1lLCBjYWxsYmFjaykgewogICAgICAgIGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lcgogICAgICAgICAgPyBlbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjaywgITEpCiAgICAgICAgICA6IGVsZW0uZGV0YWNoRXZlbnQgJiYKICAgICAgICAgICAgZWxlbS5kZXRhY2hFdmVudCgib24iICsgZXZlbnROYW1lLCBjYWxsYmFjayk7CiAgICAgIH0KICAgICAgLy8gb2JqIGxlbmd0aAogICAgICBmdW5jdGlvbiBsKG9iaikgewogICAgICAgIHZhciBzID0gMCwKICAgICAgICAgIGtleTsKICAgICAgICBmb3IgKGtleSBpbiBvYmopIHsKICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkgcysrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gczsKICAgICAgfQogICAgICAvL2VsZW0gc3RhdGUKICAgICAgZnVuY3Rpb24gcyhlbGVtLCBzdGF0ZSkgewogICAgICAgIHJldHVybiAhKHR5cGVvZiBlbGVtW3N0YXRlXSA9PSB1bmRlZmluZWQgfHwgZWxlbVtzdGF0ZV0gIT09IHRydWUpOwogICAgICB9CiAgICAgIC8vdHJhY2sKICAgICAgZnVuY3Rpb24gdHIocGl4ZWxzKSB7CiAgICAgICAgaWYgKHBpeGVscyAmJiBwaXhlbHMubGVuZ3RoKSB7CiAgICAgICAgICBmb3IgKGNudCA9IHBpeGVscy5sZW5ndGggLSAxOyBjbnQgPj0gMDsgY250LS0pIHsKICAgICAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gcGl4ZWxzW2NudF07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNlcnZlVHlwZSgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHdpbmRvdyA9PT0gd2luZG93LnRvcCkgewogICAgICAgICAgICByZXR1cm4gIk9OX1BBR0UiOwogICAgICAgICAgfQoKICAgICAgICAgIHZhciBjdXJyZW50V2luZG93ID0gd2luZG93OwoKICAgICAgICAgIHdoaWxlIChjdXJyZW50V2luZG93ICE9PSBjdXJyZW50V2luZG93LnBhcmVudCkgewogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgY3VycmVudFdpbmRvdy5kb2N1bWVudC5kb21haW4gIT09CiAgICAgICAgICAgICAgY3VycmVudFdpbmRvdy5wYXJlbnQuZG9jdW1lbnQuZG9tYWluCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgIHJldHVybiAiWERfRlJBTUUiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGN1cnJlbnRXaW5kb3cgPSBjdXJyZW50V2luZG93LnBhcmVudDsKICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gIlNfRlJBTUUiOwogICAgICAgIH0gY2F0Y2ggKGUpIHt9CgogICAgICAgIHJldHVybiAiWERfRlJBTUUiOwogICAgICB9CgogICAgICAvLyBnZW9tZXRyeSB2aWV3YWJpbGl0eQogICAgICBmdW5jdGlvbiBnZXRHZW9tZXRyeVZpZXdhYmxlQXJlYShlbGVtZW50LCBjb250ZXh0V2luZG93KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHZhciByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgIHZhciBhcmVhID0gZ2V0QXJlYShyZWN0KTsKICAgICAgICAgIHZhciBjdXJyZW50V2luZG93ID0gd2luZG93OwoKICAgICAgICAgIGNvbnRleHRXaW5kb3cgPSBjb250ZXh0V2luZG93IHx8IHdpbmRvdy50b3A7CgogICAgICAgICAgd2hpbGUgKGN1cnJlbnRXaW5kb3cgIT09IGNvbnRleHRXaW5kb3cpIHsKICAgICAgICAgICAgLy8gMSkgZ2V0IGN1cnJlbnQgZnJhbWUgY29vcmRpbmF0ZXMgaW5zaWRlIGl0cyBwYXJlbnQKICAgICAgICAgICAgLy8gMikgZ2V0IGVsZW1lbnQgY29vcmRpbmF0ZXMgcmVsYXRpdmUgdG8gcGFyZW50CiAgICAgICAgICAgIC8vIDMpIGdldCB2aXNpYmxlIGVsZW1lbnQgY29vcmRpbmF0ZXMgcmVsYXRpdmUgdG8gcGFyZW50CiAgICAgICAgICAgIHZhciBjdXJyZW50UmVjdCA9IGN1cnJlbnRXaW5kb3cuZnJhbWVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwoKICAgICAgICAgICAgcmVjdCA9IGdldFJSKHJlY3QsIGN1cnJlbnRSZWN0KTsKICAgICAgICAgICAgcmVjdC5sZWZ0ID0gTWF0aC5tYXgoY3VycmVudFJlY3QubGVmdCwgcmVjdC5sZWZ0KTsKICAgICAgICAgICAgcmVjdC5yaWdodCA9IE1hdGgubWluKGN1cnJlbnRSZWN0LnJpZ2h0LCByZWN0LnJpZ2h0KTsKICAgICAgICAgICAgcmVjdC50b3AgPSBNYXRoLm1heChjdXJyZW50UmVjdC50b3AsIHJlY3QudG9wKTsKICAgICAgICAgICAgcmVjdC5ib3R0b20gPSBNYXRoLm1pbihjdXJyZW50UmVjdC5ib3R0b20sIHJlY3QuYm90dG9tKTsKCiAgICAgICAgICAgIGlmIChyZWN0LnJpZ2h0IDwgcmVjdC5sZWZ0KSB7CiAgICAgICAgICAgICAgcmVjdC5yaWdodCA9IHJlY3QubGVmdDsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVjdC5ib3R0b20gPCByZWN0LnRvcCkgewogICAgICAgICAgICAgIHJlY3QuYm90dG9tID0gcmVjdC50b3A7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGN1cnJlbnRXaW5kb3cgPSBjdXJyZW50V2luZG93LnBhcmVudDsKICAgICAgICAgIH0KICAgICAgICAgIHJlY3QgPSBnZXRSVkEocmVjdCwgY29udGV4dFdpbmRvdyk7CgogICAgICAgICAgdmFyIHZpZXdhYmxlQXJlYSA9IGdldEFyZWEocmVjdCk7CgogICAgICAgICAgcmVjdC5wZXJjZW50ID0gKHZpZXdhYmxlQXJlYSAvIGFyZWEpICogMTAwOwoKICAgICAgICAgIHJldHVybiByZWN0OwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIHJldHVybiB7IGxlZnQ6IDAsIHJpZ2h0OiAwLCB0b3A6IDAsIGJvdHRvbTogMCwgcGVyY2VudDogMCB9OwogICAgICAgIH0KICAgICAgfQoKICAgICAgZnVuY3Rpb24gZ2V0QXJlYShyZWN0KSB7CiAgICAgICAgcmV0dXJuIChyZWN0LnJpZ2h0IC0gcmVjdC5sZWZ0KSAqIChyZWN0LmJvdHRvbSAtIHJlY3QudG9wKTsKICAgICAgfQogICAgICAvLyByZWxhdGl2ZSByZWN0CiAgICAgIGZ1bmN0aW9uIGdldFJSKHJlY3QsIGNvbnRleHRSZWN0KSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGxlZnQ6IHJlY3QubGVmdCArIGNvbnRleHRSZWN0LmxlZnQsCiAgICAgICAgICByaWdodDogcmVjdC5yaWdodCArIGNvbnRleHRSZWN0LmxlZnQsCiAgICAgICAgICB0b3A6IHJlY3QudG9wICsgY29udGV4dFJlY3QudG9wLAogICAgICAgICAgYm90dG9tOiByZWN0LmJvdHRvbSArIGNvbnRleHRSZWN0LnRvcCwKICAgICAgICB9OwogICAgICB9CiAgICAgIC8vIHJlbGF0aXZlIHZpZXdhYmxlIGFyZWEKICAgICAgZnVuY3Rpb24gZ2V0UlZBKHJlY3QsIGNvbnRleHRXaW5kb3cpIHsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgdmFyIGNvbnRleHRTaXplID0gZ2V0VlMoY29udGV4dFdpbmRvdyk7CgogICAgICAgIHJlc3VsdC5sZWZ0ID0gTWF0aC5tYXgoMCwgcmVjdC5sZWZ0KTsKICAgICAgICByZXN1bHQucmlnaHQgPSBNYXRoLm1pbihjb250ZXh0U2l6ZS53aWR0aCwgcmVjdC5yaWdodCk7CiAgICAgICAgcmVzdWx0LnRvcCA9IE1hdGgubWF4KDAsIHJlY3QudG9wKTsKICAgICAgICByZXN1bHQuYm90dG9tID0gTWF0aC5taW4oY29udGV4dFNpemUuaGVpZ2h0LCByZWN0LmJvdHRvbSk7CgogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgICAgLy8gdmlld3BvcnQgc2l6ZQogICAgICBmdW5jdGlvbiBnZXRWUyh3KSB7CiAgICAgICAgdmFyIHZpZXdQb3J0U2l6ZSA9IHsKICAgICAgICAgIHdpZHRoOiBJbmZpbml0eSwKICAgICAgICAgIGhlaWdodDogSW5maW5pdHksCiAgICAgICAgfTsKICAgICAgICB2YXIgZCA9IHcuZG9jdW1lbnQ7CgogICAgICAgIGlmICghaXNOYU4oZC5ib2R5LmNsaWVudFdpZHRoKSAmJiBkLmJvZHkuY2xpZW50V2lkdGggPiAwKSB7CiAgICAgICAgICB2aWV3UG9ydFNpemUud2lkdGggPSBkLmJvZHkuY2xpZW50V2lkdGg7CiAgICAgICAgfQogICAgICAgIGlmICghaXNOYU4oZC5ib2R5LmNsaWVudEhlaWdodCkgJiYgZC5ib2R5LmNsaWVudEhlaWdodCA+IDApIHsKICAgICAgICAgIHZpZXdQb3J0U2l6ZS5oZWlnaHQgPSBkLmJvZHkuY2xpZW50SGVpZ2h0OwogICAgICAgIH0KICAgICAgICBpZiAoCiAgICAgICAgICAhIWQuZG9jdW1lbnRFbGVtZW50ICYmCiAgICAgICAgICAhIWQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoICYmCiAgICAgICAgICAhaXNOYU4oZC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpCiAgICAgICAgKSB7CiAgICAgICAgICB2aWV3UG9ydFNpemUud2lkdGggPSBkLmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDsKICAgICAgICB9CiAgICAgICAgaWYgKAogICAgICAgICAgISFkLmRvY3VtZW50RWxlbWVudCAmJgogICAgICAgICAgISFkLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgJiYKICAgICAgICAgICFpc05hTihkLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpCiAgICAgICAgKSB7CiAgICAgICAgICB2aWV3UG9ydFNpemUuaGVpZ2h0ID0gZC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OwogICAgICAgIH0KICAgICAgICBpZiAoISF3LmlubmVyV2lkdGggJiYgIWlzTmFOKHcuaW5uZXJXaWR0aCkpIHsKICAgICAgICAgIHZpZXdQb3J0U2l6ZS53aWR0aCA9IE1hdGgubWluKHZpZXdQb3J0U2l6ZS53aWR0aCwgdy5pbm5lcldpZHRoKTsKICAgICAgICB9CiAgICAgICAgaWYgKCEhdy5pbm5lckhlaWdodCAmJiAhaXNOYU4ody5pbm5lckhlaWdodCkpIHsKICAgICAgICAgIHZpZXdQb3J0U2l6ZS5oZWlnaHQgPSBNYXRoLm1pbigKICAgICAgICAgICAgdmlld1BvcnRTaXplLmhlaWdodCwKICAgICAgICAgICAgdy5pbm5lckhlaWdodAogICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiB2aWV3UG9ydFNpemU7CiAgICAgIH0KCiAgICAgIC8qKiBQVUJMSUMgSU5URVJGQUNFICoqLwoKICAgICAgcmV0dXJuIHsKICAgICAgICBJOiBJLAogICAgICAgIC8vIGRlYnVnCiAgICAgICAgLy8gLCBiYW5uZXJzOiBiYW5uZXJzCiAgICAgICAgdjogMSwKICAgICAgfTsKICAgIH0pKCk7CiAgfSkod2luZG93LCBkb2N1bWVudCwgJ21haWxydScpCiAgfWNhdGNoIChlKSB7fQo8L3NjcmlwdD4KIAoKPHNjcmlwdD4KICAoZnVuY3Rpb24ocHJlZml4KXsKICAgIHRyeXsKICAgICAgCiAgICAgIGZ1bmN0aW9uIGdldEFkc0NvbnRhaW5lcnMoKSB7CiAgCQkJdmFyIEFEU19DTEFTUyA9IHByZWZpeCArICctdmlzaWJpbGl0eS1jaGVjaycsCiAgCQkJCUFEU19DT1VOVEVSX0NMQVNTID0gQURTX0NMQVNTICsgJy1jb3VudGVyJywKICAJCQkJQURTX0NBTExCQUNLX0NMQVNTID0gQURTX0NMQVNTICsgJy1jYWxsYmFjaycsCiAgCQkJCUNPVU5URVJfQVRUUiA9ICdkYXRhLWNvdW50ZXInLAogIAkJCQlDT1VOVEVSX0FUVFJfVU5ERVRFUk1JTkVEID0gQ09VTlRFUl9BVFRSICsgJy11bicsCiAgCQkJCUNPVU5URVJfQVRUUl9OT05WSUVXQUJMRSA9IENPVU5URVJfQVRUUiArICctbnYnLAogIAkJCQlDQUxMQkFDS19BVFRSID0gJ2RhdGEtY2FsbGJhY2snLAogIAkJCQlPQlNFUlZFUl9BVFRSID0gJ2RhdGEtb2JzZXJ2ZXInLAogIAkJCQljb250YWluZXJzID0gW10sCiAgCQkJCWNvdW50YWJsZXMgPSBbXSwKICAJCQkJaSwgaywgY291bnRlcnMsIF9jb3VudGVyLCBfb2JzZXJ2ZXI7CiAgIAogIAkJCWNvbnRhaW5lcnMgPSBnZXRCeUNsYXNzKGRvY3VtZW50LCBBRFNfQ0xBU1MpOwogIAkJCWZvciAoaSA9IGNvbnRhaW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAJCQkJdmFyIGNvdW50ZXJzID0gZ2V0QnlDbGFzcyhjb250YWluZXJzW2ldLCBBRFNfQ09VTlRFUl9DTEFTUywgJ3NwYW4nKTsKICAJCQkJX2NvdW50ZXIgPSBjb250YWluZXJzW2ldLmdldEF0dHJpYnV0ZShDT1VOVEVSX0FUVFIpOwogIAkJCQlfb2JzZXJ2ZXIgPSBjb250YWluZXJzW2ldLmhhc0F0dHJpYnV0ZShPQlNFUlZFUl9BVFRSKTsKICAJCQkJY291bnRhYmxlc1tpXSA9IHsKICAJCQkJCWVsOiBjb250YWluZXJzW2ldLAogIAkJCQkJcGl4ZWxzOiBbXSwKICAJCQkJCXBpeGVsc191bmRldGVybWluZWQ6IFtdLAogIAkJCQkJcGl4ZWxzX25vbnZpZXdhYmxlOiBbXSwKICAJCQkJCW9ic2VydmVyOiBfb2JzZXJ2ZXIKICAJCQkJfTsKICAJCQkJaWYgKF9jb3VudGVyKSBjb3VudGFibGVzW2ldLnBpeGVscy5wdXNoKF9jb3VudGVyKTsKICAJCQkJZm9yIChrID0gY291bnRlcnMubGVuZ3RoIC0gMTsgayA+PSAwOyBrLS0pIHsKICAJCQkJCWlmIChjb3VudGVyc1trXS5wYXJlbnROb2RlID09PSBjb3VudGFibGVzW2ldLmVsKSB7CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzLnB1c2goX2NvdW50ZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY291bnRlciA9IGNvdW50ZXJzW2tdLmdldEF0dHJpYnV0ZShDT1VOVEVSX0FUVFJfVU5ERVRFUk1JTkVEKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzX3VuZGV0ZXJtaW5lZC5wdXNoKF9jb3VudGVyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSX05PTlZJRVdBQkxFKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzX25vbnZpZXdhYmxlLnB1c2goX2NvdW50ZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogIAkJCQl9CiAgCQkJCXZhciBjYWxsYmFjayA9IGdldEJ5Q2xhc3MoY29udGFpbmVyc1tpXSwgQURTX0NBTExCQUNLX0NMQVNTLCAnc3BhbicpOwogIAkJCQlpZiAoY2FsbGJhY2tbMF0pIHsKICAJCQkJICB2YXIgX2NhbGxiYWNrID0gY2FsbGJhY2tbMF0uZ2V0QXR0cmlidXRlKENBTExCQUNLX0FUVFIpOwogIAkJCQkgIGlmIChfY2FsbGJhY2sgJiYgd2luZG93LlJCX0NBTExCQUNLUyAmJiB3aW5kb3cuUkJfQ0FMTEJBQ0tTW19jYWxsYmFja10pIHsKICAJCQkJICAgIGNvdW50YWJsZXNbaV0uY2FsbGJhY2sgPSB3aW5kb3cuUkJfQ0FMTEJBQ0tTW19jYWxsYmFja107CiAgCQkJCSAgfQogIAkJCQl9CiAgCQkJCWlmICghY291bnRhYmxlc1tpXS5waXhlbHMubGVuZ3RoKSBjb3VudGFibGVzLnNwbGljZShpLCAxKTsKICAJCQl9CiAgIAogIAkJCXJldHVybiBjb3VudGFibGVzOwogIAkJfQogICAKICAJCWZ1bmN0aW9uIGdldEJ5Q2xhc3MocGFyZW50LCBjaGlsZENsYXNzTmFtZSwgdGFnTmFtZSkgewogIAkJCWlmIChwYXJlbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSkgewogIAkJCQlyZXR1cm4gcGFyZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2hpbGRDbGFzc05hbWUpOwogIAkJCX0gZWxzZSBpZiAocGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwpIHsKICAgCiAgCQkJCXJldHVybiBwYXJlbnQucXVlcnlTZWxlY3RvckFsbCgnLicgKyBjaGlsZENsYXNzTmFtZSk7CiAgCQkJfSBlbHNlIHsKICAJCQkJdmFyIGVscyA9IFtdOwogIAkJCQl2YXIgdG1wID0gcGFyZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZ05hbWUgPyB0YWdOYW1lIDogIioiKTsKICAJCQkJdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cCgiKF58XHMpIiArIGNoaWxkQ2xhc3NOYW1lICsgIihcc3wkKSIpOwogIAkJCQlmb3IgKHZhciBpID0gMDsgaSA8IHRtcC5sZW5ndGg7IGkrKykgewogIAkJCQkJaWYgKHJlZ2V4LnRlc3QodG1wW2ldLmNsYXNzTmFtZSkpIHsKICAJCQkJCQllbHMucHVzaCh0bXBbaV0pOwogIAkJCQkJfQogIAkJCQl9CiAgCQkJCXJldHVybiBlbHM7CiAgCQkJfQogIAkJfQogICAKICAJCVJCLkkoZ2V0QWRzQ29udGFpbmVycygpKTsKICAgICAgCiAgICB9Y2F0Y2goZSl7fQogIH0oJ21haWxydScpKQo8L3NjcmlwdD4KCiAgICAgICAgPCEtLSBlbmQ6IC9yYi8xNDAxMzE4IC0tPgogICAgICA8L3NwYW4+PGRpdiBkYXRhLXJiLXNsb3Q9IjM5NzcyIiBjbGFzcz0icmItc2xvdF9wbHVnLXg5MCI+PC9kaXY+PC9oZWFkZXI+PC9kaXY+PGRpdiBkYXRhLWxvZ2dlci1wYXJlbnQ9ImNvbnRlbnQiPjxkaXYgZGF0YS1hcnRpY2xlLWlkPSI2MTE2NTQ5NSIgZGF0YS1hcnRpY2xlLWluZGV4PSIwIj48ZGl2IGRhdGEtcWE9IldyYXBwZXIiPjxkaXYgZGF0YS1xYT0iV3JhcHBlckNvbnRlbnQiIGNsYXNzPSJhMmI5YzdiNmJkIj48c2VjdGlvbiBjbGFzcz0iYzc4ZjFhNGMzMiBhZDM4YmIwZWQ5IGFiODc3YjIwZmIiPjxtYWluIGNsYXNzPSJiOTIyZGExYzBiIj48ZGl2PjxzZWN0aW9uIGRhdGEtcWE9IkFydGljbGUiIGRhdGEtbWVkaWEtc3RhdC1lbnRpdHlpZD0iNjExNjU0OTUiIGNsYXNzPSJhMzVkOTUzZjc4IGpzLW1lZGlhLXN0YXQtYXJ0aWNsZSBhZDM4YmIwZWQ5Ij48c2VjdGlvbiBjbGFzcz0iZGYwNjhmOGY5NyBhZDM4YmIwZWQ5IGFiODc3YjIwZmIiPjxkaXY+PHNwYW4+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy9jbGllbnQoMSkuY3NzIj4gCgk8ZGl2IGlkPSJoaWdobGlnaHRzLXJvb3QiPjxkaXYgY2xhc3M9ImZmZTBkNzc0OTkgYjYxZmYzOTE5MCIgZGF0YS1yZWFjdHJvb3Q9IiI+PGRpdiBkYXRhLXFhPSJNb3JlTGlzdCIgY2xhc3M9ImFkYTY2YWMxOWMiPjxkaXYgY2xhc3M9ImE4ZWZkZWI4Y2UiPjxkaXYgY2xhc3M9ImI2MzAzNjIzZTciPjxkaXYgY2xhc3M9ImMwYjBiOGRhYjMiPjxkaXYgY2xhc3M9ImUzYWEyMzg5NzMiPjxkaXYgY2xhc3M9ImU4NDY5OTJmNTciPjxkaXYgZGF0YS1sb2dnZXI9IkF1ZGlvUGxheWVyIiBkYXRhLWxvZ2dlci1pZD0iZXdsMmp1bnFtMjhjIj48YXVkaW8+PHNvdXJjZSB0eXBlPSJhdWRpby9tcGVnIiBzcmM9Imh0dHBzOi8vc3RhdGljLm1lZGlhLWdvbG9zLm1haWwucnUvdjIvYXVkaW8vZDc0OTRlMzYtMDVkMC01Y2RmLWI4ZTktZWI5NGI3ZGFmZjQ3LyI+PC9hdWRpbz48YnV0dG9uIGNsYXNzPSJjNDM1ZTdkYjUyIj48c3BhbiBjbGFzcz0iYjU1MTkyYTFiZCBlMDFmMjM5NjRiIiBkYXRhLXFhPSJJY29uIj48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBkYXRhLXFhPSJJY29uU3ZnIiBjbGFzcz0iZmVlNTRiNzhiOSIgc3R5bGU9IndpZHRoOiA4cHg7IGhlaWdodDogOHB4OyBmaWxsOiBjdXJyZW50Y29sb3I7Ij48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjg5MSAxNC44MjRBMS4yNTMgMS4yNTMgMCAwMTIgMTMuNzQ4VjIuMjUyYTEuMjUzIDEuMjUzIDAgMDExLjkxMy0xLjA2M2w5LjQyMSA1LjY5MmExLjI3MyAxLjI3MyAwIDAxMCAyLjIzOGwtOS40MyA1LjY5OC0uMDEzLjAwN3oiPjwvcGF0aD48L3N2Zz48L3NwYW4+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImE1ZTViOWU3MjMgZTFiOTYxNWIxMyBhMWE2ODBmYzdjIj7Qk9C70LDQstC90L7QtTwvc3Bhbj48L2J1dHRvbj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJiNjMwMzYyM2U3Ij48YSBjbGFzcz0iYzBiMGI4ZGFiMyIgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvc3Rvcmllcy82NjEtZ2xhdm55ZS1ub3Zvc3RpLTIxLTA1LTI0LTIvIj48c3BhbiBjbGFzcz0iYjU1MTkyYTFiZCIgZGF0YS1xYT0iSWNvbiIgc3R5bGU9IiI+PHN2ZyB2aWV3Qm94PSIwIDAgMTQgMTYiIGRhdGEtcWE9Ikljb25TdmciIGNsYXNzPSJmZWU1NGI3OGI5IGI2YmE3NGI2OTIiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PHBhdGggY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMi42IDBBMi42IDIuNiAwIDAwMCAyLjZ2Ny44QTIuNiAyLjYgMCAwMDIuNiAxM2g4LjhhMi42IDIuNiAwIDAwMi42LTIuNlYyLjZBMi42IDIuNiAwIDAwMTEuNCAwSDIuNnptNy45MSA0LjA5NmExIDEgMCAwMS0uMDA2IDEuNDE0bC0zLjIyOCAzLjJhMSAxIDAgMDEtMS40MTEtLjAwM0wzLjg5MyA2LjczNWExIDEgMCAwMTEuNDE0LTEuNDE0TDYuNTc1IDYuNTlsMi41MjEtMi41YTEgMSAwIDAxMS40MTQuMDA3ek0zIDE0YTEgMSAwIDEwMCAyaDhhMSAxIDAgMTAwLTJIM3oiPjwvcGF0aD48L3N2Zz48L3NwYW4+0JPQu9Cw0LLQvdGL0LUg0L3QvtCy0L7RgdGC0Lgg0Log0LLQtdGH0LXRgNGDIDIxINC80LDRjzwvYT48L2Rpdj48ZGl2IGNsYXNzPSJiNjMwMzYyM2U3IGU5MjhkNzNhYWQiPjxhIGNsYXNzPSJjMGIwYjhkYWIzIiBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9jaHJvbmljbGUvNDM2LWtydXNoZW5peWUtdmVydG9sZXRhLXByZXppZGVudGEtaXJhbmEvIj48c3BhbiBjbGFzcz0iYjU1MTkyYTFiZCIgZGF0YS1xYT0iSWNvbiIgc3R5bGU9IiI+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIGRhdGEtcWE9Ikljb25TdmciIGNsYXNzPSJmZWU1NGI3OGI5IGI2YmE3NGI2OTIgZWRmMGFkODkwNiIgc3R5bGU9IndpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7Ij48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE0Ljc1NCAxLjI0NmEyLjUgMi41IDAgMDAtMy41MzYgMEw4LjU4MyAzLjg4MiAzLjc4MyAxLjdBMS42MzggMS42MzggMCAwMDIuMDIgNC40MmwzLjIgMi44MjMtMS4xNjUgMS4xNjUtMS41MjEtLjI2OGExLjcyMSAxLjcyMSAwIDAwLTEuMTg1IDMuMTdsMi4wODcgMS4yNTMgMS4yNTIgMi4wODdhMS43MjEgMS43MjEgMCAwMDMuMTcxLTEuMTg1bC0uMjY4LTEuNTIxIDEuMTY1LTEuMTY2IDIuODI0IDMuMmExLjYzOCAxLjYzOCAwIDAwMi43Mi0xLjc2bC0yLjE4My00LjggMi42MzYtMi42MzZhMi41IDIuNSAwIDAwMC0zLjUzNnoiPjwvcGF0aD48L3N2Zz48L3NwYW4+0JrRgNGD0YjQtdC90LjQtSDQstC10YDRgtC+0LvQtdGC0LAg0L/RgNC10LfQuNC00LXQvdGC0LAg0JjRgNCw0L3QsDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJiNjMwMzYyM2U3IGU5MjhkNzNhYWQiPjxhIGNsYXNzPSJjMGIwYjhkYWIzIiBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9zdG9yeS9wb2xpdGljcy91a3JhaW5lX2NvbmZsaWN0LyI+PHNwYW4gY2xhc3M9ImI1NTE5MmExYmQiIGRhdGEtcWE9Ikljb24iIHN0eWxlPSIiPjxzdmcgdmlld0JveD0iMCAwIDEyIDE2IiBkYXRhLXFhPSJJY29uU3ZnIiBjbGFzcz0iZmVlNTRiNzhiOSBiNmJhNzRiNjkyIGVkZjBhZDg5MDYiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04IDBMNyA2aDVMNCAxNmwxLTZIMEw4IDB6Ij48L3BhdGg+PC9zdmc+PC9zcGFuPtCh0L/QtdGG0L7Qv9C10YDQsNGG0LjRjyDQvdCwINCj0LrRgNCw0LjQvdC1PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImUzZDdiYTk3MTgiPjxkaXYgY2xhc3M9ImU5YzFkODkzMjQiPtCV0YnRkTxzdmcgYXJpYS1oaWRkZW49InRydWUiIGRpc3BsYXk9ImJsb2NrIiBjbGFzcz0iIEljb24gSWNvbi0tMTIgSWNvbi0tdy0xMiBJY29uLS1oLTggSWNvbi0tZHJvcGRvd25fMTIgZmViMjc4NzgyNCIgdmlld0JveD0iMCAwIDEyIDgiIHdpZHRoPSIxMiIgaGVpZ2h0PSI4IiBzdHlsZT0id2lkdGg6IDEycHg7IGhlaWdodDogOHB4OyI+PHVzZSB4bGluazpocmVmPSIjZHJvcGRvd25fMTIiIHN0eWxlPSJmaWxsOiBjdXJyZW50Y29sb3I7Ij48L3VzZT48L3N2Zz48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJkNWNhODExZTlmIj48ZGl2IGNsYXNzPSJiNjMwMzYyM2U3Ij48ZGl2IGNsYXNzPSJjMGIwYjhkYWIzIj48ZGl2IGNsYXNzPSJlM2FhMjM4OTczIj48ZGl2IGNsYXNzPSJlODQ2OTkyZjU3Ij48ZGl2IGRhdGEtbG9nZ2VyPSJBdWRpb1BsYXllciIgZGF0YS1sb2dnZXItaWQ9InVxcWg3aDg1dHk1NyI+PGF1ZGlvPjxzb3VyY2UgdHlwZT0iYXVkaW8vbXBlZyIgc3JjPSJodHRwczovL3N0YXRpYy5tZWRpYS1nb2xvcy5tYWlsLnJ1L3YyL2F1ZGlvL2Q3NDk0ZTM2LTA1ZDAtNWNkZi1iOGU5LWViOTRiN2RhZmY0Ny8iPjwvYXVkaW8+PGJ1dHRvbiBjbGFzcz0iYzQzNWU3ZGI1MiI+PHNwYW4gY2xhc3M9ImI1NTE5MmExYmQgZTAxZjIzOTY0YiIgZGF0YS1xYT0iSWNvbiI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZGF0YS1xYT0iSWNvblN2ZyIgY2xhc3M9ImZlZTU0Yjc4YjkiIHN0eWxlPSJ3aWR0aDogOHB4OyBoZWlnaHQ6IDhweDsgZmlsbDogY3VycmVudGNvbG9yOyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMy44OTEgMTQuODI0QTEuMjUzIDEuMjUzIDAgMDEyIDEzLjc0OFYyLjI1MmExLjI1MyAxLjI1MyAwIDAxMS45MTMtMS4wNjNsOS40MjEgNS42OTJhMS4yNzMgMS4yNzMgMCAwMTAgMi4yMzhsLTkuNDMgNS42OTgtLjAxMy4wMDd6Ij48L3BhdGg+PC9zdmc+PC9zcGFuPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJhNWU1YjllNzIzIGUxYjk2MTViMTMgYTFhNjgwZmM3YyI+0JPQu9Cw0LLQvdC+0LU8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYjYzMDM2MjNlNyI+PGEgY2xhc3M9ImMwYjBiOGRhYjMiIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L3N0b3JpZXMvNjYxLWdsYXZueWUtbm92b3N0aS0yMS0wNS0yNC0yLyI+PHNwYW4gY2xhc3M9ImI1NTE5MmExYmQiIGRhdGEtcWE9Ikljb24iIHN0eWxlPSIiPjxzdmcgdmlld0JveD0iMCAwIDE0IDE2IiBkYXRhLXFhPSJJY29uU3ZnIiBjbGFzcz0iZmVlNTRiNzhiOSBiNmJhNzRiNjkyIiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsiPjxwYXRoIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIuNiAwQTIuNiAyLjYgMCAwMDAgMi42djcuOEEyLjYgMi42IDAgMDAyLjYgMTNoOC44YTIuNiAyLjYgMCAwMDIuNi0yLjZWMi42QTIuNiAyLjYgMCAwMDExLjQgMEgyLjZ6bTcuOTEgNC4wOTZhMSAxIDAgMDEtLjAwNiAxLjQxNGwtMy4yMjggMy4yYTEgMSAwIDAxLTEuNDExLS4wMDNMMy44OTMgNi43MzVhMSAxIDAgMDExLjQxNC0xLjQxNEw2LjU3NSA2LjU5bDIuNTIxLTIuNWExIDEgMCAwMTEuNDE0LjAwN3pNMyAxNGExIDEgMCAxMDAgMmg4YTEgMSAwIDEwMC0ySDN6Ij48L3BhdGg+PC9zdmc+PC9zcGFuPtCT0LvQsNCy0L3Ri9C1INC90L7QstC+0YHRgtC4INC6INCy0LXRh9C10YDRgyAyMSDQvNCw0Y88L2E+PC9kaXY+PGRpdiBjbGFzcz0iYjYzMDM2MjNlNyI+PGEgY2xhc3M9ImMwYjBiOGRhYjMiIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L2Nocm9uaWNsZS80MzYta3J1c2hlbml5ZS12ZXJ0b2xldGEtcHJlemlkZW50YS1pcmFuYS8iPjxzcGFuIGNsYXNzPSJiNTUxOTJhMWJkIiBkYXRhLXFhPSJJY29uIiBzdHlsZT0iIj48c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNiIgZGF0YS1xYT0iSWNvblN2ZyIgY2xhc3M9ImZlZTU0Yjc4YjkgYjZiYTc0YjY5MiBlZGYwYWQ4OTA2IiBzdHlsZT0id2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTQuNzU0IDEuMjQ2YTIuNSAyLjUgMCAwMC0zLjUzNiAwTDguNTgzIDMuODgyIDMuNzgzIDEuN0ExLjYzOCAxLjYzOCAwIDAwMi4wMiA0LjQybDMuMiAyLjgyMy0xLjE2NSAxLjE2NS0xLjUyMS0uMjY4YTEuNzIxIDEuNzIxIDAgMDAtMS4xODUgMy4xN2wyLjA4NyAxLjI1MyAxLjI1MiAyLjA4N2ExLjcyMSAxLjcyMSAwIDAwMy4xNzEtMS4xODVsLS4yNjgtMS41MjEgMS4xNjUtMS4xNjYgMi44MjQgMy4yYTEuNjM4IDEuNjM4IDAgMDAyLjcyLTEuNzZsLTIuMTgzLTQuOCAyLjYzNi0yLjYzNmEyLjUgMi41IDAgMDAwLTMuNTM2eiI+PC9wYXRoPjwvc3ZnPjwvc3Bhbj7QmtGA0YPRiNC10L3QuNC1INCy0LXRgNGC0L7Qu9C10YLQsCDQv9GA0LXQt9C40LTQtdC90YLQsCDQmNGA0LDQvdCwPC9hPjwvZGl2PjxkaXYgY2xhc3M9ImI2MzAzNjIzZTciPjxhIGNsYXNzPSJjMGIwYjhkYWIzIiBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9zdG9yeS9wb2xpdGljcy91a3JhaW5lX2NvbmZsaWN0LyI+PHNwYW4gY2xhc3M9ImI1NTE5MmExYmQiIGRhdGEtcWE9Ikljb24iIHN0eWxlPSIiPjxzdmcgdmlld0JveD0iMCAwIDEyIDE2IiBkYXRhLXFhPSJJY29uU3ZnIiBjbGFzcz0iZmVlNTRiNzhiOSBiNmJhNzRiNjkyIGVkZjBhZDg5MDYiIHN0eWxlPSJ3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04IDBMNyA2aDVMNCAxNmwxLTZIMEw4IDB6Ij48L3BhdGg+PC9zdmc+PC9zcGFuPtCh0L/QtdGG0L7Qv9C10YDQsNGG0LjRjyDQvdCwINCj0LrRgNCw0LjQvdC1PC9hPjwvZGl2PjxkaXYgY2xhc3M9ImUzZDdiYTk3MTgiPjxkaXYgY2xhc3M9ImU5YzFkODkzMjQiPtCV0YnRkTxzdmcgYXJpYS1oaWRkZW49InRydWUiIGRpc3BsYXk9ImJsb2NrIiBjbGFzcz0iIEljb24gSWNvbi0tMTIgSWNvbi0tdy0xMiBJY29uLS1oLTggSWNvbi0tZHJvcGRvd25fMTIgZmViMjc4NzgyNCIgdmlld0JveD0iMCAwIDEyIDgiIHdpZHRoPSIxMiIgaGVpZ2h0PSI4IiBzdHlsZT0id2lkdGg6MTJweDtoZWlnaHQ6OHB4Ij48dXNlIHhsaW5rOmhyZWY9IiNkcm9wZG93bl8xMiIgc3R5bGU9ImZpbGw6Y3VycmVudENvbG9yIj48L3VzZT48L3N2Zz48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4KCQoJPC9zcGFuPjwvZGl2PjxoZWFkZXIgY2xhc3M9ImM5MTgzOGE2NjkiPjxoZWFkZXIgY2xhc3M9ImI1ZmM1YWEwMjQgZGYwNjhmOGY5NyBlMWE2NzBkMmVmIj48ZGl2IGFyaWEtbGFiZWw9ItCd0LDQstC40LPQsNGG0LjRjyIgZGF0YS1sb2dnZXI9IkJyZWFkY3J1bWJzIiByb2xlPSJuYXZpZ2F0aW9uIiBjbGFzcz0iYzYzMzk3MTBlMyBmM2VjMDc4ODNmIiBkYXRhLWxvZ2dlci1pZD0iaDhyMGRxdnV1Y3J0Ij48c3BhbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBmNWZmNzk1YmYxIGFiYWRiMjUyMTMgYTljNzZhZDZiMSI+PHRpbWUgZGF0ZXRpbWU9IjIwMjQtMDUtMjFUMTU6NDk6MzgrMDM6MDAiIGNsYXNzPSJqcy1hZ28gIiBkYXRhLWFnb19jb250ZW50PSIxNTo0OSAo0LzRgdC6KSI+NSDRh9Cw0YHQvtCyINC90LDQt9Cw0LQ8L3RpbWU+PC9zcGFuPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4sIDwvc3Bhbj48c3BhbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBmNWZmNzk1YmYxIGFiYWRiMjUyMTMgYTljNzZhZDZiMSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmJjLnJ1LyIgY2xhc3M9ImRmZTc4MzhmOTUgZjVmZjc5NWJmMSBjZTM1ODFhZDEwIiByZWw9Im5vb3BlbmVyICIgdGFyZ2V0PSJfYmxhbmsiPtCg0JHQmjwvYT48L3NwYW4+PHNwYW4gYXJpYS1oaWRkZW49InRydWUiPiwgPC9zcGFuPjxzcGFuIGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGY1ZmY3OTViZjEgYWJhZGIyNTIxMyBhOWM3NmFkNmIxIj48YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9wb2xpdGljcy8iIGNsYXNzPSJkZmU3ODM4Zjk1IGY1ZmY3OTViZjEgY2UzNTgxYWQxMCIgcmVsPSJub29wZW5lciAiIHRhcmdldD0iX2JsYW5rIj7Qn9C+0LvQuNGC0LjQutCwPC9hPjwvc3Bhbj48L2Rpdj48aDEgZGF0YS1xYT0iVGl0bGUiIGNsYXNzPSJkMTM0OWU0ZTNmIGZhMzlhNmJjOGUgZDFjZTZiY2RiYSIgaXRlbXByb3A9ImhlYWRsaW5lIj7QrdC60YEt0LvQuNC00LXRgCDCq9Cg0L7QtNC40L3Ri8K7INC70LjRiNC40YLRgdGPINC/0L7RgdGC0LAg0LIg0JPQvtGB0LTRg9C80LUg0L3QsCDRhNC+0L3QtSDRgdGD0LTQsCDRgSDQstC+0LXQvdC60L7RgNC+0Lw8L2gxPjxkaXYgY2xhc3M9ImY4Y2UwZDJkNzkiPjxwPtCf0LXRgNCy0YvQuSDQt9Cw0LzQs9C70LDQstGLINGE0YDQsNC60YbQuNC4INGB0L/RgNCw0LLQvtGA0L7RgdGB0L7QsiDQsiZuYnNwO9CT0L7RgdC00YPQvNC1INCT0LXQvdC90LDQtNC40Lkg0KHQtdC80LjQs9C40L0g0YHQvdGP0YIg0YEmbmJzcDvQv9C+0YHRgtCwINC/0YDQtdC00YHQtdC00LDRgtC10LvRjyDQtNGD0LzRgdC60L7Qs9C+INC60L7QvNC40YLQtdGC0LAg0L/QviZuYnNwO9C00LXQu9Cw0Lwg0L3QsNGG0LjQvtC90LDQu9GM0L3QvtGB0YLQtdC5LiDQntC9Jm5ic3A70YDQsNC90LXQtSDQv9C+0LTQsNC7INC40YHQuiDQuiZuYnNwO9Cy0L7QtdC90LrQvtGA0YMg0KLQvtC/0LDQt9GDINC+Jm5ic3A70LfQsNGJ0LjRgtC1INGH0LXRgdGC0Lgg0LgmbmJzcDvQtNC+0YHRgtC+0LjQvdGB0YLQstCwINC90LAmbmJzcDs2Jm5ic3A70LzQu9C9INGA0YPQsS48L3A+PC9kaXY+PC9oZWFkZXI+PC9oZWFkZXI+PG1haW4gaXRlbXByb3A9ImFydGljbGVCb2R5IiBkYXRhLXFhPSJBcnRpY2xlTGF5b3V0IiBjbGFzcz0iZGYwNjhmOGY5NyBmMWJmYWNkYTY2IGpzLW1lZGlhLXN0YXQtYXJ0aWNsZSBuYXZpZ2F0aW9uQ29udGFpbmVyXzYxMTY1NDk1IGYyNTJiODUzZGQgYjkyMmRhMWMwYiI+PGRpdiBhcnRpY2xlLWl0ZW0tdHlwZT0icGljdHVyZSIgZGF0YS1sb2dnZXI9IkFydGljbGVDb250ZW50X3BpY3R1cmUiIGNsYXNzPSJkNGQ3ZjljZWY0IGRmMDY4ZjhmOTciIGRhdGEtbG9nZ2VyLWlkPSJnbndnZHY1dWFvZmYiPjxmaWd1cmUgY2xhc3M9ImU0NTFjZDVlYjAiPjxkaXYgY2xhc3M9ImE1OGI0MzQzYjIiPjxkaXYgY2xhc3M9ImI5YWI0NmI1NzAgZTMxNDhiMWVkZCIgdGFiaW5kZXg9IjAiIHJvbGU9ImJ1dHRvbiI+PGRpdiBjbGFzcz0iYjE0ZDYyZTg2MiI+PHBpY3R1cmUgZGF0YS1xYT0iUGljdHVyZSIgY2xhc3M9ImY1YTNjMzIzZDMgYzVjYjgwNDlmNiI+PHNvdXJjZSBtZWRpYT0iKG1heC13aWR0aDogNjU5cHgpIiBzcmNzZXQ9Imh0dHBzOi8vcmVzaXplci5tYWlsLnJ1L3AvNDJhNDNiMzAtZTJhYS01ZjQ0LWE0NWEtZWU2YWYxNDYyODIyL3NjYWxlOjUwL0FRQUc4LW42V0JGV1FobllUZWtSc3VJeHFaQjFGZV9DajQyVmJnZ3hzYnVQcEx0d1lUcVhSQ3pLbGdZUHRzbHdzbjlfSE94d0dsZGh4QzR0Y2tMaGloVklhRGsud2VicCIgdHlwZT0iaW1hZ2Uvd2VicCI+PHNvdXJjZSBtZWRpYT0iKG1heC13aWR0aDogNjU5cHgpIiBzcmNzZXQ9Imh0dHBzOi8vcmVzaXplci5tYWlsLnJ1L3AvNDJhNDNiMzAtZTJhYS01ZjQ0LWE0NWEtZWU2YWYxNDYyODIyL3NjYWxlOjUwL0FRQUc4LW42V0JGV1FobllUZWtSc3VJeHFaQjFGZV9DajQyVmJnZ3hzYnVQcEx0d1lUcVhSQ3pLbGdZUHRzbHdzbjlfSE94d0dsZGh4QzR0Y2tMaGloVklhRGsucG5nIiB0eXBlPSJpbWFnZS9wbmciPjxzb3VyY2UgbWVkaWE9IihtaW4td2lkdGg6IDY2MHB4KSBhbmQgKG1heC13aWR0aDogOTc5cHgpIiBzcmNzZXQ9Imh0dHBzOi8vcmVzaXplci5tYWlsLnJ1L3AvNDJhNDNiMzAtZTJhYS01ZjQ0LWE0NWEtZWU2YWYxNDYyODIyL3NjYWxlOjgwL0FRQUc4LW42V0JGV1FobllUZWtSc3VJeHFaQjFGZV9DajQyVmJnZ3hzYnVQcEx0d1lUcVhSQ3pLbGdZUHRzbHdzbjlfSE94d0dsZGh4QzR0Y2tMaGloVklhRGsud2VicCIgdHlwZT0iaW1hZ2Uvd2VicCI+PHNvdXJjZSBtZWRpYT0iKG1pbi13aWR0aDogNjYwcHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweCkiIHNyY3NldD0iaHR0cHM6Ly9yZXNpemVyLm1haWwucnUvcC80MmE0M2IzMC1lMmFhLTVmNDQtYTQ1YS1lZTZhZjE0NjI4MjIvc2NhbGU6ODAvQVFBRzgtbjZXQkZXUWhuWVRla1JzdUl4cVpCMUZlX0NqNDJWYmdneHNidVBwTHR3WVRxWFJDektsZ1lQdHNsd3NuOV9IT3h3R2xkaHhDNHRja0xoaWhWSWFEay5wbmciIHR5cGU9ImltYWdlL3BuZyI+PHNvdXJjZSBzcmNzZXQ9Imh0dHBzOi8vcmVzaXplci5tYWlsLnJ1L3AvNDJhNDNiMzAtZTJhYS01ZjQ0LWE0NWEtZWU2YWYxNDYyODIyL0FRQUc4LW42V0JGV1FobllUZWtSc3VJeHFaQjFGZV9DajQyVmJnZ3hzYnVQcEx0d1lUcVhSQ3pLbGdZUHRzbHdzbjlfSE94d0dsZGh4QzR0Y2tMaGloVklhRGsud2VicCIgdHlwZT0iaW1hZ2Uvd2VicCI+PGltZyBjbGFzcz0iYWYzMGUxMzk5ZiBsYXp5IGVudGVyZWQgbG9hZGluZyIgYWx0PSIgIiBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL0FRQUc4LW42V0JGV1FobllUZWtSc3VJeHFaQjFGZV9DajQyVmJnZ3hzYnVQcEx0d1lUcVhSQ3pLbGdZUHRzbHdzbjlfSE94d0dsZGh4QzR0Y2sucG5nIiBsb2FkaW5nPSJsYXp5IiBoZWlnaHQ9IjQzMiIgd2lkdGg9Ijc2NiIgZGF0YS1sbC1zdGF0dXM9ImxvYWRpbmciPjwvcGljdHVyZT48L2Rpdj48ZGl2IGNsYXNzPSJlYzdhYjI2ZjEzIj48ZGl2IGNsYXNzPSJhMTQyMTg0ZmFlIj48c3BhbiBjbGFzcz0iYjNiZTJiZjM1YSBjMmVjM2Q0MmNjIiBkYXRhLXFhPSJJY29uIj48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBkYXRhLXFhPSJJY29uU3ZnIiBjbGFzcz0iYzUzYTg4MmUzZSIgc3R5bGU9IndpZHRoOjMwcHg7aGVpZ2h0OjMwcHgiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjkxIDEyLjgwNkE2Ljk2NCA2Ljk2NCAwIDAxNyAxNGMtMy44NjMgMC03LTMuMTM3LTctN3MzLjEzNy03IDctNyA3IDMuMTM3IDcgN2E2Ljk3IDYuOTcgMCAwMS0xLjE4IDMuODg5bDIuMTE0IDIuMTEzYTEuMzU0IDEuMzU0IDAgMDEtMS45MTQgMS45MTRsLTIuMTEtMi4xMXpNNyAyLjQ3N0E0LjUyNCA0LjUyNCAwIDAxMTEuNTIzIDcgNC41MjQgNC41MjQgMCAwMTcgMTEuNTIzIDQuNTI0IDQuNTI0IDAgMDEyLjQ3NyA3IDQuNTI0IDQuNTI0IDAgMDE3IDIuNDc3eiI+PC9wYXRoPjwvc3ZnPjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZmlnY2FwdGlvbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBjYmU4YTViZTE0IGFiYWRiMjUyMTMgYTljNzZhZDZiMSI+PHNwYW4gY2xhc3M9ImVlNjgyOGVjMmQiPjwvc3Bhbj48c3BhbiBjbGFzcz0iZmIyMGEzZGYzMyI+PHNwYW4gY2xhc3M9ImIwZGM2YmYzNGEiPtCY0YHRgtC+0YfQvdC40Lo6IDwvc3Bhbj48c3Bhbj7QkNCz0LXQvdGC0YHRgtCy0L4gwqvQnNC+0YHQutCy0LDCuzwvc3Bhbj48L3NwYW4+PC9maWdjYXB0aW9uPjwvZmlndXJlPjwvZGl2PjxkaXYgYXJ0aWNsZS1pdGVtLXR5cGU9Imh0bWwiIGNsYXNzPSJkNGQ3ZjljZWY0IGRmMDY4ZjhmOTciPjxkaXY+PHA+0KTRgNCw0LrRhtC40Y8gwqs8YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9jb21wYW55L3NwcmF2ZWRsaXZheWFfcm9zc2l5YS8iIHRhcmdldD0iX2JsYW5rIj7QodC/0YDQsNCy0LXQtNC70LjQstC+0Lkg0KDQvtGB0YHQuNC4PC9hPiZuYnNwO+KAlCDQl9CwJm5ic3A70L/RgNCw0LLQtNGDwrsg0LImbmJzcDs8YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9jb21wYW55L2dvc2R1bWEvIiB0YXJnZXQ9Il9ibGFuayI+0JPQvtGB0LTRg9C80LU8L2E+INGB0L3Rj9C70LAg0YEmbmJzcDvQtNC+0LvQttC90L7RgdGC0Lgg0LPQu9Cw0LLRgyDQutC+0LzQuNGC0LXRgtCwINC/0L4mbmJzcDvQtNC10LvQsNC8INC90LDRhtC40L7QvdCw0LvRjNC90L7RgdGC0LXQuSDQtNC10L/Rg9GC0LDRgtCwINCT0LXQvdC90LDQtNC40Y8g0KHQtdC80LjQs9C40L3QsCwg0LHRi9Cy0YjQtdCz0L4g0LvQuNC00LXRgNCwINC/0LDRgNGC0LjQuCDCq9Cf0LDRgtGA0LjQvtGC0Ysg0KDQvtGB0YHQuNC4wrssINGB0L7QvtCx0YnQuNC70LAg0L/RgNC10YHRgS3RgdC70YPQttCx0LAg0YHQv9GA0LDQstC+0YDQvtGB0YHQvtCyLjwvcD48L2Rpdj48L2Rpdj48ZGl2IGFydGljbGUtaXRlbS10eXBlPSJodG1sIiBjbGFzcz0iZDRkN2Y5Y2VmNCBkZjA2OGY4Zjk3Ij48ZGl2PjxwPtCh0KDQl9CfINC/0YDQuNC90Y/Qu9CwINGA0LXRiNC10L3QuNC1INC+0YHQstC+0LHQvtC00LjRgtGMINCT0LXQvdC90LDQtNC40Y8g0KHQtdC80LjQs9C40L3QsCDQvtGCJm5ic3A70LTQvtC70LbQvdC+0YHRgtC4INC/0YDQtdC00YHQtdC00LDRgtC10LvRjyDQutC+0LzQuNGC0LXRgtCwJm5ic3A70JPQlCDQv9C+Jm5ic3A70LTQtdC70LDQvCDQvdCw0YbQuNC+0L3QsNC70YzQvdC+0YHRgtC10Lkg0LgmbmJzcDvQstGL0LTQstC40L3Rg9GC0Ywg0L3QsCZuYnNwO9C90LXQtSDQr9C90YMg0JvQsNC90YLRgNCw0YLQvtCy0YMsINC00L7QsdCw0LLQuNC70Lgg0LImbmJzcDvQv9GA0LXRgdGBLdGB0LvRg9C20LHQtS48L3A+PC9kaXY+PC9kaXY+PGRpdiBhcnRpY2xlLWl0ZW0tdHlwZT0iY29udGVudHJvbGwiIGNsYXNzPSJkNGQ3ZjljZWY0IGRmMDY4ZjhmOTcgbGF6eS1jb250ZW50cm9sbC1ncm91cCBlbnRlcmVkIiBkYXRhLWxhenktZ3JvdXAtaW5kZXg9IjEiIGRhdGEtbGwtc3RhdHVzPSJlbnRlcmVkIj48L2Rpdj48ZGl2IGFydGljbGUtaXRlbS10eXBlPSJodG1sIiBjbGFzcz0iZDRkN2Y5Y2VmNCBkZjA2OGY4Zjk3Ij48ZGl2PjxwPtCh0LXQvNC40LPQuNC9INCyJm5ic3A70YTQtdCy0YDQsNC70LUg0L7QsdGA0LDRgtC40LvRgdGPINCyJm5ic3A70YHRg9C0INGBJm5ic3A70LjRgdC60L7QvCDQuiZuYnNwO9Cx0YvQstGI0LXQvNGDINCx0L7QudGG0YMg0LPRgNGD0L/Qv9GLIMKr0KDRg9GB0LjRh8K7LCDQstC+0LXQvdC90L7QvNGDINC60L7RgNGA0LXRgdC/0L7QvdC00LXQvdGC0YMg0JXQstCz0LXQvdC40Y4g0KDQsNGB0YHQutCw0LfQvtCy0YMsINC60L7RgtC+0YDRi9C5INC40LfQstC10YHRgtC10L0g0L/QviZuYnNwO9C/0L7Qt9GL0LLQvdC+0LzRgyDQotC+0L/QsNC3LCDRgSZuYnNwO9GC0YDQtdCx0L7QstCw0L3QuNC10LwgNiZuYnNwO9C80LvQvSDRgNGD0LEuINC60L7QvNC/0LXQvdGB0LDRhtC40Lgg0LfQsCZuYnNwO9C+0YHQutC+0YDQsdC70LXQvdC40LUg0YfQtdGB0YLQuCwg0LTQvtGB0YLQvtC40L3RgdGC0LLQsCDQuCZuYnNwO9C00LXQu9C+0LLQvtC5INGA0LXQv9GD0YLQsNGG0LjQuC4g0JImbmJzcDvRgdC10YDQtdC00LjQvdC1INCw0L/RgNC10LvRjyDQtdC80YMg0L/RgNC40YHRg9C00LjQu9C4IDUwMCDRgtGL0YEuINGA0YPQsS4g0LrQvtC80L/QtdC90YHQsNGG0LjQuC48L3A+PC9kaXY+PC9kaXY+PGRpdiBhcnRpY2xlLWl0ZW0tdHlwZT0iaHRtbCIgY2xhc3M9ImQ0ZDdmOWNlZjQgZGYwNjhmOGY5NyI+PGRpdj48cD7Qn9GD0LHQu9C40LrQsNGG0LjRjywg0LrQvtGC0L7RgNCw0Y8g0YHRgtCw0LvQsCDQv9C+0LLQvtC00L7QvCDQtNC70Y8mbmJzcDvRgdC/0L7RgNCwINCh0LXQvNC40LPQuNC90LAg0LgmbmJzcDvQoNCw0YHRgdC60LDQt9C+0LLQsCwg0LHRi9C70LAg0YDQsNC30LzQtdGJ0LXQvdCwINC90LAmbmJzcDvRgdCw0LnRgtC1IMKr0J/QsNGC0YDQuNC+0YLQvtCyINCg0L7RgdGB0LjQuMK7LiDQkiZuYnNwO9C90LXQuSDQs9C+0LLQvtGA0LjQu9C+0YHRjCDQsiZuYnNwO9GC0L7QvCDRh9C40YHQu9C1INC+Jm5ic3A70YDQvtGB0YHQuNC50YHQutC40YUg0LLQvtC10L3QvdGL0YUsINC60L7RgtC+0YDRi9GFINGP0LrQvtCx0Ysg0L/RgNC40YXQvtC00LjRgtGB0Y8gwqvQt9Cw0LPQvtC90Y/RgtGMINC/0LjQvdC60LDQvNC4INC90LAmbmJzcDvQv9C+0LvQtSDQsdC+0Y/Cuy4g0KHQtdC80LjQs9C40L0g0LfQsNGP0LLQuNC7LCDRh9GC0L4mbmJzcDvQt9C70L7Rg9C80YvRiNC70LXQvdC90LjQutC4INCy0LfQu9C+0LzQsNC70Lgg0YHQsNC50YIg0LTQstC40LbQtdC90LjRjyDQuCZuYnNwO9GA0LDQt9C80LXRgdGC0LjQu9C4INGC0LDQvCDRhNC10LnQutC+0LLRg9GOINC/0YPQsdC70LjQutCw0YbQuNGOINC+0YImbmJzcDvQuNC80LXQvdC4INC/0YDQtdGB0YEt0YHQu9GD0LbQsdGLINC00LLQuNC20LXQvdC40Y8uINCe0LTQvdCw0LrQviDQvdCwJm5ic3A70Y3RgtGDINC/0YPQsdC70LjQutCw0YbQuNGOINC+0LHRgNCw0YLQuNC7INCy0L3QuNC80LDQvdC40LUg0LgmbmJzcDvQv9GA0L7RhtC40YLQuNGA0L7QstCw0Lsg0KDQsNGB0YHQutCw0LfQvtCyLiDQmNGB0Log0L7RgiZuYnNwO9Ch0LXQvNC40LPQuNC90LAg0L7QvSZuYnNwO9GB0LLRj9C30YvQstCw0Lsg0YEmbmJzcDvRgtC10LwsINGH0YLQviZuYnNwO9C00LXQv9GD0YLQsNGCIMKr0L7QsdC40LTQtdC70YHRjyDQvdCwJm5ic3A70YLQviwg0YfRgtC+Jm5ic3A70Y8g0L7QsdGA0LDRgtC40Lsg0LLQvdC40LzQsNC90LjQtSDQvtCx0YnQtdGB0YLQstC10L3QvdC+0YHRgtC4INC90LAmbmJzcDvRjdGC0YMg0LXQs9C+INC/0YPQsdC70LjQutCw0YbQuNGOwrsuPC9wPjwvZGl2PjwvZGl2PjxkaXYgYXJ0aWNsZS1pdGVtLXR5cGU9Imh0bWwiIGNsYXNzPSJkNGQ3ZjljZWY0IGRmMDY4ZjhmOTciPjxkaXY+PHA+0JrQvtC80LzQtdC90YLQuNGA0YPRjyDRgdC90Y/RgtC40LUg0KHQtdC80LjQs9C40L3QsCDQuCZuYnNwO9C/0YDQtdC00LvQvtC20LXQvdC40LUg0L3QsCZuYnNwO9C/0L7RgdGCINCz0LvQsNCy0Ysg0LrQvtC80LjRgtC10YLQsCDQm9Cw0L3RgtGA0LDRgtC+0LLQvtC5LCDQsiZuYnNwO9C/0LDRgNGC0LjQuCDCq9Ch0L/RgNCw0LLQtdC00LvQuNCy0LDRjyDQoNC+0YHRgdC40Y8mbmJzcDvigJQg0JfQsCZuYnNwO9C/0YDQsNCy0LTRg8K7INC/0L7Rj9GB0L3QuNC70LgsINGH0YLQviZuYnNwO9GN0YLQuCDRgNC10YjQtdC90LjRjyDQv9GA0LjQvdGP0YLRiyDCq9CyJm5ic3A70YDQsNC80LrQsNGFINC/0LvQsNC90L7QstC+0Lkg0LrQsNC00YDQvtCy0L7QuSDRgNC+0YLQsNGG0LjQuCDQstC+Jm5ic3A70YTRgNCw0LrRhtC40Lgg0KHQoNCX0J/Cuy48L3A+PC9kaXY+PC9kaXY+PC9tYWluPjxkaXYgY2xhc3M9ImYxMDAzZTkwYTMiPjxkaXYgZGF0YS1yYi1zbG90PSIxMDAiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImEzOGI3Y2VhZGUiPjxkaXYgZGF0YS1yYi1zbG90PSIxNDc3Nzk2Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJlZDRlZTM5NGQwIj48ZGl2IGRhdGEtcWE9IkxhYmVsIiBjbGFzcz0iZDk3M2YxNzA3ZSBiZjQ2NDBiZjYwIGE3ZjBiMjU3NGEiPjxkaXYgZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgY2ZiODA2ZjM1OCBjN2FlZDBkN2YzIj48YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS90YWcvMzA3LWdvc2R1bWEvIiBjbGFzcz0iZGZlNzgzOGY5NSBmMzljYzE5Mjk5IGNlMzU4MWFkMTAiIHJlbD0iIj7Qk9C+0YHQtNGD0LzQsDwvYT48L2Rpdj48L2Rpdj48ZGl2IGRhdGEtcWE9IkxhYmVsIiBjbGFzcz0iZDk3M2YxNzA3ZSBiZjQ2NDBiZjYwIGE3ZjBiMjU3NGEiPjxkaXYgZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgY2ZiODA2ZjM1OCBjN2FlZDBkN2YzIj48YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS90YWcvMzU3LXNrYW5kYWx5LyIgY2xhc3M9ImRmZTc4MzhmOTUgZjM5Y2MxOTI5OSBjZTM1ODFhZDEwIiByZWw9IiI+0YHQutCw0L3QtNCw0LvRizwvYT48L2Rpdj48L2Rpdj48ZGl2IGRhdGEtcWE9IkxhYmVsIiBjbGFzcz0iZDk3M2YxNzA3ZSBiZjQ2NDBiZjYwIGE3ZjBiMjU3NGEiPjxkaXYgZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgY2ZiODA2ZjM1OCBjN2FlZDBkN2YzIj48YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS90YWcvNDY3LWludGVybmV0LyIgY2xhc3M9ImRmZTc4MzhmOTUgZjM5Y2MxOTI5OSBjZTM1ODFhZDEwIiByZWw9IiI+0JjQvdGC0LXRgNC90LXRgjwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+PGFzaWRlIGNsYXNzPSJlZmZjZmRlNjk3IGJjMTYwOWMxZDAiPjxkaXYgY2xhc3M9ImU5NWY2NDU4MmMiPjxkaXYgY2xhc3M9ImUxODgwNTkwNjUgZGU1MjkyYzEzOSI+PGRpdiBjbGFzcz0iYWFkOWU3Yjg0ZiBkODZjNTI3NGQ4Ij48ZGl2IGNsYXNzPSJlY2U2MGU1NmZkIj48ZGl2IGNsYXNzPSJjMzQwNTU4M2JjIiBzdHlsZT0ibWluLWhlaWdodDo2MzBweCIgZGF0YS1oaWRlb3JkZXI9IjEwIiBkYXRhLXNpemU9IjYzMCI+PGRpdiBkYXRhLXJiLXNsb3Q9IjE0MjY2ODEiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFhZDllN2I4NGYiPjxkaXYgY2xhc3M9ImVjZTYwZTU2ZmQgZTAzZTQ0YzA3NCIgc3R5bGU9InRvcDo2OHB4Ij48ZGl2IGNsYXNzPSJjMzQwNTU4M2JjIiBzdHlsZT0ibWluLWhlaWdodDozNTBweCIgZGF0YS1oaWRlb3JkZXI9IjkiIGRhdGEtc2l6ZT0iMzUwIj48ZGl2IGNsYXNzPSJkOWI0NjJmNTgzIj48ZGl2IGRhdGEtcWE9IlRpdGxlIiBjbGFzcz0iZDEzNDllNGUzZiBhNzMyZTRkNTUzIGUxMmYwYTM5YTYgYzFhNWY0ZDk4NiI+0J/QvtC/0YPQu9GP0YDQvdC+0LUg0LfQsCDRgdGD0YLQutC4PC9kaXY+PHVsIGNsYXNzPSJlZjQ0Y2NlZTI3Ij48bGkgY2xhc3M9ImE5MTc4ZDdmYWQgYzhjMzgzZmQ1MiI+PGEgY2xhc3M9ImJiNDFiMzA1YTkiIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L3BvbGl0aWNzLzYxMTYyMDg0Lz91dG1fc291cmNlPWJsb2NrX3BvcHVsYXIiPtCb0LDQstGA0L7QsiDRgNCw0YHRgdC60LDQt9Cw0Lsg0L7QsSZuYnNwO9C40YHRgtC10YDQuNC60LUg0JfQtdC70LXQvdGB0LrQvtCz0L4g0L3QsCZuYnNwO9Cy0YHRgtGA0LXRh9C1INGBJm5ic3A70L/QvtGB0LvQsNC80Lg8L2E+PC9saT48bGkgY2xhc3M9ImE5MTc4ZDdmYWQgYzhjMzgzZmQ1MiI+PGEgY2xhc3M9ImJiNDFiMzA1YTkiIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L3BvbGl0aWNzLzYxMTYwNzAzLz91dG1fc291cmNlPWJsb2NrX3BvcHVsYXIiPtCR0LXRgNCx0L7QuiDQsiZuYnNwO9Ca0LjQtdCy0LUg0YHQtNC10LvQsNC70LAg0LTQtdGA0LfQutC+0LUg0LfQsNGP0LLQu9C10L3QuNC1INC+Jm5ic3A70KDQvtGB0YHQuNC4INC4Jm5ic3A70J/Rg9GC0LjQvdC1PC9hPjwvbGk+PGxpIGNsYXNzPSJhOTE3OGQ3ZmFkIGM4YzM4M2ZkNTIiPjxhIGNsYXNzPSJiYjQxYjMwNWE5IiBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9wb2xpdGljcy82MTE1OTU5MC8/dXRtX3NvdXJjZT1ibG9ja19wb3B1bGFyIj7Qn9C+0Y/QstC40LvQuNGB0Ywg0LrQsNC00YDRiyDRgNCw0LHQvtGC0Ysg0YDQvtGB0YHQuNC50YHQutC40YUg0LvRg9GH0L3QuNC60L7QsiDQsiZuYnNwO9C30L7QvdC1INCh0JLQnjwvYT48L2xpPjxsaSBjbGFzcz0iYTkxNzhkN2ZhZCBjOGMzODNmZDUyIj48YSBjbGFzcz0iYmI0MWIzMDVhOSIgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvcG9saXRpY3MvNjExNTk4NjAvP3V0bV9zb3VyY2U9YmxvY2tfcG9wdWxhciI+wqvQodC00LXQu9C60LAg0YEmbmJzcDvQoNC+0YHRgdC40LXQucK7OiDQsiZuYnNwO9Ch0KjQkCDQv9GA0LXQtNC70L7QttC40LvQuCDQvdC10L7QttC40LTQsNC90L3Ri9C5INC/0LvQsNC9INC/0L4mbmJzcDvQo9C60YDQsNC40L3QtTwvYT48L2xpPjxsaSBjbGFzcz0iYTkxNzhkN2ZhZCBjOGMzODNmZDUyIj48YSBjbGFzcz0iYmI0MWIzMDVhOSIgaHJlZj0iaHR0cHM6Ly9maW5hbmNlLm1haWwucnUvMjAyNC0wNS0yMS9yb3NzaXlhbmFtLXJhc3NrYXphbGktc3RvaXQtbGktdnlyYWJhdHl2YXQtc3Rhemgtdi0zMC1sZXQtZGx5YS1wZW5zaWktNjExNTcyNzkvP3V0bV9zb3VyY2U9YmxvY2tfcG9wdWxhciI+0K3QutGB0L/QtdGA0YIg0YDQsNGB0LrRgNGL0LssINGB0YLQvtC40YImbmJzcDvQu9C4Jm5ic3A70LLRi9GA0LDQsdCw0YLRi9Cy0LDRgtGMINGB0YLQsNC2INCyJm5ic3A7MzAg0LvQtdGCINC00LvRjyZuYnNwO9C/0LXQvdGB0LjQuDwvYT48L2xpPjwvdWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYzM0MDU1ODNiYyIgc3R5bGU9Im1pbi1oZWlnaHQ6MzIwcHgiIGRhdGEtaGlkZW9yZGVyPSI4IiBkYXRhLXNpemU9IjMyMCI+PGRpdiBkYXRhLXJiLXNsb3Q9IjE0MjY2ODMiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYXNpZGU+PC9zZWN0aW9uPjwvZGl2PjwvbWFpbj48L3NlY3Rpb24+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZDAzMDY4NWE1MiI+PGRpdiBkYXRhLXJiLXNsb3Q9IjczMjYxMCI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ianMtZHdoLWxvZ2dlci1leGNsdWRlIiBkYXRhLWFydGljbGUtaWQ9IjYxMTY4MTkyIiBkYXRhLWFydGljbGUtaW5kZXg9IjEiPjxociBjbGFzcz0iZDMyYTA5ZjIxMCBhYjk5ZDVmM2VlIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Ij48ZGl2IGRhdGEtcWE9IldyYXBwZXIiPjxkaXYgZGF0YS1xYT0iV3JhcHBlckNvbnRlbnQiIGNsYXNzPSJhMmI5YzdiNmJkIj48c2VjdGlvbiBjbGFzcz0iYWQzOGJiMGVkOSBhYjg3N2IyMGZiIj48bWFpbiBjbGFzcz0iYjkyMmRhMWMwYiI+PGRpdj48c2VjdGlvbiBkYXRhLXFhPSJBcnRpY2xlIiBkYXRhLW1lZGlhLXN0YXQtZW50aXR5aWQ9IjYxMTY4MTkyIiBjbGFzcz0iYTM1ZDk1M2Y3OCBqcy1tZWRpYS1zdGF0LWFydGljbGUgYWQzOGJiMGVkOSI+PHNlY3Rpb24gY2xhc3M9ImRmMDY4ZjhmOTcgYWQzOGJiMGVkOSBhYjg3N2IyMGZiIj48aGVhZGVyIGNsYXNzPSJjOTE4MzhhNjY5Ij48aGVhZGVyIGNsYXNzPSJiNWZjNWFhMDI0IGRmMDY4ZjhmOTcgZTFhNjcwZDJlZiI+PGRpdiBhcmlhLWxhYmVsPSLQndCw0LLQuNCz0LDRhtC40Y8iIGRhdGEtbG9nZ2VyPSJCcmVhZGNydW1icyIgcm9sZT0ibmF2aWdhdGlvbiIgY2xhc3M9ImM2MzM5NzEwZTMgZjNlYzA3ODgzZiIgZGF0YS1sb2dnZXItaWQ9InU0ZzUzc202cWs2bCI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZjVmZjc5NWJmMSBhYmFkYjI1MjEzIGE5Yzc2YWQ2YjEiPjx0aW1lIGRhdGV0aW1lPSIyMDI0LTA1LTIxVDE3OjU4OjAzKzAzOjAwIiBjbGFzcz0ianMtYWdvICI+MTc6NTggKNC80YHQuik8L3RpbWU+PC9zcGFuPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4sIDwvc3Bhbj48c3BhbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBmNWZmNzk1YmYxIGFiYWRiMjUyMTMgYTljNzZhZDZiMSI+PGEgaHJlZj0iaHR0cDovL3d3dy5yaWEucnUvIiBjbGFzcz0iZGZlNzgzOGY5NSBmNWZmNzk1YmYxIGNlMzU4MWFkMTAiIHJlbD0ibm9vcGVuZXIgIiB0YXJnZXQ9Il9ibGFuayI+wqkg0KDQmNCQINCd0L7QstC+0YHRgtC4PC9hPjwvc3Bhbj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+LCA8L3NwYW4+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZjVmZjc5NWJmMSBhYmFkYjI1MjEzIGE5Yzc2YWQ2YjEiPjxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L3BvbGl0aWNzLyIgY2xhc3M9ImRmZTc4MzhmOTUgZjVmZjc5NWJmMSBjZTM1ODFhZDEwIiByZWw9Im5vb3BlbmVyICIgdGFyZ2V0PSJfYmxhbmsiPtCf0L7Qu9C40YLQuNC60LA8L2E+PC9zcGFuPjwvZGl2PjxoMSBkYXRhLXFhPSJUaXRsZSIgY2xhc3M9ImQxMzQ5ZTRlM2YgZmEzOWE2YmM4ZSBkMWNlNmJjZGJhIiBpdGVtcHJvcD0iaGVhZGxpbmUiPtCc0LjQvdC+0LHQvtGA0L7QvdGLINC/0L7QutCw0LfQsNC70L4g0LrQsNC00YDRiyDRg9GH0LXQvdC40Lkg0L/QviDQv9GA0LjQvNC10L3QtdC90LjRjiDRj9C00LXRgNC90L7Qs9C+INC+0YDRg9C20LjRjzwvaDE+PGRpdiBjbGFzcz0iZjhjZTBkMmQ3OSI+PHA+PGVtPtCc0J7QodCa0JLQkCwgMjEmbmJzcDvQvNCw0Y8mbmJzcDvigJQg0KDQmNCQINCd0L7QstC+0YHRgtC4LiA8L2VtPtCc0LjQvdC+0LHQvtGA0L7QvdGLJm5ic3A70KDQpCDQv9C+0LrQsNC30LDQu9C+INCy0L4mbmJzcDvQstGC0L7RgNC90LjQuiDQutCw0LTRgNGLINGD0YfQtdC90LjRjyDRgSZuYnNwO9C/0YDQsNC60YLQuNGH0LXRgdC60L7QuSDQvtGC0YDQsNCx0L7RgtC60L7QuSDQstC+0L/RgNC+0YHQvtCyINC/0L7QtNCz0L7RgtC+0LLQutC4INC4Jm5ic3A70L/RgNC40LzQtdC90LXQvdC40Y8g0L3QtdGB0YLRgNCw0YLQtdCz0LjRh9C10YHQutC+0LPQviDRj9C00LXRgNC90L7Qs9C+INC+0YDRg9C20LjRjy48L3A+PC9kaXY+PC9oZWFkZXI+PC9oZWFkZXI+PG1haW4gaXRlbXByb3A9ImFydGljbGVCb2R5IiBkYXRhLXFhPSJBcnRpY2xlTGF5b3V0IiBjbGFzcz0iZGYwNjhmOGY5NyBmMWJmYWNkYTY2IGpzLW1lZGlhLXN0YXQtYXJ0aWNsZSBuYXZpZ2F0aW9uQ29udGFpbmVyXzYxMTY4MTkyIGYyNTJiODUzZGQgYjkyMmRhMWMwYiI+PGRpdiBhcnRpY2xlLWl0ZW0tdHlwZT0idHJlbmQtdmlkZW8iIGRhdGEtbG9nZ2VyPSJBcnRpY2xlQ29udGVudF90cmVuZC12aWRlbyIgY2xhc3M9ImQ0ZDdmOWNlZjQgZGYwNjhmOGY5NyIgZGF0YS1sb2dnZXItaWQ9ImM1ZDM2c2Z2NHE5bCI+PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj57IkBjb250ZXh0IjoiaHR0cHM6Ly9zY2hlbWEub3JnIiwiQHR5cGUiOiJWaWRlb09iamVjdCIsIm5hbWUiOiLQmtCw0LTRgNGLINGD0YfQtdC90LjQuSDRgSDQv9GA0LDQutGC0LjRh9C10YHQutC+0Lkg0L7RgtGA0LDQsdC+0YLQutC+0Lkg0LLQvtC/0YDQvtGB0L7QsiDQv9GA0LjQvNC10L3QtdC90LjRjyDQvdC10YHRgtGA0LDRgtC10LPQuNGH0LXRgdC60L7Qs9C+INGP0LTQtdGA0L3QvtCz0L4g0L7RgNGD0LbQuNGPIiwiZGVzY3JpcHRpb24iOiLQnNC40L3QvtCx0L7RgNC+0L3RiyDQoNCkINC/0L7QutCw0LfQsNC70L4g0LLQviDQstGC0L7RgNC90LjQuiDQutCw0LTRgNGLINGD0YfQtdC90LjRjyDRgSDQv9GA0LDQutGC0LjRh9C10YHQutC+0Lkg0L7RgtGA0LDQsdC+0YLQutC+0Lkg0LLQvtC/0YDQvtGB0L7QsiDQv9C+0LTQs9C+0YLQvtCy0LrQuCDQuCDQv9GA0LjQvNC10L3QtdC90LjRjyDQvdC10YHRgtGA0LDRgtC10LPQuNGH0LXRgdC60L7Qs9C+INGP0LTQtdGA0L3QvtCz0L4g0L7RgNGD0LbQuNGPLiIsInRodW1ibmFpbFVybCI6WyJodHRwczovL2kubXljZG4ubWUvZ2V0VmlkZW9QcmV2aWV3P2lkPTYzNTA5MzM0NjE3NTUmaWR4PTExJnR5cGU9MzkmdGtuPWxFZzdVOXYzbXY2TzRmN1pXOTY4TzNsb3kxOCZmbj12aWRfbCIsImh0dHBzOi8vaS5teWNkbi5tZS9nZXRWaWRlb1ByZXZpZXc/aWQ9NjM1MDkzMzQ2MTc1NSZpZHg9MTEmdHlwZT0zOSZ0a249bEVnN1U5djNtdjZPNGY3Wlc5NjhPM2xveTE4JmZuPXZpZF91IiwiaHR0cHM6Ly9pLm15Y2RuLm1lL2dldFZpZGVvUHJldmlldz9pZD02MzUwOTMzNDYxNzU1JmlkeD0xMSZ0eXBlPTM5JnRrbj1sRWc3VTl2M212Nk80ZjdaVzk2OE8zbG95MTgmZm49dmlkX3MiLCJodHRwczovL2kubXljZG4ubWUvZ2V0VmlkZW9QcmV2aWV3P2lkPTYzNTA5MzM0NjE3NTUmaWR4PTExJnR5cGU9MzkmdGtuPWxFZzdVOXYzbXY2TzRmN1pXOTY4TzNsb3kxOCZmbj12aWRfdCIsImh0dHBzOi8vaS5teWNkbi5tZS9nZXRWaWRlb1ByZXZpZXc/aWQ9NjM1MDkzMzQ2MTc1NSZpZHg9MTEmdHlwZT0zOSZ0a249bEVnN1U5djNtdjZPNGY3Wlc5NjhPM2xveTE4JmZuPXZpZF93IiwiaHR0cHM6Ly9pLm15Y2RuLm1lL2dldFZpZGVvUHJldmlldz9pZD02MzUwOTMzNDYxNzU1JmlkeD0xMSZ0eXBlPTM5JnRrbj1sRWc3VTl2M212Nk80ZjdaVzk2OE8zbG95MTgmZm49dmlkX20iLCJodHRwczovL2kubXljZG4ubWUvZ2V0VmlkZW9QcmV2aWV3P2lkPTYzNTA5MzM0NjE3NTUmaWR4PTExJnR5cGU9MzkmdGtuPWxFZzdVOXYzbXY2TzRmN1pXOTY4TzNsb3kxOCZmbj12aWRfeCJdLCJ1cGxvYWREYXRlIjoiMjAyNC0wNS0yMVQxNzo1NDozMSswMzowMCIsImR1cmF0aW9uIjoiUFQwMEgwMU0yOVMiLCJlbWJlZFVybCI6Imh0dHBzOi8vdmsuY29tL3ZpZGVvX2V4dC5waHA/X19yZWY9dmsuYXBpJmFwaV9oYXNoPTE3MTYzMDMzMjkxMWQ0ZTljODA1NGUwZjQ3MjFfR1lZRElOWllHUTRUT01BJmF1dG9wbGF5PTEmaGFzaD1jNGNkNmQwZGQ0ZGVjNDQ2JmlkPTQ1NjI2MjAzNiZvaWQ9LTEwNjg3OTk4NiZwYXJ0bmVyX2V4dD0yOSIsImludGVyYWN0aW9uU3RhdGlzdGljIjp7IkB0eXBlIjoiSW50ZXJhY3Rpb25Db3VudGVyIiwiaW50ZXJhY3Rpb25UeXBlIjp7IkB0eXBlIjoiaHR0cDovL3NjaGVtYS5vcmcvV2F0Y2hBY3Rpb24ifSwidXNlckludGVyYWN0aW9uQ291bnQiOjF9fQo8L3NjcmlwdD48ZGl2PjxkaXYgY2xhc3M9Im1lZGlhVHJlbmRFbWJlZCI+IDxpZnJhbWUgYWxsb3c9ImF1dG9wbGF5O2VuY3J5cHRlZC1tZWRpYTtmdWxsc2NyZWVuO3BpY3R1cmUtaW4tcGljdHVyZTtzY3JlZW4td2FrZS1sb2NrOyIgbG9hZGluZz0ibGF6eSIgc3JjPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy92aWRlb19leHQuaHRtbCIgdGl0bGU9ItCa0LDQtNGA0Ysg0YPRh9C10L3QuNC5INGBINC/0YDQsNC60YLQuNGH0LXRgdC60L7QuSDQvtGC0YDQsNCx0L7RgtC60L7QuSDQstC+0L/RgNC+0YHQvtCyINC/0YDQuNC80LXQvdC10L3QuNGPINC90LXRgdGC0YDQsNGC0LXQs9C40YfQtdGB0LrQvtCz0L4g0Y/QtNC10YDQvdC+0LPQviDQvtGA0YPQttC40Y8iIHdpZHRoPSIxOTIwIiBoZWlnaHQ9IjEwODAiIGNsYXNzPSJzdmVsdGUtMWdnbDJqeCI+PC9pZnJhbWU+PC9kaXY+CjxzY3JpcHQ+CiAgKGZ1bmN0aW9uICh3aW5kb3cpIHsKICAgIHZhciBfX21lZGlhVHJlbmQgPSAod2luZG93Ll9fbWVkaWFUcmVuZCA9IHdpbmRvdy5fX21lZGlhVHJlbmQgfHwge30pOwogICAgdmFyIGdldFJlcXVlc3RQYXJhbXMgPSBmdW5jdGlvbiAoZW50aXR5X2lkLCBlbnRpdHlfdHlwZSkgewogICAgICB2YXIgcmVhZHkgPSAod2luZG93LnByb21pc2lmaWVkRG9tRXZlbnRzIHx8IHt9KS5yZWFkeSB8fCBQcm9taXNlLnJlc29sdmUoKTsKICAgICAgcmV0dXJuIHJlYWR5LnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIFVUTUFwaSA9IHdpbmRvdy5VVE1BcGkgfHwge307CiAgICAgICAgdmFyIGJsb2NrS2V5ID0gIlRyZW5kVmlkZW9BcnRpY2xlIjsKICAgICAgICB2YXIgZW1wdHlWYWx1ZSA9ICIwMDAwMDAwMDAiOwogICAgICAgIHZhciBnZXRFbXB0eSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZW1wdHlWYWx1ZSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2V0Q3ljbGVJZCA9IFVUTUFwaS5nZXRDeWNsZUlkIHx8IGdldEVtcHR5OwogICAgICAgIHJldHVybiBnZXRDeWNsZUlkKGJsb2NrS2V5LCB7CiAgICAgICAgICAgIGVudGl0eV9pZDogZW50aXR5X2lkLAogICAgICAgICAgICBlbnRpdHlfdHlwZTogZW50aXR5X3R5cGUsCiAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgcGFydG5lcl9hZG1hbjogSlNPTi5zdHJpbmdpZnkoewogICAgICAgICAgICAgIGN5Y2xlX2lkOiB2YWx1ZSwKICAgICAgICAgICAgfSksCiAgICAgICAgICB9OwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH07CiAgICB2YXIgaXRlbSA9IHsKICAgICAgY29udGFpbmVyOiBkb2N1bWVudC5jdXJyZW50U2NyaXB0LnByZXZpb3VzRWxlbWVudFNpYmxpbmcsCiAgICAgIGNvbmZpZzogewogICAgICAgIHR5cGU6ICJ2aWRlb0xpc3QiLAogICAgICAgIHZpZXc6ICJzaW1wbGUiLAogICAgICAgIGRhdGFDb25maWc6IHsKICAgICAgICAgIHJlcXVlc3RQYXJhbXM6IGdldFJlcXVlc3RQYXJhbXMoIjYxMTY4MTkyIiwgImFydGljbGUiKSwKICAgICAgICAgIHRyZW5kRW50aXR5OiB7CiAgICAgICAgICAgIHByb2plY3RfdXVpZDogIjI3MDBjMTY3LWViMjUtZmM2Mi1mMmJiLTk2OTRmYzI1MGFhYSIsCiAgICAgICAgICAgIGVudGl0eV9pZDogIjYxMTY4MTkyIiwKICAgICAgICAgICAgZW50aXR5X3R5cGU6ICJhcnRpY2xlIiwKICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBpdGVtOiB7CiAgICAgICAgICBkYXRhOiB7CiAgICAgICAgICAgIGlkOiAiMzIwMzE4NTgtZDYzNS01MzJhLWEzMzgtNzliZDVjZTU5ZTgxIiwKICAgICAgICAgICAgcGxheWVyOiAiaHR0cHM6XC9cL3ZrLmNvbVwvdmlkZW9fZXh0LnBocD9fX3JlZj12ay5hcGlcdTAwMjZhcGlfaGFzaD0xNzE2MzAzMzI5MTFkNGU5YzgwNTRlMGY0NzIxX0dZWURJTlpZR1E0VE9NQVx1MDAyNmF1dG9wbGF5PTFcdTAwMjZoYXNoPWM0Y2Q2ZDBkZDRkZWM0NDZcdTAwMjZpZD00NTYyNjIwMzZcdTAwMjZvaWQ9LTEwNjg3OTk4Nlx1MDAyNnBhcnRuZXJfZXh0PTI5IiwKICAgICAgICAgICAgdGl0bGU6ICLQmtCw0LTRgNGLINGD0YfQtdC90LjQuSDRgSDQv9GA0LDQutGC0LjRh9C10YHQutC+0Lkg0L7RgtGA0LDQsdC+0YLQutC+0Lkg0LLQvtC/0YDQvtGB0L7QsiDQv9GA0LjQvNC10L3QtdC90LjRjyDQvdC10YHRgtGA0LDRgtC10LPQuNGH0LXRgdC60L7Qs9C+INGP0LTQtdGA0L3QvtCz0L4g0L7RgNGD0LbQuNGPIiwKICAgICAgICAgICAgZGVzY3JpcHRpb246ICLQnNC40L3QvtCx0L7RgNC+0L3RiyDQoNCkINC/0L7QutCw0LfQsNC70L4g0LLQviDQstGC0L7RgNC90LjQuiDQutCw0LTRgNGLINGD0YfQtdC90LjRjyDRgSDQv9GA0LDQutGC0LjRh9C10YHQutC+0Lkg0L7RgtGA0LDQsdC+0YLQutC+0Lkg0LLQvtC/0YDQvtGB0L7QsiDQv9C+0LTQs9C+0YLQvtCy0LrQuCDQuCDQv9GA0LjQvNC10L3QtdC90LjRjyDQvdC10YHRgtGA0LDRgtC10LPQuNGH0LXRgdC60L7Qs9C+INGP0LTQtdGA0L3QvtCz0L4g0L7RgNGD0LbQuNGPLiIsCiAgICAgICAgICAgIHdpZHRoOiAgMTkyMCAsCiAgICAgICAgICAgIGhlaWdodDogIDEwODAgLAogICAgICAgICAgICB2aWV3czogIDEgLAogICAgICAgICAgICBsaWtlczogIDAgLAogICAgICAgICAgICBjb21tZW50czogIDAgLAogICAgICAgICAgICBzb3VyY2U6ICLQndC+0LLQvtGB0YLQuCBNYWlsLnJ1IiwKICAgICAgICAgICAgc291cmNlX2ltYWdlOiAiaHR0cHM6XC9cL3N1bjEtODUudXNlcmFwaS5jb21cL3NcL3YxXC9pZjFcL3ZYXy1BRzJ3QlhsZy1IcWNOamtuaGJ3NmhaZldjeDZmOG9tUzVqaEUtdHhUSlE5VnZKblphOTFxa1JqeTlfZGZ1OGZ0dmdVNS5qcGc/c2l6ZT01MHg1MFx1MDAyNnF1YWxpdHk9OTZcdTAwMjZjcm9wPTAsMCw1MTIsNTEyXHUwMDI2YXZhPTEiLAogICAgICAgICAgICBjcmVhdGVkOiAiMjAyNC0wNS0yMSAxNzo1NDozMSIsCiAgICAgICAgICAgIGFzcGVjdF9yYXRpb190eXBlOiAiaG9yaXpvbnRhbCIsCiAgICAgICAgICAgIGltYWdlczogWwogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHsgd2lkdGg6ICAzMjAgLCBoZWlnaHQ6ICAyNDAgLCB1cmw6ICJodHRwczovL2kubXljZG4ubWUvZ2V0VmlkZW9QcmV2aWV3P2lkPTYzNTA5MzM0NjE3NTVcdTAwMjZpZHg9MTFcdTAwMjZ0eXBlPTM5XHUwMDI2dGtuPWxFZzdVOXYzbXY2TzRmN1pXOTY4TzNsb3kxOFx1MDAyNmZuPXZpZF9sIiB9LAogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHsgd2lkdGg6ICA3MjAgLCBoZWlnaHQ6ICA0MDUgLCB1cmw6ICJodHRwczovL2kubXljZG4ubWUvZ2V0VmlkZW9QcmV2aWV3P2lkPTYzNTA5MzM0NjE3NTVcdTAwMjZpZHg9MTFcdTAwMjZ0eXBlPTM5XHUwMDI2dGtuPWxFZzdVOXYzbXY2TzRmN1pXOTY4TzNsb3kxOFx1MDAyNmZuPXZpZF91IiB9LAogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHsgd2lkdGg6ICAxMzAgLCBoZWlnaHQ6ICA5NiAsIHVybDogImh0dHBzOi8vaS5teWNkbi5tZS9nZXRWaWRlb1ByZXZpZXc/aWQ9NjM1MDkzMzQ2MTc1NVx1MDAyNmlkeD0xMVx1MDAyNnR5cGU9MzlcdTAwMjZ0a249bEVnN1U5djNtdjZPNGY3Wlc5NjhPM2xveTE4XHUwMDI2Zm49dmlkX3MiIH0sCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgeyB3aWR0aDogIDMyMCAsIGhlaWdodDogIDE4MCAsIHVybDogImh0dHBzOi8vaS5teWNkbi5tZS9nZXRWaWRlb1ByZXZpZXc/aWQ9NjM1MDkzMzQ2MTc1NVx1MDAyNmlkeD0xMVx1MDAyNnR5cGU9MzlcdTAwMjZ0a249bEVnN1U5djNtdjZPNGY3Wlc5NjhPM2xveTE4XHUwMDI2Zm49dmlkX3QiIH0sCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgeyB3aWR0aDogIDEyODAgLCBoZWlnaHQ6ICA3MjAgLCB1cmw6ICJodHRwczovL2kubXljZG4ubWUvZ2V0VmlkZW9QcmV2aWV3P2lkPTYzNTA5MzM0NjE3NTVcdTAwMjZpZHg9MTFcdTAwMjZ0eXBlPTM5XHUwMDI2dGtuPWxFZzdVOXYzbXY2TzRmN1pXOTY4TzNsb3kxOFx1MDAyNmZuPXZpZF93IiB9LAogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHsgd2lkdGg6ICAxNjAgLCBoZWlnaHQ6ICAxMjAgLCB1cmw6ICJodHRwczovL2kubXljZG4ubWUvZ2V0VmlkZW9QcmV2aWV3P2lkPTYzNTA5MzM0NjE3NTVcdTAwMjZpZHg9MTFcdTAwMjZ0eXBlPTM5XHUwMDI2dGtuPWxFZzdVOXYzbXY2TzRmN1pXOTY4TzNsb3kxOFx1MDAyNmZuPXZpZF9tIiB9LAogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHsgd2lkdGg6ICA4MDAgLCBoZWlnaHQ6ICA0NTAgLCB1cmw6ICJodHRwczovL2kubXljZG4ubWUvZ2V0VmlkZW9QcmV2aWV3P2lkPTYzNTA5MzM0NjE3NTVcdTAwMjZpZHg9MTFcdTAwMjZ0eXBlPTM5XHUwMDI2dGtuPWxFZzdVOXYzbXY2TzRmN1pXOTY4TzNsb3kxOFx1MDAyNmZuPXZpZF94IiB9LAogICAgICAgICAgICAKICAgICAgICAgICAgXSwKICAgICAgICAgICAgY2F0ZWdvcmllczogWwogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHsgbmFtZTogItCX0LAg0YDRg9Cx0LXQttC+0LwiLCBpZDogIDE4ICB9LAogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHsgbmFtZTogItCd0LDRg9C60LAiLCBpZDogIDI3ICB9LAogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHsgbmFtZTogItCi0LXRhdC90L7Qu9C+0LPQuNC4IiwgaWQ6ICA4MCAgfSwKICAgICAgICAgICAgCiAgICAgICAgICAgIF0KICAgICAgICAgIH0sCiAgICAgICAgICB0eXBlOiAidmlkZW8iLAogICAgICAgIH0sCiAgICAgICAgbWV0cmljOiB7CiAgICAgICAgICBlbmRwb2ludDogImh0dHBzOlwvXC9tZWRpYS10cmVuZC5tYWlsLnJ1XC9hcGlcL3YxLjBcL3ZpZGVvXC9tZXRyaWNcLyIsCiAgICAgICAgfSwKICAgICAgfSwKICAgIH07CgogICAgaXRlbS5jb250YWluZXIuaW5uZXJIVE1MID0gJyc7CgogICAgX19tZWRpYVRyZW5kLmxvYWRBUElQcm9taXNlID0KICAgICAgX19tZWRpYVRyZW5kLmxvYWRBUElQcm9taXNlIHx8CiAgICAgIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICBmdW5jdGlvbiBsb2FkU2NyaXB0KG9ubG9hZCwgb25lcnJvcikgewogICAgICAgICAgdmFyIGhlYWQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdOwogICAgICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwogICAgICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTsKICAgICAgICAgIHNjcmlwdC5vbmxvYWQgPSBvbmxvYWQ7CiAgICAgICAgICBzY3JpcHQub25lcnJvciA9IG9uZXJyb3I7CiAgICAgICAgICBzY3JpcHQuc3JjID0gImh0dHBzOi8vbWVkaWEtdHJlbmQubWFpbC5ydS9lbWJlZC92aWRlby5qcz92ZXJzaW9uPTQuNC4xIjsKICAgICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKICAgICAgICB9CgogICAgICAgIGxvYWRTY3JpcHQoCiAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJlc29sdmUoKTsKICAgICAgICAgIH0sCiAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIF9fbWVkaWFUcmVuZC5sb2FkQVBJUHJvbWlzZSA9IG51bGw7CiAgICAgICAgICAgIHJlamVjdCgpOwogICAgICAgICAgfQogICAgICAgICk7CiAgICAgIH0pOwoKICAgIF9fbWVkaWFUcmVuZC5sb2FkQVBJUHJvbWlzZS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgX19tZWRpYVRyZW5kLnJlbmRlcihpdGVtKTsKICAgIH0pOwogIH0pKHdpbmRvdyk7Cjwvc2NyaXB0Pgo8L2Rpdj48L2Rpdj48ZGl2IGFydGljbGUtaXRlbS10eXBlPSJodG1sIiBjbGFzcz0iZDRkN2Y5Y2VmNCBkZjA2OGY4Zjk3Ij48ZGl2PjxwPtCd0LAmbmJzcDvQstC40LTQtdC+0YDQvtC70LjQutC1INC/0YDQvtC00L7Qu9C20LjRgtC10LvRjNC90L7RgdGC0YzRjiAxLDUg0LzQuNC90YPRgtGLINC/0L7QutCw0LfQsNC90L4g0LLRi9C00LLQuNC20LXQvdC40LUg0L7Qv9C10YDQsNGC0LjQstC90L4t0YLQsNC60YLQuNGH0LXRgdC60LjRhSDQutC+0LzQv9C70LXQutGB0L7QsiDCq9CY0YHQutCw0L3QtNC10YDCuyDQuCZuYnNwO9GD0YHRgtCw0L3QvtCy0LrQsCDQvdCwJm5ic3A70L3QuNGFINGA0LDQutC10YIsINCwJm5ic3A70YLQsNC60LbQtSDQvdC+0YHQuNGC0LXQu9GMINCz0LjQv9C10YDQt9Cy0YPQutC+0LLRi9GFINGA0LDQutC10YIgwqvQmtC40L3QttCw0LvCuyZuYnNwO+KAlCDQuNGB0YLRgNC10LHQuNGC0LXQu9GMINCc0LjQky0zMSDQvdCwJm5ic3A70LDRjdGA0L7QtNGA0L7QvNC1LjwvcD48L2Rpdj48L2Rpdj48ZGl2IGFydGljbGUtaXRlbS10eXBlPSJodG1sIiBjbGFzcz0iZDRkN2Y5Y2VmNCBkZjA2OGY4Zjk3Ij48ZGl2PjxwPtCf0LXRgNCy0YvQuSDRjdGC0LDQvyDRg9GH0LXQvdC40Y8g0YEmbmJzcDvQv9GA0LDQutGC0LjRh9C10YHQutC+0Lkg0L7RgtGA0LDQsdC+0YLQutC+0Lkg0LLQvtC/0YDQvtGB0L7QsiDQv9C+0LTQs9C+0YLQvtCy0LrQuCDQuCZuYnNwO9C/0YDQuNC80LXQvdC10L3QuNGPINC90LXRgdGC0YDQsNGC0LXQs9C40YfQtdGB0LrQvtCz0L4g0Y/QtNC10YDQvdC+0LPQviDQvtGA0YPQttC40Y8g0L3QsNGH0LDQu9GB0Y8g0LImbmJzcDvQrtC20L3QvtC8INCy0L7QtdC90L3QvtC8INC+0LrRgNGD0LPQtSDQv9C+0LQg0YDRg9C60L7QstC+0LTRgdGC0LLQvtC8INCT0LXQvdC10YDQsNC70YzQvdC+0LPQviDRiNGC0LDQsdCwINCS0L7QvtGA0YPQttC10L3QvdGL0YUg0YHQuNC7Jm5ic3A70KDQpCDQsiZuYnNwO9GB0L7QvtGC0LLQtdGC0YHRgtCy0LjQuCDRgSZuYnNwO9C/0L7RgNGD0YfQtdC90LjQtdC8INCS0LXRgNGF0L7QstC90L7Qs9C+INCz0LvQsNCy0L3QvtC60L7QvNCw0L3QtNGD0Y7RidC10LPQviwg0YHQvtC+0LHRidC40LvQviDQstC+Jm5ic3A70LLRgtC+0YDQvdC40LogPGEgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvY29tcGFueS9taW5pc3RlcnN0dm9fb2Jvcm9ueS8iIHRhcmdldD0iX2JsYW5rIj7QvNC40L3QuNGB0YLQtdGA0YHRgtCy0L4g0L7QsdC+0YDQvtC90Ys8L2E+LjwvcD48L2Rpdj48L2Rpdj48ZGl2IGFydGljbGUtaXRlbS10eXBlPSJodG1sIiBjbGFzcz0iZDRkN2Y5Y2VmNCBkZjA2OGY4Zjk3Ij48ZGl2PjxwPtCf0YDQvtCy0L7QtNC40LzQvtC1INGD0YfQtdC90LjQtSDQvdCw0L/RgNCw0LLQu9C10L3QviDQvdCwJm5ic3A70L/QvtC00LTQtdGA0LbQsNC90LjQtSDQs9C+0YLQvtCy0L3QvtGB0YLQuCDQu9C40YfQvdC+0LPQviDRgdC+0YHRgtCw0LLQsCDQuCZuYnNwO9GC0LXRhdC90LjQutC4INGH0LDRgdGC0LXQuSDQsdC+0LXQstC+0LPQviDQv9GA0LjQvNC10L3QtdC90LjRjyDQvdC10YHRgtGA0LDRgtC10LPQuNGH0LXRgdC60L7Qs9C+INGP0LTQtdGA0L3QvtCz0L4g0L7RgNGD0LbQuNGPINC00LvRjyZuYnNwO9GA0LXQsNCz0LjRgNC+0LLQsNC90LjRjyDQuCZuYnNwO9CyJm5ic3A70YbQtdC70Y/RhSDQsdC10LfRg9GB0LvQvtCy0L3QvtCz0L4g0L7QsdC10YHQv9C10YfQtdC90LjRjyDRgtC10YDRgNC40YLQvtGA0LjQsNC70YzQvdC+0Lkg0YbQtdC70L7RgdGC0L3QvtGB0YLQuCDQuCZuYnNwO9GB0YPQstC10YDQtdC90LjRgtC10YLQsCDRgNC+0YHRgdC40LnRgdC60L7Qs9C+INCz0L7RgdGD0LTQsNGA0YHRgtCy0LAg0LImbmJzcDvQvtGC0LLQtdGCINC90LAmbmJzcDvQv9GA0L7QstC+0LrQsNGG0LjQvtC90L3Ri9C1INC30LDRj9Cy0LvQtdC90LjRjyDQuCZuYnNwO9GD0LPRgNC+0LfRiyDQvtGC0LTQtdC70YzQvdGL0YUg0LfQsNC/0LDQtNC90YvRhSDQvtGE0LjRhtC40LDQu9GM0L3Ri9GFINC70LjRhiDQsiZuYnNwO9Cw0LTRgNC10YEmbmJzcDvQoNCkLjwvcD48L2Rpdj48L2Rpdj48L21haW4+PGRpdiBjbGFzcz0iZjEwMDNlOTBhMyI+PGRpdiBkYXRhLXJiLXNsb3Q9IjEwMCI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZWQ0ZWUzOTRkMCI+PGRpdiBkYXRhLXFhPSJMYWJlbCIgY2xhc3M9ImQ5NzNmMTcwN2UgYmY0NjQwYmY2MCBhN2YwYjI1NzRhIj48ZGl2IGRhdGEtcWE9IlRleHQiIGNsYXNzPSJjY2E5OTRmMTA0IGNmYjgwNmYzNTggYzdhZWQwZDdmMyI+PGEgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvdGFnLzM3Ni11Y2hlbml5YS8iIGNsYXNzPSJkZmU3ODM4Zjk1IGYzOWNjMTkyOTkgY2UzNTgxYWQxMCIgcmVsPSIiPtGD0YfQtdC90LjRjzwvYT48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+PGFzaWRlIGNsYXNzPSJlZmZjZmRlNjk3IGJjMTYwOWMxZDAiPjxkaXYgY2xhc3M9ImU5NWY2NDU4MmMiPjxkaXYgY2xhc3M9ImUxODgwNTkwNjUgZGU1MjkyYzEzOSI+PGRpdiBjbGFzcz0iYWFkOWU3Yjg0ZiBkODZjNTI3NGQ4Ij48ZGl2IGNsYXNzPSJlY2U2MGU1NmZkIj48ZGl2IGNsYXNzPSJjMzQwNTU4M2JjIiBkYXRhLWhpZGVvcmRlcj0iMTAiIGRhdGEtc2l6ZT0iNjMwIiBzdHlsZT0ibWluLWhlaWdodDogNjMwcHg7Ij48ZGl2IGRhdGEtcmItc2xvdD0iMTQyNjY4MSI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYWFkOWU3Yjg0ZiI+PGRpdiBjbGFzcz0iZWNlNjBlNTZmZCBlMDNlNDRjMDc0IiBzdHlsZT0idG9wOiA2OHB4OyI+PGRpdiBjbGFzcz0iYzM0MDU1ODNiYyIgZGF0YS1oaWRlb3JkZXI9IjkiIGRhdGEtc2l6ZT0iMzUwIiBzdHlsZT0ibWluLWhlaWdodDogMzUwcHg7IGRpc3BsYXk6IGJsb2NrOyI+PGRpdiBjbGFzcz0iZDliNDYyZjU4MyI+PGRpdiBkYXRhLXFhPSJUaXRsZSIgY2xhc3M9ImQxMzQ5ZTRlM2YgYTczMmU0ZDU1MyBlMTJmMGEzOWE2IGMxYTVmNGQ5ODYiPtCf0L7Qv9GD0LvRj9GA0L3QvtC1INC30LAg0YHRg9GC0LrQuDwvZGl2Pjx1bCBjbGFzcz0iZWY0NGNjZWUyNyI+PGxpIGNsYXNzPSJhOTE3OGQ3ZmFkIGM4YzM4M2ZkNTIiPjxhIGNsYXNzPSJiYjQxYjMwNWE5IiBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9lY29ub21pY3MvNjExNjA3ODcvP3V0bV9zb3VyY2U9YmxvY2tfcG9wdWxhciI+0JImbmJzcDvQndC40LbQvdC10Lwg0J3QvtCy0LPQvtGA0L7QtNC1INC/0L7QutCw0LfQsNC70Lgg0L3QvtCy0YvQtSDQsNCy0YLQvtC80L7QsdC40LvQuCBWb2xnYTwvYT48L2xpPjxsaSBjbGFzcz0iYTkxNzhkN2ZhZCBjOGMzODNmZDUyIj48YSBjbGFzcz0iYmI0MWIzMDVhOSIgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvcG9saXRpY3MvNjExNTg0MjUvP3V0bV9zb3VyY2U9YmxvY2tfcG9wdWxhciI+0J3Rg9C70LDQvdC0INGB0LTQtdC70LDQu9CwINC00LXRgNC30LrQvtC1INC30LDRj9Cy0LvQtdC90LjQtSDQsiZuYnNwO9Cw0LTRgNC10YEg0KDQvtGB0YHQuNC4PC9hPjwvbGk+PGxpIGNsYXNzPSJhOTE3OGQ3ZmFkIGM4YzM4M2ZkNTIiPjxhIGNsYXNzPSJiYjQxYjMwNWE5IiBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9pbmNpZGVudC82MTE1Njk4Ni8/dXRtX3NvdXJjZT1ibG9ja19wb3B1bGFyIj7Qn9C+0LTQv9C+0LvRjNC1OiDQktChINCg0L7RgdGB0LjQuCDRg9C00LDRgNC40LvQuCDQv9C+INC2L9C0INGB0YLQsNC90YbQuNC4INCyINCn0LXRgNC90L7QvNC+0YDRgdC60LU8L2E+PC9saT48bGkgY2xhc3M9ImE5MTc4ZDdmYWQgYzhjMzgzZmQ1MiI+PGEgY2xhc3M9ImJiNDFiMzA1YTkiIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L2luY2lkZW50LzYxMTY1NDU3Lz91dG1fc291cmNlPWJsb2NrX3BvcHVsYXIiPtCQ0YDQtdGB0YLQvtCy0LDQvSDQsdGL0LLRiNC40Lkg0LrQvtC80LDQvdC00YPRjtGJ0LjQuSA1OC3QuSDQsNGA0LzQuNC10Lkg0JjQstCw0L0g0J/QvtC/0L7QsjwvYT48L2xpPjxsaSBjbGFzcz0iYTkxNzhkN2ZhZCBjOGMzODNmZDUyIj48YSBjbGFzcz0iYmI0MWIzMDVhOSIgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvc29jaWV0eS82MTE1Njc4NC8/dXRtX3NvdXJjZT1ibG9ja19wb3B1bGFyIj7Qk9C70LDQstCwINCh0J/QpyDQv9GA0LjQt9Cy0LDQuyDQt9Cw0L/RgNC10YLQuNGC0Ywg0LImbmJzcDvQoNC+0YHRgdC40Lgg0L3QuNC60LDQsdGLPC9hPjwvbGk+PC91bD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjMzQwNTU4M2JjIiBkYXRhLWhpZGVvcmRlcj0iOCIgZGF0YS1zaXplPSIzMjAiIHN0eWxlPSJtaW4taGVpZ2h0OiAzMjBweDsgZGlzcGxheTogbm9uZTsiPjxkaXYgY2xhc3M9ImxhenlTbG90LXc4eXdwdzkxcG4iPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYXNpZGU+PC9zZWN0aW9uPjwvZGl2PjwvbWFpbj48L3NlY3Rpb24+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ianMtZHdoLWxvZ2dlci1leGNsdWRlIiBkYXRhLWFydGljbGUtaWQ9IjYxMTY2NDk2IiBkYXRhLWFydGljbGUtaW5kZXg9IjIiPjxociBjbGFzcz0iZDMyYTA5ZjIxMCBhYjk5ZDVmM2VlIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Ij48ZGl2IGRhdGEtcWE9IldyYXBwZXIiPjxkaXYgZGF0YS1xYT0iV3JhcHBlckNvbnRlbnQiIGNsYXNzPSJhMmI5YzdiNmJkIj48c2VjdGlvbiBjbGFzcz0iYWQzOGJiMGVkOSBhYjg3N2IyMGZiIj48bWFpbiBjbGFzcz0iYjkyMmRhMWMwYiI+PGRpdj48c2VjdGlvbiBkYXRhLXFhPSJBcnRpY2xlIiBkYXRhLW1lZGlhLXN0YXQtZW50aXR5aWQ9IjYxMTY2NDk2IiBjbGFzcz0iYTM1ZDk1M2Y3OCBqcy1tZWRpYS1zdGF0LWFydGljbGUgYWQzOGJiMGVkOSI+PHNlY3Rpb24gY2xhc3M9ImRmMDY4ZjhmOTcgYWQzOGJiMGVkOSBhYjg3N2IyMGZiIj48aGVhZGVyIGNsYXNzPSJjOTE4MzhhNjY5Ij48aGVhZGVyIGNsYXNzPSJiNWZjNWFhMDI0IGRmMDY4ZjhmOTcgZTFhNjcwZDJlZiI+PGRpdiBhcmlhLWxhYmVsPSLQndCw0LLQuNCz0LDRhtC40Y8iIGRhdGEtbG9nZ2VyPSJCcmVhZGNydW1icyIgcm9sZT0ibmF2aWdhdGlvbiIgY2xhc3M9ImM2MzM5NzEwZTMgZjNlYzA3ODgzZiIgZGF0YS1sb2dnZXItaWQ9Im5xanFqb2oyemZzbSI+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZjVmZjc5NWJmMSBhYmFkYjI1MjEzIGE5Yzc2YWQ2YjEiPjx0aW1lIGRhdGV0aW1lPSIyMDI0LTA1LTIxVDE2OjM0OjU0KzAzOjAwIiBjbGFzcz0ianMtYWdvICI+MTY6MzQgKNC80YHQuik8L3RpbWU+PC9zcGFuPjxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4sIDwvc3Bhbj48c3BhbiBkYXRhLXFhPSJUZXh0IiBjbGFzcz0iY2NhOTk0ZjEwNCBmNWZmNzk1YmYxIGFiYWRiMjUyMTMgYTljNzZhZDZiMSI+PGEgaHJlZj0iaHR0cDovL3d3dy50YXNzLnJ1LyIgY2xhc3M9ImRmZTc4MzhmOTUgZjVmZjc5NWJmMSBjZTM1ODFhZDEwIiByZWw9Im5vb3BlbmVyICIgdGFyZ2V0PSJfYmxhbmsiPtCi0JDQodChPC9hPjwvc3Bhbj48c3BhbiBhcmlhLWhpZGRlbj0idHJ1ZSI+LCA8L3NwYW4+PHNwYW4gZGF0YS1xYT0iVGV4dCIgY2xhc3M9ImNjYTk5NGYxMDQgZjVmZjc5NWJmMSBhYmFkYjI1MjEzIGE5Yzc2YWQ2YjEiPjxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L2luY2lkZW50LyIgY2xhc3M9ImRmZTc4MzhmOTUgZjVmZjc5NWJmMSBjZTM1ODFhZDEwIiByZWw9Im5vb3BlbmVyICIgdGFyZ2V0PSJfYmxhbmsiPtCh0L7QsdGL0YLQuNGPPC9hPjwvc3Bhbj48L2Rpdj48aDEgZGF0YS1xYT0iVGl0bGUiIGNsYXNzPSJkMTM0OWU0ZTNmIGZhMzlhNmJjOGUgZDFjZTZiY2RiYSIgaXRlbXByb3A9ImhlYWRsaW5lIj7QktC+0LXQvdC90YvQuSDRgdGD0LQg0L/QvtC00YLQstC10YDQtNC40Lsg0LDRgNC10YHRgiDRjdC60YEt0LrQvtC80LDQvdC00YPRjtGJ0LXQs9C+IDU4LdC5INCw0YDQvNC40LXQuSDQs9C10L3QtdGA0LDQuy3QvNCw0LnQvtGA0LAg0J/QvtC/0L7QstCwPC9oMT48ZGl2IGNsYXNzPSJmOGNlMGQyZDc5Ij48cD7QkiZuYnNwO9C/0YDQtdGB0YEt0YHQu9GD0LbQsdC1INGB0YPQtNCwINC+0YLQvNC10YLQuNC70LgsINGH0YLQviZuYnNwO9C10LPQviDQsNGA0LXRgdGC0L7QstCw0LvQuCDQv9C+Jm5ic3A70L/QvtC00L7Qt9GA0LXQvdC40Y4g0LImbmJzcDvQvNC+0YjQtdC90L3QuNGH0LXRgdGC0LLQtSDQsiZuYnNwO9C+0YHQvtCx0L4g0LrRgNGD0L/QvdC+0Lwg0YDQsNC30LzQtdGA0LUuPC9wPjwvZGl2PjwvaGVhZGVyPjwvaGVhZGVyPjxtYWluIGl0ZW1wcm9wPSJhcnRpY2xlQm9keSIgZGF0YS1xYT0iQXJ0aWNsZUxheW91dCIgY2xhc3M9ImRmMDY4ZjhmOTcgZjFiZmFjZGE2NiBqcy1tZWRpYS1zdGF0LWFydGljbGUgbmF2aWdhdGlvbkNvbnRhaW5lcl82MTE2NjQ5NiBmMjUyYjg1M2RkIGI5MjJkYTFjMGIiPjxkaXYgYXJ0aWNsZS1pdGVtLXR5cGU9InBpY3R1cmUiIGRhdGEtbG9nZ2VyPSJBcnRpY2xlQ29udGVudF9waWN0dXJlIiBjbGFzcz0iZDRkN2Y5Y2VmNCBkZjA2OGY4Zjk3IiBkYXRhLWxvZ2dlci1pZD0ibml5dHpnbDBpMmM2Ij48ZmlndXJlIGNsYXNzPSJlNDUxY2Q1ZWIwIj48ZGl2IGNsYXNzPSJhNThiNDM0M2IyIj48ZGl2IGNsYXNzPSJiOWFiNDZiNTcwIGUzMTQ4YjFlZGQiIHRhYmluZGV4PSIwIiByb2xlPSJidXR0b24iPjxkaXYgY2xhc3M9ImIxNGQ2MmU4NjIiPjxwaWN0dXJlIGRhdGEtcWE9IlBpY3R1cmUiIGNsYXNzPSJmNWEzYzMyM2QzIGM1Y2I4MDQ5ZjYiPjxzb3VyY2UgbWVkaWE9IihtYXgtd2lkdGg6IDY1OXB4KSIgc3Jjc2V0PSJodHRwczovL3Jlc2l6ZXIubWFpbC5ydS9wLzIxMjM3NGUxLWQ1NjQtNWQ2Yi1hNDEwLWJjYThjODc5NzYyMS9zY2FsZTo1MC9BUUFHSjVuNnphUUU1cThhVVRIb3hfZ0tJMUF5SkRhVGY5NmdYVnBIYkRlbzdQUzE3dVl3Zi1lTG9tR2M5dmdQbGJiZ1EzSUcwLWJyR0RleF9WQl9aQ1hqYXBNLndlYnAgMXgsIGh0dHBzOi8vcmVzaXplci5tYWlsLnJ1L3AvMjEyMzc0ZTEtZDU2NC01ZDZiLWE0MTAtYmNhOGM4Nzk3NjIxL2RwcjoxNjQvc2NhbGU6NTAvQVFBR0o1bjZ6YVFFNXE4YVVUSG94X2dLSTFBeUpEYVRmOTZnWFZwSGJEZW83UFMxN3VZd2YtZUxvbUdjOXZnUGxiYmdRM0lHMC1ickdEZXhfVkJfWkNYamFwTS53ZWJwIDEuNjR4IiB0eXBlPSJpbWFnZS93ZWJwIj48c291cmNlIG1lZGlhPSIobWF4LXdpZHRoOiA2NTlweCkiIHNyY3NldD0iaHR0cHM6Ly9yZXNpemVyLm1haWwucnUvcC8yMTIzNzRlMS1kNTY0LTVkNmItYTQxMC1iY2E4Yzg3OTc2MjEvc2NhbGU6NTAvQVFBR0o1bjZ6YVFFNXE4YVVUSG94X2dLSTFBeUpEYVRmOTZnWFZwSGJEZW83UFMxN3VZd2YtZUxvbUdjOXZnUGxiYmdRM0lHMC1ickdEZXhfVkJfWkNYamFwTS5qcGcgMXgsIGh0dHBzOi8vcmVzaXplci5tYWlsLnJ1L3AvMjEyMzc0ZTEtZDU2NC01ZDZiLWE0MTAtYmNhOGM4Nzk3NjIxL2RwcjoxNjQvc2NhbGU6NTAvQVFBR0o1bjZ6YVFFNXE4YVVUSG94X2dLSTFBeUpEYVRmOTZnWFZwSGJEZW83UFMxN3VZd2YtZUxvbUdjOXZnUGxiYmdRM0lHMC1ickdEZXhfVkJfWkNYamFwTS5qcGcgMS42NHgiIHR5cGU9ImltYWdlL2pwZyI+PHNvdXJjZSBtZWRpYT0iKG1pbi13aWR0aDogNjYwcHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweCkiIHNyY3NldD0iaHR0cHM6Ly9yZXNpemVyLm1haWwucnUvcC8yMTIzNzRlMS1kNTY0LTVkNmItYTQxMC1iY2E4Yzg3OTc2MjEvc2NhbGU6ODAvQVFBR0o1bjZ6YVFFNXE4YVVUSG94X2dLSTFBeUpEYVRmOTZnWFZwSGJEZW83UFMxN3VZd2YtZUxvbUdjOXZnUGxiYmdRM0lHMC1ickdEZXhfVkJfWkNYamFwTS53ZWJwIDF4LCBodHRwczovL3Jlc2l6ZXIubWFpbC5ydS9wLzIxMjM3NGUxLWQ1NjQtNWQ2Yi1hNDEwLWJjYThjODc5NzYyMS9kcHI6MTY0L3NjYWxlOjgwL0FRQUdKNW42emFRRTVxOGFVVEhveF9nS0kxQXlKRGFUZjk2Z1hWcEhiRGVvN1BTMTd1WXdmLWVMb21HYzl2Z1BsYmJnUTNJRzAtYnJHRGV4X1ZCX1pDWGphcE0ud2VicCAxLjY0eCIgdHlwZT0iaW1hZ2Uvd2VicCI+PHNvdXJjZSBtZWRpYT0iKG1pbi13aWR0aDogNjYwcHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweCkiIHNyY3NldD0iaHR0cHM6Ly9yZXNpemVyLm1haWwucnUvcC8yMTIzNzRlMS1kNTY0LTVkNmItYTQxMC1iY2E4Yzg3OTc2MjEvc2NhbGU6ODAvQVFBR0o1bjZ6YVFFNXE4YVVUSG94X2dLSTFBeUpEYVRmOTZnWFZwSGJEZW83UFMxN3VZd2YtZUxvbUdjOXZnUGxiYmdRM0lHMC1ickdEZXhfVkJfWkNYamFwTS5qcGcgMXgsIGh0dHBzOi8vcmVzaXplci5tYWlsLnJ1L3AvMjEyMzc0ZTEtZDU2NC01ZDZiLWE0MTAtYmNhOGM4Nzk3NjIxL2RwcjoxNjQvc2NhbGU6ODAvQVFBR0o1bjZ6YVFFNXE4YVVUSG94X2dLSTFBeUpEYVRmOTZnWFZwSGJEZW83UFMxN3VZd2YtZUxvbUdjOXZnUGxiYmdRM0lHMC1ickdEZXhfVkJfWkNYamFwTS5qcGcgMS42NHgiIHR5cGU9ImltYWdlL2pwZyI+PHNvdXJjZSBzcmNzZXQ9Imh0dHBzOi8vcmVzaXplci5tYWlsLnJ1L3AvMjEyMzc0ZTEtZDU2NC01ZDZiLWE0MTAtYmNhOGM4Nzk3NjIxL0FRQUdKNW42emFRRTVxOGFVVEhveF9nS0kxQXlKRGFUZjk2Z1hWcEhiRGVvN1BTMTd1WXdmLWVMb21HYzl2Z1BsYmJnUTNJRzAtYnJHRGV4X1ZCX1pDWGphcE0ud2VicCAxeCwgaHR0cHM6Ly9yZXNpemVyLm1haWwucnUvcC8yMTIzNzRlMS1kNTY0LTVkNmItYTQxMC1iY2E4Yzg3OTc2MjEvZHByOjE2NC9BUUFHSjVuNnphUUU1cThhVVRIb3hfZ0tJMUF5SkRhVGY5NmdYVnBIYkRlbzdQUzE3dVl3Zi1lTG9tR2M5dmdQbGJiZ1EzSUcwLWJyR0RleF9WQl9aQ1hqYXBNLndlYnAgMS42NHgiIHR5cGU9ImltYWdlL3dlYnAiPjxpbWcgY2xhc3M9ImFmMzBlMTM5OWYgbGF6eSBlbnRlcmVkIGxvYWRlZCIgYWx0PSIgIiBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL0FRQUdKNW42emFRRTVxOGFVVEhveF9nS0kxQXlKRGFUZjk2Z1hWcEhiRGVvN1BTMTd1WXdmLWVMb21HYzl2Z1BsYmJnUTNJRzAtYnJHRGV4X1YuanBnIiBzcmNzZXQ9Imh0dHBzOi8vcmVzaXplci5tYWlsLnJ1L3AvMjEyMzc0ZTEtZDU2NC01ZDZiLWE0MTAtYmNhOGM4Nzk3NjIxL2RwcjoxNjQvQVFBR0o1bjZ6YVFFNXE4YVVUSG94X2dLSTFBeUpEYVRmOTZnWFZwSGJEZW83UFMxN3VZd2YtZUxvbUdjOXZnUGxiYmdRM0lHMC1ickdEZXhfVkJfWkNYamFwTS5qcGcgMS42NHgiIGxvYWRpbmc9ImxhenkiIGhlaWdodD0iNDQwIiB3aWR0aD0iNzgwIiBkYXRhLWxsLXN0YXR1cz0ibG9hZGVkIj48L3BpY3R1cmU+PC9kaXY+PGRpdiBjbGFzcz0iZWM3YWIyNmYxMyI+PGRpdiBjbGFzcz0iYTE0MjE4NGZhZSI+PHNwYW4gY2xhc3M9ImIzYmUyYmYzNWEgYzJlYzNkNDJjYyIgZGF0YS1xYT0iSWNvbiI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZGF0YS1xYT0iSWNvblN2ZyIgY2xhc3M9ImM1M2E4ODJlM2UiIHN0eWxlPSJ3aWR0aDogMzBweDsgaGVpZ2h0OiAzMHB4OyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTAuOTEgMTIuODA2QTYuOTY0IDYuOTY0IDAgMDE3IDE0Yy0zLjg2MyAwLTctMy4xMzctNy03czMuMTM3LTcgNy03IDcgMy4xMzcgNyA3YTYuOTcgNi45NyAwIDAxLTEuMTggMy44ODlsMi4xMTQgMi4xMTNhMS4zNTQgMS4zNTQgMCAwMS0xLjkxNCAxLjkxNGwtMi4xMS0yLjExek03IDIuNDc3QTQuNTI0IDQuNTI0IDAgMDExMS41MjMgNyA0LjUyNCA0LjUyNCAwIDAxNyAxMS41MjMgNC41MjQgNC41MjQgMCAwMTIuNDc3IDcgNC41MjQgNC41MjQgMCAwMTcgMi40Nzd6Ij48L3BhdGg+PC9zdmc+PC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZmlndXJlPjwvZGl2PjxkaXYgYXJ0aWNsZS1pdGVtLXR5cGU9Imh0bWwiIGNsYXNzPSJkNGQ3ZjljZWY0IGRmMDY4ZjhmOTciPjxkaXY+PHA+PGVtPtCc0J7QodCa0JLQkCwgMjEmbmJzcDvQvNCw0Y8uIC/QotCQ0KHQoS8uIDwvZW0+MjM1LdC5INCT0LDRgNC90LjQt9C+0L3QvdGL0Lkg0LLQvtC10L3QvdGL0Lkg0YHRg9C0INC/0L7QtNGC0LLQtdGA0LTQuNC7INGE0LDQutGCINCw0YDQtdGB0YLQsCDQsdGL0LLRiNC10LPQviDQutC+0LzQsNC90LTRg9GO0YnQtdCz0L4gNTgt0Lkg0LDRgNC80LjQtdC5Jm5ic3A70JLQoSDQoNCkJm5ic3A70LPQtdC90LXRgNCw0Lst0LzQsNC50L7RgNCwINCY0LLQsNC90LAg0J/QvtC/0L7QstCwINC/0L4mbmJzcDvQtNC10LvRgyDQviZuYnNwO9C80L7RiNC10L3QvdC40YfQtdGB0YLQstC1LiDQntCxJm5ic3A70Y3RgtC+0Lwg0KLQkNCh0KEg0YHQvtC+0LHRidC40LvQuCDQsiZuYnNwO9C/0YDQtdGB0YEt0YHQu9GD0LbQsdC1INGB0YPQtNCwLjwvcD48L2Rpdj48L2Rpdj48ZGl2IGFydGljbGUtaXRlbS10eXBlPSJodG1sIiBjbGFzcz0iZDRkN2Y5Y2VmNCBkZjA2OGY4Zjk3Ij48ZGl2PjxwPsKr0JzQvtC20LXQvCDQv9C+0LTRgtCy0LXRgNC00LjRgtGMLCDRh9GC0L4mbmJzcDsxNyZuYnNwO9C80LDRjyDRgdGD0LQg0LDRgNC10YHRgtC+0LLQsNC7INCz0LXQvdC10YDQsNC7LdC80LDQudC+0YDQsCDQn9C+0L/QvtCy0LAg0JguINCYLiDQv9C+Jm5ic3A70L/QvtC00L7Qt9GA0LXQvdC40Y4g0LImbmJzcDvQvNC+0YjQtdC90L3QuNGH0LXRgdGC0LLQtSDQsiZuYnNwO9C+0YHQvtCx0L4g0LrRgNGD0L/QvdC+0Lwg0YDQsNC30LzQtdGA0LUgKNGHLiA0INGB0YIuJm5ic3A7MTU5INCj0JombmJzcDvQoNCkKS4g0JTQsNC90L3QsNGPINC80LXRgNCwINC/0YDQtdGB0LXRh9C10L3QuNGPINC40LfQsdGA0LDQvdCwINC90LAmbmJzcDvRgdGA0L7QuiDQtNCy0LAg0LzQtdGB0Y/RhtCwwrssJm5ic3A74oCUINGB0LrQsNC30LDQu9C4INCyJm5ic3A70L/RgNC10YHRgS3RgdC70YPQttCx0LUsINC00L7QsdCw0LLQuNCyLCDRh9GC0L4mbmJzcDvQtNC10LvQviDRgNCw0YHRgdC70LXQtNGD0LXRgiDQk9CS0KHQoyZuYnNwO9Ch0Jog0KDQpC4g0JTRgNGD0LPQuNGFINC00LXRgtCw0LvQtdC5INC00LXQu9CwINCyJm5ic3A70YHRg9C00LUg0L3QtSZuYnNwO9GB0L7QvtCx0YnQuNC70LguPC9wPjwvZGl2PjwvZGl2PjxkaXYgYXJ0aWNsZS1pdGVtLXR5cGU9Imh0bWwiIGNsYXNzPSJkNGQ3ZjljZWY0IGRmMDY4ZjhmOTciPjxkaXY+PHA+0KDQsNC90LXQtSDQvtCxJm5ic3A70LDRgNC10YHRgtC1INC+0YTQuNGG0LXRgNCwINCi0JDQodChIDxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L2luY2lkZW50LzYxMTY1NDU3LyIgdGFyZ2V0PSJfYmxhbmsiPtGB0L7QvtCx0YnQuNC70Lg8L2E+INCyJm5ic3A70L/RgNCw0LLQvtC+0YXRgNCw0L3QuNGC0LXQu9GM0L3Ri9GFINC+0YDQs9Cw0L3QsNGFLjwvcD48L2Rpdj48L2Rpdj48ZGl2IGFydGljbGUtaXRlbS10eXBlPSJodG1sIiBjbGFzcz0iZDRkN2Y5Y2VmNCBkZjA2OGY4Zjk3Ij48ZGl2PjxwPtCf0L7Qv9C+0LIg0L3QsNGH0LDQuyDRgdC70YPQttCx0YMg0YEmbmJzcDvQutC+0LzQsNC90LTQvtCy0LDQvdC40Y8g0LLQt9Cy0L7QtNC+0Lwg0LImbmJzcDs1Ni3QvCDQtNC10YHQsNC90YLQvdC+LdGI0YLRg9GA0LzQvtCy0L7QvCDQv9C+0LvQutGDLiDQkiZuYnNwO9C00LDQu9GM0L3QtdC50YjQtdC8INC60L7QvNCw0L3QtNC+0LLQsNC7INGA0LDQt9C70LjRh9C90YvQvNC4INGH0LDRgdGC0Y/QvNC4INC4Jm5ic3A70YHQvtC10LTQuNC90LXQvdC40Y/QvNC4LiDQo9GH0LDRgdGC0LLQvtCy0LDQuyDQsiZuYnNwO9GB0L/QtdGG0LjQsNC70YzQvdC+0Lkg0LLQvtC10L3QvdC+0Lkg0L7Qv9C10YDQsNGG0LjQuCDQvdCwJm5ic3A70YDQsNC30LvQuNGH0L3Ri9GFINC10LUmbmJzcDvRg9GH0LDRgdGC0LrQsNGFLCDQsiZuYnNwO9GC0L7QvCDRh9C40YHQu9C1INCyJm5ic3A70LTQvtC70LbQvdC+0YHRgtC4INC60L7QvNCw0L3QtNGD0Y7RidC10LPQviA1OC3QuSDQsNGA0LzQuNC10LkuPC9wPjwvZGl2PjwvZGl2PjwvbWFpbj48ZGl2IGNsYXNzPSJmMTAwM2U5MGEzIj48ZGl2IGRhdGEtcmItc2xvdD0iMTAwIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJhMzhiN2NlYWRlIj48ZGl2IGRhdGEtcmItc2xvdD0iMTQ3Nzc5NiI+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjxhc2lkZSBjbGFzcz0iZWZmY2ZkZTY5NyBiYzE2MDljMWQwIj48ZGl2IGNsYXNzPSJlOTVmNjQ1ODJjIj48ZGl2IGNsYXNzPSJlMTg4MDU5MDY1IGRlNTI5MmMxMzkiPjxkaXYgY2xhc3M9ImFhZDllN2I4NGYgZDg2YzUyNzRkOCI+PGRpdiBjbGFzcz0iZWNlNjBlNTZmZCI+PGRpdiBjbGFzcz0iYzM0MDU1ODNiYyIgZGF0YS1oaWRlb3JkZXI9IjEwIiBkYXRhLXNpemU9IjYzMCIgc3R5bGU9Im1pbi1oZWlnaHQ6IDYzMHB4OyI+PGRpdiBkYXRhLXJiLXNsb3Q9IjE0MjY2ODEiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImFhZDllN2I4NGYiPjxkaXYgY2xhc3M9ImVjZTYwZTU2ZmQgZTAzZTQ0YzA3NCIgc3R5bGU9InRvcDogNjhweDsiPjxkaXYgY2xhc3M9ImMzNDA1NTgzYmMiIGRhdGEtaGlkZW9yZGVyPSI5IiBkYXRhLXNpemU9IjM1MCIgc3R5bGU9Im1pbi1oZWlnaHQ6IDM1MHB4OyBkaXNwbGF5OiBibG9jazsiPjxkaXYgY2xhc3M9ImQ5YjQ2MmY1ODMiPjxkaXYgZGF0YS1xYT0iVGl0bGUiIGNsYXNzPSJkMTM0OWU0ZTNmIGE3MzJlNGQ1NTMgZTEyZjBhMzlhNiBjMWE1ZjRkOTg2Ij7Qn9C+0L/Rg9C70Y/RgNC90L7QtSDQt9CwINGB0YPRgtC60Lg8L2Rpdj48dWwgY2xhc3M9ImVmNDRjY2VlMjciPjxsaSBjbGFzcz0iYTkxNzhkN2ZhZCBjOGMzODNmZDUyIj48YSBjbGFzcz0iYmI0MWIzMDVhOSIgaHJlZj0iaHR0cHM6Ly9uZXdzLm1haWwucnUvcG9saXRpY3MvNjExNTU2NjAvP3V0bV9zb3VyY2U9YmxvY2tfcG9wdWxhciI+0JImbmJzcDvQntCe0J0g0L7RhtC10L3QuNC70Lgg0LvQtdCz0LjRgtC40LzQvdC+0YHRgtGMINCX0LXQu9C10L3RgdC60L7Qs9C+INC/0L7RgdC70LUgMjAmbmJzcDvQvNCw0Y88L2E+PC9saT48bGkgY2xhc3M9ImE5MTc4ZDdmYWQgYzhjMzgzZmQ1MiI+PGEgY2xhc3M9ImJiNDFiMzA1YTkiIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L3BvbGl0aWNzLzYxMTYwOTIzLz91dG1fc291cmNlPWJsb2NrX3BvcHVsYXIiPlRoZSBFY29ub21pc3Qg0YDQsNGB0YHQutCw0LfQsNC7INC+Jm5ic3A70LrRgNC40LrQsNGFINCX0LXQu9C10L3RgdC60L7Qs9C+INC90LAmbmJzcDvQs9C10L3QtdGA0LDQu9C+0LI8L2E+PC9saT48bGkgY2xhc3M9ImE5MTc4ZDdmYWQgYzhjMzgzZmQ1MiI+PGEgY2xhc3M9ImJiNDFiMzA1YTkiIGhyZWY9Imh0dHBzOi8vdmZva3VzZS5tYWlsLnJ1L2FydGljbGUvcm9zc2l5YW4tcHJlZHVwcmVkaWxpLWtvbXUtc3RvaXQtYnl0LW9zdG9yb3pobmV5LXMtY2hlcm55bS1jaGFlbS02MTE1NTY1NS8/dXRtX3NvdXJjZT1ibG9ja19wb3B1bGFyIj7QoNC+0YHRgdC40Y/QvSDQv9GA0LXQtNGD0L/RgNC10LTQuNC70LgsINC60L7QvNGDINGB0YLQvtC40YIg0LHRi9GC0Ywg0L7RgdGC0L7RgNC+0LbQvdC10Lkg0YEmbmJzcDvRh9C10YDQvdGL0Lwg0YfQsNC10Lw8L2E+PC9saT48bGkgY2xhc3M9ImE5MTc4ZDdmYWQgYzhjMzgzZmQ1MiI+PGEgY2xhc3M9ImJiNDFiMzA1YTkiIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L2luY2lkZW50LzYxMTU3MTcyLz91dG1fc291cmNlPWJsb2NrX3BvcHVsYXIiPtCh0YPQvdCw0Log0L7QsdGK0Y/QstC40LsgwqvQtNC10L3RjCDQv9C+0LfQvtGA0LDCuyDQsiZuYnNwO9CR0YDQuNGC0LDQvdC40Lgg0LjQty3Qt9CwJm5ic3A70YHQutCw0L3QtNCw0LvQsCDRgSDQutGA0L7QstGM0Y48L2E+PC9saT48bGkgY2xhc3M9ImE5MTc4ZDdmYWQgYzhjMzgzZmQ1MiI+PGEgY2xhc3M9ImJiNDFiMzA1YTkiIGhyZWY9Imh0dHBzOi8vcG9nb2RhLm1haWwucnUvbmV3cy82MTE2MDg0Ni8/dXRtX3NvdXJjZT1ibG9ja19wb3B1bGFyIj7QmtC+0LQgwqvQmtGA0LDRgdC90YvQucK7OiDQsNC90L7QvNCw0LvRjNC90LDRjyDQttCw0YDQsCDQsiZuYnNwO9CY0L3QtNC40LguINCk0L7RgtC+0YDQtdC/0L7RgNGC0LDQtjwvYT48L2xpPjwvdWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iYzM0MDU1ODNiYyIgZGF0YS1oaWRlb3JkZXI9IjgiIGRhdGEtc2l6ZT0iMzIwIiBzdHlsZT0ibWluLWhlaWdodDogMzIwcHg7IGRpc3BsYXk6IG5vbmU7Ij48ZGl2IGNsYXNzPSJsYXp5U2xvdC04Mmp6Mmt6MGN5Ij48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2FzaWRlPjwvc2VjdGlvbj48L2Rpdj48L21haW4+PC9zZWN0aW9uPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PGRpdiBkYXRhLWxvZ2dlci1wYXJlbnQ9ImJvdHRvbSI+PGRpdiBkYXRhLXFhPSJXcmFwcGVyIj48ZGl2IGRhdGEtcWE9IldyYXBwZXJDb250ZW50IiBjbGFzcz0iYTJiOWM3YjZiZCI+PGRpdiBkYXRhLXJiLXNsb3Q9Ijk4NzMwNCI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBkYXRhLWxvZ2dlci1wYXJlbnQ9ImZvb3RlciI+PGRpdiBjbGFzcz0iZmJiNzQyZWViYiI+PGhyIGNsYXNzPSJkMzJhMDlmMjEwIGZiYWZlNDQxYjIiPjxkaXYgY2xhc3M9ImxhenkgZW50ZXJlZCIgZGF0YS1yYi1zbG90PSJyZWNvbW1lbmRhdGlvbkZlZWQiIGRhdGEtbGwtc3RhdHVzPSJlbnRlcmVkIj48c3Bhbj4KICAgICAgICA8IS0tIHN0YXJ0OiAvcmIvNjc0ODEyIC0tPgogICAgICAgIDxpbWcgc3JjPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy9kMTIwNzQyNjg1LmdpZiIgc3R5bGU9IndpZHRoOjA7aGVpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW47IiBhbHQ9IiI+CgoKCjxub2luZGV4Pgo8ZGl2IGNsYXNzPSJqcy1tb2R1bGUiIGRhdGEtbXA9IkxhenlJdGVtLlB1bHNlVmlld3BvcnQyNSBhcyBMYXp5UHVsc2UiPgoJPGRpdj4JCTxzY3JpcHQgc3JjPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy9wdWxzZS1sZW50YS41NjAxZTE2MTY2NTZjYjU1YjcwNC5qcy7QkdC10Lcg0L3QsNC30LLQsNC90LjRjyIgYXN5bmM9IiI+PC9zY3JpcHQ+IAoJCTxkaXYgY2xhc3M9InJiLXB1bHNlIj4KICAJCTxkaXYgY2xhc3M9InJiLXB1bHNlX19sZW50YSBwdWxzZS1sZW50YS1yb290Ij48ZGl2IGNsYXNzPSJQdWxzZUxlbnRhLXJvb3QtMC0xLTEgUHVsc2VMZW50YS1jb21wYWN0LTAtMS0zIFB1bHNlTGVudGEtcmVsYXRpdmUtMC0xLTQiPjxkaXYgY2xhc3M9IkxheW91dC1vdXRlci0wLTEtNSBwdWxzZS1sZW50YS1sYXlvdXQgTGF5b3V0LWFsaWduQ2VudGVyLTAtMS03IExheW91dC1jYXRlZ29yaWVzTGF5b3V0LTAtMS0xMCIgZGF0YS10ZXN0aWQ9InB1bHNlLWxheW91dCI+PGRpdiBjbGFzcz0iTGVudGFIZWFkZXItcm9vdC0wLTEtMTEgTGVudGFIZWFkZXItd2l0aG91dFRpdGxlLTAtMS0xMiBMZW50YUhlYWRlci13aXRob3V0VGl0bGVBbmRUYWJzLTAtMS0xMyI+PC9kaXY+PGRpdiBjbGFzcz0iTGF5b3V0LWlubmVyLTAtMS05IiBzdHlsZT0ibWluLWhlaWdodDogMHB4OyI+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlQYWdlLXJvb3QtMC0xLTE5Ij48ZGl2IGNsYXNzPSJDYXRlZ29yeVBhZ2UtaGVhZGVyLTAtMS0yMCI+PGRpdiBjbGFzcz0iQ2F0ZWdvcnlQYWdlLXRpdGxlLTAtMS0yMSI+0JDQutGC0YPQsNC70YzQvdC+0LU8L2Rpdj48ZGl2IGNsYXNzPSJDYXRlZ29yeVBhZ2UtcGlsbHNDb250YWluZXItMC0xLTIyIj48ZGl2IGNsYXNzPSJDYXRlZ29yeVBhZ2UtcGlsbHMtMC0xLTIzIj48YnV0dG9uIGNsYXNzPSJDYXRlZ29yeVBhZ2UtcGlsbC0wLTEtMjQgQnV0dG9uUGlsbC1yb290LTAtMS0zMSBCdXR0b25QaWxsLW5ldXRyYWwtb3V0bGluZS0wLTEtMzMgQnV0dG9uUGlsbC1tLTAtMS0zOSIgdHlwZT0iYnV0dG9uIj7Qn9C+0LvQuNGC0LjQutCwPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iQ2F0ZWdvcnlQYWdlLXBpbGwtMC0xLTI0IEJ1dHRvblBpbGwtcm9vdC0wLTEtMzEgQnV0dG9uUGlsbC1uZXV0cmFsLW91dGxpbmUtMC0xLTMzIEJ1dHRvblBpbGwtbS0wLTEtMzkiIHR5cGU9ImJ1dHRvbiI+0JfQvdCw0LzQtdC90LjRgtC+0YHRgtC4PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iQ2F0ZWdvcnlQYWdlLXBpbGwtMC0xLTI0IEJ1dHRvblBpbGwtcm9vdC0wLTEtMzEgQnV0dG9uUGlsbC1uZXV0cmFsLW91dGxpbmUtMC0xLTMzIEJ1dHRvblBpbGwtbS0wLTEtMzkiIHR5cGU9ImJ1dHRvbiI+0K7QvNC+0YA8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJDYXRlZ29yeVBhZ2UtcGlsbC0wLTEtMjQgQnV0dG9uUGlsbC1yb290LTAtMS0zMSBCdXR0b25QaWxsLW5ldXRyYWwtb3V0bGluZS0wLTEtMzMgQnV0dG9uUGlsbC1tLTAtMS0zOSIgdHlwZT0iYnV0dG9uIj7QltC40LLQvtGC0L3Ri9C1PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iQ2F0ZWdvcnlQYWdlLXBpbGwtMC0xLTI0IEJ1dHRvblBpbGwtcm9vdC0wLTEtMzEgQnV0dG9uUGlsbC1uZXV0cmFsLW91dGxpbmUtMC0xLTMzIEJ1dHRvblBpbGwtbS0wLTEtMzkiIHR5cGU9ImJ1dHRvbiI+0KHQv9C+0YDRgjwvYnV0dG9uPjxidXR0b24gY2xhc3M9IkNhdGVnb3J5UGFnZS1waWxsLTAtMS0yNCBCdXR0b25QaWxsLXJvb3QtMC0xLTMxIEJ1dHRvblBpbGwtbmV1dHJhbC1vdXRsaW5lLTAtMS0zMyBCdXR0b25QaWxsLW0tMC0xLTM5IiB0eXBlPSJidXR0b24iPtCQ0LLRgtC+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iQ2F0ZWdvcnlQYWdlLXBpbGwtMC0xLTI0IEJ1dHRvblBpbGwtcm9vdC0wLTEtMzEgQnV0dG9uUGlsbC1uZXV0cmFsLW91dGxpbmUtMC0xLTMzIEJ1dHRvblBpbGwtbS0wLTEtMzkiIHR5cGU9ImJ1dHRvbiI+0JrQuNC90L48L2J1dHRvbj48L2Rpdj48YnV0dG9uIGNsYXNzPSJDYXRlZ29yeVBhZ2UtcGlsbC0wLTEtMjQgQ2F0ZWdvcnlQYWdlLW1vcmUtMC0xLTI2IEJ1dHRvblBpbGwtcm9vdC0wLTEtMzEgQnV0dG9uUGlsbC1uZXV0cmFsLTAtMS0zMiBCdXR0b25QaWxsLW0tMC0xLTM5IiB0eXBlPSJidXR0b24iPtCV0YnQtTwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iQ2F0ZWdvcnlQYWdlLXNldHRpbmdzQnRuLTAtMS0yNyBCdXR0b24tcm9vdC0wLTEtNDMgQnV0dG9uLXRlcnRpYXJ5LW5ldXRyYWwtMC0xLTU5IEJ1dHRvbi1tLTAtMS03MSI+PHNwYW4gY2xhc3M9IkJ1dHRvbi1jb250ZW50LTAtMS00NCI+PHNwYW4gY2xhc3M9IkJ1dHRvbi1sYWJlbC0wLTEtNDYiPjxzdmcgYXJpYS1oaWRkZW49InRydWUiIGRpc3BsYXk9ImJsb2NrIiBjbGFzcz0idmt1aUljb24gdmt1aUljb24tLTIwIHZrdWlJY29uLS13LTIwIHZrdWlJY29uLS1oLTIwIHZrdWlJY29uLS1zbGlkZXJzX291dGxpbmVfMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiBzdHlsZT0id2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsiPjx1c2UgaHJlZj0iI3NsaWRlcnNfb3V0bGluZV8yMCIgc3R5bGU9ImZpbGw6IGN1cnJlbnRjb2xvcjsiPjwvdXNlPjwvc3ZnPjwvc3Bhbj48L3NwYW4+PC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icGxfYSI+PGRpdiBjbGFzcz0icGxfeSI+PGRpdiBjbGFzcz0icGxfYWciIGRhdGEtdGVzdGlkPSJwdWxzZS1yb3ciPjxkaXYgY2xhc3M9InBsX3EgcGxfbiBwbF94IHBsX2FtIiBkYXRhLXRlc3RpZD0icHVsc2UtY2FyZCI+PGRpdiBjbGFzcz0iQ2FyZFByZWxvYWRlci1yb290LTAtMS0xMDIgQ29udGVudENhcmQtcm9vdC0wLTEtMTA3Ij48ZGl2IGNsYXNzPSJDYXJkUHJlbG9hZGVyLWJvZHktMC0xLTEwMyI+PGRpdiBjbGFzcz0iQ2FyZFByZWxvYWRlci1pbWFnZS0wLTEtMTA0IFBlbmRpbmdCbG9jay1yb290LTAtMS0xMDkiPjwvZGl2PjxkaXYgY2xhc3M9IkNhcmRQcmVsb2FkZXItdGl0bGUtMC0xLTEwNSBQZW5kaW5nQmxvY2stcm9vdC0wLTEtMTA5Ij48L2Rpdj48ZGl2IGNsYXNzPSJDYXJkUHJlbG9hZGVyLWRlc2MtMC0xLTEwNiBQZW5kaW5nQmxvY2stcm9vdC0wLTEtMTA5Ij48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwbF9xIHBsX24gcGxfeCBwbF9hbSIgZGF0YS10ZXN0aWQ9InB1bHNlLWNhcmQiPjxkaXYgY2xhc3M9IkNhcmRQcmVsb2FkZXItcm9vdC0wLTEtMTAyIENvbnRlbnRDYXJkLXJvb3QtMC0xLTEwNyI+PGRpdiBjbGFzcz0iQ2FyZFByZWxvYWRlci1ib2R5LTAtMS0xMDMiPjxkaXYgY2xhc3M9IkNhcmRQcmVsb2FkZXItaW1hZ2UtMC0xLTEwNCBQZW5kaW5nQmxvY2stcm9vdC0wLTEtMTA5Ij48L2Rpdj48ZGl2IGNsYXNzPSJDYXJkUHJlbG9hZGVyLXRpdGxlLTAtMS0xMDUgUGVuZGluZ0Jsb2NrLXJvb3QtMC0xLTEwOSI+PC9kaXY+PGRpdiBjbGFzcz0iQ2FyZFByZWxvYWRlci1kZXNjLTAtMS0xMDYgUGVuZGluZ0Jsb2NrLXJvb3QtMC0xLTEwOSI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icGxfcSBwbF9uIHBsX3ggcGxfYW0iIGRhdGEtdGVzdGlkPSJwdWxzZS1jYXJkIj48ZGl2IGNsYXNzPSJwbF9pIHBsX2ogcGxfbCBwbF9heiBwbF9hMCBwbF9hbiI+PGlucyBjbGFzcz0ibXJnLXRhZyBwbF9heSIgZGF0YS1zbG90PSIxMjk5Mjc0IiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBub25lOyI+CgoKCgoKCjxkaXYgY2xhc3M9Im1haWxydS12aXNpYmlsaXR5LWNoZWNrIiBpZD0ibWFpbHJ1MTcxNjMxMzMxNjkwNjU1MzQ0MiI+IDxzcGFuIGNsYXNzPSJtYWlscnUtdmlzaWJpbGl0eS1jaGVjay1jb3VudGVyIiBkYXRhLWNvdW50ZXI9Imh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNSaV9ubDdPQUFBQUFZVnhUNEZVN3dBT1QycXBVTXlUOHRoQ19WemFFcVozcDN3MXBGd0lmcVc3WWpYUnpQMWdGd2szSFhzMWw1aW9HMG9fQWpsSnlOcF9ldUZRc1VTcmgwSlhYS001NDc5VUd4Q1h4MXVweUItMll1aGg0MGxMSGV4dURTM01DRnJIMDkwUlViWkdQTDRsS3IwdjUtUUY4X3VvT3gzcEtwT2VOcElEMW1TdTd0RDh3U0lJVEJwLWtQdzFoT0FtbkZkUzlHR01WdHMxcEF0RzhacnZKMmhWMHlsa3hhdXlJVnRzcGNhR2pmNk9fYUdxeVRDTHItSTBSZkh3WmNRMUFjRmFQWFZVZ3ZDSFJPcmgybnN6WHliUklnLmdpZiIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9zcGFuPiA8aW1nIHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVNy5naWYiIHN0eWxlPSJ3aWR0aDowO2hlaWdodDowO3Bvc2l0aW9uOmFic29sdXRlO3Zpc2liaWxpdHk6aGlkZGVuOyIgYWx0PSIiPgoKCgoKCgoKCgoKCgogIAogICAgCiAgCgoKIAoKCgoKCgoKCgogIAogIAogIAogIAoKCgoKCiAgICAKICAgIAogICAgCiAgCgoKCgoKPGRpdiBpZD0idHJnLWItMTU1Mjg3Mjc1LTUzMDU3OTc2NSIgZGF0YS1oaWRlLTUzMDU3OTc2NT0iaGlkZS1iYW5uZXIiIHN0eWxlPSJkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MDsgdGV4dC1hbGlnbjogbGVmdDsiPjxkaXYgaWQ9InRyZy1iLTE1NTI4NzI3NS01MzA1Nzk3NjUyIj4KPGRpdiBpZD0iYjE1NTI4NzI3NV81MzA1Nzk3NjUiIGRhdGEtaW5pdD0idHJ1ZSIgZGF0YS1yZW5kZXJ0eXBlPSJuYXRpdmUiPjxkaXYgY2xhc3M9Im11bHRpZm9ybWF0MzAweDMwMHdpZGVOb0JvcmRlci0taXRlbS0tOUtjWUhVIHRyZy12aXNpYmlsaXR5LWNoZWNrIGNsaWNrYXJlYS0tZW5hYmxlZC0tcURSem5GIiBkYXRhLXRyZy1pZD0iMTU1Mjg3Mjc1IiBkYXRhLWNsaWNrd3JhcD0id3JhcCIgc3R5bGU9ImhlaWdodDogMzAwcHg7Ij48c3BhbiBjbGFzcz0idmlld2FiaWxpdHlQaXhlbHMtLWNvdW50ZXItLXJkcjlhbSB0cmctdmlzaWJpbGl0eS1jaGVjay1jb3VudGVyIiBkYXRhLWNvdW50ZXI9Imh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNVek00a1BVQUFBQWJmUXliRTNfcmFBT0h3cjZtSklPV2c1WEY2YXV1SzR0bUtJWXBxY2NHbTZvOHJnY2E3dzA0a2JabFRCNWM2cjVDUkxXMWw1Z0p3OXVZMURuMk82RDdwVWRkZWkwSVhrcFhTRWJvUnZrcXlya0xmVFp0V1FDcXFrVlZsLUxybmJYR2lMN2tjaFpVRDNZWXp5TUV4T19Eb1JNa2sxeE43WVpDRjBCcGVMcUR5X0R4dWNmdVBjYVQ5dF9TMExLcFJVaUlPUUozVUdfcHdEeHZCVmdrc1pNR01BWlk4T1k0S1k2cUNQOTlEbjZDaEhJT2NCQXNocWJKRGdZSUZ5bmx2M08tekt2QmEwUlI4OHFzSWU0N201VHdDMEhVdXNFcDhwbUo4QzA1eDBhbGZBLmdpZiI+PC9zcGFuPjxhIGNsYXNzPSJtdWx0aWZvcm1hdDMwMHgzMDB3aWRlTm9Cb3JkZXItLWFsbEluTGluay0tTGRrTDhZIiBocmVmPSJodHRwczovL2F3YXkudmsuY29tL2F3YXkucGhwP21ycnRvPWh0dHBzJTNBJTJGJTJGdmsuY29tJTJGc29rcGVybSZhbXA7Y2xrPXNUVzVlME0qcTlRVjdoTjdkSEVMb0hYRTFVQU5LZXVRWTVVVE0zQ1h2MG1iNVpKOEU1VFV3OU9DSnd2clVGRDV0ci9yelRMYThPeVF6VFRycTIyb3UxakpMeXN4Wk80ODVjdDFvbGg0VXI3THNEZ1FsTDdTam13V2w0aVk3Nks2VVFMR2Y4dHYxdlRtSzhmbE5GS3dQcGFHd3JSekE4TXU4VDk5U21zVEpSUUJ2MkdEYkdsZ1RyN2ZsczM2eDZhSEYvVnFmSk9DNjQyWGZQMFk4VmJUKnN1Si9sSzd4c1BVUGsxS1lud1JPU1hsYmt6ZVRnSlNDZmJWbmJQUFI0SnZpeCp6N2J4S1ZId3g0dDlPUS9oTzY1WEJ6V3N3V3pINGQ3aE1CRUQ5bDRXR1psa1l2RTMxZlJNejVQeElUKmk4MUp3S2NCRXdPOVA1T25Vc0E3dTZ3VXNkeElmejNBSXpKS2JYN2YwTHVBUWRJTzhoV2xKRnJHRWpraWF0M0MxQUE4KjhldHhpUnFad2cvdjdNZE54ZDFNNTQ0TkdFYlkyb3lPZVUveip0N3JiZ3hTZ0xuUWcwR0tEc3VYcHpLZXNrenZOZXZISlEvMUMwM2hrUlVhZ0w4V0RpcEFQcSprT0ZuMDZ4TEJ5OXhnclFha204cUFlS0lRYm5QMHJuSDVyWmlXQjhCSkJFeFZDZkdOWDZsb2JoN1BlaGtTbjRaUGE5TUhtbExLTUZhbnM4RyoqSVlIQ2t1djRTd0s2Q05oTEIvZFBnckxuN3hVT0FRRTEwdjRCKnovbEdDMk9mSkJYNnV2d294MUM0Ulg5cGhRWkQ4SVU0SzhwQVNzN2ZFbHZEakVXalBUN01kOVoyZU5QaDcvNzRYQ1NleTNkU1ZIQUl5RVhSWWJyR0pnLSZhbXA7Y3A9YWVzMTI4OmRiMThjYWQ2ZjZiYWRkM2U4NGEzOGIyMDNjMTg5Y2RlZWVmM2FhYmE3ODNmNjEwNThhOWVkNTVmMGI1NGI4OTImYW1wO3NwPWFlczEyODplNzJkNjM4NTIzNTAzZTc4N2I0NDJkYzU2ODkwMDA1YTIxYWNmMDBmZTZjZjU4MTE3ZWQ3OWUyZjBmYjhmN2I3JmFtcDthaT00NDkxOTg1OGM2NDkyYzFiZDg5MDAyMjNmY2E0YjBjZCIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiIGRhdGEtY3VzdGNsaWNrYXJlYT0iYWxsIj48ZGl2IGNsYXNzPSJtdWx0aWZvcm1hdDMwMHgzMDB3aWRlTm9Cb3JkZXItLWltYWdlQ3VzdG9tLS15dU1TNDEiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJnF1b3Q7aHR0cHM6Ly9zdW4xLTU0LnVzZXJhcGkuY29tL2ltcGYvYm9ZaFRGTG5pWmkyUWtJbGUycEFXN3hTQUJ0WEs3c2xqdnNxY0EvLXpzWmEwaGM3UGcuanBnP3NpemU9MTA4MHg2MDcmYW1wO3F1YWxpdHk9OTUmYW1wO2tlZXBfYXNwZWN0X3JhdGlvPTEmYW1wO2JhY2tncm91bmQ9ZmZmZmZmJmFtcDtzaWduPTQwYmI1NjU4ZGY3OGZkNGI3NzUxNWNkNTk4MmZhYzMyJnF1b3Q7KTsiPjwvZGl2PjxkaXYgY2xhc3M9Im11bHRpZm9ybWF0MzAweDMwMHdpZGVOb0JvcmRlci0tY29udGFpbmVyLS16bmJyWUgiPjxkaXYgY2xhc3M9Im11bHRpZm9ybWF0MzAweDMwMHdpZGVOb0JvcmRlci0tY29udGFpbmVySW5uZXItLUtDcktveCI+PGRpdiBjbGFzcz0ibXVsdGlmb3JtYXQzMDB4MzAwd2lkZU5vQm9yZGVyLS10ZXh0c0NvbnRhaW5lci0tbGZ4cmcwIj48c3BhbiBjbGFzcz0ibXVsdGlmb3JtYXQzMDB4MzAwd2lkZU5vQm9yZGVyLS1oZWFkZXJXcmFwcGVyLS1hUWV3SnkiPjxzcGFuIGNsYXNzPSJtdWx0aWZvcm1hdDMwMHgzMDB3aWRlTm9Cb3JkZXItLWhlYWRlci0tT3VaeFJYIj7QmtC70YPQsdC90LjQutCwINCyINGI0L7QutC+0LvQsNC00LUg0J/QtdGA0LzRjCB8IFNPSzwvc3Bhbj48L3NwYW4+PGRpdiBjbGFzcz0ibXVsdGlmb3JtYXQzMDB4MzAwd2lkZU5vQm9yZGVyLS10ZXh0V3JhcC0tZ1R6YnFZIj48c3BhbiBjbGFzcz0ibXVsdGlmb3JtYXQzMDB4MzAwd2lkZU5vQm9yZGVyLS10ZXh0LS1JeDQ2c3EiPtCf0LXRgNC80YwsINGG0LXQvdCwINGB0L3QuNC20LXQvdCwINGC0L7Qu9GM0LrQviDQtNC+IDI2INC80LDRjyEg0J/QtdGA0LXRhdC+0LTQuCDQuiDQvdCw0Lwg0LIg0LPRgNGD0L/Qv9GDLCDRh9GC0L7QsdGLINC+0YTQvtGA0LzQuNGC0Ywg0LfQsNC60LDQtyBodHRwczovL3ZrLmNvbS9zb2twZXJtPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im11bHRpZm9ybWF0MzAweDMwMHdpZGVOb0JvcmRlci0taW5mb1dyYXAtLVlNS2hhSCI+PGRpdiBjbGFzcz0ibXVsdGlmb3JtYXQzMDB4MzAwd2lkZU5vQm9yZGVyLS1kb21haW4tLXRUUnpGSSI+dmsuY29tPC9kaXY+PGRpdiBjbGFzcz0ibXVsdGlmb3JtYXQzMDB4MzAwd2lkZU5vQm9yZGVyLS1hZHNMYWJlbC0tQm1kaE9KICI+0KDQtdC60LvQsNC80LAgPC9kaXY+PC9kaXY+PC9hPjxkaXYgY2xhc3M9ImNsb3NlLS1jbG9zZS0tT1dYZ2pNICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAKICAgICAgICAgICAgIAogICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICAiPjxidXR0b24gY2xhc3M9ImNsb3NlLS1jbG9zZUJ1dHRvbi0teWF3MjRfIAogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgIj48aW1nIGNsYXNzPSJjbG9zZS0tY2xvc2VJbWctLUxGYXlRRSIgc3JjPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy84NjY3REQuc3ZnIiBhbHQ9IiI+PC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdD4oZnVuY3Rpb24oKSB7dHJ5IHt2YXIgZGF0YSA9IAp7CgkiY3JlYXRpdmVUeXBlIjogIm11bHRpZm9ybWF0MzAweDMwMHdpZGVOb0JvcmRlciIsCiAgCiAgCiAibGlianMiOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC9pbWcvOEMvNzVDQTBBLmpzIiwKICJsaWJjc3MiOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC9pbWcvNTIvQUU2OEMwLmNzcyIsCgogIAogICJwbGFjZWhvbGRlcklEIjogImIxNTUyODcyNzVfNTMwNTc5NzY1IiwKICAiaGVpZ2h0IjogMzAwLAogICJiYW5uZXIiOiB7CiAgICAiaW1hZ2UiOiB7CiAgICAgIAogICAgICAidHlwZSI6ICJzdGF0aWMiLAogICAgICAidXJsIjogImh0dHBzOi8vc3VuMS01NC51c2VyYXBpLmNvbS9pbXBmL2JvWWhURkxuaVppMlFrSWxlMnBBVzd4U0FCdFhLN3NsanZzcWNBLy16c1phMGhjN1BnLmpwZz9zaXplPTEwODB4NjA3JnF1YWxpdHk9OTUma2VlcF9hc3BlY3RfcmF0aW89MSZiYWNrZ3JvdW5kPWZmZmZmZiZzaWduPTQwYmI1NjU4ZGY3OGZkNGI3NzUxNWNkNTk4MmZhYzMyIgogICAgfSwKICAgICJpY29uIjogewogICAgICAgICAidHlwZSI6ICJzdGF0aWMiLAogICAgICAgICAidXJsIjogImh0dHBzOi8vc3VuMS0xOC51c2VyYXBpLmNvbS9zL3YxL2lnMi9hQ19Fc0p4V19qbGVfLTYyYklkeERoMF81RkJkZ0U2WEtOMFhZbUJnRUpjM3NGZmREUzZ2RndfRWYxdXplMWo4c1NQZlh5djAtNy0xeVVlRzYyRnJiWW4xLmpwZz9zaXplPTIwMHgyMDAmcXVhbGl0eT05NSZjcm9wPTAsMCwyNTU5LDI1NTkmYXZhPTEiCiAgICAgfSwKICAgICJ0aXRsZSI6ICLQmtC70YPQsdC90LjQutCwINCyINGI0L7QutC+0LvQsNC00LUg0J/QtdGA0LzRjCB8IFNPSyIsCiAgICAiZGVzY3JpcHRpb24iOiAi0J/QtdGA0LzRjCwg0YbQtdC90LAg0YHQvdC40LbQtdC90LAg0YLQvtC70YzQutC+INC00L4gMjYg0LzQsNGPISDQn9C10YDQtdGF0L7QtNC4INC6INC90LDQvCDQsiDQs9GA0YPQv9C/0YMsINGH0YLQvtCx0Ysg0L7RhNC+0YDQvNC40YLRjCDQt9Cw0LrQsNC3IGh0dHBzOlwvXC92ay5jb21cL3Nva3Blcm0iLAogICAgCiAgICAiZGlzY2xhaW1lciI6ICIiLAogICAgImRvbWFpbiI6ICJ2ay5jb20iLAogICAgImN0YVRleHQiOiAi0J/QvtC00YDQvtCx0L3QtdC1IiwKICAgICJ0cmFja2luZ0xpbmsiOiAiaHR0cHM6Ly9hd2F5LnZrLmNvbS9hd2F5LnBocD9tcnJ0bz1odHRwcyUzQSUyRiUyRnZrLmNvbSUyRnNva3Blcm0mY2xrPXNUVzVlME0qcTlRVjdoTjdkSEVMb0hYRTFVQU5LZXVRWTVVVE0zQ1h2MG1iNVpKOEU1VFV3OU9DSnd2clVGRDV0ci9yelRMYThPeVF6VFRycTIyb3UxakpMeXN4Wk80ODVjdDFvbGg0VXI3THNEZ1FsTDdTam13V2w0aVk3Nks2VVFMR2Y4dHYxdlRtSzhmbE5GS3dQcGFHd3JSekE4TXU4VDk5U21zVEpSUUJ2MkdEYkdsZ1RyN2ZsczM2eDZhSEYvVnFmSk9DNjQyWGZQMFk4VmJUKnN1Si9sSzd4c1BVUGsxS1lud1JPU1hsYmt6ZVRnSlNDZmJWbmJQUFI0SnZpeCp6N2J4S1ZId3g0dDlPUS9oTzY1WEJ6V3N3V3pINGQ3aE1CRUQ5bDRXR1psa1l2RTMxZlJNejVQeElUKmk4MUp3S2NCRXdPOVA1T25Vc0E3dTZ3VXNkeElmejNBSXpKS2JYN2YwTHVBUWRJTzhoV2xKRnJHRWpraWF0M0MxQUE4KjhldHhpUnFad2cvdjdNZE54ZDFNNTQ0TkdFYlkyb3lPZVUveip0N3JiZ3hTZ0xuUWcwR0tEc3VYcHpLZXNrenZOZXZISlEvMUMwM2hrUlVhZ0w4V0RpcEFQcSprT0ZuMDZ4TEJ5OXhnclFha204cUFlS0lRYm5QMHJuSDVyWmlXQjhCSkJFeFZDZkdOWDZsb2JoN1BlaGtTbjRaUGE5TUhtbExLTUZhbnM4RyoqSVlIQ2t1djRTd0s2Q05oTEIvZFBnckxuN3hVT0FRRTEwdjRCKnovbEdDMk9mSkJYNnV2d294MUM0Ulg5cGhRWkQ4SVU0SzhwQVNzN2ZFbHZEakVXalBUN01kOVoyZU5QaDcvNzRYQ1NleTNkU1ZIQUl5RVhSWWJyR0pnLSZjcD1hZXMxMjg6ZGIxOGNhZDZmNmJhZGQzZTg0YTM4YjIwM2MxODljZGVlZWYzYWFiYTc4M2Y2MTA1OGE5ZWQ1NWYwYjU0Yjg5MiZzcD1hZXMxMjg6ZTcyZDYzODUyMzUwM2U3ODdiNDQyZGM1Njg5MDAwNWEyMWFjZjAwZmU2Y2Y1ODExN2VkNzllMmYwZmI4ZjdiNyZhaT00NDkxOTg1OGM2NDkyYzFiZDg5MDAyMjNmY2E0YjBjZCIsCiAgICAidHJhY2tpbmdMaW5rVXJsVHlwZXMiOiAiZXh0ZXJuYWwsZXh0ZXJuYWxfbmV3IiwKICAgICJ0cmFja2luZ0xpbmtUcmFja2VyVHlwZXMiOiAiMCIsCiAgICAiaWQiOiAxNTUyODcyNzUKICB9LCJwYWQiOiB7CgkJCQkJCSJhbGxvd0Nsb3NlIjogdHJ1ZSwKCQkJCQkJImFsbG93Q2xvc2VEZWxheSI6IDAsCgkJCQkJCSJhdXRvcGxheSI6IHRydWUsCgkJCQkJCSJhdXRvbXV0ZSI6IHRydWUsCgkJCQkJCSJhbGxvd0JhY2tCdXR0b24iOiB0cnVlLAoJCQkJCQkiYWxsb3dSZXBsYXkiOiB0cnVlLAoJCQkJCQkib3BlbkluQnJvd3NlciI6IGZhbHNlLAoJCQkJCQkic3R5bGVzIjoge30KCQkJCQl9LAkgICJzdGF0aXN0aWNzIjogWwogICAgewogICAgICAidHlwZSI6ICJzaG93IiwKICAgICAgInVybCI6ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczVXpNNGtQVUFBQUFiZlF5YkUzX3JhQU9Id3I2bUpJT1dnNVhGNmF1dUs0dG1LSVlwcWNjR202bzhyZ2NhN3cwNGtiWmxUQjVjNnI1Q1JMVzFsNWdKdzl1WTFEbjJPNkQ3cFVkZGVpMElYa3BYU0Vib1J2a3F5cmtMZlRadFdRQ3Fxa1ZWbC1Mcm5iWEdpTDdrY2haVUQzWVl6eU1FeE9fRG9STWtrMXhON1laQ0YwQnBlTHFEeV9EeHVjZnVQY2FUOXRfUzBMS3BSVWlJT1FKM1VHX3B3RHh2QlZna3NaTUdNQVpZOE9ZNEtZNnFDUDk5RG42Q2hISU9jQkFzaHFiSkRnWUlGeW5sdjNPLXpLdkJhMFJSODhxc0llNDdtNVR3QzBIVXVzRXA4cG1KOEMwNXgwYWxmQS5naWYiCiAgICB9LAogICAgewogICAgICAidHlwZSI6ICJjbG9zZSIsCiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1JHejR3UFVBQUFBb0VuNnhBNXJBRE5QTnc4bVMxSjU0NXlwWnJQZkhKN2hvR2lGNEU0RmJDQnJkRjdnV05NcXRKUHJ6ZGZ6TGIwalhmMW1NQUVzaFlFUE9iZ0FmNXpabVhoWi1pR3ZCaUlmZHREQjAwdk9vamhRRDhJV0xxMHo5amktVVh4TUFlWlY5YUVJaHNVMS1xUUxJdkIyOVgxRHRnRnp6R2tUdkVMb016eldyc2NQYU9JZlNYWkYwalM0RFVsdEhTel9wWDk4cU1LRDZzNTNKNlpSUWswbklYZEluSFpONHhzRDJiVTNlNndsMVM5ak1FLUl0cUdGYXZpaWlGMmgwbDR2bXFaQ3JtQ3Y2ZUpmQ0ZTMXd3MHQ3QWNLZ24xMWctZlE2VW9jVHdobXh4TjFxNk0uZ2lmIgogICAgfSwKICAgIHsKICAgICAgInR5cGUiOiAiY2xpY2siLAogICAgICAidXJsIjogImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNSZDNuVU10QVFBQUV6Qy1uRU1XdzVXSFhUQkM4Y0IydFp0TktQNml4OHRXeF9CN3JiQUxNSG9LZXBOdzNMZDhoQm5lUFBRMUNzVXoxdFlQRWJYZm5zZVdiSkFGeDRvMmFLVjRMUXMxc3g3Y3BodEpnRlVreGRqMUsyd096S2NINUNVSkoxem1WQk1ORkVXVmtNM3d1WXhHUnR2UGVfYnh1RE9yc3VIY2FpTTRTMzNLQUVlUU1ZZlVOblBBYzZfbHBfdzdSU2c4T25IUGxaN1FEa2xZYTBRTTAzc2lDQnFEc0JZOTktSWh1bmJRdFA2QjNINmFUenREWjMtSXd1by0tdERTLVR1UWFFOHlBR2k4dl9NNGFoN1JUeURzcElYaGo5THBmTjk4OTJvWnRPTHlyelAzYm1BU0tfdlpYWDh3bnZWVFNrMURXWlNnV1BvUEVvaUsyMVZFT3pZbklKX0xaRTZvcnl3OXpkVEFDRngxdzA1QUpGc3ZDd2duT1p1RzB5MHVrUzZzd3IzWEFmNVg2emQxRm50SXRua1JKSVJWS1EuZ2lmIgogICAgfQogIF0sCiAgImxpYk9wdGlvbnMiOiB7ImlzRnJhbWUiOiBmYWxzZX0sCgkJCQkJInRoZW1lcyI6IHsKCQkJCQkJInNlcHRpbWEiOiAiIiwKCQkJCQkJInBvbnltb2RlIjogIiIsCgkJCQkJCSJyb3VuZGVkIjogIjAiLAoJCQkJCQkiZXhwX2lkIjogIiIsCgkJCQkJCSJpbjNwYW5lTWV0YXRocmVhZCI6ICIiLAoJCQkJCQkgImlzRGFya1RoZW1lIjogIiIsIkRUX2JnIjogIiIsCgkJCQkJCSJEVF9ib3JkZXJDb2xvciI6ICIiLAoJCQkJCQkiRFRfdGl0bGVIb3ZlckNvbG9yIjogIiIsCgkJCQkJCSJEVF90aXRsZUNvbG9yIjogIiIsCgkJCQkJCSJEVF90ZXh0Q29sb3IiOiAiIiwKCQkJCQkJIkRUX3VybENvbG9yIjogIiIsCgkJCQkJCSJEVF9iZ0hvdmVyIjogIiIsCgkJCQkJCSJEVF9ob3ZlckNvbG9yIjogIiIsCgkJCQkJCSJEVF90b3AiOiAiIiwKCQkJCQkJIkRUX3RvcEhvdmVyIjogIiIsCgkJCQkJCSJEVF9zZW50TXNnT2tCZyI6ICIiLAoJCQkJCQkiRFRfc2VudE1zZ09rQmdIb3ZlciI6ICIiLAoJCQkJCQkiRFRfc2VudE1zZ09rQm9yZGVyQ29sb3IiOiAiIiwKCQkJCQkJIkRUX3NlbnRNc2dPa1RleHRDb2xvciI6ICIiLAoJCQkJCQkiRFRfc2VudE1zZ09rVGl0bGVDb2xvciI6ICIiLAoJCQkJCQkiRFRfc2VudE1zZ09rVGl0bGVIb3ZlckNvbG9yIjogIiIsCgkJCQkJCSJEVF9zaXRlQmdDb2xvciI6ICIiLAoJCQkJCQkiRFRfbGVmdEhvdmVyIjogIiIsCgkJCQkJCSJEVF9sZWZ0TGluayI6ICIiLAoJCQkJCQkiRFRfbGVmdFRleHQiOiAiIiwKCQkJCQkJIkRUX2xpc3RCZyI6ICIiLAoJCQkJCQkiRFRfbGlzdEJnSG92ZXIiOiAiIiwKCQkJCQkJIkRUX2xpc3RCb3JkZXJDb2xvciI6ICIiLAoJCQkJCQkiRFRfbGlzdFRleHRDb2xvciI6ICIiLAoJCQkJCQkiRFRfbGlzdFRpdGxlQ29sb3IiOiAiIiwKCQkJCQkJIkRUX2xpc3RUaXRsZUhvdmVyQ29sb3IiOiAiIiwKCQkJCQkJIkRUX2xpc3RCdXR0b25CZ0NvbG9yIjogIiIsCgkJCQkJCSJEVF9saXN0QnV0dG9uVGV4dENvbG9yIjogIiIsCgkJCQkJCSJEVF9saXN0QnV0dG9uVGV4dEhvdmVyQ29sb3IiOiAiIiwKCQkJCQkJIkRUX2xpc3RCdXR0b25Cb3JkZXJDb2xvciI6ICIiLAoJCQkJCQkiRFRfbGlzdEJ1dHRvbkJvcmRlckhvdmVyQ29sb3IiOiAiIiwKCQkJCQkJIkRUX2xpc3RCdXR0b25CZ0hvdmVyQ29sb3IiOiAiIiwKCQkJCQkJImNsb3VkQmdDb2xvciI6ICIiLAoJCQkJCQkiY2xvdWRUZXh0Q29sb3IiOiAiIiwKCQkJCQkJImNsb3VkVG9wSG92ZXJDb2xvciI6ICIiCgkJCQkJfSwKICAiY2xvc2VSZWFzb24iOiB7CiAgICAgICJpY29uTGluayI6ICJodHRwczovL3IubXJhZHgubmV0L2ltZy8zMy85MkFCQTEucG5nIiwKICAgICAgImNsb3NlQWN0aW9uVGV4dCI6ICLQl9Cw0LrRgNGL0YLRjCIsCiAgICAgICJjbG9zZVVybCI6ICIiLAogICAgICAiY2xpY2tMaW5rIjogImh0dHBzOi8vbGVnYWwubXkuY29tL3VzL215dGFyZ2V0L3ByaXZhY3kvIiwKICAgICAgImFib3V0Q29tcGFueUxpbmsiOiAiaHR0cHM6Ly92ay5jb20vYWRfaW5mby5waHA/aGFzaD0wMGJkMGFmZjhhNTlkNWFiYzgmYWRfaWQ9MTc4NjY3NjQ4JmFkX3R5cGU9YWRfb2ZmaWNlIiwKICAgICAgCiAgICAgICJvcHRpb25zIjogIFsKICAgICAgICAgIHsKICAgICAgICAgICAgICAiaWQiOiAxLAogICAgICAgICAgICAgICJuYW1lIjogItCd0LUg0LjQvdGC0LXRgNC10YHQvdC+IiwKICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNlNlN0U19WQUFBQUowcUFwU1BjdjRuWkR2M2hGVnJBMnZoakpaT0JYV1dmdFNtMEdwcXpXdEZad3I1b2d3Z3ZMMGZSLWZrMjBjTk5ycEZnaDAyQnpBMW9jYkJ5ODl2M1dzWWdEc3B0eE1VdVFTNTZibmlTV0txMFNqRUJIOW5fazVvZ0ItZmpkWUYzaVM0VzdvVnRiMFdTMEVVTkRlOTRyTFFsd0pjd2FGazdHSHUwRnFHVGFjZ0NZTlAzQVdheW5MV3ZSWGt4V2piWGtXRDhQU1BJV3Z1WFJTZVl2WUtUbFluR1YxX2N1eHk5WDdMX1QxRFJTSXVvNGVzODk0N1BKaEhUU3I5aUVJVnZuekY4cy1DRVU5SmlnbEVFY0p2Q3cyZVE5bnEtXzBQaGpxUlczTjVoN2hrLmdpZiIsCiAgICAgICAgICAgICAgInNob3VsZENsb3NlQWQiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAgICJpZCI6IDIsCiAgICAgICAgICAgICAgIm5hbWUiOiAi0KPQttC1INC/0YDQuNC+0LHRgNC10YLQtdC90L4iLAogICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM2JDQkdVX1ZBQUFBamxfSE55SzBwVWIxaHpmdzJGMnJKMFFCTG5EdmpIM0hvcFNyTFJxRFJaa3BJMXdjcC1nYk1LUUQwRWN3UWU0VkJBY0xuWmtHZEZINFlnTkI4d3ZBSk9jT1dXa3FsXzZWVl9RUllmU3hzdE9OTkQwN2RZWnFrcnJuQWlxZS1ySV9KZEM4TEFQUlQ4Zy1qNDV4UmtFb1BWTDQtWEdFYjl3YmlBa3QtYUR0OUxPcExYMUw2a01XV2JWWGxjdWY0WW1RNW1YVXBWN1VOM01uMGdUaTdUckltc000OHRibHFma0ZLRjlucmVsZ1k3SXhTNEYyNWZLeVRTWFh4NVB0OXB2dVVGQVlyaThhUVdKSktONExfclo2RTdjaUdRS0NYR1ZyNHBrSnBCemEzak0uZ2lmIiwKICAgICAgICAgICAgICAic2hvdWxkQ2xvc2VBZCI6IHRydWUKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICAgImlkIjogMywKICAgICAgICAgICAgICAibmFtZSI6ICLQktC40LbRgyDRgdC70LjRiNC60L7QvCDRh9Cw0YHRgtC+IiwKICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNXMXZ5M19WQUFBQVQ4YmlHenlrSW5MSi1sV2pzdXFocWFFRWFydzZPb1lHZXNTcV9qWlJZRVRfT3VOcFFGQV9HS2VvbWloeHdGOTZGanV6VEFSZndNYVFIcm5BcnEyVExxZU4yUUd4a1hUTnJTNm5HOHdHb1lOSnVlX1BfRFRueG4ta2gtWjdGeDdFX1FzOG94UlhjSElLUV9DT0pHZWpnOXVPUHNHak1wUzNQMG1YRVNfaUpKSG9kb1l0OHE2dHgyVVpXNlItSDlyekEtYUYtdDE5TXdNaUtRdkxHYkh1TVFzWk5Hb1lDZWtXZi04QXpvWXBONUhwOVJDdVNDdmJhT1RPemFRYmlpRzNqdHIxakx3ek14anJaNlk5VUpwbFI5LUdDMmVfaWdhUl9jeElNTnhRenNFLmdpZiIsCiAgICAgICAgICAgICAgInNob3VsZENsb3NlQWQiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAgICJpZCI6IDQsCiAgICAgICAgICAgICAgIm5hbWUiOiAi0J7RgdC60L7RgNCx0LjRgtC10LvRjNC90L7QtSDRgdC+0LTQtdGA0LbQsNC90LjQtSIsCiAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczVEdhX0diVkFBQUFyeUlGeFRnWHdUQ2ktR3gyZHNYWHFEMV9USEVhWGxrQk1NMkFxQmtiSnFrUUFuY2NNaUszXzVDbzdtNzlMd1lSLVAyUnBERjRJTzg2N1JVc3VNbi1qTUxOX042UEJnZGNQV3RXTDlOdzVBNmhrdjFySHk2dzZ2ZHZGTW9RaTNYU1hVdGYwbjNqc3Y4b2x0X2NTTXpzaEFvVWZoZ0lKTDE3V1d6SmhLMXVaQlJPLU9jeS1IakpycmtKWHJxT1VBS0ExV29YTFVneDA4ZE45di1DMjY4MS1NMWJTR0pzZmxNOXZDZGYzVU9oOTZYYkdKQUlneGN3SlkzWVA0TDRqeEl1TTREQ1kweUZhTjJBeWNDZS1OQ3gxaExjWFNTSFB2Y0UyT1Zjdnc5Ym1hQS5naWYiLAogICAgICAgICAgICAgICJzaG91bGRDbG9zZUFkIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgICAiaWQiOiA1LAogICAgICAgICAgICAgICJuYW1lIjogItCh0LXQutGB0YPQsNC70YzQvdGL0Lkg0L/QvtC00YLQtdC60YHRgiIsCiAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczV3Y5dng3VkFBQUFHbVVEMXBVVDhkdzZiMUFzSUhoQVgySHFQVlprbENEUzBrX3lFaldiUEt4UnNTaGlGbF95S09zRjlZZDZWZnF3TkhFTkpUU29ldWpuMmJNRUZzaUZITGFkdWlycTF2VktvUmNsa0huZDNRZ0Z1Nm94THg1OE1ORjlOSkRqb1N1Uk92S25iU2tTNEpLV0lNSlRFOC10SnE2Z1lFM0xpOVpsTEZ2V09qVVI4dnBrYUNmNzB6cFh4OG52OW1HRjIxcEc0YmR5UTBMaVJjb1ZSSEJaTWlWV09iYi1Cak5sNk5mWTIwSlR3NV84V2RCOUhLREVYbEtqZF85aWVDSFJKNFJidHdBbVdsdDN0cHZ1em5kbUpZenpKMWVuSV9wM3dIY1labE4tbEQ1dGtsOC5naWYiLAogICAgICAgICAgICAgICJzaG91bGRDbG9zZUFkIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgICAiaWQiOiA2LAogICAgICAgICAgICAgICJuYW1lIjogItCd0LDRgNGD0YjQtdC90LjQtSDQt9Cw0LrQvtC90LAiLAogICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1JkVFFSM1ZBQUFBbHA1ajdYQ3RDN3lyTHZxVGh0M1otNlFUZUZhLXJJZzIzdDV6Sy00aWpZVlNXTkM2RDFHTHZaSGtzcWozVmNjT3kwSGZ3WFdoZkcweUFEUU9sVmlGT3hTLWk3ckJMSjdyek5JcWdCNS0zT3ZsREY0Ry1ZVTlWaHotQkhYT1hLQ3RfWWs2QkgtUHVoekR1X3FOcVc4RjdoOS1uOHJzcmdhXzFnLVQybUF6b3BQZ0ZpcTBLWXhJRkRLb0pEZGxTR1ZHSEZyMjFLTVVwdVltQ0tiQUJtdEdwT0NCb2kwR3lBeTZVSV9laDlCeFZwUlhFdXV1Tm5kUXFOSzZrTUNrOTRfcV8xMTBOczdOeFBQY2NUeHZPcE9ScTRzNWg5THBDZFhiY2NPNGhuY2ZwXzAuZ2lmIiwKICAgICAgICAgICAgICAic2hvdWxkQ2xvc2VBZCI6IHRydWUKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICAgImlkIjogNywKICAgICAgICAgICAgICAibmFtZSI6ICLQnNC+0YjQtdC90L3QuNGH0LXRgdC60LjQuSDRgdCw0LnRgiIsCiAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczVEdubzM3VkFBQUFZY0RZU2d5T0dXSG5oRktFOWxXQ2tQbFRYWjR5LUxmT0ZBbWVUQXZxbUVCa21TZFRyLUozRmk2NmUwbWFmbEgtRGN3aUpWdzZHaDh0Sjlxc2d2YzVuUWxYZ2QyQk52dkg1dEdTbEpQdUgwUWNEM2ZvNDlrdGJHbGt5VFo1MGNkRjU3dUhwN0hlNEhxbHFORGhqSjlTNHpsbnBURnhMZHZoMExWS09Rb1JDdFdnaWFoS3VLQUpNbXktS0ppQ1I4WFV3OFVXVHctcnVOYnI0clFrclFVYmR6bEh6TjJaTjBuOUpyQjRKRUE2aFlIcVVseDV0bnJ3cGc2ZDhTalRDd0RDM3poci0xbWhKaWhZOHhqLUVwV045cmVFZllvQTVZUXN2eEgtZTB2b19zSS5naWYiLAogICAgICAgICAgICAgICJzaG91bGRDbG9zZUFkIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgImlkIjogOCwKICAgICAgICAgICAgIm5hbWUiOiAi0KHQutGA0YvRgtGMIiwKICAgICAgICAgICAgInNob3VsZENsb3NlQWQiOiB0cnVlCiAgICAgICAgICB9CiAgICAgIF0KICAgIH0KfQo7fSBjYXRjaCAoZSkgeyBjb25zb2xlLndhcm4oZSk7IH12YXIgaXNJRTExID0gKGZ1bmN0aW9uICgpIHsKICAgIC8qIHRydWUgb24gSUUxMSwgZmFsc2Ugb24gRWRnZSBhbmQgb3RoZXIgSUVzL2Jyb3dzZXJzLiAqLwogICAgLyp2YXIgaXNJRTExID0gISF3aW5kb3cuTVNJbnB1dE1ldGhvZENvbnRleHQgJiYgISFkb2N1bWVudC5kb2N1bWVudE1vZGU7Ki8KICAgIHZhciB1YSA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50OwogICAgaWYgKHVhLmluZGV4T2YoIkFwcGxlV2ViS2l0IikgIT09IC0xKSB7cmV0dXJuIGZhbHNlO30gCiAgICBlbHNlIGlmICh1YS5pbmRleE9mKCJMdW5hc2NhcGUiKSAhPT0gLTEpIHtyZXR1cm4gZmFsc2U7fSAKICAgIGVsc2UgaWYgKHVhLmluZGV4T2YoIlNsZWlwbmlyIikgIT09IC0xKSB7cmV0dXJuIGZhbHNlO30KICAgIHZhciBhcnJheSA9IC8obXNpZXxydjo/KVxzKihbXGQuXSspLy5leGVjKHVhKTsKICAgIHZhciB2ZXJzaW9uID0gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCA+IDIpID8gYXJyYXlbMl0gOiAnJzsKICAgIHJldHVybiB2ZXJzaW9uID09PSAnMTEnIHx8IHZlcnNpb24gPT09ICcxMS4wJzsKfSk7Cgp2YXIgcXVldWUgPSB3aW5kb3dbJ1RSR0JWaWV3X3F1ZXVlJ107CmlmICghZGF0YSB8fCAhZGF0YS5oYXNPd25Qcm9wZXJ0eSgnbGliT3B0aW9ucycpKSB7IAogICAgZGF0YS5saWJPcHRpb25zID0ge307ICAgIAp9CmRhdGEubGliT3B0aW9ucy5wYWQgPSAiMTI5OTI3NCI7CmRhdGEubGliT3B0aW9ucy50ZW1wbGF0ZSA9ICI4IjsKZGF0YS5saWJPcHRpb25zLnBhdHRlcm4gPSAibXVsdGlmb3JtYXQzMDB4MzAwd2lkZU5vQm9yZGVyIjsKaWYgKCFxdWV1ZSkgewogICAgcXVldWUgPSB3aW5kb3dbJ1RSR0JWaWV3X3F1ZXVlJ10gPSBbZGF0YV07Cn0gZWxzZSB7CiAgICBxdWV1ZS5wdXNoKGRhdGEpOwp9CnZhciBjb3JlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2RhdGEtdHJnYnZpZXctY29yZScpOwppZiAoIWNvcmUpIHsKICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKc2NyaXB0LnNyYyA9IGlzSUUxMSgpID8gJ2h0dHBzOi8vci5tcmFkeC5uZXQvaW1nLzhBLzE0QTkyRS5qcycgOiAnaHR0cHM6Ly9yLm1yYWR4Lm5ldC9pbWcvMTcvM0Y4ODdBLmpzJzsKICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2RhdGEtdHJnYnZpZXctY29yZScpOwogICAgc2NyaXB0Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbG9hZGVkJywgJ3RydWUnKQogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmICghZGF0YSkgewogICAgICAgICAgICAgICAgbG9nRXJyb3IoJ25vX2RhdGEnLCAnZW1wdHkgdGVtcGxhdGUgZGF0YSBwcmVpbml0Jyk7CiAgICAgICAgICAgICAgICAvKmNvbnNvbGUud2FybigndHJnIG5vIGRhdGEnKTsqLwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBxdWV1ZSA9IHdpbmRvd1snVFJHQlZpZXdfcXVldWUnXTsKICAgICAgICAgICAgaWYgKHF1ZXVlICYmIHdpbmRvdy5UUkdCVmlld0NvcmUgJiYgdHlwZW9mIHdpbmRvdy5UUkdCVmlld0NvcmUuZ2xvYkluaXQgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5UUkdCVmlld0NvcmUuZ2xvYkluaXQocXVldWUsIGlzSUUxMSgpKTsKICAgICAgICAgICAgICAgIGRlbGV0ZSB3aW5kb3dbJ1RSR0JWaWV3X3F1ZXVlJ107CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBsb2dFcnJvcignbm9fbGliJywgJ25vIGxpYiBvciBpbml0IGZ1bmN0aW9uJyk7CiAgICAgICAgICAgICAgICAvKmNvbnNvbGUud2FybigndHJnIHdlYiBsaWIgb2JqZWN0IG9yIGdsb2JJbml0IGlzIG5vdCBhIGZ1bmN0aW9uJyk7Ki8KICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgbG9nRXJyb3IoJ25vX2RhdGEnLCAnbm8gdGVtcGxhdGUgZGF0YSBjYXRjaCcpOwogICAgICAgIH0KICAgIH0KICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKfSBlbHNlIGlmIChjb3JlICYmIGNvcmUuZ2V0QXR0cmlidXRlKCdkYXRhLWxvYWRlZCcpID09PSAndHJ1ZScpIHsKICAgIHZhciBxdWV1ZSA9IHdpbmRvd1snVFJHQlZpZXdfcXVldWUnXTsKICAgIGlmIChxdWV1ZSAmJiB3aW5kb3cuVFJHQlZpZXdDb3JlICYmIHR5cGVvZiB3aW5kb3cuVFJHQlZpZXdDb3JlLmdsb2JJbml0ID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgd2luZG93LlRSR0JWaWV3Q29yZS5nbG9iSW5pdChxdWV1ZSwgaXNJRTExKCkpOwogICAgICAgIGRlbGV0ZSB3aW5kb3dbJ1RSR0JWaWV3X3F1ZXVlJ107CiAgICB9IGVsc2UgewogICAgICAgIGxvZ0Vycm9yKCdub19saWInLCAnbm8gbGliIG9yIGluaXQgZnVuY3Rpb24nKTsKICAgICAgICAvKmNvbnNvbGUud2FybigndHJnIHdlYiBsaWIgb2JqZWN0IG9yIGdsb2JJbml0IGlzIG5vdCBhIGZ1bmN0aW9uJyk7Ki8KICAgIH0KfQoKdmFyIHBsYWNlSG9sZGVyRWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiMTU1Mjg3Mjc1XzUzMDU3OTc2NScpOwppZiAocGxhY2VIb2xkZXJFbGVtKSB7CiAgICBwbGFjZUhvbGRlckVsZW0uc2V0QXR0cmlidXRlKCdkYXRhLWluaXQnLCB0cnVlKTsKfX0pKCk7PC9zY3JpcHQ+CiAgPC9kaXY+PC9kaXY+CgoKCgoKCgo8c2NyaXB0PgogIHRyeXsKICAgIChmdW5jdGlvbiAodywgZCwgcHJlZml4KSB7CiAgICB3LlJCQyA9IHcuUkJDICYmIHcuUkJDLnYgJiYgdy5SQkMudiA9PT0gMSA/IHcuUkJDIDogKGZ1bmN0aW9uICgpIHsKICAgICAgdmFyIC8vIG1haW4gZmxhZywKICAgICAgICBlbmFibGVkID0gITEsCiAgICAgICAgc2VydmluZ1R5cGUgPSBzZXJ2ZVR5cGUoKSwKICAgICAgICB1c2VPYnNlcnZlciA9ICEhd2luZG93LkludGVyc2VjdGlvbk9ic2VydmVyLAogICAgICAgIHVzZUdlb20gPSAhdXNlT2JzZXJ2ZXIgJiYgc2VydmluZ1R5cGUgIT09ICJYRF9GUkFNRSIsCiAgICAgICAgLy8gb2xkIG9wZXJhIGZvY3VzIGZsYWcKICAgICAgICBmb2N1c2VkID0gITAsCiAgICAgICAgLy8gY291bnRlZCBmbGFnCiAgICAgICAgY291bnRlZCA9ICJtYWlscnUtdmlzaWJpbGl0eS1jb3VudGVkIiwKICAgICAgICAvLyBiYW5uZXJzIHRvIGluc3BlY3QKICAgICAgICBiYW5uZXJzID0ge30sCiAgICAgICAgLy8gc2hvcnRjdXRzCiAgICAgICAgZSA9IGQuZG9jdW1lbnRFbGVtZW50LAogICAgICAgIFZFID0gZC5tb3pWaXNpYmlsaXR5U3RhdGUgPyAibW96dmlzaWJpbGl0eWNoYW5nZSIgOiBkLndlYmtpdFZpc2liaWxpdHlTdGF0ZSA/ICJ3ZWJraXR2aXNpYmlsaXR5Y2hhbmdlIiA6IGQudmlzaWJpbGl0eVN0YXRlID8gInZpc2liaWxpdHljaGFuZ2UiIDogIiIsCiAgICAgICAgSFAgPSAiaGlkZGVuIiBpbiBkID8gImhpZGRlbiIgOiAid2Via2l0SGlkZGVuIiBpbiBkID8gIndlYmtpdEhpZGRlbiIgOiAibW96SGlkZGVuIiBpbiBkID8gIm1vekhpZGRlbiIgOiAiIiwKICAgICAgICAvLyBsYXN0VGltZVN0YW1wID0gMCwKCiAgICAgICAgLy8gdGltaW5nCiAgICAgICAgdG0sCiAgICAgICAgLy8gaW50ZXJzdGlvbiBvYnNlcnZlciBpbnN0YW5jZQogICAgICAgIG9ic2VydmVyOwoKICAgICAgLy8gaGFuZGxlcnMKICAgICAgZnVuY3Rpb24gb25Gb2N1c0luKCkgewogICAgICAgIGZvY3VzZWQgPSAhMDsKICAgICAgICBDKCEwKTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gb25Gb2N1c091dCgpIHsKICAgICAgICBmb2N1c2VkID0gITE7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIG9uVW5sb2FkKCkgewogICAgICAgIENsZWFyKCk7CiAgICAgICAgb2ZmKCk7CiAgICAgIH0KCiAgICAgIC8vIHVzaW5nIHZpc2liaWxpdHkgY291bGQgaGF2ZSBwcm9maXRzIHdoZW4gdGFiIGlzIG5vdAoKICAgICAgZnVuY3Rpb24gb25WaXNpYmlsaXR5Q2hhbmdlKCkgewogICAgICAgIGlmICghZFtIUF0pIG9uRm9jdXNJbigpOwogICAgICAgIGVsc2Ugb25Gb2N1c091dCgpOwogICAgICB9CgogICAgICBmdW5jdGlvbiBvbldpbmRvd1Njcm9sbCgpIHsKICAgICAgICBDKCk7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIG9uV2luZG93UmVzaXplKCkgewogICAgICAgIEMoKTsKICAgICAgfQoKICAgICAgLy8gSSAmbmRhc2g7IGluc3BlY3QKCiAgICAgIGZ1bmN0aW9uIEkoYmFubmVyT2JqZWN0LCBpZCkgewogICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYmFubmVyT2JqZWN0KSA9PT0gIltvYmplY3QgQXJyYXldIikgewogICAgICAgICAgQ2xlYXIoYmFubmVyT2JqZWN0KTsKICAgICAgICAgIHZhciBrID0gYmFubmVyT2JqZWN0Lmxlbmd0aCAtIDE7CiAgICAgICAgICBmb3IgKDsgayA+PSAwOyBrLS0pIHsKICAgICAgICAgICAgaWYgKCFzKGJhbm5lck9iamVjdFtrXS5lbCwgY291bnRlZCkpIHsKICAgICAgICAgICAgICBJKGJhbm5lck9iamVjdFtrXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmICghdXNlT2JzZXJ2ZXIgJiYgIXVzZUdlb20pIHsKICAgICAgICAgIHRyKGJhbm5lck9iamVjdC5waXhlbHNfdW5kZXRlcm1pbmVkKTsKICAgICAgICAgIGJhbm5lck9iamVjdC5lbFtjb3VudGVkXSA9IHRydWU7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIC8vIGJhbm5lck9iamVjdCBjb250YWlucyBiYW5uZXJPYmplY3QuZWwgYW5kIGJhbm5lck9iamVjdC5waXhlbHMKICAgICAgICAvL2NvbnNvbGUubG9nKGJhbm5lck9iamVjdCwnYmFubmVyT2JqZWN0Jyk7CiAgICAgICAgaWYgKCFiYW5uZXJPYmplY3QuZWwuaWQpIHsKICAgICAgICAgIGlkID0KICAgICAgICAgICAgcHJlZml4ICsKICAgICAgICAgICAgbmV3IERhdGUoKS5nZXRUaW1lKCkgKwogICAgICAgICAgICBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxZTYpOwogICAgICAgICAgYmFubmVyT2JqZWN0LmVsLmlkID0gaWQ7CiAgICAgICAgfQoKICAgICAgICBpZCA9IGJhbm5lck9iamVjdC5lbC5pZDsKCiAgICAgICAgLy8gbGFzdFRpbWVTdGFtcCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICAgIC8vIGFkZGluZyB0aGUgYmFubmVyIGNvbnRhaW5lciB0byBzdG9yYWdlCiAgICAgICAgaWYgKCFiYW5uZXJzW2lkXSkgewogICAgICAgICAgYmFubmVyc1tpZF0gPSB7CiAgICAgICAgICAgIGM6IGJhbm5lck9iamVjdC5lbCwKICAgICAgICAgICAgcHg6IGJhbm5lck9iamVjdC5waXhlbHMsCiAgICAgICAgICAgIHB4X3VuOiBiYW5uZXJPYmplY3QucGl4ZWxzX3VuZGV0ZXJtaW5lZCwKICAgICAgICAgICAgcHhfbnY6IGJhbm5lck9iamVjdC5waXhlbHNfbm9udmlld2FibGUsCiAgICAgICAgICAgIGNiOiBiYW5uZXJPYmplY3QuY2FsbGJhY2ssCiAgICAgICAgICAgIGlvOiB1c2VPYnNlcnZlciwKICAgICAgICAgICAgZGVsYXk6IChiYW5uZXJPYmplY3QuZGVsYXkgfHwgMSkgKiAxMDAwLAogICAgICAgICAgICBhcmVhOiBiYW5uZXJPYmplY3QuYXJlYSB8fCA1MAogICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgIC8vIGVuYWJsaW5nIGFueXdheQogICAgICAgIG9uKCk7CiAgICAgICAgaWYgKHVzZU9ic2VydmVyKSB7CiAgICAgICAgICBvKGJhbm5lck9iamVjdC5lbCk7CiAgICAgICAgfQoKICAgICAgICBDKCEwKTsKICAgICAgfQoKICAgICAgLy8gQyAmbmRhc2g7IGNoZWNrIHZpZXdhYmlsaXR5IG9mIGJhbm5lciB3aXRoIHQsIHRpbWVvdXQgYWZ0ZXIgbG9hZGluZwoKICAgICAgZnVuY3Rpb24gQyh0KSB7CiAgICAgICAgZm9yICh2YXIgaWQgaW4gYmFubmVycykgewogICAgICAgICAgaWYgKGJhbm5lcnNbaWRdICYmICFHKGlkKSkgewogICAgICAgICAgICBDTChpZCk7CiAgICAgICAgICB9IGVsc2UgaWYgKAogICAgICAgICAgICBiYW5uZXJzW2lkXSAmJgogICAgICAgICAgICBnZXRWQShiYW5uZXJzW2lkXS5jKSA+PSBiYW5uZXJzW2lkXS5hcmVhICYmCiAgICAgICAgICAgIGhhc0ZvY3VzKCkgJiYKICAgICAgICAgICAgIWJhbm5lcnNbaWRdLnQKICAgICAgICAgICkgewogICAgICAgICAgICAoZnVuY3Rpb24gKF9pZCkgewogICAgICAgICAgICAgIGJhbm5lcnNbX2lkXS50ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICBQKF9pZCk7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fQogICAgICAgICAgICAgIH0sIGJhbm5lcnNbaWRdLmRlbGF5KTsKICAgICAgICAgICAgfSkoaWQpOwogICAgICAgICAgfSBlbHNlIGlmICgKICAgICAgICAgICAgYmFubmVyc1tpZF0gJiYKICAgICAgICAgICAgZ2V0VkEoYmFubmVyc1tpZF0uYykgPCBiYW5uZXJzW2lkXS5hcmVhCiAgICAgICAgICApIHsKICAgICAgICAgICAgaWYgKGJhbm5lcnNbaWRdLnQpIHsKICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoYmFubmVyc1tpZF0udCk7CiAgICAgICAgICAgICAgZGVsZXRlIGJhbm5lcnNbaWRdLnQ7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSBpZiAoYmFubmVyc1tpZF0gJiYgIWhhc0ZvY3VzKCkpIHsKICAgICAgICAgICAgaWYgKGJhbm5lcnNbaWRdLnQpIHsKICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoYmFubmVyc1tpZF0udCk7CiAgICAgICAgICAgICAgZGVsZXRlIGJhbm5lcnNbaWRdLnQ7CiAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRtKTsKICAgICAgICAgICAgICB0ID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSBpZiAoIWJhbm5lcnNbaWRdKSB7CiAgICAgICAgICAgIENMKGlkKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICh0KSB7CiAgICAgICAgICBjbGVhclRpbWVvdXQodG0pOwogICAgICAgICAgdG0gPSBzZXRUaW1lb3V0KAogICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgQyghMCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHVzZUdlb20gPyAzZTIgOiAxMGUzCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gQ0wgJm5kYXNoOyBDbGVhciB0aW1lcnMgYW5kIHN0b3AgbGlzdGVuZXJzCgogICAgICBmdW5jdGlvbiBDTChpZCwgb25seVRNLCBub0NvdW50KSB7CiAgICAgICAgaWYgKGlkICYmIGJhbm5lcnNbaWRdKSB7CiAgICAgICAgICBjbGVhclRpbWVvdXQoYmFubmVyc1tpZF0udCk7CiAgICAgICAgICBiYW5uZXJzW2lkXS50ID0gbnVsbDsKICAgICAgICAgIGlmICghb25seVRNKSB7CiAgICAgICAgICAgIGlmIChiYW5uZXJzW2lkXS5pbyAmJiBvYnNlcnZlcikgewogICAgICAgICAgICAgIG9ic2VydmVyLnVub2JzZXJ2ZShiYW5uZXJzW2lkXS5jKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCFub0NvdW50ICYmICFzKGJhbm5lcnNbaWRdLmMsIGNvdW50ZWQpKSB7CiAgICAgICAgICAgICAgdHIoYmFubmVyc1tpZF0ucHhfbnYpOwogICAgICAgICAgICAgIGJhbm5lcnNbaWRdLmNbY291bnRlZF0gPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJhbm5lcnNbaWRdLmMgPSBudWxsOwogICAgICAgICAgICBkZWxldGUgYmFubmVyc1tpZF07CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNsZWFyVGltZW91dCh0bSk7CiAgICAgICAgdG0gPSBudWxsOwogICAgICAgIGZvciAodmFyIGlkIGluIGJhbm5lcnMpIHsKICAgICAgICAgIGlmIChiYW5uZXJzW2lkXS50KSB7CiAgICAgICAgICAgIENMKGlkLCAhMCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CgogICAgICBmdW5jdGlvbiBDbGVhcihiYW5uZXJzQXJyYXkpIHsKICAgICAgICBpZiAoYmFubmVyc0FycmF5ICYmIGJhbm5lcnNBcnJheS5sZW5ndGggPj0gMCkgewogICAgICAgICAgLy9jbGVhciBiYW5uZXJzIGZyb20gYXJyYXkKICAgICAgICAgIHZhciBrID0gYmFubmVyc0FycmF5Lmxlbmd0aCAtIDE7CiAgICAgICAgICB2YXIgaWQ7CiAgICAgICAgICBmb3IgKDsgayA+PSAwOyBrLS0pIHsKICAgICAgICAgICAgaWQgPSBiYW5uZXJzQXJyYXlba10uZWwuaWQ7CiAgICAgICAgICAgIGlmIChpZCAmJiBiYW5uZXJzW2lkXSkgewogICAgICAgICAgICAgIC8vIGNsZWFyIGJ1dCBkb24ndCBjb3VudCBub252aWV3YWJsZQogICAgICAgICAgICAgIENMKGlkLCAhMSwgITApOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGZvciAodmFyIGlkIGluIGJhbm5lcnMpIHsKICAgICAgICAgICAgLy9jbGVhciBhbGwKICAgICAgICAgICAgQ0woaWQpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gUCAmbmRhc2g7IHBpeGVsIHRvIHNlbmQKICAgICAgZnVuY3Rpb24gUChpZCwgb2JqLCBjbnQpIHsKICAgICAgICBpZiAoIUcoaWQpKSB7CiAgICAgICAgICBDTChpZCk7CiAgICAgICAgICAvLyBiYW5uZXIgcmVtb3ZlZAogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgaWYgKGJhbm5lcnNbaWRdKSB7CiAgICAgICAgICBvYmogPSBiYW5uZXJzW2lkXS5jOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBpZiAoIWhhc0ZvY3VzKCkpIHsKICAgICAgICAgIENMKGlkLCAhMCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfSBlbHNlIGlmIChnZXRWQShvYmopIDwgYmFubmVyc1tpZF0uYXJlYSkgewogICAgICAgICAgQ0woaWQsICEwKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGZvciAoY250ID0gYmFubmVyc1tpZF0ucHgubGVuZ3RoIC0gMTsgY250ID49IDA7IGNudC0tKSB7CiAgICAgICAgICBuZXcgSW1hZ2UoKS5zcmMgPSBiYW5uZXJzW2lkXS5weFtjbnRdOwogICAgICAgIH0KICAgICAgICAvLyBzZXQgY291bnRlZCBmbGFnIC0gc2tpcCBpbiBuZXh0IGNvbGxlY3QgbG9vcHMKICAgICAgICBvYmpbY291bnRlZF0gPSB0cnVlOwogICAgICAgIC8vdHJ5IGZpcmUgY2FsbGJhY2sKICAgICAgICB2YXIgY2IgPSBiYW5uZXJzW2lkXS5jYjsKICAgICAgICBpZiAoY2IgJiYgdHlwZW9mIGNiID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBjYigpOwogICAgICAgICAgfSBjYXRjaCAoZSkge30KICAgICAgICB9CiAgICAgICAgLy8gcmVtb3ZlIGJhbm5lciBmcm9tIHN0b3JhZ2Ugb2YgaW5zcGVjdGFibGUgaXRlbXMKICAgICAgICBDTChpZCk7CiAgICAgICAgLy8gdHVybiBsaXN0ZW5lcnMgb2ZmIGlmIGJhbm5lcnMgYXJlIG5vdCBwcmVzZW50CiAgICAgICAgaWYgKCFsKGJhbm5lcnMpKSBvZmYoKTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gaGFzRm9jdXMoKSB7CiAgICAgICAgaWYgKEhQKSBmb2N1c2VkID0gIWRbSFBdOwogICAgICAgIGVsc2UgaWYgKCFWRSAmJiB0eXBlb2YgZC5oYXNGb2N1cyA9PT0gImZ1bmN0aW9uIikKICAgICAgICAgIGZvY3VzZWQgPSBkLmhhc0ZvY3VzKCk7CiAgICAgICAgcmV0dXJuIGZvY3VzZWQ7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGdldFZBKG9iaiwgc291cmNlKSB7CiAgICAgICAgaWYgKG9iai5pZCAmJiBiYW5uZXJzW29iai5pZF0gJiYgYmFubmVyc1tvYmouaWRdLmlvKSB7CiAgICAgICAgICByZXR1cm4gYmFubmVyc1tvYmouaWRdLnYgfHwgMDsKICAgICAgICB9CgogICAgICAgIHZhciBwZXJjZW50ID0gZ2V0R2VvbWV0cnlWaWV3YWJsZUFyZWEob2JqKS5wZXJjZW50OwoKICAgICAgICByZXR1cm4gcGVyY2VudDsKICAgICAgfQoKICAgICAgLyoqIExJU1RFTkVSUyBTV0lUQ0hFUlMgKiovCiAgICAgIGZ1bmN0aW9uIG9uKCkgewogICAgICAgIGlmIChlbmFibGVkKSByZXR1cm47CiAgICAgICAgaWYgKHVzZUdlb20pIHsKICAgICAgICAgIGV2KHcsICJyZXNpemUiLCBvbldpbmRvd1Jlc2l6ZSk7CiAgICAgICAgICBldih3LCAic2Nyb2xsIiwgb25XaW5kb3dTY3JvbGwpOwogICAgICAgIH0KICAgICAgICBpZiAodXNlT2JzZXJ2ZXIpIHsKICAgICAgICAgIG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGgsIHsKICAgICAgICAgICAgdGhyZXNob2xkOiBbMC4xLCAwLjIsIDAuMywgMC40LCAwLjUsIDAuNiwgMC43LCAwLjgsIDAuOSwgMS4wXSwKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBpZiAoVkUpIGV2KGQsIFZFLCBvblZpc2liaWxpdHlDaGFuZ2UpOwogICAgICAgIGVsc2UgewogICAgICAgICAgZXYodywgImJsdXIiLCBvbkZvY3VzT3V0KTsKICAgICAgICAgIGV2KHcsICJmb2N1cyIsIG9uRm9jdXNJbik7CiAgICAgICAgfQogICAgICAgIGV2KHcsICJ1bmxvYWQiLCBvblVubG9hZCk7CiAgICAgICAgZW5hYmxlZCA9IHRydWU7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIG9mZigpIHsKICAgICAgICBybSh3LCAidW5sb2FkIiwgb25VbmxvYWQpOwogICAgICAgIHJtKHcsICJyZXNpemUiLCBvbldpbmRvd1Jlc2l6ZSk7CiAgICAgICAgcm0odywgInNjcm9sbCIsIG9uV2luZG93U2Nyb2xsKTsKICAgICAgICBpZiAoVkUpIHJtKGQsIFZFLCBvblZpc2liaWxpdHlDaGFuZ2UpOwogICAgICAgIHJtKHcsICJmb2N1cyIsIG9uRm9jdXNJbik7CiAgICAgICAgcm0odywgImJsdXIiLCBvbkZvY3VzT3V0KTsKICAgICAgICBpZiAob2JzZXJ2ZXIpIHsKICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTsKICAgICAgICAgIG9ic2VydmVyID0gbnVsbDsKICAgICAgICB9CiAgICAgICAgY2xlYXJUaW1lb3V0KHRtKTsKICAgICAgICBlbmFibGVkID0gZmFsc2U7CiAgICAgIH0KCiAgICAgIC8qKiBJTlRFUlNFQ1RJT04gT0JTRVJWRVIgVVRJTFMgKiovCiAgICAgIGZ1bmN0aW9uIG8oZSkgewogICAgICAgIG9ic2VydmVyICYmIG9ic2VydmVyLm9ic2VydmUoZSk7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGgoY2hhbmdlcykgewogICAgICAgIGNoYW5nZXMuZm9yRWFjaChmdW5jdGlvbiAoY2hhbmdlUmVjb3JkKSB7CiAgICAgICAgICB2YXIgZWxlbWVudCA9IGNoYW5nZVJlY29yZC50YXJnZXQ7CiAgICAgICAgICB2YXIgaWQgPSBlbGVtZW50LmlkOwoKICAgICAgICAgIGlmIChpZCAmJiBiYW5uZXJzW2lkXSkgewogICAgICAgICAgICBiYW5uZXJzW2lkXS52ID0gTWF0aC5yb3VuZCgKICAgICAgICAgICAgICBjaGFuZ2VSZWNvcmQuaW50ZXJzZWN0aW9uUmF0aW8gKiAxMDAKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBDKCk7CiAgICAgIH0KCiAgICAgIC8qKiBVVElMUyAqKi8KICAgICAgLy8gRyAtIGdldCBlbGVtZW50IGJ5IElEOwogICAgICBmdW5jdGlvbiBHKEUpIHsKICAgICAgICByZXR1cm4gZC5nZXRFbGVtZW50QnlJZChFKTsKICAgICAgfQogICAgICAvLyBldiAtIEVWZW50IHRvIGhhbmRsZQogICAgICBmdW5jdGlvbiBldihlbGVtLCBldmVudE5hbWUsIGNhbGxiYWNrKSB7CiAgICAgICAgZWxlbS5hZGRFdmVudExpc3RlbmVyCiAgICAgICAgICA/IGVsZW0uYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrLCAhMSkKICAgICAgICAgIDogZWxlbS5hdHRhY2hFdmVudCAmJgogICAgICAgICAgICBlbGVtLmF0dGFjaEV2ZW50KCJvbiIgKyBldmVudE5hbWUsIGNhbGxiYWNrKTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gcm0oZWxlbSwgZXZlbnROYW1lLCBjYWxsYmFjaykgewogICAgICAgIGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lcgogICAgICAgICAgPyBlbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjaywgITEpCiAgICAgICAgICA6IGVsZW0uZGV0YWNoRXZlbnQgJiYKICAgICAgICAgICAgZWxlbS5kZXRhY2hFdmVudCgib24iICsgZXZlbnROYW1lLCBjYWxsYmFjayk7CiAgICAgIH0KICAgICAgLy8gb2JqIGxlbmd0aAogICAgICBmdW5jdGlvbiBsKG9iaikgewogICAgICAgIHZhciBzID0gMCwKICAgICAgICAgIGtleTsKICAgICAgICBmb3IgKGtleSBpbiBvYmopIHsKICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkgcysrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gczsKICAgICAgfQogICAgICAvL2VsZW0gc3RhdGUKICAgICAgZnVuY3Rpb24gcyhlbGVtLCBzdGF0ZSkgewogICAgICAgIHJldHVybiAhKHR5cGVvZiBlbGVtW3N0YXRlXSA9PSB1bmRlZmluZWQgfHwgZWxlbVtzdGF0ZV0gIT09IHRydWUpOwogICAgICB9CiAgICAgIC8vdHJhY2sKICAgICAgZnVuY3Rpb24gdHIocGl4ZWxzKSB7CiAgICAgICAgaWYgKHBpeGVscyAmJiBwaXhlbHMubGVuZ3RoKSB7CiAgICAgICAgICBmb3IgKGNudCA9IHBpeGVscy5sZW5ndGggLSAxOyBjbnQgPj0gMDsgY250LS0pIHsKICAgICAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gcGl4ZWxzW2NudF07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNlcnZlVHlwZSgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHdpbmRvdyA9PT0gd2luZG93LnRvcCkgewogICAgICAgICAgICByZXR1cm4gIk9OX1BBR0UiOwogICAgICAgICAgfQoKICAgICAgICAgIHZhciBjdXJyZW50V2luZG93ID0gd2luZG93OwoKICAgICAgICAgIHdoaWxlIChjdXJyZW50V2luZG93ICE9PSBjdXJyZW50V2luZG93LnBhcmVudCkgewogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgY3VycmVudFdpbmRvdy5kb2N1bWVudC5kb21haW4gIT09CiAgICAgICAgICAgICAgY3VycmVudFdpbmRvdy5wYXJlbnQuZG9jdW1lbnQuZG9tYWluCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgIHJldHVybiAiWERfRlJBTUUiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGN1cnJlbnRXaW5kb3cgPSBjdXJyZW50V2luZG93LnBhcmVudDsKICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gIlNfRlJBTUUiOwogICAgICAgIH0gY2F0Y2ggKGUpIHt9CgogICAgICAgIHJldHVybiAiWERfRlJBTUUiOwogICAgICB9CgogICAgICAvLyBnZW9tZXRyeSB2aWV3YWJpbGl0eQogICAgICBmdW5jdGlvbiBnZXRHZW9tZXRyeVZpZXdhYmxlQXJlYShlbGVtZW50LCBjb250ZXh0V2luZG93KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHZhciByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgIHZhciBhcmVhID0gZ2V0QXJlYShyZWN0KTsKICAgICAgICAgIHZhciBjdXJyZW50V2luZG93ID0gd2luZG93OwoKICAgICAgICAgIGNvbnRleHRXaW5kb3cgPSBjb250ZXh0V2luZG93IHx8IHdpbmRvdy50b3A7CgogICAgICAgICAgd2hpbGUgKGN1cnJlbnRXaW5kb3cgIT09IGNvbnRleHRXaW5kb3cpIHsKICAgICAgICAgICAgLy8gMSkgZ2V0IGN1cnJlbnQgZnJhbWUgY29vcmRpbmF0ZXMgaW5zaWRlIGl0cyBwYXJlbnQKICAgICAgICAgICAgLy8gMikgZ2V0IGVsZW1lbnQgY29vcmRpbmF0ZXMgcmVsYXRpdmUgdG8gcGFyZW50CiAgICAgICAgICAgIC8vIDMpIGdldCB2aXNpYmxlIGVsZW1lbnQgY29vcmRpbmF0ZXMgcmVsYXRpdmUgdG8gcGFyZW50CiAgICAgICAgICAgIHZhciBjdXJyZW50UmVjdCA9IGN1cnJlbnRXaW5kb3cuZnJhbWVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwoKICAgICAgICAgICAgcmVjdCA9IGdldFJSKHJlY3QsIGN1cnJlbnRSZWN0KTsKICAgICAgICAgICAgcmVjdC5sZWZ0ID0gTWF0aC5tYXgoY3VycmVudFJlY3QubGVmdCwgcmVjdC5sZWZ0KTsKICAgICAgICAgICAgcmVjdC5yaWdodCA9IE1hdGgubWluKGN1cnJlbnRSZWN0LnJpZ2h0LCByZWN0LnJpZ2h0KTsKICAgICAgICAgICAgcmVjdC50b3AgPSBNYXRoLm1heChjdXJyZW50UmVjdC50b3AsIHJlY3QudG9wKTsKICAgICAgICAgICAgcmVjdC5ib3R0b20gPSBNYXRoLm1pbihjdXJyZW50UmVjdC5ib3R0b20sIHJlY3QuYm90dG9tKTsKCiAgICAgICAgICAgIGlmIChyZWN0LnJpZ2h0IDwgcmVjdC5sZWZ0KSB7CiAgICAgICAgICAgICAgcmVjdC5yaWdodCA9IHJlY3QubGVmdDsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVjdC5ib3R0b20gPCByZWN0LnRvcCkgewogICAgICAgICAgICAgIHJlY3QuYm90dG9tID0gcmVjdC50b3A7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGN1cnJlbnRXaW5kb3cgPSBjdXJyZW50V2luZG93LnBhcmVudDsKICAgICAgICAgIH0KICAgICAgICAgIHJlY3QgPSBnZXRSVkEocmVjdCwgY29udGV4dFdpbmRvdyk7CgogICAgICAgICAgdmFyIHZpZXdhYmxlQXJlYSA9IGdldEFyZWEocmVjdCk7CgogICAgICAgICAgcmVjdC5wZXJjZW50ID0gKHZpZXdhYmxlQXJlYSAvIGFyZWEpICogMTAwOwoKICAgICAgICAgIHJldHVybiByZWN0OwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIHJldHVybiB7IGxlZnQ6IDAsIHJpZ2h0OiAwLCB0b3A6IDAsIGJvdHRvbTogMCwgcGVyY2VudDogMCB9OwogICAgICAgIH0KICAgICAgfQoKICAgICAgZnVuY3Rpb24gZ2V0QXJlYShyZWN0KSB7CiAgICAgICAgcmV0dXJuIChyZWN0LnJpZ2h0IC0gcmVjdC5sZWZ0KSAqIChyZWN0LmJvdHRvbSAtIHJlY3QudG9wKTsKICAgICAgfQogICAgICAvLyByZWxhdGl2ZSByZWN0CiAgICAgIGZ1bmN0aW9uIGdldFJSKHJlY3QsIGNvbnRleHRSZWN0KSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGxlZnQ6IHJlY3QubGVmdCArIGNvbnRleHRSZWN0LmxlZnQsCiAgICAgICAgICByaWdodDogcmVjdC5yaWdodCArIGNvbnRleHRSZWN0LmxlZnQsCiAgICAgICAgICB0b3A6IHJlY3QudG9wICsgY29udGV4dFJlY3QudG9wLAogICAgICAgICAgYm90dG9tOiByZWN0LmJvdHRvbSArIGNvbnRleHRSZWN0LnRvcCwKICAgICAgICB9OwogICAgICB9CiAgICAgIC8vIHJlbGF0aXZlIHZpZXdhYmxlIGFyZWEKICAgICAgZnVuY3Rpb24gZ2V0UlZBKHJlY3QsIGNvbnRleHRXaW5kb3cpIHsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgdmFyIGNvbnRleHRTaXplID0gZ2V0VlMoY29udGV4dFdpbmRvdyk7CgogICAgICAgIHJlc3VsdC5sZWZ0ID0gTWF0aC5tYXgoMCwgcmVjdC5sZWZ0KTsKICAgICAgICByZXN1bHQucmlnaHQgPSBNYXRoLm1pbihjb250ZXh0U2l6ZS53aWR0aCwgcmVjdC5yaWdodCk7CiAgICAgICAgcmVzdWx0LnRvcCA9IE1hdGgubWF4KDAsIHJlY3QudG9wKTsKICAgICAgICByZXN1bHQuYm90dG9tID0gTWF0aC5taW4oY29udGV4dFNpemUuaGVpZ2h0LCByZWN0LmJvdHRvbSk7CgogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgICAgLy8gdmlld3BvcnQgc2l6ZQogICAgICBmdW5jdGlvbiBnZXRWUyh3KSB7CiAgICAgICAgdmFyIHZpZXdQb3J0U2l6ZSA9IHsKICAgICAgICAgIHdpZHRoOiBJbmZpbml0eSwKICAgICAgICAgIGhlaWdodDogSW5maW5pdHksCiAgICAgICAgfTsKICAgICAgICB2YXIgZCA9IHcuZG9jdW1lbnQ7CgogICAgICAgIGlmICghaXNOYU4oZC5ib2R5LmNsaWVudFdpZHRoKSAmJiBkLmJvZHkuY2xpZW50V2lkdGggPiAwKSB7CiAgICAgICAgICB2aWV3UG9ydFNpemUud2lkdGggPSBkLmJvZHkuY2xpZW50V2lkdGg7CiAgICAgICAgfQogICAgICAgIGlmICghaXNOYU4oZC5ib2R5LmNsaWVudEhlaWdodCkgJiYgZC5ib2R5LmNsaWVudEhlaWdodCA+IDApIHsKICAgICAgICAgIHZpZXdQb3J0U2l6ZS5oZWlnaHQgPSBkLmJvZHkuY2xpZW50SGVpZ2h0OwogICAgICAgIH0KICAgICAgICBpZiAoCiAgICAgICAgICAhIWQuZG9jdW1lbnRFbGVtZW50ICYmCiAgICAgICAgICAhIWQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoICYmCiAgICAgICAgICAhaXNOYU4oZC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpCiAgICAgICAgKSB7CiAgICAgICAgICB2aWV3UG9ydFNpemUud2lkdGggPSBkLmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDsKICAgICAgICB9CiAgICAgICAgaWYgKAogICAgICAgICAgISFkLmRvY3VtZW50RWxlbWVudCAmJgogICAgICAgICAgISFkLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgJiYKICAgICAgICAgICFpc05hTihkLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpCiAgICAgICAgKSB7CiAgICAgICAgICB2aWV3UG9ydFNpemUuaGVpZ2h0ID0gZC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OwogICAgICAgIH0KICAgICAgICBpZiAoISF3LmlubmVyV2lkdGggJiYgIWlzTmFOKHcuaW5uZXJXaWR0aCkpIHsKICAgICAgICAgIHZpZXdQb3J0U2l6ZS53aWR0aCA9IE1hdGgubWluKHZpZXdQb3J0U2l6ZS53aWR0aCwgdy5pbm5lcldpZHRoKTsKICAgICAgICB9CiAgICAgICAgaWYgKCEhdy5pbm5lckhlaWdodCAmJiAhaXNOYU4ody5pbm5lckhlaWdodCkpIHsKICAgICAgICAgIHZpZXdQb3J0U2l6ZS5oZWlnaHQgPSBNYXRoLm1pbigKICAgICAgICAgICAgdmlld1BvcnRTaXplLmhlaWdodCwKICAgICAgICAgICAgdy5pbm5lckhlaWdodAogICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiB2aWV3UG9ydFNpemU7CiAgICAgIH0KCiAgICAgIC8qKiBQVUJMSUMgSU5URVJGQUNFICoqLwoKICAgICAgcmV0dXJuIHsKICAgICAgICBJOiBJLAogICAgICAgIHY6IDEsCiAgICAgIH07CiAgICB9KSgpOwogIH0pKHdpbmRvdywgZG9jdW1lbnQsICdtYWlscnUnKQogIH1jYXRjaCAoZSkge30KPC9zY3JpcHQ+CiAgCgo8c2NyaXB0PgogIChmdW5jdGlvbihwcmVmaXgpewogICAgdHJ5ewogICAgICAKICAgICAgZnVuY3Rpb24gZ2V0QWRzQ29udGFpbmVycygpIHsKICAJCQl2YXIgQURTX0NMQVNTID0gcHJlZml4ICsgJy12aXNpYmlsaXR5LWNoZWNrMicsCiAgCQkJCUFEU19DT1VOVEVSX0NMQVNTID0gQURTX0NMQVNTICsgJy1jb3VudGVyJywKICAJCQkJQURTX0NBTExCQUNLX0NMQVNTID0gQURTX0NMQVNTICsgJy1jYWxsYmFjaycsCiAgCQkJCUNPVU5URVJfQVRUUiA9ICdkYXRhLWNvdW50ZXInLAogIAkJCQlDT1VOVEVSX0FUVFJfVU5ERVRFUk1JTkVEID0gQ09VTlRFUl9BVFRSICsgJy11bicsCiAgCQkJCUNPVU5URVJfQVRUUl9OT05WSUVXQUJMRSA9IENPVU5URVJfQVRUUiArICctbnYnLAogIAkJCQlDQUxMQkFDS19BVFRSID0gJ2RhdGEtY2FsbGJhY2snLAogIAkJCQlPQlNFUlZFUl9BVFRSID0gJ2RhdGEtb2JzZXJ2ZXInLAogIAkJCQljb250YWluZXJzID0gW10sCiAgCQkJCWNvdW50YWJsZXMgPSBbXSwKICAJCQkJaSwgaywgY291bnRlcnMsIF9jb3VudGVyLCBfb2JzZXJ2ZXI7CiAgIAogIAkJCWNvbnRhaW5lcnMgPSBnZXRCeUNsYXNzKGRvY3VtZW50LCBBRFNfQ0xBU1MpOwogIAkJCWZvciAoaSA9IGNvbnRhaW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAJCQkJdmFyIGNvdW50ZXJzID0gZ2V0QnlDbGFzcyhjb250YWluZXJzW2ldLCBBRFNfQ09VTlRFUl9DTEFTUywgJ3NwYW4nKTsKICAJCQkJX2NvdW50ZXIgPSBjb250YWluZXJzW2ldLmdldEF0dHJpYnV0ZShDT1VOVEVSX0FUVFIpOwogIAkJCQlfb2JzZXJ2ZXIgPSBjb250YWluZXJzW2ldLmhhc0F0dHJpYnV0ZShPQlNFUlZFUl9BVFRSKTsKICAJCQkJY291bnRhYmxlc1tpXSA9IHsKICAJCQkJCWVsOiBjb250YWluZXJzW2ldLAogIAkJCQkJcGl4ZWxzOiBbXSwKICAJCQkJCXBpeGVsc191bmRldGVybWluZWQ6IFtdLAogIAkJCQkJcGl4ZWxzX25vbnZpZXdhYmxlOiBbXSwKICAJCQkJCW9ic2VydmVyOiBfb2JzZXJ2ZXIKICAJCQkJfTsKICAJCQkJaWYgKF9jb3VudGVyKSBjb3VudGFibGVzW2ldLnBpeGVscy5wdXNoKF9jb3VudGVyKTsKICAJCQkJZm9yIChrID0gY291bnRlcnMubGVuZ3RoIC0gMTsgayA+PSAwOyBrLS0pIHsKICAJCQkJCWlmIChjb3VudGVyc1trXS5wYXJlbnROb2RlID09PSBjb3VudGFibGVzW2ldLmVsKSB7CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzLnB1c2goX2NvdW50ZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY291bnRlciA9IGNvdW50ZXJzW2tdLmdldEF0dHJpYnV0ZShDT1VOVEVSX0FUVFJfVU5ERVRFUk1JTkVEKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzX3VuZGV0ZXJtaW5lZC5wdXNoKF9jb3VudGVyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSX05PTlZJRVdBQkxFKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzX25vbnZpZXdhYmxlLnB1c2goX2NvdW50ZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogIAkJCQl9CiAgCQkJCXZhciBjYWxsYmFjayA9IGdldEJ5Q2xhc3MoY29udGFpbmVyc1tpXSwgQURTX0NBTExCQUNLX0NMQVNTLCAnc3BhbicpOwogIAkJCQlpZiAoY2FsbGJhY2tbMF0pIHsKICAJCQkJICB2YXIgX2NhbGxiYWNrID0gY2FsbGJhY2tbMF0uZ2V0QXR0cmlidXRlKENBTExCQUNLX0FUVFIpOwogIAkJCQkgIGlmIChfY2FsbGJhY2sgJiYgd2luZG93LlJCX0NBTExCQUNLUyAmJiB3aW5kb3cuUkJfQ0FMTEJBQ0tTW19jYWxsYmFja10pIHsKICAJCQkJICAgIGNvdW50YWJsZXNbaV0uY2FsbGJhY2sgPSB3aW5kb3cuUkJfQ0FMTEJBQ0tTW19jYWxsYmFja107CiAgCQkJCSAgfQogIAkJCQl9CiAgCQkJCWlmICghY291bnRhYmxlc1tpXS5waXhlbHMubGVuZ3RoKSBjb3VudGFibGVzLnNwbGljZShpLCAxKTsKICAJCQl9CiAgIAogIAkJCXJldHVybiBjb3VudGFibGVzOwogIAkJfQogICAKICAJCWZ1bmN0aW9uIGdldEJ5Q2xhc3MocGFyZW50LCBjaGlsZENsYXNzTmFtZSwgdGFnTmFtZSkgewogIAkJCWlmIChwYXJlbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSkgewogIAkJCQlyZXR1cm4gcGFyZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2hpbGRDbGFzc05hbWUpOwogIAkJCX0gZWxzZSBpZiAocGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwpIHsKICAgCiAgCQkJCXJldHVybiBwYXJlbnQucXVlcnlTZWxlY3RvckFsbCgnLicgKyBjaGlsZENsYXNzTmFtZSk7CiAgCQkJfSBlbHNlIHsKICAJCQkJdmFyIGVscyA9IFtdOwogIAkJCQl2YXIgdG1wID0gcGFyZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZ05hbWUgPyB0YWdOYW1lIDogIioiKTsKICAJCQkJdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cCgiKF58XHMpIiArIGNoaWxkQ2xhc3NOYW1lICsgIihcc3wkKSIpOwogIAkJCQlmb3IgKHZhciBpID0gMDsgaSA8IHRtcC5sZW5ndGg7IGkrKykgewogIAkJCQkJaWYgKHJlZ2V4LnRlc3QodG1wW2ldLmNsYXNzTmFtZSkpIHsKICAJCQkJCQllbHMucHVzaCh0bXBbaV0pOwogIAkJCQkJfQogIAkJCQl9CiAgCQkJCXJldHVybiBlbHM7CiAgCQkJfQogIAkJfQogICAKICAJCVJCQy5JKGdldEFkc0NvbnRhaW5lcnMoKSk7CiAgICAgIAogICAgfWNhdGNoKGUpe30KICB9KCdtYWlscnUnKSkKPC9zY3JpcHQ+CgoKCgo8c3R5bGU+CiAgI3RyZy1iLTE1NTI4NzI3NS01MzA1Nzk3NjVbZGF0YS1oaWRlLTUzMDU3OTc2NV0gewogICAgcG9zaXRpb246IGFic29sdXRlIWltcG9ydGFudDsKICAgIGxlZnQ6IC05OTk5cHghaW1wb3J0YW50OwogICAgei1pbmRleDogLTEhaW1wb3J0YW50OwogICAgd2lkdGg6IDEwMCU7CiAgfQoKICAjeWFuZGV4X2FkX1ItMTQ3MDIzLTI2N181MzA1Nzk3NjUwIHsKCSAgYm9yZGVyLXJhZGl1czogOHB4IWltcG9ydGFudDsKICB9Cjwvc3R5bGU+CjxkaXYgaWQ9InlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1MC1waXhlbDEiPgogIDxkaXYgaWQ9InlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1MC1waXhlbDIiPgogICAgPGRpdiBpZD0ieWFuZGV4X2FkX1ItMTQ3MDIzLTI2N181MzA1Nzk3NjUwIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDowO3dpZHRoOjEwMCU7aGVpZ2h0OjMwMHB4OyI+PGRpdiBzdHlsZT0id2lkdGg6IDEwMCU7Ij48L2Rpdj48L2Rpdj4KICA8L2Rpdj4KPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAoZnVuY3Rpb24gKHcsIGQsIG4sIHMsIHQpIHsKICAgIHZhciB0aW1lU3RhcnQgPSArbmV3IERhdGUoKTsKCiAgICB2YXIgZmlyc3REaXJlY3RSZW5kZXIgPSB0cnVlOwogICAgdmFyIGZhbGxiYWNrSW52b2tlZCA9IGZhbHNlOwogICAgdmFyIGZhbGxiYWNrVGltZW91dCA9IG51bGw7CgogICAgdmFyIGZhbGxiYWNrVHlwZSA9IHsKICAgICAgRk9SQ0U6ICdmb3JjZScsCiAgICAgIFVOU1VQUE9SVDogJ3Vuc3VwcG9ydCcsCiAgICAgIFRJTUVPVVQ6ICd0aW1lb3V0JywKICAgICAgRVJST1I6ICdlcnJvcicsCiAgICAgIEVNUFRZOiAnZW1wdHknCiAgICB9OwoKICAgIGlmICghdy5NYXAgfHwgKHcuYXR0YWNoRXZlbnQgJiYgIXcuYWRkRXZlbnRMaXN0ZW5lcikpIHsgLy8gImJhZCIgSUUKICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgZmFsbGJhY2soZmFsbGJhY2tUeXBlLlVOU1VQUE9SVCk7CiAgICAgIH0sIDApOwogICAgICByZXR1cm47CiAgICB9CgoJCXZhciBmYWxsYmFja0RlbGF5ID0gMjUwMDsKCiAgICBpZiAoZmFsbGJhY2tEZWxheSkgewogICAgICBmYWxsYmFja1RpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICBmYWxsYmFjayhmYWxsYmFja1R5cGUuVElNRU9VVCk7CiAgICAgIH0sIGZhbGxiYWNrRGVsYXkpOwogICAgfSBlbHNlIHsKICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgZmFsbGJhY2soZmFsbGJhY2tUeXBlLkZPUkNFKTsKICAgICAgfSwgMCk7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICBmdW5jdGlvbiBnZXRCcm93c2VyTGFiZWwoKSB7CiAgICAgIHZhciBicm93c2VyID0gJ3Vuayc7CiAgICAgIHZhciB1YSA9IG5hdmlnYXRvci51c2VyQWdlbnQ7CgogICAgICBpZiAodWEuaW5kZXhPZignT3BlcmEnKSAhPT0gLTEgfHwgdWEuaW5kZXhPZignT1BSJykgIT09IC0xKSB7CiAgICAgICAgYnJvd3NlciA9ICdvcHInOwogICAgICB9IGVsc2UgaWYgKHVhLmluZGV4T2YoJ0VkZ2UnKSAhPT0gLTEpIHsKICAgICAgICBicm93c2VyID0gJ2VkZyc7CiAgICAgIH0gZWxzZSBpZiAodWEuaW5kZXhPZignQ2hyb21lJykgIT09IC0xKSB7CiAgICAgICAgYnJvd3NlciA9ICdjaHInOwogICAgICB9IGVsc2UgaWYgKHVhLmluZGV4T2YoJ1NhZmFyaScpICE9PSAtMSkgewogICAgICAgIGJyb3dzZXIgPSAnc2ZyJzsKICAgICAgfSBlbHNlIGlmICh1YS5pbmRleE9mKCdGaXJlZm94JykgIT09IC0xKSB7CiAgICAgICAgYnJvd3NlciA9ICdmZic7CiAgICAgIH0gZWxzZSBpZiAoKHVhLmluZGV4T2YoJ01TSUUnKSAhPT0gLTEpIHx8ICghIWRvY3VtZW50LmRvY3VtZW50TW9kZSA9PT0gdHJ1ZSkpIHsKICAgICAgICBicm93c2VyID0gJ2llJzsKICAgICAgfQoKICAgICAgcmV0dXJuIGJyb3dzZXI7CiAgICB9CgogICAgZnVuY3Rpb24gbG9nUmVuZGVyKGZhbGxiYWNrVHlwZSkgewogICAgICB2YXIgdGltZUVuZCA9ICtuZXcgRGF0ZSgpOwogICAgICB2YXIgZHVyYXRpb24gPSB0aW1lRW5kIC0gdGltZVN0YXJ0OwogICAgICB2YXIgYnJvd3NlciA9IGdldEJyb3dzZXJMYWJlbCgpOwogICAgICB2YXIgc2xvdElkID0gJzEyOTkyNzQnOwogICAgICB2YXIgaXByZWZpeCA9ICdiLScgKyBicm93c2VyICsgJ19zLScgKyBzbG90SWQ7CgogICAgICB2YXIgaWRhdGEgPSB7fTsKCiAgICAgIGlkYXRhW2lwcmVmaXggKyAnX3JlbmRlciddID0gZHVyYXRpb247CgogICAgICBpZiAoZmFsbGJhY2tUeXBlKSB7CiAgICAgICAgaWRhdGFbaXByZWZpeCArICdfJyArIGZhbGxiYWNrVHlwZV0gPSBkdXJhdGlvbjsKCiAgICAgICAgaWYgKCcnKSB7CiAgICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ19tcmsnXSA9IGR1cmF0aW9uOwogICAgICAgICAgaWRhdGFbaXByZWZpeCArICdfJyArIGZhbGxiYWNrVHlwZSArICdfbXJrJ10gPSBkdXJhdGlvbjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWRhdGFbaXByZWZpeCArICdfdHJnJ10gPSBkdXJhdGlvbjsKICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnXycgKyBmYWxsYmFja1R5cGUgKyAnX3RyZyddID0gZHVyYXRpb247CgogICAgICAgICAgaWYgKCcnKSB7CiAgICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnX3RyZ19oaSddID0gZHVyYXRpb247CiAgICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnXycgKyBmYWxsYmFja1R5cGUgKyAnX3RyZ19oaSddID0gZHVyYXRpb247CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ190cmdfbG8nXSA9IGR1cmF0aW9uOwogICAgICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ18nICsgZmFsbGJhY2tUeXBlICsgJ190cmdfbG8nXSA9IGR1cmF0aW9uOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ19kaXJlY3QnXSA9IGR1cmF0aW9uOwoKICAgICAgICBpZiAoJycpIHsKICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnX2RpcmVjdF9oaSddID0gZHVyYXRpb247CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnX2RpcmVjdF9sbyddID0gZHVyYXRpb247CiAgICAgICAgfQogICAgICB9CgogICAgICBpZiAody54cmF5KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmICh4cmF5LnNlbmRJbW1lZGlhdGVseSkgewogICAgICAgICAgICB4cmF5LnNlbmRJbW1lZGlhdGVseSgnYWRtYW4tdGltZScsIHsKICAgICAgICAgICAgICBpOiBpZGF0YQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHhyYXkuc2VuZCgnYWRtYW4tdGltZScsIHsKICAgICAgICAgICAgICBpOiBpZGF0YQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gZmFsbGJhY2sodHlwZSkgewogICAgICBpZiAoZmFsbGJhY2tJbnZva2VkKSByZXR1cm47CiAgICAgIGNsZWFyVGltZW91dChmYWxsYmFja1RpbWVvdXQpOwogICAgICBmYWxsYmFja0ludm9rZWQgPSB0cnVlOwoKICAgICAgdmFyIHRyZ0IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHJnLWItMTU1Mjg3Mjc1LTUzMDU3OTc2NSIpOwogICAgICB2YXIgdHJnQjIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHJnLWItMTU1Mjg3Mjc1LTUzMDU3OTc2NTIiKTsKICAgICAgdmFyIHRyZ1lhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1MCIpOwogICAgICB2YXIgdHJnWWFXcmFwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1MC1waXhlbDEiKTsKCiAgICAgIGlmICh0cmdZYSkgewogICAgICAgIHRyZ1lhV3JhcC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICB9CgogICAgICBpZiAodHJnQikgewogICAgICAgIGlmICh0cmdCLmdldEF0dHJpYnV0ZSgiZGF0YS1oaWRlLTUzMDU3OTc2NSIpID09PSAiaGlkZS1iYW5uZXIiKSB7CiAgICAgICAgICB0cmdCLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1oaWRlLTUzMDU3OTc2NSIpOwogICAgICAgIH0KICAgICAgICB0cmdCLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwogICAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdHJnLWItMTU1Mjg3Mjc1LTUzMDU3OTc2NSAudHJnLXYtYmFubmVyJyk7CiAgICAgICAgaWYgKGNvbnRhaW5lci5sZW5ndGgpIHsKICAgICAgICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lclswXSB8fCBudWxsOwogICAgICAgIH0KICAgICAgICBpZiAoY29udGFpbmVyICYmIGNvbnRhaW5lci5wbGF5VmlkZW9DaGVjayAmJiB0eXBlb2YgY29udGFpbmVyLnBsYXlWaWRlb0NoZWNrID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICBjb250YWluZXIucGxheVZpZGVvQ2hlY2soKTsKICAgICAgICB9CiAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNibkJId3JWQUFBQXQ3NmtUMDAxM1JNZGxINTNPMHBRSDNjVEttYjZsVDRnTVlwTHVqa2tXUWlHa0RtZ2RHR0RwdGdTb1lSaHMwUnpUbFA4WXZrcFItUFRDcDMwOUJlUjQ3a0NSOEZUZDVwTzYxdE54dGQ3NTZPV0psVEEzUHlQalN5VkF5OVpSazRSa0JOQW00R25jdl9DYmlfYTNrdExNUU9VNmp0RlJuaWhjUU5tVW8zR005NGdZT05FV2tvRzNhUV9IQzI0aHB2dFZsc1R3M1dQVklJOTJMeXc5bkpNZ0h5OXJzaEJHMkh1VDJ4QWF0MWhYcWg2TTdxaUtZWXF5S210N2dnci03QzFIYVNBOUl0dmh0c0RuTlJKS0lnWE4yejN2U3pPSXMtRjR1STlfcjRXaTFvLmdpZiI7CiAgICAgICAgUkJDLkkoewogICAgICAgICAgICBlbDogdHJnQiwKICAgICAgICAgICAgcGl4ZWxzOiAgWwogICAgICAgICAgICAnaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM2ZXNXhocklCQUFBUG5sVWlYeUlZS3Vyb0JIbmdPbEZKRk96VlYtZG8yQ2lLYWxDUUdGaWRlN3Z1ZHJNTy1kWFNnVlFQSy1WeHhzQ2pKR1FDaDAtQWRwbXg5b1BtQzAzX3h5SWR4YkpZN3VrZmd3VFMwR3Q1TFRoLTFRbEZ6aTNDYzNfT1NxYWV5TUd6QVhiZGRzdnRQZFRYMUd5ZXkxTzVNcG1mUkhkSFJIVXhXeEJrXzhCbDRlaUV2RUpwUnAzNWZiWmNsXzdzblVyaE11SFI5c0VMTlJ4Z1RvSFpXeVVvVVB4dFVWbXBKVG9naU5Pd1FENS1LQ3BaZEs3UnJYNTZIYVczZWl4bURfa0ZfYjB5OVhmVWNXczJuVXpXazNoSm92MlhQQ2ZtemVUeDdUXzRCQlB6TWd4Y182OENQT29CM05TZjlwQkMyaXVGSFp1YXFXakN1Rmx4dnBoeGd6OGVNelNJRi1tcW9iR0RuYlJWMFhOWFREZ1lRY2VoZG5QYTYzQUFqSGphY0VZN2RTQnY1M2tiWkluNU82cGF2b2ZOR1JNelpMRDRZSU5oWmNLVFNienN3aDY4eHlqY3NXQlhtVXY0LWtRQ21WWWdjNENnN29rQjRWNm1vUUxfVjlQRjBQcWRKaFJaTlJvVHFkYmJJcWc5dXhtUnNMaFJncGZTampaRjAxOWpWT1lncTVLOVQ4TTB2eDRhbjJoU2NDVmpSbGVGenRKSlJjdjBzZnlwN0Iyel8yc1J6OHhVNTA2VHdPeWp6MGJJTEJqSFBkQmtwMHhXLTFib2wwS3l1X19MYWZSejNaZFpkZ0JERzM4Q05fNXBZam1lOGJod3RRaXhrNFdWYWtGUXpjaU1CQU9SMGxWQVNqNVlvdHFuYzB0bkVzRVJkdGhJa01BekkydFNpMGlJeGVleWlYVEhsQVZyYjdrSXVGZVRXRTVRcV8tWV9XTlZHYmI3ZEQ0ZVlBZVl6LUZNRmU1MFpKX21za1kyWi1EazBvdWFjY18yLUQtdXBtWUJvNHU0VkhsV1pGXzhqbDJwbUdtdTlHSHJYUUowdl9yUEE5clB3Tms0SXU2RlR1cnBPdzZiM0RXSDk4U24zTVQwaW9nWmNzcjZSSTA2RDVLNWtadzFwaDE5dXQ3TjVrdFljcUpNMDZ0bG5oTklrNmFPenFYaFJYTi03WGk2ZnNPQ1lVODlYNXhwTmgxNnk3Rk5tVEdwYkNFYWdzVGFNQk1iUGdDSU44RnRNako4anFIZDlWOWdXS0U1VkNURVFHUjdGV0ZvZXh2blhqdkh1bF9rTHFJX2xiQXVSOEI2TFBZenRhM0ZVSXdrSjhDZnFxQklhOFh0ZUVzZTRkR2RGaWdNUVZZcC1wQUF5aVhCU2tfdEtSTVZwZlJEQ1ZhdlY3NWVyVzhVN19GWXhLQ0J6T3FsWUJia3lpOVZKdWVLdC1kMW41aWdtc09ONWlPb3UxMk5VR0pjNGJ0UzN0ZnJDY2U5NzZweUZfc3pjWDBpZ3A5OEdBWkdMcm9xOVRQcTVCLVB1ekJXb254TlpoXzhZZHVfcUVkcGFxUFVpVU9BVzl2UDQzODcwaHptSXA1TzBQNjllUzRYeFBaTkFVTDVxWE1KeFVBT0dVWEdnazZCVEk4NUQtT0FuYVRLam81cXFjZ1dScjRIbTJqaWN6RUxnWXRPZ2V1WWgwcmt6TjNUOTZ0d0MwNTRhUWNrbl9QV2s1OEJmUGRJNWY1Q3NrdUtOWmxfZktYS2R6d29hdk5heS1CT3FqNzFoYmlwd2FLVjd2azZOSmZFNDBFWUtvWkYtbUhJZ21tM2wyQTdoNksxWVJQakpzYmJoSGxLaDFKUXplOWVMbk5Qc0FvRl9oWHN6SEhBbkNvSU94V1l3cjMxUEhYUko4ZWRmRWFDd0REM0R1OVNhVXo3bXZyVkxrQ0F4UG9xWTZoMl9ya05SSmNHNkY1WmllUnpUaWplRm94dHVralp2eTVoclRHSWFuV2NvR2ViZTA0SjVXSmhDYktTMXpDQUVyeHNXWWxSbGFMUjMxaVZoX1FjcXpMNTBLSVBXQmlTTV9JXzNIQjNwV2NvTm1ZMzF6ZEtsS2ZiZ1A1ME1jZm1VaTNEbkxabUF4M3kzRjRuSTlFeVBfelNYSm1wR3BtT1ZCNFZWSDdYVjBUZGN2T1cyZkF3RkdSaW85OWRHaHgxVVkuZ2lmJywgJ2h0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNhNmpFaW5WQUFBQWt0UHpuODhfdTZpYzZpYVNqdEx6bUpzNm1McEhFcHNlZWlhaFVqekFBaFVWOHIzQUdJTVdCVjFGdXZ6SlVqRUNqN2ZGeVo2VmoxbmVOQk1uMXM3SlZOYWZOMkZkVEw0MEFRcS1OTGVGcXM2M1IxZHVHLVNtekdnZjBDQ1hRY2RvVW9PUE10OE1CUTJYOG9HcVFocEhTR3gyaVRwdmlsRWJ5OHppZTVnUl9DNEh3N3hNSXpXT3gtcS0xNHRKRWRzUFQzekxMTkJqckxaa3hCeTlWUnF3Qkl3bnMzRFpkcFNVX2tHRHJLdGhiVVVmcDlBNDZYT0Q3WnZBVVRhZWFhN3VYQ1FDZEVHR3BHYmRjeWZVSzNSeUY2X3djNzF3UDNOZUJPR2t6RXNVb3RnLmdpZicsCiAgICAgICAgICAgICdodHRwczovL3ZrLmNvbS9hbXRfbG5reD9kPXNUVzVlME0qcTlRVjdoTjdkSEVMb0hYRTFVQU5LZXVRWTVVVE0zQ1h2MG1iNVpKOEU1VFV3OU9DSnd2clVGRDV0ci9yelRMYThPeVF6VFRycTIyb3UxakpMeXN4Wk80ODVjdDFvbGg0VXI3THNEZ1FsTDdTam13V2w0aVk3Nks2VVFMR2Y4dHYxdlRtSzhmbE5GS3dQcGFHd3JSekE4TXU4VDk5U21zVEpSUUJ2MkdEYkdsZ1RyN2ZsczM2eDZhSEYvVnFmSk9DNjQyWGZQMFk4VmJUKnN1Si9sSzd4c1BVUGsxS1lud1JPU1hsYmt6ZVRnSlNDZmJWbmJQUFI0SnZpeCp6N2J4S1ZId3g0dDlPUS9oTzY1WEJ6V3N3V3pINGQ3aE1CRUQ5bDRXR1psa1l2RTMxZlJNejVQeElUKmk4MUp3S2NCRXdPOVA1T25Vc0E3dTZ3VXNkeElmejNBSXpKS2JYN2YwTHVBUWRJTzhoV2xKRnJHRWpraWF0M0MxQUE4KjhldHhpUnFad2cvdjdNZE54ZDFNNTQ0TkdFYlkyb3lPZVUveip0N3JiZ3hTZ0xuUWcwR0tEc3VYcHpLZXNrenZOZXZISlEvMUMwM2hrUlVhZ0w4V0RpcEFQcSprT0ZuMDZ4TEJ5OXhnclFha204cUFlS0lRYm5QMHJuSDVyWmlXQjhCSkJFeFZDZkdOWDZsb2JoN1BlaGtTbjRaUGE5TUhtbExLTUZhbnM4RyoqSVlIQ2t1djRTd0s2Q05oTEIvZFBnckxuN3hVT0FRRTEwdjRCKnovbEdDMk9mSkJYNnV2d294MUM0Ulg5cGhRWkQ4SVU0SzhwQVNzN2ZFbHZEakVXalBUN01kOVoyZU5QaDcvNzRYQ1NleTNkU1ZIQUl5RVhSWWJyR0pnLSZyPTE1MDE4Nzc0MDQmY3A9YWVzMTI4OmRiMThjYWQ2ZjZiYWRkM2U4NGEzOGIyMDNjMTg5Y2RlZWVmM2FhYmE3ODNmNjEwNThhOWVkNTVmMGI1NGI4OTImc3A9YWVzMTI4OmU3MmQ2Mzg1MjM1MDNlNzg3YjQ0MmRjNTY4OTAwMDVhMjFhY2YwMGZlNmNmNTgxMTdlZDc5ZTJmMGZiOGY3YjcnCiAgICAgICAgICAgICwnaHR0cHM6Ly92ay5jb20vYW10X2xua2g/ZD1zVFc1ZTBNKnE5UVY3aE43ZEhFTG9IWEUxVUFOS2V1UVk1VVRNM0NYdjBtYjVaSjhFNVRVdzlPQ0p3dnJVRkQ1dHIvcnpUTGE4T3lRelRUcnEyMm91MWpKTHlzeFpPNDg1Y3Qxb2xoNFVyN0xzRGdRbEw3U2ptd1dsNGlZNzZLNlVRTEdmOHR2MXZUbUs4ZmxORkt3UHBhR3dyUnpBOE11OFQ5OVNtc1RKUlFCdjJHRGJHbGdUcjdmbHMzNng2YUhGL1ZxZkpPQzY0MlhmUDBZOFZiVCpzdUovbEs3eHNQVVBrMUtZbndST1NYbGJremVUZ0pTQ2ZiVm5iUFBSNEp2aXgqejdieEtWSHd4NHQ5T1EvaE82NVhCeldzd1d6SDRkN2hNQkVEOWw0V0dabGtZdkUzMWZSTXo1UHhJVCppODFKd0tjQkV3TzlQNU9uVXNBN3U2d1VzZHhJZnozQUl6SktiWDdmMEx1QVFkSU84aFdsSkZyR0Vqa2lhdDNDMUFBOCo4ZXR4aVJxWndnL3Y3TWROeGQxTTU0NE5HRWJZMm95T2VVL3oqdDdyYmd4U2dMblFnMEdLRHN1WHB6S2Vza3p2TmV2SEpRLzFDMDNoa1JVYWdMOFdEaXBBUHEqa09GbjA2eExCeTl4Z3JRYWttOHFBZUtJUWJuUDBybkg1clppV0I4QkpCRXhWQ2ZHTlg2bG9iaDdQZWhrU240WlBhOU1IbWxMS01GYW5zOEcqKklZSENrdXY0U3dLNkNOaExCL2RQZ3JMbjd4VU9BUUUxMHY0Qip6L2xHQzJPZkpCWDZ1dndveDFDNFJYOXBoUVpEOElVNEs4cEFTczdmRWx2RGpFV2pQVDdNZDlaMmVOUGg3Lzc0WENTZXkzZFNWSEFJeUVYUllickdKZy0mcj0zODYzMTI3NzEmZT1NUmVaUXNrNEZwS2JZQm5xVXVDQlB1QlczYjRkYlcvVE8xREY3MUh1cGlxYS9NQkZaT2FaRTVvZXgzNEkqSmhVeHBNU1dNVHVWcnpqS2ZYWnlBRypxWUY4NGs3WUJJczdpTlhOMWlMM1lVNzVqV1ZoTXM0cUNBU2IyYSozVkNOOXhORnVURm5sbG1ld3JrbzUybnVQZDcvcnVEY0doTVlURDhpVTVsb0VWbDAtJmNwPWFlczEyODpkYjE4Y2FkNmY2YmFkZDNlODRhMzhiMjAzYzE4OWNkZWVlZjNhYWJhNzgzZjYxMDU4YTllZDU1ZjBiNTRiODkyJnNwPWFlczEyODplNzJkNjM4NTIzNTAzZTc4N2I0NDJkYzU2ODkwMDA1YTIxYWNmMDBmZTZjZjU4MTE3ZWQ3OWUyZjBmYjhmN2I3JwogICAgICAgICAgICBdCiAgICAgICAgfSk7CiAgICAgICAgUkJDLkkoewogICAgICAgICAgICBlbDogdHJnQjIsCiAgICAgICAgICAgIHBpeGVsczogIFsnaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM2FLbGpsM1ZBQUFBSlM3eW95MEwzVnc1WW9GMUJOdGRxdzRwV3FwNEFXcGh3dUhjaXFweHV1YVhwOWRUbWhDUUZ0RWxNMWR5cUZIMzNRaUhDMC1sRG5vVUQ5OHpaNWRuRUJXSHN0V1dfVDJJd2lTcU1uLXA1X192cHpUV3dac01sOUFiYjVISExLZTVwZmo2MVVPdFRMUkxsUVNndy1Zb3NtYTR0WDZKcmNIU05mejJITUdqd2JocFR0eTVxZGZ5V1Ffc29JSEZJeC1JczhfZE56MHhHbWVEVFFGQ21uTGFrRU00Qnk3b0lZX1Q1UWhZWTZLejlwTjc3RWM0NGZPVF94YmlhMm9QRUIyTWFHa1lCd2JjQ0diYkIyOUlQQUxLVlE1SjBIU1BQRV9mVmhoNHVqZC12ZTguZ2lmJywnaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1oyMkQxX1ZBQUFBVUwyY1ZYZTFKTWRsZmQtX0oxQnN4ZXF0aGY4TXo4bU05VmNFVE5oQnFKMThYU29mZ0dSRXROdERiMHFON2s1UzZXeXQtNHdtaUtZTFFNMko1RHhCLTNBWjZRY3hlUmUtdm1WQVNLUG5yTm9qeXRDb3diWEpHbUVxZFZTMUxnT3N0cGJJbG5jSUdxbEVrR3BjTHAzVENza29Lem1wamlnRFhxQUJENnJIc0YzaEkzT2dRNEtldzBYclJIbEwyZWdTc1V3enNPOERkU2xjTXVka0tLb1cteGs0ZmZjWnp6Q3o1a1c2Y3dIeElVLTJHVW1pWEM3VzBTWUV1OFUyeU90YzlrMzhYcTJ4LVN2WXpINGZseWY5VXlrQUkydURBQl9NNXhrQk9zSmFzazguZ2lmJ10sCiAgICAgICAgICAgIGRlbGF5OiAyCiAgICAgICAgfSk7CgogICAgICAgIGlmICh0eXBlID09PSBmYWxsYmFja1R5cGUuVElNRU9VVCkgewogICAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNUN2tZRERWQUFBQWlvSjNJTlZub0NVaTBOdWlrandVTmptaC04aVh4ZmwweXhTN05mOXdaV0xTTUctUjcySHZMRFdGeDJfU29lZjJDMnhHVldEMDJra1Y4QVBSTEJMY2hhcTV0cDZSaHM4ekRiMmRTOFBxeTN4czVBTUV4QUNLTkVZSFQ4RlA0VTZQTEdMdGdPRTJqSEdwNjZyZEJZX0h2RVVnZldJZ1lTVWh3VHdfVHNrOVJ4MndXV05EaWlHTnlnbURQT0M3UEtLZXNZcUFRT1BDNEVOenlkSHlURUtjREh1YjFpRVIyRUZyNkoyYTlOQ2c5VVRadERfS0ZhUFNkazhLSUkwSUpxcVR3dDdEYlY2YThuczFmX0txZXhNVWFVQlVTVnc2aDFQSnluRVVCNkp2bDhvLmdpZiI7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBmYWxsYmFja1R5cGUuRVJST1IpIHsKICAgICAgICAgIG5ldyBJbWFnZSgpLnNyYyA9ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczWlRad1U3VkFBQUFsQUNhOWdSLXlocjhtNHNQcWx0ZnhpUzFzLXk3VlM0WDVKN1ZuMllNcE1kSi1NQnBrMk5TbTJkb0RXaFk5TkduLWh2SmNwRXlxcmE5N1BpRnVmVTN0SndLN2J6VUR0R1JnckdqUUtRVkpKNUdqUUVXVlBrTnJXdnI5ajRTM0pRX2UzanluR1ZoVkZxUU85REE3Qi1HOU5vTzFVZVdmVU9LbmN5RzY3U29DbTJiaTRkT2lIajB2ejhIeGNiYnZYdzVmTW5SQ3RuMG40RlIyX0Z3ckNCWG9tSWpDNWVrcmkyV2YxczAyeVVxSEd0UEZtbU5lcUhMaGFPYVN5V1BKWUVMV1pVUUpwSlhmZDMwTFpkUnNEeUZtbDVPNHQ2eTlRMHhDUU5kZ0F4OFIyWS5naWYiOwogICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gZmFsbGJhY2tUeXBlLkVNUFRZKSB7CiAgICAgICAgICBuZXcgSW1hZ2UoKS5zcmMgPSAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1N2a0JoWFZBQUFBQ0ZiVEpib0d6WVdyQ2VLaU1lYTQ2SEFHMXdpVHZaVm9TNUItMHY0RHFKTXoxeFl4ai1yUXZWSVotS1JHaHhjSmVIT3lPQk9TMXdWQldSWDBpQm42X2tkVV9PQjZHVktqVHUyN29vSzRFak8teldZUFk0YVJKcjk4eERpTDROdl9mSS1mbkhwaDROQlJUTHdJV2tZZjlCc0I1QzRrZHZZd2dXa25xVUp3Rlh2cnR1b1FzWi0yX0FrMkNKbEFhWHVhTkxLdmw4REZHSDBIS1N1Vi1KR0FYTFNBZk1aM25VR1pzQUg1NTNPTzlrWUFQQ3VuTU92SVBQLUx5OUJvWHNQT3hlc09Pekdha2JmNGdHUzRGRHlUWElCb24wQVZUV0dkLVVMbzg4ZjNTWE0uZ2lmIjsKICAgICAgICB9CgogICAgICAgIGxvZ1JlbmRlcih0eXBlKTsKICAgICAgfQogICAgfQoKICAgIC8vIFN0YXQgdXRpbHMKICAgIGZ1bmN0aW9uIGdldEFyZWFSYXRpbyhjb250YWluZXIsIHNlbGVjdG9yKSB7CiAgICAgIHZhciBlbGVtcyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTsKICAgICAgdmFyIHRvdGFsQXJlYSA9IDA7CgogICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGVsZW1zLmxlbmd0aDsgaSA8IGw7IGkrKykgewogICAgICAgIHZhciBlbCA9IGVsZW1zW2ldOwogICAgICAgIHZhciB3ID0gKGVsLmNsaWVudFdpZHRoID09PSAwKSA/IDAgOiAoZWwud2lkdGggfHwgZWwuY2xpZW50V2lkdGgpOwogICAgICAgIHZhciBoID0gKGVsLmNsaWVudEhlaWdodCA9PT0gMCkgPyAwIDogKGVsLmhlaWdodCB8fCBlbC5jbGllbnRIZWlnaHQpOwogICAgICAgIHRvdGFsQXJlYSArPSB3ICogaDsKICAgICAgfQoKICAgICAgaWYgKHRvdGFsQXJlYSA9PT0gMCkgewogICAgICAgIHJldHVybiB0b3RhbEFyZWE7CiAgICAgIH0KCiAgICAgIHZhciBjb250YWluZXJBcmVhID0gY29udGFpbmVyLmNsaWVudFdpZHRoICogY29udGFpbmVyLmNsaWVudEhlaWdodDsKICAgICAgcmV0dXJuIHRvdGFsQXJlYSAvIGNvbnRhaW5lckFyZWE7CiAgICB9CgogICAgZnVuY3Rpb24gb25Db250ZXh0UmVhZHkoKSB7CiAgICAgIFlhLkNvbnRleHQuQWR2TWFuYWdlci5yZW5kZXIoewogICAgICAgIGJsb2NrSWQ6ICJSLTE0NzAyMy0yNjciLAogICAgICAgIHBhZ2VOdW1iZXI6ICI1MzA1Nzk3NjUwIiwKICAgICAgICByZW5kZXJUbzogInlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1MCIsCiAgICAgICAgc3RhdElkOiAiNzUiLAogICAgICAgIGFzeW5jOiB0cnVlLAogICAgICAgIGRpc2FibGVIaWdobGlnaHQ6IHRydWUsCiAgICAgICAgb25SZW5kZXI6IGZ1bmN0aW9uIChkYXRhKSB7CiAgICAgICAgICBpZiAoZmFsbGJhY2tJbnZva2VkKSByZXR1cm47CiAgICAgICAgICBjbGVhclRpbWVvdXQoZmFsbGJhY2tUaW1lb3V0KTsKCiAgICAgICAgICBmdW5jdGlvbiBsb2dZYW5kZXhTdGF0ZShtZXRyaWMsIHJsb2dfbWVzc2FnZSkgewogICAgICAgICAgICB2YXIgc3JjID0gJy8vbWFpbC5yYWRhci5pbWdzbWFpbC5ydS91cGRhdGU/cD1vY3Rhdml1cyZ0PWFkbWFuLXlhJnY9MSZpPScgKyBtZXRyaWMgKyAnOjEmcm5kPScgKyBNYXRoLnJhbmRvbSgpOwoKICAgICAgICAgICAgaWYgKDAgJiYgcmxvZ19tZXNzYWdlKSB7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHNyYyArPSAnJnJsb2dfbWVzc2FnZT0nICsgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHJsb2dfbWVzc2FnZSkpOwogICAgICAgICAgICAgICAgc3JjICs9ICcmcmxvZz1hZG1hbi15YV8nICsgbWV0cmljOwogICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIG5ldyBJbWFnZSgpLnNyYyA9IHNyYzsKICAgICAgICAgIH0KICAgICAgICAgIAogICAgICAgICAgdmFyIHlhTm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ5YW5kZXhfYWRfUi0xNDcwMjMtMjY3XzUzMDU3OTc2NTAiKTsKCiAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLnJlZnJlc2gpIHsKICAgICAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNUOXQtV0RWQUFBQXBvMXFUN29fQTFlcy1MUXl2OU5QMGtZM3JNalhUTkt5cW1uTEl0YmxKOGZRR3h5TlZaRGlwOThiY3BWYlZtQkRrcXVQRkpRaHNJYlVIbThhSG94TXJ4TU9FQ0t1X2FrWnRhNDBNQjdfSEhQa0Zjb1dWNGs3b1JSNWlQanpzc3N4RHh5X2g5WDUySWpPcVRvY0NoZ1c5ckhyN0V0RFVldGxrS2I4cllYdHNxaGJJZzRjc2Fmd3ZpOW1ZNEN1S3FXNS1wd3RYRjZtZzdWRzJHcmJ5NExoc05hdjFjWF9ILV9lX05OQkJaMTlfT0xqUXBMbUF4QnJ0b0lfNzFIT19ncFROT0EtTGJXTnRDX2dxUVRRWkFtdmNaUFliQ2kxWDZ2eks4STJuTHhqYk9rLmdpZiI7CgogICAgICAgICAgICBsb2dZYW5kZXhTdGF0ZSgncmVmcmVzaCcpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNYY19XR0xWQUFBQWpWWnNGSUdrczFMUWdud3RWQU0waWUwVFB6Y0xNMmFHTU9vTVlibUt6WlNkcXZNb2E0TERfS2hrYV9BSWY3SS1ueU9ITHFZY3J2dXd6NkdBd2FTaGtWN3V2RVdzUk5acW5hNTdwRnNVZmNZSnZxdXhoZWVoZm9Rb0ZpMUMtbnExSzM1ZFNzSUR0UG9ndGgxcHdzVW1DSjBYVjJtVlZWQkRUU2l6RzZGRVozd3pneFNJR0J6Ni1QcEk2QTV2LWtMYXR1b3JBaHNxQkIySFB5Zk9XblhrUVdLb2E4UHlPaGhzZF9zeFlFd0ItLUZTeGVjcHBYamZuSGQ4Z1BmVnpxcWhSc0NraW9NSm5OZFlmdklNaUMxbnNoaXY4UFdrZVhGN3dsSnpJSDJVRzJNLmdpZiI7CiAgICAgICAgICAgIGlmIChmaXJzdERpcmVjdFJlbmRlcikgewogICAgICAgICAgICAgIGZpcnN0RGlyZWN0UmVuZGVyID0gZmFsc2U7CgogICAgICAgICAgICAgIGlmICh5YU5vZGUpIHsKICAgICAgICAgICAgICAgIFJCQy5JKHsKICAgICAgICAgICAgICAgICAgZWw6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ5YW5kZXhfYWRfUi0xNDcwMjMtMjY3XzUzMDU3OTc2NTAtcGl4ZWwxIiksCiAgICAgICAgICAgICAgICAgIHBpeGVsczogWydodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczZVRsTEFqVkFBQUF3TWtpTjJUNGVYNVU3NTBQWTVxdmI4OEtOdFhHRXZWUXhBd2Z3NjlaSkYzWXlMTEZkTkVRQURqSDdxMVY1QkhVM1E5VGVRbkl4aDlfM2tBNno0TzVjejdlSGdVT1JNMERkcGFJcTIzSXdwejhTa25rdzJhOEd5UnhzZWp3ZGV2RGRScERsOHY5SVZMamctVEIyS3hXcUlCNFl5UWJIZXQ2V2dyMXpDbXphQlRmMU9tY2hZX08wamx1eGs5RzhZTWw4MUN4VVVtOHltaWJNRTJuRXBJdnlmaTJGQUNXNHprTnR1MTg5dTFjM3pSZG1ocXJBaTRTcS14cGNpaGZpQ1RuSGFVME5qYldLcVlDZzFKbGNuSUtPUU5iWFU4M0ZjOWY4UTcxeDdiejNPTS5naWYnXQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBSQkMuSSh7CiAgICAgICAgICAgICAgICAgIGVsOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieWFuZGV4X2FkX1ItMTQ3MDIzLTI2N181MzA1Nzk3NjUwLXBpeGVsMiIpLAogICAgICAgICAgICAgICAgICBwaXhlbHM6IFsnaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1dqbk9UM1ZBQUFBME9YQkhWZXV0S1RNNDBPaHgwb25jZ0F2Mm1ES3NEY2swQU9VUVJ1eWRRR2VrQ24xaHE3a1dvZ0RGcmoyTERvUkUwMHBGS2U4NjBuNVZ3VDB4b0cwNmNaQjFPdEp5dHpjTUc0ZG5DX3hOTW90bC1xZTY2ZTVSVnRDeDVqaDBwRTZST3JFVm5XSzdnVU8xdDBLbG1MS3AteXM3VTA3ZUxvYzdyN0ZTY3lOVHV1Y01XTlZDUURsaFdfaUlpX18zTzNtSlBqWEk0Ry1Ed0dNbW9FOV8yZkhUcm40ZXZrT052RkdCbWRBSjJ3SkFKc3FPcmI1dlRQejBQWnNfWVpMYXpLYUJBcHYxc3dtVzFVWjg4eVNIdXVWdXkwQ0dkWkZ4QU9WZXo0eGU1RWxPM2suZ2lmJywgJ2h0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNUMlpibGpWQUFBQXg5QnJucmZDTVRlX3ZjZXlLMDltRnE0ZkkwUU1VTnZBbldmUGxqQTVuTlZLNWhPLVZhT1RRNkVVeG1iQ0VyV1lYNXQ5S2tFcXpSOVEtdWJJVGNWVDdGcVZHUFRFUnNyU1hvbDJ6SDZaV1haVWV6R1RfOG1tQTdwa1ZqT2kzZXI1OEY1M2JfZ292YmVySnplSGRXVENWU3VWbk5tNGlOT2YwRm1CMWhLb0VLUi1OUThUTDNsVzRiSFdzUk9sN2NHRVFDSktTVmJGTllVX1EzWldtS3dNMGotM1hfNFRiZXI3MElSNEtrTk5jQUxaaWIzRS1qRGZvVzVjMGktendFU2tQLVVRd3FtbXlSY0tfeElWdl9iYjg4dkdiUmNwOTgxNGhYZjdkMC1fWnNnLmdpZiddLAogICAgICAgICAgICAgICAgICBkZWxheTogMgogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICBsb2dSZW5kZXIoKTsKCiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmICh5YU5vZGUpIHsKICAgICAgICAgICAgICAgICAgaWYgKHlhTm9kZS5pbm5lckhUTUwpIHsKICAgICAgICAgICAgICAgICAgICBsb2dZYW5kZXhTdGF0ZSgnbm90X2VtcHR5X2FmdGVyX3JlbmRlcicpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrKGZhbGxiYWNrVHlwZS5FTVBUWSk7CiAgICAgICAgICAgICAgICAgICAgbG9nWWFuZGV4U3RhdGUoJ2VtcHR5X2FmdGVyX3JlbmRlcicsIGRhdGEpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKHlhTm9kZSAmJiBnZXRBcmVhUmF0aW8oeWFOb2RlLCAnaW1nJykgPiAwLjMpIHsKICAgICAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNWeUJDQWpWQUFBQTNuenFtNDJodVNZLUhsZjdxR2RlUTd3Z014YTFjaXFQcmkybm50aWt3ZXJJRkZSX1lSNFlkcUx4d0tsTFc2M01LR0NzR2ZEUW1UWU80WkhiS1BiRm9RNnZ5OV9US05sSExEM2R2b0lTemo1WU5uLU1ST2RoUU81SDhZZHR1Mm1zWFd0TnZQRE5jSVNOQldra3ZOM3c2UklQaGNQSTZtbWZjUUpMTVZ6blhvSWhvZ1dYSkJBc0FEdUVBc0libUZ2SzJ1bUlCbGl6eUhNQnpjU203a25LeGpQeHROX3NwMmRtdTFqV19ncEE3S1NkWnFYT3MyMGw2TVhvYjBIdlFoNW8zMjZGVFg2Qjh5NDNNWlBCNkR3OEd6a3k2eVRXWXBJT1d3U1BYNVNaZmY0LmdpZiI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKGZpcnN0RGlyZWN0UmVuZGVyKSB7CiAgICAgICAgICBmYWxsYmFjayhmYWxsYmFja1R5cGUuRU1QVFkpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CgogICAgdy5ZQV9NQUlMUlVfT0sgPSB0cnVlOwoKICAgIGlmICh3LllhICYmIFlhLkNvbnRleHQgJiYgWWEuQ29udGV4dC5BZHZNYW5hZ2VyICYmIFlhLkNvbnRleHQuQWR2TWFuYWdlci5yZW5kZXIpIHsKICAgICAgb25Db250ZXh0UmVhZHkoKTsKICAgIH0gZWxzZSB7CiAgICAgIHdbbl0gPSB3W25dIHx8IFtdOwogICAgICB3W25dLnB1c2gob25Db250ZXh0UmVhZHkpOwogICAgICBjb25zdCBjb250ZXh0UGF0aCA9ICJodHRwczovL3lhbmRleC5ydS9hZHMvc3lzdGVtL2NvbnRleHQuanMiOwogICAgICBjb25zdCBoYXNOb3RDb25leHRGaWxlID0gZC5xdWVyeVNlbGVjdG9yKCJzY3JpcHRbc3JjPVwiIiArIGNvbnRleHRQYXRoICsgIlwiXSIpID8gZmFsc2UgOiB0cnVlIDsKICAgICAgY29uc3QgbG9hZGVkU2NyaXB0ID0gZnVuY3Rpb24gKCl7CiAgICAgICAgdCA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdOwogICAgICAgIHMgPSBkLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwogICAgICAgIHMudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOwogICAgICAgIHMuc3JjID0gY29udGV4dFBhdGg7CiAgICAgICAgcy5hc3luYyA9IHRydWU7CiAgICAgICAgcy5vbmVycm9yID0gZnVuY3Rpb24gKCkgewogICAgICAgIGZhbGxiYWNrKGZhbGxiYWNrVHlwZS5FUlJPUik7CiAgICAgICAgfTsKICAgICAgICB0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHMsIHQpOwogICAgICB9CiAgICAgIGlmIChoYXNOb3RDb25leHRGaWxlKSB7CiAgICAgICAgbG9hZGVkU2NyaXB0KCk7CiAgICAgIH0KICAgIH0KICB9KSh0aGlzLCB0aGlzLmRvY3VtZW50LCAieWFuZGV4Q29udGV4dEFzeW5jQ2FsbGJhY2tzIik7Cjwvc2NyaXB0Pgo8IS0tUkItSlNPTjpbCiAgICB7CiAgICAgICAgIm5vZGVJZCI6ICJ5YW5kZXhfYWRfUi0xNDcwMjMtMjY3XzUzMDU3OTc2NTAiLAogICAgICAgICJzb3VyY2UiOiAiZGlyZWN0IiwKICAgICAgICAiaXNfZXhwZW5zaXZlIjogIlRydWUiLCJmb3JtYXQiOiAibXVsdGkiLAogICAgICAgICJjb3VudCI6IDEsCiAgICAgICAgImJhbm5lcklkIjogIjE1NTI4NzI3NSIsCiAgICAgICAgImZhbGxiYWNrIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibm9kZUlkIjogInRyZy1iLTE1NTI4NzI3NS01MzA1Nzk3NjUiLAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAic291cmNlIjogInZrIiwKICAgICAgICAgICAgICAgICJmb3JtYXQiOiAibXVsdGkiLAogICAgICAgICAgICAgICAgImNvdW50IjogMQogICAgICAgICAgICAgICAgfQogICAgICAgIF0KICAgIH0KXS0tPgoKCgoKCgoKIDwvZGl2PgoKPHNjcmlwdD4KICB0cnl7CiAgICAoZnVuY3Rpb24gKHcsIGQsIHByZWZpeCkgewogICAgdy5SQiA9IHcuUkIgJiYgdy5SQi52ICYmIHcuUkIudiA9PT0gMSA/IHcuUkIgOiAoZnVuY3Rpb24gKCkgewogICAgICB2YXIgLy8gbWFpbiBmbGFnLAogICAgICAgIGVuYWJsZWQgPSAhMSwKICAgICAgICBzZXJ2aW5nVHlwZSA9IHNlcnZlVHlwZSgpLAogICAgICAgIHVzZU9ic2VydmVyID0gISF3aW5kb3cuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIsCiAgICAgICAgdXNlR2VvbSA9ICF1c2VPYnNlcnZlciAmJiBzZXJ2aW5nVHlwZSAhPT0gIlhEX0ZSQU1FIiwKICAgICAgICAvLyBvbGQgb3BlcmEgZm9jdXMgZmxhZwogICAgICAgIGZvY3VzZWQgPSAhMCwKICAgICAgICAvLyBjb3VudGVkIGZsYWcKICAgICAgICBjb3VudGVkID0gIm1haWxydS12aXNpYmlsaXR5LWNvdW50ZWQiLAogICAgICAgIC8vIGJhbm5lcnMgdG8gaW5zcGVjdAogICAgICAgIGJhbm5lcnMgPSB7fSwKICAgICAgICAvLyBzaG9ydGN1dHMKICAgICAgICBlID0gZC5kb2N1bWVudEVsZW1lbnQsCiAgICAgICAgVkUgPSBkLm1velZpc2liaWxpdHlTdGF0ZSA/ICJtb3p2aXNpYmlsaXR5Y2hhbmdlIiA6IGQud2Via2l0VmlzaWJpbGl0eVN0YXRlID8gIndlYmtpdHZpc2liaWxpdHljaGFuZ2UiIDogZC52aXNpYmlsaXR5U3RhdGUgPyAidmlzaWJpbGl0eWNoYW5nZSIgOiAiIiwKICAgICAgICBIUCA9ICJoaWRkZW4iIGluIGQgPyAiaGlkZGVuIiA6ICJ3ZWJraXRIaWRkZW4iIGluIGQgPyAid2Via2l0SGlkZGVuIiA6ICJtb3pIaWRkZW4iIGluIGQgPyAibW96SGlkZGVuIiA6ICIiLAogICAgICAgIC8vIGxhc3RUaW1lU3RhbXAgPSAwLAoKICAgICAgICAvLyB0aW1pbmcKICAgICAgICB0bSwKICAgICAgICAvLyBpbnRlcnN0aW9uIG9ic2VydmVyIGluc3RhbmNlCiAgICAgICAgb2JzZXJ2ZXI7CgogICAgICAvLyBoYW5kbGVycwogICAgICBmdW5jdGlvbiBvbkZvY3VzSW4oKSB7CiAgICAgICAgZm9jdXNlZCA9ICEwOwogICAgICAgIEMoITApOwogICAgICB9CgogICAgICBmdW5jdGlvbiBvbkZvY3VzT3V0KCkgewogICAgICAgIGZvY3VzZWQgPSAhMTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gb25VbmxvYWQoKSB7CiAgICAgICAgQ2xlYXIoKTsKICAgICAgICBvZmYoKTsKICAgICAgfQoKICAgICAgLy8gdXNpbmcgdmlzaWJpbGl0eSBjb3VsZCBoYXZlIHByb2ZpdHMgd2hlbiB0YWIgaXMgbm90CgogICAgICBmdW5jdGlvbiBvblZpc2liaWxpdHlDaGFuZ2UoKSB7CiAgICAgICAgaWYgKCFkW0hQXSkgb25Gb2N1c0luKCk7CiAgICAgICAgZWxzZSBvbkZvY3VzT3V0KCk7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIG9uV2luZG93U2Nyb2xsKCkgewogICAgICAgIEMoKTsKICAgICAgfQoKICAgICAgZnVuY3Rpb24gb25XaW5kb3dSZXNpemUoKSB7CiAgICAgICAgQygpOwogICAgICB9CgogICAgICAvLyBJICZuZGFzaDsgaW5zcGVjdAoKICAgICAgZnVuY3Rpb24gSShiYW5uZXJPYmplY3QsIGlkKSB7CiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChiYW5uZXJPYmplY3QpID09PSAiW29iamVjdCBBcnJheV0iKSB7CiAgICAgICAgICBDbGVhcihiYW5uZXJPYmplY3QpOwogICAgICAgICAgdmFyIGsgPSBiYW5uZXJPYmplY3QubGVuZ3RoIC0gMTsKICAgICAgICAgIGZvciAoOyBrID49IDA7IGstLSkgewogICAgICAgICAgICBpZiAoIXMoYmFubmVyT2JqZWN0W2tdLmVsLCBjb3VudGVkKSkgewogICAgICAgICAgICAgIEkoYmFubmVyT2JqZWN0W2tdKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgaWYgKCF1c2VPYnNlcnZlciAmJiAhdXNlR2VvbSkgewogICAgICAgICAgdHIoYmFubmVyT2JqZWN0LnBpeGVsc191bmRldGVybWluZWQpOwogICAgICAgICAgYmFubmVyT2JqZWN0LmVsW2NvdW50ZWRdID0gdHJ1ZTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgLy8gYmFubmVyT2JqZWN0IGNvbnRhaW5zIGJhbm5lck9iamVjdC5lbCBhbmQgYmFubmVyT2JqZWN0LnBpeGVscwogICAgICAgIGlmICghYmFubmVyT2JqZWN0LmVsLmlkKSB7CiAgICAgICAgICBpZCA9CiAgICAgICAgICAgIHByZWZpeCArCiAgICAgICAgICAgIG5ldyBEYXRlKCkuZ2V0VGltZSgpICsKICAgICAgICAgICAgTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogMWU2KTsKICAgICAgICAgIGJhbm5lck9iamVjdC5lbC5pZCA9IGlkOwogICAgICAgIH0KCiAgICAgICAgaWQgPSBiYW5uZXJPYmplY3QuZWwuaWQ7CgogICAgICAgIC8vIGxhc3RUaW1lU3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKICAgICAgICAvLyBhZGRpbmcgdGhlIGJhbm5lciBjb250YWluZXIgdG8gc3RvcmFnZQogICAgICAgIGlmICghYmFubmVyc1tpZF0pIHsKICAgICAgICAgIGJhbm5lcnNbaWRdID0gewogICAgICAgICAgICBjOiBiYW5uZXJPYmplY3QuZWwsCiAgICAgICAgICAgIHB4OiBiYW5uZXJPYmplY3QucGl4ZWxzLAogICAgICAgICAgICBweF91bjogYmFubmVyT2JqZWN0LnBpeGVsc191bmRldGVybWluZWQsCiAgICAgICAgICAgIHB4X252OiBiYW5uZXJPYmplY3QucGl4ZWxzX25vbnZpZXdhYmxlLAogICAgICAgICAgICBjYjogYmFubmVyT2JqZWN0LmNhbGxiYWNrLAogICAgICAgICAgICBpbzogdXNlT2JzZXJ2ZXIKICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAvLyBlbmFibGluZyBhbnl3YXkKICAgICAgICBvbigpOwogICAgICAgIGlmICh1c2VPYnNlcnZlcikgewogICAgICAgICAgbyhiYW5uZXJPYmplY3QuZWwpOwogICAgICAgIH0KICAgICAgICBDKCEwKTsKICAgICAgfQoKICAgICAgLy8gQyAmbmRhc2g7IGNoZWNrIHZpZXdhYmlsaXR5IG9mIGJhbm5lciB3aXRoIHQsIHRpbWVvdXQgYWZ0ZXIgbG9hZGluZwoKICAgICAgZnVuY3Rpb24gQyh0KSB7CiAgICAgICAgZm9yICh2YXIgaWQgaW4gYmFubmVycykgewogICAgICAgICAgaWYgKGJhbm5lcnNbaWRdICYmICFHKGlkKSkgewogICAgICAgICAgICBDTChpZCk7CiAgICAgICAgICB9IGVsc2UgaWYgKAogICAgICAgICAgICBiYW5uZXJzW2lkXSAmJgogICAgICAgICAgICBnZXRWQShiYW5uZXJzW2lkXS5jKSA+PSA1MCAmJgogICAgICAgICAgICBoYXNGb2N1cygpICYmCiAgICAgICAgICAgICFiYW5uZXJzW2lkXS50CiAgICAgICAgICApIHsKICAgICAgICAgICAgKGZ1bmN0aW9uIChfaWQpIHsKICAgICAgICAgICAgICBiYW5uZXJzW19pZF0udCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgUChfaWQpOwogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge30KICAgICAgICAgICAgICB9LCAxRTMpOwogICAgICAgICAgICB9KShpZCk7CiAgICAgICAgICB9IGVsc2UgaWYgKAogICAgICAgICAgICBiYW5uZXJzW2lkXSAmJgogICAgICAgICAgICBnZXRWQShiYW5uZXJzW2lkXS5jKSA8IDUwCiAgICAgICAgICApIHsKICAgICAgICAgICAgaWYgKGJhbm5lcnNbaWRdLnQpIHsKICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoYmFubmVyc1tpZF0udCk7CiAgICAgICAgICAgICAgZGVsZXRlIGJhbm5lcnNbaWRdLnQ7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSBpZiAoYmFubmVyc1tpZF0gJiYgIWhhc0ZvY3VzKCkpIHsKICAgICAgICAgICAgaWYgKGJhbm5lcnNbaWRdLnQpIHsKICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoYmFubmVyc1tpZF0udCk7CiAgICAgICAgICAgICAgZGVsZXRlIGJhbm5lcnNbaWRdLnQ7CiAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRtKTsKICAgICAgICAgICAgICB0ID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSBpZiAoIWJhbm5lcnNbaWRdKSB7CiAgICAgICAgICAgIENMKGlkKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICh0KSB7CiAgICAgICAgICBjbGVhclRpbWVvdXQodG0pOwogICAgICAgICAgdG0gPSBzZXRUaW1lb3V0KAogICAgICAgICAgICBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgQyghMCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHVzZUdlb20gPyAzZTIgOiAxMGUzCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gQ0wgJm5kYXNoOyBDbGVhciB0aW1lcnMgYW5kIHN0b3AgbGlzdGVuZXJzCgogICAgICBmdW5jdGlvbiBDTChpZCwgb25seVRNLCBub0NvdW50KSB7CiAgICAgICAgaWYgKGlkICYmIGJhbm5lcnNbaWRdKSB7CiAgICAgICAgICBjbGVhclRpbWVvdXQoYmFubmVyc1tpZF0udCk7CiAgICAgICAgICBiYW5uZXJzW2lkXS50ID0gbnVsbDsKICAgICAgICAgIGlmICghb25seVRNKSB7CiAgICAgICAgICAgIGlmIChiYW5uZXJzW2lkXS5pbyAmJiBvYnNlcnZlcikgewogICAgICAgICAgICAgIG9ic2VydmVyLnVub2JzZXJ2ZShiYW5uZXJzW2lkXS5jKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCFub0NvdW50ICYmICFzKGJhbm5lcnNbaWRdLmMsIGNvdW50ZWQpKSB7CiAgICAgICAgICAgICAgdHIoYmFubmVyc1tpZF0ucHhfbnYpOwogICAgICAgICAgICAgIGJhbm5lcnNbaWRdLmNbY291bnRlZF0gPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJhbm5lcnNbaWRdLmMgPSBudWxsOwogICAgICAgICAgICBkZWxldGUgYmFubmVyc1tpZF07CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNsZWFyVGltZW91dCh0bSk7CiAgICAgICAgdG0gPSBudWxsOwogICAgICAgIGZvciAodmFyIGlkIGluIGJhbm5lcnMpIHsKICAgICAgICAgIGlmIChiYW5uZXJzW2lkXS50KSB7CiAgICAgICAgICAgIENMKGlkLCAhMCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CgogICAgICBmdW5jdGlvbiBDbGVhcihiYW5uZXJzQXJyYXkpIHsKICAgICAgICBpZiAoYmFubmVyc0FycmF5ICYmIGJhbm5lcnNBcnJheS5sZW5ndGggPj0gMCkgewogICAgICAgICAgLy9jbGVhciBiYW5uZXJzIGZyb20gYXJyYXkKICAgICAgICAgIHZhciBrID0gYmFubmVyc0FycmF5Lmxlbmd0aCAtIDE7CiAgICAgICAgICB2YXIgaWQ7CiAgICAgICAgICBmb3IgKDsgayA+PSAwOyBrLS0pIHsKICAgICAgICAgICAgaWQgPSBiYW5uZXJzQXJyYXlba10uZWwuaWQ7CiAgICAgICAgICAgIGlmIChpZCAmJiBiYW5uZXJzW2lkXSkgewogICAgICAgICAgICAgIC8vIGNsZWFyIGJ1dCBkb24ndCBjb3VudCBub252aWV3YWJsZQogICAgICAgICAgICAgIENMKGlkLCAhMSwgITApOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGZvciAodmFyIGlkIGluIGJhbm5lcnMpIHsKICAgICAgICAgICAgLy9jbGVhciBhbGwKICAgICAgICAgICAgQ0woaWQpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gUCAmbmRhc2g7IHBpeGVsIHRvIHNlbmQKICAgICAgZnVuY3Rpb24gUChpZCwgb2JqLCBjbnQpIHsKICAgICAgICBpZiAoIUcoaWQpKSB7CiAgICAgICAgICBDTChpZCk7CiAgICAgICAgICAvLyBiYW5uZXIgcmVtb3ZlZAogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgaWYgKGJhbm5lcnNbaWRdKSB7CiAgICAgICAgICBvYmogPSBiYW5uZXJzW2lkXS5jOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBpZiAoIWhhc0ZvY3VzKCkpIHsKICAgICAgICAgIENMKGlkLCAhMCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfSBlbHNlIGlmIChnZXRWQShvYmopIDwgNTApIHsKICAgICAgICAgIENMKGlkLCAhMCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBmb3IgKGNudCA9IGJhbm5lcnNbaWRdLnB4Lmxlbmd0aCAtIDE7IGNudCA+PSAwOyBjbnQtLSkgewogICAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gYmFubmVyc1tpZF0ucHhbY250XTsKICAgICAgICB9CiAgICAgICAgLy8gc2V0IGNvdW50ZWQgZmxhZyAtIHNraXAgaW4gbmV4dCBjb2xsZWN0IGxvb3BzCiAgICAgICAgb2JqW2NvdW50ZWRdID0gdHJ1ZTsKICAgICAgICAvL3RyeSBmaXJlIGNhbGxiYWNrCiAgICAgICAgdmFyIGNiID0gYmFubmVyc1tpZF0uY2I7CiAgICAgICAgaWYgKGNiICYmIHR5cGVvZiBjYiA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY2IoKTsKICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9CiAgICAgICAgfQogICAgICAgIC8vIHJlbW92ZSBiYW5uZXIgZnJvbSBzdG9yYWdlIG9mIGluc3BlY3RhYmxlIGl0ZW1zCiAgICAgICAgQ0woaWQpOwogICAgICAgIC8vIHR1cm4gbGlzdGVuZXJzIG9mZiBpZiBiYW5uZXJzIGFyZSBub3QgcHJlc2VudAogICAgICAgIGlmICghbChiYW5uZXJzKSkgb2ZmKCk7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGhhc0ZvY3VzKCkgewogICAgICAgIGlmIChIUCkgZm9jdXNlZCA9ICFkW0hQXTsKICAgICAgICBlbHNlIGlmICghVkUgJiYgdHlwZW9mIGQuaGFzRm9jdXMgPT09ICJmdW5jdGlvbiIpCiAgICAgICAgICBmb2N1c2VkID0gZC5oYXNGb2N1cygpOwogICAgICAgIHJldHVybiBmb2N1c2VkOwogICAgICB9CgogICAgICBmdW5jdGlvbiBnZXRWQShvYmosIHNvdXJjZSkgewogICAgICAgIGlmIChvYmouaWQgJiYgYmFubmVyc1tvYmouaWRdICYmIGJhbm5lcnNbb2JqLmlkXS5pbykgewogICAgICAgICAgcmV0dXJuIGJhbm5lcnNbb2JqLmlkXS52IHx8IDA7CiAgICAgICAgfQoKICAgICAgICB2YXIgcGVyY2VudCA9IGdldEdlb21ldHJ5Vmlld2FibGVBcmVhKG9iaikucGVyY2VudDsKCiAgICAgICAgcmV0dXJuIHBlcmNlbnQ7CiAgICAgIH0KCiAgICAgIC8qKiBMSVNURU5FUlMgU1dJVENIRVJTICoqLwogICAgICBmdW5jdGlvbiBvbigpIHsKICAgICAgICBpZiAoZW5hYmxlZCkgcmV0dXJuOwogICAgICAgIGlmICh1c2VHZW9tKSB7CiAgICAgICAgICBldih3LCAicmVzaXplIiwgb25XaW5kb3dSZXNpemUpOwogICAgICAgICAgZXYodywgInNjcm9sbCIsIG9uV2luZG93U2Nyb2xsKTsKICAgICAgICB9CiAgICAgICAgaWYgKHVzZU9ic2VydmVyKSB7CiAgICAgICAgICBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihoLCB7CiAgICAgICAgICAgIHRocmVzaG9sZDogWzAuMSwgMC4yLCAwLjMsIDAuNCwgMC41LCAwLjYsIDAuNywgMC44LCAwLjksIDEuMF0sCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgaWYgKFZFKSBldihkLCBWRSwgb25WaXNpYmlsaXR5Q2hhbmdlKTsKICAgICAgICBlbHNlIHsKICAgICAgICAgIGV2KHcsICJibHVyIiwgb25Gb2N1c091dCk7CiAgICAgICAgICBldih3LCAiZm9jdXMiLCBvbkZvY3VzSW4pOwogICAgICAgIH0KICAgICAgICBldih3LCAidW5sb2FkIiwgb25VbmxvYWQpOwogICAgICAgIGVuYWJsZWQgPSB0cnVlOwogICAgICB9CgogICAgICBmdW5jdGlvbiBvZmYoKSB7CiAgICAgICAgcm0odywgInVubG9hZCIsIG9uVW5sb2FkKTsKICAgICAgICBybSh3LCAicmVzaXplIiwgb25XaW5kb3dSZXNpemUpOwogICAgICAgIHJtKHcsICJzY3JvbGwiLCBvbldpbmRvd1Njcm9sbCk7CiAgICAgICAgaWYgKFZFKSBybShkLCBWRSwgb25WaXNpYmlsaXR5Q2hhbmdlKTsKICAgICAgICBybSh3LCAiZm9jdXMiLCBvbkZvY3VzSW4pOwogICAgICAgIHJtKHcsICJibHVyIiwgb25Gb2N1c091dCk7CiAgICAgICAgaWYgKG9ic2VydmVyKSB7CiAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CiAgICAgICAgICBvYnNlcnZlciA9IG51bGw7CiAgICAgICAgfQogICAgICAgIGNsZWFyVGltZW91dCh0bSk7CiAgICAgICAgZW5hYmxlZCA9IGZhbHNlOwogICAgICB9CgogICAgICAvKiogSU5URVJTRUNUSU9OIE9CU0VSVkVSIFVUSUxTICoqLwogICAgICBmdW5jdGlvbiBvKGUpIHsKICAgICAgICBvYnNlcnZlciAmJiBvYnNlcnZlci5vYnNlcnZlKGUpOwogICAgICB9CgogICAgICBmdW5jdGlvbiBoKGNoYW5nZXMpIHsKICAgICAgICBjaGFuZ2VzLmZvckVhY2goZnVuY3Rpb24gKGNoYW5nZVJlY29yZCkgewogICAgICAgICAgdmFyIGVsZW1lbnQgPSBjaGFuZ2VSZWNvcmQudGFyZ2V0OwogICAgICAgICAgdmFyIGlkID0gZWxlbWVudC5pZDsKCiAgICAgICAgICBpZiAoaWQgJiYgYmFubmVyc1tpZF0pIHsKICAgICAgICAgICAgYmFubmVyc1tpZF0udiA9IE1hdGgucm91bmQoCiAgICAgICAgICAgICAgY2hhbmdlUmVjb3JkLmludGVyc2VjdGlvblJhdGlvICogMTAwCiAgICAgICAgICAgICk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgQygpOwogICAgICB9CgogICAgICAvKiogVVRJTFMgKiovCiAgICAgIC8vIEcgLSBnZXQgZWxlbWVudCBieSBJRDsKICAgICAgZnVuY3Rpb24gRyhFKSB7CiAgICAgICAgcmV0dXJuIGQuZ2V0RWxlbWVudEJ5SWQoRSk7CiAgICAgIH0KICAgICAgLy8gZXYgLSBFVmVudCB0byBoYW5kbGUKICAgICAgZnVuY3Rpb24gZXYoZWxlbSwgZXZlbnROYW1lLCBjYWxsYmFjaykgewogICAgICAgIGVsZW0uYWRkRXZlbnRMaXN0ZW5lcgogICAgICAgICAgPyBlbGVtLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjaywgITEpCiAgICAgICAgICA6IGVsZW0uYXR0YWNoRXZlbnQgJiYKICAgICAgICAgICAgZWxlbS5hdHRhY2hFdmVudCgib24iICsgZXZlbnROYW1lLCBjYWxsYmFjayk7CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIHJtKGVsZW0sIGV2ZW50TmFtZSwgY2FsbGJhY2spIHsKICAgICAgICBlbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIKICAgICAgICAgID8gZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgY2FsbGJhY2ssICExKQogICAgICAgICAgOiBlbGVtLmRldGFjaEV2ZW50ICYmCiAgICAgICAgICAgIGVsZW0uZGV0YWNoRXZlbnQoIm9uIiArIGV2ZW50TmFtZSwgY2FsbGJhY2spOwogICAgICB9CiAgICAgIC8vIG9iaiBsZW5ndGgKICAgICAgZnVuY3Rpb24gbChvYmopIHsKICAgICAgICB2YXIgcyA9IDAsCiAgICAgICAgICBrZXk7CiAgICAgICAgZm9yIChrZXkgaW4gb2JqKSB7CiAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHMrKzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHM7CiAgICAgIH0KICAgICAgLy9lbGVtIHN0YXRlCiAgICAgIGZ1bmN0aW9uIHMoZWxlbSwgc3RhdGUpIHsKICAgICAgICByZXR1cm4gISh0eXBlb2YgZWxlbVtzdGF0ZV0gPT0gdW5kZWZpbmVkIHx8IGVsZW1bc3RhdGVdICE9PSB0cnVlKTsKICAgICAgfQogICAgICAvL3RyYWNrCiAgICAgIGZ1bmN0aW9uIHRyKHBpeGVscykgewogICAgICAgIGlmIChwaXhlbHMgJiYgcGl4ZWxzLmxlbmd0aCkgewogICAgICAgICAgZm9yIChjbnQgPSBwaXhlbHMubGVuZ3RoIC0gMTsgY250ID49IDA7IGNudC0tKSB7CiAgICAgICAgICAgIG5ldyBJbWFnZSgpLnNyYyA9IHBpeGVsc1tjbnRdOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBzZXJ2ZVR5cGUoKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmICh3aW5kb3cgPT09IHdpbmRvdy50b3ApIHsKICAgICAgICAgICAgcmV0dXJuICJPTl9QQUdFIjsKICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgY3VycmVudFdpbmRvdyA9IHdpbmRvdzsKCiAgICAgICAgICB3aGlsZSAoY3VycmVudFdpbmRvdyAhPT0gY3VycmVudFdpbmRvdy5wYXJlbnQpIHsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgIGN1cnJlbnRXaW5kb3cuZG9jdW1lbnQuZG9tYWluICE9PQogICAgICAgICAgICAgIGN1cnJlbnRXaW5kb3cucGFyZW50LmRvY3VtZW50LmRvbWFpbgogICAgICAgICAgICApIHsKICAgICAgICAgICAgICByZXR1cm4gIlhEX0ZSQU1FIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJlbnQ7CiAgICAgICAgICB9CgogICAgICAgICAgcmV0dXJuICJTX0ZSQU1FIjsKICAgICAgICB9IGNhdGNoIChlKSB7fQoKICAgICAgICByZXR1cm4gIlhEX0ZSQU1FIjsKICAgICAgfQoKICAgICAgLy8gZ2VvbWV0cnkgdmlld2FiaWxpdHkKICAgICAgZnVuY3Rpb24gZ2V0R2VvbWV0cnlWaWV3YWJsZUFyZWEoZWxlbWVudCwgY29udGV4dFdpbmRvdykgewogICAgICAgIHRyeSB7CiAgICAgICAgICB2YXIgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgICAgICB2YXIgYXJlYSA9IGdldEFyZWEocmVjdCk7CiAgICAgICAgICB2YXIgY3VycmVudFdpbmRvdyA9IHdpbmRvdzsKCiAgICAgICAgICBjb250ZXh0V2luZG93ID0gY29udGV4dFdpbmRvdyB8fCB3aW5kb3cudG9wOwoKICAgICAgICAgIHdoaWxlIChjdXJyZW50V2luZG93ICE9PSBjb250ZXh0V2luZG93KSB7CiAgICAgICAgICAgIC8vIDEpIGdldCBjdXJyZW50IGZyYW1lIGNvb3JkaW5hdGVzIGluc2lkZSBpdHMgcGFyZW50CiAgICAgICAgICAgIC8vIDIpIGdldCBlbGVtZW50IGNvb3JkaW5hdGVzIHJlbGF0aXZlIHRvIHBhcmVudAogICAgICAgICAgICAvLyAzKSBnZXQgdmlzaWJsZSBlbGVtZW50IGNvb3JkaW5hdGVzIHJlbGF0aXZlIHRvIHBhcmVudAogICAgICAgICAgICB2YXIgY3VycmVudFJlY3QgPSBjdXJyZW50V2luZG93LmZyYW1lRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKCiAgICAgICAgICAgIHJlY3QgPSBnZXRSUihyZWN0LCBjdXJyZW50UmVjdCk7CiAgICAgICAgICAgIHJlY3QubGVmdCA9IE1hdGgubWF4KGN1cnJlbnRSZWN0LmxlZnQsIHJlY3QubGVmdCk7CiAgICAgICAgICAgIHJlY3QucmlnaHQgPSBNYXRoLm1pbihjdXJyZW50UmVjdC5yaWdodCwgcmVjdC5yaWdodCk7CiAgICAgICAgICAgIHJlY3QudG9wID0gTWF0aC5tYXgoY3VycmVudFJlY3QudG9wLCByZWN0LnRvcCk7CiAgICAgICAgICAgIHJlY3QuYm90dG9tID0gTWF0aC5taW4oY3VycmVudFJlY3QuYm90dG9tLCByZWN0LmJvdHRvbSk7CgogICAgICAgICAgICBpZiAocmVjdC5yaWdodCA8IHJlY3QubGVmdCkgewogICAgICAgICAgICAgIHJlY3QucmlnaHQgPSByZWN0LmxlZnQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlY3QuYm90dG9tIDwgcmVjdC50b3ApIHsKICAgICAgICAgICAgICByZWN0LmJvdHRvbSA9IHJlY3QudG9wOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjdXJyZW50V2luZG93ID0gY3VycmVudFdpbmRvdy5wYXJlbnQ7CiAgICAgICAgICB9CiAgICAgICAgICByZWN0ID0gZ2V0UlZBKHJlY3QsIGNvbnRleHRXaW5kb3cpOwoKICAgICAgICAgIHZhciB2aWV3YWJsZUFyZWEgPSBnZXRBcmVhKHJlY3QpOwoKICAgICAgICAgIHJlY3QucGVyY2VudCA9ICh2aWV3YWJsZUFyZWEgLyBhcmVhKSAqIDEwMDsKCiAgICAgICAgICByZXR1cm4gcmVjdDsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICByZXR1cm4geyBsZWZ0OiAwLCByaWdodDogMCwgdG9wOiAwLCBib3R0b206IDAsIHBlcmNlbnQ6IDAgfTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGZ1bmN0aW9uIGdldEFyZWEocmVjdCkgewogICAgICAgIHJldHVybiAocmVjdC5yaWdodCAtIHJlY3QubGVmdCkgKiAocmVjdC5ib3R0b20gLSByZWN0LnRvcCk7CiAgICAgIH0KICAgICAgLy8gcmVsYXRpdmUgcmVjdAogICAgICBmdW5jdGlvbiBnZXRSUihyZWN0LCBjb250ZXh0UmVjdCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBsZWZ0OiByZWN0LmxlZnQgKyBjb250ZXh0UmVjdC5sZWZ0LAogICAgICAgICAgcmlnaHQ6IHJlY3QucmlnaHQgKyBjb250ZXh0UmVjdC5sZWZ0LAogICAgICAgICAgdG9wOiByZWN0LnRvcCArIGNvbnRleHRSZWN0LnRvcCwKICAgICAgICAgIGJvdHRvbTogcmVjdC5ib3R0b20gKyBjb250ZXh0UmVjdC50b3AsCiAgICAgICAgfTsKICAgICAgfQogICAgICAvLyByZWxhdGl2ZSB2aWV3YWJsZSBhcmVhCiAgICAgIGZ1bmN0aW9uIGdldFJWQShyZWN0LCBjb250ZXh0V2luZG93KSB7CiAgICAgICAgdmFyIHJlc3VsdCA9IHt9OwogICAgICAgIHZhciBjb250ZXh0U2l6ZSA9IGdldFZTKGNvbnRleHRXaW5kb3cpOwoKICAgICAgICByZXN1bHQubGVmdCA9IE1hdGgubWF4KDAsIHJlY3QubGVmdCk7CiAgICAgICAgcmVzdWx0LnJpZ2h0ID0gTWF0aC5taW4oY29udGV4dFNpemUud2lkdGgsIHJlY3QucmlnaHQpOwogICAgICAgIHJlc3VsdC50b3AgPSBNYXRoLm1heCgwLCByZWN0LnRvcCk7CiAgICAgICAgcmVzdWx0LmJvdHRvbSA9IE1hdGgubWluKGNvbnRleHRTaXplLmhlaWdodCwgcmVjdC5ib3R0b20pOwoKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIC8vIHZpZXdwb3J0IHNpemUKICAgICAgZnVuY3Rpb24gZ2V0VlModykgewogICAgICAgIHZhciB2aWV3UG9ydFNpemUgPSB7CiAgICAgICAgICB3aWR0aDogSW5maW5pdHksCiAgICAgICAgICBoZWlnaHQ6IEluZmluaXR5LAogICAgICAgIH07CiAgICAgICAgdmFyIGQgPSB3LmRvY3VtZW50OwoKICAgICAgICBpZiAoIWlzTmFOKGQuYm9keS5jbGllbnRXaWR0aCkgJiYgZC5ib2R5LmNsaWVudFdpZHRoID4gMCkgewogICAgICAgICAgdmlld1BvcnRTaXplLndpZHRoID0gZC5ib2R5LmNsaWVudFdpZHRoOwogICAgICAgIH0KICAgICAgICBpZiAoIWlzTmFOKGQuYm9keS5jbGllbnRIZWlnaHQpICYmIGQuYm9keS5jbGllbnRIZWlnaHQgPiAwKSB7CiAgICAgICAgICB2aWV3UG9ydFNpemUuaGVpZ2h0ID0gZC5ib2R5LmNsaWVudEhlaWdodDsKICAgICAgICB9CiAgICAgICAgaWYgKAogICAgICAgICAgISFkLmRvY3VtZW50RWxlbWVudCAmJgogICAgICAgICAgISFkLmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCAmJgogICAgICAgICAgIWlzTmFOKGQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKQogICAgICAgICkgewogICAgICAgICAgdmlld1BvcnRTaXplLndpZHRoID0gZC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7CiAgICAgICAgfQogICAgICAgIGlmICgKICAgICAgICAgICEhZC5kb2N1bWVudEVsZW1lbnQgJiYKICAgICAgICAgICEhZC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ICYmCiAgICAgICAgICAhaXNOYU4oZC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KQogICAgICAgICkgewogICAgICAgICAgdmlld1BvcnRTaXplLmhlaWdodCA9IGQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDsKICAgICAgICB9CiAgICAgICAgaWYgKCEhdy5pbm5lcldpZHRoICYmICFpc05hTih3LmlubmVyV2lkdGgpKSB7CiAgICAgICAgICB2aWV3UG9ydFNpemUud2lkdGggPSBNYXRoLm1pbih2aWV3UG9ydFNpemUud2lkdGgsIHcuaW5uZXJXaWR0aCk7CiAgICAgICAgfQogICAgICAgIGlmICghIXcuaW5uZXJIZWlnaHQgJiYgIWlzTmFOKHcuaW5uZXJIZWlnaHQpKSB7CiAgICAgICAgICB2aWV3UG9ydFNpemUuaGVpZ2h0ID0gTWF0aC5taW4oCiAgICAgICAgICAgIHZpZXdQb3J0U2l6ZS5oZWlnaHQsCiAgICAgICAgICAgIHcuaW5uZXJIZWlnaHQKICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gdmlld1BvcnRTaXplOwogICAgICB9CgogICAgICAvKiogUFVCTElDIElOVEVSRkFDRSAqKi8KCiAgICAgIHJldHVybiB7CiAgICAgICAgSTogSSwKICAgICAgICAvLyBkZWJ1ZwogICAgICAgIC8vICwgYmFubmVyczogYmFubmVycwogICAgICAgIHY6IDEsCiAgICAgIH07CiAgICB9KSgpOwogIH0pKHdpbmRvdywgZG9jdW1lbnQsICdtYWlscnUnKQogIH1jYXRjaCAoZSkge30KPC9zY3JpcHQ+CgoKPHNjcmlwdD4KICAoZnVuY3Rpb24ocHJlZml4KXsKICAgIHRyeXsKICAgICAgCiAgICAgIGZ1bmN0aW9uIGdldEFkc0NvbnRhaW5lcnMoKSB7CiAgCQkJdmFyIEFEU19DTEFTUyA9IHByZWZpeCArICctdmlzaWJpbGl0eS1jaGVjaycsCiAgCQkJCUFEU19DT1VOVEVSX0NMQVNTID0gQURTX0NMQVNTICsgJy1jb3VudGVyJywKICAJCQkJQURTX0NBTExCQUNLX0NMQVNTID0gQURTX0NMQVNTICsgJy1jYWxsYmFjaycsCiAgCQkJCUNPVU5URVJfQVRUUiA9ICdkYXRhLWNvdW50ZXInLAogIAkJCQlDT1VOVEVSX0FUVFJfVU5ERVRFUk1JTkVEID0gQ09VTlRFUl9BVFRSICsgJy11bicsCiAgCQkJCUNPVU5URVJfQVRUUl9OT05WSUVXQUJMRSA9IENPVU5URVJfQVRUUiArICctbnYnLAogIAkJCQlDQUxMQkFDS19BVFRSID0gJ2RhdGEtY2FsbGJhY2snLAogIAkJCQlPQlNFUlZFUl9BVFRSID0gJ2RhdGEtb2JzZXJ2ZXInLAogIAkJCQljb250YWluZXJzID0gW10sCiAgCQkJCWNvdW50YWJsZXMgPSBbXSwKICAJCQkJaSwgaywgY291bnRlcnMsIF9jb3VudGVyLCBfb2JzZXJ2ZXI7CiAgIAogIAkJCWNvbnRhaW5lcnMgPSBnZXRCeUNsYXNzKGRvY3VtZW50LCBBRFNfQ0xBU1MpOwogIAkJCWZvciAoaSA9IGNvbnRhaW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAJCQkJdmFyIGNvdW50ZXJzID0gZ2V0QnlDbGFzcyhjb250YWluZXJzW2ldLCBBRFNfQ09VTlRFUl9DTEFTUywgJ3NwYW4nKTsKICAJCQkJX2NvdW50ZXIgPSBjb250YWluZXJzW2ldLmdldEF0dHJpYnV0ZShDT1VOVEVSX0FUVFIpOwogIAkJCQlfb2JzZXJ2ZXIgPSBjb250YWluZXJzW2ldLmhhc0F0dHJpYnV0ZShPQlNFUlZFUl9BVFRSKTsKICAJCQkJY291bnRhYmxlc1tpXSA9IHsKICAJCQkJCWVsOiBjb250YWluZXJzW2ldLAogIAkJCQkJcGl4ZWxzOiBbXSwKICAJCQkJCXBpeGVsc191bmRldGVybWluZWQ6IFtdLAogIAkJCQkJcGl4ZWxzX25vbnZpZXdhYmxlOiBbXSwKICAJCQkJCW9ic2VydmVyOiBfb2JzZXJ2ZXIKICAJCQkJfTsKICAJCQkJaWYgKF9jb3VudGVyKSBjb3VudGFibGVzW2ldLnBpeGVscy5wdXNoKF9jb3VudGVyKTsKICAJCQkJZm9yIChrID0gY291bnRlcnMubGVuZ3RoIC0gMTsgayA+PSAwOyBrLS0pIHsKICAJCQkJCWlmIChjb3VudGVyc1trXS5wYXJlbnROb2RlID09PSBjb3VudGFibGVzW2ldLmVsKSB7CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzLnB1c2goX2NvdW50ZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY291bnRlciA9IGNvdW50ZXJzW2tdLmdldEF0dHJpYnV0ZShDT1VOVEVSX0FUVFJfVU5ERVRFUk1JTkVEKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzX3VuZGV0ZXJtaW5lZC5wdXNoKF9jb3VudGVyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSX05PTlZJRVdBQkxFKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzX25vbnZpZXdhYmxlLnB1c2goX2NvdW50ZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogIAkJCQl9CiAgCQkJCXZhciBjYWxsYmFjayA9IGdldEJ5Q2xhc3MoY29udGFpbmVyc1tpXSwgQURTX0NBTExCQUNLX0NMQVNTLCAnc3BhbicpOwogIAkJCQlpZiAoY2FsbGJhY2tbMF0pIHsKICAJCQkJICB2YXIgX2NhbGxiYWNrID0gY2FsbGJhY2tbMF0uZ2V0QXR0cmlidXRlKENBTExCQUNLX0FUVFIpOwogIAkJCQkgIGlmIChfY2FsbGJhY2sgJiYgd2luZG93LlJCX0NBTExCQUNLUyAmJiB3aW5kb3cuUkJfQ0FMTEJBQ0tTW19jYWxsYmFja10pIHsKICAJCQkJICAgIGNvdW50YWJsZXNbaV0uY2FsbGJhY2sgPSB3aW5kb3cuUkJfQ0FMTEJBQ0tTW19jYWxsYmFja107CiAgCQkJCSAgfQogIAkJCQl9CiAgCQkJCWlmICghY291bnRhYmxlc1tpXS5waXhlbHMubGVuZ3RoKSBjb3VudGFibGVzLnNwbGljZShpLCAxKTsKICAJCQl9CiAgIAogIAkJCXJldHVybiBjb3VudGFibGVzOwogIAkJfQogICAKICAJCWZ1bmN0aW9uIGdldEJ5Q2xhc3MocGFyZW50LCBjaGlsZENsYXNzTmFtZSwgdGFnTmFtZSkgewogIAkJCWlmIChwYXJlbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSkgewogIAkJCQlyZXR1cm4gcGFyZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2hpbGRDbGFzc05hbWUpOwogIAkJCX0gZWxzZSBpZiAocGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwpIHsKICAgCiAgCQkJCXJldHVybiBwYXJlbnQucXVlcnlTZWxlY3RvckFsbCgnLicgKyBjaGlsZENsYXNzTmFtZSk7CiAgCQkJfSBlbHNlIHsKICAJCQkJdmFyIGVscyA9IFtdOwogIAkJCQl2YXIgdG1wID0gcGFyZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZ05hbWUgPyB0YWdOYW1lIDogIioiKTsKICAJCQkJdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cCgiKF58XHMpIiArIGNoaWxkQ2xhc3NOYW1lICsgIihcc3wkKSIpOwogIAkJCQlmb3IgKHZhciBpID0gMDsgaSA8IHRtcC5sZW5ndGg7IGkrKykgewogIAkJCQkJaWYgKHJlZ2V4LnRlc3QodG1wW2ldLmNsYXNzTmFtZSkpIHsKICAJCQkJCQllbHMucHVzaCh0bXBbaV0pOwogIAkJCQkJfQogIAkJCQl9CiAgCQkJCXJldHVybiBlbHM7CiAgCQkJfQogIAkJfQogICAKICAJCVJCLkkoZ2V0QWRzQ29udGFpbmVycygpKTsKICAgICAgCiAgICB9Y2F0Y2goZSl7fQogIH0oJ21haWxydScpKQo8L3NjcmlwdD4KPC9pbnM+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icGxfYWciIGRhdGEtdGVzdGlkPSJwdWxzZS1yb3ciPjxkaXYgY2xhc3M9InBsX3EgcGxfbiBwbF94IHBsX2FtIiBkYXRhLXRlc3RpZD0icHVsc2UtY2FyZCI+PGRpdiBjbGFzcz0iQ2FyZFByZWxvYWRlci1yb290LTAtMS0xMDIgQ29udGVudENhcmQtcm9vdC0wLTEtMTA3Ij48ZGl2IGNsYXNzPSJDYXJkUHJlbG9hZGVyLWJvZHktMC0xLTEwMyI+PGRpdiBjbGFzcz0iQ2FyZFByZWxvYWRlci1pbWFnZS0wLTEtMTA0IFBlbmRpbmdCbG9jay1yb290LTAtMS0xMDkiPjwvZGl2PjxkaXYgY2xhc3M9IkNhcmRQcmVsb2FkZXItdGl0bGUtMC0xLTEwNSBQZW5kaW5nQmxvY2stcm9vdC0wLTEtMTA5Ij48L2Rpdj48ZGl2IGNsYXNzPSJDYXJkUHJlbG9hZGVyLWRlc2MtMC0xLTEwNiBQZW5kaW5nQmxvY2stcm9vdC0wLTEtMTA5Ij48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwbF9xIHBsX24gcGxfeCBwbF9hbSIgZGF0YS10ZXN0aWQ9InB1bHNlLWNhcmQiPjxkaXYgY2xhc3M9InBsX2kgcGxfaiBwbF9sIHBsX2F6IHBsX2EwIHBsX2FuIj48aW5zIGNsYXNzPSJtcmctdGFnIHBsX2F5IiBkYXRhLXNsb3Q9IjEyOTkyNzQiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IG5vbmU7Ij4KCgoKCgoKPGRpdiBjbGFzcz0ibWFpbHJ1LXZpc2liaWxpdHktY2hlY2siIGlkPSJtYWlscnUxNzE2MzEzMzE2OTI3MTAwMDciPiA8c3BhbiBjbGFzcz0ibWFpbHJ1LXZpc2liaWxpdHktY2hlY2stY291bnRlciIgZGF0YS1jb3VudGVyPSJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczU3BpcldUT0FBQUFNa25nQ1A4SHh6MzhBOG9QN0szVHhEZWhQODdaWnBoS0EweGZPVXJRQjQxUUE3Z0dZMXZBOXNGMkJEY3dLMW1tRFZyQ2JZVFF4TngtWnR4ZGlZX002SVFUTV9pNUJwX1F2a0k0ajdqZU1hWGNXU3hkMmVLVEpsV01IVGpqVTNLdTQzWS1kR25ncndZWURXaU9ZelJ5N0xrSGNUZy16SkJhZVlHVndETXhRckNZTjV6OFFVdW5xUmwxRTRmaHJack54WWFKN3djaFRfWUhyR2RoY3Q1ZVZsX0t1RXlsS1lwTTNKTzhFUlZ2MWxWRVlidnlRUFg3dHZIZFFmV3FYdWpUeHhITTRIYkdkY0lKUzBCSHBfYnpuQS5naWYiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjwvc3Bhbj4gPGltZyBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE0oMSkuZ2lmIiBzdHlsZT0id2lkdGg6MDtoZWlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt2aXNpYmlsaXR5OmhpZGRlbjsiIGFsdD0iIj4KCgoKCgoKCgoKCgoKICAKICAgIAogIAoKCiAKCgoKCgoKCgoKICAKICAKICAKICAKCgoKCgogICAgCiAgICAKICAgIAogIAoKCgoKCjxkaXYgaWQ9InRyZy1iLTE1NTI4NzAzMS01MzA1Nzk3NjUiIHN0eWxlPSJkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MDsgdGV4dC1hbGlnbjogbGVmdDsiPjxkaXYgaWQ9InRyZy1iLTE1NTI4NzAzMS01MzA1Nzk3NjUyIj4KPGRpdiBpZD0iYjE1NTI4NzAzMV81MzA1Nzk3NjUiIGRhdGEtaW5pdD0idHJ1ZSIgZGF0YS1yZW5kZXJ0eXBlPSJuYXRpdmUiPjxkaXYgY2xhc3M9Im11bHRpZm9ybWF0MzAweDMwMHdpZGVOb0JvcmRlci0taXRlbS0tOUtjWUhVIHRyZy12aXNpYmlsaXR5LWNoZWNrIGNsaWNrYXJlYS0tZW5hYmxlZC0tcURSem5GIiBkYXRhLXRyZy1pZD0iMTU1Mjg3MDMxIiBkYXRhLWNsaWNrd3JhcD0id3JhcCIgc3R5bGU9ImhlaWdodDogMzAwcHg7Ij48c3BhbiBjbGFzcz0idmlld2FiaWxpdHlQaXhlbHMtLWNvdW50ZXItLXJkcjlhbSB0cmctdmlzaWJpbGl0eS1jaGVjay1jb3VudGVyIiBkYXRhLWNvdW50ZXI9Imh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNVZC1rR1hVQUFBQUhWQTl2cmhGOVk0bWY0b0ZSMVR1aFVrcHFVUk5KMkFqQndJbmozdWdFVTFkcWNwemlsVjJBaUhwVnd5SGMybUJqTV9nZFpQSkFyMUwzZVE1QTBxaHY4SDY5cXpqbXJyTEFMcDBObjc4d21Db2EtUklBZXdBQkU3T0I2bGtVeGwzTDRFcHFrNTBFTmpXWTU5QmtSdjMyNk5oYk9Lbi1VTGtNdnF1WFd6dDlFNk02cHU3bzl2aTVoMGlqZWJyODA5Z1ZQMEhEelBmWDlZVU5Ca3dyMDZTWXh2aW44R3B1NUMyZjcyeUxQdXlqRXVSWE85M19vN00yRGIxVWh5YXVEZTluRWNadDZ1MzVMRjRZeEtXN3lmN0dSLU81Y0dmYk1lNEs4QUZ2TWJFQ0xNLmdpZiI+PC9zcGFuPjxhIGNsYXNzPSJtdWx0aWZvcm1hdDMwMHgzMDB3aWRlTm9Cb3JkZXItLWFsbEluTGluay0tTGRrTDhZIiBocmVmPSJodHRwczovL2F3YXkudmsuY29tL2F3YXkucGhwP21ycnRvPWh0dHBzJTNBJTJGJTJGaGl6aGluYS1sZXMucnUlMkZwZXJtJTNGdXRtX3NvdXJjZSUzRHZrJTI2dXRtX21lZGl1bSUzRGNwY19wZXJtJTI2dXRtX2NhbXBhaWduJTNEJmFtcDtjbGs9QnlwMllRL2NnbzgqVnkvc1VlY3l1VERIYzJVMDNteC9DRWRPT1JmcUt2blcxb2cvYTA3THFhM3BDa0Y4WmhEZjcqaFExME0qUDVobDJsMHJRaFpJeDdvbFRzVkxoeDMxUnBKWTk4ODJzKkJpeio2NmV5RmF6WjFBVE5kV3IqNyoyR1ZzVG54MExXS0RnMVM5aUVCM0pXbWlORUpJKkpRWWd1ellxNipWWXlNOW42LzZ6c051dFdrZCo2MlBSR1NnUEtoNkVUbzRPZDY2Qi9PSFhFMWNhM2FTOFJEejdFOW9vUDFhRUdzbi81NndKMWRSV0svaGlyUUdqSmt2M09COVVDU3VuMjRJUjREYU5ZZCp2Ny9EcUV2MGpqS0JReTR4aEVvaEFLa0t6azZVQjg5bXJOeGhlN2tKUHM1WmczVlBVUG90ZlplekRHUnN5OFBuZ21qb1RNUUpIQTByOXR0RHNRaE94U1RFeTNxbmVHTERLRzFHVGEyemVzVHVzNXBVbWhMTXRJUm1aWXVSQkoyODg4UDc2U3hSOGlTKmpnbktPM2xndUc4VHkqaEw5L0s3dGZLRzdEWDJQKjB2dmxwN3RndipKYzEyNkxLY3NVYkxuNmtnQmt2aFAvWkNUb2xKM01CM3B4TGFhL2F6L0ZYRENDdUhMVUtRZDV3M3hhVDdhNWJFTEFDLzg4aGRuTFg2QjhmOFUwZlBLREcxQTJuOWtrM3lRVU9DVGpzbDhoWDAqSE5jYjFPbFdjZHlxYk5RVnVCbGhaTS9ER2F0KjJmcG5xRVRZZFpmY1pRa1ZRUm0vRVprOSpvcW9QOThBMW5hdkNRMTYvU3BSU1BlejI5eDhkMHFueUp4RzR1ZXdxVFg4OVI5MTRZVUFhcEtjVVZWV2RORTVUQlBxMjgtJmFtcDtjcD1hZXMxMjg6NjQxYTJmNTU4ZDJjOWE2NjYxOWNlYWJhZGM3MzA4NDcyOGEwOTM0NTZhNWQwNzE3NzQ5YzgwNThmY2M0ZjQ4NiZhbXA7c3A9YWVzMTI4OmRhY2UxZWZmNmIwOWUxYzZhOTM0MTIzOTA2NDVkMzEzM2E0MzllOTFmZjViZTNmNjE4ZTkyZTg0ZjllZDBkN2UmYW1wO2FpPTQ0OTE5ODU4YzY0OTJjMWJkODkwMDIyM2ZjYTRiMGNkIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgZGF0YS1jdXN0Y2xpY2thcmVhPSJhbGwiPjxkaXYgY2xhc3M9Im11bHRpZm9ybWF0MzAweDMwMHdpZGVOb0JvcmRlci0taW1hZ2VDdXN0b20tLXl1TVM0MSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgmcXVvdDtodHRwczovL3N1bjEtOTgudXNlcmFwaS5jb20vaW1wZi92aXlmMUdock03TlYyYmRKQ0hVTjlfaV9hRnRkWmUxWEU4N2x3QS9SeFI5R2FnU1hEMC5qcGc/c2l6ZT0xMDgweDYwNyZhbXA7cXVhbGl0eT05NSZhbXA7a2VlcF9hc3BlY3RfcmF0aW89MSZhbXA7YmFja2dyb3VuZD1mZmZmZmYmYW1wO3NpZ249MThlMDliNWQ0ZWU4NTk0MmQwMWQyNDIyYTQ3N2U0YjkmcXVvdDspOyI+PC9kaXY+PGRpdiBjbGFzcz0ibXVsdGlmb3JtYXQzMDB4MzAwd2lkZU5vQm9yZGVyLS1jb250YWluZXItLXpuYnJZSCI+PGRpdiBjbGFzcz0ibXVsdGlmb3JtYXQzMDB4MzAwd2lkZU5vQm9yZGVyLS1jb250YWluZXJJbm5lci0tS0NyS294Ij48ZGl2IGNsYXNzPSJtdWx0aWZvcm1hdDMwMHgzMDB3aWRlTm9Cb3JkZXItLXRleHRzQ29udGFpbmVyLS1sZnhyZzAiPjxzcGFuIGNsYXNzPSJtdWx0aWZvcm1hdDMwMHgzMDB3aWRlTm9Cb3JkZXItLWhlYWRlcldyYXBwZXItLWFRZXdKeSI+PHNwYW4gY2xhc3M9Im11bHRpZm9ybWF0MzAweDMwMHdpZGVOb0JvcmRlci0taGVhZGVyLS1PdVp4UlgiPtCl0LjQttC40L3QsCDQsiDQu9C10YHRgyAtINCw0YDQtdC90LTQsCDQtNC+0LzQuNC60L7QsiB8ICDQs9C70LXQvNC/0LjQvdCzPC9zcGFuPjwvc3Bhbj48ZGl2IGNsYXNzPSJtdWx0aWZvcm1hdDMwMHgzMDB3aWRlTm9Cb3JkZXItLXRleHRXcmFwLS1nVHpicVkiPjxzcGFuIGNsYXNzPSJtdWx0aWZvcm1hdDMwMHgzMDB3aWRlTm9Cb3JkZXItLXRleHQtLUl4NDZzcSI+0JfQsNGA0Y/QtNC40YLQtdGB0Ywg0LDRgtC80L7RgdGE0LXRgNC+0Lkg0YPRjtGC0LAg0LIgwqvQpdC40LbQuNC90LUg0LIg0LvQtdGB0YPCuy4gINCf0LDQvdC+0YDQsNC80L3Ri9C5INCy0LjQtCDQvdCwINC70LXRgSwg0YfQuNGB0YLRi9C5INCy0L7Qt9C00YPRhSDQuCDRgtC40YjQuNC90LAuICDQlNCw0YDQuNC8INGB0LrQuNC00LrRgyAxMiUg0L/QviDQv9GA0L7QvNC+0LrQvtC00YMgItC80LDQuTEyIiDQpdC40LbQuNC90LAg0LIg0LvQtdGB0YMgLSDRjdGC0L4g0LzQtdGB0YLQvi4uLjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJtdWx0aWZvcm1hdDMwMHgzMDB3aWRlTm9Cb3JkZXItLWluZm9XcmFwLS1ZTUtoYUgiPjxkaXYgY2xhc3M9Im11bHRpZm9ybWF0MzAweDMwMHdpZGVOb0JvcmRlci0tZG9tYWluLS10VFJ6RkkiPmhpemhpbmEtbGVzLnJ1PC9kaXY+PGRpdiBjbGFzcz0ibXVsdGlmb3JtYXQzMDB4MzAwd2lkZU5vQm9yZGVyLS1hZHNMYWJlbC0tQm1kaE9KICI+0KDQtdC60LvQsNC80LAgPC9kaXY+PC9kaXY+PC9hPjxkaXYgY2xhc3M9ImNsb3NlLS1jbG9zZS0tT1dYZ2pNICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAKICAgICAgICAgICAgIAogICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICAiPjxidXR0b24gY2xhc3M9ImNsb3NlLS1jbG9zZUJ1dHRvbi0teWF3MjRfIAogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgIj48aW1nIGNsYXNzPSJjbG9zZS0tY2xvc2VJbWctLUxGYXlRRSIgc3JjPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy84NjY3REQuc3ZnIiBhbHQ9IiI+PC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+PHNjcmlwdD4oZnVuY3Rpb24oKSB7dHJ5IHt2YXIgZGF0YSA9IAp7CgkiY3JlYXRpdmVUeXBlIjogIm11bHRpZm9ybWF0MzAweDMwMHdpZGVOb0JvcmRlciIsCiAgCiAgCiAibGlianMiOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC9pbWcvOEMvNzVDQTBBLmpzIiwKICJsaWJjc3MiOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC9pbWcvNTIvQUU2OEMwLmNzcyIsCgogIAogICJwbGFjZWhvbGRlcklEIjogImIxNTUyODcwMzFfNTMwNTc5NzY1IiwKICAiaGVpZ2h0IjogMzAwLAogICJiYW5uZXIiOiB7CiAgICAiaW1hZ2UiOiB7CiAgICAgIAogICAgICAidHlwZSI6ICJzdGF0aWMiLAogICAgICAidXJsIjogImh0dHBzOi8vc3VuMS05OC51c2VyYXBpLmNvbS9pbXBmL3ZpeWYxR2hyTTdOVjJiZEpDSFVOOV9pX2FGdGRaZTFYRTg3bHdBL1J4UjlHYWdTWEQwLmpwZz9zaXplPTEwODB4NjA3JnF1YWxpdHk9OTUma2VlcF9hc3BlY3RfcmF0aW89MSZiYWNrZ3JvdW5kPWZmZmZmZiZzaWduPTE4ZTA5YjVkNGVlODU5NDJkMDFkMjQyMmE0NzdlNGI5IgogICAgfSwKICAgICJpY29uIjogewogICAgICAgICAidHlwZSI6ICJzdGF0aWMiLAogICAgICAgICAidXJsIjogImh0dHBzOi8vc3VuMS0yMy51c2VyYXBpLmNvbS9zL3YxL2lnMi9vLXdLUk5mWXJPX3lPX1N1VzFYUzNfaGRuZXpNQlh3QVRiYUR1eE1fZThjZFZxNV96aTNHMXlNUGlEdk01Ql9rMlBpWXZPblNHX0kzX0RpaEswMGk3WHdJLmpwZz9zaXplPTIwMHgyMDAmcXVhbGl0eT05NSZjcm9wPTAsMCwxMDgwLDEwODAmYXZhPTEiCiAgICAgfSwKICAgICJ0aXRsZSI6ICLQpdC40LbQuNC90LAg0LIg0LvQtdGB0YMgLSDQsNGA0LXQvdC00LAg0LTQvtC80LjQutC+0LIgfCAg0LPQu9C10LzQv9C40L3QsyIsCiAgICAiZGVzY3JpcHRpb24iOiAi0JfQsNGA0Y/QtNC40YLQtdGB0Ywg0LDRgtC80L7RgdGE0LXRgNC+0Lkg0YPRjtGC0LAg0LIgwqvQpdC40LbQuNC90LUg0LIg0LvQtdGB0YPCuy4gINCf0LDQvdC+0YDQsNC80L3Ri9C5INCy0LjQtCDQvdCwINC70LXRgSwg0YfQuNGB0YLRi9C5INCy0L7Qt9C00YPRhSDQuCDRgtC40YjQuNC90LAuICDQlNCw0YDQuNC8INGB0LrQuNC00LrRgyAxMiUg0L/QviDQv9GA0L7QvNC+0LrQvtC00YMgXCLQvNCw0LkxMlwiINCl0LjQttC40L3QsCDQsiDQu9C10YHRgyAtINGN0YLQviDQvNC10YHRgtC+INGB0LjQu9GLLCDQsiDQutC+0YLQvtGA0L7QvCDQvNC+0LbQvdC+INC+0YLQtNC+0YXQvdGD0YLRjCDQvtGCINCy0YHQtdGFINC/0YDQvtCx0LvQtdC8LCDRgNCw0YHRgdC70LDQsdC40YLRjNGB0Y8sINCy0L7RgdGB0YLQsNC90L7QstC40YLRjNGB0Y8g0Lgg0LfQsNGA0Y/QtNC40YLRjNGB0Y8g0Y3QvdC10YDQs9C40LXQuSDQtNC70Y8g0L3QvtCy0YvRhSDRgdCy0LXRgNGI0LXQvdC40LksINCwINGC0LDQutC20LUg0L3QsNGB0LvQsNC00LjRgtGM0YHRjyDQutGA0LDRgdC+0YLQvtC5INC/0YDQuNGA0L7QtNGLINC4INGB0LLQtdC20LjQvCDQstC+0LfQtNGD0YXQvtC8LiAg0JLRgdC10LPQviDQsiA0MCDQvNC40L3Rg9GC0LDRhSDQtdC30LTRiyDQvtGCINCz0L7RgNC+0LTQsCwg0LLQsNGBINC20LTRg9GCOiAg4oCiINC00L7QvNC40LrQuCDRgSDQv9Cw0L3QvtGA0LDQvNC90YvQvNC4INC+0LrQvdCw0LzQuCAg4oCiINC80LDQvdCz0LDQuyDRgyDQutCw0LbQtNC+0LPQviDQtNC+0LzQsCDRgdC+INCy0YHQtdC8INC90LXQvtCx0YXQvtC00LjQvNGL0LwgIOKAoiDRgtC10YDRgNCw0YHQsCDQtNC70Y8g0L3QsNGB0LvQsNC20LTQtdC90LjRjyDRh9Cw0LXQvCDQuNC70Lgg0LrQvtGE0LUgIOKAoiDRgdC60LDQvdC00LjQvdCw0LLRgdC60LDRjyDQsdCw0L3RjyDRgSDQstC40LTQvtC8INC90LAg0LvQtdGBICDigKIg0LPQvtGA0Y/Rh9C10LUg0LTQttCw0LrRg9C30Lgg0LIg0LXQu9C60LDRhSAg4oCiINC/0YDQvtC60LDRgiDQutCy0LDQtNGA0L7RhtC40LrQu9C+0LIgIOKAoiDQv9GA0L7QtdC60YLQvtGAINC00LvRjyDQstC10YfQtdGA0L3QtdCz0L4g0LrQuNC90L7Qv9GA0L7RgdC80L7RgtGA0LAgIOKAoiDQvdCw0YHRgtC+0LvRjNC90YvQtSDQuNCz0YDRiyAg0JTQvtCx0YDQviDQv9C+0LbQsNC70L7QstCw0YLRjCDQsiDQvNC40YAg0YPRjtGC0LAsINGB0L/QvtC60L7QudGB0YLQstC40Y8g0Lgg0LrRgNCw0YHQvtGC0YshICDQkNGA0LXQvdC00LAg0LTQvtC80LjQutCwINCy0YHQtdCz0L4g0L7RgiAzIDEwMCDRgNGD0LFcL9GB0YPRgi4gIEPQutC40LTQutCwIDEyJSDQvdCwINCw0YDQtdC90LTRgyDQtNC+0LzQsCwg0LTQtdC50YHRgtCy0YPQtdGCINCyINCx0YPQtNC90Lgg0L/QviDQv9GA0L7QvNC+0LrQvtC00YM6INC80LDQuTEyLiAg0J/QtdGA0LXRhdC+0LTQuCDQv9C+INGB0YHRi9C70LrQtSDQuCDQsdGA0L7QvdC40YDRg9C5INGB0LLQvtCx0L7QtNC90YvQtSDQtNC+0LzQuNC60Lg6IGh0dHBzOlwvXC9oaXpoaW5hLWxlcy5ydVwvcGVybT91dG1fc291cmNlPXZrJnV0bV9tZWRpdW09Y3BjX3Blcm0mdXRtX2NhbXBhaWduPTEwMjg1OTI0NzAmdXRtX2NvbnRlbnQ9MTc0NzQxNDU3IiwKICAgIAogICAgImRpc2NsYWltZXIiOiAiIiwKICAgICJkb21haW4iOiAiaGl6aGluYS1sZXMucnUiLAogICAgImN0YVRleHQiOiAi0J/QvtC00YDQvtCx0L3QtdC1IiwKICAgICJ0cmFja2luZ0xpbmsiOiAiaHR0cHM6Ly9hd2F5LnZrLmNvbS9hd2F5LnBocD9tcnJ0bz1odHRwcyUzQSUyRiUyRmhpemhpbmEtbGVzLnJ1JTJGcGVybSUzRnV0bV9zb3VyY2UlM0R2ayUyNnV0bV9tZWRpdW0lM0RjcGNfcGVybSUyNnV0bV9jYW1wYWlnbiUzRCZjbGs9QnlwMllRL2NnbzgqVnkvc1VlY3l1VERIYzJVMDNteC9DRWRPT1JmcUt2blcxb2cvYTA3THFhM3BDa0Y4WmhEZjcqaFExME0qUDVobDJsMHJRaFpJeDdvbFRzVkxoeDMxUnBKWTk4ODJzKkJpeio2NmV5RmF6WjFBVE5kV3IqNyoyR1ZzVG54MExXS0RnMVM5aUVCM0pXbWlORUpJKkpRWWd1ellxNipWWXlNOW42LzZ6c051dFdrZCo2MlBSR1NnUEtoNkVUbzRPZDY2Qi9PSFhFMWNhM2FTOFJEejdFOW9vUDFhRUdzbi81NndKMWRSV0svaGlyUUdqSmt2M09COVVDU3VuMjRJUjREYU5ZZCp2Ny9EcUV2MGpqS0JReTR4aEVvaEFLa0t6azZVQjg5bXJOeGhlN2tKUHM1WmczVlBVUG90ZlplekRHUnN5OFBuZ21qb1RNUUpIQTByOXR0RHNRaE94U1RFeTNxbmVHTERLRzFHVGEyemVzVHVzNXBVbWhMTXRJUm1aWXVSQkoyODg4UDc2U3hSOGlTKmpnbktPM2xndUc4VHkqaEw5L0s3dGZLRzdEWDJQKjB2dmxwN3RndipKYzEyNkxLY3NVYkxuNmtnQmt2aFAvWkNUb2xKM01CM3B4TGFhL2F6L0ZYRENDdUhMVUtRZDV3M3hhVDdhNWJFTEFDLzg4aGRuTFg2QjhmOFUwZlBLREcxQTJuOWtrM3lRVU9DVGpzbDhoWDAqSE5jYjFPbFdjZHlxYk5RVnVCbGhaTS9ER2F0KjJmcG5xRVRZZFpmY1pRa1ZRUm0vRVprOSpvcW9QOThBMW5hdkNRMTYvU3BSU1BlejI5eDhkMHFueUp4RzR1ZXdxVFg4OVI5MTRZVUFhcEtjVVZWV2RORTVUQlBxMjgtJmNwPWFlczEyODo2NDFhMmY1NThkMmM5YTY2NjE5Y2VhYmFkYzczMDg0NzI4YTA5MzQ1NmE1ZDA3MTc3NDljODA1OGZjYzRmNDg2JnNwPWFlczEyODpkYWNlMWVmZjZiMDllMWM2YTkzNDEyMzkwNjQ1ZDMxMzNhNDM5ZTkxZmY1YmUzZjYxOGU5MmU4NGY5ZWQwZDdlJmFpPTQ0OTE5ODU4YzY0OTJjMWJkODkwMDIyM2ZjYTRiMGNkIiwKICAgICJ0cmFja2luZ0xpbmtVcmxUeXBlcyI6ICJleHRlcm5hbCxleHRlcm5hbF9uZXciLAogICAgInRyYWNraW5nTGlua1RyYWNrZXJUeXBlcyI6ICIwIiwKICAgICJpZCI6IDE1NTI4NzAzMQogIH0sInBhZCI6IHsKCQkJCQkJImFsbG93Q2xvc2UiOiB0cnVlLAoJCQkJCQkiYWxsb3dDbG9zZURlbGF5IjogMCwKCQkJCQkJImF1dG9wbGF5IjogdHJ1ZSwKCQkJCQkJImF1dG9tdXRlIjogdHJ1ZSwKCQkJCQkJImFsbG93QmFja0J1dHRvbiI6IHRydWUsCgkJCQkJCSJhbGxvd1JlcGxheSI6IHRydWUsCgkJCQkJCSJvcGVuSW5Ccm93c2VyIjogZmFsc2UsCgkJCQkJCSJzdHlsZXMiOiB7fQoJCQkJCX0sCSAgInN0YXRpc3RpY3MiOiBbCiAgICB7CiAgICAgICJ0eXBlIjogInNob3ciLAogICAgICAidXJsIjogImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNVZC1rR1hVQUFBQUhWQTl2cmhGOVk0bWY0b0ZSMVR1aFVrcHFVUk5KMkFqQndJbmozdWdFVTFkcWNwemlsVjJBaUhwVnd5SGMybUJqTV9nZFpQSkFyMUwzZVE1QTBxaHY4SDY5cXpqbXJyTEFMcDBObjc4d21Db2EtUklBZXdBQkU3T0I2bGtVeGwzTDRFcHFrNTBFTmpXWTU5QmtSdjMyNk5oYk9Lbi1VTGtNdnF1WFd6dDlFNk02cHU3bzl2aTVoMGlqZWJyODA5Z1ZQMEhEelBmWDlZVU5Ca3dyMDZTWXh2aW44R3B1NUMyZjcyeUxQdXlqRXVSWE85M19vN00yRGIxVWh5YXVEZTluRWNadDZ1MzVMRjRZeEtXN3lmN0dSLU81Y0dmYk1lNEs4QUZ2TWJFQ0xNLmdpZiIKICAgIH0sCiAgICB7CiAgICAgICJ0eXBlIjogImNsb3NlIiwKICAgICAgInVybCI6ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczYmlvUlhYVUFBQUFDY1h1cEJGUmJVNFNqc0tRazRSNHRaSDVXVWFjZGJEMEpaekFRNEhwcjM2Z3VLSTY2SDM5UFFoY1J2Q2RqUUpGN2RGd3hKRGN1WmhYbktZQlF3VmVia2NOU0RLT1BEbTB5Y09wQmZucTNOcGg1MEdpY2lCaXZ6cnlCSy1VUUJDV2pTQVk0Yk15ZnlrOWxELTd0UFcyTGZTWXBTb2NHRHZ0aWRrTjZlU1M5Y21GLUR6ajRtUHRnaDhvZjRRcEFyWlhFYWhER3ZMUHgzeWhFdzFFS3hSWUEzWHFCOEFWRkZOZlpPZ3ZBY01yRnZsLWJjR3M5UjNINHBOaDkzaDlQVzF0SGllaVY4WjdjYlhQUEhZQ09wdXU5MG5PR1dieWNhbEhkdTJGMnBMYXVlby5naWYiCiAgICB9LAogICAgewogICAgICAidHlwZSI6ICJjbGljayIsCiAgICAgICJ1cmwiOiAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1lCQTFsY3RBUUFBYThLT202RXBrS1pYUkhjeFpOVlJkdWVmNW5MRjFvNlJIbkpFckMzYVFaUUxTNDdhRkpzZDBPOVZtR0F0aEJhR1Q3RUJLUmE1SUhhU2s3T211UkkzNlhITTZvZ1M5UGFjT3QxM1Mtek1YaTdGWVpRX1dtQjhKcXVCejhrRWZGQmI2Nm44aTVkMEVnTE9UeWxVd1BBQ0JHTFpZWXB3U3oyRnl2Zm1aREpYc1dTb2gtMTM3MVNZSW1TdDdTVF9FSzNMcWxUZV9WYWhRRy1yNE1hbjltMDI3dVRQS0xKdGlMbnV3RU9qdHNPZEhwa1dWazh4bG1MMmY1OWlRV0dUVm11VF93QzN2WDZPM21ITjhGSVdDaTdfNVF0N1cyZWJBbGZfcVV0ZzBZNVA3cTd1M3NPd1hrZ0liZHBPYVZOQklrYl9ocTJ1Z21EbkJOVXhJdkY1MTQxbThMLXJTU2VWT1FINmhFeTloTi0zY2Z0UGtIMzIwMGNOYkl1dU9PN2pDX0prdUowa1VUbXFzMllzblJ3WWhIOS1QZy5naWYiCiAgICB9CiAgXSwKICAibGliT3B0aW9ucyI6IHsiaXNGcmFtZSI6IGZhbHNlfSwKCQkJCQkidGhlbWVzIjogewoJCQkJCQkic2VwdGltYSI6ICIiLAoJCQkJCQkicG9ueW1vZGUiOiAiIiwKCQkJCQkJInJvdW5kZWQiOiAiMCIsCgkJCQkJCSJleHBfaWQiOiAiIiwKCQkJCQkJImluM3BhbmVNZXRhdGhyZWFkIjogIiIsCgkJCQkJCSAiaXNEYXJrVGhlbWUiOiAiIiwiRFRfYmciOiAiIiwKCQkJCQkJIkRUX2JvcmRlckNvbG9yIjogIiIsCgkJCQkJCSJEVF90aXRsZUhvdmVyQ29sb3IiOiAiIiwKCQkJCQkJIkRUX3RpdGxlQ29sb3IiOiAiIiwKCQkJCQkJIkRUX3RleHRDb2xvciI6ICIiLAoJCQkJCQkiRFRfdXJsQ29sb3IiOiAiIiwKCQkJCQkJIkRUX2JnSG92ZXIiOiAiIiwKCQkJCQkJIkRUX2hvdmVyQ29sb3IiOiAiIiwKCQkJCQkJIkRUX3RvcCI6ICIiLAoJCQkJCQkiRFRfdG9wSG92ZXIiOiAiIiwKCQkJCQkJIkRUX3NlbnRNc2dPa0JnIjogIiIsCgkJCQkJCSJEVF9zZW50TXNnT2tCZ0hvdmVyIjogIiIsCgkJCQkJCSJEVF9zZW50TXNnT2tCb3JkZXJDb2xvciI6ICIiLAoJCQkJCQkiRFRfc2VudE1zZ09rVGV4dENvbG9yIjogIiIsCgkJCQkJCSJEVF9zZW50TXNnT2tUaXRsZUNvbG9yIjogIiIsCgkJCQkJCSJEVF9zZW50TXNnT2tUaXRsZUhvdmVyQ29sb3IiOiAiIiwKCQkJCQkJIkRUX3NpdGVCZ0NvbG9yIjogIiIsCgkJCQkJCSJEVF9sZWZ0SG92ZXIiOiAiIiwKCQkJCQkJIkRUX2xlZnRMaW5rIjogIiIsCgkJCQkJCSJEVF9sZWZ0VGV4dCI6ICIiLAoJCQkJCQkiRFRfbGlzdEJnIjogIiIsCgkJCQkJCSJEVF9saXN0QmdIb3ZlciI6ICIiLAoJCQkJCQkiRFRfbGlzdEJvcmRlckNvbG9yIjogIiIsCgkJCQkJCSJEVF9saXN0VGV4dENvbG9yIjogIiIsCgkJCQkJCSJEVF9saXN0VGl0bGVDb2xvciI6ICIiLAoJCQkJCQkiRFRfbGlzdFRpdGxlSG92ZXJDb2xvciI6ICIiLAoJCQkJCQkiRFRfbGlzdEJ1dHRvbkJnQ29sb3IiOiAiIiwKCQkJCQkJIkRUX2xpc3RCdXR0b25UZXh0Q29sb3IiOiAiIiwKCQkJCQkJIkRUX2xpc3RCdXR0b25UZXh0SG92ZXJDb2xvciI6ICIiLAoJCQkJCQkiRFRfbGlzdEJ1dHRvbkJvcmRlckNvbG9yIjogIiIsCgkJCQkJCSJEVF9saXN0QnV0dG9uQm9yZGVySG92ZXJDb2xvciI6ICIiLAoJCQkJCQkiRFRfbGlzdEJ1dHRvbkJnSG92ZXJDb2xvciI6ICIiLAoJCQkJCQkiY2xvdWRCZ0NvbG9yIjogIiIsCgkJCQkJCSJjbG91ZFRleHRDb2xvciI6ICIiLAoJCQkJCQkiY2xvdWRUb3BIb3ZlckNvbG9yIjogIiIKCQkJCQl9LAogICJjbG9zZVJlYXNvbiI6IHsKICAgICAgImljb25MaW5rIjogImh0dHBzOi8vci5tcmFkeC5uZXQvaW1nLzMzLzkyQUJBMS5wbmciLAogICAgICAiY2xvc2VBY3Rpb25UZXh0IjogItCX0LDQutGA0YvRgtGMIiwKICAgICAgImNsb3NlVXJsIjogIiIsCiAgICAgICJjbGlja0xpbmsiOiAiaHR0cHM6Ly9sZWdhbC5teS5jb20vdXMvbXl0YXJnZXQvcHJpdmFjeS8iLAogICAgICAiYWJvdXRDb21wYW55TGluayI6ICJodHRwczovL3ZrLmNvbS9hZF9pbmZvLnBocD9oYXNoPWJmM2IyNjM2OWY2MjUzOWE4YyZhZF9pZD0xNzQ3NDE0NTcmYWRfdHlwZT1hZF9vZmZpY2UiLAogICAgICAKICAgICAgIm9wdGlvbnMiOiAgWwogICAgICAgICAgewogICAgICAgICAgICAgICJpZCI6IDEsCiAgICAgICAgICAgICAgIm5hbWUiOiAi0J3QtSDQuNC90YLQtdGA0LXRgdC90L4iLAogICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1daRlNqZlZBQUFBcG82QS1vTzg5VWZaRUZqTHVEakpqZ1U2alhlOGZiazV6LURTSjBKWk52VVFTb29yaFdESEdyS1pxc2d5U091dEhhUDRXME1ocVZFMlAzMml4MzFORVNnc2RaQU0xMkRBYkVWeEFLSk9pR082c0NET3BpUXhBSkRzY3ZMX3dQa3BkdXhmYXVOblA1MTN1bllraTNpUlRaUmJZNjYxTG5KYkYyQUlpWWVEQU80Q0xrLUlnSVdKOG1Qem1BendvMTRKODFhTWNhMktqbWg3SUxQeWFDSkFTZE9waGJxNGJkaHlQcERmVVp1ZkEtVERoRmZMOGVIVHNHOHBabEgtNnZOYzI0dk12dTltSkVDZ3ExMTBJS1FFRHNJb3RHOWMtTjRtWFR3VGU2bHRJTjAuZ2lmIiwKICAgICAgICAgICAgICAic2hvdWxkQ2xvc2VBZCI6IHRydWUKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICAgImlkIjogMiwKICAgICAgICAgICAgICAibmFtZSI6ICLQo9C20LUg0L/RgNC40L7QsdGA0LXRgtC10L3QviIsCiAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczYW9YZ2luVkFBQUF5NFdKVExITGNvNFBVZUJ3SHVWTWh2WHhkVkJUZDRJWWh4RVNWNTdiWWhkaU5pbEg2RGMzOXl4WTZVaGZjRlNiN0VKUmFWUHBUSUZsNnM2NjB6NHZBYVdRaDRiNWUxZi1MTTJZSWxVY3owZi1EZEh5OTlLazZSZkFsVldwLUtXUTR2clJtQVVCSl93WkJSU09QbFVhb0F1cXEwWkthVDJyU0w2N1plcXBmaGVhUWowT2tDYXFRYWp5bnBlLXVpZE4xc2JWZmN3MVp1VDJRZmVkVUtTT3hHZGlCbXBxdW5fYkdSM0hjbC1XNlk3NEJROHAxY091dDFHMGUtVWpSTXFBOE8wRkxJSENKMHk2bU9XRy12azhyREQ4cnMycXNqc0JwMzI5dnNEempiYy5naWYiLAogICAgICAgICAgICAgICJzaG91bGRDbG9zZUFkIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgICAiaWQiOiAzLAogICAgICAgICAgICAgICJuYW1lIjogItCS0LjQttGDINGB0LvQuNGI0LrQvtC8INGH0LDRgdGC0L4iLAogICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1ZwbGFDX1ZBQUFBTGdmM2NnMk1VV1BPTkdDcmhzbkFzRHZWR2EtX3BrX2FfR3g3eWR0emxCTDdtVzBzTjdGQzZhRXJxckVpR1dreS1mT3NQUTV0SE5PZ2hrYzhjcVRBTGFkaVR1MjJRMzM2eFJqS0lqbWFXWkg0MkNBLU93Tnk2VTFINDA1bGRjRWlmZFh4aW9tVkl1VVQxeVQ2dEFoeTN5WHNJcGxtQngtdnFqRmt2WkZzRjNNWC1SaUc2WDFhcVNYa2RveHNvQ0pneDZhTWN5MXNzUGF3NVRMWEY3bU9uakRBLVB0RUhKak51NTZOdEk5TTFCLU9lXzl1b0FNSjJncFl6V2NTU19jTDFVR3JGc1lmV3BFLXdBMGZKTWZ2azk0a1Z0RkNoTFFPUGNMQmJlbzN4YjAuZ2lmIiwKICAgICAgICAgICAgICAic2hvdWxkQ2xvc2VBZCI6IHRydWUKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICAgImlkIjogNCwKICAgICAgICAgICAgICAibmFtZSI6ICLQntGB0LrQvtGA0LHQuNGC0LXQu9GM0L3QvtC1INGB0L7QtNC10YDQttCw0L3QuNC1IiwKICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNVSEhoeF9WQUFBQV9reXc4QWZqczJFZEV5ekhIMUVrbTduNXRUOFNWU0c3T28zelJrS0tQczdSOXQwbFBUTjdDZW9MQzdnQmhBSmRyNEFOc01pNUxILU9ZWjBJVE05bUpDTVRDZGtCUVRrRjU2c1FpZXhjUmJRYkdzUWJSVEY5Y29yZmhYV3ZEQzZSWS1EZXpodmVUWEhqRVJMZWtycnJhQXpqWmpSODR2YWI4QWdWRUppRThKOFlmSnM4NUFGcVM4NGNnZl9aM3ZzYW5Bb3VKOHpndnlxZmpqZXA2Xy16N3pJM0d4c1NRTWFhVFkweFpmc2ZDRXhEcTFKV0hoYzAxQ0dDMk9iOURsX2VkUVZQT3J4Wm4yeU5kajdpZG1Pcl95OEpvUlNIX2F4SlVqd0ZSODd3RHZBLmdpZiIsCiAgICAgICAgICAgICAgInNob3VsZENsb3NlQWQiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAgICJpZCI6IDUsCiAgICAgICAgICAgICAgIm5hbWUiOiAi0KHQtdC60YHRg9Cw0LvRjNC90YvQuSDQv9C+0LTRgtC10LrRgdGCIiwKICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNYejdfa1RWQUFBQXYyck05UTZVRDdkVV9YOHJfaEo5NWhkeU12dkcxYzU4UG5yaFpuTjc5TkhVS1NZM2xnV25rX3h2czh3ekZVM1lFcHlXZmk1M0FFZzQ1anVMTVliaHZvb0dHTzlSTUtfUTBhdE1ocGZZNGpET0RCQ25zOW9Ic1NDU05KS1lidVFHSjVGTWxpaUtKb1hGcm01b01lc3hMZzVNX19lcHdJMG5TZEFpb1Q0ck4zMnBpblFpMFZGRi1HVUtEckxpWXBnMlN3UGpCZWZUZUI4ZER4bHoxUnF3aWdiU1N1OHkzVEJ0NlVJT0xZUUtleWtUdDQtZmp2a0tZNnBGdnFWd1BkUnpWdjUzenNReGhNVzlSWVR2anp0NEFBQnYwV2w3U2hRTnJhazJyOHRzX2hZLmdpZiIsCiAgICAgICAgICAgICAgInNob3VsZENsb3NlQWQiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAgICJpZCI6IDYsCiAgICAgICAgICAgICAgIm5hbWUiOiAi0J3QsNGA0YPRiNC10L3QuNC1INC30LDQutC+0L3QsCIsCiAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczUU1Ed1g3VkFBQUFzc1FTWktRQlZCQVdLeTA5SUZzQU96eUw3eUt3SWhLN2J2MDA1R1E3bFVNOUxEZlJ2TXFIMEdMYVgwMFFVZGxNSTRDVDRJaDJPTy1HYjVYSWxVOFFHSUd1eVJvOUhNMjAwemJjV21GMkpnMTgtN3VwZzFMd1J4WTdWcHJOeGk0VDROd19XeUpnVWt0aHpEaHlLMWs1d2JGZl9QMVc2TGE1UkcyOUpIZEJjVng4djF4Uko5SktaQmlRT2VEOEpmMTY3ZkFDTnNsc1NycVVKU3FyWFQ5ZUhPZWlocDJ1T1NxVU1xZ2pSYlpJb082c2lCUlFVSjEtZ1R6bUlkd3ZvRkRwcUFKUXJzZEZZazMxX0VOLU5RVEhrN3hNX0g5WDB2M2l3NDdBUFlUMXV6WS5naWYiLAogICAgICAgICAgICAgICJzaG91bGRDbG9zZUFkIjogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgICAiaWQiOiA3LAogICAgICAgICAgICAgICJuYW1lIjogItCc0L7RiNC10L3QvdC40YfQtdGB0LrQuNC5INGB0LDQudGCIiwKICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNkUDNPUl9WQUFBQWJIbDM0TlZtQ2dlS1NWZUtzbkY1TEFfb21odHpwY1VLR0VkM3pmM01raGxQM3BCc1ZNVmIyLUFEYUI2MWM3N0RXa1RUN0dscDdfWGIyMHhIZ2NPdUMtdmZrU1F5Yy1YYjE1eDZ5aHF5MDZzMzdYa2FfXzdRbkpMQWQxVHpsOUx0ZkJrcUJwMWRtRnV0b0I3TnVvVHJBcEJPSFpiVWNhai1xN0xPNHNUYmtYREJtR1dqcUg1TG4tZVlteklkb056X05jR2lRSTcxY09jVjhNbGhGOS1zdUhIVXZ6TFhlNFpvY2xlbkhXRmpibV9yZndSYm1tYkg0WkkwYWhtUXZJTmRHSWpCbVdoQjduSjUzcHVjYXU1M0JCSUFnMktnQmtNbHVTUVN0UWFaZUFVLmdpZiIsCiAgICAgICAgICAgICAgInNob3VsZENsb3NlQWQiOiB0cnVlCiAgICAgICAgICB9LAogICAgICAgICAgewogICAgICAgICAgICAiaWQiOiA4LAogICAgICAgICAgICAibmFtZSI6ICLQodC60YDRi9GC0YwiLAogICAgICAgICAgICAic2hvdWxkQ2xvc2VBZCI6IHRydWUKICAgICAgICAgIH0KICAgICAgXQogICAgfQp9Cjt9IGNhdGNoIChlKSB7IGNvbnNvbGUud2FybihlKTsgfXZhciBpc0lFMTEgPSAoZnVuY3Rpb24gKCkgewogICAgLyogdHJ1ZSBvbiBJRTExLCBmYWxzZSBvbiBFZGdlIGFuZCBvdGhlciBJRXMvYnJvd3NlcnMuICovCiAgICAvKnZhciBpc0lFMTEgPSAhIXdpbmRvdy5NU0lucHV0TWV0aG9kQ29udGV4dCAmJiAhIWRvY3VtZW50LmRvY3VtZW50TW9kZTsqLwogICAgdmFyIHVhID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ7CiAgICBpZiAodWEuaW5kZXhPZigiQXBwbGVXZWJLaXQiKSAhPT0gLTEpIHtyZXR1cm4gZmFsc2U7fSAKICAgIGVsc2UgaWYgKHVhLmluZGV4T2YoIkx1bmFzY2FwZSIpICE9PSAtMSkge3JldHVybiBmYWxzZTt9IAogICAgZWxzZSBpZiAodWEuaW5kZXhPZigiU2xlaXBuaXIiKSAhPT0gLTEpIHtyZXR1cm4gZmFsc2U7fQogICAgdmFyIGFycmF5ID0gLyhtc2llfHJ2Oj8pXHMqKFtcZC5dKykvLmV4ZWModWEpOwogICAgdmFyIHZlcnNpb24gPSAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoID4gMikgPyBhcnJheVsyXSA6ICcnOwogICAgcmV0dXJuIHZlcnNpb24gPT09ICcxMScgfHwgdmVyc2lvbiA9PT0gJzExLjAnOwp9KTsKCnZhciBxdWV1ZSA9IHdpbmRvd1snVFJHQlZpZXdfcXVldWUnXTsKaWYgKCFkYXRhIHx8ICFkYXRhLmhhc093blByb3BlcnR5KCdsaWJPcHRpb25zJykpIHsgCiAgICBkYXRhLmxpYk9wdGlvbnMgPSB7fTsgICAgCn0KZGF0YS5saWJPcHRpb25zLnBhZCA9ICIxMjk5Mjc0IjsKZGF0YS5saWJPcHRpb25zLnRlbXBsYXRlID0gIjgiOwpkYXRhLmxpYk9wdGlvbnMucGF0dGVybiA9ICJtdWx0aWZvcm1hdDMwMHgzMDB3aWRlTm9Cb3JkZXIiOwppZiAoIXF1ZXVlKSB7CiAgICBxdWV1ZSA9IHdpbmRvd1snVFJHQlZpZXdfcXVldWUnXSA9IFtkYXRhXTsKfSBlbHNlIHsKICAgIHF1ZXVlLnB1c2goZGF0YSk7Cn0KdmFyIGNvcmUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZGF0YS10cmdidmlldy1jb3JlJyk7CmlmICghY29yZSkgewogICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwpzY3JpcHQuc3JjID0gaXNJRTExKCkgPyAnaHR0cHM6Ly9yLm1yYWR4Lm5ldC9pbWcvOEEvMTRBOTJFLmpzJyA6ICdodHRwczovL3IubXJhZHgubmV0L2ltZy8xNy8zRjg4N0EuanMnOwogICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnaWQnLCAnZGF0YS10cmdidmlldy1jb3JlJyk7CiAgICBzY3JpcHQub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnZGF0YS1sb2FkZWQnLCAndHJ1ZScpCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgaWYgKCFkYXRhKSB7CiAgICAgICAgICAgICAgICBsb2dFcnJvcignbm9fZGF0YScsICdlbXB0eSB0ZW1wbGF0ZSBkYXRhIHByZWluaXQnKTsKICAgICAgICAgICAgICAgIC8qY29uc29sZS53YXJuKCd0cmcgbm8gZGF0YScpOyovCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIHF1ZXVlID0gd2luZG93WydUUkdCVmlld19xdWV1ZSddOwogICAgICAgICAgICBpZiAocXVldWUgJiYgd2luZG93LlRSR0JWaWV3Q29yZSAmJiB0eXBlb2Ygd2luZG93LlRSR0JWaWV3Q29yZS5nbG9iSW5pdCA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgICAgICAgd2luZG93LlRSR0JWaWV3Q29yZS5nbG9iSW5pdChxdWV1ZSwgaXNJRTExKCkpOwogICAgICAgICAgICAgICAgZGVsZXRlIHdpbmRvd1snVFJHQlZpZXdfcXVldWUnXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGxvZ0Vycm9yKCdub19saWInLCAnbm8gbGliIG9yIGluaXQgZnVuY3Rpb24nKTsKICAgICAgICAgICAgICAgIC8qY29uc29sZS53YXJuKCd0cmcgd2ViIGxpYiBvYmplY3Qgb3IgZ2xvYkluaXQgaXMgbm90IGEgZnVuY3Rpb24nKTsqLwogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBsb2dFcnJvcignbm9fZGF0YScsICdubyB0ZW1wbGF0ZSBkYXRhIGNhdGNoJyk7CiAgICAgICAgfQogICAgfQogICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwp9IGVsc2UgaWYgKGNvcmUgJiYgY29yZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtbG9hZGVkJykgPT09ICd0cnVlJykgewogICAgdmFyIHF1ZXVlID0gd2luZG93WydUUkdCVmlld19xdWV1ZSddOwogICAgaWYgKHF1ZXVlICYmIHdpbmRvdy5UUkdCVmlld0NvcmUgJiYgdHlwZW9mIHdpbmRvdy5UUkdCVmlld0NvcmUuZ2xvYkluaXQgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICB3aW5kb3cuVFJHQlZpZXdDb3JlLmdsb2JJbml0KHF1ZXVlLCBpc0lFMTEoKSk7CiAgICAgICAgZGVsZXRlIHdpbmRvd1snVFJHQlZpZXdfcXVldWUnXTsKICAgIH0gZWxzZSB7CiAgICAgICAgbG9nRXJyb3IoJ25vX2xpYicsICdubyBsaWIgb3IgaW5pdCBmdW5jdGlvbicpOwogICAgICAgIC8qY29uc29sZS53YXJuKCd0cmcgd2ViIGxpYiBvYmplY3Qgb3IgZ2xvYkluaXQgaXMgbm90IGEgZnVuY3Rpb24nKTsqLwogICAgfQp9Cgp2YXIgcGxhY2VIb2xkZXJFbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2IxNTUyODcwMzFfNTMwNTc5NzY1Jyk7CmlmIChwbGFjZUhvbGRlckVsZW0pIHsKICAgIHBsYWNlSG9sZGVyRWxlbS5zZXRBdHRyaWJ1dGUoJ2RhdGEtaW5pdCcsIHRydWUpOwp9fSkoKTs8L3NjcmlwdD4KICA8L2Rpdj48L2Rpdj4KCgoKCgoKCgo8c2NyaXB0PgogIChmdW5jdGlvbihwcmVmaXgpewogICAgdHJ5ewogICAgICAKICAgICAgZnVuY3Rpb24gZ2V0QWRzQ29udGFpbmVycygpIHsKICAJCQl2YXIgQURTX0NMQVNTID0gcHJlZml4ICsgJy12aXNpYmlsaXR5LWNoZWNrMicsCiAgCQkJCUFEU19DT1VOVEVSX0NMQVNTID0gQURTX0NMQVNTICsgJy1jb3VudGVyJywKICAJCQkJQURTX0NBTExCQUNLX0NMQVNTID0gQURTX0NMQVNTICsgJy1jYWxsYmFjaycsCiAgCQkJCUNPVU5URVJfQVRUUiA9ICdkYXRhLWNvdW50ZXInLAogIAkJCQlDT1VOVEVSX0FUVFJfVU5ERVRFUk1JTkVEID0gQ09VTlRFUl9BVFRSICsgJy11bicsCiAgCQkJCUNPVU5URVJfQVRUUl9OT05WSUVXQUJMRSA9IENPVU5URVJfQVRUUiArICctbnYnLAogIAkJCQlDQUxMQkFDS19BVFRSID0gJ2RhdGEtY2FsbGJhY2snLAogIAkJCQlPQlNFUlZFUl9BVFRSID0gJ2RhdGEtb2JzZXJ2ZXInLAogIAkJCQljb250YWluZXJzID0gW10sCiAgCQkJCWNvdW50YWJsZXMgPSBbXSwKICAJCQkJaSwgaywgY291bnRlcnMsIF9jb3VudGVyLCBfb2JzZXJ2ZXI7CiAgIAogIAkJCWNvbnRhaW5lcnMgPSBnZXRCeUNsYXNzKGRvY3VtZW50LCBBRFNfQ0xBU1MpOwogIAkJCWZvciAoaSA9IGNvbnRhaW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAJCQkJdmFyIGNvdW50ZXJzID0gZ2V0QnlDbGFzcyhjb250YWluZXJzW2ldLCBBRFNfQ09VTlRFUl9DTEFTUywgJ3NwYW4nKTsKICAJCQkJX2NvdW50ZXIgPSBjb250YWluZXJzW2ldLmdldEF0dHJpYnV0ZShDT1VOVEVSX0FUVFIpOwogIAkJCQlfb2JzZXJ2ZXIgPSBjb250YWluZXJzW2ldLmhhc0F0dHJpYnV0ZShPQlNFUlZFUl9BVFRSKTsKICAJCQkJY291bnRhYmxlc1tpXSA9IHsKICAJCQkJCWVsOiBjb250YWluZXJzW2ldLAogIAkJCQkJcGl4ZWxzOiBbXSwKICAJCQkJCXBpeGVsc191bmRldGVybWluZWQ6IFtdLAogIAkJCQkJcGl4ZWxzX25vbnZpZXdhYmxlOiBbXSwKICAJCQkJCW9ic2VydmVyOiBfb2JzZXJ2ZXIKICAJCQkJfTsKICAJCQkJaWYgKF9jb3VudGVyKSBjb3VudGFibGVzW2ldLnBpeGVscy5wdXNoKF9jb3VudGVyKTsKICAJCQkJZm9yIChrID0gY291bnRlcnMubGVuZ3RoIC0gMTsgayA+PSAwOyBrLS0pIHsKICAJCQkJCWlmIChjb3VudGVyc1trXS5wYXJlbnROb2RlID09PSBjb3VudGFibGVzW2ldLmVsKSB7CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzLnB1c2goX2NvdW50ZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY291bnRlciA9IGNvdW50ZXJzW2tdLmdldEF0dHJpYnV0ZShDT1VOVEVSX0FUVFJfVU5ERVRFUk1JTkVEKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzX3VuZGV0ZXJtaW5lZC5wdXNoKF9jb3VudGVyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSX05PTlZJRVdBQkxFKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzX25vbnZpZXdhYmxlLnB1c2goX2NvdW50ZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogIAkJCQl9CiAgCQkJCXZhciBjYWxsYmFjayA9IGdldEJ5Q2xhc3MoY29udGFpbmVyc1tpXSwgQURTX0NBTExCQUNLX0NMQVNTLCAnc3BhbicpOwogIAkJCQlpZiAoY2FsbGJhY2tbMF0pIHsKICAJCQkJICB2YXIgX2NhbGxiYWNrID0gY2FsbGJhY2tbMF0uZ2V0QXR0cmlidXRlKENBTExCQUNLX0FUVFIpOwogIAkJCQkgIGlmIChfY2FsbGJhY2sgJiYgd2luZG93LlJCX0NBTExCQUNLUyAmJiB3aW5kb3cuUkJfQ0FMTEJBQ0tTW19jYWxsYmFja10pIHsKICAJCQkJICAgIGNvdW50YWJsZXNbaV0uY2FsbGJhY2sgPSB3aW5kb3cuUkJfQ0FMTEJBQ0tTW19jYWxsYmFja107CiAgCQkJCSAgfQogIAkJCQl9CiAgCQkJCWlmICghY291bnRhYmxlc1tpXS5waXhlbHMubGVuZ3RoKSBjb3VudGFibGVzLnNwbGljZShpLCAxKTsKICAJCQl9CiAgIAogIAkJCXJldHVybiBjb3VudGFibGVzOwogIAkJfQogICAKICAJCWZ1bmN0aW9uIGdldEJ5Q2xhc3MocGFyZW50LCBjaGlsZENsYXNzTmFtZSwgdGFnTmFtZSkgewogIAkJCWlmIChwYXJlbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSkgewogIAkJCQlyZXR1cm4gcGFyZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2hpbGRDbGFzc05hbWUpOwogIAkJCX0gZWxzZSBpZiAocGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwpIHsKICAgCiAgCQkJCXJldHVybiBwYXJlbnQucXVlcnlTZWxlY3RvckFsbCgnLicgKyBjaGlsZENsYXNzTmFtZSk7CiAgCQkJfSBlbHNlIHsKICAJCQkJdmFyIGVscyA9IFtdOwogIAkJCQl2YXIgdG1wID0gcGFyZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZ05hbWUgPyB0YWdOYW1lIDogIioiKTsKICAJCQkJdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cCgiKF58XHMpIiArIGNoaWxkQ2xhc3NOYW1lICsgIihcc3wkKSIpOwogIAkJCQlmb3IgKHZhciBpID0gMDsgaSA8IHRtcC5sZW5ndGg7IGkrKykgewogIAkJCQkJaWYgKHJlZ2V4LnRlc3QodG1wW2ldLmNsYXNzTmFtZSkpIHsKICAJCQkJCQllbHMucHVzaCh0bXBbaV0pOwogIAkJCQkJfQogIAkJCQl9CiAgCQkJCXJldHVybiBlbHM7CiAgCQkJfQogIAkJfQogICAKICAJCVJCQy5JKGdldEFkc0NvbnRhaW5lcnMoKSk7CiAgICAgIAogICAgfWNhdGNoKGUpe30KICB9KCdtYWlscnUnKSkKPC9zY3JpcHQ+CgoKCgo8c3R5bGU+CiAgI3RyZy1iLTE1NTI4NzAzMS01MzA1Nzk3NjVbZGF0YS1oaWRlLTUzMDU3OTc2NV0gewogICAgcG9zaXRpb246IGFic29sdXRlIWltcG9ydGFudDsKICAgIGxlZnQ6IC05OTk5cHghaW1wb3J0YW50OwogICAgei1pbmRleDogLTEhaW1wb3J0YW50OwogICAgd2lkdGg6IDEwMCU7CiAgfQoKICAjeWFuZGV4X2FkX1ItMTQ3MDIzLTI2N181MzA1Nzk3NjUxIHsKCSAgYm9yZGVyLXJhZGl1czogOHB4IWltcG9ydGFudDsKICB9Cjwvc3R5bGU+CjxkaXYgaWQ9InlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1MS1waXhlbDEiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CiAgPGRpdiBpZD0ieWFuZGV4X2FkX1ItMTQ3MDIzLTI2N181MzA1Nzk3NjUxLXBpeGVsMiI+CiAgICA8ZGl2IGlkPSJ5YW5kZXhfYWRfUi0xNDcwMjMtMjY3XzUzMDU3OTc2NTEiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MzAwcHg7Ij48L2Rpdj4KICA8L2Rpdj4KPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAoZnVuY3Rpb24gKHcsIGQsIG4sIHMsIHQpIHsKICAgIHZhciB0aW1lU3RhcnQgPSArbmV3IERhdGUoKTsKCiAgICB2YXIgZmlyc3REaXJlY3RSZW5kZXIgPSB0cnVlOwogICAgdmFyIGZhbGxiYWNrSW52b2tlZCA9IGZhbHNlOwogICAgdmFyIGZhbGxiYWNrVGltZW91dCA9IG51bGw7CgogICAgdmFyIGZhbGxiYWNrVHlwZSA9IHsKICAgICAgRk9SQ0U6ICdmb3JjZScsCiAgICAgIFVOU1VQUE9SVDogJ3Vuc3VwcG9ydCcsCiAgICAgIFRJTUVPVVQ6ICd0aW1lb3V0JywKICAgICAgRVJST1I6ICdlcnJvcicsCiAgICAgIEVNUFRZOiAnZW1wdHknCiAgICB9OwoKICAgIGlmICghdy5NYXAgfHwgKHcuYXR0YWNoRXZlbnQgJiYgIXcuYWRkRXZlbnRMaXN0ZW5lcikpIHsgLy8gImJhZCIgSUUKICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgZmFsbGJhY2soZmFsbGJhY2tUeXBlLlVOU1VQUE9SVCk7CiAgICAgIH0sIDApOwogICAgICByZXR1cm47CiAgICB9CgoJCXZhciBmYWxsYmFja0RlbGF5ID0gMjUwMDsKCiAgICBpZiAoZmFsbGJhY2tEZWxheSkgewogICAgICBmYWxsYmFja1RpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICBmYWxsYmFjayhmYWxsYmFja1R5cGUuVElNRU9VVCk7CiAgICAgIH0sIGZhbGxiYWNrRGVsYXkpOwogICAgfSBlbHNlIHsKICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgZmFsbGJhY2soZmFsbGJhY2tUeXBlLkZPUkNFKTsKICAgICAgfSwgMCk7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICBmdW5jdGlvbiBnZXRCcm93c2VyTGFiZWwoKSB7CiAgICAgIHZhciBicm93c2VyID0gJ3Vuayc7CiAgICAgIHZhciB1YSA9IG5hdmlnYXRvci51c2VyQWdlbnQ7CgogICAgICBpZiAodWEuaW5kZXhPZignT3BlcmEnKSAhPT0gLTEgfHwgdWEuaW5kZXhPZignT1BSJykgIT09IC0xKSB7CiAgICAgICAgYnJvd3NlciA9ICdvcHInOwogICAgICB9IGVsc2UgaWYgKHVhLmluZGV4T2YoJ0VkZ2UnKSAhPT0gLTEpIHsKICAgICAgICBicm93c2VyID0gJ2VkZyc7CiAgICAgIH0gZWxzZSBpZiAodWEuaW5kZXhPZignQ2hyb21lJykgIT09IC0xKSB7CiAgICAgICAgYnJvd3NlciA9ICdjaHInOwogICAgICB9IGVsc2UgaWYgKHVhLmluZGV4T2YoJ1NhZmFyaScpICE9PSAtMSkgewogICAgICAgIGJyb3dzZXIgPSAnc2ZyJzsKICAgICAgfSBlbHNlIGlmICh1YS5pbmRleE9mKCdGaXJlZm94JykgIT09IC0xKSB7CiAgICAgICAgYnJvd3NlciA9ICdmZic7CiAgICAgIH0gZWxzZSBpZiAoKHVhLmluZGV4T2YoJ01TSUUnKSAhPT0gLTEpIHx8ICghIWRvY3VtZW50LmRvY3VtZW50TW9kZSA9PT0gdHJ1ZSkpIHsKICAgICAgICBicm93c2VyID0gJ2llJzsKICAgICAgfQoKICAgICAgcmV0dXJuIGJyb3dzZXI7CiAgICB9CgogICAgZnVuY3Rpb24gbG9nUmVuZGVyKGZhbGxiYWNrVHlwZSkgewogICAgICB2YXIgdGltZUVuZCA9ICtuZXcgRGF0ZSgpOwogICAgICB2YXIgZHVyYXRpb24gPSB0aW1lRW5kIC0gdGltZVN0YXJ0OwogICAgICB2YXIgYnJvd3NlciA9IGdldEJyb3dzZXJMYWJlbCgpOwogICAgICB2YXIgc2xvdElkID0gJzEyOTkyNzQnOwogICAgICB2YXIgaXByZWZpeCA9ICdiLScgKyBicm93c2VyICsgJ19zLScgKyBzbG90SWQ7CgogICAgICB2YXIgaWRhdGEgPSB7fTsKCiAgICAgIGlkYXRhW2lwcmVmaXggKyAnX3JlbmRlciddID0gZHVyYXRpb247CgogICAgICBpZiAoZmFsbGJhY2tUeXBlKSB7CiAgICAgICAgaWRhdGFbaXByZWZpeCArICdfJyArIGZhbGxiYWNrVHlwZV0gPSBkdXJhdGlvbjsKCiAgICAgICAgaWYgKCcnKSB7CiAgICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ19tcmsnXSA9IGR1cmF0aW9uOwogICAgICAgICAgaWRhdGFbaXByZWZpeCArICdfJyArIGZhbGxiYWNrVHlwZSArICdfbXJrJ10gPSBkdXJhdGlvbjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWRhdGFbaXByZWZpeCArICdfdHJnJ10gPSBkdXJhdGlvbjsKICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnXycgKyBmYWxsYmFja1R5cGUgKyAnX3RyZyddID0gZHVyYXRpb247CgogICAgICAgICAgaWYgKCcnKSB7CiAgICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnX3RyZ19oaSddID0gZHVyYXRpb247CiAgICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnXycgKyBmYWxsYmFja1R5cGUgKyAnX3RyZ19oaSddID0gZHVyYXRpb247CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ190cmdfbG8nXSA9IGR1cmF0aW9uOwogICAgICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ18nICsgZmFsbGJhY2tUeXBlICsgJ190cmdfbG8nXSA9IGR1cmF0aW9uOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ19kaXJlY3QnXSA9IGR1cmF0aW9uOwoKICAgICAgICBpZiAoJycpIHsKICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnX2RpcmVjdF9oaSddID0gZHVyYXRpb247CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnX2RpcmVjdF9sbyddID0gZHVyYXRpb247CiAgICAgICAgfQogICAgICB9CgogICAgICBpZiAody54cmF5KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmICh4cmF5LnNlbmRJbW1lZGlhdGVseSkgewogICAgICAgICAgICB4cmF5LnNlbmRJbW1lZGlhdGVseSgnYWRtYW4tdGltZScsIHsKICAgICAgICAgICAgICBpOiBpZGF0YQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHhyYXkuc2VuZCgnYWRtYW4tdGltZScsIHsKICAgICAgICAgICAgICBpOiBpZGF0YQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gZmFsbGJhY2sodHlwZSkgewogICAgICBpZiAoZmFsbGJhY2tJbnZva2VkKSByZXR1cm47CiAgICAgIGNsZWFyVGltZW91dChmYWxsYmFja1RpbWVvdXQpOwogICAgICBmYWxsYmFja0ludm9rZWQgPSB0cnVlOwoKICAgICAgdmFyIHRyZ0IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHJnLWItMTU1Mjg3MDMxLTUzMDU3OTc2NSIpOwogICAgICB2YXIgdHJnQjIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHJnLWItMTU1Mjg3MDMxLTUzMDU3OTc2NTIiKTsKICAgICAgdmFyIHRyZ1lhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1MSIpOwogICAgICB2YXIgdHJnWWFXcmFwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1MS1waXhlbDEiKTsKCiAgICAgIGlmICh0cmdZYSkgewogICAgICAgIHRyZ1lhV3JhcC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICB9CgogICAgICBpZiAodHJnQikgewogICAgICAgIGlmICh0cmdCLmdldEF0dHJpYnV0ZSgiZGF0YS1oaWRlLTUzMDU3OTc2NSIpID09PSAiaGlkZS1iYW5uZXIiKSB7CiAgICAgICAgICB0cmdCLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1oaWRlLTUzMDU3OTc2NSIpOwogICAgICAgIH0KICAgICAgICB0cmdCLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwogICAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdHJnLWItMTU1Mjg3MDMxLTUzMDU3OTc2NSAudHJnLXYtYmFubmVyJyk7CiAgICAgICAgaWYgKGNvbnRhaW5lci5sZW5ndGgpIHsKICAgICAgICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lclswXSB8fCBudWxsOwogICAgICAgIH0KICAgICAgICBpZiAoY29udGFpbmVyICYmIGNvbnRhaW5lci5wbGF5VmlkZW9DaGVjayAmJiB0eXBlb2YgY29udGFpbmVyLnBsYXlWaWRlb0NoZWNrID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICBjb250YWluZXIucGxheVZpZGVvQ2hlY2soKTsKICAgICAgICB9CiAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNjeHNMRUxWQUFBQVVmdWE1cVpkMTVZZXpEVmtUQzZ4QlR3eWhQLTVSY2ozOGpDeFRkQWpaWFA5ckJvOWtzRG9BZzVzODFuWDlEdXY2V05KSjdDSC1UV0djaHZfUXJHRXhZeVRtTkVmYW9ad3hHbENRNVBMbFlaN1pjbk1Pak9kdlhWbklNa1hpTF9jSk5LR1hVVEJHMmYwMWd4eVh4XzVlYVdsVDdPVHhOazUzc1lIUkF5N1ZhSnlQTnJxSnhSN0dzYk0tX1psRk5ONk53TG5uelUxOUNicmJ1TXBlY2dJXzVycEVOQzc0XzlwT2xFS3ZFUFp5WHFfanlhbnlKeDV4N0NaYUFudUhHeUx5akhyYWhmV0c2cnd5THhxZXRjRmRSZi02bGZjR0xQRGZTMUxiSk1NUjIwLmdpZiI7CiAgICAgICAgUkJDLkkoewogICAgICAgICAgICBlbDogdHJnQiwKICAgICAgICAgICAgcGl4ZWxzOiAgWwogICAgICAgICAgICAnaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1dCQm1EeklCQUFBODNDTFAwdzlfdndXRkJXV2JoaDlZZHpzM1NrVVVJWXEwU3VCS1FZRExzRDJfTHUxYUQ1OGFLRkhaVmR4RjZvdUFiYXp2eHJNdEpPdnhmbXdiSGYyekh3d09xeFpZUi1JOHJleGpMQlZhRHBDbDdFTkppaDJqazY2MmVXWTVNMV9uRy1yMjQxWGZPZ21LdEZ2TTNTUFdEZGxEMlZwQ00xcWVMRUYtUVpyQzFvd2JpOEozU0RaY0t4bDlLaW9TSmlibEpwSU5mRVFZQWZPcFcycWhobUlqVE1mdmlSMWoxQzBwNm0yUE9DZk1oeTllemlZTElBMktmekZBck1kOVo5dVVzeExVZjRzSXNWVFVmWjJfZ0c3REtBS0phc2IxT1JYNlBxWDJqLUwtdW9XcnFCck9JNmEwbzlRN1g0WkxQUlowWWVIMHZCdUVYWVd1NGVzVmlJc2hKVmY0VW5UV2pZVU1yVEtLcnlHVUNod1ZnSkEwOXFSN0tEUzFHYV9LTHRDMk0tR2trT0VRSHdVSVlfR3h4TTB6ZUFIX25GVEs2MkRIZEg2djlqeURKMUx2eTlGdEdNcC1ESzk2Q254QXpTMHdLdWVCTjdiZzVBWDdIU2twWEJMaDBsVlRGYU9DODlMUXI1eVpSUTNXaUppMXdOblM1cEoxTjNPU1FOb2RuVFFRUE5HV3MtbHJLUVpLTjVGTHdLUHZuSi1pWGUwRzZ3NmtzdXAxRmp6Q2k4QWR1ZVdWYllETm50Vmh5TUdrVmh1eThUbS1CeXdEZkQ5RVkwTGF0R1dEcXN3bXFHU2VWRU9NVmNxUE1fMmc1ZGZENDBBN3BkUGY5XzVhMFo3cjhETXdhRlA1T3o0emw1X1RidXZtZmlKdjhrTkw3dEs2bm14Qm44bTBOY092MS1tRlM0dWluUUhNOXVpcHFaTV9qaEZBNUY4RXlRMlZWbUlRTHlEd0ptMVJXU2RjSkpHZGdSRnpWSGdoUFkzNXBRQmtuT3hJQ0RGZmlpcEVhLVJVQ0ZBTmg1aEUtVFZXRl9HTU00MnEzQWJFQjVXNEltRzFPTzVheVpPWFIxbDJfQk84ank2MUNBZWtlQ1JnWTYzNE1MYXZqMVhBem1DWkRkNmwwWUw3bFRCcmMzU0l1VE16RkpBM3doWEdCNTZiM2RzUVVrZkJOSkw1bWIyVHF1RndFOF9sbjdMcldHd1F0RVEzWUNET1BWTGIxTzJ3TlpRVmdPdHc1Ykt3VUdJSkFmUG0yUFBsTDJUZGItRDBXTUh3dGk3U2lTQS12VUZISmhIdE8yMjRibWF1emgxUlE3RkhhUlRlSGJLSkxSSGh5WWdPWURpVzZ3Q21YQ1o3UnA2bkJoMHE2cE5EM1h4YWxCWHNPN0wybTY5WC1pZjFBM3UtaDVGYXpLNWI5djVocURCV2pjTG1kUkw2LXVabUxRdDJIa2sySlA1NEJ4T1l0MkdXdlBSRXF3dHlIbk5JaVJ2V1Q0b0xhRnZUZTE1eFFPU2NLTE9OQkd2X2xqcWVkOFpBN3RXQUFqS1N6QWxXWGV5U3B0NkVWMHdLek9lTlM1NE5FelFtcFpMUldZY3lXMzc1Ml94MjRjQmZhUDM0b0NoNXN3aXN3ZkJVUkJFVlV5c09mRE9PNElkZjVBY1I0ZW5tb3NEM1pPa21lbnZSLVJPcmJMVHNWZGFjZVVIWEtrV2hXMEM4ci1US25VVWZCUHJhcWJPVlJRUEpGbFpMc0FZYktqWTk3T05Ra1R6aDZoT1QzOU1KTkxQVFlycGczZS14dWY1dmNHeGc4X3Jla2pJRTBkRXZyRnpYcU4xamNGUEt0LVN0NnNZQ09rQThabnJtbzFudGxvVUFmemx1My1LR3pxNUlZRlB3cXpPLS1JWnVwWS01bEJhSXcwR3VtdUxzYVR5V1U3VUl0MGotSUQ0N2F6YzFxbEJ5WVgyU1NGRDZKejBCTjNBOGxMbFo1eUhvM3A5YmNFak4yVmRQTXZjakZYVE5jUGJOaTBwU2Zib0FaVE1ldnpINWp4SmdwUDJEcG5KcGZ3aHk3ZDVCb2RCdTF3cjBQeWZZN1JwMEs4a2dZRXBjZ01yT3NVV3BKNmlsLW9temFKcHdId1ZRS2s0RHFKUHU3dXktNW5hRVRMSE51ZkNnTlVtN0czYy1IbUxUanNDVkxrY080SllUSjAuZ2lmJywgJ2h0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNVRTZ6QUxWQUFBQTFub25JaDdmWEJVQW52Z2ZwcmJRN0tBLUxGY04tdjBlWURzNm5DT2tyVEtOOXhNT2VDckRVdWxRcGktMlZVWEZiTWlOMDRIT1BtSF9fN3ZVcXZ5UVRIZHVKR0VkUldwS1dQZG9DOEx6M2o0ZXIza3QtanpnTGFEaVdvOFdMWWFlOEw5SFloS0ljcDhVZVlqRlBYYk5IVWQ2NFJFeGtJTkU1am1zbENTNnExNnRaX2gtMUliSWlyRElpRWZEcGl2Ymg5RF9CT21rU3JkcjRZZ0V4c1U3R1BiYmN5VVlMTW9yR2RnN09kYm1XTHBqVzlhYll5SUtqRE9RMEluYVRkYWxVMThhUEQxTk9MYVFCNjNyMFU2NDJzdmt6SGg3TS1qWFRrV1hrTWtGc3prLmdpZicsCiAgICAgICAgICAgICdodHRwczovL3ZrLmNvbS9hbXRfbG5reD9kPUJ5cDJZUS9jZ284KlZ5L3NVZWN5dVRESGMyVTAzbXgvQ0VkT09SZnFLdm5XMW9nL2EwN0xxYTNwQ2tGOFpoRGY3KmhRMTBNKlA1aGwybDByUWhaSXg3b2xUc1ZMaHgzMVJwSlk5ODgycypCaXoqNjZleUZheloxQVROZFdyKjcqMkdWc1RueDBMV0tEZzFTOWlFQjNKV21pTkVKSSpKUVlndXpZcTYqVll5TTluNi82enNOdXRXa2QqNjJQUkdTZ1BLaDZFVG80T2Q2NkIvT0hYRTFjYTNhUzhSRHo3RTlvb1AxYUVHc24vNTZ3SjFkUldLL2hpclFHakprdjNPQjlVQ1N1bjI0SVI0RGFOWWQqdjcvRHFFdjBqaktCUXk0eGhFb2hBS2tLems2VUI4OW1yTnhoZTdrSlBzNVpnM1ZQVVBvdGZaZXpER1JzeThQbmdtam9UTVFKSEEwcjl0dERzUWhPeFNURXkzcW5lR0xES0cxR1RhMnplc1R1czVwVW1oTE10SVJtWll1UkJKMjg4OFA3NlN4UjhpUypqZ25LTzNsZ3VHOFR5KmhMOS9LN3RmS0c3RFgyUCowdnZscDd0Z3YqSmMxMjZMS2NzVWJMbjZrZ0JrdmhQL1pDVG9sSjNNQjNweExhYS9hei9GWERDQ3VITFVLUWQ1dzN4YVQ3YTViRUxBQy84OGhkbkxYNkI4ZjhVMGZQS0RHMUEybjlrazN5UVVPQ1Rqc2w4aFgwKkhOY2IxT2xXY2R5cWJOUVZ1QmxoWk0vREdhdCoyZnBucUVUWWRaZmNaUWtWUVJtL0Vaazkqb3FvUDk4QTFuYXZDUTE2L1NwUlNQZXoyOXg4ZDBxbnlKeEc0dWV3cVRYODlSOTE0WVVBYXBLY1VWVldkTkU1VEJQcTI4LSZyPTgwNzg0NzQ1NyZjcD1hZXMxMjg6NjQxYTJmNTU4ZDJjOWE2NjYxOWNlYWJhZGM3MzA4NDcyOGEwOTM0NTZhNWQwNzE3NzQ5YzgwNThmY2M0ZjQ4NiZzcD1hZXMxMjg6ZGFjZTFlZmY2YjA5ZTFjNmE5MzQxMjM5MDY0NWQzMTMzYTQzOWU5MWZmNWJlM2Y2MThlOTJlODRmOWVkMGQ3ZScKICAgICAgICAgICAgLCdodHRwczovL3ZrLmNvbS9hbXRfbG5raD9kPUJ5cDJZUS9jZ284KlZ5L3NVZWN5dVRESGMyVTAzbXgvQ0VkT09SZnFLdm5XMW9nL2EwN0xxYTNwQ2tGOFpoRGY3KmhRMTBNKlA1aGwybDByUWhaSXg3b2xUc1ZMaHgzMVJwSlk5ODgycypCaXoqNjZleUZheloxQVROZFdyKjcqMkdWc1RueDBMV0tEZzFTOWlFQjNKV21pTkVKSSpKUVlndXpZcTYqVll5TTluNi82enNOdXRXa2QqNjJQUkdTZ1BLaDZFVG80T2Q2NkIvT0hYRTFjYTNhUzhSRHo3RTlvb1AxYUVHc24vNTZ3SjFkUldLL2hpclFHakprdjNPQjlVQ1N1bjI0SVI0RGFOWWQqdjcvRHFFdjBqaktCUXk0eGhFb2hBS2tLems2VUI4OW1yTnhoZTdrSlBzNVpnM1ZQVVBvdGZaZXpER1JzeThQbmdtam9UTVFKSEEwcjl0dERzUWhPeFNURXkzcW5lR0xES0cxR1RhMnplc1R1czVwVW1oTE10SVJtWll1UkJKMjg4OFA3NlN4UjhpUypqZ25LTzNsZ3VHOFR5KmhMOS9LN3RmS0c3RFgyUCowdnZscDd0Z3YqSmMxMjZMS2NzVWJMbjZrZ0JrdmhQL1pDVG9sSjNNQjNweExhYS9hei9GWERDQ3VITFVLUWQ1dzN4YVQ3YTViRUxBQy84OGhkbkxYNkI4ZjhVMGZQS0RHMUEybjlrazN5UVVPQ1Rqc2w4aFgwKkhOY2IxT2xXY2R5cWJOUVZ1QmxoWk0vREdhdCoyZnBucUVUWWRaZmNaUWtWUVJtL0Vaazkqb3FvUDk4QTFuYXZDUTE2L1NwUlNQZXoyOXg4ZDBxbnlKeEc0dWV3cVRYODlSOTE0WVVBYXBLY1VWVldkTkU1VEJQcTI4LSZyPTE0ODM2OTIyNzUmZT1LZ3pOVk5GcXdkWm56a1JJM0NiMVRMMUx1Nko5alFQS2lIelpQUmo1YUw4RG1OMjM2L0I0WUlldWo5dVhpNGlkS2U1OXNkYUVrTXZzVEYwQlh2MmRXUTM4d2VGbmJJU040UmVvKndHeTd0c3IqRjd1WjJkOW5rL3FlSE43KmRYc242ZXVyUkEzU1JYMkxVMHlqdUdMOUl5SjRSNmlydUJoQ0lLOE41eUl3MDAtJmNwPWFlczEyODo2NDFhMmY1NThkMmM5YTY2NjE5Y2VhYmFkYzczMDg0NzI4YTA5MzQ1NmE1ZDA3MTc3NDljODA1OGZjYzRmNDg2JnNwPWFlczEyODpkYWNlMWVmZjZiMDllMWM2YTkzNDEyMzkwNjQ1ZDMxMzNhNDM5ZTkxZmY1YmUzZjYxOGU5MmU4NGY5ZWQwZDdlJwogICAgICAgICAgICBdCiAgICAgICAgfSk7CiAgICAgICAgUkJDLkkoewogICAgICAgICAgICBlbDogdHJnQjIsCiAgICAgICAgICAgIHBpeGVsczogIFsnaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM2JkMlp4X1ZBQUFBblB4SlptMDJKMHEyUXI5MGFLeWpOTS1Idy1meGs4cWRhS0Y2V3BEc05FX0prclZRNVUydGY1VkUwY2t5NXpLTEZCN1V0T2Q5MElia3RRa19pT01hTGpYNFdtVElEMGZJTjNIMzVRMUdBcHRsd3ZuUDczaE9rTnVWRjhFNy0ycnhhMjdlekZRa1Jvdk9yQU05WGVhZ09VSnVaZ3VBMzFaY3F5S25fQnFDUGFnVWk1NUtORTd1dTZtSkgyRlB2U19MSHVQdHp5eVlIbEtHRi1BN1d6NGd5R2c3UTU3eWRqR2Rrd3FYeGp2UndXR1lHLTFrSG9nUUg1bzFrMVVwSkpNNzNHdWRSREpqQW9qVE9aWTNIX0d4eUoyUGVxLUp2T0w1QnVhUmpmR1EwRzguZ2lmJywnaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM2ZfVHZuN1ZBQUFBYnJLTExrR3AyZUR4RDBwbGNLdTZMbmVVRlNuSkpUaUNhRmtfZ2ZiU0tRZktHNUYwbXBuZlpBMEQ1Mk9EOHZORUxqOEhuU0xCNUtuMHAxZFhKcmpKSDNtVDlCX3JQaW0zenNyS0VkUDl1ZUtqcXlkaENjSVNQb19FZG1CU2twaXNBdkRXcWR3QXNsbVhNd29KMVJkeExnSkIzNWFRMEl1WmtxbmRKUGRrTWktVkxsN1FSQUxaSEl1LWdFd0Z4WDE1MHY4RXc5bm04SG1LUFVZc0F5NUY4MndjT3p2Ynh2OGJmNzhEbjhvaG9ON0QxenFuTERadjF0aC0zNGxMblhIVkIzS1lxM3JqNU52Y3ZQZG1Vci1jci11cG9WN0hCbTJsbkEzRWJXUnJ2THcuZ2lmJ10sCiAgICAgICAgICAgIGRlbGF5OiAyCiAgICAgICAgfSk7CgogICAgICAgIGlmICh0eXBlID09PSBmYWxsYmFja1R5cGUuVElNRU9VVCkgewogICAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNRTDNRVW5WQUFBQUR4YXUxM3ZkUFBiOHlhZnVnbW1IM2U5czhLSzFsRTZxMkpNa1dncFYzbjJYTFdWbmIxWEVTSzRFTkdxVWpRUkhjdFRKYWxEcTRTQlJQMUFtbkc5d09BTFpHekw5NHpOYlNOZldHRVVEMGRaQ2ZlMVlWWjEwRVBIVjlCWHRrTWp4cW1JdFhpNFJRZjROVTdla0dFZXpwYXdnb3ZLYXl0aGFqOFdiOFNmQml2X212VjBNUGVmbWNTQ3RzWmpGYW9JdnlXZVpFdjNGc3pIOWF3LURlRER6VjEyUm45clNkSTVQYmE5SHVxdy1mZjV3ZVh1OC1VcVgxX2YySUVtSWNDRUlING5idEp0dU9wdlgyaDNKSi1PUzdmcUlndUVFNVZpYTNUQmhDRU84ajVZLmdpZiI7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBmYWxsYmFja1R5cGUuRVJST1IpIHsKICAgICAgICAgIG5ldyBJbWFnZSgpLnNyYyA9ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczU0g1alc3VkFBQUFSaWdhRGl2YkVQSWtZZWtRZ3JjREtRTkpUUjJxQV9GSW1WdFlUdTBSSGpkclczVTRRaHJ3WGZsMFk2WjRQZU5EdC1EWG12UGZiMmVsbjMtYXE1V0xrX280WEhILXE0Y2Q4ZFFTT1h2eXNWd3V5Nkk2ZWVnRW54MzJURWw4TWFHSmxiOERqNmVLaTF5LXRVaWVfdFhuODFuQ01HWUc0VEFyd2RyMWlDWEk1SXBVMGhMbzk0N29SSzJscEViR0V3aFNVZWJoaGQzenE0cFlvb2pXZGVyb0s1WVBBX0J0UUZSTnU1NWpibGlPRnY0TjhYdjB6VlVYMTRjMXpkN2otNzI4bUVfVzROSFc5Y3QxMVN6cGF5ODViRUNoZFVKTTNhak1kSEJNalhNVk1IQS5naWYiOwogICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gZmFsbGJhY2tUeXBlLkVNUFRZKSB7CiAgICAgICAgICBuZXcgSW1hZ2UoKS5zcmMgPSAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM2JYSFFEX1ZBQUFBWUxzN1lwNzR0eWtEVGJCVkhOdl9XelNLQjlXQmdwTjVQNW5mSTZMM21HMExrY1lKSGVGdW5NZ3ZBaGJBb3FYYWhQamZvaHhQZlhfMGtyWUNSeEIzOFJ2bzdwTXEyQnZ6VW1sdlpVMXhiMDJvUDVxSHY5UVZObG9BM0NrZ0J6YXZxTkxsNG44ajNDTmg0VDFMSEY4bTE4Mm9NMFhyc3ZuZ2xSSGVuU0pSZ1RNT0s4cVVNaVBJYjBEZTFRZmFzUHF0emVfcUNlcmRSZl90eTF4TUsxODlpdHJtaHBldzRWd2h0LXdxZy10U3ZWcFgyTVpxV3hVX2EzQ2laYlVuU0tWTjhEYUJacGlDMElQQmMzSHpSbVRaa2tGcmpEY1FfenZKMk5oQU4taEk1S0kuZ2lmIjsKICAgICAgICB9CgogICAgICAgIGxvZ1JlbmRlcih0eXBlKTsKICAgICAgfQogICAgfQoKICAgIC8vIFN0YXQgdXRpbHMKICAgIGZ1bmN0aW9uIGdldEFyZWFSYXRpbyhjb250YWluZXIsIHNlbGVjdG9yKSB7CiAgICAgIHZhciBlbGVtcyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTsKICAgICAgdmFyIHRvdGFsQXJlYSA9IDA7CgogICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGVsZW1zLmxlbmd0aDsgaSA8IGw7IGkrKykgewogICAgICAgIHZhciBlbCA9IGVsZW1zW2ldOwogICAgICAgIHZhciB3ID0gKGVsLmNsaWVudFdpZHRoID09PSAwKSA/IDAgOiAoZWwud2lkdGggfHwgZWwuY2xpZW50V2lkdGgpOwogICAgICAgIHZhciBoID0gKGVsLmNsaWVudEhlaWdodCA9PT0gMCkgPyAwIDogKGVsLmhlaWdodCB8fCBlbC5jbGllbnRIZWlnaHQpOwogICAgICAgIHRvdGFsQXJlYSArPSB3ICogaDsKICAgICAgfQoKICAgICAgaWYgKHRvdGFsQXJlYSA9PT0gMCkgewogICAgICAgIHJldHVybiB0b3RhbEFyZWE7CiAgICAgIH0KCiAgICAgIHZhciBjb250YWluZXJBcmVhID0gY29udGFpbmVyLmNsaWVudFdpZHRoICogY29udGFpbmVyLmNsaWVudEhlaWdodDsKICAgICAgcmV0dXJuIHRvdGFsQXJlYSAvIGNvbnRhaW5lckFyZWE7CiAgICB9CgogICAgZnVuY3Rpb24gb25Db250ZXh0UmVhZHkoKSB7CiAgICAgIFlhLkNvbnRleHQuQWR2TWFuYWdlci5yZW5kZXIoewogICAgICAgIGJsb2NrSWQ6ICJSLTE0NzAyMy0yNjciLAogICAgICAgIHBhZ2VOdW1iZXI6ICI1MzA1Nzk3NjUxIiwKICAgICAgICByZW5kZXJUbzogInlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1MSIsCiAgICAgICAgc3RhdElkOiAiNzUiLAogICAgICAgIGFzeW5jOiB0cnVlLAogICAgICAgIGRpc2FibGVIaWdobGlnaHQ6IHRydWUsCiAgICAgICAgb25SZW5kZXI6IGZ1bmN0aW9uIChkYXRhKSB7CiAgICAgICAgICBpZiAoZmFsbGJhY2tJbnZva2VkKSByZXR1cm47CiAgICAgICAgICBjbGVhclRpbWVvdXQoZmFsbGJhY2tUaW1lb3V0KTsKCiAgICAgICAgICBmdW5jdGlvbiBsb2dZYW5kZXhTdGF0ZShtZXRyaWMsIHJsb2dfbWVzc2FnZSkgewogICAgICAgICAgICB2YXIgc3JjID0gJy8vbWFpbC5yYWRhci5pbWdzbWFpbC5ydS91cGRhdGU/cD1vY3Rhdml1cyZ0PWFkbWFuLXlhJnY9MSZpPScgKyBtZXRyaWMgKyAnOjEmcm5kPScgKyBNYXRoLnJhbmRvbSgpOwoKICAgICAgICAgICAgaWYgKDAgJiYgcmxvZ19tZXNzYWdlKSB7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIHNyYyArPSAnJnJsb2dfbWVzc2FnZT0nICsgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHJsb2dfbWVzc2FnZSkpOwogICAgICAgICAgICAgICAgc3JjICs9ICcmcmxvZz1hZG1hbi15YV8nICsgbWV0cmljOwogICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIG5ldyBJbWFnZSgpLnNyYyA9IHNyYzsKICAgICAgICAgIH0KICAgICAgICAgIAogICAgICAgICAgdmFyIHlhTm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ5YW5kZXhfYWRfUi0xNDcwMjMtMjY3XzUzMDU3OTc2NTEiKTsKCiAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLnJlZnJlc2gpIHsKICAgICAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNScWdOV3ZWQUFBQTMzelVkWUpuYU1WSjFJTlA1MzBSWkxNSHdZMXR4eVZaZHloaldxYk51RHozV0N6SW9wNkItUDZJM3poSkJKVTRDcVhtNENXQ2tibVgzNWVFM0VWSjZ3Z2pmTWFUUjBSZ202SHhnUnliM1RNeG5JSmxNbGp3cDA5QkVJRFVvVVd4TkpvYkdVRjU4Y2pqWFVXaERNdm16UnA3VjlNQ0pUR3RnNWw3NFlsdkx2djhyQ2dQSmZoc0R5aWVUV3VMN3RlVGFfajdHWUFxbjdxbVdfeFhFS2NaUUc3V2ZwQTNsb0x3ZWFYSHBudHFMcU5BMHhQbmtWQ0pTYkV3VkNNYldvOGhnRTRCUlk3T0tYZl9XQ0tIbDZ3SjBHSE5TOWtJSmxkTVZOUEFxRFd5ZHdzLmdpZiI7CgogICAgICAgICAgICBsb2dZYW5kZXhTdGF0ZSgncmVmcmVzaCcpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNkYk9BUnJWQUFBQXlJNXlkQ0M1V1ppUlgtOXAyTHFVYXlBRmdWSGhHdVRuZkFIZzU1d0RvSjJJSXRXMFA2ZHRHbGFYUnVzT1hyTnZDX2szWC1BYkQteE85MjY4bjRJUjdrcWdxZjluX3hIc2tzanFsdG1HWGhuRUhFMXNIT3A0MGd1LTFqSUt5alNDY3MzVkpob3hhbU9OMWFzZUI3c2RoZlVFeFZlZ2phelgwMUdpTmV5b2tHZ3J4RFNtaDVHb3dXZnRjQnRtbW1ZTlRXX1BrN2tfLUZIcDJqWjIzOFF2YzBoRThSRTBzWkNjcW81Q29FSUxmM0dPY19MeUwxZG43cUo1SUZPZF9QWlBGNXM2ZkQ0V0E1bVRhdlI1V25Kc1hfU1BuYURyWHRTZHlsZkxmVGRFamxjLmdpZiI7CiAgICAgICAgICAgIGlmIChmaXJzdERpcmVjdFJlbmRlcikgewogICAgICAgICAgICAgIGZpcnN0RGlyZWN0UmVuZGVyID0gZmFsc2U7CgogICAgICAgICAgICAgIGlmICh5YU5vZGUpIHsKICAgICAgICAgICAgICAgIFJCQy5JKHsKICAgICAgICAgICAgICAgICAgZWw6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ5YW5kZXhfYWRfUi0xNDcwMjMtMjY3XzUzMDU3OTc2NTEtcGl4ZWwxIiksCiAgICAgICAgICAgICAgICAgIHBpeGVsczogWydodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczZUI0bkNQVkFBQUFSeGdrRV90WVp1SG50c3ctWUJYTjFGU0NIVW9jaWRlYVNxUjVLTnBtY1RORkxRa2hKZ0had1lScU51WFBwajBiRnMwU21ac1VIWGVpTGJWdWdhSEpSMk44YktXSEZlcWRoTndWUlNHel92b0g4NnhVQ0RvRVkzblVYSnA5TExKQ2pOYlNQSU16U1JhMEZoaHRLU2xkaW1XcXJQeTVFSXJMWXFFTV8xQlJEMWxEOEk4QnRYWGJ1RTJ6MVhHdnA0VEQ0b2lNWnlSXzlhLWsxOXR1dE9SbXFPVGx4VnJacm50dWdpZDNVTGdEWDk1ZDE2SHRCRHBvdVBXQlA4blFxZ3BCLVl6RGdUanlmOTZnS1pueVc3cmZhakVueHMxZ2tzQ2V6MHU0VFg2NWk5VS5naWYnXQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBSQkMuSSh7CiAgICAgICAgICAgICAgICAgIGVsOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieWFuZGV4X2FkX1ItMTQ3MDIzLTI2N181MzA1Nzk3NjUxLXBpeGVsMiIpLAogICAgICAgICAgICAgICAgICBwaXhlbHM6IFsnaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1ZsMkFuVFZBQUFBYnhpTXE3dG9UTWxOOW9ZMm5uSE11VlhmakstWGJvX3FudjZtZFdOUDB5VnFoZmt4Rm9CR0R3UTZ1UEpGek9qTThmWHBuRjZNNFZHTFhoanhTd1ExVDlDZlZydXh1UDB0cHpGV2hsSk90OTlkUG0wZDZDTC1BanlfTndYcmNtQUUzWHhxUDRxTUVYUUJfU3FvTU5sN0lpTWlRR3NWT2YyRkFPcTRHVU9ZNTZMa2pBTlZ2OGlCS2RjOWk1Mk9ZanM0S24wQmRiRF9XTVZ2TTc3Y3RzMldBcGc3ZU0yaXAtRGhTNWgyYWtJWWxPeTBEM1I5Vm5EN2d4Ymc0bTFzeWU2a3V0VU90Umo3SGlkczBrUXd5eFZuUW1wMWs1dmFtQ3BTa3NVblN5REM4RncuZ2lmJywgJ2h0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNjRmtKWGJWQUFBQWZJN2JHR1ZfWlc4ZndzVi1DcDBiQ1g5bUlxeEtYMzVNUDdic3JXcUR4dHZRUXFuM3pJdXFaUGhTNlFpVk9wV21lakVXNjZLczZVUnZ1QVNSR0hCbWVoMHVZbzctRlRMRy13azc2NmJxSGZSY1ZENEcyUVhZa3JPM2VrSzhKTU52SGpiTEFzbU9OdVRldE9Ia3F1NnhZX3RuT0dxUEFsRDRtUnpMOEYwbUFnbmZBbFB0ajhpZ3YwNzlSOTUtMXVkTmdqWlZhVXlwb1lUaFpYbnl4Z2tPVlJVT21xeWpCZURzWmFDRjhvcHZfUUlZUExHLWJHUmZmWFBUbXhuZ01uNzJLNFBuWmZfMldrRmRma0FqblVnSTl3LW0tTHpVWHRGU1drNE1XVWVPS0hJLmdpZiddLAogICAgICAgICAgICAgICAgICBkZWxheTogMgogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICBsb2dSZW5kZXIoKTsKCiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmICh5YU5vZGUpIHsKICAgICAgICAgICAgICAgICAgaWYgKHlhTm9kZS5pbm5lckhUTUwpIHsKICAgICAgICAgICAgICAgICAgICBsb2dZYW5kZXhTdGF0ZSgnbm90X2VtcHR5X2FmdGVyX3JlbmRlcicpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrKGZhbGxiYWNrVHlwZS5FTVBUWSk7CiAgICAgICAgICAgICAgICAgICAgbG9nWWFuZGV4U3RhdGUoJ2VtcHR5X2FmdGVyX3JlbmRlcicsIGRhdGEpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKHlhTm9kZSAmJiBnZXRBcmVhUmF0aW8oeWFOb2RlLCAnaW1nJykgPiAwLjMpIHsKICAgICAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNiVktKQV9WQUFBQWMwaUdFbFJCRm5ZV3pqeHRTaE1fM0dYcEFNcWhjemJWM21iYzNYa0ozSUwwNl9PV0ttcnlqODJkUkdiT1l5ZTlQTmNtOWFncHQ1cGxGMHlfbGVYQndfSGJCdUE3VnpqSG1hLURjTGZyS1lsLWVuaTU1eG5sQnUzTmJaQzV2azRvTnA3NGxkTVpMM2g0OEwyYVR5UkN2RGNhQzR4enlGNGZOaDgyOHFmVExRbVpnVHp6MnRvYjY3bVNxQ0ZkN2tOWGNJQXNtM18yTi1VZDVxYUk3X2JnaTJ2TWF6XzJLbUtZcV9fMTN4b21KNGQ0N1VtRHRQOU5zRHlTYkg2TG1ZSzdxVEVaak40UE4xNmp0X0EyTktVNVRZdE1manJ5YUFKd1BqcDNBdGNHSnhRLmdpZiI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKGZpcnN0RGlyZWN0UmVuZGVyKSB7CiAgICAgICAgICBmYWxsYmFjayhmYWxsYmFja1R5cGUuRU1QVFkpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CgogICAgdy5ZQV9NQUlMUlVfT0sgPSB0cnVlOwoKICAgIGlmICh3LllhICYmIFlhLkNvbnRleHQgJiYgWWEuQ29udGV4dC5BZHZNYW5hZ2VyICYmIFlhLkNvbnRleHQuQWR2TWFuYWdlci5yZW5kZXIpIHsKICAgICAgb25Db250ZXh0UmVhZHkoKTsKICAgIH0gZWxzZSB7CiAgICAgIHdbbl0gPSB3W25dIHx8IFtdOwogICAgICB3W25dLnB1c2gob25Db250ZXh0UmVhZHkpOwogICAgICBjb25zdCBjb250ZXh0UGF0aCA9ICJodHRwczovL3lhbmRleC5ydS9hZHMvc3lzdGVtL2NvbnRleHQuanMiOwogICAgICBjb25zdCBoYXNOb3RDb25leHRGaWxlID0gZC5xdWVyeVNlbGVjdG9yKCJzY3JpcHRbc3JjPVwiIiArIGNvbnRleHRQYXRoICsgIlwiXSIpID8gZmFsc2UgOiB0cnVlIDsKICAgICAgY29uc3QgbG9hZGVkU2NyaXB0ID0gZnVuY3Rpb24gKCl7CiAgICAgICAgdCA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdOwogICAgICAgIHMgPSBkLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwogICAgICAgIHMudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOwogICAgICAgIHMuc3JjID0gY29udGV4dFBhdGg7CiAgICAgICAgcy5hc3luYyA9IHRydWU7CiAgICAgICAgcy5vbmVycm9yID0gZnVuY3Rpb24gKCkgewogICAgICAgIGZhbGxiYWNrKGZhbGxiYWNrVHlwZS5FUlJPUik7CiAgICAgICAgfTsKICAgICAgICB0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHMsIHQpOwogICAgICB9CiAgICAgIGlmIChoYXNOb3RDb25leHRGaWxlKSB7CiAgICAgICAgbG9hZGVkU2NyaXB0KCk7CiAgICAgIH0KICAgIH0KICB9KSh0aGlzLCB0aGlzLmRvY3VtZW50LCAieWFuZGV4Q29udGV4dEFzeW5jQ2FsbGJhY2tzIik7Cjwvc2NyaXB0Pgo8IS0tUkItSlNPTjpbCiAgICB7CiAgICAgICAgIm5vZGVJZCI6ICJ5YW5kZXhfYWRfUi0xNDcwMjMtMjY3XzUzMDU3OTc2NTEiLAogICAgICAgICJzb3VyY2UiOiAiZGlyZWN0IiwKICAgICAgICAiaXNfZXhwZW5zaXZlIjogIlRydWUiLCJmb3JtYXQiOiAibXVsdGkiLAogICAgICAgICJjb3VudCI6IDEsCiAgICAgICAgImJhbm5lcklkIjogIjE1NTI4NzAzMSIsCiAgICAgICAgImZhbGxiYWNrIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibm9kZUlkIjogInRyZy1iLTE1NTI4NzAzMS01MzA1Nzk3NjUiLAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAic291cmNlIjogInZrIiwKICAgICAgICAgICAgICAgICJmb3JtYXQiOiAibXVsdGkiLAogICAgICAgICAgICAgICAgImNvdW50IjogMQogICAgICAgICAgICAgICAgfQogICAgICAgIF0KICAgIH0KXS0tPgoKCgoKCgoKIDwvZGl2PgoKCjxzY3JpcHQ+CiAgKGZ1bmN0aW9uKHByZWZpeCl7CiAgICB0cnl7CiAgICAgIAogICAgICBmdW5jdGlvbiBnZXRBZHNDb250YWluZXJzKCkgewogIAkJCXZhciBBRFNfQ0xBU1MgPSBwcmVmaXggKyAnLXZpc2liaWxpdHktY2hlY2snLAogIAkJCQlBRFNfQ09VTlRFUl9DTEFTUyA9IEFEU19DTEFTUyArICctY291bnRlcicsCiAgCQkJCUFEU19DQUxMQkFDS19DTEFTUyA9IEFEU19DTEFTUyArICctY2FsbGJhY2snLAogIAkJCQlDT1VOVEVSX0FUVFIgPSAnZGF0YS1jb3VudGVyJywKICAJCQkJQ09VTlRFUl9BVFRSX1VOREVURVJNSU5FRCA9IENPVU5URVJfQVRUUiArICctdW4nLAogIAkJCQlDT1VOVEVSX0FUVFJfTk9OVklFV0FCTEUgPSBDT1VOVEVSX0FUVFIgKyAnLW52JywKICAJCQkJQ0FMTEJBQ0tfQVRUUiA9ICdkYXRhLWNhbGxiYWNrJywKICAJCQkJT0JTRVJWRVJfQVRUUiA9ICdkYXRhLW9ic2VydmVyJywKICAJCQkJY29udGFpbmVycyA9IFtdLAogIAkJCQljb3VudGFibGVzID0gW10sCiAgCQkJCWksIGssIGNvdW50ZXJzLCBfY291bnRlciwgX29ic2VydmVyOwogICAKICAJCQljb250YWluZXJzID0gZ2V0QnlDbGFzcyhkb2N1bWVudCwgQURTX0NMQVNTKTsKICAJCQlmb3IgKGkgPSBjb250YWluZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgCQkJCXZhciBjb3VudGVycyA9IGdldEJ5Q2xhc3MoY29udGFpbmVyc1tpXSwgQURTX0NPVU5URVJfQ0xBU1MsICdzcGFuJyk7CiAgCQkJCV9jb3VudGVyID0gY29udGFpbmVyc1tpXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSKTsKICAJCQkJX29ic2VydmVyID0gY29udGFpbmVyc1tpXS5oYXNBdHRyaWJ1dGUoT0JTRVJWRVJfQVRUUik7CiAgCQkJCWNvdW50YWJsZXNbaV0gPSB7CiAgCQkJCQllbDogY29udGFpbmVyc1tpXSwKICAJCQkJCXBpeGVsczogW10sCiAgCQkJCQlwaXhlbHNfdW5kZXRlcm1pbmVkOiBbXSwKICAJCQkJCXBpeGVsc19ub252aWV3YWJsZTogW10sCiAgCQkJCQlvYnNlcnZlcjogX29ic2VydmVyCiAgCQkJCX07CiAgCQkJCWlmIChfY291bnRlcikgY291bnRhYmxlc1tpXS5waXhlbHMucHVzaChfY291bnRlcik7CiAgCQkJCWZvciAoayA9IGNvdW50ZXJzLmxlbmd0aCAtIDE7IGsgPj0gMDsgay0tKSB7CiAgCQkJCQlpZiAoY291bnRlcnNba10ucGFyZW50Tm9kZSA9PT0gY291bnRhYmxlc1tpXS5lbCkgewogICAgICAgICAgICAgIF9jb3VudGVyID0gY291bnRlcnNba10uZ2V0QXR0cmlidXRlKENPVU5URVJfQVRUUik7CiAgICAgICAgICAgICAgaWYgKF9jb3VudGVyKSB7CiAgICAgICAgICAgICAgICBjb3VudGFibGVzW2ldLnBpeGVscy5wdXNoKF9jb3VudGVyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSX1VOREVURVJNSU5FRCk7CiAgICAgICAgICAgICAgaWYgKF9jb3VudGVyKSB7CiAgICAgICAgICAgICAgICBjb3VudGFibGVzW2ldLnBpeGVsc191bmRldGVybWluZWQucHVzaChfY291bnRlcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF9jb3VudGVyID0gY291bnRlcnNba10uZ2V0QXR0cmlidXRlKENPVU5URVJfQVRUUl9OT05WSUVXQUJMRSk7CiAgICAgICAgICAgICAgaWYgKF9jb3VudGVyKSB7CiAgICAgICAgICAgICAgICBjb3VudGFibGVzW2ldLnBpeGVsc19ub252aWV3YWJsZS5wdXNoKF9jb3VudGVyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAJCQkJfQogIAkJCQl2YXIgY2FsbGJhY2sgPSBnZXRCeUNsYXNzKGNvbnRhaW5lcnNbaV0sIEFEU19DQUxMQkFDS19DTEFTUywgJ3NwYW4nKTsKICAJCQkJaWYgKGNhbGxiYWNrWzBdKSB7CiAgCQkJCSAgdmFyIF9jYWxsYmFjayA9IGNhbGxiYWNrWzBdLmdldEF0dHJpYnV0ZShDQUxMQkFDS19BVFRSKTsKICAJCQkJICBpZiAoX2NhbGxiYWNrICYmIHdpbmRvdy5SQl9DQUxMQkFDS1MgJiYgd2luZG93LlJCX0NBTExCQUNLU1tfY2FsbGJhY2tdKSB7CiAgCQkJCSAgICBjb3VudGFibGVzW2ldLmNhbGxiYWNrID0gd2luZG93LlJCX0NBTExCQUNLU1tfY2FsbGJhY2tdOwogIAkJCQkgIH0KICAJCQkJfQogIAkJCQlpZiAoIWNvdW50YWJsZXNbaV0ucGl4ZWxzLmxlbmd0aCkgY291bnRhYmxlcy5zcGxpY2UoaSwgMSk7CiAgCQkJfQogICAKICAJCQlyZXR1cm4gY291bnRhYmxlczsKICAJCX0KICAgCiAgCQlmdW5jdGlvbiBnZXRCeUNsYXNzKHBhcmVudCwgY2hpbGRDbGFzc05hbWUsIHRhZ05hbWUpIHsKICAJCQlpZiAocGFyZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUpIHsKICAJCQkJcmV0dXJuIHBhcmVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNoaWxkQ2xhc3NOYW1lKTsKICAJCQl9IGVsc2UgaWYgKHBhcmVudC5xdWVyeVNlbGVjdG9yQWxsKSB7CiAgIAogIAkJCQlyZXR1cm4gcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy4nICsgY2hpbGRDbGFzc05hbWUpOwogIAkJCX0gZWxzZSB7CiAgCQkJCXZhciBlbHMgPSBbXTsKICAJCQkJdmFyIHRtcCA9IHBhcmVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWdOYW1lID8gdGFnTmFtZSA6ICIqIik7CiAgCQkJCXZhciByZWdleCA9IG5ldyBSZWdFeHAoIihefFxzKSIgKyBjaGlsZENsYXNzTmFtZSArICIoXHN8JCkiKTsKICAJCQkJZm9yICh2YXIgaSA9IDA7IGkgPCB0bXAubGVuZ3RoOyBpKyspIHsKICAJCQkJCWlmIChyZWdleC50ZXN0KHRtcFtpXS5jbGFzc05hbWUpKSB7CiAgCQkJCQkJZWxzLnB1c2godG1wW2ldKTsKICAJCQkJCX0KICAJCQkJfQogIAkJCQlyZXR1cm4gZWxzOwogIAkJCX0KICAJCX0KICAgCiAgCQlSQi5JKGdldEFkc0NvbnRhaW5lcnMoKSk7CiAgICAgIAogICAgfWNhdGNoKGUpe30KICB9KCdtYWlscnUnKSkKPC9zY3JpcHQ+CjwvaW5zPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InBsX3EgcGxfbiBwbF94IHBsX2FtIiBkYXRhLXRlc3RpZD0icHVsc2UtY2FyZCI+PGRpdiBjbGFzcz0iQ2FyZFByZWxvYWRlci1yb290LTAtMS0xMDIgQ29udGVudENhcmQtcm9vdC0wLTEtMTA3Ij48ZGl2IGNsYXNzPSJDYXJkUHJlbG9hZGVyLWJvZHktMC0xLTEwMyI+PGRpdiBjbGFzcz0iQ2FyZFByZWxvYWRlci1pbWFnZS0wLTEtMTA0IFBlbmRpbmdCbG9jay1yb290LTAtMS0xMDkiPjwvZGl2PjxkaXYgY2xhc3M9IkNhcmRQcmVsb2FkZXItdGl0bGUtMC0xLTEwNSBQZW5kaW5nQmxvY2stcm9vdC0wLTEtMTA5Ij48L2Rpdj48ZGl2IGNsYXNzPSJDYXJkUHJlbG9hZGVyLWRlc2MtMC0xLTEwNiBQZW5kaW5nQmxvY2stcm9vdC0wLTEtMTA5Ij48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwbF9hZyIgZGF0YS10ZXN0aWQ9InB1bHNlLXJvdyI+PGRpdiBjbGFzcz0icGxfcSBwbF9uIHBsX3ggcGxfYW0iIGRhdGEtdGVzdGlkPSJwdWxzZS1jYXJkIj48ZGl2IGNsYXNzPSJDYXJkUHJlbG9hZGVyLXJvb3QtMC0xLTEwMiBDb250ZW50Q2FyZC1yb290LTAtMS0xMDciPjxkaXYgY2xhc3M9IkNhcmRQcmVsb2FkZXItYm9keS0wLTEtMTAzIj48ZGl2IGNsYXNzPSJDYXJkUHJlbG9hZGVyLWltYWdlLTAtMS0xMDQgUGVuZGluZ0Jsb2NrLXJvb3QtMC0xLTEwOSI+PC9kaXY+PGRpdiBjbGFzcz0iQ2FyZFByZWxvYWRlci10aXRsZS0wLTEtMTA1IFBlbmRpbmdCbG9jay1yb290LTAtMS0xMDkiPjwvZGl2PjxkaXYgY2xhc3M9IkNhcmRQcmVsb2FkZXItZGVzYy0wLTEtMTA2IFBlbmRpbmdCbG9jay1yb290LTAtMS0xMDkiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InBsX3EgcGxfbiBwbF94IHBsX2FtIiBkYXRhLXRlc3RpZD0icHVsc2UtY2FyZCI+PGRpdiBjbGFzcz0icGxfaSBwbF9qIHBsX2wgcGxfYXogcGxfYTAgcGxfYW4iPjxpbnMgY2xhc3M9Im1yZy10YWcgcGxfYXkiIGRhdGEtc2xvdD0iMTI5OTI3NCIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogbm9uZTsiPgoKCgoKCgo8ZGl2IGNsYXNzPSJtYWlscnUtdmlzaWJpbGl0eS1jaGVjayIgaWQ9Im1haWxydTE3MTYzMTMzMTY5NDI4Nzk4NjgiPiA8c3BhbiBjbGFzcz0ibWFpbHJ1LXZpc2liaWxpdHktY2hlY2stY291bnRlciIgZGF0YS1jb3VudGVyPSJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczU0JVNmtqT0FBQUEwRnoxUkJfY2lkallYQVFfUzkxRDVNN0lPd055Q3NFdlpMeHQtNklkbzAtbWNuOVhzdnBnUU5OR3BPNGpaYnRxTHVSY2JEMzVCT0tYV2ltcGJhc3JRZXRHZG5HNmFYX1dSNVVVRHBzR1RLeEl6Ql9NVkNwU0paSGFWc0lVNDZzLTh5VDY1eDRfN19zY3p0TFB5bXJZb0xBTGNJRndjZVlvS045YmM4OEZDVUViM0QzYVJIZ2hTa1pKSXJWcHhNMnZpeGpPaEZJY2xNUlE5Z3lQdnBsaVNWbVNtYzVPaEtUNl9PZWdzNkExUEpaa3lvQ1NSRTBpWGxlRVI2RENreVFRYTB1VUNBbVBQbEVkcVJGcVp3V0wzUS5naWYiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPjwvc3Bhbj4gCgoKCgoKCjxkaXYgY2xhc3M9Im1haWxydS12aXNpYmlsaXR5LWNoZWNrIiBpZD0ibWFpbHJ1MTcxNjMxMzMxNjk0MjcxODg1MyI+IDxzcGFuIGNsYXNzPSJtYWlscnUtdmlzaWJpbGl0eS1jaGVjay1jb3VudGVyIiBkYXRhLWNvdW50ZXI9Imh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNVaWRreG5PQUFBQXZwR0ZFZGJEOFVXRVN3a0RQSm4ydl9EUldJNFZwSDRIbktUdlpCZkxlbjBuemdTaTdNdl9zNXF6cXJ0anpuZEtMR2lVNG11M09DZTctRkY4VWNSTEE1X2tRdmdaV0NYRjUwZDFlSTBJQm4xQlFTOENLRVdLU2hMaTNYUmk5TDRzMEthMjlxRzZab0tXSmdoMkV4SjV4NzBPdHdLQjI4OHdGelpSU3JtOHk1eWg1ZGFPMVlGTGFhTXp5V0V0S2R0eFRDcXVtNEE0NXF3dmRBTEJWbl9PUnlGOVhxN0Rrc1hDdXBtWnpobTNnaDBpbFVCRVFNR1hOWmNKV2JRVC1XaWFLTElZNGZjNy0tNnZ2Q3hQY1NSdlJnLmdpZiIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9zcGFuPiA8aW1nIHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTSgyKS5naWYiIHN0eWxlPSJ3aWR0aDowO2hlaWdodDowO3Bvc2l0aW9uOmFic29sdXRlO3Zpc2liaWxpdHk6aGlkZGVuOyIgYWx0PSIiPgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKICAKICAKICAKICAKCgoKCgoKCgoKCgoKCgo8IS0tIDY0NzcgLS0+CgoKCjxkaXYgY2xhc3M9InRyZy1iLXdyYXAiIGlkPSJ0cmctYi0xNDEzMzE4NjItNTMwNTc5NzY1IiBzdHlsZT0iZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjA7IHRleHQtYWxpZ246IGxlZnQ7Ij48ZGl2IGlkPSJ0cmctYi0xNDEzMzE4NjItNTMwNTc5NzY1MiI+CiAgICAKICAgIAogICAgCiAgICAKPGRpdiBpZD0iYjE1NTg5NDg2OF8yMDMxMDAwNTEiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IG5vbmU7IiBkYXRhLWluaXQ9InRydWUiPjxpZnJhbWUgc2Nyb2xsaW5nPSJubyIgbWFyZ2lud2lkdGg9IjAiIG1hcmdpbmhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvc2F2ZWRfcmVzb3VyY2UuaHRtbCIgaWQ9InRyZy1hZGZyLWIxNTU4OTQ4NjhfMjAzMTAwMDUxLTE4ODM1IiBjbGFzcz0ibXJnLXRyZ2ItaWZyYW1lLWNoZWNrIG11bHRpZm9ybWF0MzAweDMwMHdpZGVOb0JvcmRlci0tb3V0ZXJGcmFtZS0tdnlielAxIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIzMDBweCIgZGF0YS1leGNsdWRlLWlkPSIxNTU4OTQ4NjgiIHN0eWxlPSJkaXNwbGF5OiBibG9jazsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTsiPjwvaWZyYW1lPjxzdHlsZT48L3N0eWxlPjwvZGl2PjxzY3JpcHQ+KGZ1bmN0aW9uKCkge3RyeSB7CgoKCgogICAgCnZhciBkYXRhID0gewogICAgImNyZWF0aXZlVHlwZSI6ICJtdWx0aWZvcm1hdDMwMHgzMDB3aWRlTm9Cb3JkZXIiLAogImxpYmpzIjogImh0dHBzOi8vci5tcmFkeC5uZXQvaW1nL0M5Lzk2NjZFQS5qcyIsCiAibGliY3NzIjogImh0dHBzOi8vci5tcmFkeC5uZXQvaW1nL0EyLzQxMEUzNi5jc3MiLAogICAgInBsYWNlaG9sZGVySUQiOiAiYjE1NTg5NDg2OF8yMDMxMDAwNTEiLAogICAgImJhbm5lcl9wYXR0ZXJuIjogIm11bHRpZm9ybWF0X3NxdWFyZV9zaXRlX3ZrYWRzIiwKICAgIAogICAgCiAgICAiYmFubmVyIjogewogICAgICAgICJpbWFnZSI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RhdGljIiwKICAgICAgICAgICAgIndpZHRoIjogNjAwLCJoZWlnaHQiOiA2MDAsInVybCI6ICJodHRwczovL3IubXJhZHgubmV0L2ltZy9DQS8zNUM5NjAucG5nIgogICAgICAgIH0sImljb24iOiB7CiAgICAgICAgICAgICJ0eXBlIjogInN0YXRpYyIsCiAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC8vaW1nLzVGLzRFM0NDMi5wbmciCiAgICAgICAgfSwiY3RhVGV4dCI6ICLQn9C+0LTRgNC+0LHQvdC10LUiLCJ0aXRsZSI6ICLQndC+0LLQvtGB0YLQuCDQtNC90Y8iLCJkZXNjcmlwdGlvbiI6ICLQltC10L3QuNGFINGD0LfQvdCw0Lsg0L7QsSDQuNC30LzQtdC90LUg0L3QtdCy0LXRgdGC0Ysg0Lgg0YPRgdGC0YDQvtC40Lsg0LXQuSDigJzRgdGO0YDQv9GA0LjQt+KAnSDQvdCwINGB0LLQsNC00YzQsdC1LiDQn9C+0LTRgNC+0LHQvdC10LUg0L3QtSDRgdCw0LnRgtC1IiwiYWdlUmVzdHJpY3Rpb25zIjogIjE4KyIsImRvbWFpbiI6ICJ1b2Jub2RpdGVsbm8ud2Vic2l0ZSIsInRlc3RDbGljayI6ICIiLAogICAgICAgICJ0cmFja2luZ0xpbmsiOiAiaHR0cHM6Ly90Lm1haWwucnUvcmVkaXIvQUFENS1BR28wOG84R3E2X3F4WkFhbFNReU5CZnl5Uk9NTXdaRUM4OGJ6MEpxSnFINWRSM3ZfR3VjZENySWhFUzZETWdnRy0wdnpuUnVkMU9SUDV1Z2FYUGdSMVhDVFF1c0JnUHRtRUpDMzlBTndITU9HbFR5Xy1HOHlIVFU4azd0czUwcjRORi1FLWRKMEdRVnpvVmlKVUI4ckpybTRmS0R6T2xDTFFqNk9nRllwT04zalZHWkhPV0JRQUFSNUczNzU4OU92bDdQMnZvWl9WWUsyQTl1Nms0U0FHYkdiZFRKYndLWXRmZHV0NTBOazZyVlo2OWVrNjVKbXdOd1BocUFUVVJwZk40TXRnaHgtTk1FNnpTZW5IRTlPZk55Mng1alFQS3FPV0pmLWFJQkE4em5YTG56M0pjOTZYSVNuRGhZX2JnODZrWG5jWWNLYk9uOEFEYXpXQUVMTm1rZ0J0NmJfZFJlOHR1dUtrY0tpUmpUdFFkQ1Jaang5NWdsaWUzRHpmQ0tVcDhxaDl3NXdaUG5JaDRfNnp3aHZ4Y082WDAybUFnUVZKVk1SR3FVY2Q1THFFYUFiUlBtOTN4bnNUZ3lTVWNTNDQwZ1RpMTF5TUY4X1ViVmR0bmRYOVVSVjYybU5sejdPSTktSk9KYlNkZWVQeU1xUHpwYXR4eG1KV1FBd2U0WHdURV9fandsdERZS21CeWVycHg3bHU3Q1piUl9KNlJvNUlCaE1DelduM0tEQk5ndUVFU28wbFBETHhyMU9tTnBFQ0dBWnlmRTh4emg0dzJ2aS1ZWTlIamRrTFlZeldxTFNheWVYTkJqVkRaNnJ2ajhNc21BeXJqakhZakFWb3QxektfUWJGN09LOTFObmhwNlJIelNlWlJkYzJqelVPbDZ5WUdpM0owRlZial8zUWFYdVhXaUsxQXlLdFluT2JGazQycnA3TEtXTkVGRFg5ZUhhUEh2QXdVU3dHaWp6aDZWTmg0Yl9LSVY3dTlCSVdJaFc5VjE1VzV1SU44S1B5YlJ3My03ckxnZEtmY1RaMXdvMUhzWXhzNDJkeUZQa0l0REtLbVhqQkxzYzVSeFRFc1FtNzc1aHJFLVczeVcycEthR25LbnNUaHJuX0t4VElOTXVUMWowWkc3cFhGWm1SSW9LY0ZCcDM2UHJKRGVNVjFjMmlnMExsejBnOHBuQ2hZZXBFdXZZV3FzTXV3cHduRjFoZFdVeWdPVDdtTXQtRmx0R2ViNnRiMmhuam44TVhuYW4tMHFBcHVGVDZRX3ZXTGVuZk5tdVY4WnZsYkkyM0dsZ3VWNTM5NENjdTFnZm16Rm5TWmlNaG1RS2VvMVN0a2dQVG8ySHJaaEJmaFhEVUN6bFdrdmtHdUNtTzZwWlBQWXd4TGQwNGdFOEhSNzNENUtTMmRQQ0ZKbUtqZ2tfbTNoRGVCTEZrMFB2clQtQm5lSVNRU0pqbm1HZThwam1JU0k3OWZRZFc2UHRIM3NMbU02RW1MNDZqZGtQN04tUldEOVNybFhPQjV3YWdpOU50YjVLQWpuUnhienp6ZHp0T3ZFaWd4dk1KTXo3ZFlVX0hPbVoxdFRDbldtYW0wRXlOV3BfUTdfQXNZNVhrM2RfdGxWVHo3eTdVbm5yR2JNanB2MHk3Znc0ZEY3R25ybDZJOThId0JMOENDcE9NN25XbEtBLVhGbkFyUm9Ka2Nhb1Y5UGVqREREMWJOWlVBZ2NMWE4ta1VBRmxXV09VYnpGRE1yV0NnNXRMbUw5dElvdnB0QkdIc2hJZkNZU0hBSEtOZDBHRUs1OF9YOHRSdi1fMlFrMkx0WmQxc0N2SUVyNHpGc1hrZG1qanJhV0h1OUhETWxwd3pGTkhBdWNLRi1rVTAtQ1NRc2VCWi1HZG9DMWYtYlZEZEczZ1NVNndkbXcxTnc0TGhCQS00MGliTDEwZE5ZU29GSHJqX0lIX2J4S2xLRzJGWVVFTGF2emFiQ2w2b2M1UjQxbkJ6RmV4QVhCdDZoT1EwTUVHZlVtYTR2b3lxVjNZVXdZdG9CSkhCNllYOWEwRkJXNkd0WmpnMzJNY3JTTGVFNk9YSXNOV1VzZWlZZkZhTWl6cGlCenNYUzhPT2x5dVZDOWgwU0Zqel9KZjVIWHFXNl81dlhfa1AzRnMzcWJidmo3NlhJR1pCa3laSl9QLU1oelhsY0I1cFpLVjVFbEotcHdEVGVBSzBhVlJyQWN6WUk5WTE2Mk1kSkdXNjFxUEViV0drTXFnc3psQ1pnSDlLVDNHZVdZbk9WU24xLU1HSEE1MTJQaGdXUnpUTWNTYWdIVGJVR0FaSE1rb0NWVkZZOWZCanBuVHNTMGRWQUkwTmF4c3N1OXdHV2FvUS1pNVZaYno5bUFwMmlKSG5TeG9HbXVqWW5sXzhZQm9oeHZFUkFuVk9JbjFrb0VmRDBKb0VOeVlQVDZPbHh4WDBOX015YlR6T0dJTnJmbk80U2dLcVYxc011NUwxQk5wOUV3Q3hPRkJKaFJ1WFFRWm9pVXFJR0hpajB1X3c5N3Q0ZHVHU0ppMklqZUIwOUlzUldHUDFZUV80MnptdG1UVmlfbmZYal9OWmhDbHIxSE5XR0d5anllMFZrOEtoQ2xBazkxYjYyaWQwREhlMUJ4dXVCM3JnMGRyc2VsdUtia2h0eF9TMUY0cF9Nc3RvcTUyWkZiYVRlQXJKTmxQNHlsT0hJY0duRk55OWNfTFYxNUwzZXIxdGw4STgweWNaTlk2dVZta2Q4Tk84T1I4TThjTkJFVE5DX1lmNEduN1lHUC12UW1VaGtNcWM6MlZ0enF3QXY0b3UiLAogICAgICAgICJ0cmFja2luZ0xpbmtVcmxUeXBlcyI6ICJleHRlcm5hbCxleHRlcm5hbF9uZXciLAogICAgICAgICJ0cmFja2luZ0xpbmtUcmFja2VyVHlwZXMiOiAiMCIsCiAgICAgICAgImlkIjogMTU1ODk0ODY4CiAgICB9LAogICAgImFnZVJlc3RyaWN0aW9ucyI6ICIxOCsiLCJ2aWV3YWJpbGl0eSI6IHsKICAgICAgICAiaXNIYmlkIjogZmFsc2UsImhiaWRJRCI6ICIiLCJwZXJjZW50IjogNTAsImR1cmF0aW9uIjogZmFsc2UsInJlZmVyZXIiOiAiaHR0cHM6Ly9uZXdzLm1haWwucnUvcG9saXRpY3MvNjExNjU0OTUvIgogICAgfSwKICAgICJhdWRpdHMiOiBbCiAgICAgICAgCiAgICBdLAogICAgInRoZW1lcyI6IHsKICAgICAgICAic2VwdGltYSI6ICIiLAoicG9ueW1vZGUiOiAiIiwKInJvdW5kZWQiOiAiMCIsCiJleHBfaWQiOiAiIiwKImlzRGFya1RoZW1lIjogIiIKICAgICAgICB9LAogICAgInBhZCI6IHsKICAgICAgICAib3BlbkluQnJvd3NlciI6IGZhbHNlLCJzdHlsZXMiOiB7fQogICAgfSwKICAgICJzdGF0aXN0aWNzIjogWwoKCnsKICAgICJ0eXBlIjogInZpZXdhYmlsaXR5RHVyYXRpb24iLAogICAgInVybCI6ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR28wOG84R3E2X3F4WkFhbFNReU5CZnl5Uk9NTXdaRUM4OGJ6MEpxSnFINWRSM3ZfR3VjZENySWhFUzZETWdnRy0wdnpuUnVkMU9SUDV1Z2FYUGdSMVhDVFF1c0JnUHRtRUpDMzlBTndITU9HbFR5Xy1HOHlIVFU4azd0czUwcjRORi1FLWRKMEdRVnpvVmlKVUI4ckpybTRmS0R6T2xDTFFqNk9nRllwT04zc2lvVUNLUUF3QUFJZjZObE5fanZfZFoxVzZzQlo3YWZlV1gzOEpJVExsWEhvNXZ3ZXFaUW16clRWd1dHSG1XN1dCV0wyZVREaXd0TFpybHBXb3pIeWNJaU8tMWZ1clVHc0FjanJPbGU2VU1XWHBPTU56T3oydjRvc1U5VGh2OV9NUDBUOW1acmc2VE1XMEdYWW5tS2lhUi1UU255U0tsbHc2VVJ1ek56eVpCQ1ZJTmVXSUNiZVpuaEZSNDlWN3h1Q2tYc0taVWtLcmtvb1pEU2dYVEdMOWFGSUtWcS1HVklJWW9SQnU3VkJxN3pwWFNyQXlZeG00T0tUbi15MXdLTlF2X3ZLTFVwUHM5Vi1XX2hOcEo2Um0tNDVHR3FCbmc2QVpKc0kzRk1IRk5NY004ZEZsLS15TXpISUg0UUV0R3kyM2hhUmxVdmc4bjkwWUZvc0E1ZXJQTHBMVmY3TGNFNkswdWppNWwtWUMyXzRTU0RsTU1jTlB0ejJHQ01nN1BKVExaZEE2VFFNRGl0UXd4VUpZMkhILUlNNG40a2hJa3d0UjB0aTNxXzkxdUFhbWtTdUo1R0lHeG5kY28xVXpjSk9mT0dMWGVSLXBldnpNQ1ZBakVfd0t3akE5RUJ5V0ZSUVVJM0VXVHB4em1HM251QW1rdFdQTHF4RWNMTGNsdFU3NDNManFaVG5UbkVwY0FXZFRDWFM0R3JpN2c4U0dCeUtkX3RpQmZaWkhoSlVHYXNROVVkZG9IbzNETzl3ZHJLbTlnMTllbUpXTlNERktKM3RGSnJFdFR4YUgyVmlTOW0tNDd6dHNmektfNmNDOGQ5MUVJc3g3TXItaXN0eEZzQmVEVGFpd3JPeVFqSmkzTTM1VnFmWWgzMENXX05POGZZQktIM1c5WUViOGh3dkpkbjFjNHQ5TmYxWW5WRVFMOGtMX1lPa2ZuSTMwSTdObWllNDRfemp2a29BNFp1d0x5WFoxNmk2dnNBZEpEMXpMRG1UUEJ6UGpkc0NHakM0MlRzODNHanNNcm9iWF9tTlIyQ28yQVNuUzlXakl1d25iZ3BzWUJqSXFTby1wS1B3b2M4ZksxZHlRaXlZRFlvRWt5RTFTRWRsS0xvMDRraTktdXVFMVIxX3B5UE1sVXRpUlk5NGJWQVZIREplOS14b3dIT2tmUF9RX3JsbUJDajNfSjlPTUtVX2dtX2R5bkdHUlFaUWd0a21aWGdOV2pXRTVxcm9rbDA5aEd5M2xxVE1HeHRrOG56eDU1RkRKZjQyNkxwa0hoUGcyVjFUN0drOEpqVlVOaFFHT3A0ejlvNmlfSGtDRFpNaVhaX24wTGVFbW5IR25UN0hLX0hlN0tid3FuckxDYlpOaWgzV2dqTTZPS0kyU1hLb2tNVDk4dnNKVHljcnJHVzZSelZUVllLbHJkQ1hLOHNwSTdNX2FpNWtmNjNnMC02Q0wyaWs4NmlscXUxY25JbE13eE00ZldKaXl4QXpjMW03Tk43eVBXajA4ZnBudWZrTzdKZHh3ZEhrWlAyT2lNSEtGYkFseWxkMURERWwzYUhUcFJNNTRvTXZpYUZHU0VVSWhYSFVhYS1Mc192TjZpTGxoUnczTlhEYmZrMzVTZWZWTTlBdnVQLmdpZiIKfSwKCgoKCnsKICAgICJ0eXBlIjogImVycm9yTm9IdG1sNUFwaSIsCiAgICAidXJsIjogImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHbzA4bzhHcTZfcXhaQWFsU1F5TkJmeXlST01Nd1pFQzg4YnowSnFKcUg1ZFIzdl9HdWNkQ3JJaEVTNkRNZ2dHLTB2em5SdWQxT1JQNXVnYVhQZ1IxWENUUXVzQmdQdG1FSkMzOUFOd0hNT0dsVHlfLUc4eUhUVThrN3RzNTByNE5GLUUtZEowR1FWem9WaUpVQjhySnJtNGZLRHpPbENMUWo2T2dGWXBPTjNzR0w0eTJRQXdBQXBNX1BPdG5WUzdoYjlPQXF2eGVldHhfcHJJdWFtYUZFS3g1dzNDX3RMMGtPamJ6c3k4ZWZ3V1ZyWGUydGFXOUZpaU1QZ3owRDVwZVJxbFpFVWFiTlhNZHFsc18wSGFKWS1sTFhKQ3JyVW9yNHdpT2pKTm9YbURNWWdyMjNMemF4SU9aZlI4NHY1VGxxNXNGZV9Gdm4wZk15cjJiamZ5akhvd0VCa19ITkpVQm42cm9LclZJUlJZYzJVUndjS0U3Sm53ZS1Na1BEUC0tUm9UWUZTNzZielJtcjEzbEJTcEZGSlhORjZDZVBfMkJvTWNibEkxREthQ014dHpSaHItMlRFN21LWE5mRDJ2MlBhODhldnNQRWtpcEhLcktNaFVyZ2ZQelhtUGphTGNkNm96U2pHdUlzSERiM0Z5ZGlwZGl6VnVJWVZpdDUxM0RxT1FGOWxIejQ1am0zbC1UaHprLUhxM1g5QWc0REoza3pJdTRfaXg2cXZnbUxWWmxTYV9aTk1jNVVEcHJ2aFpxY3hkV1hRZVJoQjdMSjZTU01xRk54dGZBMlJaRTlXWkhuQWVPSFFXaFBuZkMycjFDSEdjR0tVYk1WTEJCcmxGaFlvanBzd29qakhzWkpucF8yTkpPVFcyWlRYUHdUZVJuTVVoejB0OUc4UkZmaGR5SC1GWkp5cFMxZHIwT0NHMUduVElCZkZ1YlNoZ2xtVjJWYjJ1ZGU4eVE3OXpOTWtxWHlObV9ZMEJLUXFUM2lZS05Md2JaQTlhUi05VkJmSU5CcjdPWjNkUFRWN0dHT3ItU3hLclB3clE3OVllNTZwZ0JZVGFjaHI5VExUXzBpMDRlM01wNkhFZXp4aEUxamtCY1luOVNvVF9LTGFVTHlrOWFKeDY4eHpuRDZmMFRyUEk3b0xkYjhYd2NMdXFPbERjZFNhRzRQQlpwX24tbEMtSzFfYWI2WldrYndTenhWRDhia0kyY0gtaUdYZFkxdkdmTDFMTU5jZkZoNURvV2Q0MnRsWEw3ZWU0WGJzSXFpRlB4QjU2eHlhN2ZSYlhaQ1pWa2V4aEFVaHVIb3E3UW1zTnNKNFhZVVhZeUVMSG1VRWtIVkp6NDNoakNrb0x3T2FvelRBY0N6N2NoVUlzTW5GMnlBaWhhSldDb2ZvNWZhU3ZSYmM5SVpYNWtaNnp5WFF0MXVtTzRtWTEyaUt5dkNtS05mM2ZqRlhtR0dSTFROcXBrVXY5OGRyQ05zc3ZpQzl1cTRpb3kzc1J6VHZXXzBkTWxmcmw4LWdyNnV5VWFQclJSX2hnRUpzOGNpaFhfbkp3WjRuVHQzNExkNUlXRkd0OEZldHkwQ1p4T0ktU3FoLW15NVQ1bXp2ZWJKQWtNak9KZXRNcnRQd2Q3WmZnYXFJN1RPYUNFY1c2emZrRGJVQWhjdzZuUGM4bEpLd3BIanVWVU1HdkhzRnFiWTZXeDZCb1ZiS0xsbWJ1S0FaempxTlBrb295V3lqYXpiTjVSQWlqTWxjTDRJWWcxVUw2V2g1SGwtaENhcDctajZQa3FMcl9uaDFxRk9IaEFtamxXclBVZ01mUldGZFR6OV9Gc0IxTzB2dmdqenJFWnFDWndCSUtKMTNDMlguZ2lmIgp9LAoKCiAgICAKCgp7CiAgICAgICAgICAgICJ0eXBlIjogInNob3ciLAogICAgICAgICAgICAidXJsIjogImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHbzA4bzhHcTZfcXhaQWFsU1F5TkJmeXlST01Nd1pFQzg4YnowSnFKcUg1ZFIzdl9HdWNkQ3JJaEVTNkRNZ2dHLTB2em5SdWQxT1JQNXVnYVhQZ1IxWENUUXVzQmdQdG1FSkMzOUFOd0hNT0dsVHlfLUc4eUhUVThrN3RzNTByNE5GLUUtZEowR1FWem9WaUpVQjhySnJtNGZLRHpPbENMUWo2T2dGWXBPTjN0TlVFVU9jQkFBQWxzSjE4RERCM3dkblUzbWgtbVQ0QUN5bWJNVE13U244ZWZHRS1Lc2V6dDFMV1VfWnRrRi1oZno0ZUdONFZsZ056bXFUZUJhRWQ3QWxaZ1NlWE5OWk5RRGp5REh3RlFZMVJSTjFVNUFDRlFNZk5OMVJMLTh3enpYUk1FTVNycWhTOHVwTGNCWnpsdVBpY0k5eEpQTVdhRXduUzZGWlVnMFIyVkVfakFtRjBmcXoxYk5RNFBLbkpMSE9iY0N1RjZDZjBtMVgwRU1TQXRNSFhJanBDRGY5VzRNRGJKVHBudy1uYkdDZVRtMHl4UmxkMmt5cHdvUXpCYklCTjlfMW85NWJFSUVsTXFfWUdzRVRNeGRnZkNacmNaMWFuci1tM05EZFhvVVE4TzJLMFZmUVBuNGxfSE9LMEpFR0NBVmkwWVJIVDZ5R2FzVkdQcmFockZ2amx1U1VTaXNvcWlUQkY1RDFTaFB3Rkp6a1F0bzFaN0dwam1OUXpHNjA5MHl2ODhjdUdwTkJmaFlweFNTa1I3U3Z6eWRjMjBPbWFmZHl0amVBTTZERHFQcUpkSlBRbWdHXzlIbnFIb0ZqeGZuUTlHRHREZ1h6Rk9pa2hQYmxzTjE3M1pfYmpfTHc3akF6SVJFaHFJemdCY29EMkZHYk1CdnJrMUlyeG56T0otelUzQV9FdWlfcnlKN25KM3BkWFQ2STgwRncwUG9yeHQ2QlZSNFRmbG90N1A2V1E5bnZJR3FVelB6ZzBFZVByS3g5UmlROTVKV1ROWm5TLXVKUVQ1Um1jLUxIZGtXbGlYTFo4U2pUc0VDczEwTmpla1pYR3VRalhHN2FjZXA5WUkxV3FLLU1kVXpQaVhnWl81QW11UlM4YkRlY3F6TWtERk5raG00MUg1YVdTVXRsTi1NekU2VS1EODFCMDBkejc3OUlkLW80bVdwcHUzYVJwcnBnZzFIN20tdzRvREViWUl3SXc1UXdxRUpyc3piVE1Rc3JieVp5QXRNZmQ4RHA3NERTbUtfLUZTY05tRmJUcHpVWkZJSjdJb2NnVnZpZEhPV1N6YUZyZmxYdXhON1FWcnktNEJ0LXp6R1JxNFQxRmhEYm1aMlhIc29WNmRjbXd1blF2WHdFSHFQdy11dHZtalZ5ek1QM0l1dFlpUmtIWXpMRVNTMVJjSkNOcEp2Sm9nVmdvenBSTGxlUlJhRzVkQ0cyazdZVkg5UUZnbzVsX1hqcE5ydEY5OHpuNDlUamQ4X0ZnMmxPbDgwR2VBUWxXVWdqODJ2OEU2OHpNaEdNZWp6RW9LRnhmelpYSWtfNHViZlFoZlhIRmtOVjN5Q1QzZk0wNmZTLXVuMVh3QWo3aEJkY1ktSTA4ZjQ4Xy1rQnhVX0tsNk1SMkw3ZXhVa1pZcEVBNmxYTi1ab3hWejhVWHI3OWhyT2xnNWEwQXpmdG50b0JkemVQNEVzU2tZaFBoaXNvcGJXY1JWV2Fvd3htaHJseEJHQ2ZJdFduVFZRaTFFZks4NWJpc0w5Q1o0bFhxaFRRZlRMMl9WRy04LVlnYlNHN3B4elFwZnYway0yWDI5QnQ3ODhzTWlBdW5uYmZUczQzQ04xa2tHYVR3Mi1kUHduUEJVV0ZTMUFDWVY3LUNwWHUyRmJPUFdGWmg3Z3BYREI0NUstNjVuUDRDd0dsYkRJbldDVC13Ui1iYW8wcUJUWk1tTkJnYU1na1lqckgtSGJHRFhaaHNTMGstNDV0M3hZREZzUExkWE5ZSi04bm5WSmdPejRldkI4SDRXTWtTdy0yQU5pV3RyVmRmcTVyRHF0UHVYSXpMUXoyTzhycjh1ZGxUMFdwN1pWOUx0Qk5CUHJBWjRpQ1QxM3gya3RSLUNnTmFWUHNJMVAyck44MHNpeWQ5ejk5cGZIcEsxZGZMRDJMS2JVYU9XYk1PNlcwbVRtd0dLV2c0ZGRxQktQQWVsX2FKTlRVMVRKdElKeXNFRGtSdzBEVW5seHFVMFRONXVpaGpsOWxvN281QnJlN3FESmV4b2laRzNLSHIyWC1CM3dES0R6Q0drbm53VGZuSllWeVpPLUdNN2RMa2c4a1BySGQ2aU12Z1ZtTl80b1I4aTQuZ2lmIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAgICAgInR5cGUiOiAic2hvd1VuIiwKICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdvMDhvOEdxNl9xeFpBYWxTUXlOQmZ5eVJPTU13WkVDODhiejBKcUpxSDVkUjN2X0d1Y2RDckloRVM2RE1nZ0ctMHZ6blJ1ZDFPUlA1dWdhWFBnUjFYQ1RRdXNCZ1B0bUVKQzM5QU53SE1PR2xUeV8tRzh5SFRVOGs3dHM1MHI0TkYtRS1kSjBHUVZ6b1ZpSlVCOHJKcm00ZktEek9sQ0xRajZPZ0ZZcE9OM3NkdXdBdWNCQUFBSVYzNDFNWjRKUERIVENDTTZtY3k4WElkWF9qY1lvWklBS3VjeE1NLUtqTVhmSzV0TTEzTDNxTWlrdnFjX05HbFZoa05aRkJWVktBeDFmeXFoRncyS2FEaWthUG5rQnU1U0I4WXVQZmtyTFRGWjRwUWotSlhaZUI4Z2NSWXBGLW5pQWk3aWJ2cmFncjRqWG5iSldCQ2xlSXA5dkhselY3QXp1XzF1RHMzOUdPUjduTXZURHJMdmFsbVJjTTBNd05NZjZjM1hXTFZtbzRZVVp0MnlWN1YtUmNfY2RyUi1nUGxucW13TVhFdXpkLXIxSHBvZHpCM05QNGZiTkQ3anRJUExZX2NsaXZBVTQ0VFR5X2c5OFZBbFk4QmZ5MzVzM0c3dVFBaHJSVkNrWmYyMkR4UVp2SWo1N19UUDBydlNUVEI2cWJBLTEwRHY0UVg2cnlFcjBOVGN5N1c2RUVVOW51OUhoRWlEczVLR3JIcXYyWkttUmd2dmx0OGdzRHZjNzdBLXlFSE9lM2J4YWRxR3BHZktYaGUxWjRhVGFqRl8wcmNUcldSdWpLM0c4QlRVUk9IWG41cmQzOWJaNVJMVVdzcDJiaTJyVjJiSGgyS2Y4VHNsaC1ZdUxSS0x5S0ZjQVotRy1ZcmNfT2kteUI1U24xSG5mYlNEQXpoTHhTbjY2WFo1dXNwMmFkQnNObXJMMkE4TEVMYVZsWWM5TWQyLUI0MTA3UGR4bk1pV0VCTWd2c0J3ZlRGTnR2Ni1BWDJkaE9IV0VsclR5Qld5RWFHSUhOUGM4dTdjM2dxc2JvVF9TZzA3Y3F6dEIwNmxtazhqNTdpZWJNYnN6TUNIeU9jVW5kOVhCc3I3eTJZcFpQaFBlYkQtSFVfQzlMZDQyQWZnOGY5cGt1c2ZKbWpRQzdEMFp2MTBjZC1sNmRVa3E2SDhZMzJNbUl3WkNQcXJKQzFtb3FmX2pRQmI3VVYyM1Jsc2RIRENiZ0pfSGdIbDU1aHFUUUZDZVpjVTBFbUx0cjZrUTE1VE1samx1R0FzTFl2bFlHUnItTjg5cjNJWnI2ZllTaU1oWWFLZXFXVmp1eExNVTYtdm1HN3lSWjRWVjhhNjctaHk2Wks1LXUyX0d3VmZEZkpYb0NUMDAwQUM1WTgwaWIwb2FXT0ZRN2xTeXFLdGNwakxGcmxBM2tPaVVtX2Z1Z3F1d1VRdjJ6b2ozUU1oaFh4dDlmbHdiby1JWTRHMXJmclJWRFNtdzFFRzJiS25SQXI1OHl6ZXdmQXcxNnFJcUJQdlk4eko3TUNCb2lyb3lMTXl4aXZtNWdKYTdWNGw5Rk5MYnVhRTAtZ25yV3lzRzl4ZlRsaXFIdEhzblhNN2x1ZF9JTTVWSjVoS01kYnFRLWFoTHM4ZXpDQVFWWkEwc0NVTnZqU2s5SV9LVTVQQjJHaEJZcWFhX3RjUS1KMUlHSEtOVkhuOE9PVzNIY1gyRkc1a0J6aDdBTElFVzFuWEZrY1Rnc000aU9zWEEta0JIX1JGeTNFNTNqZVFWZWRac0xSSmE4aTBxMzJ1NjZRbE9EZ2JSM1JHRUNQM1BtQjFEM1VLeUVMVGZ3bkYxY0V4NTV6dEVyLUY0MFZ2UXdNVHJ0Vl9JNmNzYW1ycS1CQXB3cHBkODRLLW5kakhtZUQzYUFhRlpaZDcxR2pHYXQ3V19UT01KeGlqREVSNGYzME5Bc1AzSXNZRVFZWkswQnNVWUUxVzlzdmNzNS1ZLXJzOGpwR3FISFVNbjV6TFBTRTl3TEhLMFBVaHVMRjh0a25GVF9DdUxDSll0cFByeTlmMW9EWTFrYzdjbVJHNHdtYWZoQUM2R1lsWWE4X0JVVlpOOE5oMGtTMTNNbXI0VkotSTBmN0ZWSDNyZW40RjBXTWlTUl9QdWNxT0VUSl9yZ3hYZ21uMVR4MmJWeU82OW5fNi05cTlMZ1Z5a0UxLTFjOUtMOFZYNlNwZmtrVHg1QjhVZ0hkOXYxUWFDSnJ4eEpQVkR4cVF2SzUyOW01VVp1SEpkOFV5R3JHQ29abDNKc3pNX0hnbHE1VWJSTmFVOXY3bXRaSzlYYmd6THpPU2E5WlNPei1qdGpPUVJ3Uk5tVS5naWYiCiAgICAgICAgICAgIH0sCiAgICAgICAgewogICAgInR5cGUiOiAiY2xvc2UiLAogICAgInVybCI6ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR28wOG84R3E2X3F4WkFhbFNReU5CZnl5Uk9NTXdaRUM4OGJ6MEpxSnFINWRSM3ZfR3VjZENySWhFUzZETWdnRy0wdnpuUnVkMU9SUDV1Z2FYUGdSMVhDVFF1c0JnUHRtRUpDMzlBTndITU9HbFR5Xy1HOHlIVFU4azd0czUwcjRORi1FLWRKMEdRVnpvVmlKVUI4ckpybTRmS0R6T2xDTFFqNk9nRllwT04zZ0dudkRnVEFRQUEyMThTcHZnLXpRRkZIR1BlU3Q3NEJhbVBHMm9ZZFZITUdEdXh1eV9NaGtUNW84cE93VGYwVmh6cEh5T2FvRDRNMTg1eHlucHd6MTdOTkdIVkJvak5yR1N6aVdTSHJvaUh5NEI1akJva3Rva1R1ZlhLSjVvZG5KY1BlSDA5LTVVcWc5dXBUSV9aT29jbGRTdW9PdlpGSHYwSHE0ZnNNOTJPemRINEZxejRHUGNyM3NyWjVqQ2dGOUswY3JGQS0zYjdmd2pHNmM1aUpSdFpqeXFxbVdBSDJ4Z1A1bGViU2twa05BaW82M1BqanpGeThuUkxVcE1rYmlFNjE2a2VyT2xOUUw0RVRUZUxhX1B1ZS13UV9mbXlFejV1a0dkM3NIU29OVGNYQlpTSWVPTzA4UGtEYmpLdlZ5dkltdzZISGRkU0hBU3pKTjN4LW5WX1Q4dkpSejdtQWxUUkl4SG55T0I3bmFyWWNZWDM2SDlNdGhiUVVtS2dBdFpMb3VEVjlzZ3IuZ2lmIgp9XSwKICAgICJsaWJPcHRpb25zIjogeyJpc0ZyYW1lIjp0cnVlfSwiY2xvc2VSZWFzb24iOiB7CiAgICAiaWNvbkxpbmsiOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC9pbWcvMzMvOTJBQkExLnBuZyIsCiAgICAiY2xpY2tMaW5rIjogImh0dHBzOi8vbGVnYWwubXkuY29tL3VzL215dGFyZ2V0L3ByaXZhY3kvIiwKICAgICJjbG9zZUFjdGlvblRleHQiOiAi0JfQsNC60YDRi9GC0YwiLAogICAgImNsb3NlVXJsIjogImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHbzA4bzhHcTZfcXhaQWFsU1F5TkJmeXlST01Nd1pFQzg4YnowSnFKcUg1ZFIzdl9HdWNkQ3JJaEVTNkRNZ2dHLTB2em5SdWQxT1JQNXVnYVhQZ1IxWENUUXVzQmdQdG1FSkMzOUFOd0hNT0dsVHlfLUc4eUhUVThrN3RzNTByNE5GLUUtZEowR1FWem9WaUpVQjhySnJtNGZLRHpPbENMUWo2T2dGWXBPTjNsWVhEQ3g1QkFBQVQ0bENZSVdwSUtlVHE1bVVCVlNyQnBOQlNRZVIyaWdYRG8zODhiaVowQXgxOG5ENlBkS1I1amNJcXNxajBVaFhxSnh4c3dFejdqak11Ymh5ajNLdnNUZXgzMDdDeGhvNmtEMW9GTEtYbnU4MGdXMFJJaEl2LXBrOUpvQjY4X3pkR1VsTmU5LXdYY3ZwMGtZcXl2OTNrOHZfQ2tiWi0yX0pkMEJkeHF1dDlQblRON3d6clgxb2NndXhZMkdINm5pLV9CT3RvaHIyNGRFWVZMNDl3ZHowV1R5SW5kYk5fVGFlc1I5czY2XzM2YnJxNHZLeUV3RUJzYVU3b3ZIZHdHYzhTdFlVRnpyYmtyVEJ2TnFyX1RSV01oTUw5SklLbzdkYmJ0MkoyNUNpQk0wS204TzhUa0w3TDc5U2NWZ0h2SlhnWUhyUkFKcWctVjlxWlBrdUttbTh3U0Q1Z1llR1NZMEN4LXlDTW5xME5meG02S2FiZkVBUm13aHhiWHVmLWdUdWRQa1U1LUp6T0hIaC1NTXBKWVBWV2l0U0RjdW5FUl9ZZUU3NUhjZTlKZXFYall3TE90YmczZUt1Vnc3Y0daRmhBd1ZpZ1BsX05ZNVBmbG04SjBZWHU3M2VubmJEYUptWlZCZ0VKaUh5STZUQTZlNHBVR0tRdEhpVm84aUlMX1M3R2hjUWk1Ql8ydnBzZW9JZ0RkOERGMTh2aTVNTm9DVUtaRkoycEo4S2xyUTdnRWVwOHZhbWlueERLRkw0SUxKYTBNVGJ5UVpxbFNQOTBZQ0pLV0pHYjk1LWtBVGk5VDN0ZG0teS1aSWhjRy1ydUFYTDRzMDR2dEl6aTRvYkZJTTlEMGhXai1ZYmRZUkQ0N2J6dTV0ZXVuNTdEX0c2RFl5RGNESnh2U3NWU25URG40a1JjYUtiS1ZtdEUtbi0wVTFwQ01oSlJpNmFaa2JFR184Q3h1VklRbl9odmpJczJseGxsMlNHOG9uRHBDMHBsalR3ZTVXcjZyQTlZMDU3akFueHE2bkpHSjl4SEppN0RVSFJiT2ZNRmQ5Q0hXcnE5RnNMNDYyeFpZckRnQVlqOF9WRjdndDVfZmJva2t6MWJjM2FHRlBvZ3hkOTFGS185TFN6UmhFYXFVelRqVHloTEtzc1M1VGhlRDZiYXRtamdTYUVlV29XUkFFdE9sckNGcGx2TDNtQWpta1ZyRUVlam9maEFHbTNablAxcmJBNVNoWjY4TjRjRjhUUG9jM0ZyRWY4QXpldUpPakpKWXpZdUd1WnBteXJQQmFyb3NhUi1wNTZBSWFSMTB2Z1hjbzROQk5QWHVnZ2pHOERtZmdUbmFOc185LWJ3RVRqU3QtUHpTUVgtM0hRR25Fbk9rcWxnWUtER1R1STl4R1I4NnpHS1BlUWZfNnpqLWlTZndEYXgxZWNFdllHV1V0bTJrdTJldW9sRkZkOG0wMnlEbG9rQ1UxTkF4ZW5IdzEwUEpSemg3MmRiLTR2MGhSOHlRdXN0QnQwUTFrV2JVRnRMNXpWNXN0dEpsdThtNGptYm95S1psRk9MV0ZOZ2V3QzBwSHBsSFNRTFoyUzJQOEYyYzBHYWN6X3ZpX19EYkV3TERscU1oc0FFVEU4RU1pWmxreXUxV2FaVm9YUGtyRVc3VkZRLTc1eFJvdUNDUjJLdlFIUW9SeFNlRHduUFpaQjQ4a0hHVDlDVjRRSUY2RWlrbFRyOUU1d05fTy1sTUtZWFBzY3plN2phYm5oM1RvTFI0NEJvV3dfTVBpejNqN1NYZHRxTHVQbjk1dnRJbzBlMTZQMFZDbHhYWVNSS215LXhzbF9mREpkakVOWWVCdWFGbWw1S2Z4SjJ2enFBd1llY3Rzd1FqUVhPS3pCMll1bVpYdmxNX3QtYmp0X3c0amY1bUJVeDlxeEJsUkJ3cmxWcFpKR1haQkVkbk9fbUtKeXV6Qm5xcU83OXNuYk5JVGRvYXEyR01jeVhsMUg3WEVBLVpkX1hEUmM5bWVYaGRRZFJNZE1adVBuQVdzc1lPcFRkZG14eVJWSC5naWY/cmVhc29uPSIsCiAgICAiYWJvdXRDb21wYW55TGluayI6ICJodHRwczovL2Fkcy52ay5jb20vYWR2X2luZm8/aWQ9QUFENS1BR28wOG84R3E2X3F4WkFhbFNReU5CZnl5Uk9NTXdaRUM4OGJ6MEpxSnFINWRSM3ZfR3VjZENySWhFUzZETWdnRy0wdnpuUnVkMU9SUDV1Z2FYUGdSMVhDVFF1c0JnUHRtRUpDMzlBTndITU9HbFR5Xy1HOHlIVFU4azd0czUwcjRORi1FLWRKMEdRVnpvVmlKVUI4ckpybTRmS0R6T2xDTFFqNk9nRllwT04zb0hQRXlRSkFBQUE5akExWHBTTEt3MUIwSFc4ejhtWFdBIiwKICAgICJtYXJrZXIiOiAiMlZ0enF3QXY0b3UiLAogICAgIm9wdGlvbnMiOiAgWwogICAgICAgIHsKICAgICAgICAgICAgImlkIjogMSwKICAgICAgICAgICAgIm5hbWUiOiAi0J3QtSDQuNC90YLQtdGA0LXRgdC90L4iLAogICAgICAgICAgICAic2hvdWxkQ2xvc2VBZCI6IHRydWUKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgImlkIjogMiwKICAgICAgICAgICAgIm5hbWUiOiAi0KPQttC1INC/0YDQuNC+0LHRgNC10YLQtdC90L4iLAogICAgICAgICAgICAic2hvdWxkQ2xvc2VBZCI6IHRydWUKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgImlkIjogMywKICAgICAgICAgICAgIm5hbWUiOiAi0JLQuNC20YMg0YHQu9C40YjQutC+0Lwg0YfQsNGB0YLQviIsCiAgICAgICAgICAgICJzaG91bGRDbG9zZUFkIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAiaWQiOiA0LAogICAgICAgICAgICAibmFtZSI6ICLQntGB0LrQvtGA0LHQuNGC0LXQu9GM0L3QvtC1INGB0L7QtNC10YDQttCw0L3QuNC1IiwKICAgICAgICAgICAgInNob3VsZENsb3NlQWQiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJpZCI6IDUsCiAgICAgICAgICAgICJuYW1lIjogItCh0LXQutGB0YPQsNC70YzQvdGL0Lkg0L/QvtC00YLQtdC60YHRgiIsCiAgICAgICAgICAgICJzaG91bGRDbG9zZUFkIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAiaWQiOiA2LAogICAgICAgICAgICAibmFtZSI6ICLQndCw0YDRg9GI0LXQvdC40LUg0LfQsNC60L7QvdCwIiwKICAgICAgICAgICAgInNob3VsZENsb3NlQWQiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJpZCI6IDcsCiAgICAgICAgICAgICJuYW1lIjogItCc0L7RiNC10L3QvdC40YfQtdGB0LrQuNC5INGB0LDQudGCIiwKICAgICAgICAgICAgInNob3VsZENsb3NlQWQiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJpZCI6IDgsCiAgICAgICAgICAgICJuYW1lIjogItCh0LrRgNGL0YLRjCIsCiAgICAgICAgICAgICJzaG91bGRDbG9zZUFkIjogdHJ1ZQogICAgICAgIH0KICAgIF0KfQp9Owp9IGNhdGNoIChlKSB7IGNvbnNvbGUud2FybihlKTsgfQp2YXIgaXNJRTExID0gKGZ1bmN0aW9uICgpIHsKICAgIC8qIHRydWUgb24gSUUxMSwgZmFsc2Ugb24gRWRnZSBhbmQgb3RoZXIgSUVzL2Jyb3dzZXJzLiAqLwogICAgLyp2YXIgaXNJRTExID0gISF3aW5kb3cuTVNJbnB1dE1ldGhvZENvbnRleHQgJiYgISFkb2N1bWVudC5kb2N1bWVudE1vZGU7Ki8KICAgIHZhciB1YSA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50OwogICAgaWYgKHVhLmluZGV4T2YoIkFwcGxlV2ViS2l0IikgIT09IC0xKSB7cmV0dXJuIGZhbHNlO30gCiAgICBlbHNlIGlmICh1YS5pbmRleE9mKCJMdW5hc2NhcGUiKSAhPT0gLTEpIHtyZXR1cm4gZmFsc2U7fSAKICAgIGVsc2UgaWYgKHVhLmluZGV4T2YoIlNsZWlwbmlyIikgIT09IC0xKSB7cmV0dXJuIGZhbHNlO30KICAgIHZhciBhcnJheSA9IC8obXNpZXxydjo/KVxzKihbXGQuXSspLy5leGVjKHVhKTsKICAgIHZhciB2ZXJzaW9uID0gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCA+IDIpID8gYXJyYXlbMl0gOiAnJzsKICAgIHJldHVybiB2ZXJzaW9uID09PSAnMTEnIHx8IHZlcnNpb24gPT09ICcxMS4wJzsKfSk7CmZ1bmN0aW9uIGxvZ0Vycm9yKGNvZGUsIG1lc3NhZ2UpIHsKICAgIHZhciBpbWFnZSA9IG5ldyBJbWFnZSgpOwogICAgaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWQubWFpbC5ydS93ZWIvbG9nLz9lcnI9JyArIGNvZGUgKyAnJmlkPTE1NTg5NDg2OCZicj0nICsgd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQgKyAnJnA9MTY5NDg3MCZwdHJuPW11bHRpZm9ybWF0X3NxdWFyZV9zaXRlX3ZrYWRzJnRwbD04JyArICcmbXNnPScgKyBlbmNvZGVVUkkobWVzc2FnZSk7Cn0KCnZhciBxdWV1ZSA9IHdpbmRvd1snVFJHQlZpZXdfcXVldWUnXTsKaWYgKCFkYXRhIHx8ICFkYXRhLmhhc093blByb3BlcnR5KCdsaWJPcHRpb25zJykpIHsgCiAgICBkYXRhLmxpYk9wdGlvbnMgPSB7fTsgICAgCn0KZGF0YS5saWJPcHRpb25zLnBhZCA9ICIxNjk0ODcwIjsKZGF0YS5saWJPcHRpb25zLnRlbXBsYXRlID0gIjgiOwpkYXRhLmxpYk9wdGlvbnMucGF0dGVybiA9ICJtdWx0aWZvcm1hdF9zcXVhcmVfc2l0ZV92a2FkcyI7CmlmICghcXVldWUpIHsKICAgIHF1ZXVlID0gd2luZG93WydUUkdCVmlld19xdWV1ZSddID0gW2RhdGFdOwp9IGVsc2UgewogICAgcXVldWUucHVzaChkYXRhKTsKfQp2YXIgY29yZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNkYXRhLXRyZ2J2aWV3LWNvcmUnKTsKaWYgKCFjb3JlKSB7CiAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICBzY3JpcHQuc3JjID0gaXNJRTExKCkgPyAnaHR0cHM6Ly9yLm1yYWR4Lm5ldC9pbWcvQkIvQ0U0MDZFLmpzJyA6ICdodHRwczovL3IubXJhZHgubmV0L2ltZy8yRS82MDI2QTUuanMnOwogICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnaWQnLCAnZGF0YS10cmdidmlldy1jb3JlJyk7CiAgICBzY3JpcHQub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnZGF0YS1sb2FkZWQnLCAndHJ1ZScpCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgaWYgKCFkYXRhKSB7CiAgICAgICAgICAgICAgICBsb2dFcnJvcignbm9fZGF0YScsICdlbXB0eSB0ZW1wbGF0ZSBkYXRhIHByZWluaXQnKTsKICAgICAgICAgICAgICAgIC8qY29uc29sZS53YXJuKCd0cmcgbm8gZGF0YScpOyovCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIHF1ZXVlID0gd2luZG93WydUUkdCVmlld19xdWV1ZSddOwogICAgICAgICAgICBpZiAocXVldWUgJiYgd2luZG93LlRSR0JWaWV3Q29yZSAmJiB0eXBlb2Ygd2luZG93LlRSR0JWaWV3Q29yZS5nbG9iSW5pdCA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgICAgICAgd2luZG93LlRSR0JWaWV3Q29yZS5nbG9iSW5pdChxdWV1ZSwgaXNJRTExKCkpOwogICAgICAgICAgICAgICAgZGVsZXRlIHdpbmRvd1snVFJHQlZpZXdfcXVldWUnXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGxvZ0Vycm9yKCdub19saWInLCAnbm8gbGliIG9yIGluaXQgZnVuY3Rpb24nKTsKICAgICAgICAgICAgICAgIC8qY29uc29sZS53YXJuKCd0cmcgd2ViIGxpYiBvYmplY3Qgb3IgZ2xvYkluaXQgaXMgbm90IGEgZnVuY3Rpb24nKTsqLwogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBsb2dFcnJvcignbm9fZGF0YScsICdubyB0ZW1wbGF0ZSBkYXRhIGNhdGNoJyk7CiAgICAgICAgfQogICAgfQogICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwp9IGVsc2UgaWYgKGNvcmUgJiYgY29yZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtbG9hZGVkJykgPT09ICd0cnVlJykgewogICAgdmFyIHF1ZXVlID0gd2luZG93WydUUkdCVmlld19xdWV1ZSddOwogICAgaWYgKHF1ZXVlICYmIHdpbmRvdy5UUkdCVmlld0NvcmUgJiYgdHlwZW9mIHdpbmRvdy5UUkdCVmlld0NvcmUuZ2xvYkluaXQgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICB3aW5kb3cuVFJHQlZpZXdDb3JlLmdsb2JJbml0KHF1ZXVlLCBpc0lFMTEoKSk7CiAgICAgICAgZGVsZXRlIHdpbmRvd1snVFJHQlZpZXdfcXVldWUnXTsKICAgIH0gZWxzZSB7CiAgICAgICAgbG9nRXJyb3IoJ25vX2xpYicsICdubyBsaWIgb3IgaW5pdCBmdW5jdGlvbicpOwogICAgICAgIC8qY29uc29sZS53YXJuKCd0cmcgd2ViIGxpYiBvYmplY3Qgb3IgZ2xvYkluaXQgaXMgbm90IGEgZnVuY3Rpb24nKTsqLwogICAgfQp9Cgp2YXIgcGxhY2VIb2xkZXJFbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2IxNTU4OTQ4NjhfMjAzMTAwMDUxJyk7CmlmIChwbGFjZUhvbGRlckVsZW0pIHsKICAgIHBsYWNlSG9sZGVyRWxlbS5zZXRBdHRyaWJ1dGUoJ2RhdGEtaW5pdCcsIHRydWUpOwp9fSkoKTs8L3NjcmlwdD4KICA8L2Rpdj48L2Rpdj4KCgoKCgoKCgoKPCEtLSAyMTQ1IC0tPgoKCgoKCgo8c2NyaXB0PgogIChmdW5jdGlvbihwcmVmaXgpewogICAgdHJ5ewogICAgICAKICAgICAgZnVuY3Rpb24gZ2V0QWRzQ29udGFpbmVycygpIHsKICAJCQl2YXIgQURTX0NMQVNTID0gcHJlZml4ICsgJy12aXNpYmlsaXR5LWNoZWNrMicsCiAgCQkJCUFEU19DT1VOVEVSX0NMQVNTID0gQURTX0NMQVNTICsgJy1jb3VudGVyJywKICAJCQkJQURTX0NBTExCQUNLX0NMQVNTID0gQURTX0NMQVNTICsgJy1jYWxsYmFjaycsCiAgCQkJCUNPVU5URVJfQVRUUiA9ICdkYXRhLWNvdW50ZXInLAogIAkJCQlDT1VOVEVSX0FUVFJfVU5ERVRFUk1JTkVEID0gQ09VTlRFUl9BVFRSICsgJy11bicsCiAgCQkJCUNPVU5URVJfQVRUUl9OT05WSUVXQUJMRSA9IENPVU5URVJfQVRUUiArICctbnYnLAogIAkJCQlDQUxMQkFDS19BVFRSID0gJ2RhdGEtY2FsbGJhY2snLAogIAkJCQlPQlNFUlZFUl9BVFRSID0gJ2RhdGEtb2JzZXJ2ZXInLAogIAkJCQljb250YWluZXJzID0gW10sCiAgCQkJCWNvdW50YWJsZXMgPSBbXSwKICAJCQkJaSwgaywgY291bnRlcnMsIF9jb3VudGVyLCBfb2JzZXJ2ZXI7CiAgIAogIAkJCWNvbnRhaW5lcnMgPSBnZXRCeUNsYXNzKGRvY3VtZW50LCBBRFNfQ0xBU1MpOwogIAkJCWZvciAoaSA9IGNvbnRhaW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAJCQkJdmFyIGNvdW50ZXJzID0gZ2V0QnlDbGFzcyhjb250YWluZXJzW2ldLCBBRFNfQ09VTlRFUl9DTEFTUywgJ3NwYW4nKTsKICAJCQkJX2NvdW50ZXIgPSBjb250YWluZXJzW2ldLmdldEF0dHJpYnV0ZShDT1VOVEVSX0FUVFIpOwogIAkJCQlfb2JzZXJ2ZXIgPSBjb250YWluZXJzW2ldLmhhc0F0dHJpYnV0ZShPQlNFUlZFUl9BVFRSKTsKICAJCQkJY291bnRhYmxlc1tpXSA9IHsKICAJCQkJCWVsOiBjb250YWluZXJzW2ldLAogIAkJCQkJcGl4ZWxzOiBbXSwKICAJCQkJCXBpeGVsc191bmRldGVybWluZWQ6IFtdLAogIAkJCQkJcGl4ZWxzX25vbnZpZXdhYmxlOiBbXSwKICAJCQkJCW9ic2VydmVyOiBfb2JzZXJ2ZXIKICAJCQkJfTsKICAJCQkJaWYgKF9jb3VudGVyKSBjb3VudGFibGVzW2ldLnBpeGVscy5wdXNoKF9jb3VudGVyKTsKICAJCQkJZm9yIChrID0gY291bnRlcnMubGVuZ3RoIC0gMTsgayA+PSAwOyBrLS0pIHsKICAJCQkJCWlmIChjb3VudGVyc1trXS5wYXJlbnROb2RlID09PSBjb3VudGFibGVzW2ldLmVsKSB7CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzLnB1c2goX2NvdW50ZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY291bnRlciA9IGNvdW50ZXJzW2tdLmdldEF0dHJpYnV0ZShDT1VOVEVSX0FUVFJfVU5ERVRFUk1JTkVEKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzX3VuZGV0ZXJtaW5lZC5wdXNoKF9jb3VudGVyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSX05PTlZJRVdBQkxFKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzX25vbnZpZXdhYmxlLnB1c2goX2NvdW50ZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogIAkJCQl9CiAgCQkJCXZhciBjYWxsYmFjayA9IGdldEJ5Q2xhc3MoY29udGFpbmVyc1tpXSwgQURTX0NBTExCQUNLX0NMQVNTLCAnc3BhbicpOwogIAkJCQlpZiAoY2FsbGJhY2tbMF0pIHsKICAJCQkJICB2YXIgX2NhbGxiYWNrID0gY2FsbGJhY2tbMF0uZ2V0QXR0cmlidXRlKENBTExCQUNLX0FUVFIpOwogIAkJCQkgIGlmIChfY2FsbGJhY2sgJiYgd2luZG93LlJCX0NBTExCQUNLUyAmJiB3aW5kb3cuUkJfQ0FMTEJBQ0tTW19jYWxsYmFja10pIHsKICAJCQkJICAgIGNvdW50YWJsZXNbaV0uY2FsbGJhY2sgPSB3aW5kb3cuUkJfQ0FMTEJBQ0tTW19jYWxsYmFja107CiAgCQkJCSAgfQogIAkJCQl9CiAgCQkJCWlmICghY291bnRhYmxlc1tpXS5waXhlbHMubGVuZ3RoKSBjb3VudGFibGVzLnNwbGljZShpLCAxKTsKICAJCQl9CiAgIAogIAkJCXJldHVybiBjb3VudGFibGVzOwogIAkJfQogICAKICAJCWZ1bmN0aW9uIGdldEJ5Q2xhc3MocGFyZW50LCBjaGlsZENsYXNzTmFtZSwgdGFnTmFtZSkgewogIAkJCWlmIChwYXJlbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSkgewogIAkJCQlyZXR1cm4gcGFyZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2hpbGRDbGFzc05hbWUpOwogIAkJCX0gZWxzZSBpZiAocGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwpIHsKICAgCiAgCQkJCXJldHVybiBwYXJlbnQucXVlcnlTZWxlY3RvckFsbCgnLicgKyBjaGlsZENsYXNzTmFtZSk7CiAgCQkJfSBlbHNlIHsKICAJCQkJdmFyIGVscyA9IFtdOwogIAkJCQl2YXIgdG1wID0gcGFyZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZ05hbWUgPyB0YWdOYW1lIDogIioiKTsKICAJCQkJdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cCgiKF58XHMpIiArIGNoaWxkQ2xhc3NOYW1lICsgIihcc3wkKSIpOwogIAkJCQlmb3IgKHZhciBpID0gMDsgaSA8IHRtcC5sZW5ndGg7IGkrKykgewogIAkJCQkJaWYgKHJlZ2V4LnRlc3QodG1wW2ldLmNsYXNzTmFtZSkpIHsKICAJCQkJCQllbHMucHVzaCh0bXBbaV0pOwogIAkJCQkJfQogIAkJCQl9CiAgCQkJCXJldHVybiBlbHM7CiAgCQkJfQogIAkJfQogICAKICAJCVJCQy5JKGdldEFkc0NvbnRhaW5lcnMoKSk7CiAgICAgIAogICAgfWNhdGNoKGUpe30KICB9KCdtYWlscnUnKSkKPC9zY3JpcHQ+CgoKCgo8c3R5bGU+CiAgI3RyZy1iLTE0MTMzMTg2Mi01MzA1Nzk3NjVbZGF0YS1oaWRlLTUzMDU3OTc2NV0gewogICAgcG9zaXRpb246IGFic29sdXRlIWltcG9ydGFudDsKICAgIGxlZnQ6IC05OTk5cHghaW1wb3J0YW50OwogICAgei1pbmRleDogLTEhaW1wb3J0YW50OwogICAgd2lkdGg6IDEwMCU7CiAgfQoKICAjeWFuZGV4X2FkX1ItMTQ3MDIzLTI2N181MzA1Nzk3NjUyIHsKCSAgYm9yZGVyLXJhZGl1czogOHB4IWltcG9ydGFudDsKICB9Cjwvc3R5bGU+CjxkaXYgaWQ9InlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1Mi1waXhlbDEiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CiAgPGRpdiBpZD0ieWFuZGV4X2FkX1ItMTQ3MDIzLTI2N181MzA1Nzk3NjUyLXBpeGVsMiI+CiAgICA8ZGl2IGlkPSJ5YW5kZXhfYWRfUi0xNDcwMjMtMjY3XzUzMDU3OTc2NTIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MzAwcHg7Ij48L2Rpdj4KICA8L2Rpdj4KPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAoZnVuY3Rpb24gKHcsIGQsIG4sIHMsIHQpIHsKICAgIHZhciB0aW1lU3RhcnQgPSArbmV3IERhdGUoKTsKCiAgICB2YXIgZmlyc3REaXJlY3RSZW5kZXIgPSB0cnVlOwogICAgdmFyIGZhbGxiYWNrSW52b2tlZCA9IGZhbHNlOwogICAgdmFyIGZhbGxiYWNrVGltZW91dCA9IG51bGw7CgogICAgdmFyIGZhbGxiYWNrVHlwZSA9IHsKICAgICAgRk9SQ0U6ICdmb3JjZScsCiAgICAgIFVOU1VQUE9SVDogJ3Vuc3VwcG9ydCcsCiAgICAgIFRJTUVPVVQ6ICd0aW1lb3V0JywKICAgICAgRVJST1I6ICdlcnJvcicsCiAgICAgIEVNUFRZOiAnZW1wdHknCiAgICB9OwoKICAgIGlmICghdy5NYXAgfHwgKHcuYXR0YWNoRXZlbnQgJiYgIXcuYWRkRXZlbnRMaXN0ZW5lcikpIHsgLy8gImJhZCIgSUUKICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgZmFsbGJhY2soZmFsbGJhY2tUeXBlLlVOU1VQUE9SVCk7CiAgICAgIH0sIDApOwogICAgICByZXR1cm47CiAgICB9CgoJCXZhciBmYWxsYmFja0RlbGF5ID0gMjUwMDsKCiAgICBpZiAoZmFsbGJhY2tEZWxheSkgewogICAgICBmYWxsYmFja1RpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICBmYWxsYmFjayhmYWxsYmFja1R5cGUuVElNRU9VVCk7CiAgICAgIH0sIGZhbGxiYWNrRGVsYXkpOwogICAgfSBlbHNlIHsKICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgZmFsbGJhY2soZmFsbGJhY2tUeXBlLkZPUkNFKTsKICAgICAgfSwgMCk7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICBmdW5jdGlvbiBnZXRCcm93c2VyTGFiZWwoKSB7CiAgICAgIHZhciBicm93c2VyID0gJ3Vuayc7CiAgICAgIHZhciB1YSA9IG5hdmlnYXRvci51c2VyQWdlbnQ7CgogICAgICBpZiAodWEuaW5kZXhPZignT3BlcmEnKSAhPT0gLTEgfHwgdWEuaW5kZXhPZignT1BSJykgIT09IC0xKSB7CiAgICAgICAgYnJvd3NlciA9ICdvcHInOwogICAgICB9IGVsc2UgaWYgKHVhLmluZGV4T2YoJ0VkZ2UnKSAhPT0gLTEpIHsKICAgICAgICBicm93c2VyID0gJ2VkZyc7CiAgICAgIH0gZWxzZSBpZiAodWEuaW5kZXhPZignQ2hyb21lJykgIT09IC0xKSB7CiAgICAgICAgYnJvd3NlciA9ICdjaHInOwogICAgICB9IGVsc2UgaWYgKHVhLmluZGV4T2YoJ1NhZmFyaScpICE9PSAtMSkgewogICAgICAgIGJyb3dzZXIgPSAnc2ZyJzsKICAgICAgfSBlbHNlIGlmICh1YS5pbmRleE9mKCdGaXJlZm94JykgIT09IC0xKSB7CiAgICAgICAgYnJvd3NlciA9ICdmZic7CiAgICAgIH0gZWxzZSBpZiAoKHVhLmluZGV4T2YoJ01TSUUnKSAhPT0gLTEpIHx8ICghIWRvY3VtZW50LmRvY3VtZW50TW9kZSA9PT0gdHJ1ZSkpIHsKICAgICAgICBicm93c2VyID0gJ2llJzsKICAgICAgfQoKICAgICAgcmV0dXJuIGJyb3dzZXI7CiAgICB9CgogICAgZnVuY3Rpb24gbG9nUmVuZGVyKGZhbGxiYWNrVHlwZSkgewogICAgICB2YXIgdGltZUVuZCA9ICtuZXcgRGF0ZSgpOwogICAgICB2YXIgZHVyYXRpb24gPSB0aW1lRW5kIC0gdGltZVN0YXJ0OwogICAgICB2YXIgYnJvd3NlciA9IGdldEJyb3dzZXJMYWJlbCgpOwogICAgICB2YXIgc2xvdElkID0gJzEyOTkyNzQnOwogICAgICB2YXIgaXByZWZpeCA9ICdiLScgKyBicm93c2VyICsgJ19zLScgKyBzbG90SWQ7CgogICAgICB2YXIgaWRhdGEgPSB7fTsKCiAgICAgIGlkYXRhW2lwcmVmaXggKyAnX3JlbmRlciddID0gZHVyYXRpb247CgogICAgICBpZiAoZmFsbGJhY2tUeXBlKSB7CiAgICAgICAgaWRhdGFbaXByZWZpeCArICdfJyArIGZhbGxiYWNrVHlwZV0gPSBkdXJhdGlvbjsKCiAgICAgICAgaWYgKCcnKSB7CiAgICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ19tcmsnXSA9IGR1cmF0aW9uOwogICAgICAgICAgaWRhdGFbaXByZWZpeCArICdfJyArIGZhbGxiYWNrVHlwZSArICdfbXJrJ10gPSBkdXJhdGlvbjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWRhdGFbaXByZWZpeCArICdfdHJnJ10gPSBkdXJhdGlvbjsKICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnXycgKyBmYWxsYmFja1R5cGUgKyAnX3RyZyddID0gZHVyYXRpb247CgogICAgICAgICAgaWYgKCcnKSB7CiAgICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnX3RyZ19oaSddID0gZHVyYXRpb247CiAgICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnXycgKyBmYWxsYmFja1R5cGUgKyAnX3RyZ19oaSddID0gZHVyYXRpb247CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ190cmdfbG8nXSA9IGR1cmF0aW9uOwogICAgICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ18nICsgZmFsbGJhY2tUeXBlICsgJ190cmdfbG8nXSA9IGR1cmF0aW9uOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ19kaXJlY3QnXSA9IGR1cmF0aW9uOwoKICAgICAgICBpZiAoJycpIHsKICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnX2RpcmVjdF9oaSddID0gZHVyYXRpb247CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnX2RpcmVjdF9sbyddID0gZHVyYXRpb247CiAgICAgICAgfQogICAgICB9CgogICAgICBpZiAody54cmF5KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmICh4cmF5LnNlbmRJbW1lZGlhdGVseSkgewogICAgICAgICAgICB4cmF5LnNlbmRJbW1lZGlhdGVseSgnYWRtYW4tdGltZScsIHsKICAgICAgICAgICAgICBpOiBpZGF0YQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHhyYXkuc2VuZCgnYWRtYW4tdGltZScsIHsKICAgICAgICAgICAgICBpOiBpZGF0YQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gZmFsbGJhY2sodHlwZSkgewogICAgICBpZiAoZmFsbGJhY2tJbnZva2VkKSByZXR1cm47CiAgICAgIGNsZWFyVGltZW91dChmYWxsYmFja1RpbWVvdXQpOwogICAgICBmYWxsYmFja0ludm9rZWQgPSB0cnVlOwoKICAgICAgdmFyIHRyZ0IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHJnLWItMTQxMzMxODYyLTUzMDU3OTc2NSIpOwogICAgICB2YXIgdHJnQjIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHJnLWItMTQxMzMxODYyLTUzMDU3OTc2NTIiKTsKICAgICAgdmFyIHRyZ1lhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1MiIpOwogICAgICB2YXIgdHJnWWFXcmFwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1Mi1waXhlbDEiKTsKCiAgICAgIGlmICh0cmdZYSkgewogICAgICAgIHRyZ1lhV3JhcC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICB9CgogICAgICBpZiAodHJnQikgewogICAgICAgIGlmICh0cmdCLmdldEF0dHJpYnV0ZSgiZGF0YS1oaWRlLTUzMDU3OTc2NSIpID09PSAiaGlkZS1iYW5uZXIiKSB7CiAgICAgICAgICB0cmdCLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1oaWRlLTUzMDU3OTc2NSIpOwogICAgICAgIH0KICAgICAgICB0cmdCLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwogICAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjdHJnLWItMTQxMzMxODYyLTUzMDU3OTc2NSAudHJnLXYtYmFubmVyJyk7CiAgICAgICAgaWYgKGNvbnRhaW5lci5sZW5ndGgpIHsKICAgICAgICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lclswXSB8fCBudWxsOwogICAgICAgIH0KICAgICAgICBpZiAoY29udGFpbmVyICYmIGNvbnRhaW5lci5wbGF5VmlkZW9DaGVjayAmJiB0eXBlb2YgY29udGFpbmVyLnBsYXlWaWRlb0NoZWNrID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICBjb250YWluZXIucGxheVZpZGVvQ2hlY2soKTsKICAgICAgICB9CiAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNSQ2pEM25WQUFBQUNFb0pva1h1MzdoQUZ3NVBfNVlYdGRsU2U5Mm5fOEpGT2JabGk5QmU3c3FvbFlDUklOQ25MU3A5YmJtOGpiWDQ0MnVheHBMZHp2YThsZ0lMRGQyOEhoZ0prN0o4elFwVUxjQTJrcE4weFNzd3lxWWMwQUxSaDZ5Ni1fcm5vb1VTLWR6NVFwSGZQZWZFN0tsSWZjX0c5cE1jaEZVeUVFVnpGRHVpUnV0alRZN0JJenI2VWdUU3Zfa3lGV1FIcTdRRXdZOFdDcjVBNk1jVUtkaVhMdkkzcHl4NDQyVmRiVWdFME1PMWQxWDJSeVFsZjRZMGlITy04OXN2TV9Gb1duQ05TOUszb0pCM1FWTGo0R2FESThDWVJTTzlfVWcyUHdVczJDNFVvOF9taXRvLmdpZiI7CiAgICAgICAgUkJDLkkoewogICAgICAgICAgICBlbDogdHJnQiwKICAgICAgICAgICAgcGl4ZWxzOiAgWydodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczUkpYbFczVkFBQUFVbm5qcVBLT0F3ZHdkMnlWd3pVNW1PNWllOVhnTjFMSlJjOE1qUlN4LUVHc0VCSmFPcWUwWUptcnBkNTdES3RkT0x2aUU1ZF9KVUE1TFliQ2VmYUU0TldkaFRJUC11bzFDcE91SUZIT0oyNDh1T3pUaFRlaGNvNmxUZVdVeGxYVm5jYXRITTk3QTlpOUJ2bmpDeVBVaEVYWFJyZVptb2NKS053RXJkbndheG9RaXM4M1hZZGdfYUdlaGU3ZGRwM05TeXVYSGpGem8zaUZxZ1d4QXBhVXZiTWF5X0FrczM1RXpOdElRNExDVWpZcTNfdzdnakVsWHFWMTM2RzRCUTlPVnlNb3NGSk1oVlNGb2R4S1N5NThLRnU0T2VDOFdJSWhLdndNZ1F5UTQySS5naWYnXQogICAgICAgIH0pOwogICAgICAgIFJCQy5JKHsKICAgICAgICAgICAgZWw6IHRyZ0IyLAogICAgICAgICAgICBwaXhlbHM6ICBbJ2h0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNkZk9ua2pWQUFBQWplNV9LRGtlbmpOZXcxVU4wSEJvdkY4cDAyZVhocUNDRHc2cUhlazVOZGNmTGNwLWNJb1BMQ0xmRGY4WkVHN3hONEZPOURQSm1MekZlVVhzcXFST2VmbGt0cTJlVUVrQkdlX29ZWE9DU2JFS0F0a2huNjRhOGJndHBVMkxOWHEwZm14OUZmR2FqYUoxbkRHLXFMWTJlYzZkMWlneGt6S0pJak5fWHh5RlBvblRGclFWOTVIdUY0RFg0NGc0MUJQdVV1MnZMek5kXzFPS3h1cE84Xy04X3BUb2I1eFVFUjNtMTc3X1BlVHV6LVdKTmJyVmROZUtCN0RsTXg5czFVM25ERnBacjYxMC1WbWlBNDZITm5MZVRRc1F2UHpfeHpRWjlzX0hhVERLX1MwLmdpZicsJ2h0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNWamVGQnZWQUFBQWRpYl9DMmM0R01OSk9VQ3pyb3JabXNYUEtCMkNjX0txbU5RMmZtbzNwdW1jTDh4UmpjczZJT3NHUVREYkRIQUFuYUd0bnJVaURQU2FaREk5TFVXNXBVZU05QS1pR0p0SDBKYjVXeGRhRC0xM0tISS03OGNiZjJFYWNKaXRnN2JsV3FFbXFyeGNIYTlYd2VINnQxSDRRU0xsN2Iwa2swOThGUmY3bXh0V2h4NmlaalRkVFE2dThtZ2pNWUFTOUlVU25UT19MaEFRb0NpLXVsQy0yZ2djbVNhS2N2dnNYUEhIWUxiY1k0RW1BNVRraWhONkNVVWdDa2hVS0dndHFTNWdrWFlsZXVDOG1pSVNQWEFtNko2eWZUMkljM2ljVFNvRUtiWWJwT2lHUTBzLmdpZiddLAogICAgICAgICAgICBkZWxheTogMgogICAgICAgIH0pOwoKICAgICAgICBpZiAodHlwZSA9PT0gZmFsbGJhY2tUeXBlLlRJTUVPVVQpIHsKICAgICAgICAgIG5ldyBJbWFnZSgpLnNyYyA9ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczZTZwYTFUVkFBQUFKVlI0WG1jY3VHeVd1N205N3o1X3VZWWJ0akVLM2l3WGNaNHVZM05tRG1fRXlPZDBvX1NaTFRiM3V0aGd2S1pXRzBDZmJFX21xNHlwajBJWEtORk1uU2JWVWR3T3VtODZZZ0lhY2MyUFdqZ1ZnNHViSGF3VmEyM0xjc2xwYmFOejc3U2VTVHhNMDdMZGltN3ppVXpNR3ZONDFzM2FjRWswMEdQRTIwQlNCbWdDZ3V5ajZyX1RFUk41djMxZkFaZGt3bnBIYlpuM1VuZXJFWFZkYnFVQU15a2VZbV82S2dGSEczODFGWU8ydE1ueEUzRlE3aWN0bFVBQTY0TE14YS1sXzVSY3hCV0tFSFBuQTZIXy1QYmZfcGhMVG9IMjNyZUZSTmZoUEpRSHg5dy5naWYiOwogICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gZmFsbGJhY2tUeXBlLkVSUk9SKSB7CiAgICAgICAgICBuZXcgSW1hZ2UoKS5zcmMgPSAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1g3V29qVFZBQUFBR3BMQlhRU29aR3Q4ZzJrX1V5QURDeHpJUW9ZQkdlLTlWSHVmd0dRc3pNaVBBd0NpQms5WktzOG84STkxeVFISFBpM0ZsbjI5Ymh5NzI0ejVMMWhZU3A3MWFXYkgzdVhZbWl0TEVOZlhGandUZ2FROF90THQtTEZTalByLVFfcjRrY01oRW9xZUQwWjR6ZU91Qlc2TGRMTUtfRm5Fd3FCLWVJQUVnNWVBdmZoTVM4MXJUWmlMZzA5WS1wY1Q2T3p4S3NTOFU3Y0toMWw1OFlLclg3ZV9KNXhLaEE3dEJiMWsxTmFNd1dqMklicklIdlU1TjlWNDVoLTNLR3Y3U0ZPdThVaTUxNkVrLXBOZVpZbk9HOE5zMmJVT1ZJUEJzd1RIclN4aFNjQ1FJWlUuZ2lmIjsKICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IGZhbGxiYWNrVHlwZS5FTVBUWSkgewogICAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNiTTZ3Q1hWQUFBQURXNnR0R2MxdVFoVGV1TlJwR1U3d0psS3VYQVIwY0xCSGRzOHN0b0ZVejdVMVpveDl6WXZPSUhoYzNVWjhuY3lQV2RFcVFFZ3BFVlgza292OVRLdGhyWjlvVG9yRkUxMlJDclVHbTI1dDVCZWNnSm11UEZxamVuSVN4S01hb1dtUkpJRS1CZjdQclppTm9wdjdPVk5mdTE2cTUzSmRxRjNfYmNJemt3eW5YYWJJcl9CclBNWGVvem56RWRfUElBWHRPaTRVWXlCQVIwTXlhZVZBT0llaFNyT21uemQzdWtxUzBfVDNvTjZtZ3BlYXM4cV9VN2xPcE8tSkJVRjBNVE40N1FyWUhuOFhUYTA4MEN4WnFNSUUzRUwwVndTSGxwQTJ4cHQ0cFpFM2lBLmdpZiI7CiAgICAgICAgfQoKICAgICAgICBsb2dSZW5kZXIodHlwZSk7CiAgICAgIH0KICAgIH0KCiAgICAvLyBTdGF0IHV0aWxzCiAgICBmdW5jdGlvbiBnZXRBcmVhUmF0aW8oY29udGFpbmVyLCBzZWxlY3RvcikgewogICAgICB2YXIgZWxlbXMgPSBjb250YWluZXIucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICAgIHZhciB0b3RhbEFyZWEgPSAwOwoKICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBlbGVtcy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKICAgICAgICB2YXIgZWwgPSBlbGVtc1tpXTsKICAgICAgICB2YXIgdyA9IChlbC5jbGllbnRXaWR0aCA9PT0gMCkgPyAwIDogKGVsLndpZHRoIHx8IGVsLmNsaWVudFdpZHRoKTsKICAgICAgICB2YXIgaCA9IChlbC5jbGllbnRIZWlnaHQgPT09IDApID8gMCA6IChlbC5oZWlnaHQgfHwgZWwuY2xpZW50SGVpZ2h0KTsKICAgICAgICB0b3RhbEFyZWEgKz0gdyAqIGg7CiAgICAgIH0KCiAgICAgIGlmICh0b3RhbEFyZWEgPT09IDApIHsKICAgICAgICByZXR1cm4gdG90YWxBcmVhOwogICAgICB9CgogICAgICB2YXIgY29udGFpbmVyQXJlYSA9IGNvbnRhaW5lci5jbGllbnRXaWR0aCAqIGNvbnRhaW5lci5jbGllbnRIZWlnaHQ7CiAgICAgIHJldHVybiB0b3RhbEFyZWEgLyBjb250YWluZXJBcmVhOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uQ29udGV4dFJlYWR5KCkgewogICAgICBZYS5Db250ZXh0LkFkdk1hbmFnZXIucmVuZGVyKHsKICAgICAgICBibG9ja0lkOiAiUi0xNDcwMjMtMjY3IiwKICAgICAgICBwYWdlTnVtYmVyOiAiNTMwNTc5NzY1MiIsCiAgICAgICAgcmVuZGVyVG86ICJ5YW5kZXhfYWRfUi0xNDcwMjMtMjY3XzUzMDU3OTc2NTIiLAogICAgICAgIHN0YXRJZDogIjc1IiwKICAgICAgICBhc3luYzogdHJ1ZSwKICAgICAgICBkaXNhYmxlSGlnaGxpZ2h0OiB0cnVlLAogICAgICAgIG9uUmVuZGVyOiBmdW5jdGlvbiAoZGF0YSkgewogICAgICAgICAgaWYgKGZhbGxiYWNrSW52b2tlZCkgcmV0dXJuOwogICAgICAgICAgY2xlYXJUaW1lb3V0KGZhbGxiYWNrVGltZW91dCk7CgogICAgICAgICAgZnVuY3Rpb24gbG9nWWFuZGV4U3RhdGUobWV0cmljLCBybG9nX21lc3NhZ2UpIHsKICAgICAgICAgICAgdmFyIHNyYyA9ICcvL21haWwucmFkYXIuaW1nc21haWwucnUvdXBkYXRlP3A9b2N0YXZpdXMmdD1hZG1hbi15YSZ2PTEmaT0nICsgbWV0cmljICsgJzoxJnJuZD0nICsgTWF0aC5yYW5kb20oKTsKCiAgICAgICAgICAgIGlmICgwICYmIHJsb2dfbWVzc2FnZSkgewogICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBzcmMgKz0gJyZybG9nX21lc3NhZ2U9JyArIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShybG9nX21lc3NhZ2UpKTsKICAgICAgICAgICAgICAgIHNyYyArPSAnJnJsb2c9YWRtYW4teWFfJyArIG1ldHJpYzsKICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBuZXcgSW1hZ2UoKS5zcmMgPSBzcmM7CiAgICAgICAgICB9CiAgICAgICAgICAKICAgICAgICAgIHZhciB5YU5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieWFuZGV4X2FkX1ItMTQ3MDIzLTI2N181MzA1Nzk3NjUyIik7CgogICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5yZWZyZXNoKSB7CiAgICAgICAgICAgIG5ldyBJbWFnZSgpLnNyYyA9ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczVjllVnd6VkFBQUFuaTRxT0sxaFVWUVNiRFQ3end3MEtoeVhKRFBqZVRiMWZDZjJKOUxNbEZxeXdsRkJCdDE0b1FxS1NHaE1oTHctemw4amwzZndNeXBzZy1aNENYTmhDMnhSWDRPTFRXOEdHb3MwODNXMVBURGVYcjhNSWdmaXVKUVdvN3dQVkhCV0RTbFE3TnNqYkx4R0M4QXB5cm9Kanc4bU1KeEJrMDhkaENZd3Rmc1oxWmk1SWIzclU1MW1WZk1IUjVoSVlyY1YwZm5yV09LeWxQSXJPTkZzYkEtMms3Ujl6OFhTdk5QTTd5U2c1TERZSWU1UXBmdWtJVE9TN0lYNHpBMjBodVl2WE9pdGE4V252UWJMd2F2UUtMcXdTczdVeC0zV1dneWZfTkh0UW9NUHFkOC5naWYiOwoKICAgICAgICAgICAgbG9nWWFuZGV4U3RhdGUoJ3JlZnJlc2gnKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG5ldyBJbWFnZSgpLnNyYyA9ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczVkxrdldEVkFBQUFqdUd1cHEwQkJISEpqMVBhQ0l1eGM0d1luRHF2THg0c2t4dzlFWG4yUEdVYmgwbk1MNFpnQlJ2M2JWaEtLUktSYzJsLUxTQUdhZEtSQ2JjN3hyS2xSVW5SVTJrQ2lqM2I3MjZuZUZqMzBtTXZobGEyQmgxN0RkRTdGOGN5dTdXcF94RWtfdWc1cHI4a0FSZ25fTXh1a2ZXS1lwOHVjN0ptWUxVeDF0cnFnV1RvbDd6Sjg0N0xRNjhCdmVCZUxXTGo1ZmxXM2ZrcmJmTHZtVEV5dXlrT29ET1pYUVdKOXR6TS1nUDhrVzEyb3BzbXdUc19wUkNXYkFqcjdFbnpmQ1BaTE1IcG1TQ1VpdURNRmRkaWdabUI2VFpwSVBVbU83MXl6dmt2VnpROTRIYy5naWYiOwogICAgICAgICAgICBpZiAoZmlyc3REaXJlY3RSZW5kZXIpIHsKICAgICAgICAgICAgICBmaXJzdERpcmVjdFJlbmRlciA9IGZhbHNlOwoKICAgICAgICAgICAgICBpZiAoeWFOb2RlKSB7CiAgICAgICAgICAgICAgICBSQkMuSSh7CiAgICAgICAgICAgICAgICAgIGVsOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieWFuZGV4X2FkX1ItMTQ3MDIzLTI2N181MzA1Nzk3NjUyLXBpeGVsMSIpLAogICAgICAgICAgICAgICAgICBwaXhlbHM6IFsnaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1VfaWhsdlZBQUFBMm5XbUV0eHIzbEY1YUpkc2IyMXN5R0ttbzFQNlowMFhENWJsRTVRbGZSeXhMc0lNVXE5bXFyMzlOaHhQMFUxbjlhRmNTRFpmam1aSFpGQjQ1bkdNSGtxM095bkY3ZVJPYU16V2dLLTRCdTRreXZMYVRlQXdtV2tJeTNucUsxTnlHU2xtNUJXN2R6Yi1VSlRHdUhMMnFfUzJPWFZZVVJfTGsyR2pJMDkycUdnVVRPQUw5UzNNa1RZbjFCd296al9zYmYzcXJsZW9uSFF2MWpjTHNmZXY0MzZnLXRpQXBHUGc4MTFfVXdLamR1ZjJNT0c3N01KbU9obUx6Zlh0cTR4cngzQnhaQ1dwU2hvMC0zbEZsdWhJdXkyX3ZiUXYzM2phT2hGM1ZJV1RfaHMuZ2lmJ10KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgUkJDLkkoewogICAgICAgICAgICAgICAgICBlbDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1Mi1waXhlbDIiKSwKICAgICAgICAgICAgICAgICAgcGl4ZWxzOiBbJ2h0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNlUFhmSDdWQUFBQXRWZmYwTTYzcEVFOFVvWVJfVUZ1UEhwWjBVbEhUMWltRXBJU3phQXA0cXBWbHZ4dk9yRWVYVjlVSVZ6cmtQeEhyeU8zNEF1TjlrcmNuSFRFZGo3NTRVeU9DRXZ4cV9mUjNIMTNtUHNYeE9ITDYwb3BTWVVNMjNncnA4US11dzFzSFJDaWlSRFQzNm5JcmpGSGdnWk9vU0RJUE1HN2NIblpqZDRSdTRfSUxidi1ISkx3V01wRTZGQ0k4aWNSd0wybmMzaktQUFU4NUhtSUlFSEhYWkxVNzV6enVrZzcyY1BwZVhLanVEY1ZJWjJqSXJsRlRhMVVFRkpLVnJnbEJkdktQTWFqVS0yMjZIcThyek51NEtKWUpVYWxnUGM0SG4tRDFsQmhSckl6WjFVLmdpZicsICdodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczVFFWaDFiVkFBQUFYNnEtUkk0MjBGdVJQZFlibWtDMHQwMVhDT3docUlCajhVNEVBbU9xX1JrUUo2RzJxNXpsU1NxY2U5Q3g2SnRUdzMxQUZhZ0hyZ09Rc2FodkZJdlJ1aUJ6TWdDbHAtS3pYYTFGTF9uNTJvMFVoQnFVNWlJNENkb1hzenRwb3dSdzZ1TUhCWFZfM0xFWWwtRkZDbS0yUWlKTlFFOEFwUmVUX0F1c0F4TTl0ZmJtemNUNzRiWVNlN18tWTRTbjY4NXZHVVNmWUhXMWZsZTZfUzNXZlI4Nm9XbllpZmFGN1VFaWtlaVpiOExRSjA2RWFHTmtXcDlqQm1FQ1VXUEVrYzFuNThsRXBZVW1QUG5oOG5pYlNkRVR6bk9jLVZYSTUtbnV1WEM1dWF4UkJfMC5naWYnXSwKICAgICAgICAgICAgICAgICAgZGVsYXk6IDIKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgbG9nUmVuZGVyKCk7CgogICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBpZiAoeWFOb2RlKSB7CiAgICAgICAgICAgICAgICAgIGlmICh5YU5vZGUuaW5uZXJIVE1MKSB7CiAgICAgICAgICAgICAgICAgICAgbG9nWWFuZGV4U3RhdGUoJ25vdF9lbXB0eV9hZnRlcl9yZW5kZXInKTsKICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBmYWxsYmFjayhmYWxsYmFja1R5cGUuRU1QVFkpOwogICAgICAgICAgICAgICAgICAgIGxvZ1lhbmRleFN0YXRlKCdlbXB0eV9hZnRlcl9yZW5kZXInLCBkYXRhKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmICh5YU5vZGUgJiYgZ2V0QXJlYVJhdGlvKHlhTm9kZSwgJ2ltZycpID4gMC4zKSB7CiAgICAgICAgICAgIG5ldyBJbWFnZSgpLnNyYyA9ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczVDdWa2hqVkFBQUE1d3JOaEctMHdpLVkwTEZTVVR3TXhmU1BvMDdmbHE0TVluSlFHbm9Qa2phX3FXZ1dYeTVOZmRhd3ZlVmN1TlRLbm1jNXFMNTJNN0dwYVhzS2ZQaVRqX1Nlb2pCYks2OFliSXJRRWtuZldrWklCbnRQTUM3WmI2X0U0THNJTTZpMkFVNmVRVFRmMWQzUno4a2NoNzhxbjFkMllvUXpIRVE2SndVd2tyS0Z3SThKVjNIZUcwR3hPOVdTOURvOE1SMVRXTkhsWEJXaUJGX1lCSVkzSW1Fbi1ITW5CRmtYLXhjUktRal9LVVdyTVNOdWJ0NlM3cWoybTdtSW9YTk1rb1lnQnFhOHVEeC1VZlBqSmp6T29tNUdEM2pQR1ZxSHdPb0daYTZWUEwybzdqcy5naWYiOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwgZnVuY3Rpb24gKCkgewogICAgICAgIGlmIChmaXJzdERpcmVjdFJlbmRlcikgewogICAgICAgICAgZmFsbGJhY2soZmFsbGJhY2tUeXBlLkVNUFRZKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQoKICAgIHcuWUFfTUFJTFJVX09LID0gdHJ1ZTsKCiAgICBpZiAody5ZYSAmJiBZYS5Db250ZXh0ICYmIFlhLkNvbnRleHQuQWR2TWFuYWdlciAmJiBZYS5Db250ZXh0LkFkdk1hbmFnZXIucmVuZGVyKSB7CiAgICAgIG9uQ29udGV4dFJlYWR5KCk7CiAgICB9IGVsc2UgewogICAgICB3W25dID0gd1tuXSB8fCBbXTsKICAgICAgd1tuXS5wdXNoKG9uQ29udGV4dFJlYWR5KTsKICAgICAgY29uc3QgY29udGV4dFBhdGggPSAiaHR0cHM6Ly95YW5kZXgucnUvYWRzL3N5c3RlbS9jb250ZXh0LmpzIjsKICAgICAgY29uc3QgaGFzTm90Q29uZXh0RmlsZSA9IGQucXVlcnlTZWxlY3Rvcigic2NyaXB0W3NyYz1cIiIgKyBjb250ZXh0UGF0aCArICJcIl0iKSA/IGZhbHNlIDogdHJ1ZSA7CiAgICAgIGNvbnN0IGxvYWRlZFNjcmlwdCA9IGZ1bmN0aW9uICgpewogICAgICAgIHQgPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTsKICAgICAgICBzID0gZC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICAgICBzLnR5cGUgPSAidGV4dC9qYXZhc2NyaXB0IjsKICAgICAgICBzLnNyYyA9IGNvbnRleHRQYXRoOwogICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgIHMub25lcnJvciA9IGZ1bmN0aW9uICgpIHsKICAgICAgICBmYWxsYmFjayhmYWxsYmFja1R5cGUuRVJST1IpOwogICAgICAgIH07CiAgICAgICAgdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzLCB0KTsKICAgICAgfQogICAgICBpZiAoaGFzTm90Q29uZXh0RmlsZSkgewogICAgICAgIGxvYWRlZFNjcmlwdCgpOwogICAgICB9CiAgICB9CiAgfSkodGhpcywgdGhpcy5kb2N1bWVudCwgInlhbmRleENvbnRleHRBc3luY0NhbGxiYWNrcyIpOwo8L3NjcmlwdD4KPCEtLVJCLUpTT046WwogICAgewogICAgICAgICJub2RlSWQiOiAieWFuZGV4X2FkX1ItMTQ3MDIzLTI2N181MzA1Nzk3NjUyIiwKICAgICAgICAic291cmNlIjogImRpcmVjdCIsCiAgICAgICAgImlzX2V4cGVuc2l2ZSI6ICJUcnVlIiwiZm9ybWF0IjogIm11bHRpIiwKICAgICAgICAiY291bnQiOiAxLAogICAgICAgICJiYW5uZXJJZCI6ICIxNDEzMzE4NjIiLAogICAgICAgICJmYWxsYmFjayI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm5vZGVJZCI6ICJ0cmctYi0xNDEzMzE4NjItNTMwNTc5NzY1IiwKICAgICAgICAgICAgICAgICJzb3VyY2UiOiAidGFyZ2V0IiwKICAgICAgICAgICAgICAgICJmb3JtYXQiOiAibXVsdGkiLAogICAgICAgICAgICAgICAgImNvdW50IjogMQogICAgICAgICAgICAgICAgfQogICAgICAgIF0KICAgIH0KXS0tPgoKCgoKCgoKIDwvZGl2PgoKCjxzY3JpcHQ+CiAgKGZ1bmN0aW9uKHByZWZpeCl7CiAgICB0cnl7CiAgICAgIAogICAgICBmdW5jdGlvbiBnZXRBZHNDb250YWluZXJzKCkgewogIAkJCXZhciBBRFNfQ0xBU1MgPSBwcmVmaXggKyAnLXZpc2liaWxpdHktY2hlY2snLAogIAkJCQlBRFNfQ09VTlRFUl9DTEFTUyA9IEFEU19DTEFTUyArICctY291bnRlcicsCiAgCQkJCUFEU19DQUxMQkFDS19DTEFTUyA9IEFEU19DTEFTUyArICctY2FsbGJhY2snLAogIAkJCQlDT1VOVEVSX0FUVFIgPSAnZGF0YS1jb3VudGVyJywKICAJCQkJQ09VTlRFUl9BVFRSX1VOREVURVJNSU5FRCA9IENPVU5URVJfQVRUUiArICctdW4nLAogIAkJCQlDT1VOVEVSX0FUVFJfTk9OVklFV0FCTEUgPSBDT1VOVEVSX0FUVFIgKyAnLW52JywKICAJCQkJQ0FMTEJBQ0tfQVRUUiA9ICdkYXRhLWNhbGxiYWNrJywKICAJCQkJT0JTRVJWRVJfQVRUUiA9ICdkYXRhLW9ic2VydmVyJywKICAJCQkJY29udGFpbmVycyA9IFtdLAogIAkJCQljb3VudGFibGVzID0gW10sCiAgCQkJCWksIGssIGNvdW50ZXJzLCBfY291bnRlciwgX29ic2VydmVyOwogICAKICAJCQljb250YWluZXJzID0gZ2V0QnlDbGFzcyhkb2N1bWVudCwgQURTX0NMQVNTKTsKICAJCQlmb3IgKGkgPSBjb250YWluZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgCQkJCXZhciBjb3VudGVycyA9IGdldEJ5Q2xhc3MoY29udGFpbmVyc1tpXSwgQURTX0NPVU5URVJfQ0xBU1MsICdzcGFuJyk7CiAgCQkJCV9jb3VudGVyID0gY29udGFpbmVyc1tpXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSKTsKICAJCQkJX29ic2VydmVyID0gY29udGFpbmVyc1tpXS5oYXNBdHRyaWJ1dGUoT0JTRVJWRVJfQVRUUik7CiAgCQkJCWNvdW50YWJsZXNbaV0gPSB7CiAgCQkJCQllbDogY29udGFpbmVyc1tpXSwKICAJCQkJCXBpeGVsczogW10sCiAgCQkJCQlwaXhlbHNfdW5kZXRlcm1pbmVkOiBbXSwKICAJCQkJCXBpeGVsc19ub252aWV3YWJsZTogW10sCiAgCQkJCQlvYnNlcnZlcjogX29ic2VydmVyCiAgCQkJCX07CiAgCQkJCWlmIChfY291bnRlcikgY291bnRhYmxlc1tpXS5waXhlbHMucHVzaChfY291bnRlcik7CiAgCQkJCWZvciAoayA9IGNvdW50ZXJzLmxlbmd0aCAtIDE7IGsgPj0gMDsgay0tKSB7CiAgCQkJCQlpZiAoY291bnRlcnNba10ucGFyZW50Tm9kZSA9PT0gY291bnRhYmxlc1tpXS5lbCkgewogICAgICAgICAgICAgIF9jb3VudGVyID0gY291bnRlcnNba10uZ2V0QXR0cmlidXRlKENPVU5URVJfQVRUUik7CiAgICAgICAgICAgICAgaWYgKF9jb3VudGVyKSB7CiAgICAgICAgICAgICAgICBjb3VudGFibGVzW2ldLnBpeGVscy5wdXNoKF9jb3VudGVyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSX1VOREVURVJNSU5FRCk7CiAgICAgICAgICAgICAgaWYgKF9jb3VudGVyKSB7CiAgICAgICAgICAgICAgICBjb3VudGFibGVzW2ldLnBpeGVsc191bmRldGVybWluZWQucHVzaChfY291bnRlcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF9jb3VudGVyID0gY291bnRlcnNba10uZ2V0QXR0cmlidXRlKENPVU5URVJfQVRUUl9OT05WSUVXQUJMRSk7CiAgICAgICAgICAgICAgaWYgKF9jb3VudGVyKSB7CiAgICAgICAgICAgICAgICBjb3VudGFibGVzW2ldLnBpeGVsc19ub252aWV3YWJsZS5wdXNoKF9jb3VudGVyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAJCQkJfQogIAkJCQl2YXIgY2FsbGJhY2sgPSBnZXRCeUNsYXNzKGNvbnRhaW5lcnNbaV0sIEFEU19DQUxMQkFDS19DTEFTUywgJ3NwYW4nKTsKICAJCQkJaWYgKGNhbGxiYWNrWzBdKSB7CiAgCQkJCSAgdmFyIF9jYWxsYmFjayA9IGNhbGxiYWNrWzBdLmdldEF0dHJpYnV0ZShDQUxMQkFDS19BVFRSKTsKICAJCQkJICBpZiAoX2NhbGxiYWNrICYmIHdpbmRvdy5SQl9DQUxMQkFDS1MgJiYgd2luZG93LlJCX0NBTExCQUNLU1tfY2FsbGJhY2tdKSB7CiAgCQkJCSAgICBjb3VudGFibGVzW2ldLmNhbGxiYWNrID0gd2luZG93LlJCX0NBTExCQUNLU1tfY2FsbGJhY2tdOwogIAkJCQkgIH0KICAJCQkJfQogIAkJCQlpZiAoIWNvdW50YWJsZXNbaV0ucGl4ZWxzLmxlbmd0aCkgY291bnRhYmxlcy5zcGxpY2UoaSwgMSk7CiAgCQkJfQogICAKICAJCQlyZXR1cm4gY291bnRhYmxlczsKICAJCX0KICAgCiAgCQlmdW5jdGlvbiBnZXRCeUNsYXNzKHBhcmVudCwgY2hpbGRDbGFzc05hbWUsIHRhZ05hbWUpIHsKICAJCQlpZiAocGFyZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUpIHsKICAJCQkJcmV0dXJuIHBhcmVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNoaWxkQ2xhc3NOYW1lKTsKICAJCQl9IGVsc2UgaWYgKHBhcmVudC5xdWVyeVNlbGVjdG9yQWxsKSB7CiAgIAogIAkJCQlyZXR1cm4gcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy4nICsgY2hpbGRDbGFzc05hbWUpOwogIAkJCX0gZWxzZSB7CiAgCQkJCXZhciBlbHMgPSBbXTsKICAJCQkJdmFyIHRtcCA9IHBhcmVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWdOYW1lID8gdGFnTmFtZSA6ICIqIik7CiAgCQkJCXZhciByZWdleCA9IG5ldyBSZWdFeHAoIihefFxzKSIgKyBjaGlsZENsYXNzTmFtZSArICIoXHN8JCkiKTsKICAJCQkJZm9yICh2YXIgaSA9IDA7IGkgPCB0bXAubGVuZ3RoOyBpKyspIHsKICAJCQkJCWlmIChyZWdleC50ZXN0KHRtcFtpXS5jbGFzc05hbWUpKSB7CiAgCQkJCQkJZWxzLnB1c2godG1wW2ldKTsKICAJCQkJCX0KICAJCQkJfQogIAkJCQlyZXR1cm4gZWxzOwogIAkJCX0KICAJCX0KICAgCiAgCQlSQi5JKGdldEFkc0NvbnRhaW5lcnMoKSk7CiAgICAgIAogICAgfWNhdGNoKGUpe30KICB9KCdtYWlscnUnKSkKPC9zY3JpcHQ+CgogPC9kaXY+CgoKPHNjcmlwdD4KICAoZnVuY3Rpb24ocHJlZml4KXsKICAgIHRyeXsKICAgICAgCiAgICAgIGZ1bmN0aW9uIGdldEFkc0NvbnRhaW5lcnMoKSB7CiAgCQkJdmFyIEFEU19DTEFTUyA9IHByZWZpeCArICctdmlzaWJpbGl0eS1jaGVjaycsCiAgCQkJCUFEU19DT1VOVEVSX0NMQVNTID0gQURTX0NMQVNTICsgJy1jb3VudGVyJywKICAJCQkJQURTX0NBTExCQUNLX0NMQVNTID0gQURTX0NMQVNTICsgJy1jYWxsYmFjaycsCiAgCQkJCUNPVU5URVJfQVRUUiA9ICdkYXRhLWNvdW50ZXInLAogIAkJCQlDT1VOVEVSX0FUVFJfVU5ERVRFUk1JTkVEID0gQ09VTlRFUl9BVFRSICsgJy11bicsCiAgCQkJCUNPVU5URVJfQVRUUl9OT05WSUVXQUJMRSA9IENPVU5URVJfQVRUUiArICctbnYnLAogIAkJCQlDQUxMQkFDS19BVFRSID0gJ2RhdGEtY2FsbGJhY2snLAogIAkJCQlPQlNFUlZFUl9BVFRSID0gJ2RhdGEtb2JzZXJ2ZXInLAogIAkJCQljb250YWluZXJzID0gW10sCiAgCQkJCWNvdW50YWJsZXMgPSBbXSwKICAJCQkJaSwgaywgY291bnRlcnMsIF9jb3VudGVyLCBfb2JzZXJ2ZXI7CiAgIAogIAkJCWNvbnRhaW5lcnMgPSBnZXRCeUNsYXNzKGRvY3VtZW50LCBBRFNfQ0xBU1MpOwogIAkJCWZvciAoaSA9IGNvbnRhaW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAJCQkJdmFyIGNvdW50ZXJzID0gZ2V0QnlDbGFzcyhjb250YWluZXJzW2ldLCBBRFNfQ09VTlRFUl9DTEFTUywgJ3NwYW4nKTsKICAJCQkJX2NvdW50ZXIgPSBjb250YWluZXJzW2ldLmdldEF0dHJpYnV0ZShDT1VOVEVSX0FUVFIpOwogIAkJCQlfb2JzZXJ2ZXIgPSBjb250YWluZXJzW2ldLmhhc0F0dHJpYnV0ZShPQlNFUlZFUl9BVFRSKTsKICAJCQkJY291bnRhYmxlc1tpXSA9IHsKICAJCQkJCWVsOiBjb250YWluZXJzW2ldLAogIAkJCQkJcGl4ZWxzOiBbXSwKICAJCQkJCXBpeGVsc191bmRldGVybWluZWQ6IFtdLAogIAkJCQkJcGl4ZWxzX25vbnZpZXdhYmxlOiBbXSwKICAJCQkJCW9ic2VydmVyOiBfb2JzZXJ2ZXIKICAJCQkJfTsKICAJCQkJaWYgKF9jb3VudGVyKSBjb3VudGFibGVzW2ldLnBpeGVscy5wdXNoKF9jb3VudGVyKTsKICAJCQkJZm9yIChrID0gY291bnRlcnMubGVuZ3RoIC0gMTsgayA+PSAwOyBrLS0pIHsKICAJCQkJCWlmIChjb3VudGVyc1trXS5wYXJlbnROb2RlID09PSBjb3VudGFibGVzW2ldLmVsKSB7CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzLnB1c2goX2NvdW50ZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY291bnRlciA9IGNvdW50ZXJzW2tdLmdldEF0dHJpYnV0ZShDT1VOVEVSX0FUVFJfVU5ERVRFUk1JTkVEKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzX3VuZGV0ZXJtaW5lZC5wdXNoKF9jb3VudGVyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSX05PTlZJRVdBQkxFKTsKICAgICAgICAgICAgICBpZiAoX2NvdW50ZXIpIHsKICAgICAgICAgICAgICAgIGNvdW50YWJsZXNbaV0ucGl4ZWxzX25vbnZpZXdhYmxlLnB1c2goX2NvdW50ZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogIAkJCQl9CiAgCQkJCXZhciBjYWxsYmFjayA9IGdldEJ5Q2xhc3MoY29udGFpbmVyc1tpXSwgQURTX0NBTExCQUNLX0NMQVNTLCAnc3BhbicpOwogIAkJCQlpZiAoY2FsbGJhY2tbMF0pIHsKICAJCQkJICB2YXIgX2NhbGxiYWNrID0gY2FsbGJhY2tbMF0uZ2V0QXR0cmlidXRlKENBTExCQUNLX0FUVFIpOwogIAkJCQkgIGlmIChfY2FsbGJhY2sgJiYgd2luZG93LlJCX0NBTExCQUNLUyAmJiB3aW5kb3cuUkJfQ0FMTEJBQ0tTW19jYWxsYmFja10pIHsKICAJCQkJICAgIGNvdW50YWJsZXNbaV0uY2FsbGJhY2sgPSB3aW5kb3cuUkJfQ0FMTEJBQ0tTW19jYWxsYmFja107CiAgCQkJCSAgfQogIAkJCQl9CiAgCQkJCWlmICghY291bnRhYmxlc1tpXS5waXhlbHMubGVuZ3RoKSBjb3VudGFibGVzLnNwbGljZShpLCAxKTsKICAJCQl9CiAgIAogIAkJCXJldHVybiBjb3VudGFibGVzOwogIAkJfQogICAKICAJCWZ1bmN0aW9uIGdldEJ5Q2xhc3MocGFyZW50LCBjaGlsZENsYXNzTmFtZSwgdGFnTmFtZSkgewogIAkJCWlmIChwYXJlbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSkgewogIAkJCQlyZXR1cm4gcGFyZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2hpbGRDbGFzc05hbWUpOwogIAkJCX0gZWxzZSBpZiAocGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwpIHsKICAgCiAgCQkJCXJldHVybiBwYXJlbnQucXVlcnlTZWxlY3RvckFsbCgnLicgKyBjaGlsZENsYXNzTmFtZSk7CiAgCQkJfSBlbHNlIHsKICAJCQkJdmFyIGVscyA9IFtdOwogIAkJCQl2YXIgdG1wID0gcGFyZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZ05hbWUgPyB0YWdOYW1lIDogIioiKTsKICAJCQkJdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cCgiKF58XHMpIiArIGNoaWxkQ2xhc3NOYW1lICsgIihcc3wkKSIpOwogIAkJCQlmb3IgKHZhciBpID0gMDsgaSA8IHRtcC5sZW5ndGg7IGkrKykgewogIAkJCQkJaWYgKHJlZ2V4LnRlc3QodG1wW2ldLmNsYXNzTmFtZSkpIHsKICAJCQkJCQllbHMucHVzaCh0bXBbaV0pOwogIAkJCQkJfQogIAkJCQl9CiAgCQkJCXJldHVybiBlbHM7CiAgCQkJfQogIAkJfQogICAKICAJCVJCLkkoZ2V0QWRzQ29udGFpbmVycygpKTsKICAgICAgCiAgICB9Y2F0Y2goZSl7fQogIH0oJ21haWxydScpKQo8L3NjcmlwdD4KPC9pbnM+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icGxfcSBwbF9uIHBsX3ggcGxfYW0iIGRhdGEtdGVzdGlkPSJwdWxzZS1jYXJkIj48ZGl2IGNsYXNzPSJDYXJkUHJlbG9hZGVyLXJvb3QtMC0xLTEwMiBDb250ZW50Q2FyZC1yb290LTAtMS0xMDciPjxkaXYgY2xhc3M9IkNhcmRQcmVsb2FkZXItYm9keS0wLTEtMTAzIj48ZGl2IGNsYXNzPSJDYXJkUHJlbG9hZGVyLWltYWdlLTAtMS0xMDQgUGVuZGluZ0Jsb2NrLXJvb3QtMC0xLTEwOSI+PC9kaXY+PGRpdiBjbGFzcz0iQ2FyZFByZWxvYWRlci10aXRsZS0wLTEtMTA1IFBlbmRpbmdCbG9jay1yb290LTAtMS0xMDkiPjwvZGl2PjxkaXYgY2xhc3M9IkNhcmRQcmVsb2FkZXItZGVzYy0wLTEtMTA2IFBlbmRpbmdCbG9jay1yb290LTAtMS0xMDkiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InBsX2FnIiBkYXRhLXRlc3RpZD0icHVsc2Utcm93Ij48ZGl2IGNsYXNzPSJwbF9xIHBsX24gcGxfeCBwbF9hbSIgZGF0YS10ZXN0aWQ9InB1bHNlLWNhcmQiPjxkaXYgY2xhc3M9IkNhcmRQcmVsb2FkZXItcm9vdC0wLTEtMTAyIENvbnRlbnRDYXJkLXJvb3QtMC0xLTEwNyI+PGRpdiBjbGFzcz0iQ2FyZFByZWxvYWRlci1ib2R5LTAtMS0xMDMiPjxkaXYgY2xhc3M9IkNhcmRQcmVsb2FkZXItaW1hZ2UtMC0xLTEwNCBQZW5kaW5nQmxvY2stcm9vdC0wLTEtMTA5Ij48L2Rpdj48ZGl2IGNsYXNzPSJDYXJkUHJlbG9hZGVyLXRpdGxlLTAtMS0xMDUgUGVuZGluZ0Jsb2NrLXJvb3QtMC0xLTEwOSI+PC9kaXY+PGRpdiBjbGFzcz0iQ2FyZFByZWxvYWRlci1kZXNjLTAtMS0xMDYgUGVuZGluZ0Jsb2NrLXJvb3QtMC0xLTEwOSI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icGxfcSBwbF9uIHBsX3ggcGxfYW0iIGRhdGEtdGVzdGlkPSJwdWxzZS1jYXJkIj48ZGl2IGNsYXNzPSJwbF9pIHBsX2ogcGxfbCBwbF9heiBwbF9hMCBwbF9hbiI+PGlucyBjbGFzcz0ibXJnLXRhZyBwbF9heSIgZGF0YS1zbG90PSIxMjk5Mjc0IiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBub25lOyI+CgoKCgoKCjxkaXYgY2xhc3M9Im1haWxydS12aXNpYmlsaXR5LWNoZWNrIiBpZD0ibWFpbHJ1MTcxNjMxMzMxNjk1NTMwMTMyOSI+IDxzcGFuIGNsYXNzPSJtYWlscnUtdmlzaWJpbGl0eS1jaGVjay1jb3VudGVyIiBkYXRhLWNvdW50ZXI9Imh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNZM09leGZPQUFBQUZobU9oSmVGUzB0NVdDYmMyMUlTTFJQZHRRam0zQWllTnI3Xzc4cTBZUERLSVV4VGhoOUJnTTczNklCUE91RDMtQmppeFMxMVRIUngtRHp0LU5LWEtRMkhUazA3UVkzWnBMbzlIYWxUaGJIU3p2MWpmSjZ1bDZqU2E5SVZFSzZRT3loZUNWakhPWjgtdEsyaGpjdVZBWEFLVmszUVZnZW9LWUotSnlob3lpQVloM3VWam1qRU9RUkJxQmRpRTVYd2F3M1ZYdGptS2huTS1pOUp5MUdWWXU5bXBUZVRrOS1UR2RsX2lqSEVlbllUVEtoUEdCN052SHVJSWxhUUJTYnB0TVJ5aGdGTl9PLVFEUWl6cUExNW93LmdpZiIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+PC9zcGFuPiA8aW1nIHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTSgzKS5naWYiIHN0eWxlPSJ3aWR0aDowO2hlaWdodDowO3Bvc2l0aW9uOmFic29sdXRlO3Zpc2liaWxpdHk6aGlkZGVuOyIgYWx0PSIiPgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKICAKICAKICAKICAKCgoKCgoKCgoKCgoKCgo8IS0tIDY0NzcgLS0+CgoKCjxkaXYgY2xhc3M9InRyZy1iLXdyYXAiIGlkPSJ0cmctYi0xNTUyODcwMzgtNTMwNTc5NzY1IiBzdHlsZT0iZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjA7IHRleHQtYWxpZ246IGxlZnQ7Ij48ZGl2IGlkPSJ0cmctYi0xNTUyODcwMzgtNTMwNTc5NzY1MiI+CiAgICAKICAgIAogICAgCiAgICAKPGRpdiBpZD0iYjE1NTg5NDgyOV8xMDE2NjExNDAzIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBub25lOyIgZGF0YS1pbml0PSJ0cnVlIj48aWZyYW1lIHNjcm9sbGluZz0ibm8iIG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9IjAiIGZyYW1lYm9yZGVyPSIwIiBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL3NhdmVkX3Jlc291cmNlKDEpLmh0bWwiIGlkPSJ0cmctYWRmci1iMTU1ODk0ODI5XzEwMTY2MTE0MDMtODQzMTAiIGNsYXNzPSJtcmctdHJnYi1pZnJhbWUtY2hlY2sgbXVsdGlmb3JtYXQzMDB4MzAwd2lkZU5vQm9yZGVyLS1vdXRlckZyYW1lLS12eWJ6UDEiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjMwMHB4IiBkYXRhLWV4Y2x1ZGUtaWQ9IjE1NTg5NDgyOSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpOyI+PC9pZnJhbWU+PHN0eWxlPjwvc3R5bGU+PC9kaXY+PHNjcmlwdD4oZnVuY3Rpb24oKSB7dHJ5IHsKCgoKCiAgICAKdmFyIGRhdGEgPSB7CiAgICAiY3JlYXRpdmVUeXBlIjogIm11bHRpZm9ybWF0MzAweDMwMHdpZGVOb0JvcmRlciIsCiAibGlianMiOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC9pbWcvQzkvOTY2NkVBLmpzIiwKICJsaWJjc3MiOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC9pbWcvQTIvNDEwRTM2LmNzcyIsCiAgICAicGxhY2Vob2xkZXJJRCI6ICJiMTU1ODk0ODI5XzEwMTY2MTE0MDMiLAogICAgImJhbm5lcl9wYXR0ZXJuIjogIm11bHRpZm9ybWF0X3NxdWFyZV9zaXRlX3ZrYWRzIiwKICAgIAogICAgCiAgICAiYmFubmVyIjogewogICAgICAgICJpbWFnZSI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RhdGljIiwKICAgICAgICAgICAgIndpZHRoIjogNjAwLCJoZWlnaHQiOiA2MDAsInVybCI6ICJodHRwczovL3IubXJhZHgubmV0L2ltZy85My81NkMxMDQucG5nIgogICAgICAgIH0sImljb24iOiB7CiAgICAgICAgICAgICJ0eXBlIjogInN0YXRpYyIsCiAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC8vaW1nLzMwLzkwQTdEQy5wbmciCiAgICAgICAgfSwiY3RhVGV4dCI6ICLQn9C+0LTRgNC+0LHQvdC10LUiLCJ0aXRsZSI6ICLQndC+0LLQvtGB0YLQuCDQtNC90Y8iLCJkZXNjcmlwdGlvbiI6ICLQltC10L3QuNGFINGD0LfQvdCw0Lsg0L7QsSDQuNC30LzQtdC90LUg0L3QtdCy0LXRgdGC0Ysg0Lgg0YPRgdGC0YDQvtC40Lsg0LXQuSDigJzRgdGO0YDQv9GA0LjQt+KAnSDQvdCwINGB0LLQsNC00YzQsdC1LiDQn9C+0LTRgNC+0LHQvdC10LUg0L3QtSDRgdCw0LnRgtC1IiwiYWdlUmVzdHJpY3Rpb25zIjogIjE4KyIsImRvbWFpbiI6ICJ1c2xvdm5vb2Iud2Vic2l0ZSIsInRlc3RDbGljayI6ICIiLAogICAgICAgICJ0cmFja2luZ0xpbmsiOiAiaHR0cHM6Ly90Lm1haWwucnUvcmVkaXIvQUFENS1BR28wOG84R3E2X3F4WkFhbFNReU5CZnl5Uk9NTXdaRUM4OGJ6MEpxSnFINWRSM3ZfR3VjZENySWhFUzZETWdnRy0wdnpuUnVkMU9SUDV1Z2FYUGdSMVhDVFF1c0JnUHRtRUpDMzlBTndITU9HbFR5Xy1HOHlIVFU4azd0czUwcjRORi1FLWRKMEdRVnpvVmlKVUI4ckpybTRmS0R6T2xDTFFqNk9nRllwT04zcmFnTUEyVUJRQUFTMlk3Qm4zMGNjYXFiRWNUSGJiMDNLU2ZBNlI4cnlKZUFDaDlfb2JYVzlvNkN0NEVYTUtoS3RtWF82alJYclB6R25PendKU0dNbmtQVnU5c1lyU09XT3NQTGhkRmsxWEMtNlc5b1FMa01DaVdRZDNRSi1MMTZma0pBWG5VV2RLaVJhc1FlQjNvQTl4MW9MMFF3QVN3dk9RWm94VXBGTUpqNEhTdE9ER2V3R21lSHBiM1l6cTZGYjh0dHNLMGN2QXdnRkY2b3FkTVo1eTNwWXhJbldBN2VLUXAySEVQdU41NXdzbENDd3hEbG1CcW5nTS1uSVFJaEdyQ3ptd0lzSS03X3F3TkdtclZKY2JSVFVhemFzMEJYMFZ1MWo1ak10NjZwcnhWV1M4aFpxYkUzbENtVmhfQ0hvY0dsUU5qdnBsMVRnUWMyXzFnT2ZxYXBaVU1UNXg1cV9UVWktQlZmWmtWZmt3MDFwSHpocktLLWkxd0cyN1VpVUMwMHlMRDBhSEJ6c2dFS2ExZUs0NE1EWV9wS3l3RVJDMXdnV1l0ZnZfWVpDYjgxZTQ4UVBtZzhwU185OFNVdXRQQzVQa3J1SThyOVQ0VGl3c2ttQkdaRmRrZ213OGpnR0pFMkI5MWNuYlpjNGFFaVMtQ1YyTF9SZGZPTHg1Nm5kY20yYzhheVlNSUpYTlNocVNjRW5zMVprYkFVejlxcUw1QlR3S1lDS0YyMlFLTUJHTkxoMWJkWU1uejAtcmhDNTRGNmNIXzVPX3ZiVHRxcG9vVk44eGp1Mks5SHcxd09JMllMOXdxcm00cnBZemphVDFlTlY1a19sb280N0FuZ2M0R2VWUlUxRGhGaHZ0ZGh1S0ExMWxCY0FtbG9QbVpoWUhzem1rZ2tQb1ZPNGNvRm5tNmRpcFpucTBDVTNmcnZSQy11Qy1KYl8yT0ZGbXpyMmhVN2xaTXgzdzR0c2l5eFpCZjVnY2V6QWhwS1RIcmpDNUlOTU9ad3RweUVFbzBGajZIdDhOYXBOUE5yRmhBQm1IQUFhZHJ5alRzaTFfNDZBY0dsS3RHZXhYRlVxemY0S0k5bnhIdHpJMWlLZzBrenFwR0VNS2FET1VHUmJ3LWliTGhkNDk2b1ZWYjlEWVVOQmw5MEtsc2I1Q2YwcG9aV282bUlaa2pXUGp4UFBMbm1La1VxX19qOV8tRDVQVWZuZFJWcHl2UWNxY3VoUDgzdFFPSFJfdUtXRnR4ZDVXWW96cm04ZlZGaWliX21HNXphRkZaN2F4elhLOVNyc1NPS19rNjBPeU92dW45SzdEcExGLUp0WFRPeEs3azI0MW5qSzhIbFE0aGZTdm9mdWtUR1JjWGdkSGNXNjhuMkh0SEVMN0JyaHRobC03M2dMUWh0Y2FuOHJzNGEwYUN4cHhoSzBsOGVicFVXeVR1eWlVbTR2VEhIWHFsdTA5aGozNzlwNktwanhoVWpMQmxvZGNyblhZd29xOTZnY0JpSFphU3liTnBfMmNzbG9XN3pseVlGZ2xRakxYMFVaWlJIYnB0eFJqUHRBcW5VcFl1RUZMUU9nMGlhWmhzNC1kTHd0c1dZR0xHc3FkVXh2dHJLRHZCLUJWOVB3bEtlaTJ5TWtIUVliM29Wd3JnT19wZnkwemd3d3YwMjFQNzVLUGk4NXZsZzM4c21hM2hqYnpRQmlsNnFfQmV2WHViWURMdTJLdFQ4NmF0bnF0VWZkcmh3OG9kV19jN0Z6NlNoaWQtc1h1bzZTNnpmUTVfY2xQS3BJNjZzN3RUaWFyYTliUDlTZDY3ZG1ETk9MNmRLblJjd3RCT2pXZVFMNzhWYTFMV0xlb00yTElWVEwwSlRLdlhBV2tIZmxRa3NzakFuOG5GZ2pTVEwza1dsblU2a0NmbTF1Mk1JOC1Tb1hpZVNmODcyaXdTQnY0NXE4cEdMQW1TMzlZSDFCY3hxUktIQ091WnJBd1FRemE0cmVaTktHQmdpeThGVUczTW11azYyeFhrVnV6dndCWDgtUE5oTWNRV1AyVG8xTDcwbzhRbnNPWkJjbjZJTjg5djREanhvQzJQZmRCUC01S2JRcUw3VEp1TktCaERGeU9nRkdyNkg5aVlWRnRnQmN6Tl9QV2RzMElJWTBDQUFrQXNXUFZHM2Zsd3RsSW1VN0xhTGdIbF9aTHZMME5HSklWRm5JQmhWN1AwNXlLdmlwZHRmZVNJY2lPakw2MWFyRXA4LTYxeDRQT2ltcktsWWFOZDlsZnJOTHpFU3lWX3JIekNhNnl5bnp1c21Zam9MckNqY3o2MXRybGJlNElQb2w0aFFXSjhzU0hoSzRuWVRYZ0ZDTmpVVW9pR09ueWhnTmtqd2RwdzhQalpLSlo5OHdaalp0UnJIaHE5cUVnZmFVbWR3TURPTHpWYk9SM1Y3NDVsc3JiS0pvWVVpb3c2NGxzTTJ3X0VqbGt2bnNkb1NDVmVFdi1OdlVZVkVnOFJxazNHbUhhakFUSEk1OWZJTXptZ3BHTXkwNkJ4YU9fSzZoM2dEWW5UNFB2aXNuUlhPVnZJcWFlUkhoblk6MlZ0enF4a3B4b00iLAogICAgICAgICJ0cmFja2luZ0xpbmtVcmxUeXBlcyI6ICJleHRlcm5hbCxleHRlcm5hbF9uZXciLAogICAgICAgICJ0cmFja2luZ0xpbmtUcmFja2VyVHlwZXMiOiAiMCIsCiAgICAgICAgImlkIjogMTU1ODk0ODI5CiAgICB9LAogICAgImFnZVJlc3RyaWN0aW9ucyI6ICIxOCsiLCJ2aWV3YWJpbGl0eSI6IHsKICAgICAgICAiaXNIYmlkIjogZmFsc2UsImhiaWRJRCI6ICIiLCJwZXJjZW50IjogNTAsImR1cmF0aW9uIjogZmFsc2UsInJlZmVyZXIiOiAiaHR0cHM6Ly9uZXdzLm1haWwucnUvcG9saXRpY3MvNjExNjU0OTUvIgogICAgfSwKICAgICJhdWRpdHMiOiBbCiAgICAgICAgCiAgICBdLAogICAgInRoZW1lcyI6IHsKICAgICAgICAic2VwdGltYSI6ICIiLAoicG9ueW1vZGUiOiAiIiwKInJvdW5kZWQiOiAiMCIsCiJleHBfaWQiOiAiIiwKImlzRGFya1RoZW1lIjogIiIKICAgICAgICB9LAogICAgInBhZCI6IHsKICAgICAgICAib3BlbkluQnJvd3NlciI6IGZhbHNlLCJzdHlsZXMiOiB7fQogICAgfSwKICAgICJzdGF0aXN0aWNzIjogWwoKCnsKICAgICJ0eXBlIjogInZpZXdhYmlsaXR5RHVyYXRpb24iLAogICAgInVybCI6ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR28wOG84R3E2X3F4WkFhbFNReU5CZnl5Uk9NTXdaRUM4OGJ6MEpxSnFINWRSM3ZfR3VjZENySWhFUzZETWdnRy0wdnpuUnVkMU9SUDV1Z2FYUGdSMVhDVFF1c0JnUHRtRUpDMzlBTndITU9HbFR5Xy1HOHlIVFU4azd0czUwcjRORi1FLWRKMEdRVnpvVmlKVUI4ckpybTRmS0R6T2xDTFFqNk9nRllwT04zbkVOa2xXUUF3QUFuU29MYUZSV0ZOdWhUZWlnWmU1djJ5NUtkZ1JCeUMwekEySDZyTm1YNnNoQ0M1MHQ5U1d2OXA4Z2xiV2lNZE9fWG1aQkVMbXpIVW9JdGw3WjUtenJqcVFrRHhwcjVtMkNheE1kV2tGeXlvRkFlVUJhc0dKX1lfSG55ZjR5NWlJZVk3ajZndC1Db2V2aFAxU045dTY1Y1RUVjZiazRzcko2QXV1U0pramcyZjdBRU5tcEh1SlE5ckhHdzltSFZQQk5hQkRDaDlYcF9CYmZqWEREeXRRcXVUbWFIWFZKVi0xaFNlczFIVDRfQVE2Q004QndvYlRfWG81Qk9lUVZ5S0VKRWZ5T0tHdzBNd2w5OGQ3dUlRMTVZMk56aE5qRGR0Zi1PM0V1OUtCS3ZNUngyaTh6a2tJNEUyVzRrbUFqUjVGMDMxN2hxM2RhUklTbFlmdjhSTWRLb2owYm9YZ05fSEsxdXVkVjl3cHgtVUlZTGcwZ01Mc3RGNWhsQ1ZORU9LY2wwN2hqVDhueTBPWDNCaDYwWHo2ZndTUzAtMWtRem1xMC1mWG9UU3R6VnJVTGlMM2FzNU9TRGprcmpoaTB3MWdXM25CTTMxRG04ZUFRWXhtVnlvbmd2d3RIaVhhUTRZSGVsX1pSSzkta2FLcnN5RWU5WEc0T2VURm5sNE5xWHVRUU9pQ1FVOGsyX28tZEE4cGl2TVlySzJfUDJ5M0FGVXE4NlpROXhWZGM0RjFqanhwT2ZyOFl1RWVuVVdwMmwwbElTNUxPRUVLYkxmNk5LQ3F1TU1xVTNlTDRscF9kYXo4S3FXcHlMMnlGVzM0Sl9zNWw0Q0d3N1RMMWM4emFDLVA0Y21QakR1bHhBZnkybjk4SWhtcURjTkJkblB1T1BweDFoZjRIM2loNGpGU281OVVDMnpYRWRnS2ZmaEJWR0k2UHFkbXA2UWtwMWpCMUNHSXhLZExHSmdtd2l6VGlSXzFPRUJtM3B4TGo0ZUxsRnZnY3RaNTJqOVFYOWJWX1dBT3Q2NXB0d1JkVkxGVnIxdlRZRFpvN2ZYTks0cTlfME90Qm82RlhVSUtjLVpoNjBFd1poT1d2WkNwZlF2TUZ5Q0pNQUp3d0ZxM0phUGZxd1dGWTB0ZUVmQUZMV1BXLVdGZ2xLYkxqSW5sV053TmRaY3dyVFdmVFJRZmJ4RnNpZS1XSHRON25qcEJGLXNLRnV6STJlYkZlOXVnU0RGeXRQMlpZb0JjaVh0UW9PcUdaZERMcFVkN0EwcHRlVm13N2o2WlhwYTh2dndfdHVBeThmeXN3am13UVBQbUxRTUdWa2U4MkhrQjlfYWVCUUZaS09DUHRFcWxkcm1XTXBqNVBNVnZlNEliekRZQndkYU5uODhBWW1YX1lyWlFVZEhnZDJEbVZSLWxGSkd1RWtiYnFQd2hlRmp6Wm1KbmxRenFrTVpIcU10ZG9JNnVLX2NUZXNobHJIeDgySWJxcFI3UmNzc09zR1BkYkU2SU9xRkZFZV8yWWs0WXBVUnhYM3Nfc1VTUWJqMWtBdW1OU1Z5bmhRQTZaSGVyWFdmT2pVS1BKUERyX05Kd0NabV9jZzBKdndPbmZQY0xVLWxGN1NUelVVWXg2LmdpZiIKfSwKCgoKCnsKICAgICJ0eXBlIjogImVycm9yTm9IdG1sNUFwaSIsCiAgICAidXJsIjogImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHbzA4bzhHcTZfcXhaQWFsU1F5TkJmeXlST01Nd1pFQzg4YnowSnFKcUg1ZFIzdl9HdWNkQ3JJaEVTNkRNZ2dHLTB2em5SdWQxT1JQNXVnYVhQZ1IxWENUUXVzQmdQdG1FSkMzOUFOd0hNT0dsVHlfLUc4eUhUVThrN3RzNTByNE5GLUUtZEowR1FWem9WaUpVQjhySnJtNGZLRHpPbENMUWo2T2dGWXBPTjNoR293RmFRQXdBQWVfRUFYc1lvTEJQd19VVVBwd1dBSWNqWTBJa0M5cEhFYm9yU1dKXzlpcDlUUmo1bGhGODVGTVBnalpUZllZczJjVnBvZ0Z0ZDhZU2d5QWRtandZVEpzallRRU1SM0I2ZXBpdUxFMG9GT2h4SlFaT3ZUTDRUVi0zWFJoYWZ6ZkdOXzZJU2tSWG9ESElHaGRIdW12VUstcnhnRzhsaE83Q25ETE5jUzljQjVyZTJVazhLbmFiM1M2UTg2ZUozODJ2Y3E4c0RSN2FNYjZBclFLU3dud3BWS1hBbG5ZMFdnS1JSVi0wOERrSUxSbzAxWEk4WUJxcUNTM19IXzFHX3k0SWlNd2RobURWYzJ0d1NSVl9XdHpYcFJHWi1qRGhraFdzVWp2U0w2NHpnZVBvN1dTZkVkdHd6cTNzUmI3UmJTcXpTOXBxamhCS3R5RlJTLW5reElNZldnWHhZdGlWQmlPRmVhNjlzVWhDd3NKV1hyczd4UEVtSDMtMkpPenhMREpJWm9NQzhKRXAwcU9DRTB6ekkwQ2MxWjB4OERwcVJTMWY3U2xjY09mV2F0enQxd19IUzZUQ2xsMksyajhXY2NQV21oaHBmOUgyS3M0aC1BUFdDdW94MXJweDhmXzIyVHM4TUtNbkQ1cGNFR1RrcjkzeWpfR0haUkRDUW9OMkljbzFfN01qNC1yOGFGTHlsalBHTjZTOWxKTGg0RlRiY25XV3FlYi1rYTJ2XzlNWVYxaE9MUDB6V3NVaWlYUDlENFQ3WUE0SkhpNFNGUU5BZU5jaTA1T2Y1aFZESVdWUi1hckZVbUlIT2YtMTJZcE9kSlF0NFNOc0xLSzlpdTByaVJ1QVpxZDFXMnVtLTRncmk1OVk3U1VqUFFOTVFHRC1NMGVTNGNKSnFOZWNRbjBENXh4V3M5M0JjX29iWjMtYWEtNWhGdDlKTXNFMUpvaGc1X094eEhKUHBkWGFMSi1wc29ZZTFKRzVYTE1XbEhkWS1rNGdMOVY0Nm14UV9xSzNJRTZaeHRxbDIycFZRTlh3UFkxTGhQSzJaMHd1azlDdlNQN1pjN3FmSVVnQmwyV0NhS25fZWpFcl9yTUVyYzB1WkxPcDdCcGJSU3N4S1M5T3lLNGE2SzRQTkF2WjhDUjg2NGF4M1Q4R01hbG9WaTEzenhYazgyTVAyRVc1ZVh3Q2FELWN3aExLdEtnUGtHQXozcGhLWWRhTmRvMG9PRmFWRHkwVWhWcFBpNjJOTThTZG51OGduZ2JzdENkU1Y2b3JtRzNTWTJaM1djUWctVXJUdVo3anFIeWF1X3JJLWdOMGpXNTh0ZWZ1THozLXg5Mk4zcmZaczNXR2NSZnlfNF9HQzZ6ZmNDaGVxbUNZVWhpeVNmblZKQ2lnVXBGcEVITFFjMmxGNmNLS2t1Mk5IZmNuX1d2cVFVVlNjbVpWSEJxRmJHTGFYUFJvUWhSdnJkaHdKTmJOT2RSc0xpWHdSZENVb2dWYjZtTzI4X3pqZDQ1QXMzXzVNVWV4VlA3UXpwNFVVc3dpLWJjZ001eWJqcWNnNW93SVhUMS1xWVV0dEZ4ZzliWHc4TVFxbEJhZkxhQk55aEpXWjA4cHB4a2REUm0tcENQckIuZ2lmIgp9LAoKCiAgICAKCgp7CiAgICAgICAgICAgICJ0eXBlIjogInNob3ciLAogICAgICAgICAgICAidXJsIjogImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHbzA4bzhHcTZfcXhaQWFsU1F5TkJmeXlST01Nd1pFQzg4YnowSnFKcUg1ZFIzdl9HdWNkQ3JJaEVTNkRNZ2dHLTB2em5SdWQxT1JQNXVnYVhQZ1IxWENUUXVzQmdQdG1FSkMzOUFOd0hNT0dsVHlfLUc4eUhUVThrN3RzNTByNE5GLUUtZEowR1FWem9WaUpVQjhySnJtNGZLRHpPbENMUWo2T2dGWXBPTjNrRU95R3FjQkFBQXRFU2J0UmFEZjFvNXVnQ0R2QkJzZUFxWERTcXpWcXVHZFAwelNkR2NjQmMxbjRtTzVKU2g4TlJ2Q0NyRDgySFhSWS1fbEQyV0xvTDFGVU1IaUxnMUF1SnlDb2dCV0djVFZ3SzhCTTlhODUyWlBoUFhFMTRrRWl0MzROREZISjdiTHJyWS14SFNCZmtRdDN0cnM2bkVHdkU1M2FpRS02ZkdXWmJRSjR5R092U1lZRzJrZnhfb2pvSzN2aEdOc2VhcUQ5SXNhbk45bGM0NGVBWlFzb1Q3WmhMVTVZZ1BDcXdycl9nRHAybm5ZcGR4VUZnY2J2TjQ1M0FHYXBVMVowSHpwaWtsQlZUbE5uSVNvcDNXNkE5aW4xbWZzOFk1QlpJNnpSYnN0Tno3WUo5OGNxR0FvX25rYlIxdjNWYUF3VWNmc1prdzZCMl9zTGo5dkVFSm4tTS1UUGlsNGM5MXJEM1VWbkhUNW1jMzVrcnUxYVA2NVpfQ0l0dGJFaE9DNklCS3pmSnU2QnFvNHVGMnRlU0FkWUFKNzIyWm9VY25zMjE1OFNfdDdpdFNEeGZrVkxxeFRLZ0p6V1hSMHJ0RnVIRVhmMDVnNEU1Vm93NlpOUFRvYjJrU05hV0FFSnpIOGk4UjlKTkxYY1J2bTE5MzBTQlotTWlvZVQ4Q3lLTElwZlJNTUtmRVpEZVBmRFY2U2prdUpNZlZ6ZVdoSEJVNXE0QmlVN1oxanhDNktMdzhRUWxEazZ6MEJNODVDMy1PcHR2SHZBbk9aZkZnSEFlRFJSUWFKRjNCUlNoQWczcldKcl9GYm9ZYURQQUhOYTFZeXZGbzFwMWxHak16YjQ5OFJQZVhaRmhRcjFjdVp5Zi1sY0lIMHJWZVpwSHBEdVRCcF9SN0lDVnFtRjl1ZW8wRG9KOHdJXzBOWlhWczk3OWp2ZWVwRVNmMEFLLUV2cnJwQ29ZYjlLUGpINDV2ZzBMSlF6QW44VUNMLUFRRWcwblJRMGQwTVNfQm5UUllhUHBkUEFjUFY1QlR1RDg5Y0R5eVlRZk0xTHhVQmVQdHJqWjEzX0JUajkzZ09CSlU5OEw3RnpxcXlxTjVPaUwwR3RkQjlENEItUkJGaTZIWG5uSFd4LUQ1ejhmbVhnSmpZYlE0bnh6ckxfNDBaX1FwUlp1bmpXY2VOODQ5bFhfdHJyaHhvMWJoX0lzNlhaZ2xDTFlfTTRnR3lJYWQyNlo5cE9iUHhUNWpDenZSdkdTMndTck0wZjJlaS1jSEwwWkxuM2RITU5NYmlZcWd2Q21jNGdqNUdSckRDd3dGV0Jsa2dnZFRyck9YWWhIQWpsWDJkVXc3U25IZkhiaWFJTnNSRjg4X0IwcjdJWG42NFpBanIzSXF5eXhhZ05zUVpSbzFuQkZOS1AycUd6ajVTdmFfaHFfN3RKbDZIMG9aYlR4VnVwaF8tVzNNb1dTUlNZZTZjNXduODdrUTBCWVc0SU5SckZMdWJXSmw0b3kycS1DU0lCZFctSy1WY2ZnaEM3Q09VNFRIS2MyXzZIZUJHVHhpdE95dUZ6YU9aY2FGTXJuTW5EZ2Y2ZFBKSTNOZ0hxVUx5SmF1dHVFTFlqR0xTYXJLV1V1Tm1xZ0hSRnVEM3pvdXAxVUh3dmU4Umgzd2tpa1B3VkxMLTlWWUdMN0tTdTBUYS1oUWJ2TF96ZjREUkVtakNseFVuSDBsWkk1WHJvWTRUbV9SUC1iZUhCNzlsOGd1TTVSRlBzY3VfQUQ3N3luc1dSS0ZkQm9pekpTdS1uaUVpMk9rVzNsemJPTHRnWU5PRUcyVFZQQUw0Nk9icVNqMlR0LU5FbGhfOHdQY1E5SE1yY05xd1V6RUU2UUhSMFRmTjI1Q1Z6QUF0Q0lFaV82T1pfVWVfTWgxa3FuTWZ2SU5xNTJocm5aYXdkaWFLTkJGQ3ZiV2ZvbXdBaUhQMWRGWF8xbVRZcHNSSkNSVFBUSXNXZUs4UzltVTBKMkRHS3lxTVVaUGRVdDFuZV9wSW5Pd081akw0SEVZeWdXLTRKS2dPRnhzeVR0SEdhTk9wWWNQT1UwVlJHVVVsenZPcFRVeEdNY2NXeFFyUDRTODRndVowVUEuZ2lmIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAgICAgInR5cGUiOiAic2hvd1VuIiwKICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdvMDhvOEdxNl9xeFpBYWxTUXlOQmZ5eVJPTU13WkVDODhiejBKcUpxSDVkUjN2X0d1Y2RDckloRVM2RE1nZ0ctMHZ6blJ1ZDFPUlA1dWdhWFBnUjFYQ1RRdXNCZ1B0bUVKQzM5QU53SE1PR2xUeV8tRzh5SFRVOGs3dHM1MHI0TkYtRS1kSjBHUVZ6b1ZpSlVCOHJKcm00ZktEek9sQ0xRajZPZ0ZZcE9OM25ib2VTbWNCQUFBaFlWbEJoMVJMS0t1R21nOFJTYnpYc1hiZFI3Ni1ISXhnd0JkOXNQN2hNX2VNeGpoZnFPZ2NheW9jMmN5ZWYwYjR2OXIyY0o5Y1FTY3hvdUkzQ2k0MC1NNnBHQmRLclVxUzlrRGFWQWhLVl9TSVNqdlF1cklUVlZqbWhjMDA5djF0dTFyZ3pNUEVINHdrclpXdHdJVWwzem80Sjk3SjdPNVRwN3VPODhneHBoU2UyVDYxYXN3cTItZFFSZkhpWDBxNkxpT01ZYmNQUklzS1diSFZLUkhqenRxVkstZlhwd2YybkFodFhNQk92QUoySm5uTnR5R20xYlRUMEszSXFHV2liV3pLZ3VBOTNHNmdNem8teXpkS2RnSU5GcE5paktmZkpONTlPNmRLaWttU2toeldwbURvb29oX2dNdDh6UlEydy11dGNhemdOSjk3MnhMRDRPbi05dWk4cTBnUmluc1NZWnpjc1FVOTluZ1E4Znl2dE1BNEZ6QU5QSHp2OWRNOU5WelBiT0ZOcW1lZEZSZjVFWEkxMDU2dnZMZlY4MGQxXzRfaXJqR2NVbHFBT1V5LWxQNzQ4TnRDV00xX2FGSy1XVWNtWkcxM3A4ZXNPaVFQRGpPcUhLencwb285bWNfNl90cTRNZG1DanhkaXF4OFpyTmhFcHZFYzRiOHJaT2R2Q0tuSHhURjVCeXFDT1B6UHIwdEpsU0VnT0ZGd1JXc3NuQTFFTHNiOWxvcEFVbldPRWN4ZlZ5WUJfdXVDNW5EdmJpODNnSl9KamJFeHpSa0luWGh0NzVLcS1vWkROb2l3OXRaS2hCQzZfS2wxSjEySGN1WU9IS21VZmV6aHc1TlVTYk96b2w1MXpfXy1QaTdoSmc3M0t4THpQOHRKendzdXZiaXlDZTdsalRGWXROSnZzQmFISmZxN1pIWE9DZ3hGTkNxM1pvUXRhSFB2UUQwdnVVOFo4RE9xaElVcElqakZXdnhCS0JyLW9McVdmcHNleFBKMG4xazVfMHA1QTR3bEVCZUIxU1RBSUJEN1dxUDM3aTA5LWsxaElLR0l6ZFZuWjZoVUdSYzQ5cXVoSkFYWnVBUHhBSGpjOGFQZnV3Z1g4eU1aTGxTeWY5TnhwUDdGTFJFWjdtV3ZILVk2Z1hjRkhJd09mNzVhWkppSVQyVHZqYWE1REhKQjFacGFPVWRNXy1qVWJSUVZmd0tKTXhYVmkyNnYtaUJDcE1ncjI2ajFrcVpGeHZOU05WclQ2YzZsYkFkQXV1c0pOSThSc05GVnhMQm1Td1NpWmhDYVZaaTVnTjhUUS1fNmM4TWpwM3RyM25YellKaWo2ZUMxampmQzFRZG1MN0NtdmpzOEM1MmFHUTlUbWhTZTJXMDlUc1VYbVh1d1JTck5zY1ZKeGJ5U21abG84UW9XN1kxN1dmbmRfWU9qZGNVbFI0bENzVUUzaEZGRnZZcVdpS1ZtbVgxWnZ5cGF2ZkttN3YtWEl3SExqSjZXTkk4MlZQeFExUWF5NTBJb3E3bGJWMV80UnUwR3dQOEdKa3JUbzZpSHFiZEtPdXZtRXZ5VjE1ZkJVeEFjN0otZXhaZlNEVWdoNHQ1aFBVSHFNRGxpWm8tR0NKeUdpeTQwYTZOMXNFUF9jV1VoWnlrc2FNdUVmQjRfTkpYaWxFWVpPVHloX3ZXbUw5TWtLdmNfZWVQbjZpU21OWlhMMXhpUE01SzZmTnZTd1NZVlNJY0wweUJ1SmhVdWI3eFppcG1VQnNDR2dpWVZHOENzQ3ZSM1F6d1dya3JYVTNnWDlvQ1YwTFpvUmNZSzRiRkpCTU1BWFN3UHNmaU1YQVpVMjJTZW5wdDlZOEhPVFU5RmswTDc3dEJtNmV2X3I3UHlBSGpuWGxJa3VvMXBTY1VCTHhJc1ZTNWJ2dHVBVXlaM3dZTHdNaE1JRXpmVFZBZnIxNHNyV2hvX2pJdkVNa3FQUmppekdXVFlISTlOcEo3cms2ZFlaNkFLcXNpbXRucm51VXlBTnhROEJuNUsxRkZmMDltZG5NR2FTZzhwT3lxWUg4MzVEZmpuUmFHU3lOQmRDWkN1VGY0d2JtWlh5MUlyekhNMUpkcW0tUS5naWYiCiAgICAgICAgICAgIH0sCiAgICAgICAgewogICAgInR5cGUiOiAiY2xvc2UiLAogICAgInVybCI6ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR28wOG84R3E2X3F4WkFhbFNReU5CZnl5Uk9NTXdaRUM4OGJ6MEpxSnFINWRSM3ZfR3VjZENySWhFUzZETWdnRy0wdnpuUnVkMU9SUDV1Z2FYUGdSMVhDVFF1c0JnUHRtRUpDMzlBTndITU9HbFR5Xy1HOHlIVFU4azd0czUwcjRORi1FLWRKMEdRVnpvVmlKVUI4ckpybTRmS0R6T2xDTFFqNk9nRllwT04zaWdsbm5VVEFRQUF4NjJ4ckQ5YmRESVo2X1BYS3NET3NEaUFyUFFhcXNIUmtYeFppcE1YQkl1dnhoc21LWWF0M1Q3UFhYTWhPbnBoSHExZFJYT29TcmNvV1czOW5LRmNiNlhGWGJvS25mUUJJTzRXLURldFRoc1BlaGZHX0hsaW1LNG9DOS1MN1plTG5DZkdsUXRMbzB6LWQ4UGdidksxdUp0QU5mcUtEeUpOeFZhRmtfbkM3d1VJanNJQldieXNSZmtxMHA2UWNPenFBODg3WVU4Rl9JN3kyU2xDNWNRQ2Fha2hsbHNGbjlrSG9KQjJTRkhqb1RzcW5LbHRkNHJxdWZLVk1Cb0t1Wkt4aWFKaFBhYXF5QUpRSk1yekt2eDBFUnNVOFpBYW9Fb0Z1SXRxSlRaLUlVckRJaWc4eUFnM1hxNG5JWTk2eXVIQUVjeHhhQlBvdE9pVDNYMW4xRUczTzRuMGQ2Z0d4VGNENGVQc0FGT3Q4WnZvZElHaktIOHNQSkdfa21rV3BVS3AuZ2lmIgp9XSwKICAgICJsaWJPcHRpb25zIjogeyJpc0ZyYW1lIjp0cnVlfSwiY2xvc2VSZWFzb24iOiB7CiAgICAiaWNvbkxpbmsiOiAiaHR0cHM6Ly9yLm1yYWR4Lm5ldC9pbWcvMzMvOTJBQkExLnBuZyIsCiAgICAiY2xpY2tMaW5rIjogImh0dHBzOi8vbGVnYWwubXkuY29tL3VzL215dGFyZ2V0L3ByaXZhY3kvIiwKICAgICJjbG9zZUFjdGlvblRleHQiOiAi0JfQsNC60YDRi9GC0YwiLAogICAgImNsb3NlVXJsIjogImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHbzA4bzhHcTZfcXhaQWFsU1F5TkJmeXlST01Nd1pFQzg4YnowSnFKcUg1ZFIzdl9HdWNkQ3JJaEVTNkRNZ2dHLTB2em5SdWQxT1JQNXVnYVhQZ1IxWENUUXVzQmdQdG1FSkMzOUFOd0hNT0dsVHlfLUc4eUhUVThrN3RzNTByNE5GLUUtZEowR1FWem9WaUpVQjhySnJtNGZLRHpPbENMUWo2T2dGWXBPTjNyYndiUkI1QkFBQVpVcUZlQmE3QlNxOTlKNlEtSTU4VXRMamFXRVRYWnY4R0M4dEFxaE9kbnYwWFVZbV9lOWRlMy1JdUxYc1M1UWI4UW9xQkxfQlBJemQzQ3Jtc09oblZaam5jVjA0ZU5WMzdDbVh4TUx0TUtrSWdSZHRFTVd1aHgybzNISllkd0dSMjlVSVZ1UGRkVDJJOUZYZ3ZjSFlzdTBMS1BaNU16UkpDWEJNeFFLWWNaek1MQ05vTnhXWE1YYWNDZHhTRGNOX21KOE5uNHkxQzdMdnp0b3IyVVZoZExiUGttXzV4aE1qRnBBUWVkLUxGMTJQN1JrbjVVNFRhTlRCbWlxZlJfSkRHRGNnelpQYXZtTU5IQkUza1JoV0xMYjZyUkZfT2dlcmRJRDQ2c1kyR0p6ekg5RjdpbDdZWVZhN2tmSGVNQWtnR3VITmt0NHdvWVhZM0tlUi1qVjY1MkNxUnhyaUVYLTJBZnREUGpmejQ1TVJoS1BtRmJiWm9YUW9zeWVSZjV6R2FwSmF6WUhrMjZhNm1fd1kyeDNBTTZncFFTNWN2OTNlcVA2cTlQdVpmMVUtRU9HdjJyUS1DTTd5bC03MVhmWVI0NGFZSllXeEhwaXZEaDllU21EN1k0M1JCX0ljbHE1dFdHdW1fNHl0UVRqM3FITEV1RDlNcjljeFlESFo1ZktGMy14WFVmS2d5N1RNUmxvQ1M1UmJkbkNCaTZtSGVtYzBkS0FhNzQzMVpsa3NsQ3hTU0NlQVhLZ2xpZGhjWks1WU1pc0MyRnlpdHZiVDZYR0ppTHRTR2tnQWJ3MWpCZTM1dnNEUkx3U3N1Wi0wSTRtY1F1cTBVVG0zWmQ0OTJjTTZUMy1oZTgwM1E5YXBYVWRmZWNBOW9CUHJWQXpLQ3ZuRzVvbUtWbDI0RnNVM1N2RTFnQW1ldVdIbXlwZUk2OHhuX0N3U1lTYm1STEwzTEppVUNhVEFiZ0lSRk1wNFphS1NiYVJCQXdvVE1DSWVieFZFazZoeDh6S3lOWkZVdUZTRkJWemMwcmlCRnBqVTI3aVIwU1lfZk16WDF5Ml9EeHpMWmZBMzVmX0F1NERUS1NjUGhBRXFzblNvU3ZWbU1EV3pmV216dU5acDl4NkZ2Q3JPbzRCSVJwdUNENGRCQkxWVHdydVBoX01VcnBUT1hJSGxta1p5c3R4U0otak9WZmhIUFBQcEpTWFNtT0V1eF9hWDYzU2NpLVBNX0JtTWFsZFYwelZ2VlJET2FsUnlEb3JPaWdobE85U0hfdVdOX09GRU44RzBDbEJaNjdId19fZXJoN0VNN3B4WmRKRkQ3RkpyVDg2czVxZDFWaU03ZnpCbFpsMFZXS0FqYmRZM0UtRTdlaWtvM3JQSm80Z3NaOWYyel96NTZDQ3ctaFYyeEg0U3pXaDc1czJhX2RaWm1OUFZhM18zTXdTNHdsY0tjNHczX0YzeGs2REJ5c0Z2QTF4NG9CTWxVTncyTmZlSHRMNjdKa045aXYwc1N0NnNxT2tFUTJsMGYxdVNGS25vV1pXaXk5RkIwUVBFN0p0Sk5TMTJVblB5MzVTclQ0VFhtYUwzRGE4SlVpZnlXLXkycG1LeGFSanBTQ0VoUmxVVWxkVFE3YTlzdWtGeThack5LSGF0dTJCUUZyeU9zTWZzVmJhRE9YczZLdkkwbVI2Rm9UOUlYY1hyUFlNc0lDM044OXJtMHQ1QTZjV0NjTy1DbFZ1cXNuUXA4eEFyLU8tSDJSOW1idldnODdIQnlvZXB4Q3J0ZGROdG1GRk1UT0VlWGdxVVM3c2pTeWJyS0JyU2JtV3hPX0xZalJBeWUxV0JtY040UVVrTFpQOHpRdFVDYzdpN3lmTFcxYzBMSXFnWGRyUGk5WTRjMkVQUzJVUWEwR0F3QkhrMUVsUmk3UW40elJGQzhTM2pidnFhRG1HNmdHQUU3aEZTbUNWXzNJdW5EUkZ6NUx1aTFfemtacGVQalhFVV9zRU5RQlhZZnBOUDJkX3FHUURVQ0RUM3VvRTUyQ0pUQlRKcHJPSHlRbThoWGx3aC5naWY/cmVhc29uPSIsCiAgICAiYWJvdXRDb21wYW55TGluayI6ICJodHRwczovL2Fkcy52ay5jb20vYWR2X2luZm8/aWQ9QUFENS1BR28wOG84R3E2X3F4WkFhbFNReU5CZnl5Uk9NTXdaRUM4OGJ6MEpxSnFINWRSM3ZfR3VjZENySWhFUzZETWdnRy0wdnpuUnVkMU9SUDV1Z2FYUGdSMVhDVFF1c0JnUHRtRUpDMzlBTndITU9HbFR5Xy1HOHlIVFU4azd0czUwcjRORi1FLWRKMEdRVnpvVmlKVUI4ckpybTRmS0R6T2xDTFFqNk9nRllwT04zdGNBeXpvSkFBQUFFaGVZci1sTnN0V1B0QVBKQmFwTjhRIiwKICAgICJtYXJrZXIiOiAiMlZ0enF4a3B4b00iLAogICAgIm9wdGlvbnMiOiAgWwogICAgICAgIHsKICAgICAgICAgICAgImlkIjogMSwKICAgICAgICAgICAgIm5hbWUiOiAi0J3QtSDQuNC90YLQtdGA0LXRgdC90L4iLAogICAgICAgICAgICAic2hvdWxkQ2xvc2VBZCI6IHRydWUKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgImlkIjogMiwKICAgICAgICAgICAgIm5hbWUiOiAi0KPQttC1INC/0YDQuNC+0LHRgNC10YLQtdC90L4iLAogICAgICAgICAgICAic2hvdWxkQ2xvc2VBZCI6IHRydWUKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgImlkIjogMywKICAgICAgICAgICAgIm5hbWUiOiAi0JLQuNC20YMg0YHQu9C40YjQutC+0Lwg0YfQsNGB0YLQviIsCiAgICAgICAgICAgICJzaG91bGRDbG9zZUFkIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAiaWQiOiA0LAogICAgICAgICAgICAibmFtZSI6ICLQntGB0LrQvtGA0LHQuNGC0LXQu9GM0L3QvtC1INGB0L7QtNC10YDQttCw0L3QuNC1IiwKICAgICAgICAgICAgInNob3VsZENsb3NlQWQiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJpZCI6IDUsCiAgICAgICAgICAgICJuYW1lIjogItCh0LXQutGB0YPQsNC70YzQvdGL0Lkg0L/QvtC00YLQtdC60YHRgiIsCiAgICAgICAgICAgICJzaG91bGRDbG9zZUFkIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAiaWQiOiA2LAogICAgICAgICAgICAibmFtZSI6ICLQndCw0YDRg9GI0LXQvdC40LUg0LfQsNC60L7QvdCwIiwKICAgICAgICAgICAgInNob3VsZENsb3NlQWQiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJpZCI6IDcsCiAgICAgICAgICAgICJuYW1lIjogItCc0L7RiNC10L3QvdC40YfQtdGB0LrQuNC5INGB0LDQudGCIiwKICAgICAgICAgICAgInNob3VsZENsb3NlQWQiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJpZCI6IDgsCiAgICAgICAgICAgICJuYW1lIjogItCh0LrRgNGL0YLRjCIsCiAgICAgICAgICAgICJzaG91bGRDbG9zZUFkIjogdHJ1ZQogICAgICAgIH0KICAgIF0KfQp9Owp9IGNhdGNoIChlKSB7IGNvbnNvbGUud2FybihlKTsgfQp2YXIgaXNJRTExID0gKGZ1bmN0aW9uICgpIHsKICAgIC8qIHRydWUgb24gSUUxMSwgZmFsc2Ugb24gRWRnZSBhbmQgb3RoZXIgSUVzL2Jyb3dzZXJzLiAqLwogICAgLyp2YXIgaXNJRTExID0gISF3aW5kb3cuTVNJbnB1dE1ldGhvZENvbnRleHQgJiYgISFkb2N1bWVudC5kb2N1bWVudE1vZGU7Ki8KICAgIHZhciB1YSA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50OwogICAgaWYgKHVhLmluZGV4T2YoIkFwcGxlV2ViS2l0IikgIT09IC0xKSB7cmV0dXJuIGZhbHNlO30gCiAgICBlbHNlIGlmICh1YS5pbmRleE9mKCJMdW5hc2NhcGUiKSAhPT0gLTEpIHtyZXR1cm4gZmFsc2U7fSAKICAgIGVsc2UgaWYgKHVhLmluZGV4T2YoIlNsZWlwbmlyIikgIT09IC0xKSB7cmV0dXJuIGZhbHNlO30KICAgIHZhciBhcnJheSA9IC8obXNpZXxydjo/KVxzKihbXGQuXSspLy5leGVjKHVhKTsKICAgIHZhciB2ZXJzaW9uID0gKGFycmF5ICYmIGFycmF5Lmxlbmd0aCA+IDIpID8gYXJyYXlbMl0gOiAnJzsKICAgIHJldHVybiB2ZXJzaW9uID09PSAnMTEnIHx8IHZlcnNpb24gPT09ICcxMS4wJzsKfSk7CmZ1bmN0aW9uIGxvZ0Vycm9yKGNvZGUsIG1lc3NhZ2UpIHsKICAgIHZhciBpbWFnZSA9IG5ldyBJbWFnZSgpOwogICAgaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWQubWFpbC5ydS93ZWIvbG9nLz9lcnI9JyArIGNvZGUgKyAnJmlkPTE1NTg5NDgyOSZicj0nICsgd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQgKyAnJnA9MTY5NDg3MCZwdHJuPW11bHRpZm9ybWF0X3NxdWFyZV9zaXRlX3ZrYWRzJnRwbD04JyArICcmbXNnPScgKyBlbmNvZGVVUkkobWVzc2FnZSk7Cn0KCnZhciBxdWV1ZSA9IHdpbmRvd1snVFJHQlZpZXdfcXVldWUnXTsKaWYgKCFkYXRhIHx8ICFkYXRhLmhhc093blByb3BlcnR5KCdsaWJPcHRpb25zJykpIHsgCiAgICBkYXRhLmxpYk9wdGlvbnMgPSB7fTsgICAgCn0KZGF0YS5saWJPcHRpb25zLnBhZCA9ICIxNjk0ODcwIjsKZGF0YS5saWJPcHRpb25zLnRlbXBsYXRlID0gIjgiOwpkYXRhLmxpYk9wdGlvbnMucGF0dGVybiA9ICJtdWx0aWZvcm1hdF9zcXVhcmVfc2l0ZV92a2FkcyI7CmlmICghcXVldWUpIHsKICAgIHF1ZXVlID0gd2luZG93WydUUkdCVmlld19xdWV1ZSddID0gW2RhdGFdOwp9IGVsc2UgewogICAgcXVldWUucHVzaChkYXRhKTsKfQp2YXIgY29yZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNkYXRhLXRyZ2J2aWV3LWNvcmUnKTsKaWYgKCFjb3JlKSB7CiAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICBzY3JpcHQuc3JjID0gaXNJRTExKCkgPyAnaHR0cHM6Ly9yLm1yYWR4Lm5ldC9pbWcvQkIvQ0U0MDZFLmpzJyA6ICdodHRwczovL3IubXJhZHgubmV0L2ltZy8yRS82MDI2QTUuanMnOwogICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnaWQnLCAnZGF0YS10cmdidmlldy1jb3JlJyk7CiAgICBzY3JpcHQub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnZGF0YS1sb2FkZWQnLCAndHJ1ZScpCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgaWYgKCFkYXRhKSB7CiAgICAgICAgICAgICAgICBsb2dFcnJvcignbm9fZGF0YScsICdlbXB0eSB0ZW1wbGF0ZSBkYXRhIHByZWluaXQnKTsKICAgICAgICAgICAgICAgIC8qY29uc29sZS53YXJuKCd0cmcgbm8gZGF0YScpOyovCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIHF1ZXVlID0gd2luZG93WydUUkdCVmlld19xdWV1ZSddOwogICAgICAgICAgICBpZiAocXVldWUgJiYgd2luZG93LlRSR0JWaWV3Q29yZSAmJiB0eXBlb2Ygd2luZG93LlRSR0JWaWV3Q29yZS5nbG9iSW5pdCA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgICAgICAgd2luZG93LlRSR0JWaWV3Q29yZS5nbG9iSW5pdChxdWV1ZSwgaXNJRTExKCkpOwogICAgICAgICAgICAgICAgZGVsZXRlIHdpbmRvd1snVFJHQlZpZXdfcXVldWUnXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGxvZ0Vycm9yKCdub19saWInLCAnbm8gbGliIG9yIGluaXQgZnVuY3Rpb24nKTsKICAgICAgICAgICAgICAgIC8qY29uc29sZS53YXJuKCd0cmcgd2ViIGxpYiBvYmplY3Qgb3IgZ2xvYkluaXQgaXMgbm90IGEgZnVuY3Rpb24nKTsqLwogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBsb2dFcnJvcignbm9fZGF0YScsICdubyB0ZW1wbGF0ZSBkYXRhIGNhdGNoJyk7CiAgICAgICAgfQogICAgfQogICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwp9IGVsc2UgaWYgKGNvcmUgJiYgY29yZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtbG9hZGVkJykgPT09ICd0cnVlJykgewogICAgdmFyIHF1ZXVlID0gd2luZG93WydUUkdCVmlld19xdWV1ZSddOwogICAgaWYgKHF1ZXVlICYmIHdpbmRvdy5UUkdCVmlld0NvcmUgJiYgdHlwZW9mIHdpbmRvdy5UUkdCVmlld0NvcmUuZ2xvYkluaXQgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICB3aW5kb3cuVFJHQlZpZXdDb3JlLmdsb2JJbml0KHF1ZXVlLCBpc0lFMTEoKSk7CiAgICAgICAgZGVsZXRlIHdpbmRvd1snVFJHQlZpZXdfcXVldWUnXTsKICAgIH0gZWxzZSB7CiAgICAgICAgbG9nRXJyb3IoJ25vX2xpYicsICdubyBsaWIgb3IgaW5pdCBmdW5jdGlvbicpOwogICAgICAgIC8qY29uc29sZS53YXJuKCd0cmcgd2ViIGxpYiBvYmplY3Qgb3IgZ2xvYkluaXQgaXMgbm90IGEgZnVuY3Rpb24nKTsqLwogICAgfQp9Cgp2YXIgcGxhY2VIb2xkZXJFbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2IxNTU4OTQ4MjlfMTAxNjYxMTQwMycpOwppZiAocGxhY2VIb2xkZXJFbGVtKSB7CiAgICBwbGFjZUhvbGRlckVsZW0uc2V0QXR0cmlidXRlKCdkYXRhLWluaXQnLCB0cnVlKTsKfX0pKCk7PC9zY3JpcHQ+CiAgPC9kaXY+PC9kaXY+CgoKCgoKCgoKCjwhLS0gMjE0NSAtLT4KCgoKCgoKPHNjcmlwdD4KICAoZnVuY3Rpb24ocHJlZml4KXsKICAgIHRyeXsKICAgICAgCiAgICAgIGZ1bmN0aW9uIGdldEFkc0NvbnRhaW5lcnMoKSB7CiAgCQkJdmFyIEFEU19DTEFTUyA9IHByZWZpeCArICctdmlzaWJpbGl0eS1jaGVjazInLAogIAkJCQlBRFNfQ09VTlRFUl9DTEFTUyA9IEFEU19DTEFTUyArICctY291bnRlcicsCiAgCQkJCUFEU19DQUxMQkFDS19DTEFTUyA9IEFEU19DTEFTUyArICctY2FsbGJhY2snLAogIAkJCQlDT1VOVEVSX0FUVFIgPSAnZGF0YS1jb3VudGVyJywKICAJCQkJQ09VTlRFUl9BVFRSX1VOREVURVJNSU5FRCA9IENPVU5URVJfQVRUUiArICctdW4nLAogIAkJCQlDT1VOVEVSX0FUVFJfTk9OVklFV0FCTEUgPSBDT1VOVEVSX0FUVFIgKyAnLW52JywKICAJCQkJQ0FMTEJBQ0tfQVRUUiA9ICdkYXRhLWNhbGxiYWNrJywKICAJCQkJT0JTRVJWRVJfQVRUUiA9ICdkYXRhLW9ic2VydmVyJywKICAJCQkJY29udGFpbmVycyA9IFtdLAogIAkJCQljb3VudGFibGVzID0gW10sCiAgCQkJCWksIGssIGNvdW50ZXJzLCBfY291bnRlciwgX29ic2VydmVyOwogICAKICAJCQljb250YWluZXJzID0gZ2V0QnlDbGFzcyhkb2N1bWVudCwgQURTX0NMQVNTKTsKICAJCQlmb3IgKGkgPSBjb250YWluZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgCQkJCXZhciBjb3VudGVycyA9IGdldEJ5Q2xhc3MoY29udGFpbmVyc1tpXSwgQURTX0NPVU5URVJfQ0xBU1MsICdzcGFuJyk7CiAgCQkJCV9jb3VudGVyID0gY29udGFpbmVyc1tpXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSKTsKICAJCQkJX29ic2VydmVyID0gY29udGFpbmVyc1tpXS5oYXNBdHRyaWJ1dGUoT0JTRVJWRVJfQVRUUik7CiAgCQkJCWNvdW50YWJsZXNbaV0gPSB7CiAgCQkJCQllbDogY29udGFpbmVyc1tpXSwKICAJCQkJCXBpeGVsczogW10sCiAgCQkJCQlwaXhlbHNfdW5kZXRlcm1pbmVkOiBbXSwKICAJCQkJCXBpeGVsc19ub252aWV3YWJsZTogW10sCiAgCQkJCQlvYnNlcnZlcjogX29ic2VydmVyCiAgCQkJCX07CiAgCQkJCWlmIChfY291bnRlcikgY291bnRhYmxlc1tpXS5waXhlbHMucHVzaChfY291bnRlcik7CiAgCQkJCWZvciAoayA9IGNvdW50ZXJzLmxlbmd0aCAtIDE7IGsgPj0gMDsgay0tKSB7CiAgCQkJCQlpZiAoY291bnRlcnNba10ucGFyZW50Tm9kZSA9PT0gY291bnRhYmxlc1tpXS5lbCkgewogICAgICAgICAgICAgIF9jb3VudGVyID0gY291bnRlcnNba10uZ2V0QXR0cmlidXRlKENPVU5URVJfQVRUUik7CiAgICAgICAgICAgICAgaWYgKF9jb3VudGVyKSB7CiAgICAgICAgICAgICAgICBjb3VudGFibGVzW2ldLnBpeGVscy5wdXNoKF9jb3VudGVyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvdW50ZXIgPSBjb3VudGVyc1trXS5nZXRBdHRyaWJ1dGUoQ09VTlRFUl9BVFRSX1VOREVURVJNSU5FRCk7CiAgICAgICAgICAgICAgaWYgKF9jb3VudGVyKSB7CiAgICAgICAgICAgICAgICBjb3VudGFibGVzW2ldLnBpeGVsc191bmRldGVybWluZWQucHVzaChfY291bnRlcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF9jb3VudGVyID0gY291bnRlcnNba10uZ2V0QXR0cmlidXRlKENPVU5URVJfQVRUUl9OT05WSUVXQUJMRSk7CiAgICAgICAgICAgICAgaWYgKF9jb3VudGVyKSB7CiAgICAgICAgICAgICAgICBjb3VudGFibGVzW2ldLnBpeGVsc19ub252aWV3YWJsZS5wdXNoKF9jb3VudGVyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAJCQkJfQogIAkJCQl2YXIgY2FsbGJhY2sgPSBnZXRCeUNsYXNzKGNvbnRhaW5lcnNbaV0sIEFEU19DQUxMQkFDS19DTEFTUywgJ3NwYW4nKTsKICAJCQkJaWYgKGNhbGxiYWNrWzBdKSB7CiAgCQkJCSAgdmFyIF9jYWxsYmFjayA9IGNhbGxiYWNrWzBdLmdldEF0dHJpYnV0ZShDQUxMQkFDS19BVFRSKTsKICAJCQkJICBpZiAoX2NhbGxiYWNrICYmIHdpbmRvdy5SQl9DQUxMQkFDS1MgJiYgd2luZG93LlJCX0NBTExCQUNLU1tfY2FsbGJhY2tdKSB7CiAgCQkJCSAgICBjb3VudGFibGVzW2ldLmNhbGxiYWNrID0gd2luZG93LlJCX0NBTExCQUNLU1tfY2FsbGJhY2tdOwogIAkJCQkgIH0KICAJCQkJfQogIAkJCQlpZiAoIWNvdW50YWJsZXNbaV0ucGl4ZWxzLmxlbmd0aCkgY291bnRhYmxlcy5zcGxpY2UoaSwgMSk7CiAgCQkJfQogICAKICAJCQlyZXR1cm4gY291bnRhYmxlczsKICAJCX0KICAgCiAgCQlmdW5jdGlvbiBnZXRCeUNsYXNzKHBhcmVudCwgY2hpbGRDbGFzc05hbWUsIHRhZ05hbWUpIHsKICAJCQlpZiAocGFyZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUpIHsKICAJCQkJcmV0dXJuIHBhcmVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNoaWxkQ2xhc3NOYW1lKTsKICAJCQl9IGVsc2UgaWYgKHBhcmVudC5xdWVyeVNlbGVjdG9yQWxsKSB7CiAgIAogIAkJCQlyZXR1cm4gcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy4nICsgY2hpbGRDbGFzc05hbWUpOwogIAkJCX0gZWxzZSB7CiAgCQkJCXZhciBlbHMgPSBbXTsKICAJCQkJdmFyIHRtcCA9IHBhcmVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWdOYW1lID8gdGFnTmFtZSA6ICIqIik7CiAgCQkJCXZhciByZWdleCA9IG5ldyBSZWdFeHAoIihefFxzKSIgKyBjaGlsZENsYXNzTmFtZSArICIoXHN8JCkiKTsKICAJCQkJZm9yICh2YXIgaSA9IDA7IGkgPCB0bXAubGVuZ3RoOyBpKyspIHsKICAJCQkJCWlmIChyZWdleC50ZXN0KHRtcFtpXS5jbGFzc05hbWUpKSB7CiAgCQkJCQkJZWxzLnB1c2godG1wW2ldKTsKICAJCQkJCX0KICAJCQkJfQogIAkJCQlyZXR1cm4gZWxzOwogIAkJCX0KICAJCX0KICAgCiAgCQlSQkMuSShnZXRBZHNDb250YWluZXJzKCkpOwogICAgICAKICAgIH1jYXRjaChlKXt9CiAgfSgnbWFpbHJ1JykpCjwvc2NyaXB0PgoKCgoKPHN0eWxlPgogICN0cmctYi0xNTUyODcwMzgtNTMwNTc5NzY1W2RhdGEtaGlkZS01MzA1Nzk3NjVdIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSFpbXBvcnRhbnQ7CiAgICBsZWZ0OiAtOTk5OXB4IWltcG9ydGFudDsKICAgIHotaW5kZXg6IC0xIWltcG9ydGFudDsKICAgIHdpZHRoOiAxMDAlOwogIH0KCiAgI3lhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1MyB7CgkgIGJvcmRlci1yYWRpdXM6IDhweCFpbXBvcnRhbnQ7CiAgfQo8L3N0eWxlPgo8ZGl2IGlkPSJ5YW5kZXhfYWRfUi0xNDcwMjMtMjY3XzUzMDU3OTc2NTMtcGl4ZWwxIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogIDxkaXYgaWQ9InlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1My1waXhlbDIiPgogICAgPGRpdiBpZD0ieWFuZGV4X2FkX1ItMTQ3MDIzLTI2N181MzA1Nzk3NjUzIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDowO3dpZHRoOjEwMCU7aGVpZ2h0OjMwMHB4OyI+PC9kaXY+CiAgPC9kaXY+CjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgKGZ1bmN0aW9uICh3LCBkLCBuLCBzLCB0KSB7CiAgICB2YXIgdGltZVN0YXJ0ID0gK25ldyBEYXRlKCk7CgogICAgdmFyIGZpcnN0RGlyZWN0UmVuZGVyID0gdHJ1ZTsKICAgIHZhciBmYWxsYmFja0ludm9rZWQgPSBmYWxzZTsKICAgIHZhciBmYWxsYmFja1RpbWVvdXQgPSBudWxsOwoKICAgIHZhciBmYWxsYmFja1R5cGUgPSB7CiAgICAgIEZPUkNFOiAnZm9yY2UnLAogICAgICBVTlNVUFBPUlQ6ICd1bnN1cHBvcnQnLAogICAgICBUSU1FT1VUOiAndGltZW91dCcsCiAgICAgIEVSUk9SOiAnZXJyb3InLAogICAgICBFTVBUWTogJ2VtcHR5JwogICAgfTsKCiAgICBpZiAoIXcuTWFwIHx8ICh3LmF0dGFjaEV2ZW50ICYmICF3LmFkZEV2ZW50TGlzdGVuZXIpKSB7IC8vICJiYWQiIElFCiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgIGZhbGxiYWNrKGZhbGxiYWNrVHlwZS5VTlNVUFBPUlQpOwogICAgICB9LCAwKTsKICAgICAgcmV0dXJuOwogICAgfQoKCQl2YXIgZmFsbGJhY2tEZWxheSA9IDI1MDA7CgogICAgaWYgKGZhbGxiYWNrRGVsYXkpIHsKICAgICAgZmFsbGJhY2tUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgZmFsbGJhY2soZmFsbGJhY2tUeXBlLlRJTUVPVVQpOwogICAgICB9LCBmYWxsYmFja0RlbGF5KTsKICAgIH0gZWxzZSB7CiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgIGZhbGxiYWNrKGZhbGxiYWNrVHlwZS5GT1JDRSk7CiAgICAgIH0sIDApOwogICAgICByZXR1cm47CiAgICB9CgogICAgZnVuY3Rpb24gZ2V0QnJvd3NlckxhYmVsKCkgewogICAgICB2YXIgYnJvd3NlciA9ICd1bmsnOwogICAgICB2YXIgdWEgPSBuYXZpZ2F0b3IudXNlckFnZW50OwoKICAgICAgaWYgKHVhLmluZGV4T2YoJ09wZXJhJykgIT09IC0xIHx8IHVhLmluZGV4T2YoJ09QUicpICE9PSAtMSkgewogICAgICAgIGJyb3dzZXIgPSAnb3ByJzsKICAgICAgfSBlbHNlIGlmICh1YS5pbmRleE9mKCdFZGdlJykgIT09IC0xKSB7CiAgICAgICAgYnJvd3NlciA9ICdlZGcnOwogICAgICB9IGVsc2UgaWYgKHVhLmluZGV4T2YoJ0Nocm9tZScpICE9PSAtMSkgewogICAgICAgIGJyb3dzZXIgPSAnY2hyJzsKICAgICAgfSBlbHNlIGlmICh1YS5pbmRleE9mKCdTYWZhcmknKSAhPT0gLTEpIHsKICAgICAgICBicm93c2VyID0gJ3Nmcic7CiAgICAgIH0gZWxzZSBpZiAodWEuaW5kZXhPZignRmlyZWZveCcpICE9PSAtMSkgewogICAgICAgIGJyb3dzZXIgPSAnZmYnOwogICAgICB9IGVsc2UgaWYgKCh1YS5pbmRleE9mKCdNU0lFJykgIT09IC0xKSB8fCAoISFkb2N1bWVudC5kb2N1bWVudE1vZGUgPT09IHRydWUpKSB7CiAgICAgICAgYnJvd3NlciA9ICdpZSc7CiAgICAgIH0KCiAgICAgIHJldHVybiBicm93c2VyOwogICAgfQoKICAgIGZ1bmN0aW9uIGxvZ1JlbmRlcihmYWxsYmFja1R5cGUpIHsKICAgICAgdmFyIHRpbWVFbmQgPSArbmV3IERhdGUoKTsKICAgICAgdmFyIGR1cmF0aW9uID0gdGltZUVuZCAtIHRpbWVTdGFydDsKICAgICAgdmFyIGJyb3dzZXIgPSBnZXRCcm93c2VyTGFiZWwoKTsKICAgICAgdmFyIHNsb3RJZCA9ICcxMjk5Mjc0JzsKICAgICAgdmFyIGlwcmVmaXggPSAnYi0nICsgYnJvd3NlciArICdfcy0nICsgc2xvdElkOwoKICAgICAgdmFyIGlkYXRhID0ge307CgogICAgICBpZGF0YVtpcHJlZml4ICsgJ19yZW5kZXInXSA9IGR1cmF0aW9uOwoKICAgICAgaWYgKGZhbGxiYWNrVHlwZSkgewogICAgICAgIGlkYXRhW2lwcmVmaXggKyAnXycgKyBmYWxsYmFja1R5cGVdID0gZHVyYXRpb247CgogICAgICAgIGlmICgnJykgewogICAgICAgICAgaWRhdGFbaXByZWZpeCArICdfbXJrJ10gPSBkdXJhdGlvbjsKICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnXycgKyBmYWxsYmFja1R5cGUgKyAnX21yayddID0gZHVyYXRpb247CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlkYXRhW2lwcmVmaXggKyAnX3RyZyddID0gZHVyYXRpb247CiAgICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ18nICsgZmFsbGJhY2tUeXBlICsgJ190cmcnXSA9IGR1cmF0aW9uOwoKICAgICAgICAgIGlmICgnJykgewogICAgICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ190cmdfaGknXSA9IGR1cmF0aW9uOwogICAgICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ18nICsgZmFsbGJhY2tUeXBlICsgJ190cmdfaGknXSA9IGR1cmF0aW9uOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWRhdGFbaXByZWZpeCArICdfdHJnX2xvJ10gPSBkdXJhdGlvbjsKICAgICAgICAgICAgaWRhdGFbaXByZWZpeCArICdfJyArIGZhbGxiYWNrVHlwZSArICdfdHJnX2xvJ10gPSBkdXJhdGlvbjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWRhdGFbaXByZWZpeCArICdfZGlyZWN0J10gPSBkdXJhdGlvbjsKCiAgICAgICAgaWYgKCcnKSB7CiAgICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ19kaXJlY3RfaGknXSA9IGR1cmF0aW9uOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZGF0YVtpcHJlZml4ICsgJ19kaXJlY3RfbG8nXSA9IGR1cmF0aW9uOwogICAgICAgIH0KICAgICAgfQoKICAgICAgaWYgKHcueHJheSkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAoeHJheS5zZW5kSW1tZWRpYXRlbHkpIHsKICAgICAgICAgICAgeHJheS5zZW5kSW1tZWRpYXRlbHkoJ2FkbWFuLXRpbWUnLCB7CiAgICAgICAgICAgICAgaTogaWRhdGEKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB4cmF5LnNlbmQoJ2FkbWFuLXRpbWUnLCB7CiAgICAgICAgICAgICAgaTogaWRhdGEKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGZhbGxiYWNrKHR5cGUpIHsKICAgICAgaWYgKGZhbGxiYWNrSW52b2tlZCkgcmV0dXJuOwogICAgICBjbGVhclRpbWVvdXQoZmFsbGJhY2tUaW1lb3V0KTsKICAgICAgZmFsbGJhY2tJbnZva2VkID0gdHJ1ZTsKCiAgICAgIHZhciB0cmdCID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRyZy1iLTE1NTI4NzAzOC01MzA1Nzk3NjUiKTsKICAgICAgdmFyIHRyZ0IyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRyZy1iLTE1NTI4NzAzOC01MzA1Nzk3NjUyIik7CiAgICAgIHZhciB0cmdZYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ5YW5kZXhfYWRfUi0xNDcwMjMtMjY3XzUzMDU3OTc2NTMiKTsKICAgICAgdmFyIHRyZ1lhV3JhcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ5YW5kZXhfYWRfUi0xNDcwMjMtMjY3XzUzMDU3OTc2NTMtcGl4ZWwxIik7CgogICAgICBpZiAodHJnWWEpIHsKICAgICAgICB0cmdZYVdyYXAuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgfQoKICAgICAgaWYgKHRyZ0IpIHsKICAgICAgICBpZiAodHJnQi5nZXRBdHRyaWJ1dGUoImRhdGEtaGlkZS01MzA1Nzk3NjUiKSA9PT0gImhpZGUtYmFubmVyIikgewogICAgICAgICAgdHJnQi5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtaGlkZS01MzA1Nzk3NjUiKTsKICAgICAgICB9CiAgICAgICAgdHJnQi5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI3RyZy1iLTE1NTI4NzAzOC01MzA1Nzk3NjUgLnRyZy12LWJhbm5lcicpOwogICAgICAgIGlmIChjb250YWluZXIubGVuZ3RoKSB7CiAgICAgICAgICBjb250YWluZXIgPSBjb250YWluZXJbMF0gfHwgbnVsbDsKICAgICAgICB9CiAgICAgICAgaWYgKGNvbnRhaW5lciAmJiBjb250YWluZXIucGxheVZpZGVvQ2hlY2sgJiYgdHlwZW9mIGNvbnRhaW5lci5wbGF5VmlkZW9DaGVjayA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgY29udGFpbmVyLnBsYXlWaWRlb0NoZWNrKCk7CiAgICAgICAgfQogICAgICAgIG5ldyBJbWFnZSgpLnNyYyA9ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczUk5XOTB2VkFBQUE4MW5iZ3cyV3NITGs1Ullrb2VpSWczblYtSWZvanJCcl80eGQ5b3oxeWxCYy1xNkFoajNhZmk5MTZMUGVJYjdsSkVwa29EeUc0b2c0YW9tZHhaUnVkLXNlRVBYTU1qS3B6NS1ka3FqWjUxRkx2Z1YyakJ1X2I4Z2k1amFDbVFMbEtQQ2RDZm8zV1RKWUpZNU5iSnJhTUlrdWw0Z094dUppcmtSRnN0R3l3NU5LVng4Rl95eTdsLTMxQkwzbHk2ZmQ0QTZiQVlhWmRZUFA3WW5ENjRwSFZqMjdORHFNYWhMWi1SWTA4YjFVMlpoenp2alZqRFNXN25GUjhhMVR4SW5NbHRyX0JmWDFrdEJWa1Q1eGFpRW5hSkpxNGtSMXFqdGoxOURDZl94T3JvUS5naWYiOwogICAgICAgIFJCQy5JKHsKICAgICAgICAgICAgZWw6IHRyZ0IsCiAgICAgICAgICAgIHBpeGVsczogIFsnaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM2FQUTNRblZBQUFBTGk2UUFmb3B0M3ZHX3RINGFGby1QS25XcjNNTmhaVmJCUExyTmpub1dxNUVsZnI4WlduVGxlSHhHVmVrRkQ5QzhlN21uUktBMGwtdTMxLWxkUWlmczljWWJ5NnltTVlVbERXbm9YeUNPTDczRTJWYTczWVNZWVdEUlp2VWhIQ3c2TktpTHpqR1Q2YmRaN05Ha045RXhXaUJNYkVPdWo3dWJ1QjR3dV84am1XcUFCVks3TUhUSmhtR2RucFJCa0JhSnIzVzZxZUhyTHFnMUxyb2NwOEhJT1RvU3lwaXExZGxSdkJYR2dlRFF1aFV6bDZ6VjNtbFF4ZWl0QXZxcUdXWDZfSVRFVVZXYmxOY1Q3VnVYZkFDRjNZUWp0Qi1mekd0UVg1czRuWGZza28uZ2lmJ10KICAgICAgICB9KTsKICAgICAgICBSQkMuSSh7CiAgICAgICAgICAgIGVsOiB0cmdCMiwKICAgICAgICAgICAgcGl4ZWxzOiAgWydodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczY3RpalJ2VkFBQUFTQVZSSW1PZmZpTXI5YjlfdjVkT1dyZzhkUkpiMEdpblZKQ2JiLXpHR1BOdUNCZ25vUTNETER0QVdLMXk1c1VudVlQdGhoeVgxTWNZOGJPUnJWQ3gwYnM5WlRCeVQzaERWZWJ0Tjg4dHNvaGxyWG5lX1BZd1REUjNidjRoeTNFODdVZEpYZ0xxMUt5Tm52d2ZvMG1IZWZSWkdqTktlNG5sMkNiNFIwQ0poblBnTS1MbUl6eGp2UVgtalc4Q3hkcTJHd2d5TFZFMmdfTzE2RzBPb3o2SS1na3IzYlY4bjZQTmgwMFlHb0FWdzlOazVUUG0xeGc1dlJISm8xTVc4QVg3eC1ySkdMTm83cDlLUTAzbE9KQ21sS09BLWYyeEJIeF9DZG43cmtMZWRPNC5naWYnLCdodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczWTJBeGh6VkFBQUE4NmRrdXp6MGdVenQ3TXlGa2FIcmU4ckYybEpQdGF1UlNCUGdUM2dqWWtyX0FnVEQ0dV9UZVN0ZHJ3TDQyN2JoMjBlVVNXTUtYZ2hleXdNVE00elI4UFNxbVR5N3hHcGpoc3dWWVdhUjN0NFRDV3o4WVdVSHg1LWY1TDZzWVZYbTBMU0JvWlQzSU50R29SRlc5ektZajh3WlVrS1c3OTlFS3NPUlA0OVBfRy1ZOXpyNTM2QWFZazJWZWo2MVBFa1piWkc2dWpGVzJMRi03Ni1YYmhNdVZVNHFpUTlEWWZyZG9sTTJjQkVWMVpuVHBKZGdiM0tDZ1dpQ3NMMlo2SVFUT2ktY3NhdkJWLWh3VFk0bS1VSDQwdFVnUlFDdWdyNFlzSWp3M2Q0Sm1Tby5naWYnXSwKICAgICAgICAgICAgZGVsYXk6IDIKICAgICAgICB9KTsKCiAgICAgICAgaWYgKHR5cGUgPT09IGZhbGxiYWNrVHlwZS5USU1FT1VUKSB7CiAgICAgICAgICBuZXcgSW1hZ2UoKS5zcmMgPSAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1NOc1l5SFZBQUFBS0F4ZkZMRkx0b2Y5VDd2UWkzSDBDcmpvaTlYVWFVYWJ5aEFCUndFdWhsdmZSbWVwV0t1Y1FaU3R5RTRmVGNmVkRtMUNDbmY0QW8xeEZ0X3E0WWFOZFFPWl91RTByYl9ST2JUSkFROEFNNFJONE9oam5FMV9yNlhRT3ZPYldkc3RoQ3M3Z3IwSmhRSWJrZWpYR0tLbzY3M0dIeTJKU0ttREE1UGZ2U21xWFNMNS1kOHg1VjJKS1c1VjZWTlhaYmFRdHRMYUV1VGNQbUw1VGhwbUlqZ1hISkM2NnhsUTctTDl2SEJzZmdMNjY2eEM1S3dCVG9pbkx4dUtDbjVPVzlWZ2JQUVhKTEJ5SFlrMGk5NXV5UVY4aFRrZERSSGQ2aTVxOXdiYkdsbG1DV0EuZ2lmIjsKICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IGZhbGxiYWNrVHlwZS5FUlJPUikgewogICAgICAgICAgbmV3IEltYWdlKCkuc3JjID0gImh0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNXNEYtVDNWQUFBQW1ma200ajAzVnpzM3VxVGRsLThxRkI3WkNJOWNNNW9nNHItUllnYUpQX2hDNjdxdE1uLTRsazVDZkN3TDF0NEVnTklMaXQ2WVpDYnRpMmllXzcyUTZvaXNRMlRiRlpXVTVrNTBJTlhwMGFXcXhQMWZPenpGeUc2bHExMlpSRDB5YXR0eHo5MkEyenJZTHNsMl9sN2RKU1lWTFNYZzFERkhtUDFPWkFyNUdvblJhUUtISmxuaW1XZDZqT0FfeF9rdC1KeE5zNmRsY0xNSERvd1VKUXp0X3NzOFdBZWxNT3h2eVZzLXlUYWtzT3VjdmNNS3RrUmVUZG5ucFhSSTZFTEIzX0F5Zk9JZjlCMGZRdDdnZDZ1NzhUOFN1QkdSOC1FWWNfdnhVTDRsR3YwLmdpZiI7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBmYWxsYmFja1R5cGUuRU1QVFkpIHsKICAgICAgICAgIG5ldyBJbWFnZSgpLnNyYyA9ICJodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczYkRhZkhMVkFBQUF3RWJFUW5ZTWJrbXZ6LUpXZFRrNmpjMmFOaVlORzgycHdpMU9Wel8yQU4wSzNmcWYtN1k2RUVOd0tmYTdLZWZnRm5SSkJSd1lZb05wSHgtVWQ0QWdsZXRGU3dWOVVudXpQVnloU2RYWXVNbklOVWhJRjdtSHRxbWx2UWNVMkZuRHVjTHVlS3Z1dWJVSkFVZVVQdmdjRDd6Vmw3QzN3OFpkdTV4OFJ6a0JSNGdoTEtfM3pjR3hVc2xOWk5QOWtEVjV0RjFoYlUwR056aENqbUNBWE5pMHpfa3Z0RDVEMWIydEJMQnc0X3dJdzMtMjhKVGlfejh5X0xycmpaSjJXM1dSelkxTHlQUmdWRzBMSEdXd254VXJRWDJiSE1SYmpNWDc3Ri1oZGJVeWtRVS5naWYiOwogICAgICAgIH0KCiAgICAgICAgbG9nUmVuZGVyKHR5cGUpOwogICAgICB9CiAgICB9CgogICAgLy8gU3RhdCB1dGlscwogICAgZnVuY3Rpb24gZ2V0QXJlYVJhdGlvKGNvbnRhaW5lciwgc2VsZWN0b3IpIHsKICAgICAgdmFyIGVsZW1zID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpOwogICAgICB2YXIgdG90YWxBcmVhID0gMDsKCiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gZWxlbXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CiAgICAgICAgdmFyIGVsID0gZWxlbXNbaV07CiAgICAgICAgdmFyIHcgPSAoZWwuY2xpZW50V2lkdGggPT09IDApID8gMCA6IChlbC53aWR0aCB8fCBlbC5jbGllbnRXaWR0aCk7CiAgICAgICAgdmFyIGggPSAoZWwuY2xpZW50SGVpZ2h0ID09PSAwKSA/IDAgOiAoZWwuaGVpZ2h0IHx8IGVsLmNsaWVudEhlaWdodCk7CiAgICAgICAgdG90YWxBcmVhICs9IHcgKiBoOwogICAgICB9CgogICAgICBpZiAodG90YWxBcmVhID09PSAwKSB7CiAgICAgICAgcmV0dXJuIHRvdGFsQXJlYTsKICAgICAgfQoKICAgICAgdmFyIGNvbnRhaW5lckFyZWEgPSBjb250YWluZXIuY2xpZW50V2lkdGggKiBjb250YWluZXIuY2xpZW50SGVpZ2h0OwogICAgICByZXR1cm4gdG90YWxBcmVhIC8gY29udGFpbmVyQXJlYTsKICAgIH0KCiAgICBmdW5jdGlvbiBvbkNvbnRleHRSZWFkeSgpIHsKICAgICAgWWEuQ29udGV4dC5BZHZNYW5hZ2VyLnJlbmRlcih7CiAgICAgICAgYmxvY2tJZDogIlItMTQ3MDIzLTI2NyIsCiAgICAgICAgcGFnZU51bWJlcjogIjUzMDU3OTc2NTMiLAogICAgICAgIHJlbmRlclRvOiAieWFuZGV4X2FkX1ItMTQ3MDIzLTI2N181MzA1Nzk3NjUzIiwKICAgICAgICBzdGF0SWQ6ICI3NSIsCiAgICAgICAgYXN5bmM6IHRydWUsCiAgICAgICAgZGlzYWJsZUhpZ2hsaWdodDogdHJ1ZSwKICAgICAgICBvblJlbmRlcjogZnVuY3Rpb24gKGRhdGEpIHsKICAgICAgICAgIGlmIChmYWxsYmFja0ludm9rZWQpIHJldHVybjsKICAgICAgICAgIGNsZWFyVGltZW91dChmYWxsYmFja1RpbWVvdXQpOwoKICAgICAgICAgIGZ1bmN0aW9uIGxvZ1lhbmRleFN0YXRlKG1ldHJpYywgcmxvZ19tZXNzYWdlKSB7CiAgICAgICAgICAgIHZhciBzcmMgPSAnLy9tYWlsLnJhZGFyLmltZ3NtYWlsLnJ1L3VwZGF0ZT9wPW9jdGF2aXVzJnQ9YWRtYW4teWEmdj0xJmk9JyArIG1ldHJpYyArICc6MSZybmQ9JyArIE1hdGgucmFuZG9tKCk7CgogICAgICAgICAgICBpZiAoMCAmJiBybG9nX21lc3NhZ2UpIHsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgc3JjICs9ICcmcmxvZ19tZXNzYWdlPScgKyBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkocmxvZ19tZXNzYWdlKSk7CiAgICAgICAgICAgICAgICBzcmMgKz0gJyZybG9nPWFkbWFuLXlhXycgKyBtZXRyaWM7CiAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gbmV3IEltYWdlKCkuc3JjID0gc3JjOwogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICB2YXIgeWFOb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1MyIpOwoKICAgICAgICAgIGlmIChkYXRhICYmIGRhdGEucmVmcmVzaCkgewogICAgICAgICAgICBuZXcgSW1hZ2UoKS5zcmMgPSAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1pFS2QyN1ZBQUFBbHc3UjZjU2ZROGtjTmZUVWhfd3VXNDZ3X0xIeExndk5oZ2RCUU9IbXJFVlRwRmxIOG1ZWHFkd3lOMk9fbzNKamlRNG9IemNna3dSMVVxcmxPeWR0TzFHN05NNHprQklBeVdTNW0xcWpXcFRsU2JTdkdfVnZoVUVtbWoxdVo5eERxbkJRbkVzYU1qem1aODB1X00zdUd3eTJEWlNzRjNXcWtOdEtfeWlqRk9BYmVVUllsNUVEcGNQTTBzUWpPUDdmeTlXcXRkTFlNd2NhVDR1QzN2MVowMmdacDkwVXFOYVlfY3RFSFhaRXExLWVpaGRuZ3BWMWpsYXE5U3VpQkYwLXdZclhEVjNVRmhqSmR4eUVNLW1DbGUwOERLaUl5M3hpSDhDcGNLOElvTW8uZ2lmIjsKCiAgICAgICAgICAgIGxvZ1lhbmRleFN0YXRlKCdyZWZyZXNoJyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBuZXcgSW1hZ2UoKS5zcmMgPSAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM1JoSFFualZBQUFBZ211cXVrLWMyUlJXb2VSNkJIZUNkelJ3Tm0zVDZramRyY2hZczUzMVRVVmozU1dCYVBQbHJJQkVnYkI1OGg5YUd0OVplSkJjY29lbXQ4UWdyeEV5N1pTQUtPbE5uV3VDeXlXV0lKX1Vlal9SYWRuZVlKRVlMMWZUcTRCQVhoRDROVlJ0TllfWGZXeDFZWi05RURicHJhTURzaTM4elIzcmlIeklRM19BVFBjVjQxUkZscnR5Z3lYNW0wcHBHZFBNd0F1aFd4YmNkQ2VVVjhNSktzbHZvQXlVamVoS1JRTlQtX0F6T0o1eFAwRURiaTdmY095ZHMzbUM4ODY4Y0M5WG13Mm9aRUtCd0xSeXRrMlh2akpzdFBYY1U0Ulo1cXhqSWVuVV9yQk12aVEuZ2lmIjsKICAgICAgICAgICAgaWYgKGZpcnN0RGlyZWN0UmVuZGVyKSB7CiAgICAgICAgICAgICAgZmlyc3REaXJlY3RSZW5kZXIgPSBmYWxzZTsKCiAgICAgICAgICAgICAgaWYgKHlhTm9kZSkgewogICAgICAgICAgICAgICAgUkJDLkkoewogICAgICAgICAgICAgICAgICBlbDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1My1waXhlbDEiKSwKICAgICAgICAgICAgICAgICAgcGl4ZWxzOiBbJ2h0dHBzOi8vcnMubWFpbC5ydS9waXhlbC9BQUQ1LUFHU0x1QmZiemVhUEJxZHNscnhMcjZxLV9ueEJYWXRXRVhhSzU4VHZ5SXVhdHNUQ3lnVlAtV3d0Vl9vLTc1X09WTXJTQ2xNV1FwNFU3T3RCMDZEczd4SjB2a2xaZzh2MlVHbnN4aGFSVV9keE1fQi1LRHo5X3ZTQk5MNVc5ME5KUGpISkxLZHdPUnNGa3hobHVSQV94WWdfYjdWdEc2Q2JyTEJLaThRU3ZlZzNjNnZpSF9WQUFBQWFBSTV4MFk3R3RJU0tNd2NoODRKenlyOU0tLUotaHQtbGh4YVNLUHBtdERfUnlkSm1RMFN0WFFWMmZQYzBqbi1MM2lBVmI0c2lQUWdCUTNYb0JsRlUtM1JVZWpPU092YXlkTk5iS3A5UjQ1TjZ5RTN0bEpyQk9uU19lWFJUNDJ4STRuMmlpcklwRnhhcFJvUzROSUY0R3Z0MjAzc0sxVmY3bk50QW1DSDFmQVZxdXlUQ2treC1DYnhJa1hiV1RYUzBpN1duS0dtWXV2aTRkX0NpeTZtdDJTR3U2QVZSbkxDSnhVSXZUTmIzZG52ZnpELUl6QjUyZFUyUW1zT29VV3d5WnZzNmJPLUVuV25PNHlrZGZhbVhHcm5Vc1F6VGRIX0d0YS1HSlY3WFpRLmdpZiddCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIFJCQy5JKHsKICAgICAgICAgICAgICAgICAgZWw6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ5YW5kZXhfYWRfUi0xNDcwMjMtMjY3XzUzMDU3OTc2NTMtcGl4ZWwyIiksCiAgICAgICAgICAgICAgICAgIHBpeGVsczogWydodHRwczovL3JzLm1haWwucnUvcGl4ZWwvQUFENS1BR1NMdUJmYnplYVBCcWRzbHJ4THI2cS1fbnhCWFl0V0VYYUs1OFR2eUl1YXRzVEN5Z1ZQLVd3dFZfby03NV9PVk1yU0NsTVdRcDRVN090QjA2RHM3eEowdmtsWmc4djJVR25zeGhhUlVfZHhNX0ItS0R6OV92U0JOTDVXOTBOSlBqSEpMS2R3T1JzRmt4aGx1UkFfeFlnX2I3VnRHNkNickxCS2k4UVN2ZWczVHRJSlE3VkFBQUFIeFFwR0xibUdKUE9sOUI4WDFkV0tQVzR6ZW9YNXU4MU85Wnc4ZWY5Q2gxVzF1TTludFFaM1JkbXM4QlBKd2NzYUZaUDNLeHZHTzdKVmYzc3RiSzE5MU16aFpRRFFDU0hINzZfRGxsem9RSGh3VjdqVTY2UHN3bUkyVnE3YnlrSzFfRTR2ZDNEdEx6c2tSeHNfUC1WVXllRDJvb1J6MnhkUFlRcHpickFjMEhJcnRWN3l4QjRla2tVcUFJRGdBRGthQkpFV05fTXp0Q19tbjlqanFmZWZjQ1lFLWxLaGdQUjlfMWRNTTA5TTVYaUVnTmlNdkZCQno2VVlUWWJ2eXQ1azFzVHMxZ0ZhclRjM0ZNeEdZUDdIeFFpRGhJcnVyYkR0cktjX1Vwc3d3RS5naWYnLCAnaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM2MwbzFrM1ZBQUFBNkRIY3BFQVppOElXUlJxTEZVYnY0QnpoVE9nWmRzS1ExLU5hb0VwRzFaTzhfbkRCeTVYc3pmZXcwRGdXek9kb1lDUWRfYVoxcmtjX2lKVW02N2dKOFUzOGNWU1BYMkZqbld1OFR6c1dRZXFVdHJZV0dRSjgtRjRNUUhLWHk5WlU3aXZFSU9DaVZqOGxxckZNTFk2ZTY4a01CX0ZmNHhnSFY1T2RjSm12a3dzbG1ZQkMtVkFIMUVRZWZCU01jWXJlNGJfazdLWlBWejdjZUloaUU5aW9zTXdoYzFsbWUyMlBndjUweldZTXZNVDB4Z2hqUW1Cc0lJT1NtSzF3YlBtM0NTdFhud0cxdEJJRktMMnN1RnVsVUFBT2lMcXpFZ1l5LWJ4NzZXdFFydkEuZ2lmJ10sCiAgICAgICAgICAgICAgICAgIGRlbGF5OiAyCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIGxvZ1JlbmRlcigpOwoKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgaWYgKHlhTm9kZSkgewogICAgICAgICAgICAgICAgICBpZiAoeWFOb2RlLmlubmVySFRNTCkgewogICAgICAgICAgICAgICAgICAgIGxvZ1lhbmRleFN0YXRlKCdub3RfZW1wdHlfYWZ0ZXJfcmVuZGVyJyk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2soZmFsbGJhY2tUeXBlLkVNUFRZKTsKICAgICAgICAgICAgICAgICAgICBsb2dZYW5kZXhTdGF0ZSgnZW1wdHlfYWZ0ZXJfcmVuZGVyJywgZGF0YSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoeWFOb2RlICYmIGdldEFyZWFSYXRpbyh5YU5vZGUsICdpbWcnKSA+IDAuMykgewogICAgICAgICAgICBuZXcgSW1hZ2UoKS5zcmMgPSAiaHR0cHM6Ly9ycy5tYWlsLnJ1L3BpeGVsL0FBRDUtQUdTTHVCZmJ6ZWFQQnFkc2xyeExyNnEtX254QlhZdFdFWGFLNThUdnlJdWF0c1RDeWdWUC1Xd3RWX28tNzVfT1ZNclNDbE1XUXA0VTdPdEIwNkRzN3hKMHZrbFpnOHYyVUduc3hoYVJVX2R4TV9CLUtEejlfdlNCTkw1VzkwTkpQakhKTEtkd09Sc0ZreGhsdVJBX3hZZ19iN1Z0RzZDYnJMQktpOFFTdmVnM2Z2dmcySFZBQUFBdk5uUmVoaVB1RGl1WHZpQ09faFo1Wi1DUEJ1djlTb3ZHazlOQWJlRlR3RGlRc2I4R0wyZHp6QnBsVFVjVzhybkgxN3hSb21nZGxqbnJVVTRMM1BFaERVSkpPMzYzWFI2S2Rzb2s3c19NS0xjTlBtQ2FTTllxMEMtRTgxNVRBNi1FLVlOa3VvSzlHQXM2ZFYwX1RERlBXZnBwM1piQnFhWEFYQzVqLTRPV1hvOER2el8wT0ZEMTRrdGZHQkRvZlA5RHJiX3ZMRnE5NTZ6dkRILVFFQ09vWGI4RmFfX2VnYzRfTE1GMTlYQ1lmbWs5N1JGS3AyMUpSRnlPQWctUWd0QWwzLV8tUFRHSVJMVVZnbkoyTzdSX1c2VlpCZ2pDX3lqZ3J5cGN3WnFLQTguZ2lmIjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sIGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoZmlyc3REaXJlY3RSZW5kZXIpIHsKICAgICAgICAgIGZhbGxiYWNrKGZhbGxiYWNrVHlwZS5FTVBUWSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KCiAgICB3LllBX01BSUxSVV9PSyA9IHRydWU7CgogICAgaWYgKHcuWWEgJiYgWWEuQ29udGV4dCAmJiBZYS5Db250ZXh0LkFkdk1hbmFnZXIgJiYgWWEuQ29udGV4dC5BZHZNYW5hZ2VyLnJlbmRlcikgewogICAgICBvbkNvbnRleHRSZWFkeSgpOwogICAgfSBlbHNlIHsKICAgICAgd1tuXSA9IHdbbl0gfHwgW107CiAgICAgIHdbbl0ucHVzaChvbkNvbnRleHRSZWFkeSk7CiAgICAgIGNvbnN0IGNvbnRleHRQYXRoID0gImh0dHBzOi8veWFuZGV4LnJ1L2Fkcy9zeXN0ZW0vY29udGV4dC5qcyI7CiAgICAgIGNvbnN0IGhhc05vdENvbmV4dEZpbGUgPSBkLnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtzcmM9XCIiICsgY29udGV4dFBhdGggKyAiXCJdIikgPyBmYWxzZSA6IHRydWUgOwogICAgICBjb25zdCBsb2FkZWRTY3JpcHQgPSBmdW5jdGlvbiAoKXsKICAgICAgICB0ID0gZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07CiAgICAgICAgcyA9IGQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgcy50eXBlID0gInRleHQvamF2YXNjcmlwdCI7CiAgICAgICAgcy5zcmMgPSBjb250ZXh0UGF0aDsKICAgICAgICBzLmFzeW5jID0gdHJ1ZTsKICAgICAgICBzLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgZmFsbGJhY2soZmFsbGJhY2tUeXBlLkVSUk9SKTsKICAgICAgICB9OwogICAgICAgIHQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocywgdCk7CiAgICAgIH0KICAgICAgaWYgKGhhc05vdENvbmV4dEZpbGUpIHsKICAgICAgICBsb2FkZWRTY3JpcHQoKTsKICAgICAgfQogICAgfQogIH0pKHRoaXMsIHRoaXMuZG9jdW1lbnQsICJ5YW5kZXhDb250ZXh0QXN5bmNDYWxsYmFja3MiKTsKPC9zY3JpcHQ+CjwhLS1SQi1KU09OOlsKICAgIHsKICAgICAgICAibm9kZUlkIjogInlhbmRleF9hZF9SLTE0NzAyMy0yNjdfNTMwNTc5NzY1MyIsCiAgICAgICAgInNvdXJjZSI6ICJkaXJlY3QiLAogICAgICAgICJpc19leHBlbnNpdmUiOiAiVHJ1ZSIsImZvcm1hdCI6ICJtdWx0aSIsCiAgICAgICAgImNvdW50IjogMSwKICAgICAgICAiYmFubmVySWQiOiAiMTU1Mjg3MDM4IiwKICAgICAgICAiZmFsbGJhY2siOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJub2RlSWQiOiAidHJnLWItMTU1Mjg3MDM4LTUzMDU3OTc2NSIsCiAgICAgICAgICAgICAgICAic291cmNlIjogInRhcmdldCIsCiAgICAgICAgICAgICAgICAiZm9ybWF0IjogIm11bHRpIiwKICAgICAgICAgICAgICAgICJjb3VudCI6IDEKICAgICAgICAgICAgICAgIH0KICAgICAgICBdCiAgICB9Cl0tLT4KCgoKCgoKCiA8L2Rpdj4KCgo8c2NyaXB0PgogIChmdW5jdGlvbihwcmVmaXgpewogICAgdHJ5ewogICAgICAKICAgICAgZnVuY3Rpb24gZ2V0QWRzQ29udGFpbmVycygpIHsKICAJCQl2YXIgQURTX0NMQVNTID0gcHJlZml4ICsgJy12aXNpYmlsaXR5LWNoZWNrJywKICAJCQkJQURTX0NPVU5URVJfQ0xBU1MgPSBBRFNfQ0xBU1MgKyAnLWNvdW50ZXInLAogIAkJCQlBRFNfQ0FMTEJBQ0tfQ0xBU1MgPSBBRFNfQ0xBU1MgKyAnLWNhbGxiYWNrJywKICAJCQkJQ09VTlRFUl9BVFRSID0gJ2RhdGEtY291bnRlcicsCiAgCQkJCUNPVU5URVJfQVRUUl9VTkRFVEVSTUlORUQgPSBDT1VOVEVSX0FUVFIgKyAnLXVuJywKICAJCQkJQ09VTlRFUl9BVFRSX05PTlZJRVdBQkxFID0gQ09VTlRFUl9BVFRSICsgJy1udicsCiAgCQkJCUNBTExCQUNLX0FUVFIgPSAnZGF0YS1jYWxsYmFjaycsCiAgCQkJCU9CU0VSVkVSX0FUVFIgPSAnZGF0YS1vYnNlcnZlcicsCiAgCQkJCWNvbnRhaW5lcnMgPSBbXSwKICAJCQkJY291bnRhYmxlcyA9IFtdLAogIAkJCQlpLCBrLCBjb3VudGVycywgX2NvdW50ZXIsIF9vYnNlcnZlcjsKICAgCiAgCQkJY29udGFpbmVycyA9IGdldEJ5Q2xhc3MoZG9jdW1lbnQsIEFEU19DTEFTUyk7CiAgCQkJZm9yIChpID0gY29udGFpbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewogIAkJCQl2YXIgY291bnRlcnMgPSBnZXRCeUNsYXNzKGNvbnRhaW5lcnNbaV0sIEFEU19DT1VOVEVSX0NMQVNTLCAnc3BhbicpOwogIAkJCQlfY291bnRlciA9IGNvbnRhaW5lcnNbaV0uZ2V0QXR0cmlidXRlKENPVU5URVJfQVRUUik7CiAgCQkJCV9vYnNlcnZlciA9IGNvbnRhaW5lcnNbaV0uaGFzQXR0cmlidXRlKE9CU0VSVkVSX0FUVFIpOwogIAkJCQljb3VudGFibGVzW2ldID0gewogIAkJCQkJZWw6IGNvbnRhaW5lcnNbaV0sCiAgCQkJCQlwaXhlbHM6IFtdLAogIAkJCQkJcGl4ZWxzX3VuZGV0ZXJtaW5lZDogW10sCiAgCQkJCQlwaXhlbHNfbm9udmlld2FibGU6IFtdLAogIAkJCQkJb2JzZXJ2ZXI6IF9vYnNlcnZlcgogIAkJCQl9OwogIAkJCQlpZiAoX2NvdW50ZXIpIGNvdW50YWJsZXNbaV0ucGl4ZWxzLnB1c2goX2NvdW50ZXIpOwogIAkJCQlmb3IgKGsgPSBjb3VudGVycy5sZW5ndGggLSAxOyBrID49IDA7IGstLSkgewogIAkJCQkJaWYgKGNvdW50ZXJzW2tdLnBhcmVudE5vZGUgPT09IGNvdW50YWJsZXNbaV0uZWwpIHsKICAgICAgICAgICAgICBfY291bnRlciA9IGNvdW50ZXJzW2tdLmdldEF0dHJpYnV0ZShDT1VOVEVSX0FUVFIpOwogICAgICAgICAgICAgIGlmIChfY291bnRlcikgewogICAgICAgICAgICAgICAgY291bnRhYmxlc1tpXS5waXhlbHMucHVzaChfY291bnRlcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF9jb3VudGVyID0gY291bnRlcnNba10uZ2V0QXR0cmlidXRlKENPVU5URVJfQVRUUl9VTkRFVEVSTUlORUQpOwogICAgICAgICAgICAgIGlmIChfY291bnRlcikgewogICAgICAgICAgICAgICAgY291bnRhYmxlc1tpXS5waXhlbHNfdW5kZXRlcm1pbmVkLnB1c2goX2NvdW50ZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY291bnRlciA9IGNvdW50ZXJzW2tdLmdldEF0dHJpYnV0ZShDT1VOVEVSX0FUVFJfTk9OVklFV0FCTEUpOwogICAgICAgICAgICAgIGlmIChfY291bnRlcikgewogICAgICAgICAgICAgICAgY291bnRhYmxlc1tpXS5waXhlbHNfbm9udmlld2FibGUucHVzaChfY291bnRlcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgCQkJCX0KICAJCQkJdmFyIGNhbGxiYWNrID0gZ2V0QnlDbGFzcyhjb250YWluZXJzW2ldLCBBRFNfQ0FMTEJBQ0tfQ0xBU1MsICdzcGFuJyk7CiAgCQkJCWlmIChjYWxsYmFja1swXSkgewogIAkJCQkgIHZhciBfY2FsbGJhY2sgPSBjYWxsYmFja1swXS5nZXRBdHRyaWJ1dGUoQ0FMTEJBQ0tfQVRUUik7CiAgCQkJCSAgaWYgKF9jYWxsYmFjayAmJiB3aW5kb3cuUkJfQ0FMTEJBQ0tTICYmIHdpbmRvdy5SQl9DQUxMQkFDS1NbX2NhbGxiYWNrXSkgewogIAkJCQkgICAgY291bnRhYmxlc1tpXS5jYWxsYmFjayA9IHdpbmRvdy5SQl9DQUxMQkFDS1NbX2NhbGxiYWNrXTsKICAJCQkJICB9CiAgCQkJCX0KICAJCQkJaWYgKCFjb3VudGFibGVzW2ldLnBpeGVscy5sZW5ndGgpIGNvdW50YWJsZXMuc3BsaWNlKGksIDEpOwogIAkJCX0KICAgCiAgCQkJcmV0dXJuIGNvdW50YWJsZXM7CiAgCQl9CiAgIAogIAkJZnVuY3Rpb24gZ2V0QnlDbGFzcyhwYXJlbnQsIGNoaWxkQ2xhc3NOYW1lLCB0YWdOYW1lKSB7CiAgCQkJaWYgKHBhcmVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSB7CiAgCQkJCXJldHVybiBwYXJlbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShjaGlsZENsYXNzTmFtZSk7CiAgCQkJfSBlbHNlIGlmIChwYXJlbnQucXVlcnlTZWxlY3RvckFsbCkgewogICAKICAJCQkJcmV0dXJuIHBhcmVudC5xdWVyeVNlbGVjdG9yQWxsKCcuJyArIGNoaWxkQ2xhc3NOYW1lKTsKICAJCQl9IGVsc2UgewogIAkJCQl2YXIgZWxzID0gW107CiAgCQkJCXZhciB0bXAgPSBwYXJlbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUodGFnTmFtZSA/IHRhZ05hbWUgOiAiKiIpOwogIAkJCQl2YXIgcmVnZXggPSBuZXcgUmVnRXhwKCIoXnxccykiICsgY2hpbGRDbGFzc05hbWUgKyAiKFxzfCQpIik7CiAgCQkJCWZvciAodmFyIGkgPSAwOyBpIDwgdG1wLmxlbmd0aDsgaSsrKSB7CiAgCQkJCQlpZiAocmVnZXgudGVzdCh0bXBbaV0uY2xhc3NOYW1lKSkgewogIAkJCQkJCWVscy5wdXNoKHRtcFtpXSk7CiAgCQkJCQl9CiAgCQkJCX0KICAJCQkJcmV0dXJuIGVsczsKICAJCQl9CiAgCQl9CiAgIAogIAkJUkIuSShnZXRBZHNDb250YWluZXJzKCkpOwogICAgICAKICAgIH1jYXRjaChlKXt9CiAgfSgnbWFpbHJ1JykpCjwvc2NyaXB0Pgo8L2lucz48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJwbF9xIHBsX24gcGxfeCBwbF9hbSIgZGF0YS10ZXN0aWQ9InB1bHNlLWNhcmQiPjxkaXYgY2xhc3M9IkNhcmRQcmVsb2FkZXItcm9vdC0wLTEtMTAyIENvbnRlbnRDYXJkLXJvb3QtMC0xLTEwNyI+PGRpdiBjbGFzcz0iQ2FyZFByZWxvYWRlci1ib2R5LTAtMS0xMDMiPjxkaXYgY2xhc3M9IkNhcmRQcmVsb2FkZXItaW1hZ2UtMC0xLTEwNCBQZW5kaW5nQmxvY2stcm9vdC0wLTEtMTA5Ij48L2Rpdj48ZGl2IGNsYXNzPSJDYXJkUHJlbG9hZGVyLXRpdGxlLTAtMS0xMDUgUGVuZGluZ0Jsb2NrLXJvb3QtMC0xLTEwOSI+PC9kaXY+PGRpdiBjbGFzcz0iQ2FyZFByZWxvYWRlci1kZXNjLTAtMS0xMDYgUGVuZGluZ0Jsb2NrLXJvb3QtMC0xLTEwOSI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iTGVudGFGb290ZXItcm9vdC0wLTEtOTYgTGVudGFGb290ZXItZW1wdHktMC0xLTk3Ij48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4KCQk8L2Rpdj4KCQk8c2NyaXB0PgoJCQkoZnVuY3Rpb24od2luZG93KSB7CgkJCQlmdW5jdGlvbiBjYWxsYmFjayAoKSB7CgkJCQkJdmFyIGN1cnJlbnRQYWdlVVRNID0gKHdpbmRvdy5VVE1BcGkgfHwge30pLmN1cnJlbnRQYWdlVVRNOwoJCQkJCShuZXcgUHVsc2UuTGVudGEoJ21lZGlhcHJvamVjdF9sZW50YV9uZXdzJywgbnVsbCwgeyAKCQkJCQkgIGxhenk6IDAsIAoJCQkJCSAgbWF4Q29sdW1uczogNCwgCgkJCQkJICBwYXJ0bmVySWQ6IGN1cnJlbnRQYWdlVVRNLAoJCQkJCSAgCgkJCQkJICBoYXNIZWFkZXI6IGZhbHNlLCAKCQkJCQkgIHNob3dDYXJkU2tlbGV0b25zOiB0cnVlLAoJCQkJCSAgc2xvdHNNdWx0aVJlcXVlc3RMaW1pdDogOCwKCQkJCQkgIHByZWZldGNoU2xvdHM6IGZhbHNlLAoJCQkJCSAgbGF5b3V0OiAnY2F0ZWdvcmllcycsCgkJCQkJICBjYXRlZ29yaWVzVGl0bGU6ICfQkNC60YLRg9Cw0LvRjNC90L7QtScKCQkJCQl9KSkucmVuZGVyKCcucHVsc2UtbGVudGEtcm9vdCcpOwoJCQkJfQogCgkJCQl3aW5kb3cuUHVsc2UgJiYgY2FsbGJhY2soKSB8fCAod2luZG93LnB1bHNlQXN5bmNJbml0ID0gY2FsbGJhY2spOwoJCQl9KSh0aGlzKTsKCQk8L3NjcmlwdD4KCTwvZGl2PgoJPHN0eWxlPgoJCS5yYi1wdWxzZSB7CgkJICAtLXZrdWktLWVsZXZhdGlvbjE6IDBweCA0cHggMTJweCByZ2JhKDE4LCAyNSwgNDMsIDAuMTIpOwoJCSAgb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgkJLnJiLXB1bHNlX190ZXh0YXJlYSB7CgkJICB2aXNpYmlsaXR5OiBoaWRkZW47CgkJICBoZWlnaHQ6IDFweDsKCQkgIG1hcmdpbi10b3A6IC0xcHg7CgkJfQoKCQkucmItcHVsc2VfX2xlbnRhIHsKCQkgIHBhZGRpbmc6IDIwcHggNXB4OwoJCX0KCTwvc3R5bGU+CjwvZGl2Pgo8L25vaW5kZXg+CiAgICAgICAgPCEtLSBlbmQ6IC9yYi82NzQ4MTIgLS0+CiAgICAgIDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJmZWQyYTM5NjM5Ij48Zm9vdGVyIGNsYXNzPSJhNWFiZmY4Mjg2Ij48ZGl2IGNsYXNzPSJmNjM0NmYzMjI5Ij48dWwgY2xhc3M9ImNhMDVkNjM3MWEiPjxsaSBjbGFzcz0iZDIzYTFiOThlYSI+PGEgaHJlZj0iaHR0cHM6Ly9tYWlsLnJ1LyIgY2xhc3M9ImRmZTc4MzhmOTUgYzM2YWI1NGYyOCIgcmVsPSIiPk1haWwuUnU8L2E+PC9saT48bGkgY2xhc3M9ImQyM2ExYjk4ZWEiPjxhIGhyZWY9Imh0dHBzOi8vdmsuY29tcGFueS9ydS8iIGNsYXNzPSJkZmU3ODM4Zjk1IGMzNmFiNTRmMjgiIHJlbD0iIj7QniDQutC+0LzQv9Cw0L3QuNC4PC9hPjwvbGk+PGxpIGNsYXNzPSJkMjNhMWI5OGVhIj48YSBocmVmPSJodHRwczovL25vbnN0YW5kYXJkLnNhbGVzLm1haWwucnUvIiBjbGFzcz0iZGZlNzgzOGY5NSBjMzZhYjU0ZjI4IiByZWw9IiI+0KDQtdC60LvQsNC80LA8L2E+PC9saT48L3VsPjx1bCBjbGFzcz0iY2EwNWQ2MzcxYSI+PGxpIGNsYXNzPSJkMjNhMWI5OGVhIj48YSBocmVmPSJodHRwczovL25ld3MubWFpbC5ydS9lZGl0b3JzLyIgY2xhc3M9ImRmZTc4MzhmOTUgYzM2YWI1NGYyOCIgcmVsPSIiPtCeINC/0YDQvtC10LrRgtC1PC9hPjwvbGk+PGxpIGNsYXNzPSJkMjNhMWI5OGVhIj48YSBocmVmPSJodHRwczovL2hlbHAubWFpbC5ydS9sZWdhbC90ZXJtcy9jb21tb24vbWVkaWFyZWNvbW1lbmRhdGlvbiIgY2xhc3M9ImRmZTc4MzhmOTUgYzM2YWI1NGYyOCIgcmVsPSIiPtCeINGC0LXRhdC90L7Qu9C+0LPQuNGP0YUg0YDQtdC60L7QvNC10L3QtNCw0YbQuNC5PC9hPjwvbGk+PGxpIGNsYXNzPSJkMjNhMWI5OGVhIj48YSBocmVmPSJodHRwczovL2hlbHAubWFpbC5ydS9sZWdhbC90ZXJtcy9uZXdzL3BvbGljeSIgY2xhc3M9ImRmZTc4MzhmOTUgYzM2YWI1NGYyOCIgcmVsPSIiPtCY0YHQv9C+0LvRjNC30L7QstCw0L3QuNC1INC80LDRgtC10YDQuNCw0LvQvtCyPC9hPjwvbGk+PGxpIGNsYXNzPSJkMjNhMWI5OGVhIj48YSBocmVmPSJodHRwczovL2hlbHAubWFpbC5ydS9uZXdzX3N1cHBvcnQiIGNsYXNzPSJkZmU3ODM4Zjk1IGMzNmFiNTRmMjgiIHJlbD0iIj7QntCx0YDQsNGC0L3QsNGPINGB0LLRj9C30Yw8L2E+PC9saT48bGkgY2xhc3M9ImQyM2ExYjk4ZWEiPjxhIGhyZWY9Imh0dHBzOi8vbmV3cy5tYWlsLnJ1L3NpdGVtYXAvIiBjbGFzcz0iZGZlNzgzOGY5NSBjMzZhYjU0ZjI4IiByZWw9IiI+0JrQsNGA0YLQsCDRgdCw0LnRgtCwPC9hPjwvbGk+PC91bD48L2Rpdj48L2Zvb3Rlcj48aHIgY2xhc3M9ImQzMmEwOWYyMTAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXZrdWktLWNvbG9yLXByaW1hcnktYmFzZSk7aGVpZ2h0OjhweCI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBkYXRhLXJiLXNsb3Q9IjEyNjUyNjciPjwvZGl2PjxkaXYgZGF0YS1yYi1zbG90PSIxMjA2Njk5Ij48L2Rpdj48ZGl2IGRhdGEtcmItc2xvdD0iNzU5MDc3Ij48L2Rpdj48L2Rpdj4KCiAgICAgICAgICAgICAgICAKICAgICAgICA8IS0tIHN0YXJ0OiAvcmIvMjE1MjI/X1NJVEVJRD0yOSAtLT4KICAgICAgICAKPHNjcmlwdD4oZnVuY3Rpb24od2luZG93LCBuYXZpZ2F0b3IsIHVyaSkge2ltcG9ydCh1cmkpLnRoZW4oKGZwKSA9PiB7dHJ5IHtjb25zdCB7aW5pdH0gPSBmcC5maW5nZXJQcmludCgpO2luaXQoKTt9IGNhdGNoIChlKSB7fX0pLmNhdGNoKCgpID0+IHt9KTt9KSh3aW5kb3csIG5hdmlnYXRvciwgJ2h0dHBzOi8vYWQubWFpbC5ydS9zdGF0aWMvc3luYy1sb2FkZXIuanMnKTs8L3NjcmlwdD4KICAgICAgICA8IS0tIGVuZDogL3JiLzIxNTIyIC0tPgogICAgICAKCiAgICAgICAgICAgICAgICAKICAgICAgICA8IS0tIHN0YXJ0OiAvcmIvMjE1MjM/X1NJVEVJRD0yOSAtLT4KICAgICAgICA8c2NyaXB0PiFmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7aWYoZS5hZGRFdmVudExpc3RlbmVyKXt2YXIgbj1lLmRvY3VtZW50LHQ9ZS5sb2NhdGlvbjtlLmNvbXBvbmVudFNsb3RQYXJhbXM9ZS5jb21wb25lbnRTbG90UGFyYW1zfHxbXSxlLl9fc2xvdFBhcmFtcz1lLl9fc2xvdFBhcmFtc3x8W107dmFyIHIsbz1bInBhZ2UiLCJjb3VudCJdLGE9ZnVuY3Rpb24oKXtyZXR1cm4oKGUuVVRNQXBpfHx7fSkuc2l0ZW5hbWV8fHt9KS5iYXNlfHwwfSxpPVN0cmluZy5mcm9tQ2hhckNvZGUscz1bMTAxLDQsMiw0LDAsLTEyXSxjPVsxMDEsNCwyLDQsMCwtNDQsNDEsLTExLDE5LC0yLC0zLDFdLHA9ZnVuY3Rpb24oKXt2YXIgbj17fTtyZXR1cm4gZnVuY3Rpb24odCxyLG8saSl7dmFyIHA9ZS5fX1BIJiZlLl9fUEhbbChzKV18fGVbbChjKV0sdT17cGF0aDoiLyJ9LG09ZnVuY3Rpb24oZSxuKXt2YXIgdD0iIixyPWEoKTtyZXR1cm4gbiYmbi5wYWdlX2lkJiYodD1bZSwiMCIsIjAiLG4ucGFnZV9pZF0uam9pbigiLSIpLG4uc3RhdF9pZCYmKHQ9W3Qsbi5zdGF0X2lkXS5qb2luKCItIikpLHImJih0PVt0LHJdLmpvaW4oIi0iKSkpLHR9KHIsbyk7aWYoIW0pdGhyb3cgbmV3IEVycm9yKCJObyBwYXJhbXMgcHJlc2VudGVkIik7ITA9PT1pPyh1LmV4cGlyZXM9LTEsdD1uW21dKToodS5leHBpcmVzPTEvMTQ0MCo1LG5bbV09dCkscCh0LG0sdSl9fSgpLHU9ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gZnVuY3Rpb24gbih0LHIpe3ZhciBvPXIubGVuZ3RoLGE9ci5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNoYXJDb2RlQXQoMCl9KS5jb25jYXQoRGF0ZS5ub3coKS50b1N0cmluZygpLnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGU9KGU9cGFyc2VJbnQoZSkpKnBhcnNlSW50KDkqTWF0aC5yYW5kb20oKSkrNDUsW1swLDQyXSxbNDUsNDddLFs1OCw2NF0sWzkxLDk0XSxbOTZdXS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciB0PW5bMF0scj1uWzFdfHxuWzBdO2U+PXQmJmU8PXImJihlKz1yLXQrMSl9KSxNYXRoLm1pbihlLDEyMil9KSkuc29ydChmdW5jdGlvbigpe3JldHVybi4zLU1hdGgucmFuZG9tKCl9KS5zbGljZSgwLG98fC0xKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGkoZSl9KS5qb2luKCIiKTtyZXR1cm4gZnVuY3Rpb24obix0LHIpe3ZhciBvLGE9ZVtuXTtyZXR1cm4gYXx8KGVbbl09YT1bcl0pLCEwPT0obz0tMT09PWEuaW5kZXhPZih0KSkmJmEucHVzaCh0KSxvfSh0LGEscil8fChhPW4odCxyKSksYX19KCksbT1be25hbWU6IlNsb3RNb2RlbCIscGFyYW1zOntvcHRpb25zOntocENvbmZpZzp7YmFpdHM6Ii5wLW1pbWljfC5kYXluZXdzIHRhYmxlIHRyIHRkfC5qcy1maXhlZC1wYW5lbCAuYm94X2NvbGxhcHNlfC5kYXluZXdzX19pbm5lciB0Ym9keSB0ciB0ZC5kYXluZXdzX19zcHJpbmd8LmFkdmJsb2NrfCNhZC1zcHV0bmlrfCNpbnRlcm5ldC1vZmZlcnwuYi1hZF90ZXh0fC5iLWNvbnRleHR8LmItZGlyZWN0LWl0ZW18LmItaGVhZF9fYmFubmVyfC5iYW58LmJhbm5lcnwuYnJhbmRpbmctZm9vdGVyfC5kYXluZXdzX19iYW5uZXJ8LmRheW5ld3NfX3NwcmluZ3wuZGlyZWN0fC5nb29kc3wuanMtcGJhbm5lcl9jbnRyfC5sYXlvdXRfX3Byb21vdG9vbGJhcnwubGVmdF9iYW5uZXJ8LnAtbWltaWN8LnBjLWJyYW5kaW5nfC5hZHZ8LmFkdmJsb2NrfC5hZHZlcnRibG9ja3wuYW1tYmxvY2t8LmItYmFubmVyfC5iLW1lZGlhLWJhbm5lcnwuYmFubmVyX2JveHwuZGlyZWN0YWR2ZXJ0LWJsb2NrfC5icmFuZGluZy1wfC5hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei0gLnItc291cmNlIGkgaXwucmJ8LnJiX2Jhbm5lcnwucmItZmxvYXRpbmd8LnJiX2xvYWRlZHwucmJ0b3BibG9ja3wuYm94LnJiX3B3bmR8LnAtYm94LnJiX3B3bmR8LmRpcmVjdGhhY2t8ZGl2QGRhdGEtYWRxLWlkPVwicHduZFwifGRpdkBkYXRhLXZpZXc9XCJTbG90Vmlldy5taW1pY1wifGRpdi50cmctYi1wd25kfC5hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei0gZGl2QGlkPVwidHJnLWItMTIzLTQ1NlwiIGkgaXwuYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXotIGRpdkBpZD1cInlhbmRleF9hZF9SLTEyMy00NTZcIiBpIGl8YUBocmVmPVwiaHR0cHM6Ly9yLm1haWwucnUvXCIiLHNlbGVjdG9yczonaW1nW3NyYyo9ImFkLm1haWwucnUiXSd9fX19LHtuYW1lOiJTbG90Vmlldy5taW1pYyIscGFyYW1zOntvcHRpb25zOnttaW1pYzp7c2V0dXA6e2ZvcmNlOiEwLGJyb2tlcjp7dGltZW91dDozZTQsZ2V0VXJsOmZ1bmN0aW9uKGUsYSxpKXtyfHwocj1BcnJheS5mcm9tKG4uc2NyaXB0cykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnNyY30pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gMD09PWUuaW5kZXhPZih0Lm9yaWdpbikmJihlLmluZGV4T2YoIi9fLyIpPT09dC5vcmlnaW4ubGVuZ3RofHxlLmluZGV4T2YoIi8tLyIpPT09dC5vcmlnaW4ubGVuZ3RoKX0pLERFQlVHJiYocj1bIi8tLzA0N2MzOGZmL2pzL2NtcGxkL3dlYi9fcmVwb3J0LmpzIl0pKSwibWV0YSI9PT1pJiZkZWxldGUgYS5zdGF0X2lkO3ZhciBzPXJbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKnIubGVuZ3RoKV0ucmVwbGFjZSh0Lm9yaWdpbiwiIiksYz1zLnNwbGl0KC9cL3xcLmpzL2dpKSxtPWMuc3BsaWNlKC0xKTtyZXR1cm4gY1syXT11KHMsY1syXSksYz1jLmpvaW4oIi8iKSsiLmpzIixwKGMsZSxhKSxjKz1tLGU9PT1vWzFdJiYoYys9KGMuaW5kZXhPZigiPyIpPi0xPyImIjoiPyIpKyJrZXk9IithLmtleSksY30saGFuZGxlUmVzcG9uc2U6ZnVuY3Rpb24oZSl7ZSYmIm9iamVjdCI9PXR5cGVvZiBlJiZwKG51bGwsZS5tZXRob2QsZS5wYXJhbXMsITApfSx0eXBlOiJqc29ucCJ9fSxzbW9reTp7cHJvcGVydGllc1RvU21va2U6SlNPTi5wYXJzZSgie1wid2lkdGhcIjogXCIyNDBweFwiLFwiaGVpZ2h0XCI6IFwiNDAwcHhcIixcIm1pbkhlaWdodFwiOiBcIjQwMHB4XCJ9IikscmVwbGFjZUVsZW1lbnRzOkpTT04ucGFyc2UoIltcImRheW5ld3NfX3NwcmluZ1wiLFwic3ByaW5nX3NpZGVcIixcImNvbHNfX2NvbHVtbl9uZXdzMjQweDQwMC1zaWRlXCIsXCJjb2xzX19jb2x1bW5fbmV3czI0MHg0MDBcIixcInAtZGlyZWN0aGFja18yNDB4NDAwXCIsXCJ2aWV3Ym94X19zaWRlXCJdIikscmFuZG9tTm9pc2U6e2RlcHRoOiIzIixleGNsdWRlQ2xhc3NlczpKU09OLnBhcnNlKCJbXCJ2aWV3Ym94X19jZWxsXCIsXCJwLXNwcmluZ1wiLFwicC1zcHJpbmdfX2hlYWQtaW5uZXJcIl0iKSxleGNsdWRlVGFnczpKU09OLnBhcnNlKCJbXSIpfX19fX19XTtlLmNvbXBvbmVudFNsb3RQYXJhbXM9ZS5jb21wb25lbnRTbG90UGFyYW1zLmNvbmNhdChtKSxlLl9fc2xvdFBhcmFtcz1bXS5jb25jYXQobSl9ZnVuY3Rpb24gbChlKXtyZXR1cm4gZS5tYXAoZnVuY3Rpb24obix0KXt2YXIgcj0wO3JldHVybiB0PjAmJihyPWUuc2xpY2UoMCx0KS5yZWR1Y2UoZnVuY3Rpb24oZSxuKXtyZXR1cm4gZStufSwwKSksaShuK3IpfSkucmV2ZXJzZSgpLmpvaW4oIiIpfX0od2luZG93KTs8L3NjcmlwdD48c2NyaXB0PiFmdW5jdGlvbihuKXsidXNlIHN0cmljdCI7dmFyIHQ9bi5kb2N1bWVudCxlPW4uc2V0VGltZW91dCxvPW4uY29tcG9uZW50U2xvdFBhcmFtc3x8W10scj0icmItc2xvdF93bGFkYiIsYT0iMTAyIixpPTMwMCxzPVN0cmluZy5mcm9tQ2hhckNvZGUsYz1bMTAxLDQsMiw0LDAsLTEyXSx1PVsxMDEsNCwyLDQsMCwtNDQsNDEsLTExLDE5LC0yLC0zLDFdO2Z1bmN0aW9uIGwobil7cmV0dXJuIG4ubWFwKGZ1bmN0aW9uKHQsZSl7dmFyIG89MDtyZXR1cm4gZT4wJiYobz1uLnNsaWNlKDAsZSkucmVkdWNlKGZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4rdH0sMCkpLHModCtvKX0pLnJldmVyc2UoKS5qb2luKCIiKX1mdW5jdGlvbiBwKHQsZSxvKXt2YXIgcj1uLl9fUEgmJm4uX19QSFtsKGMpXXx8bltsKHUpXTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygcil7dmFyIGE9e3BhdGg6Ii8iLGRvbWFpbjoiLm1haWwucnUifTthLmV4cGlyZXM9ITA9PT1vPy0xOjEscih0LGUsYSl9fXZhciBmPUpTT04ucGFyc2UoIltcIlNsb3RWaWV3Lm1pbWljLjcyMVwiLFwiU2xvdFZpZXcuMzk3NzJcIixcIlNsb3RWaWV3Lm1pbWljLjgxNVwiLFwiU2xvdFZpZXcuODE1XCIsXCJTbG90Vmlldy5taW1pYy45NzA0NVwiLFwiU2xvdFZpZXcubWltaWMuMzg0OFwiLFwiU2xvdFZpZXcuMzQ1Nzk4XCJdIiksbT1KU09OLnBhcnNlKCJbXCJbZGF0YS12aWV3PSdTbG90VmlldyddW2RhdGEtaWQ9JzM4NDgnXVwiXSIpO2Z1bmN0aW9uIGQodCl7dmFyIGUsbz1mdW5jdGlvbigpe3JldHVybiEhKGU9ZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gdC5vZmZzZXRIZWlnaHQ+MiYmZS50b3A+PTAmJmUubGVmdD49MCYmZS50b3A8PW4uaW5uZXJIZWlnaHQmJmUubGVmdDw9bi5pbm5lcldpZHRofSh0KSkmJih0LmNsYXNzTGlzdC5hZGQociksITApfTt0JiYobygpLGV8fF8obyxpKSl9ZnVuY3Rpb24gXyhuLHQpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBuJiYhbigpKXJldHVybiBlKF8uYmluZCh0aGlzLG4pLHQpfWZ1bmN0aW9uIGgobil7dmFyIHQ9dGhpcy5fZWxlbXMucGFyZW50LmdldCgwKTtuJiZkKHQpfWZ1bmN0aW9uIHYobil7cmV0dXJuIG4mJntuYW1lOm4scGFyYW1zOntvcHRpb25zOntfSGFuZGxlcnM6e3JlbmRlcjpofX19fX1mdW5jdGlvbiBTKCl7aWYobi5hYnAmJm4uX19rbm93bkJsb2NrZXIpe2lmKHAoInJld2xvbiIsMSksbi5jb21wb25lbnRTbG90UGFyYW1zLmZvckVhY2gobj0+e24ucGFyYW1zJiZuLnBhcmFtcy5vcHRpb25zJiYobi5wYXJhbXMub3B0aW9ucy5taW1pYz1udWxsKX0pLGYubGVuZ3RoKXt2YXIgZT17bmFtZToiU2xvdFZpZXciLHBhcmFtczp7b3B0aW9uczp7c2xvdDp7ZXhwX2lkOmEsZDoxLHJlcHJpZXZlX29uOjF9fX19LHI9Zi5tYXAodik7by5wdXNoKGUpLG4uY29tcG9uZW50U2xvdFBhcmFtcz1vLmNvbmNhdChyKSxuLl9fc2xvdFBhcmFtcz1bXS5jb25jYXQobi5jb21wb25lbnRTbG90UGFyYW1zKX1tLmxlbmd0aCYmdC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe3ZhciBuLGU7bj1tLmpvaW4oIiwiKSwoZT10LnF1ZXJ5U2VsZWN0b3JBbGwobikpLmxlbmd0aCYmZS5mb3JFYWNoKGQpfSl9ZWxzZSBwKCJyZXdsb24iLDAsITApfWZ1bmN0aW9uIGcoKXtyZXR1cm4hKCFuLmhhc093blByb3BlcnR5KCJhYnAiKXx8IW4uaGFzT3duUHJvcGVydHkoIl9fa25vd25CbG9ja2VyIil8fCJsb2FkaW5nIiE9PXQucmVhZHlTdGF0ZSkmJihTKCksITApfWcoKXx8XyhnLDUwKX0od2luZG93KTs8L3NjcmlwdD48c3R5bGU+LnJiLXNsb3Rfd2xhZGJbZGF0YS1pZD0iMzQ1Nzk4Il0gLndyYXBwZXIsLnJiLXNsb3Rfd2xhZGIge3Bvc2l0aW9uOiByZWxhdGl2ZTt9LnJiLXNsb3Rfd2xhZGJbZGF0YS1pZD0iMzQ1Nzk4Il0gLndyYXBwZXI6OmJlZm9yZSwucmItc2xvdF93bGFkYjo6YmVmb3JlIHtjb250ZW50OiAn0KDQtdC60LvQsNC80LAnO3otaW5kZXg6IDEzOTk7cG9zaXRpb246IGFic29sdXRlO2JhY2tncm91bmQ6ICMwMDA7cGFkZGluZzogMHB4IDZweDtvcGFjaXR5OiAwLjU7Y29sb3I6ICNmZmY7Zm9udC1zaXplOiA5cHg7bGluZS1oZWlnaHQ6IDE0cHg7cmlnaHQ6IDFweDt0b3A6IDFweDt9LnJiLXNsb3Rfd2xhZGJbZGF0YS1pZD0iMzQ1Nzk4Il06OmJlZm9yZSB7ZGlzcGxheTogbm9uZTt9LnJiLXNsb3Rfd2xhZGJbZGF0YS1pZD0iMzQ1Nzk4Il0gLndyYXBwZXI6OmJlZm9yZSB7cmlnaHQ6IDIwcHg7fTwvc3R5bGU+PHNjcmlwdD4oZnVuY3Rpb24gKHdpbmRvdykgeyd1c2Ugc3RyaWN0Jzt3aW5kb3cuY29tcG9uZW50U2xvdFBhcmFtcy5wdXNoKHtuYW1lOiAnU2xvdFZpZXcuQ29udGVudHJvbGwnLHBhcmFtczoge29wdGlvbnM6IHtjb250ZW50UHJvbWlzZTogZnVuY3Rpb24gKCkge3JldHVybiBQcm9taXNlLnJlamVjdCgpO319fX0pO30pKHdpbmRvdyk7PC9zY3JpcHQ+PHNjcmlwdD4oZnVuY3Rpb24gKHdpbmRvdykgeyd1c2Ugc3RyaWN0Jzt3aW5kb3cuY29tcG9uZW50U2xvdFBhcmFtcyA9IHdpbmRvdy5jb21wb25lbnRTbG90UGFyYW1zIHx8IFtdO2lmICghaXNOYU4od2luZG93LlBIX1ZrRWNvc3lzdGVtUHJvbW8pKSB7d2luZG93LmNvbXBvbmVudFNsb3RQYXJhbXMucHVzaCh7bmFtZTogJ1Nsb3RWaWV3JyxwYXJhbXM6IHtvcHRpb25zOiB7c2xvdDoge1BIX1ZrRWNvc3lzdGVtUHJvbW86IHdpbmRvdy5QSF9Wa0Vjb3N5c3RlbVByb21vfX19fSk7fX0pKHdpbmRvdyk7PC9zY3JpcHQ+CiAgICAgICAgPCEtLSBlbmQ6IC9yYi8yMTUyMyAtLT4KICAgICAgCgogICAgICAgICAgICAgICAgCiAgICAgICAgPCEtLSBzdGFydDogL3JiLzk0Njg0OD9pc19jb21tZXJjaWFsPTAmYnJhbmRzYWZldHk9MCZtZWRpYV9zdGF0X2NhdGVnb3J5PTUmc2l0ZXpvbmU9NyZlbnRpdHlfaWQ9NjExNjU0OTUmZW50aXR5X3R5cGU9YXJ0aWNsZSZlbnRpdHlfY29udGVudF9zdWJ0eXBlPW91dGVyX25ld3MmcHJvamVjdF91dWlkPTI3MDBjMTY3LWViMjUtZmM2Mi1mMmJiLTk2OTRmYzI1MGFhYSZ2ZXJzaW9uPWRlc2t0b3AgLS0+CiAgICAgICAgCgoKCgoKCgoKCgkKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo8c2NyaXB0PgooZnVuY3Rpb24gKHdpbmRvdykgewogJ3VzZSBzdHJpY3QnOwoKICB3aW5kb3cuY29tcG9uZW50U2xvdFBhcmFtcyA9IHdpbmRvdy5jb21wb25lbnRTbG90UGFyYW1zIHx8IFtdOwogIHdpbmRvdy5fX3Nsb3RQYXJhbXMgPSB3aW5kb3cuX19zbG90UGFyYW1zIHx8IFtdOwoKICB2YXIgdXNlRGFya1RoZW1lID0gZnVuY3Rpb24gKCkgewogIAlyZXR1cm4gdHlwZW9mIHdpbmRvdy5tYXRjaE1lZGlhID09PSAnZnVuY3Rpb24nICYmIHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJykubWF0Y2hlczsKICB9OwoKICB2YXIgcGFyYW1zID0gewogICBuYW1lOiAnU2xvdFZpZXcnLAogICBwYXJhbXM6IHsKICAgIG9wdGlvbnM6IHsKICAgICBzbG90OiB7CiAgICAgIHJlZmVycmVyOiB3aW5kb3cuZG9jdW1lbnQucmVmZXJyZXIKICAgICAgCiAgICAgIAogICAgICAKICAgICAgCiAgICAgfQogICAgfQogICB9CiAgfTsKCiAgd2luZG93LmNvbXBvbmVudFNsb3RQYXJhbXMgPSB3aW5kb3cuY29tcG9uZW50U2xvdFBhcmFtcy5jb25jYXQocGFyYW1zKTsKICB3aW5kb3cuX19zbG90UGFyYW1zID0gd2luZG93Ll9fc2xvdFBhcmFtcy5jb25jYXQocGFyYW1zKTsKCn0pKHdpbmRvdyk7Cjwvc2NyaXB0PgoKPHNjcmlwdD4KIWZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT0vKF5cLyl8KGh0dHBzPyk6XC9cLyg/IShbcnRlXVwubWFpbFwucnUpKShbXHctLl0rKT8oXC5kZXZtYWlsXC5ydXxcLm1haWxcLnJ1fHNwb3J0bWFpbFwucnUpLyxuPXtjdXJyZW50UGFnZVVUTToiIixjdXJyZW50UGFnZUV4cElkOiIiLGNoZWNrZWRMaW5rczpbXX0scj1mdW5jdGlvbihlKXt2YXIgbj10LmxvY2F0aW9uLnNlYXJjaC5tYXRjaChlKTtyZXR1cm4gbiYmblsxXXx8bnVsbH0saT1mdW5jdGlvbih0KXtyZXR1cm4gZS50ZXN0KHQpfSxvPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBVUkwoZnVuY3Rpb24odCl7aWYoMCE9PXQuaW5kZXhPZigiaHR0cCIpKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7cmV0dXJuIGUuaHJlZj10LGUuaHJlZn1yZXR1cm4gdH0odCkpO3JldHVybiBlLnNlYXJjaFBhcmFtcy5zZXQoInV0bV9wYXJ0bmVyX2lkIixuLmN1cnJlbnRQYWdlVVRNKSxlLmhyZWZ9LGE9ZnVuY3Rpb24odCl7LTE9PT1uLmNoZWNrZWRMaW5rcy5pbmRleE9mKHQpJiYoIWZ1bmN0aW9uKHQpe3ZhciBlPXQmJnQuaHJlZjtlJiZpKGUpJiYodC5ocmVmPW8oZSkpfSh0KSxuLmNoZWNrZWRMaW5rcy5wdXNoKHQpKX0sYz1mdW5jdGlvbihlLG4pe3ZhciByPSJvYmplY3QiPT10eXBlb2YgZT9lOnQuZG9jdW1lbnQsYT1ufHwiZGF0YS1ocmVmIixjPXIucXVlcnlTZWxlY3RvckFsbCgiWyIrYSsiXSIpO0FycmF5LmZyb20oYykuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT10LmdldEF0dHJpYnV0ZShhKTtpKGUpJiZ0LnNldEF0dHJpYnV0ZShhLG8oZSkpfSl9LHM9ZnVuY3Rpb24oZSl7aWYobi5jdXJyZW50UGFnZVVUTSl7dmFyIHI9KCJvYmplY3QiPT10eXBlb2YgZT9lOnQuZG9jdW1lbnQpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhIik7QXJyYXkuZnJvbShyKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2EodCl9KX19LHU9ZnVuY3Rpb24odCl7dmFyIGU9dC50YXJnZXQ7aWYoIkEiPT09ZS50YWdOYW1lJiZpKGUuaHJlZikpe3ZhciBuPW8oZS5ocmVmKTtuIT09ZS5ocmVmJiYoZS5ocmVmPW4pfX07bi5jdXJyZW50UGFnZVVUTT1yKC91dG1fcGFydG5lcl9pZD0oW15ccyZdKykvKXx8bi5jdXJyZW50UGFnZVVUTSxuLmN1cnJlbnRQYWdlRXhwSWQ9cigvZXhwX2lkPShbXlxzJl0rKS8pfHxyKC9jcj0oW15ccyZdKykvKXx8bi5jdXJyZW50UGFnZUV4cElkLG4uY3VycmVudFBhZ2VVVE0mJih0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix1KSx0LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51Iix1KSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24odCl7Mj09PXQud2hpY2gmJnUodCl9KSx0LnByb21pc2lmaWVkRG9tRXZlbnRzJiYodC5wcm9taXNpZmllZERvbUV2ZW50cy5yZWFkeS50aGVuKHMpLnRoZW4oYyksdC5wcm9taXNpZmllZERvbUV2ZW50cy5sb2FkZWQudGhlbihmdW5jdGlvbigpe3RyeXt0LnJ1Lm1haWwuY3BmLlRvb2xzLlB1YlN1Yi5zdWJzY3JpYmUoImFkcVNsb3RBZGRlZCIsZnVuY3Rpb24oKXtzKCl9LHttZW1vcnk6ITB9KX1jYXRjaCh0KXt9fSkpKSx0LlVUTUFwaT17cmVwbGFjZUFsbExpbmtzOnMsbGlua1JlcGxhY2VyOmEscmVwbGFjZURhdGFMaW5rczpjLHVybFJlcGxhY2VyOmZ1bmN0aW9uKHQpe3JldHVybiBuLmN1cnJlbnRQYWdlVVRNJiZ0JiZpKHQpP28odCk6dH0sY2hlY2tEb21haW46aSxjdXJyZW50UGFnZVVUTTpuLmN1cnJlbnRQYWdlVVRNLGN1cnJlbnRQYWdlRXhwSWQ6bi5jdXJyZW50UGFnZUV4cElkfX0od2luZG93KSxmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10LmFicCYmdC5fX2tub3duQmxvY2tlcixyPUpTT04ucGFyc2UoIntcIm90aGVyXCI6IFwiMDBcIiwgXCIyNDB4NDAwXCI6IFwiMDFcIiwgXCIyNDB4NDAwXzJcIjogXCIwMlwiLCBcIjI0MHg0MDBfb3ZlcmxheVwiOiBcIjAzXCIsIFwiMTAweDIwMFwiOiBcIjA0XCIsIFwiMTAweDI1MFwiOiBcIjA1XCIsIFwiY29udGV4dFZlcnRpY2FsXCI6IFwiMDZcIiwgXCJjb250ZXh0Qm90dG9tXCI6IFwiMDdcIiwgXCJmdWxsc2NyZWVuXCI6IFwiMDhcIiwgXCJ0Z2IxXCI6IFwiMDlcIiwgXCJ0Z2IyXCI6IFwiMTBcIiwgXCJzY3JvbGwyc2l0ZVwiOiBcIjExXCIsIFwidmlkZW9UYXBlXCI6IFwiMTJcIiwgXCJtZWRpYUJhbm5lclwiOiBcIjEzXCIsIFwiYXJ0aWNsZUNvbnRlbnRSb2xsMVwiOiBcIjE0XCIsIFwiYXJ0aWNsZUNvbnRlbnRSb2xsMlwiOiBcIjE1XCIsIFwiY29udGV4dEluTGlzdGluZ1wiOiBcIjE2XCIsIFwiVmlxZW9FbWJlZFNsb3RcIjogXCIxN1wiLCBcImNvbnRleHRTaWRlYmFyXCI6IFwiMThcIiwgXCJBcnRpY2xlQ29udGVudF9hbGlnYXRlXCI6IFwiMTlcIiwgXCJhcnRpY2xlQ29udGVudFJvbGwzXCI6IFwiMjBcIiwgXCJhcnRpY2xlQ29udGVudFJvbGw0XCI6IFwiMjFcIiwgXCJUcmVuZFZpZGVvQXJ0aWNsZVwiOiBcIjIyXCIsIFwiVHJlbmRWaWRlb1VuZGVyQXJ0aWNsZVwiOiBcIjIzXCIsIFwiVHJlbmRWaWRlb1JpZ2h0XCI6IFwiMjRcIiwgXCJwb2dvZGFfXzMwMHgzMDBfMlwiOiBcIjk1XCIsIFwicG9nb2RhX18zMDB4MzAwXCI6IFwiOTZcIiwgXCJuZXdzX19FeHBlcmltZW50Q29udGVudFJvbGxcIjogXCI5N1wiLCBcImh0X19UZ2JDdXN0b21cIjogXCI5OFwiLCBcImtpbm9fX1RnYkN1c3RvbVwiOiBcIjk5XCJ9IiksaT1KU09OLnBhcnNlKCJ7XCJvdGhlclwiOiBcIjAwXCIsIFwiaW5kZXhcIjogXCIwMVwiLCBcInNlYXJjaFwiOiBcIjAyXCIsIFwiYXJ0aWNsZV9fc29jaWFsX2NvbW1lcmNlXCI6IFwiMTFcIiwgXCJhcnRpY2xlX19jb21tZXJjaWFsX3Byb21vXCI6IFwiMTJcIiwgXCJhcnRpY2xlX190ZXN0XCI6IFwiMTNcIiwgXCJhcnRpY2xlX19vdXRlcl9uZXdzXCI6IFwiMTRcIiwgXCJhcnRpY2xlX19pbm5lcl9uZXdzXCI6IFwiMTVcIiwgXCJhcnRpY2xlX19pbm5lcl9hcnRpY2xlXCI6IFwiMTZcIiwgXCJhcnRpY2xlX19vdXRlcl9hcnRpY2xlXCI6IFwiMTdcIiwgXCJhcnRpY2xlX19zcGVjaWZpY1wiOiBcIjE4XCIsIFwiYXJ0aWNsZV9fb3RoZXJcIjogXCIxOVwiLCBcImFydGljbGVfZ2FsbGVyeV9fc29jaWFsX2NvbW1lcmNlXCI6IFwiMjFcIiwgXCJhcnRpY2xlX2dhbGxlcnlfX2NvbW1lcmNpYWxfcHJvbW9cIjogXCIyMlwiLCBcImFydGljbGVfZ2FsbGVyeV9fdGVzdFwiOiBcIjIzXCIsIFwiYXJ0aWNsZV9nYWxsZXJ5X19vdXRlcl9uZXdzXCI6IFwiMjRcIiwgXCJhcnRpY2xlX2dhbGxlcnlfX2lubmVyX25ld3NcIjogXCIyNVwiLCBcImFydGljbGVfZ2FsbGVyeV9faW5uZXJfYXJ0aWNsZVwiOiBcIjI2XCIsIFwiYXJ0aWNsZV9nYWxsZXJ5X19vdXRlcl9hcnRpY2xlXCI6IFwiMjdcIiwgXCJhcnRpY2xlX2dhbGxlcnlfX3NwZWNpZmljXCI6IFwiMjhcIiwgXCJhcnRpY2xlX2dhbGxlcnlfX290aGVyXCI6IFwiMjlcIiwgXCJkaWFmaWxtX19jb21tZXJjaWFsX3Byb21vXCI6IFwiMzFcIiwgXCJkaWFmaWxtX19vdXRlcl9hcnRpY2xlXCI6IFwiMzJcIiwgXCJkaWFmaWxtX19vdGhlclwiOiBcIjMzXCIsIFwiY2FyZF9fY29tbWVyY2lhbF9wcm9tb1wiOiBcIjM1XCIsIFwiY2FyZF9fb3RoZXJcIjogXCIzNlwiLCBcImNvbGxlY3Rpb25fX2NvbW1lcmNpYWxfcHJvbW9cIjogXCIzOFwiLCBcImNvbGxlY3Rpb25fX290aGVyXCI6IFwiMzlcIiwgXCJzZWxlY3Rpb25fX290aGVyXCI6IFwiNDFcIiwgXCJzZWxlY3Rpb25fX2NvbW1lcmNpYWxfcHJvbW9cIjogXCI0MlwiLCBcImRydWdfX2NvbW1lcmNpYWxfcHJvbW9cIjogXCI0NFwiLCBcImRydWdfX290aGVyXCI6IFwiNDVcIiwgXCJ0aW1lbGluZV9fY29tbWVyY2lhbF9wcm9tb1wiOiBcIjQ3XCIsIFwidGltZWxpbmVfX290aGVyXCI6IFwiNDhcIiwgXCJjYXRhbG9nXCI6IFwiNTBcIiwgXCJmb3J1bVwiOiBcIjUxXCIsIFwiZnVlbFwiOiBcIjUyXCIsIFwiaW5mb1wiOiBcIjUzXCIsIFwibWVkaWFcIjogXCI1NFwiLCBcInJldmlld3NcIjogXCI1NVwiLCBcImRpc2Vhc2VcIjogXCI1N1wiLCBcImRydWdcIjogXCI1OFwiLCBcImNvbnN1bHRhdGlvblwiOiBcIjU5XCIsIFwiZG9jdG9yXCI6IFwiNjBcIiwgXCJ0ZWxlbWVkaWNpbmVcIjogXCI2MVwiLCBcImNvbnRhY3RzXCI6IFwiNjJcIiwgXCJlbWlhc1wiOiBcIjYzXCIsIFwic3ltcHRvbXNcIjogXCI2NFwiLCBcInJldmlld1wiOiBcIjY2XCIsIFwiY2F0ZWdvcnlcIjogXCI2N1wiLCBcImNyeXB0b1wiOiBcIjY4XCIsIFwiZ2FkZ2V0XCI6IFwiNjlcIiwgXCJhd2FyZHNcIjogXCI3MVwiLCBcImNpbmVtYVwiOiBcIjcyXCIsIFwicGVyc29uXCI6IFwiNzNcIiwgXCJzZXJpZXNcIjogXCI3NFwiLCBcInN0YXJzXCI6IFwiNzVcIiwgXCJ0dl9tYWlsX3J1XCI6IFwiNzZcIiwgXCJoaV9jaGVmX3J1XCI6IFwiNzhcIiwgXCJob3JvX21haWxfcnVcIjogXCI3OVwiLCBcInJlY2lwZVwiOiBcIjgwXCIsIFwiY3VycmVuY3lcIjogXCI4MlwiLCBcInN0b3J5XCI6IFwiODNcIiwgXCJtYXRjaFwiOiBcIjg2XCIsIFwiY2hpbGRcIjogXCI5MFwifSIpLG89e3NpdGVuYW1lQmFzZToiMDAwMDAwMDAwIixwYXJhbXM6e2V4cF9pZDpudWxsLHBsYXRmb3JtOm51bGwscHJvamVjdDpudWxsLHBhZ2U6bnVsbCxibG9jazpudWxsfX0sYT17d293c2FsZTpudWxsLGhpY2hlZjpudWxsLHBldHM6MCxhdXRvOjEsa2lubzoyLHR2OjIsaGVhbHRoOjMsZGV0aTo0LGxhZHk6NCxob3JvOjQscmVhbHR5OjQsaGl0ZWNoOjUsbmV3czo2LHZmb2t1c2U6NixzcG9ydG1haWw6NyxmaW5odWI6OCxwb2dvZGE6OX0sYz0odCxlKT0+e3ZhciBuPSIwMDAwMDAwMDAiKyhOdW1iZXIodCl8fDApLnRvU3RyaW5nKCk7cmV0dXJuIG4uc2xpY2Uobi5sZW5ndGgtZSxuLmxlbmd0aCl9LHM9bj83OiIzIix1PWZ1bmN0aW9uKCl7dmFyIGU9dC5sb2NhdGlvbixuPWUuaG9zdG5hbWUucmVwbGFjZSgvLXxcLi9nLCJfIik7cmV0dXJuIGkuaGFzT3duUHJvcGVydHkobikmJm58fGUucGF0aG5hbWUuc3BsaXQoIi8iKVsxXS5zdWJzdHJpbmcoMCw2Myl8fCJpbmRleCJ9LHA9ZnVuY3Rpb24odCxuLHIpe3ZhciBwPXtleHBfaWQ6ZS5jdXJyZW50UGFnZVVUTXx8ZS5jdXJyZW50UGFnZUV4cElkLHBsYXRmb3JtOnMscHJvamVjdDphWyJuZXdzIl0scGFnZTpmdW5jdGlvbih0LGUsbil7dmFyIHI9W107cmV0dXJuIm90aGVyIiE9PXQ/ci5wdXNoKHQpOnIucHVzaChlKSwib3RoZXIiIT09biYmci5wdXNoKG4pLGlbci5qb2luKCJfXyIpXX0odHx8ImFydGljbGUiLG58fHUoKSxyfHwib3V0ZXJfbmV3cyIpfTtyZXR1cm4gby5wYXJhbXM9cCxvLnNpdGVuYW1lQmFzZT1bYyhwLmV4cF9pZCwzKSxjKHAucGxhdGZvcm0sMSksYyhwLnByb2plY3QsMSksYyhwLnBhZ2UsMiksYyhudWxsLDIpXS5qb2luKCIiKSxvLnNpdGVuYW1lQmFzZX0sbD1mdW5jdGlvbih0KXtyZXR1cm4gYyh0JiZyW3RdfHxudWxsLDIpfTtwKCksZS5zaXRlbmFtZT17YmFzZTpvLnNpdGVuYW1lQmFzZSx1cGRhdGVTaXRlbmFtZTpwLGdldEVudGl0eVNlY3Rpb246dSxnZXRCbG9ja1NpdGVuYW1lOmZ1bmN0aW9uKHQpe3ZhciBlPW8ucGFyYW1zO3JldHVybltjKGUuZXhwX2lkLDMpLGMoZS5wbGF0Zm9ybSwxKSxjKGUucHJvamVjdCwxKSxjKGUucGFnZSwyKSxsKHQpXS5qb2luKCIiKX0sZ2V0QmxvY2tLZXk6bCxzdHJpbmdFbmNvZGU6Y319KHdpbmRvdyxVVE1BcGkpLGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3ZhciBuPSJuZXdzIixyPSIzIixpPUpTT04ucGFyc2UoJ1siVHJlbmRWaWRlb0FydGljbGUiXScpLG89SlNPTi5wYXJzZSgie1wiZGVmYXVsdFwiOiBcIlwiLCBcIjI0MHg0MDBcIjogXCJTbG90Vmlldy5taW1pYy43MjEuVGFyZ2V0XCIsIFwiMjQweDQwMF9vdmVybGF5XCI6IFwiU2xvdFZpZXcubWltaWMuMzQwNTMwLkdhbGxlcnlBZHZlcnQsU2xvdFZpZXcubWltaWMuOTg2NFwiLCBcIjEwMHgyMDBcIjogXCJTbG90Vmlldy5taW1pYy44MTUuVGFyZ2V0XCIsIFwiMTAweDI1MFwiOiBcIlNsb3RWaWV3LjM2MzU5LFNsb3RWaWV3LjM5NzcyXCIsIFwiY29udGV4dEJvdHRvbVwiOiBcIlNsb3RWaWV3Lm1pbWljLjM4NDhcIiwgXCJmdWxsc2NyZWVuXCI6IFwiU2xvdFZpZXcuRnVsbHNjcmVlblwiLCBcInRnYjFcIjogXCJTbG90Vmlldy50b3BUR0IuNDQxOTI0LFNsb3RWaWV3Ljg1NThcIiwgXCJ0Z2IyXCI6IFwiU2xvdFZpZXcubWlkZGxlVEdCLjQ0MTkzNVwiLCBcInNjcm9sbDJzaXRlXCI6IFwiU2xvdFZpZXcuNzMyNjEwXCIsIFwidmlkZW9UYXBlXCI6IFwiU2xvdFZpZXcuMzQ1Nzk4XCIsIFwibWVkaWFCYW5uZXJcIjogXCJTbG90Vmlldy5taW1pYy41OTI0XCIsIFwiYXJ0aWNsZUNvbnRlbnRSb2xsMVwiOiBcIlNsb3RWaWV3LkNvbnRlbnRyb2xsLjU1NjIsU2xvdFZpZXcuQ29udGVudHJvbGwuSW5mb3RhaW5tZW50TmV3cy41NTYyLFNsb3RWaWV3LkNvbnRlbnRyb2xsLjEwMTc5OSxTbG90Vmlldy5Db250ZW50cm9sbC5JbmZvdGFpbm1lbnROZXdzLjEwMTc5OVwiLCBcImFydGljbGVDb250ZW50Um9sbDJcIjogXCJTbG90Vmlldy5Db250ZW50cm9sbC42MjQ1MDYsU2xvdFZpZXcuQ29udGVudHJvbGwuSW5mb3RhaW5tZW50TmV3cy42MjQ1MDYsU2xvdFZpZXcuQ29udGVudHJvbGwuNjI0ODM2LFNsb3RWaWV3LkNvbnRlbnRyb2xsLkluZm90YWlubWVudE5ld3MuNjI0ODM2XCIsIFwiYXJ0aWNsZUNvbnRlbnRSb2xsM1wiOiBcIlNsb3RWaWV3LkNvbnRlbnRyb2xsLjk2NTMyOSxTbG90Vmlldy5Db250ZW50cm9sbC5JbmZvdGFpbm1lbnROZXdzLjk2NTMyOSxTbG90Vmlldy5Db250ZW50cm9sbC45NjQ4ODEsU2xvdFZpZXcuQ29udGVudHJvbGwuSW5mb3RhaW5tZW50TmV3cy45NjQ4ODFcIiwgXCJhcnRpY2xlQ29udGVudFJvbGw0XCI6IFwiU2xvdFZpZXcuQ29udGVudHJvbGwuMTI1OTAzNCxTbG90Vmlldy5Db250ZW50cm9sbC5JbmZvdGFpbm1lbnROZXdzLjEyNTkwMzRcIiwgXCJyZWxhcFwiOiBcIlNsb3RWaWV3LjYwMjY2NSxTbG90Vmlldy42MTAwMzlcIiwgXCJwYXJhbGxheFwiOiBcIlNsb3RWaWV3LjY0NjBcIiwgXCJuYXRcIjogXCJTbG90Vmlldy43MTYsU2xvdFZpZXcuMTIyMjRcIiwgXCJwYXJ0bmVyTmV3c1wiOiBcIlNsb3RWaWV3LlJiMTAwXCIsIFwiYXJ0aWNsZU5BVEFubm91bmNlXCI6IFwiU2xvdFZpZXcuMTAyODIxLFNsb3RWaWV3LjEwMjgyNyxTbG90Vmlldy4zNzUwODFcIiwgXCJhcnRpY2xlTkFUQm90dG9tXCI6IFwiU2xvdFZpZXcuMTAyODI0LFNsb3RWaWV3LjEwMjgyOCxTbG90Vmlldy4zNzUwODJcIiwgXCJhcnRpY2xlR2FsbGVyeUxhc3RCYW5uZXJcIjogXCJTbG90Vmlldy41ODY5MDIsU2xvdFZpZXcuNTcwMDMyXCIsIFwibWVkaWFFeGNoYW5nZVwiOiBcIlNsb3RWaWV3LjY1NTFcIiwgXCJhcHBsaWNhdGlvbnNcIjogXCJTbG90Vmlldy42MzI3XCIsIFwiYnJhbmRpbmdGb290ZXJcIjogXCJTbG90Vmlldy4xNTI0MDksU2xvdFZpZXcuMjM1Mjk2XCIsIFwicHJvbW9ibG9ja1wiOiBcIlNsb3RWaWV3Ljc1OTA3N1wiLCBcImNvbnRleHRTaWRlYmFyXCI6IFwiU2xvdFZpZXcubWltaWMuOTcwNDUuVGFyZ2V0XCIsIFwibmV3c19fYnJhbmRzYWZldHlDb3VudGVyXCI6IFwiU2xvdFZpZXcuOTg3MzA0XCIsIFwibmV3c19fRGV2Q29uZmlnQW5kQ291bnRlcnNcIjogXCJTbG90Vmlldy45NDk2ODUsU2xvdFZpZXcuMjgyOTksU2xvdFZpZXcuNzQxNjc2LFNsb3RWaWV3Ljk1Mjk4NCxTbG90Vmlldy45MjgxNDYsU2xvdFZpZXcuOTE4ODgwLFNsb3RWaWV3Ljk1MzE4NyxTbG90Vmlldy45NzM0NDQsU2xvdFZpZXcuNzc4NDI5LFNsb3RWaWV3LjkxNTk0MyxTbG90Vmlldy45MTU5NDQsU2xvdFZpZXcuMzc3ODM1XCIsIFwibmV3c19fRXhwZXJpbWVudENvbnRlbnRSb2xsXCI6IFwiU2xvdFZpZXcuOTY0ODgxLFNsb3RWaWV3Ljk2NTMyOVwiLCBcIm5ld3NfX01haWxsaXN0QW5ub3VuY2VcIjogXCJTbG90Vmlldy44MzM4NjhcIiwgXCJuZXdzX190Z2JMZWdhY3lcIjogXCJTbG90Vmlldy4xMjY0NlwiLCBcIm5ld3NfX3Bvc2l0aXZlTmV3c1wiOiBcIlNsb3RWaWV3Ljc0MTY3NVwiLCBcIm5ld3NfX3BhcnRuZXJQaG90b1NvdXJjZVwiOiBcIlNsb3RWaWV3LjM1MDBcIiwgXCJuZXdzX19iYmNCYWRnZVwiOiBcIlNsb3RWaWV3LjYxOTdcIiwgXCJuZXdzX2xlZmFjeU15d2lkZ2V0XCI6IFwiU2xvdFZpZXcuMTg1NDg3XCJ9Iik7dC5jb21wb25lbnRTbG90UGFyYW1zPXQuY29tcG9uZW50U2xvdFBhcmFtc3x8W10sdC5fX3Nsb3RQYXJhbXM9dC5fX3Nsb3RQYXJhbXN8fFtdO3ZhciBhLGMscz0vZGV2bWFpbFwucnUkLy50ZXN0KHQubG9jYXRpb24uaG9zdG5hbWUpLHU9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKk1hdGgucG93KDEwLDE2KSkudG9TdHJpbmcoKX0scD17cHJvZHVjdDpuLHBsYXRmb3JtOnIsc2Vzc2lvbl9pZDooYz10LnNlc3Npb25TdG9yYWdlLGMmJiJmdW5jdGlvbiI9PXR5cGVvZiBjLnNldEl0ZW0mJiJmdW5jdGlvbiI9PXR5cGVvZiBjLmdldEl0ZW0/KGE9Yy5nZXRJdGVtKCJwcm9qZWN0X3Nlc3Npb25faWQiKSl8fChhPXUoKSxjLnNldEl0ZW0oInByb2plY3Rfc2Vzc2lvbl9pZCIsYSkpOmE9Im5vU2Vzc2lvblN0b3JhZ2UiLGEpLHBhZ2Vfdmlld19pZDp1KCkscmVmZXJyZXI6dC5kb2N1bWVudC5yZWZlcnJlcix1cmw6dC5sb2NhdGlvbi5ocmVmLHNpdGVuYW1lOm51bGwsc2VhcmNoOnQubG9jYXRpb24uc2VhcmNoLHV0bV9wYXJ0bmVyX2lkOmUuY3VycmVudFBhZ2VVVE0sZXhwX2lkOmUuY3VycmVudFBhZ2VFeHBJZCxlbnRpdHlfdHlwZToiYXJ0aWNsZSIsZW50aXR5X2NvbnRlbnRfc3VidHlwZToib3V0ZXJfbmV3cyIsZW50aXR5X3NlY3Rpb246ZS5zaXRlbmFtZS5nZXRFbnRpdHlTZWN0aW9uKCksZW50aXR5X2lkOiI2MTE2NTQ5NSIsYnJhbmRzYWZldHk6IjAiLHJiX3NlZ21lbnQ6IjY2LTcwIn07dC54cmF5T3B0aW9ucz17Z2xvYmFsOnt2ZXJib3NlOiEwLHhyYXlSYWRhclVybDoiIixyYWRhclByZWZpeDpzPyJkZXYiOm51bGwsZGVmYXVsdFBhcmFtczp7cDpuLGVtYWlsOiIifX0sZHdoTG9nZ2VyOntvcHRpb25zOnAsdXBkYXRlTG9nZ2VyT3B0aW9uczpmdW5jdGlvbih0KXsib2JqZWN0Ij09dHlwZW9mIHQmJk9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7cC5oYXNPd25Qcm9wZXJ0eShlKSYmKHBbZV09dFtlXSl9KX19fTt2YXIgbCxtLGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/dC5yZXBsYWNlKC9ccysvZywiIikuc3BsaXQoIiwiKTpbXX0sZj1be25hbWU6IlNsb3RWaWV3IixwYXJhbXM6e29wdGlvbnM6e3Nsb3Q6KGw9ZS5jdXJyZW50UGFnZVVUTXx8ZS5jdXJyZW50UGFnZUV4cElkLG09e30sbCYmKG0uZXhwX2lkPWwsbS50ZXN0X2lkPWwpLG0pfX19XTtPYmplY3Qua2V5cyhvKS5tYXAoZnVuY3Rpb24odCl7dmFyIGU9b1t0XSxuPWUmJmUubGVuZ3RoP2Qob1t0XSk6W107bi5sZW5ndGgmJm4uZm9yRWFjaChmdW5jdGlvbihlKXtmLnB1c2goe25hbWU6ZSxwYXJhbXM6e29wdGlvbnM6e2R3aExvZ2dlcjp7ZWxlbWVudF90eXBlOnR9fX19KX0pfSksdC5jb21wb25lbnRTbG90UGFyYW1zPXQuY29tcG9uZW50U2xvdFBhcmFtcy5jb25jYXQoZiksdC5fX3Nsb3RQYXJhbXM9dC5fX3Nsb3RQYXJhbXMuY29uY2F0KGYpO3ZhciB5LF8saCxnLHYsUD17ZXhwX2lkOmUuY3VycmVudFBhZ2VVVE18fGUuY3VycmVudFBhZ2VFeHBJZCxwbGF0Zm9ybTpyLHByb2plY3Q6bixlbnRpdHlfdHlwZToiYXJ0aWNsZSIsZW50aXR5X3R5cGVfaWQ6MCxlbnRpdHlfaWQ6IjYxMTY1NDk1IixlbnRpdHlfc2VjdGlvbjplLnNpdGVuYW1lLmdldEVudGl0eVNlY3Rpb24oKSxlbnRpdHlfY29udGVudF9zdWJ0eXBlOiJvdXRlcl9uZXdzIixibG9jazoiMDAifTt0cnl7dmFyIGI9ZnVuY3Rpb24odCxuLHIpe3ZhciBpPVtdO3JldHVybiByLm1hcChmdW5jdGlvbih0LHIpe3ZhciBvPW5bcl0sYT1kKG8udmlld3MpO2EmJmEubGVuZ3RoJiZhLmZvckVhY2goZnVuY3Rpb24obil7aS5wdXNoKGZ1bmN0aW9uKHQsbixyKXt2YXIgaT1lLmlzQ3ljbGVTaXRlbmFtZT9uLmN5Y2xlX2lkOmUuc2l0ZW5hbWUuZ2V0QmxvY2tTaXRlbmFtZShyKTtyZXR1cm57bmFtZTp0LHBhcmFtczp7b3B0aW9uczp7c2xvdDp7Y3ljbGVfaWQ6bi5jeWNsZV9pZCxzaXRlbmFtZTppfSxkd2hMb2dnZXI6e2N5Y2xlX2lkOm4uY3ljbGVfaWQsc2l0ZW5hbWU6aX19fX19KG4sdCxvLmtleSkpfSl9KSxbXS5jb25jYXQodCxpKX0sUz1mdW5jdGlvbih0KXt2YXIgbj1bXSxyPTAsYT1mdW5jdGlvbih0KXtyZXR1cm4gdCYmZS5zaXRlbmFtZS5nZXRCbG9ja0tleSh0KX0sYz1mdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gcis9MSx7cG9zdDpmdW5jdGlvbih0LGUpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LHQse2Jsb2NrOmV9KX0odCxlKSx2aWV3czpuLGtleTppLHJlc3VsdEluZGV4OnItMX19O3JldHVybiBPYmplY3Qua2V5cyhvKS5tYXAoZnVuY3Rpb24oZSl7dmFyIHI9YShlKSxpPW9bZV18fCJTbG90VmlldyI7IXJ8fCIwMCI9PT1yJiYiZGVmYXVsdCIhPT1lfHxuLnB1c2goYyh0LHIsaSxlKSl9KSxpLm1hcChmdW5jdGlvbihlKXt2YXIgcj1hKGUpO3ImJiIwMCIhPT1yJiZuLnB1c2goYyh0LHIsbnVsbCxlKSl9KSxufSxFPWZ1bmN0aW9uKGUsaSl7dmFyIG8sYSxjLHMsdT1be2N5Y2xlX2lkOiIwMDAwMDAwMDAifV07dGhpcy5vcHRpb25zPWUsdGhpcy5tYXBwZWRCb2R5PVModGhpcy5vcHRpb25zKSx0aGlzLmJvZHlCeUtleXM9KG89dGhpcy5tYXBwZWRCb2R5LGE9e30sby5tYXAoZnVuY3Rpb24odCl7YVt0LmtleV09dH0pLGEpLHRoaXMucmVzcG9uc2VQcm9taXNlPWZ1bmN0aW9uKGUpe3ZhciBpPUpTT04uc3RyaW5naWZ5KGUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBvc3R9KSk7cmV0dXJuIGZldGNoKCJodHRwczovL21lZGlhLWFkdmN5Y2xlLmltZ3NtYWlsLnJ1L3NlZWsvMS4wLyIse21ldGhvZDoiUE9TVCIsYm9keTppfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiB0Ll90bXIucHVzaCh7aWQ6IjMyMzczODQiLHR5cGU6InNlbmRFdmVudCIsY2F0ZWdvcnk6InRlc3Qtc2l0ZW5hbWUiLGFjdGlvbjpbbixyXS5qb2luKCI6IiksbGFiZWw6ImJhZCByZXF1ZXN0In0pLHV9KX0odGhpcy5tYXBwZWRCb2R5KSx0aGlzLmdldEN5Y2xlSWQ9KGM9dGhpcy5yZXNwb25zZVByb21pc2Uscz10aGlzLmJvZHlCeUtleXMsZnVuY3Rpb24odCl7cmV0dXJuIGMudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgbj1zW3RdO3JldHVybihlW24/bi5yZXN1bHRJbmRleDowXXx8ZVswXSkuY3ljbGVfaWR9KHQsZSl9KX0pLHRoaXMucmVzdWx0UHJvbWlzZT1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdC50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBiKGksZSx0KX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG4mJm4odCksdH0pfX0odGhpcy5yZXNwb25zZVByb21pc2UsdGhpcy5tYXBwZWRCb2R5KX0sdz0oeT1BcnJheS5mcm9tKHQuX19zbG90UGFyYW1zKSxfPXt9LGg9ZnVuY3Rpb24odCl7cmV0dXJuW3QuZW50aXR5X3R5cGUsdC5lbnRpdHlfaWRdLmpvaW4oIl8iKX0sZz1mdW5jdGlvbih0KXt2YXIgZT1oKHQpO3JldHVybiBlJiZfW2VdfSx2PWZ1bmN0aW9uKHQpe3ZhciBlPWcodCk7aWYoZSlyZXR1cm4gZTt2YXIgbixyLGk9bmV3IEUodCx5KTtyZXR1cm4gbj1pLChyPWgodCkpJiYoX1tyXT1uKSxpfSxmdW5jdGlvbihuLHIpe3ZhciBpLG89ZnVuY3Rpb24odCl7dmFyIG49ZS5zaXRlbmFtZS5zdHJpbmdFbmNvZGUscj10P09iamVjdC5hc3NpZ24oe30sUCx0KTpQO3JldHVybntleHBfaWQ6bihyLmV4cF9pZCwzKSxwbGF0Zm9ybTpyLnBsYXRmb3JtLnRvU3RyaW5nKCkscHJvamVjdDpyLnByb2plY3QudG9TdHJpbmcoKSxlbnRpdHlfdHlwZTpyLmVudGl0eV90eXBlLnRvU3RyaW5nKCksZW50aXR5X3R5cGVfaWQ6TnVtYmVyKHIuZW50aXR5X3R5cGVfaWQpLGVudGl0eV9pZDpyLmVudGl0eV9pZC50b1N0cmluZygpLGVudGl0eV9zZWN0aW9uOmUuc2l0ZW5hbWUuZ2V0RW50aXR5U2VjdGlvbigpLGVudGl0eV9jb250ZW50X3N1YnR5cGU6ci5lbnRpdHlfY29udGVudF9zdWJ0eXBlLnRvU3RyaW5nKCksYmxvY2s6ci5ibG9jay50b1N0cmluZygpfX0obiksYT12KG8pLGM9YS5yZXN1bHRQcm9taXNlKGZ1bmN0aW9uKG4pe3ZhciBpPWUuaXNDeWNsZVNpdGVuYW1lP2UuZ2V0Q3ljbGVJZCgpOmUuc2l0ZW5hbWUuYmFzZTt0LnhyYXlPcHRpb25zLmR3aExvZ2dlci51cGRhdGVMb2dnZXJPcHRpb25zKHtzaXRlbmFtZTppfSksImZ1bmN0aW9uIj09dHlwZW9mIHImJnIobil9KTtyZXR1cm4gZS5hd2FpdEVucmljaFBhcmFtcz1jLGUuZ2V0Q3ljbGVJZD0oaT1hLGZ1bmN0aW9uKHQsZSl7cmV0dXJuKCJvYmplY3QiPT10eXBlb2YgZSYmZyhlKXx8aSkuZ2V0Q3ljbGVJZCh0KX0pLGN9KTtlLmdldEN5Y2xlSWQ9bnVsbCxlLmF3YWl0RW5yaWNoUGFyYW1zPW51bGwsZS5nZXRFbnJpY2hQYXJhbXNQcm9taXNlPXcsZS5pc0N5Y2xlU2l0ZW5hbWU9dHJ1ZSx3KG51bGwsZnVuY3Rpb24oZSl7dC5jb21wb25lbnRTbG90UGFyYW1zPUFycmF5LmZyb20obmV3IFNldCh0LmNvbXBvbmVudFNsb3RQYXJhbXMuY29uY2F0KGUpKSksdC5fX3Nsb3RQYXJhbXM9ZX0pfWNhdGNoKGUpe3QuX3Rtci5wdXNoKHtpZDoiMzIzNzM4NCIsdHlwZToic2VuZEV2ZW50IixjYXRlZ29yeToidGVzdC1zaXRlbmFtZSIsYWN0aW9uOltuLHJdLmpvaW4oIjoiKSxsYWJlbDoiZXJyb3IifSl9fSh3aW5kb3csd2luZG93LlVUTUFwaXx8e30pOwo8L3NjcmlwdD4KCgogICAgICAgIDwhLS0gZW5kOiAvcmIvOTQ2ODQ4IC0tPgogICAgICAKCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJqcy1jb3VudGVycyIgc3R5bGU9ImhlaWdodDowIj4KICAgICAgICAgICAgICAgICAgCiAgICA8IS0tIC8vcmIvMTk3OSAoY291bnRlcnMgZm9vdGVyKSAtLT4KICAgIDxpbWcgc3JjPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy9kMjI1MzMxLmdpZiIgc3R5bGU9IndpZHRoOjA7aGVpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW47IiBhbHQ9IiI+PGltZyBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL2kxNTgzLmdpZiIgc3R5bGU9IndpZHRoOjA7aGVpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW47IiBhbHQ9IiI+CjwhLS0gbXJfY291bnRlciB0eXBlPSJ0b3BtYWlsIiBkb21haW49InRvcC1md3oxLm1haWwucnUiIGlkPSI3NDg2NyIgLS0+PCEtLSAvbXJfY291bnRlciAtLT4KPCEtLSBtcl9jb3VudGVyIHR5cGU9InRvcG1haWwiIGRvbWFpbj0idG9wLWZ3ejEubWFpbC5ydSIgaWQ9IjI2NDI1NDEiIC0tPjwhLS0gL21yX2NvdW50ZXIgLS0+CjwhLS0gbXJfY291bnRlciB0eXBlPSJ0b3BtYWlsIiBkb21haW49InRvcC1md3oxLm1haWwucnUiIGlkPSIyNjY1MDAwIiAtLT48IS0tIC9tcl9jb3VudGVyIC0tPgo8IS0tIG1yX2NvdW50ZXIgdHlwZT0idG9wbWFpbCIgZG9tYWluPSJ0b3AtZnd6MS5tYWlsLnJ1IiBpZD0iMjY3MDkzMCIgLS0+PCEtLSAvbXJfY291bnRlciAtLT4KPCEtLSBtcl9jb3VudGVyIHR5cGU9InRvcG1haWwiIGRvbWFpbj0idG9wLWZ3ejEubWFpbC5ydSIgaWQ9IjMzODUxNjkiIC0tPjwhLS0gL21yX2NvdW50ZXIgLS0+CjwhLS0gUmF0aW5nQE1haWwucnUgY291bnRlciAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp2YXIgX3RtciA9IF90bXIgfHwgW107Cl90bXIucHVzaCh7aWQ6ICI3NDg2NyIsIHR5cGU6ICJwYWdlVmlldyIsIHN0YXJ0OiAobmV3IERhdGUoKSkuZ2V0VGltZSgpfSk7Cl90bXIucHVzaCh7aWQ6ICIyNjQyNTQxIiwgdHlwZTogInBhZ2VWaWV3Iiwgc3RhcnQ6IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCl9KTsKX3Rtci5wdXNoKHtpZDogIjI2NjUwMDAiLCB0eXBlOiAicGFnZVZpZXciLCBzdGFydDogKG5ldyBEYXRlKCkpLmdldFRpbWUoKX0pOwpfdG1yLnB1c2goe2lkOiAiMjY3MDkzMCIsIHR5cGU6ICJwYWdlVmlldyIsIHN0YXJ0OiAobmV3IERhdGUoKSkuZ2V0VGltZSgpfSk7Cl90bXIucHVzaCh7aWQ6ICIzMzg1MTY5IiwgdHlwZTogInBhZ2VWaWV3Iiwgc3RhcnQ6IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCl9KTsKKGZ1bmN0aW9uIChkLCB3KSB7CnZhciB0cyA9IGQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7IHRzLnR5cGUgPSAidGV4dC9qYXZhc2NyaXB0IjsgdHMuYXN5bmMgPSB0cnVlOwp0cy5zcmMgPSAoZC5sb2NhdGlvbi5wcm90b2NvbCA9PSAiaHR0cHM6IiA/ICJodHRwczoiIDogImh0dHA6IikgKyAiLy90b3AtZnd6MS5tYWlsLnJ1L2pzL2NvZGUuanMiOwp2YXIgZiA9IGZ1bmN0aW9uICgpIHt2YXIgcyA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdOyBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRzLCBzKTt9OwppZiAody5vcGVyYSA9PSAiW29iamVjdCBPcGVyYV0iKSB7IGQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGYsIGZhbHNlKTsgfSBlbHNlIHsgZigpOyB9Cn0pKGRvY3VtZW50LCB3aW5kb3cpOwo8L3NjcmlwdD48bm9zY3JpcHQ+Jmx0O2RpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotMTAwMDBweDsiJmd0OwombHQ7aW1nIHNyYz0iLy90b3AtZnd6MS5tYWlsLnJ1L2NvdW50ZXI/aWQ9NzQ4Njc7anM9bmE7cj1odHRwcyUzQSUyRiUyRm5ld3MubWFpbC5ydSUyRiUzRnV0bV9zb3VyY2UlM0Rwb3J0YWwlMjZ1dG1fbWVkaXVtJTNEcG9ydGFsX25hdmlnYXRpb25fZXhwJTI2dXRtX2NhbXBhaWduJTNEbmV3cy5tYWlsLnJ1JTI2bXRfc3ViMyUzRDE1NDM3MzQ3MSUyNm10X2NsaWNrX2lkJTNEbXQtc2NjdmU5LTE3MTYzMTM5NzctMjMwNjc4MDA3NyUyNm10X3N1YjUlM0QxNDI1MSUyNm10X3N1YjElM0RtYWlsLnJ1JTI2bXRfc3ViNCUzRDQxMzMwNSUyNm10X3N1YjIlM0QwIiBzdHlsZT0iYm9yZGVyOjA7IiBoZWlnaHQ9IjEiIHdpZHRoPSIxIiBhbHQ9ItCg0LXQudGC0LjQvdCzQE1haWwucnUiIC8mZ3Q7CiZsdDtpbWcgc3JjPSIvL3RvcC1md3oxLm1haWwucnUvY291bnRlcj9pZD0yNjQyNTQxO2pzPW5hO3I9aHR0cHMlM0ElMkYlMkZuZXdzLm1haWwucnUlMkYlM0Z1dG1fc291cmNlJTNEcG9ydGFsJTI2dXRtX21lZGl1bSUzRHBvcnRhbF9uYXZpZ2F0aW9uX2V4cCUyNnV0bV9jYW1wYWlnbiUzRG5ld3MubWFpbC5ydSUyNm10X3N1YjMlM0QxNTQzNzM0NzElMjZtdF9jbGlja19pZCUzRG10LXNjY3ZlOS0xNzE2MzEzOTc3LTIzMDY3ODAwNzclMjZtdF9zdWI1JTNEMTQyNTElMjZtdF9zdWIxJTNEbWFpbC5ydSUyNm10X3N1YjQlM0Q0MTMzMDUlMjZtdF9zdWIyJTNEMCIgc3R5bGU9ImJvcmRlcjowOyIgaGVpZ2h0PSIxIiB3aWR0aD0iMSIgYWx0PSLQoNC10LnRgtC40L3Qs0BNYWlsLnJ1IiAvJmd0OwombHQ7aW1nIHNyYz0iLy90b3AtZnd6MS5tYWlsLnJ1L2NvdW50ZXI/aWQ9MjY2NTAwMDtqcz1uYTtyPWh0dHBzJTNBJTJGJTJGbmV3cy5tYWlsLnJ1JTJGJTNGdXRtX3NvdXJjZSUzRHBvcnRhbCUyNnV0bV9tZWRpdW0lM0Rwb3J0YWxfbmF2aWdhdGlvbl9leHAlMjZ1dG1fY2FtcGFpZ24lM0RuZXdzLm1haWwucnUlMjZtdF9zdWIzJTNEMTU0MzczNDcxJTI2bXRfY2xpY2tfaWQlM0RtdC1zY2N2ZTktMTcxNjMxMzk3Ny0yMzA2NzgwMDc3JTI2bXRfc3ViNSUzRDE0MjUxJTI2bXRfc3ViMSUzRG1haWwucnUlMjZtdF9zdWI0JTNENDEzMzA1JTI2bXRfc3ViMiUzRDAiIHN0eWxlPSJib3JkZXI6MDsiIGhlaWdodD0iMSIgd2lkdGg9IjEiIGFsdD0i0KDQtdC50YLQuNC90LNATWFpbC5ydSIgLyZndDsKJmx0O2ltZyBzcmM9Ii8vdG9wLWZ3ejEubWFpbC5ydS9jb3VudGVyP2lkPTI2NzA5MzA7anM9bmE7cj1odHRwcyUzQSUyRiUyRm5ld3MubWFpbC5ydSUyRiUzRnV0bV9zb3VyY2UlM0Rwb3J0YWwlMjZ1dG1fbWVkaXVtJTNEcG9ydGFsX25hdmlnYXRpb25fZXhwJTI2dXRtX2NhbXBhaWduJTNEbmV3cy5tYWlsLnJ1JTI2bXRfc3ViMyUzRDE1NDM3MzQ3MSUyNm10X2NsaWNrX2lkJTNEbXQtc2NjdmU5LTE3MTYzMTM5NzctMjMwNjc4MDA3NyUyNm10X3N1YjUlM0QxNDI1MSUyNm10X3N1YjElM0RtYWlsLnJ1JTI2bXRfc3ViNCUzRDQxMzMwNSUyNm10X3N1YjIlM0QwIiBzdHlsZT0iYm9yZGVyOjA7IiBoZWlnaHQ9IjEiIHdpZHRoPSIxIiBhbHQ9ItCg0LXQudGC0LjQvdCzQE1haWwucnUiIC8mZ3Q7CiZsdDtpbWcgc3JjPSIvL3RvcC1md3oxLm1haWwucnUvY291bnRlcj9pZD0zMzg1MTY5O2pzPW5hO3I9aHR0cHMlM0ElMkYlMkZuZXdzLm1haWwucnUlMkYlM0Z1dG1fc291cmNlJTNEcG9ydGFsJTI2dXRtX21lZGl1bSUzRHBvcnRhbF9uYXZpZ2F0aW9uX2V4cCUyNnV0bV9jYW1wYWlnbiUzRG5ld3MubWFpbC5ydSUyNm10X3N1YjMlM0QxNTQzNzM0NzElMjZtdF9jbGlja19pZCUzRG10LXNjY3ZlOS0xNzE2MzEzOTc3LTIzMDY3ODAwNzclMjZtdF9zdWI1JTNEMTQyNTElMjZtdF9zdWIxJTNEbWFpbC5ydSUyNm10X3N1YjQlM0Q0MTMzMDUlMjZtdF9zdWIyJTNEMCIgc3R5bGU9ImJvcmRlcjowOyIgaGVpZ2h0PSIxIiB3aWR0aD0iMSIgYWx0PSLQoNC10LnRgtC40L3Qs0BNYWlsLnJ1IiAvJmd0OwombHQ7L2RpdiZndDs8L25vc2NyaXB0Pgo8IS0tIC8vUmF0aW5nQE1haWwucnUgY291bnRlciAtLT4KPCEtLSBtcl9jb3VudGVyIHR5cGU9ImxpcnUiIGRvbWFpbj0iY291bnRlci55YWRyby5ydSIgcGVyc29uYWw9InBlcnNvbmFsLW5ld3MvZGVza3RvcC9uZXdzIiAtLT4KPCEtLUxpdmVJbnRlcm5ldCBjb3VudGVyLS0+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0KbmV3IEltYWdlKCkuc3JjID0gIi8vY291bnRlci55YWRyby5ydS9oaXQ7cGVyc29uYWwtbmV3cy9kZXNrdG9wL25ld3M/ciIrCmVzY2FwZShkb2N1bWVudC5yZWZlcnJlcikrKCh0eXBlb2Yoc2NyZWVuKT09InVuZGVmaW5lZCIpPyIiOgoiO3MiK3NjcmVlbi53aWR0aCsiKiIrc2NyZWVuLmhlaWdodCsiKiIrKHNjcmVlbi5jb2xvckRlcHRoPwpzY3JlZW4uY29sb3JEZXB0aDpzY3JlZW4ucGl4ZWxEZXB0aCkpKyI7dSIrZXNjYXBlKGRvY3VtZW50LlVSTCkrCiI7IitNYXRoLnJhbmRvbSgpOy8vLS0+PC9zY3JpcHQ+PCEtLS9MaXZlSW50ZXJuZXQtLT4KPCEtLSAvbXJfY291bnRlciAtLT4KPCEtLSBtcl9jb3VudGVyIHR5cGU9ImNvbXNjb3JlIiBpZD0iOTk5OTMwNSIgLS0+CjxzY3JpcHQ+CnRyeSB7CihmdW5jdGlvbih3LGQscykgewogICAgcyA9IHcuZW5jb2RlVVJJQ29tcG9uZW50IHx8IGVzY2FwZTsKICAgIG5ldyBJbWFnZSgpLnNyYyA9ICJodHRwIiArICgoZC5VUkwuY2hhckF0KDQpID09ICJzIikgPyAiczovL3NiIiA6ICI6Ly9iIikgKyAiLnNjb3JlY2FyZHJlc2VhcmNoLmNvbS9iP2MxPTImYzI9OTk5OTMwNSZuc19fdD0iICsgKyhuZXcgRGF0ZSkgKyAiJm5zX2M9IiArIChkLmNoYXJhY3RlclNldCB8fCBkLmRlZmF1bHRDaGFyc2V0IHx8ICIiKSArICImYzc9IiArIHMoZC5VUkwpICsgIiZjOT0iICsgcyhkLnJlZmVycmVyKTsKfSkod2luZG93LGRvY3VtZW50KTsKfSBjYXRjaChlKSB7fQo8L3NjcmlwdD4KPCEtLSAvbXJfY291bnRlciAtLT4KCgo8IS0tIFJhdGluZ0BNYWlsLnJ1IGNvdW50ZXIgLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KdmFyIF90bXIgPSBfdG1yIHx8IFtdOwp2YXIgaGl0UGFyYW1zID0geyBkaXN0cmliX2NoYW5uZWw6ICI1MTQ0OTkifTsKX3Rtci5wdXNoKHsgaWQ6ICIzMTAwNzYyIiwgdHlwZTogInBhZ2VWaWV3Iiwgc3RhcnQ6IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCksIHBhcmFtczogaGl0UGFyYW1zIH0pOwooZnVuY3Rpb24gKGQsIHcpIHsKdmFyIHRzID0gZC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsgdHMudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiOyB0cy5hc3luYyA9IHRydWU7CnRzLnNyYyA9IChkLmxvY2F0aW9uLnByb3RvY29sID09ICJodHRwczoiID8gImh0dHBzOiIgOiAiaHR0cDoiKSArICIvL3RvcC1md3oxLm1haWwucnUvanMvY29kZS5qcyI7CnZhciBmID0gZnVuY3Rpb24gKCkge3ZhciBzID0gZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07IHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodHMsIHMpO307CmlmICh3Lm9wZXJhID09ICJbb2JqZWN0IE9wZXJhXSIpIHsgZC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZiwgZmFsc2UpOyB9IGVsc2UgeyBmKCk7IH0KfSkoZG9jdW1lbnQsIHdpbmRvdyk7Cjwvc2NyaXB0Pjxub3NjcmlwdD4mbHQ7ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMDAwMHB4OyImZ3Q7CiZsdDtpbWcgc3JjPSIvL3RvcC1md3oxLm1haWwucnUvY291bnRlcj9pZD0zMTAwNzYyO2pzPW5hO3I9aHR0cHMlM0ElMkYlMkZuZXdzLm1haWwucnUlMkYlM0Z1dG1fc291cmNlJTNEcG9ydGFsJTI2dXRtX21lZGl1bSUzRHBvcnRhbF9uYXZpZ2F0aW9uX2V4cCUyNnV0bV9jYW1wYWlnbiUzRG5ld3MubWFpbC5ydSUyNm10X3N1YjMlM0QxNTQzNzM0NzElMjZtdF9jbGlja19pZCUzRG10LXNjY3ZlOS0xNzE2MzEzOTc3LTIzMDY3ODAwNzclMjZtdF9zdWI1JTNEMTQyNTElMjZtdF9zdWIxJTNEbWFpbC5ydSUyNm10X3N1YjQlM0Q0MTMzMDUlMjZtdF9zdWIyJTNEMCIgc3R5bGU9ImJvcmRlcjowOyIgaGVpZ2h0PSIxIiB3aWR0aD0iMSIgYWx0PSLQoNC10LnRgtC40L3Qs0BNYWlsLnJ1IiAvJmd0OwombHQ7L2RpdiZndDs8L25vc2NyaXB0Pgo8IS0tIC8vUmF0aW5nQE1haWwucnUgY291bnRlciAtLT4KCgoKPHN0eWxlPgouc2NyZWVuX3NtYWxsIC5wbS10b29sYmFyX19idXR0b25bbmFtZT0iY2xidW5kZWZpbmVkIl17CiAgZGlzcGxheTogbm9uZTsKfTwvc3R5bGU+Cgo8c2NyaXB0Pgp3aW5kb3cudG1yVmlkZW9Db3VudGVyID0gJzMxNDU1NDgnOwohZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7dmFyIHI9ZS5zZXRUaW1lb3V0LG49ZS5jbGVhclRpbWVvdXQsbz1lLmxvY2F0aW9uLmhvc3RuYW1lLGE9ZS5sb2NhdGlvbi5ocmVmLGk9L2Rldm1haWxcLnJ1JC8udGVzdChvKSx1PVtdO2lmKHQpe3ZhciBjLHMsZD17c3RhcnRlZDoicGxheSIsb24xMHNlYzoiMTBzZWMiLG9uMTVzZWM6IjE1c2VjIixvbjMwc2VjOiIzMHNlYyIsZW5kZWQ6ImVuZGVkIixlcnJvcjoiZXJyb3IiLGVycm9yX2NvZGU6ImVycm9yX2FwcGx5IixlcnJvcl92aWV3OiJlcnJvcl92aWV3In0sbD1be2hhbmRsZXI6ZnVuY3Rpb24odCl7dmFyIHI9e2luaXRlZDoiaW5pdGVkIixzdGFydGVkOiJzdGFydGVkIixyZXN1bWVkOiJzdGFydGVkIixwYXVzZWQ6InBhdXNlZCIsZW5kZWQ6ImVuZGVkIixlcnJvcjoiZXJyb3IifSxuPSJpZnJhbWVfIixvPVtdO2Z1bmN0aW9uIGEoZSxhKXt2YXIgaSx1PShpPWEub3JpZ2luLE9iamVjdC5rZXlzKHQpLnJlZHVjZSgoZSxyKT0+e2lmKCFlKXt2YXIgbj10W3JdO24ucmVnZXgudGVzdChpKSYmKGU9bil9cmV0dXJuIGV9LG51bGwpKSxjPXUmJnUuZ2V0RXZlbnRUeXBlP3UuZ2V0RXZlbnRUeXBlKGEpOihhLmRhdGF8fHt9KS5ldmVudCxzPXJbY107aWYocyYmdSl0cnl7dmFyIGw9ZnVuY3Rpb24oZSl7dmFyIHQ9by5pbmRleE9mKGUpOy0xPT09dCYmKG8ucHVzaChlKSx0PW8ubGVuZ3RoLTEpO3JldHVybiBuK3R9KGEuc291cmNlKTtsJiZlLmV2ZW50SGFuZGxlcihzLGwsdS50eXBlLGEuc291cmNlKX1jYXRjaChlKXt2YXIgZj1bZC5lcnJvcl9jb2RlLGNdLmpvaW4oIjoiKTtwLnJlYWNoR29hbChmLHUudHlwZSl9fWk9bmV3IHksdT1hLmJpbmQobnVsbCxpKSxlLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHUpO3ZhciBpLHV9LGVtYmVkczpbe3R5cGU6Im9rIixsYXp5VHlwZToib2tfdmlkZW8iLHJlZ2V4Oi8oaHR0cHM6KT9cL1wvKChbXGRhLXouLV0rKVwuKT9va1wucnUvfSx7dHlwZToibmV3c3R1YmUiLGxhenlUeXBlOiJuZXdzdHViZSIscmVnZXg6LyhodHRwczopP1wvXC8oKFtcZGEtei4tXSspXC4pP25ld3N0dWJlXC5ydS99LHt0eXBlOiJzbW90cmkiLGxhenlUeXBlOiJzbW90cmkiLHJlZ2V4Oi8oaHR0cHM6KT9cL1wvcGxheWVyLXNtb3RyaS5tYWlsLnJ1LyxnZXRFdmVudFR5cGU6KGM9e2luaXRpYWxpemVkOiJpbml0ZWQiLHN0YXJ0OiJzdGFydGVkIixwYXVzZToicGF1c2UiLGVuZGVkOiJlbmRlZCJ9LGZ1bmN0aW9uKGUpe2lmKCJzZW5kVmlkZW9QbGF5U3RhdGVUb1NpdGUiPT09ZS5kYXRhLnR5cGUpcmV0dXJuIGNbZS5kYXRhLm9wdGlvbnMucGxheVN0YXRlXX0pfV19LHtoYW5kbGVyOmZ1bmN0aW9uKHQpe3ZhciByPXsiUGxheWVyOnN0YXJ0ZWQiOiJzdGFydGVkIiwiUGxheWVyOnBsYXllZCI6InN0YXJ0ZWQiLCJQbGF5ZXI6cmVwbGF5ZWQiOiJzdGFydGVkIiwiUGxheWVyOnBhdXNlZCI6InBhdXNlZCIsIlBsYXllcjplbmRlZCI6ImVuZGVkIn07bj1mdW5jdGlvbigpe2lmKCFlLlZJUUVPfHwiZnVuY3Rpb24iIT10eXBlb2YgZS5WSVFFTy5zdWJzY3JpYmVUcmFja2luZylyZXR1cm47dmFyIG49bmV3IHksbz1PYmplY3Qua2V5cyhyKTtuLmhhbmRsZXJzLmluaXRlZChudWxsLCJ2aXFlbyIpLG8uZm9yRWFjaChmdW5jdGlvbihvKXt2YXIgYT1mdW5jdGlvbihlLG4pe3ZhciBvPW4uZXZlbnROYW1lLGE9cltvXSxpPXRbMF07aWYoIWEpcmV0dXJuO3RyeXt2YXIgdT1uLnBsYXllci5pZnJhbWUuY29udGFpbmVyLGM9W24uc2xvdElkLG4udmlkZW9JZF0uam9pbigiXyIpO2UuZXZlbnRIYW5kbGVyKGEsYyxpLnR5cGUsdSl9Y2F0Y2goZSl7cC5yZWFjaEdvYWwoZC5lcnJvcl9jb2RlLGkudHlwZSl9fS5iaW5kKG51bGwsbik7ZS5WSVFFTy5zdWJzY3JpYmVUcmFja2luZyhhLG8pfSl9LCJmdW5jdGlvbiI9PXR5cGVvZiBuJiYoZS5WSVFFTz9uKCk6KGUub25WaXFlb0xvYWQ9ZS5vblZpcWVvTG9hZHx8W10sZS5vblZpcWVvTG9hZC5wdXNoKG4pKSk7dmFyIG59LGVtYmVkczpbe3R5cGU6InZpcWVvIixsYXp5VHlwZToidmlxZW8ifV19XSxmPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbj17fTtmb3IociBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpJiYobltyXT1lW3JdKTtmb3IociBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpJiYobltyXT10W3JdKTtyZXR1cm4gbn0scD1mdW5jdGlvbigpe3ZhciByLG49InZpZGVvQ291bnRlciIsdT0ocj1vLmluZGV4T2YoIi5tYWlsLnJ1Iik/MzoyLG8uc3BsaXQoIi4iKS5zbGljZSgtcikuam9pbigiLiIpKTtmdW5jdGlvbiBjKHQpe2k/ZS5jb25zb2xlLmRlYnVnKG4sdCk6ZS5fdG1yLnB1c2godCl9cmV0dXJuIGUuX3Rtcj1lLl90bXJ8fFtdLHtwYWdlVmlldzpmdW5jdGlvbihlKXt2YXIgcj1hO2UubGVuZ3RoJiYocis9KC0xPT09YS5pbmRleE9mKCI/Iik/Ij8iOiImIikrZS5qb2luKCImIikpLGMoe2lkOnQsdHlwZToicGFnZVZpZXciLHVybDpyfSl9LHJlYWNoR29hbDpmdW5jdGlvbihlLHIpe2Moe2lkOnQsdHlwZToicmVhY2hHb2FsIixnb2FsOltlLHUscl0uam9pbigiOiIpfSl9fX0oKTtsLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5oYW5kbGVyKGUuZW1iZWRzKX0pLHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiaWZyYW1lIiksbC5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuZW1iZWRzLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGV4dGFyZWFbZGF0YS1sYXp5LWJsb2NrLXR5cGU9ImVtYmVkIl0nKTtlLnJlZ2V4JiZ0Lmxlbmd0aD90LmZvckVhY2goZnVuY3Rpb24odCl7dC52YWx1ZSYmZS5yZWdleC50ZXN0KHQudmFsdWUpJiZ1LnB1c2goZS50eXBlKX0pOmUucmVnZXgmJnMubGVuZ3RoP3MuZm9yRWFjaChmdW5jdGlvbih0KXt0LnNyYyYmZS5yZWdleC50ZXN0KHQuc3JjKSYmdS5wdXNoKGUudHlwZSl9KTpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYXJ0aWNsZV9faXRlbV9zb3VyY2VfIitlLmxhenlUeXBlKS5sZW5ndGgmJnUucHVzaChlLnR5cGUpfSl9KSx1Lmxlbmd0aCYmcC5wYWdlVmlldyh1KX1mdW5jdGlvbiB5KCl7dmFyIGU9e2l0ZW1zOnt9LGl0ZW1EZWZhdWx0Ontjb250ZW50Om51bGwsdHlwZTpudWxsLHRpbWVvdXQxMHNlYzpudWxsLHRpbWVvdXQxNXNlYzpudWxsLHRpbWVvdXQzMHNlYzpudWxsLHN0YXJ0ZWQ6ITEsZW5kZWQ6ITEsb24xMHNlYzohMSxvbjE1c2VjOiExLG9uMzBzZWM6ITEsZXJyb3I6ITF9LHNldDpvLGdldDphLGFkZDpmdW5jdGlvbih0LHIsbil7byh0LGYoZS5pdGVtRGVmYXVsdCx7Y29udGVudDpuLHR5cGU6cn0pKX19LHQ9W107ZnVuY3Rpb24gbyh0LHIpe3ZhciBuPWEodCl8fHt9O3QmJihlLml0ZW1zW3RdPWYobixyKSl9ZnVuY3Rpb24gYSh0KXtyZXR1cm4gdCYmZS5pdGVtc1t0XX1mdW5jdGlvbiBpKHQscixuKXt2YXIgbz1lLmdldCh0KSxhPXImJmRbcl0saT17fTtufHwocyh0LCJ0aW1lb3V0MTBzZWMiKSxzKHQsInRpbWVvdXQxNXNlYyIpLHModCwidGltZW91dDMwc2VjIikpLGEmJiFvW3JdJiYoaVtyXT0hMCxlLnNldCh0LGkpLHAucmVhY2hHb2FsKGEsby50eXBlKSl9ZnVuY3Rpb24gYyh0LG4sbyxhKXt2YXIgdT1lLmdldCh0KTtpZighdVtvXSYmIXVbbl0pe3ZhciBjPWkuYmluZChudWxsLHQsbywhMCkscz17fTtzW25dPXIoYyxhKSxlLnNldCh0LHMpfX1mdW5jdGlvbiBzKHQscil7aWYoZS5nZXQodClbcl0pe24oZS5pdGVtc1t0XVtyXSk7dmFyIG89e307b1tyXT1udWxsLGUuc2V0KHQsbyl9fXJldHVybntldmVudEhhbmRsZXI6ZnVuY3Rpb24oZSx0LHIsbil7aWYoZSYmdCYmciYmbil7dmFyIG89dGhpcy5fc3RhdGUsYT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLmhhbmRsZXJzW2VdO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0P251bGw6dH0uY2FsbCh0aGlzLGUpO28uZ2V0KHQpfHxvLmFkZCh0LHIsbiksYSYmYSh0KX19LGhhbmRsZXJzOntpbml0ZWQ6ZnVuY3Rpb24ocixuKXt2YXIgbz1lLmdldChyKTshbiYmbyYmKG49by50eXBlKSxuJiYtMT09PXUuaW5kZXhPZihuKSYmLTE9PT10LmluZGV4T2YobikmJih0LnB1c2gobikscC5yZWFjaEdvYWwoZC5lcnJvcl92aWV3LG4pKX0sc3RhcnRlZDpmdW5jdGlvbihlKXtpKGUsInN0YXJ0ZWQiLCEwKSxjKGUsInRpbWVvdXQxMHNlYyIsIm9uMTBzZWMiLDFlNCksYyhlLCJ0aW1lb3V0MTVzZWMiLCJvbjE1c2VjIiwxNWUzKSxjKGUsInRpbWVvdXQzMHNlYyIsIm9uMzBzZWMiLDNlNCl9LGVuZGVkOmZ1bmN0aW9uKGUpe2koZSwiZW5kZWQiKX0scGF1c2VkOmZ1bmN0aW9uKGUpe2koZSl9LGVycm9yOmZ1bmN0aW9uKGUpe2koZSwiZXJyb3IiKX19LF9zdGF0ZTplfX19KHdpbmRvdyx3aW5kb3cudG1yVmlkZW9Db3VudGVyKTsKPC9zY3JpcHQ+CgoKCjwhLS0gR29vZ2xlIHRhZyAoZ3RhZy5qcykgLS0+CjxzY3JpcHQgYXN5bmM9IiIgc3JjPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy9qcyI+PC9zY3JpcHQ+CjxzY3JpcHQ+CiAgd2luZG93LmRhdGFMYXllciA9IHdpbmRvdy5kYXRhTGF5ZXIgfHwgW107CiAgZnVuY3Rpb24gZ3RhZygpe2RhdGFMYXllci5wdXNoKGFyZ3VtZW50cyk7fQogIGd0YWcoJ2pzJywgbmV3IERhdGUoKSk7CgogIGd0YWcoJ2NvbmZpZycsICdHLThDRzVGRlk3TU0nKTsKPC9zY3JpcHQ+CgoKCjxzY3JpcHQ+CiFmdW5jdGlvbihlLHQpe3ZhciBuLHI7KCEwPT09ZS5uYXZpZ2F0b3Iuc3RhbmRhbG9uZXx8ZS5tYXRjaE1lZGlhKCIoZGlzcGxheS1tb2RlOiBzdGFuZGFsb25lKSIpLm1hdGNoZXMpJiYoZS5fdG1yPWUuX3Rtcnx8W10sX3Rtci5wdXNoKHtpZDp0LHR5cGU6InBhZ2VWaWV3IixzdGFydDoobmV3IERhdGUpLmdldFRpbWUoKX0pLG49ZnVuY3Rpb24oZSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIiAiK2UrIiAiKX0sKHI9ZG9jdW1lbnQuY3VycmVudFNjcmlwdC5wYXJlbnROb2RlKS5wcmVwZW5kKG4oIi9tcl9jb3VudGVyIikpLHIucHJlcGVuZChuKCdtcl9jb3VudGVyIHR5cGU9InRvcG1haWwiIGRvbWFpbj0idG9wLWZ3ejEubWFpbC5ydSIgaWQ9IicrdCsnIicpKSl9KHdpbmRvdywgMzI3NjE4OSk7Cjwvc2NyaXB0PgoKICAgIDwhLS0gLy9yYi8xOTc5IC0tPgogICAgPC9kaXY+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAKICA8bm9zY3JpcHQ+CiAgICAmbHQ7ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMDAwMHB4OyImZ3Q7CiAgICAgICZsdDtpbWcgc3JjPSIvL3RvcC1md3oxLm1haWwucnUvY291bnRlcj9pZD0yNjAzMDUxO2pzPW5hIiBzdHlsZT0iYm9yZGVyOjA7IiBoZWlnaHQ9IjEiIHdpZHRoPSIxIiBhbHQ9ItCg0LXQudGC0LjQvdCzQE1haWwucnUiIC8mZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICA8L25vc2NyaXB0PgoKICAgICAgICAgICAgICAgIAogICAgICAgIDwhLS0gc3RhcnQ6IC9yYi8xNDIwMTc5P19TSVRFSUQ9MjkgLS0+CiAgICAgICAgCiAgICAgICAgPCEtLSBlbmQ6IC9yYi8xNDIwMTc5IC0tPgogICAgICAKCiAgICAgICAgICAgICAgICAKICAgICAgICA8IS0tIHN0YXJ0OiAvcmIvMyAtLT4KICAgICAgICAKCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLy88IVtDREFUQVsKKGZ1bmN0aW9uKHcsIGQpIHsKICAgICAgICBpZiAody5yYl9jb3VudGVyKSByZXR1cm47CiAgICAgICAgZnVuY3Rpb24gaCgpIHsKICAgICAgICAgICAgICAgIHZhciBuLCBhID0gYXJndW1lbnRzOwogICAgICAgICAgICAgICAgZm9yKHZhciBpPWEubGVuZ3RoO2ktLTspewogICAgICAgICAgICAgICAgICAgICAgICBuID0gYVtpXS5zcGxpdCgnLCcpOwogICAgICAgICAgICAgICAgICAgICAgICBmb3IodmFyIGo9bi5sZW5ndGg7ai0tOyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyhuW2pdKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjKG4pIHsKICAgICAgICAgICAgICAgIHZhciBtLCByID0gcGFyc2VJbnQoTWF0aC5yYW5kb20oKSoxRTkpLCBzOwogICAgICAgICAgICAgICAgaWYgKCEobSA9IG4ubWF0Y2goL14oPzpjbChbYm5dKXwoW2FkZ2luXSkpKFxkKykoPzpzeihcZCspKT8vKSkpIHJldHVybjsKICAgICAgICAgICAgICAgIGlmIChtWzFdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHMgPSAicyIgKyBtWzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZihtWzJdID09ICJuIikgewogICAgICAgICAgICAgICAgICAgICAgICBzID0gIm5jIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYobVsyXT09ImkiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHIgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICBzID0gbVsyXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBzID0gbVsyXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHMgKz0gbVszXSArICIuZ2lmPyI7CiAgICAgICAgICAgICAgICBpZiAobVs0XSkgcyArPSAic3o9IiArIG1bNF07CiAgICAgICAgICAgICAgICBpZiAocikgcyArPSAiJnJuZD0iICsgcjsKICAgICAgICAgICAgICAgIChuZXcgSW1hZ2UpLnNyYyA9ICIvL3JzLm1haWwucnUvIiArIHM7CiAgICAgICAgfQogICAgICAgIChmdW5jdGlvbihvLCBlLCBmbikgewogICAgICAgICAgICAgICAgaWYgKG8uYWRkRXZlbnRMaXN0ZW5lcikgby5hZGRFdmVudExpc3RlbmVyKGUsIGZuLCBmYWxzZSk7CiAgICAgICAgICAgICAgICBlbHNlIGlmIChvLmF0dGFjaEV2ZW50KSBvLmF0dGFjaEV2ZW50KCdvbicgKyBlLCBmbik7CiAgICAgICAgICAgICAgICBlbHNlIG9bJ29uJyArIGVdID0gZm47CiAgICAgICAgfSkoZCwgJ21vdXNlZG93bicsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgIHZhciBuOwogICAgICAgICAgICAgICAgZSA9IGUgfHwgdy5ldmVudDsKICAgICAgICAgICAgICAgIGUgPSBlLnRhcmdldCB8fCBlLnNyY0VsZW1lbnQ7CiAgICAgICAgICAgICAgICB3aGlsZSAoZS5wYXJlbnROb2RlKXsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuZ2V0QXR0cmlidXRlICYmIChuID0gZS5nZXRBdHRyaWJ1dGUoJ25hbWUnKSkgJiYgKG4gPSBuLnRvU3RyaW5nKCkpKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoKG4pOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGUgPSBlLnBhcmVudE5vZGU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdy5yYl9jb3VudGVyID0gaDsKfSkod2luZG93LCBkb2N1bWVudCk7Ci8vXV0+Cjwvc2NyaXB0PgoKPGltZyBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL1VfNGFtYXV0SHRLNTA1dTA0ODhXQ1BUc3JMNDAwMDAwTzlXQlNGSnFXOTA4YTA0Mm0wNDJzMDZBWG50ZTBPMDF5MEFDa2ZBbzFoMDMwZzA2Z1dGOTFoIiBzdHlsZT0id2lkdGg6MDtoZWlnaHQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt2aXNpYmlsaXR5OmhpZGRlbjsiIGFsdD0iIj4KCgoKCgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgooezEyNjpmdW5jdGlvbigpe3RyeXshZnVuY3Rpb24odCl7dmFyIGU9WE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLm9wZW47ZnVuY3Rpb24gYSh0LGUpe3ZhciBhPVtbL1xzL2csIiAiXV07dD10LnRvTG93ZXJDYXNlKCk7Zm9yKHZhciBuPTA7bjxhLmxlbmd0aDtuKyspdD10LnJlcGxhY2UuYXBwbHkodCxhW25dKTtmb3IodmFyIHI9W10sbz0obj0wLHQubGVuZ3RoKTtuPG87bisrKXt2YXIgaT10LmNoYXJDb2RlQXQobik7aT1lW2ldP2VbaV06ZVszMl0scltuXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGkpfXJldHVybiByLmpvaW4oIiIpfWZ1bmN0aW9uIG4odCxlKXt2YXIgbj1mdW5jdGlvbigpe3ZhciB0PXs0NjozMyw0NTozNiwzMjo0MH0sZT1bMzQsMzUsMzcsNDcsNjAsNjIsNjMsNzUsOTEsOTIsOTMsOTQsOTYsMTA3LDEyMywxMjQsMTI1XS5jb25jYXQoWzM4LDM5LDQzLDYxLDEyNl0pO2Zvcih2YXIgYSBpbiB0KWUucHVzaCh0W2FdKTt2YXIgbj0zMztmdW5jdGlvbiByKCl7Zm9yKDtuPDEyNyYmZS5pbmRleE9mKG4pPj0wOyluKz0xO3JldHVybiBuKyt9Zm9yKHZhciBvPVtbNDgsNThdLFs5NywxMjNdLFsxMDcyLDExMDRdLFsxMTA1LDExMDZdXSxpPTA7aTxvLmxlbmd0aDtpKyspZm9yKHZhciBzPW9baV1bMF0sZD1vW2ldWzFdO3M8ZDspe2lmKHRbc109cigpLCF0W3NdKXRocm93IG5ldyBFcnJvcigiY2FuJ3QgZW5jb2RlIGNoYXJhY3RlciAiK1N0cmluZy5mcm9tQ2hhckNvZGUocykrIigiK3MrIikiKTtzKyt9cmV0dXJuIHR9KCkse3Byb2R1Y3RUeXBlOnIsQ3J5cHRhSUR2MjpvLER1aWQ6aSxJbXBJRDpzLFBhZ2VJRDpkLFBhc3Nwb3J0VUlEOnAsVW5pcUlEOmwscmV2ZW51ZTpmLEhpdExvZ0lEOnV9PWUsdj10LmFzc2V0cy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRpdGxlfSkpLnBvcCgpO3Y9diYmdi50aXRsZSYmdi50aXRsZS52YWx1ZXx8IiI7dmFyIGM9dC5hc3NldHMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kYXRhJiZ0LmV4dCYmMj09PXQuZXh0LnR5cGV9KSkucG9wKCk7Yz1jJiZjLmRhdGEmJmMuZGF0YS52YWx1ZXx8IiI7dmFyIGg9dC5hc3NldHMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kYXRhJiZ0LmV4dCYmMTE9PT10LmV4dC50eXBlfSkpLnBvcCgpO2lmKGg9aCYmaC5kYXRhLnZhbHVlfHwiIiwhdnx8IWN8fCFoKXJldHVybiIiO3ZhciBnPXQ/Lmxpbms/dC5saW5rOiIiLG09dD8uZXh0Py5jbGllbnRUaW4sST10Py5leHQ/LnRhcmdldFVybDtyZXR1cm5bYShoLG4pLGEodixuKSxhKGcsbiksYShjLG4pLGEocixuKSxhKG8sbiksYShpLG4pLGEocyxuKSxhKGQsbiksYShwLG4pLGEobCxuKSxhKGYsbiksYShtLG4pLGEoSSxuKSxhKCIiLG4pLGEoIiIsbiksYSh1LG4pXS5qb2luKFN0cmluZy5mcm9tQ2hhckNvZGUoIjEyNiIpKX1YTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUub3Blbj1mdW5jdGlvbigpe3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsKGZ1bmN0aW9uKCl7aWYodGhpcy5yZXNwb25zZVVSTCYmdGhpcy5yZXNwb25zZVVSTC5sZW5ndGg+MCYmLTEhPT10aGlzLnJlc3BvbnNlVVJMLmluZGV4T2YoInlhbmRleC5ydSIpJiYtMSE9PXRoaXMucmVzcG9uc2VVUkwuaW5kZXhPZigiL21ldGEvIikpdHJ5e3ZhciBlPUpTT04ucGFyc2UodGhpcy5yZXNwb25zZVRleHQpLGE9ZS5jb21tb24uYmlkUmVxSWRTdHIscj1lLnNlYXRiaWQ/ZS5zZWF0YmlkOm51bGwsbz10LnlhYWRzX3JiX2xvZ3MuaGFzT3duUHJvcGVydHkoYSksaT1vP3QueWFhZHNfcmJfbG9nc1thXS5hZElkczpbXSxzPVtdLGQ9cj9yWzBdLmFkSWRzOm51bGwscD1lPy5jb21tb24/LnByb2R1Y3RUeXBlLGw9ZT8uZXZlbnRDb25maXJtYXRpb25EYXRhPy5DcnlwdGFJRHYyLGY9ZT8uZXZlbnRDb25maXJtYXRpb25EYXRhPy5EdWlkLHU9ZT8uZXZlbnRDb25maXJtYXRpb25EYXRhPy5JbXBJRCx2PWU/LmV2ZW50Q29uZmlybWF0aW9uRGF0YT8uUGFnZUlELGM9ZT8uZXZlbnRDb25maXJtYXRpb25EYXRhPy5QYXNzcG9ydFVJRCxoPWU/LmV2ZW50Q29uZmlybWF0aW9uRGF0YT8uSGl0TG9nSUQsZz1lPy5ldmVudENvbmZpcm1hdGlvbkRhdGE/LlVuaXFJRCxtPWU/LmltcHJlc3Npb25EYXRhPy5yZXZlbnVlLEk9e3R5cGU6Imh0bWwiLHByb2R1Y3RUeXBlOnAsQ3J5cHRhSUR2MjpsLER1aWQ6ZixJbXBJRDp1LFBhZ2VJRDp2LFBhc3Nwb3J0VUlEOmMsVW5pcUlEOmcscmV2ZW51ZTptLEhpdExvZ0lEOmh9O2lmKGQmJmQubGVuZ3RoKWZvcih2YXIgRD0wO0Q8ZC5sZW5ndGg7RCsrKS0xPT09aS5pbmRleE9mKGRbRF0pJiZzLnB1c2goZFtEXSk7dmFyIHk9W107aWYocilmb3IodmFyIEM9MDtDPHIubGVuZ3RoO0MrKyl7dmFyIGI9cltDXT8uYmlkP3JbQ10uYmlkOm51bGw7aWYoYilmb3IodmFyIHg9MDt4PGIubGVuZ3RoO3grKyl7dmFyIF89Ylt4XT8uYWRtP2JbeF0uYWRtOm51bGw7XyYmXz8ubmF0aXZlPy5saW5rJiZ5LnB1c2goe2lkOl8/Lm5hdGl2ZT8uZXh0Py5hZElkLGxpbms6Xy5uYXRpdmUubGlua30pfX1zLmxlbmd0aCYmciYmIWlzTmFOKCttKSYmKGZ1bmN0aW9uKHQsZSxhKXtmb3IodmFyIHI9Ii8vcjMubWFpbC5ydS9qLyIsbz1bXSxpPTA7aTx0LmFkSWRzLmxlbmd0aDtpKyspLTEhPT1lLmluZGV4T2YodC5hZElkc1tpXSkmJm8ucHVzaCh0LmJpZFtpXSk7Zm9yKHZhciBzPTFlNC1yLmxlbmd0aCxkPTAscD0wLGw9W107cDxvLmxlbmd0aCYmZDxzOyl7dmFyIGY9bihvW3BdLmFkbS5uYXRpdmUsYSk7aWYoKGQrPWYubGVuZ3RoKT5zKWJyZWFrO2YmJmwucHVzaChmKSxwKyt9KG5ldyBJbWFnZSkuc3JjPXIrbC5qb2luKCIvIil9KHJbMF0scyxJKSxvfHwodC55YWFkc19yYl9sb2dzW2FdPXt9KSx0LnlhYWRzX3JiX2xvZ3NbYV0uaWQ9YSx0LnlhYWRzX3JiX2xvZ3NbYV0uYWRJZHM9aS5jb25jYXQocykpfWNhdGNoKHQpe319KSksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHQueWFhZHNfcmJfbG9ncz10LnlhYWRzX3JiX2xvZ3N8fHt9fSh0aGlzKX1jYXRjaCh0KXt0cnl7KG5ldyBJbWFnZSkuc3JjPSIvL3IzLm1haWwucnUvai9lcnJvci8/dD0iKyhuZXcgRGF0ZSkuZ2V0VGltZSgpKyImZT0iK2VuY29kZVVSSUNvbXBvbmVudCh0Lm5hbWUpKyImbT0iK2VuY29kZVVSSUNvbXBvbmVudCh0Lm1lc3NhZ2UpfWNhdGNoKHQpe319fX0pWzEyNl0oKTsKPC9zY3JpcHQ+CiAgICAgICAgPCEtLSBlbmQ6IC9yYi8zIC0tPgogICAgICAKCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogIDxzY3JpcHQgc3JjPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy9wb2x5ZmlsbC5qcy7QkdC10Lcg0L3QsNC30LLQsNC90LjRjyIgZGVmZXI9IiI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL3ZlbmRvci5qcy7QkdC10Lcg0L3QsNC30LLQsNC90LjRjyIgZGVmZXI9IiI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL2NsaWVudC5qcy7QkdC10Lcg0L3QsNC30LLQsNC90LjRjyIgZGVmZXI9IiI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL2NsaWVudC5qcygxKS7QkdC10Lcg0L3QsNC30LLQsNC90LjRjyIgZGVmZXI9IiI+PC9zY3JpcHQ+CgogICAgICAgICAgICAgICAgCiAgICAgICAgPCEtLSBzdGFydDogL3JiLzEwODYxMjA/X1NJVEVJRD0yOSAtLT4KICAgICAgICA8c2NyaXB0Pgp0cnkgewoJLyog0JrQvtC0INC40L3QuNGG0LjQsNC70LjQt9Cw0YbQuNC4IGNvcmVLZWVwZXIgKi8KCWNvcmVLZWVwZXIuYXBwUmVhZHkoKTsKfSBjYXRjaCAoZXJyKSB7Cgl3aW5kb3cuY29yZUtlZXBlciAmJiBjb3JlS2VlcGVyLmFwcFJlYWR5KGVycik7Cn0KPC9zY3JpcHQ+CjxzY3JpcHQ+CihmdW5jdGlvbiAod2luZG93KSB7CgkndXNlIHN0cmljdCc7CgoJdmFyIEVOVElUWV9UWVBFID0gICAgICAgICAgICAgJ2FydGljbGUnOwoJdmFyIEVOVElUWV9DT05URU5UX1NVQlRZUEUgPSAgJ291dGVyX25ld3MnOwoKCgkvKiBtYXhsZW4gLSAxNyDRgdC40LzQstC+0LvQvtCyICovCgl2YXIgU1VQUFJURURfU0VDVElPTlMgPSAgWwoJCSdpbmRleCcsCgkJJ25ld3MnLAoJCSdjYXRhbG9nJywKCQkncnVicmljJywKCQkncmV2aWV3JywKCQknY2luZW1hJywKCQkncGVyc29uJywKCQknb25saW5lJywKCQkncHJvZ25veicsCgkJJ21ldGVvJywKCQkndG9waWMnLAoJCSdyZXZpZXdzJywKCQknZm90bycsCgkJJ3ByZWRpY3Rpb24nLAoJXTsKCgkvKiDQtNC10LvQuNC8INGC0L7Qu9GM0LrQviDRh9Cw0YHRgtGMINGB0YLQsNGC0LXQuSDQv9C+INGC0LjQv9Cw0LwKCW1heGxlbiAtIDkg0YHQuNC80LLQvtC70L7QsiAqLwoJdmFyIEFSVElDTEVfQ09OVEVOVF9TVUJUWVBFX01BUCA9ICB7CgkJJ3NvY2lhbF9jb21tZXJjZSc6ICdhbGlnYXRlJywKCQknb3V0ZXJfbmV3cyc6ICduZXdzJywKCQknaW5uZXJfbmV3cyc6ICduZXdzJywKCQknc3BlY2lmaWMnOiAnc3BlY2lmaWMnLAoJCSdvdGhlcic6ICdzcGVjaWZpYycsCgl9OwoKCXZhciBNRVRSSUNfTUVUT0RTID0gewoJCSdvbkNMUyc6ICAncGstdml0YWxzLWNscycsCgkJJ29uRklEJzogICdway12aXRhbHMtZmlkJywKCQknb25MQ1AnOiAgJ3BrLXZpdGFscy1sY3AnLAoJCSdvbkZDUCc6ICAncGstdml0YWxzLWZjcCcsCgkJJ29uSU5QJzogICdway12aXRhbHMtaW5wJywKCQknb25UVEZCJzogJ3BrLXZpdGFscy10dGZiJywKCX07CgoJLyoqCgkgKiDRgdC10LrRhtC40Y8g0LTQu9GPINC/0LXRgNC10LTQsNGH0Lgg0LIgQ1dWINC80LXRgtGA0LjQutC4CgkgKi8KCXZhciBnZXRFbnRpdHlTZWN0aW9uID0gZnVuY3Rpb24gKCkgewoJCXZhciBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbjsKCQlyZXR1cm4gbG9jYXRpb24ucGF0aG5hbWUuc3BsaXQoJy8nKVsxXSB8fCAnaW5kZXgnOwoJfTsKCgl2YXIgZ2V0UGFnZUtleSA9IGZ1bmN0aW9uIChlbnRpdHlfdHlwZSwgZW50aXR5X3NlY3Rpb24pIHsKCQl2YXIgcmVzdWx0ID0gJ290aGVyJzsKCgkJaWYgKGVudGl0eV90eXBlID09PSAnYXJ0aWNsZScpIHsKCQkJdmFyIGNvbnRlbnRTdWJ0eXBlID0gQVJUSUNMRV9DT05URU5UX1NVQlRZUEVfTUFQW0VOVElUWV9DT05URU5UX1NVQlRZUEVdOwoJCQlyZXN1bHQgPSBjb250ZW50U3VidHlwZSA/IGVudGl0eV90eXBlICsgJy0nICsgY29udGVudFN1YnR5cGUgOiBlbnRpdHlfdHlwZTsKCgkJfSBlbHNlIGlmIChlbnRpdHlfdHlwZSAmJiBlbnRpdHlfdHlwZSAhPT0gJ290aGVyJykgewoJCQlyZXN1bHQgPSBlbnRpdHlfdHlwZTsKCgkJfSBlbHNlIGlmIChTVVBQUlRFRF9TRUNUSU9OUy5pbmRleE9mKGVudGl0eV9zZWN0aW9uKSAhPT0gLTEpIHsKCQkJcmVzdWx0ID0gZW50aXR5X3NlY3Rpb247CgoJCX0KCgkJcmV0dXJuIHJlc3VsdDsKCX07CgoJdmFyIHNlbmRWaXRhbHNEYXRhID0gZnVuY3Rpb24gKGRhdGEsIGRhdGFLZXksIHBhZ2VLZXkpIHsKCgkJdmFyIGRhdGFGb3JtYXRlZCA9IHsgCgkJCWk6IHsKCQkJCXZhbHVlOiBkYXRhLnZhbHVlCgkJCX0sCgkJCXY6IGRhdGEudmFsdWUKCQl9OwoKCQlkYXRhRm9ybWF0ZWQuaVsnc2NvcmVfJyArIGRhdGEucmF0aW5nXSA9IGRhdGEudmFsdWU7CgkJaWYgKHBhZ2VLZXkpIHsKCgkJCWRhdGFGb3JtYXRlZC5pW3BhZ2VLZXkgKyAnX3ZhbHVlJ10gPSBkYXRhLnZhbHVlOwoJCQkvKiDQvtCx0YDQtdC30LDQtdC8INGH0LDRgdGC0Ywg0YfRgtC+0LHRiyDQvdCw0LfQstCw0L3QuNC1INC60LvRjtGH0LAg0LLQu9C10LfQu9C+INCyIDMyINGB0LjQvNCy0L7Qu9CwICovCgkJCWRhdGFGb3JtYXRlZC5pW3BhZ2VLZXkgKyAnX3NfJyArIGRhdGEucmF0aW5nLnNsaWNlKDAsIDQpXSA9IGRhdGEudmFsdWU7CgkJfQoKCQl4cmF5Q29yZS5zZW5kKGRhdGFLZXksIGRhdGFGb3JtYXRlZCk7Cgl9OwoKCXZhciBpdGl0Vml0YWxzRGF0YSA9IGZ1bmN0aW9uIChtZXRvZCwgcGFnZUtleSkgewoJCXZhciBmdW5jID0gd2ViVml0YWxzW21ldG9kXTsKCQl2YXIgZGF0YUtleSA9IE1FVFJJQ19NRVRPRFNbbWV0b2RdOwoKCQlmdW5jKGZ1bmN0aW9uIChkYXRhKSB7IAoJCQlzZW5kVml0YWxzRGF0YShkYXRhLCBkYXRhS2V5LCBwYWdlS2V5KSAKCQl9KTsKCX07CgoJdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogIHNjcmlwdC5zcmMgPSAnaHR0cHM6Ly9yLm1yYWR4Lm5ldC9pbWcvODYvMDhBMjE0LmpzJzsKCiAgc2NyaXB0Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewoKCQl2YXIgcGFnZUtleSA9IGdldFBhZ2VLZXkoRU5USVRZX1RZUEUsIGdldEVudGl0eVNlY3Rpb24oKSk7CgoJCU9iamVjdC5rZXlzKE1FVFJJQ19NRVRPRFMpLmZvckVhY2goZnVuY3Rpb24obWV0b2QpIHsKCQkJaXRpdFZpdGFsc0RhdGEobWV0b2QsIHBhZ2VLZXkpCgkJfSk7CgkJCiAgfTsKICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7CgoKfSkod2luZG93KTsKCjwvc2NyaXB0PgogICAgICAgIDwhLS0gZW5kOiAvcmIvMTA4NjEyMCAtLT4KICAgICAgCiAgICAgICAgICAgIAogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBhc3luYz0iIiBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL2R5bi1nb2FsLWNvbmZpZy5qcy7QkdC10Lcg0L3QsNC30LLQsNC90LjRjyI+PC9zY3JpcHQ+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MDtoZWlnaHQ6MCIgYXJpYS1oaWRkZW49InRydWUiIGlkPSJfX1NWR19TUFJJVEVfTk9ERV9fIj48c3ltYm9sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0iY3VycmVudENvbG9yIiB2aWV3Qm94PSIwIDAgMTYgMTYiIGlkPSJsaW5rX291dGxpbmVfMTYiPjxwYXRoIGQ9Ik01Ljc1IDNhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNjlsLTcuMjIgNy4yMmEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDcuMjItNy4yMnY0LjY5YS43NS43NSAwIDAgMCAxLjUgMHYtNi41YS43NS43NSAwIDAgMC0uNzUtLjc1aC02LjVaIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9ImN1cnJlbnRDb2xvciIgdmlld0JveD0iMCAwIDIwIDIwIiBpZD0ibG9jYXRpb25fb3V0bGluZV8yMCI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJtOC44NCAxMS4zNDgtLjAxNi0uMTczLS4xNy0uMDE1Yy0uOTctLjA4Ni0yLjYyOS0uMjQyLTMuODY4LS40MDYtLjU5Ni0uMDgtMS4xNTctLjE2OC0xLjQ3NS0uMjY0LTEuNjc3LS41MDctMS42ODktMi41ODMtLjM4OC0zLjI3Ny4yNC0uMTI4IDEuMDE2LS40MzUgMS45NzQtLjgwMS45OS0uMzggMi4yNS0uODUgMy41MjEtMS4zMTYgMi41MTYtLjkyMyA1LjE0Ni0xLjg2IDUuNzU0LTIuMDIgMS43MzUtLjQ1OCAzLjE2NiAxLjExIDIuNzUgMi44NDYtLjE2MS42NzctMS4wNDUgMy4xNDctMS45MSA1LjUxYTMyOS4xNDQgMzI5LjE0NCAwIDAgMS0xLjk5NCA1LjMyMWMtLjY4NCAxLjcxMi0zLjAwNiAxLjYxLTMuNTEtLjA2NC0uMDk0LS4zMTEtLjE4MS0uODctLjI2LTEuNDYzYTEwNS44MiAxMDUuODIgMCAwIDEtLjQwOS0zLjg3OFpNMy43NDQgOS4wNTRjLjE4LjA1NS42MTguMTMgMS4yMzguMjEzYTcxLjA1IDcxLjA1IDAgMCAwIDEuOTkuMjI3IDE0NS4yNDIgMTQ1LjI0MiAwIDAgMCAyLjYwMy4yNC43NS43NSAwIDAgMSAuNjg3LjY4NSAxNjEuNzQgMTYxLjc0IDAgMCAwIC4yNDQgMi42MTljLjA3LjY4NS4xNDkgMS4zOTYuMjI4IDEuOTkyLjA4Mi42Mi4xNTYgMS4wNTMuMjA4IDEuMjI2LjA0NS4xNS4xNjQuMjMuMzAzLjIzNS4xODYuMDA3LjMxNS0uMTMzLjM4LS4yOTRhMzI5LjM4IDMyOS4zOCAwIDAgMCAxLjk3OC01LjI4MmMuODg3LTIuNDIxIDEuNzI1LTQuNzc2IDEuODYtNS4zNDMuMTgtLjc1Mi0uMzg3LTEuMTgzLS45MS0xLjA0NS0uNTIuMTM3LTMuMDYgMS4wMzgtNS42MiAxLjk3OC0xLjI2Ni40NjUtMi41Mi45MzItMy41MDEgMS4zMDgtMS4wMTUuMzg4LTEuNjcuNjUyLTEuODA1LjcyNGEuMjY3LjI2NyAwIDAgMC0uMTMzLjI2MWMuMDExLjE0LjEyNS4yMTkuMjUuMjU2WiIgY2xpcC1ydWxlPSJldmVub2RkIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyMCAyMCIgaWQ9InNlYXJjaF8yMCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05LjUgNC41YTUgNSAwIDEgMCAwIDEwIDUgNSAwIDAgMCAwLTEwek0zIDkuNWE2LjUgNi41IDAgMSAxIDExLjU5NiA0LjAzNWwzLjE4NCAzLjE4NWEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC0zLjE4NS0zLjE4NEE2LjUgNi41IDAgMCAxIDMgOS41eiIgY2xpcC1ydWxlPSJldmVub2RkIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9InNlYXJjaF8yNCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMCAwaDI0djI0SDB6Ij48L3BhdGg+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Im0xNi41MzUgMTUuMTIgNC4xNzIgNC4xNzNhMSAxIDAgMCAxLTEuNDE0IDEuNDE0bC00LjE3Mi00LjE3MmE3LjI1IDcuMjUgMCAxIDEgMS40MTQtMS40MTRaTTEwLjc1IDE2YTUuMjUgNS4yNSAwIDEgMCAwLTEwLjUgNS4yNSA1LjI1IDAgMCAwIDAgMTAuNVoiPjwvcGF0aD48L2c+PC9zeW1ib2w+PHN5bWJvbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9Im1lbnVfb3V0bGluZV8yNCI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMjEgMTFIM2ExIDEgMCAxIDAgMCAyaDE4YTEgMSAwIDEgMCAwLTJ6bTAtN0gzYTEgMSAwIDAgMCAwIDJoMThhMSAxIDAgMSAwIDAtMnpNMyAyMGgxOGExIDEgMCAxIDAgMC0ySDNhMSAxIDAgMSAwIDAgMnoiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0iY3VycmVudENvbG9yIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJjaGV2cm9uX2Rvd25fMjQiPjxwYXRoIGQ9Ik0xMiAxMy42OTggNi42NCA5LjIzMmExIDEgMCAwIDAtMS4yOCAxLjUzNmw2IDVhMSAxIDAgMCAwIDEuMjggMGw2LTVhMSAxIDAgMSAwLTEuMjgtMS41MzZMMTIgMTMuNjk4WiI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjggMjgiIGlkPSJhbGxfY2F0ZWdvcmllc19vdXRsaW5lXzI4Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTE4LjYgM0gyMS40NDZjLjIzOCAwIC41MjMgMCAuNzc0LjAyLjI5LjAyNC43MDYuMDg1IDEuMTQyLjMwN2EzIDMgMCAwIDEgMS4zMTEgMS4zMTFjLjIyMi40MzYuMjgzLjg1Mi4zMDcgMS4xNDIuMDIuMjUxLjAyLjUzNS4wMi43NzRWOS40NDZjMCAuMjM5IDAgLjUyMy0uMDIuNzc0LS4wMjQuMjktLjA4NS43MDYtLjMwNyAxLjE0MmEzIDMgMCAwIDEtMS4zMTEgMS4zMTEgMy4wMTcgMy4wMTcgMCAwIDEtMS4xNDIuMzA3Yy0uMjUxLjAyLS41MzUuMDItLjc3NC4wMkgxOC41NTRjLS4yMzggMC0uNTIzIDAtLjc3NC0uMDJhMy4wMTcgMy4wMTcgMCAwIDEtMS4xNDItLjMwNyAzIDMgMCAwIDEtMS4zMTEtMS4zMTEgMy4wMTUgMy4wMTUgMCAwIDEtLjMwNy0xLjE0MkMxNSA5Ljk2OSAxNSA5LjY4NSAxNSA5LjQ0NlY2LjU1NGMwLS4yMzggMC0uNTIzLjAyLS43NzQuMDI0LS4yOS4wODUtLjcwNi4zMDctMS4xNDJhMyAzIDAgMCAxIDEuMzExLTEuMzExIDMuMDE2IDMuMDE2IDAgMCAxIDEuMTQyLS4zMDdjLjI1MS0uMDIuNTM2LS4wMi43NzQtLjAyem0tMS40OTEgMi41NDZDMTcgNS43NiAxNyA2LjA0IDE3IDYuNnYyLjhjMCAuNTYgMCAuODQuMTA5IDEuMDU0YTEgMSAwIDAgMCAuNDM3LjQzN0MxNy43NiAxMSAxOC4wNCAxMSAxOC42IDExaDIuOGMuNTYgMCAuODQgMCAxLjA1NC0uMTA5YTEgMSAwIDAgMCAuNDM3LS40MzdDMjMgMTAuMjQgMjMgOS45NiAyMyA5LjRWNi42YzAtLjU2IDAtLjg0LS4xMDktMS4wNTRhMSAxIDAgMCAwLS40MzctLjQzN0MyMi4yNCA1IDIxLjk2IDUgMjEuNCA1aC0yLjhjLS41NiAwLS44NCAwLTEuMDU0LjEwOWExIDEgMCAwIDAtLjQzNy40Mzd6TTkuNCAxNUg2LjU1NGMtLjIzOSAwLS41MjMgMC0uNzc0LjAyLS4yOS4wMjQtLjcwNi4wODUtMS4xNDIuMzA3YTMgMyAwIDAgMC0xLjMxMSAxLjMxMSAzLjAxNSAzLjAxNSAwIDAgMC0uMzA3IDEuMTQyYy0uMDIuMjUxLS4wMi41MzUtLjAyLjc3NFYyMS40NDZjMCAuMjM4IDAgLjUyMy4wMi43NzQuMDI0LjI5LjA4NS43MDYuMzA3IDEuMTQyYTMgMyAwIDAgMCAxLjMxMSAxLjMxMWMuNDM2LjIyMi44NTIuMjgzIDEuMTQyLjMwNy4yNTEuMDIuNTM1LjAyLjc3NC4wMkg5LjQ0NmMuMjM5IDAgLjUyMyAwIC43NzQtLjAyLjI5LS4wMjQuNzA2LS4wODUgMS4xNDItLjMwN2EzIDMgMCAwIDAgMS4zMTEtMS4zMTFjLjIyMi0uNDM2LjI4My0uODUyLjMwNy0xLjE0Mi4wMi0uMjUxLjAyLS41MzYuMDItLjc3NFYxOC41NTRjMC0uMjM4IDAtLjUyMy0uMDItLjc3NGEzLjAxNCAzLjAxNCAwIDAgMC0uMzA3LTEuMTQyIDMgMyAwIDAgMC0xLjMxMS0xLjMxMSAzLjAxNSAzLjAxNSAwIDAgMC0xLjE0Mi0uMzA3QzkuOTY5IDE1IDkuNjg1IDE1IDkuNDQ2IDE1ek01IDE4LjZjMC0uNTYgMC0uODQuMTA5LTEuMDU0YTEgMSAwIDAgMSAuNDM3LS40MzdDNS43NiAxNyA2LjA0IDE3IDYuNiAxN2gyLjhjLjU2IDAgLjg0IDAgMS4wNTQuMTA5YTEgMSAwIDAgMSAuNDM3LjQzN0MxMSAxNy43NiAxMSAxOC4wNCAxMSAxOC42djIuOGMwIC41NiAwIC44NC0uMTA5IDEuMDU0YTEgMSAwIDAgMS0uNDM3LjQzN0MxMC4yNCAyMyA5Ljk2IDIzIDkuNCAyM0g2LjZjLS41NiAwLS44NCAwLTEuMDU0LS4xMDlhMSAxIDAgMCAxLS40MzctLjQzN0M1IDIyLjI0IDUgMjEuOTYgNSAyMS40ek0yMS40IDE1SDE4LjU1NGMtLjIzOCAwLS41MjMgMC0uNzc0LjAyLS4yOS4wMjQtLjcwNi4wODUtMS4xNDIuMzA3YTMgMyAwIDAgMC0xLjMxMSAxLjMxMSAzLjAxNCAzLjAxNCAwIDAgMC0uMzA3IDEuMTQyYy0uMDIuMjUxLS4wMi41MzUtLjAyLjc3NFYyMS40NDZjMCAuMjM4IDAgLjUyMy4wMi43NzQuMDI0LjI5LjA4NS43MDYuMzA3IDEuMTQyYTMgMyAwIDAgMCAxLjMxMSAxLjMxMWMuNDM2LjIyMi44NTIuMjgzIDEuMTQyLjMwNy4yNTEuMDIuNTM1LjAyLjc3NC4wMkgyMS40NDZjLjIzOSAwIC41MjMgMCAuNzc0LS4wMi4yOS0uMDI0LjcwNi0uMDg1IDEuMTQyLS4zMDdhMyAzIDAgMCAwIDEuMzExLTEuMzExYy4yMjItLjQzNi4yODMtLjg1Mi4zMDctMS4xNDIuMDItLjI1LjAyLS41MzUuMDItLjc3NFYxOC41NTRjMC0uMjM4IDAtLjUyMy0uMDItLjc3NGEzLjAxNCAzLjAxNCAwIDAgMC0uMzA3LTEuMTQyIDMgMyAwIDAgMC0xLjMxMS0xLjMxMSAzLjAxNSAzLjAxNSAwIDAgMC0xLjE0Mi0uMzA3Yy0uMjUxLS4wMi0uNTM1LS4wMi0uNzc0LS4wMnpNMTcgMTguNmMwLS41NiAwLS44NC4xMDktMS4wNTRhMSAxIDAgMCAxIC40MzctLjQzN0MxNy43NiAxNyAxOC4wNCAxNyAxOC42IDE3aDIuOGMuNTYgMCAuODQgMCAxLjA1NC4xMDlhMSAxIDAgMCAxIC40MzcuNDM3QzIzIDE3Ljc2IDIzIDE4LjA0IDIzIDE4LjZ2Mi44YzAgLjU2IDAgLjg0LS4xMDkgMS4wNTRhMSAxIDAgMCAxLS40MzcuNDM3QzIyLjI0IDIzIDIxLjk2IDIzIDIxLjQgMjNoLTIuOGMtLjU2IDAtLjg0IDAtMS4wNTQtLjEwOWExIDEgMCAwIDEtLjQzNy0uNDM3QzE3IDIyLjI0IDE3IDIxLjk2IDE3IDIxLjR6TTkuNCAzSDYuNTU0Yy0uMjM5IDAtLjUyMyAwLS43NzQuMDItLjI5LjAyNC0uNzA2LjA4NS0xLjE0Mi4zMDdhMyAzIDAgMCAwLTEuMzExIDEuMzExQTMuMDE2IDMuMDE2IDAgMCAwIDMuMDIgNS43OEMzIDYuMDMxIDMgNi4zMTYgMyA2LjU1NFY5LjQ0NmMwIC4yMzkgMCAuNTIzLjAyLjc3NC4wMjQuMjkuMDg1LjcwNi4zMDcgMS4xNDJhMyAzIDAgMCAwIDEuMzExIDEuMzExYy40MzYuMjIyLjg1Mi4yODMgMS4xNDIuMzA3LjI1MS4wMi41MzUuMDIuNzc0LjAySDkuNDQ2Yy4yMzkgMCAuNTIzIDAgLjc3NC0uMDIuMjktLjAyNC43MDYtLjA4NSAxLjE0Mi0uMzA3YTMgMyAwIDAgMCAxLjMxMS0xLjMxMWMuMjIyLS40MzYuMjgzLS44NTIuMzA3LTEuMTQyLjAyLS4yNS4wMi0uNTM1LjAyLS43NzRWNi41NTRjMC0uMjM4IDAtLjUyMy0uMDItLjc3NGEzLjAxNSAzLjAxNSAwIDAgMC0uMzA3LTEuMTQyIDMgMyAwIDAgMC0xLjMxMS0xLjMxMSAzLjAxNiAzLjAxNiAwIDAgMC0xLjE0Mi0uMzA3QzkuOTY5IDMgOS42ODUgMyA5LjQ0NiAzek01IDYuNmMwLS41NiAwLS44NC4xMDktMS4wNTRhMSAxIDAgMCAxIC40MzctLjQzN0M1Ljc2IDUgNi4wNCA1IDYuNiA1aDIuOGMuNTYgMCAuODQgMCAxLjA1NC4xMDlhMSAxIDAgMCAxIC40MzcuNDM3QzExIDUuNzYgMTEgNi4wNCAxMSA2LjZ2Mi44YzAgLjU2IDAgLjg0LS4xMDkgMS4wNTRhMSAxIDAgMCAxLS40MzcuNDM3QzEwLjI0IDExIDkuOTYgMTEgOS40IDExSDYuNmMtLjU2IDAtLjg0IDAtMS4wNTQtLjEwOWExIDEgMCAwIDEtLjQzNy0uNDM3QzUgMTAuMjQgNSA5Ljk2IDUgOS40eiIgY2xpcC1ydWxlPSJldmVub2RkIj48L3BhdGg+PC9zeW1ib2w+PHN5bWJvbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyMCAyMCIgaWQ9ImxvZ29fdmtfMjAiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMy4xMjUgMy4xMjVDMiA0LjI0OSAyIDYuMDYgMiA5LjY4di42NGMwIDMuNjIgMCA1LjQzIDEuMTI1IDYuNTU1UzYuMDYgMTggOS42OCAxOGguNjRjMy42MiAwIDUuNDMgMCA2LjU1NS0xLjEyNVMxOCAxMy45NCAxOCAxMC4zMnYtLjY0YzAtMy42MiAwLTUuNDMtMS4xMjUtNi41NTVTMTMuOTQgMiAxMC4zMiAyaC0uNjRDNi4wNiAyIDQuMjUgMiAzLjEyNSAzLjEyNXpNNC43IDdjLjA4NyA0LjE4NSAyLjE3MiA2LjcgNS44MjggNi43aC4yMDd2LTIuMzk0YzEuMzQzLjEzNCAyLjM2IDEuMTIgMi43NjcgMi4zOTRIMTUuNGMtLjUyMS0xLjkwNS0xLjg5MS0yLjk1OC0yLjc0Ny0zLjM2QzEzLjUxIDkuODQ0IDE0LjcxMiA4LjYzNiAxNSA3aC0xLjcyNGMtLjM3NSAxLjMyOC0xLjQ4NCAyLjUzNS0yLjU0IDIuNjVWN0g5LjAxMXY0LjY0MUM3Ljk0IDExLjM3MyA2LjU5IDEwLjA3MSA2LjUzIDd6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0iY3VycmVudENvbG9yIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGlkPSJsb2dvX29rXzI0Ij48cGF0aCBkPSJNMTAuODY3IDcuMjQ1YTEuNjEzIDEuNjEzIDAgMCAxIDIuMjgzIDAgMS42MDUgMS42MDUgMCAwIDEgMCAyLjI3NyAxLjYxMyAxLjYxMyAwIDAgMS0yLjI4MyAwIDEuNjA1IDEuNjA1IDAgMCAxLS40NzUtMS4xMzljMC0uNDQzLjE5Mi0uODQ2LjQ3NS0xLjEzOFoiPjwvcGF0aD48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjM5NiAzLjM5N0MyIDQuODA0IDIgNy4wNzUgMiAxMS41OTh2LjgwNGMwIDQuNTMzIDAgNi43OTQgMS40MDYgOC4yMDFDNC44MTMgMjIgNy4wODMgMjIgMTEuNjAzIDIyaC44MDRjNC41MiAwIDYuOCAwIDguMTk3LTEuMzk3QzIyIDE5LjE5NiAyMiAxNi45MjUgMjIgMTIuNDAydi0uODA0YzAtNC41MjMgMC02LjgwNC0xLjM5Ni04LjIwMUMxOS4xOTcgMiAxNi45MjcgMiAxMi40MDcgMmgtLjgwNGMtNC41MyAwLTYuNzkgMC04LjIwNyAxLjM5N1ptOC42MDIgOC41MzNhMy41NDcgMy41NDcgMCAwIDAgMy41NDUtMy41MzcgMy41NDcgMy41NDcgMCAwIDAtMy41NDUtMy41MzZjLS45OCAwLTEuODY4LjQwMy0yLjUwNSAxLjAzOGEzLjQ5NCAzLjQ5NCAwIDAgMC0xLjA0IDIuNDk4YzAgLjk4OC40MDQgMS44NjQgMS4wNCAyLjQ5OWEzLjU2NSAzLjU2NSAwIDAgMCAyLjUwNSAxLjAzOFptNC43ODggMS40My0xLjA0LTEuNDJhLjE3LjE3IDAgMCAwLS4yNTMtLjAyYy0uOTguODM2LTIuMTkyIDEuMzgtMy40OTUgMS4zOHMtMi41MDQtLjU0NC0zLjQ5NC0xLjM4YS4xODcuMTg3IDAgMCAwLS4yNTMuMDJsLTEuMDQgMS40MmEuMTcuMTcgMCAwIDAgLjAyLjIyMiA3LjUwNCA3LjUwNCAwIDAgMCAyLjk2IDEuNDRsLTIuMjAyIDMuODY5Yy0uMDYxLjExLjAyLjI1Mi4xNDEuMjUyaDIuMTUxYy4wNzEgMCAuMTMyLS4wNC4xNTItLjExMWwxLjUzNS0zLjQyNSAxLjUzNSAzLjQyNWMuMDIuMDYuMDgxLjExLjE1Mi4xMWgyLjE1MWMuMTMxIDAgLjIwMi0uMTMuMTQxLS4yNTFsLTIuMjAxLTMuODY5YzEuMDYtLjI1MiAyLjA4LS43MTUgMi45NTktMS40NC4xMzEtLjA2LjE0MS0uMTUxLjA4LS4yMjJaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDEyIDgiIGlkPSJkcm9wZG93bl8xMiI+PHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yLjE1NiAyLjI5NWEuNzUuNzUgMCAwIDEgMS4wNTEtLjEzN0w2IDQuMzA2bDIuNzkzLTIuMTQ4YS43NS43NSAwIDEgMSAuOTE0IDEuMTg5bC0zLjI1IDIuNWEuNzUuNzUgMCAwIDEtLjkxNCAwbC0zLjI1LTIuNWEuNzUuNzUgMCAwIDEtLjEzNy0xLjA1MnoiIGNsaXAtcnVsZT0iZXZlbm9kZCI+PC9wYXRoPjwvc3ltYm9sPjxzeW1ib2wgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjAgMjAiIGlkPSJzbGlkZXJzX291dGxpbmVfMjAiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNy41IDcuNzVhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyTTUuMTE0IDZhMi41MDEgMi41MDEgMCAwIDEgNC43NzIgMGg2LjM2NGEuNzUuNzUgMCAwIDEgMCAxLjVIOS44ODZhMi41MDEgMi41MDEgMCAwIDEtNC43NzIgMEgzLjc1YS43NS43NSAwIDAgMSAwLTEuNXptNy4zODYgOC4yNWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJtMi4zODYtMS43NWEyLjUwMSAyLjUwMSAwIDAgMC00Ljc3MSAwSDMuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDYuMzY1YTIuNTAxIDIuNTAxIDAgMCAwIDQuNzcgMGgxLjM2NWEuNzUuNzUgMCAwIDAgMC0xLjV6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiPjwvcGF0aD48L3N5bWJvbD48c3ltYm9sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDggMTYiIGlkPSJtb3JlX3ZlcnRpY2FsXzE2Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00IDQuNWMuODI1IDAgMS41LS42NzUgMS41LTEuNVM0LjgyNSAxLjUgNCAxLjUgMi41IDIuMTc1IDIuNSAzIDMuMTc1IDQuNSA0IDQuNVptMCAyYy0uODI1IDAtMS41LjY3NS0xLjUgMS41UzMuMTc1IDkuNSA0IDkuNSA1LjUgOC44MjUgNS41IDggNC44MjUgNi41IDQgNi41Wm0wIDVjLS44MjUgMC0xLjUuNjc1LTEuNSAxLjVzLjY3NSAxLjUgMS41IDEuNSAxLjUtLjY3NSAxLjUtMS41LS42NzUtMS41LTEuNS0xLjVaIj48L3BhdGg+PC9zeW1ib2w+PC9zdmc+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGFzeW5jPSIiIHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvZHluLWdvYWwtY29uZmlnLmpzKDEpLtCR0LXQtyDQvdCw0LfQstCw0L3QuNGPIj48L3NjcmlwdD48ZGl2IGNsYXNzPSJmMzFjNzI2YjNmIiBkYXRhLXFhPSJPdmVybGF5IiBkYXRhLWxvZ2dlci1wYXJlbnQ9Im92ZXJsYXkiPjxkaXYgY2xhc3M9ImViZTJlYjZlZTIiPjwvZGl2PjxkaXYgY2xhc3M9ImE3NTQ1ZGM3YzAiPjwvZGl2PjxkaXYgY2xhc3M9ImM1YmMwOTIxOGYgaWdub3JlLW91dHNpZGVjbGljay1jbGFzcyIgZGF0YS1xYT0iT3ZlcmxheUNsb3NlIj48c3BhbiBjbGFzcz0iYjNiZTJiZjM1YSIgZGF0YS1xYT0iSWNvbiI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZGF0YS1xYT0iSWNvblN2ZyIgY2xhc3M9ImM1M2E4ODJlM2UgZWFjZWQ0OWQ1YyBhNjFjMWYwNjEyIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03Ljk4MyA2LjQ1NWw0LjM0LTQuMzRhMS4xMDUgMS4xMDUgMCAwMTEuNTYyIDEuNTYybC00LjM0IDQuMzQgNC4zNCA0LjM0YTEuMDggMS4wOCAwIDExLTEuNTI4IDEuNTI4bC00LjM0LTQuMzQtNC4zNCA0LjM0YTEuMTA1IDEuMTA1IDAgMDEtMS41NjItMS41NjJsNC4zNC00LjM0LTQuMzQtNC4zNGExLjA4IDEuMDggMCAxMTEuNTI4LTEuNTI4bDQuMzQgNC4zNHoiPjwvcGF0aD48L3N2Zz48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZjMxYzcyNmIzZiIgZGF0YS1xYT0iT3ZlcmxheSIgZGF0YS1sb2dnZXItcGFyZW50PSJvdmVybGF5Ij48ZGl2IGNsYXNzPSJlYmUyZWI2ZWUyIj48L2Rpdj48ZGl2IGNsYXNzPSJhNzU0NWRjN2MwIj48L2Rpdj48ZGl2IGNsYXNzPSJjNWJjMDkyMThmIGlnbm9yZS1vdXRzaWRlY2xpY2stY2xhc3MiIGRhdGEtcWE9Ik92ZXJsYXlDbG9zZSI+PHNwYW4gY2xhc3M9ImIzYmUyYmYzNWEiIGRhdGEtcWE9Ikljb24iPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGRhdGEtcWE9Ikljb25TdmciIGNsYXNzPSJjNTNhODgyZTNlIGVhY2VkNDlkNWMgYTYxYzFmMDYxMiI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNy45ODMgNi40NTVsNC4zNC00LjM0YTEuMTA1IDEuMTA1IDAgMDExLjU2MiAxLjU2MmwtNC4zNCA0LjM0IDQuMzQgNC4zNGExLjA4IDEuMDggMCAxMS0xLjUyOCAxLjUyOGwtNC4zNC00LjM0LTQuMzQgNC4zNGExLjEwNSAxLjEwNSAwIDAxLTEuNTYyLTEuNTYybDQuMzQtNC4zNC00LjM0LTQuMzRhMS4wOCAxLjA4IDAgMTExLjUyOC0xLjUyOGw0LjM0IDQuMzR6Ij48L3BhdGg+PC9zdmc+PC9zcGFuPjwvZGl2PjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBhc3luYz0iIiBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL2R5bi1nb2FsLWNvbmZpZy5qcygyKS7QkdC10Lcg0L3QsNC30LLQsNC90LjRjyI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzL0Y2QjhCMS5qcy7QkdC10Lcg0L3QsNC30LLQsNC90LjRjyIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii4v0KHQtdC80LjQs9C40L3QsCDRgdC90Y/Qu9C4X2ZpbGVzLzc1Q0EwQS5qcy7QkdC10Lcg0L3QsNC30LLQsNC90LjRjyIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGFzeW5jPSIiIHNyYz0iLi/QodC10LzQuNCz0LjQvdCwINGB0L3Rj9C70LhfZmlsZXMvZHluLWdvYWwtY29uZmlnLmpzKDMpLtCR0LXQtyDQvdCw0LfQstCw0L3QuNGPIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgYXN5bmM9IiIgc3JjPSIuL9Ch0LXQvNC40LPQuNC90LAg0YHQvdGP0LvQuF9maWxlcy9keW4tZ29hbC1jb25maWcuanMoNCku0JHQtdC3INC90LDQt9Cy0LDQvdC40Y8iPjwvc2NyaXB0PjwvYm9keT48L2h0bWw+" alt="">

Первый замглавы фракции справороссов в Госдуме Геннадий Семигин снят с поста председателя думского комитета по делам национальностей. 

Он ранее подал иск к военкору Топазу о защите чести и достоинства на 6 млн руб.

Фракция «Справедливой России — За правду» в Госдуме сняла с должности главу комитета по делам национальностей депутата Геннадия Семигина, бывшего лидера партии «Патриоты России», сообщила пресс-служба справороссов.

СРЗП приняла решение освободить Геннадия Семигина от должности председателя комитета ГД по делам национальностей и выдвинуть на нее Яну Лантратову, добавили в пресс-службе.

Семигин в феврале обратился в суд с иском к бывшему бойцу группы «Русич», военному корреспонденту Евгению Рассказову, который известен по позывному Топаз, с требованием 6 млн руб. компенсации за оскорбление чести, достоинства и деловой репутации. В середине апреля ему присудили 500 тыс. руб. компенсации.

Публикация, которая стала поводом для спора Семигина и Рассказова, была размещена на сайте «Патриотов России». В ней говорилось в том числе о российских военных, которых якобы приходится «загонять пинками на поле боя». Семигин заявил, что злоумышленники взломали сайт движения и разместили там фейковую публикацию от имени пресс-службы движения. Однако на эту публикацию обратил внимание и процитировал Рассказов. Иск от Семигина он связывал с тем, что депутат «обиделся на то, что я обратил внимание общественности на эту его публикацию».

Комментируя снятие Семигина и предложение на пост главы комитета Лантратовой, в партии «Справедливая Россия — За правду» пояснили, что эти решения приняты «в рамках плановой кадровой ротации во фракции СРЗП».

Источник   

Американская благотворительность

Трамп жалуется, что каждый приезд Зеленского в США обходится американским налогоплательщикам в десятки миллиардов долларов. Даже с учётом того, что большая часть выделенного остаётся в ...

Они там есть: Свой среди чужих

Один Человек с ТОЙ стороны ЛБС недавно написал: «Я боюсь сдохнуть среди чужих, за чужих, и врагом для своих. Мысли о такой смерти приводят меня в ужас» — это, наверное, именно те слова,...

Обсудить
  • :thumbsup: :exclamation:
  • :punch: :rage1: :smile: :thumbsup:
  • :clap: :woman:
  • Кодляк ярого антипутинца Миронова и того , кто громче всех в 2012 году орал "РОССИЯ -БЕЗ-ПУТИНА", видя п-резидентом Навального ? " Рукописи не горят" <-> "интернет всё помнит"
  • :thumbsup: :smiley: :thumbsup: