{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8dGl0bGU+WW91ciBTb3ZlcmVpZ24gSm91cm5leSB+IFNoZSBFdm9sdmVzIEFmcmljYTwvdGl0bGU+CjxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJZb3VyIE1FIEJPU1MgU2Vhc29uIGFuZCBEaWdpdGFsIEFsdGl0dWRlIHJldmVhbGVkLiBZb3VyIGN1cmF0ZWQgcGF0aCBmb3J3YXJkIH4gYnkgU2hlIEV2b2x2ZXMgQWZyaWNhLiI+CjxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0ibm9pbmRleCwgbm9mb2xsb3ciPgo8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iIzBEMjI0NyI+CjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbSI+CjxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Q29ybW9yYW50K0dhcmFtb25kOml0YWwsd2dodEAwLDMwMDswLDQwMDswLDYwMDswLDcwMDsxLDMwMDsxLDQwMDsxLDYwMCZmYW1pbHk9T3V0Zml0OndnaHRAMzAwOzQwMDs1MDA7NjAwOzcwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CjxzdHlsZT4KKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfQpodG1sIHsgc2Nyb2xsLWJlaGF2aW9yOnNtb290aDsgfQo6cm9vdCB7CiAgLS1uYXZ5OiMxQjNBNkI7IC0tbmF2eS1kZWVwOiMwRDIyNDc7IC0tbmF2eS1taWQ6IzJDNTI4MjsKICAtLWdvbGQ6I0M5OTUxQTsgLS1nb2xkMjojRThCNDMyOyAtLXRlYWw6IzJDN0E3QjsKICAtLXdoaXRlOiNGRkZGRkY7IC0tZ3JleS1taWQ6IzcxODA5NjsgLS1kYXJrOiMwNzBEMUE7CiAgLyogU2Vhc29uICovCiAgLS1zZWVkOiM0QThDNkY7IC0tcm9vdHM6IzJDN0E3QjsgLS10cnVuazojMkI2Q0IwOyAtLWJsb29tOiM2QjQ2QzE7IC0tc292ZXJlaWduOiNDOTk1MUE7CiAgLyogQWx0aXR1ZGUgKi8KICAtLWludmlzaWJsZTojNzE4MDk2OyAtLWVtZXJnaW5nOiMyQzdBN0I7IC0tdmlzaWJsZTojMkI2Q0IwOyAtLWluZmx1ZW50aWFsOiM2QjQ2QzE7IC0tYWx0LXNvdmVyZWlnbjojQzk5NTFBOwp9CmJvZHkgeyBmb250LWZhbWlseTonT3V0Zml0JyxzYW5zLXNlcmlmOyBiYWNrZ3JvdW5kOnZhcigtLWRhcmspOyBjb2xvcjp2YXIoLS13aGl0ZSk7IG92ZXJmbG93LXg6aGlkZGVuOyBtaW4taGVpZ2h0OjEwMHZoOyB9Ci5iZyB7CiAgcG9zaXRpb246Zml4ZWQ7IGluc2V0OjA7IHotaW5kZXg6MDsgcG9pbnRlci1ldmVudHM6bm9uZTsKICBiYWNrZ3JvdW5kOgogICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgMTIlIDglLCByZ2JhKDI3LDU4LDEwNywuOSkgMCUsIHRyYW5zcGFyZW50IDUyJSksCiAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA4OCUgOTIlLCByZ2JhKDIwMSwxNDksMjYsLjE1KSAwJSwgdHJhbnNwYXJlbnQgNDglKSwKICAgICMwNzBEMUE7Cn0KLmZsb2F0aWVzIHsgcG9zaXRpb246Zml4ZWQ7IGluc2V0OjA7IHBvaW50ZXItZXZlbnRzOm5vbmU7IHotaW5kZXg6MTsgb3ZlcmZsb3c6aGlkZGVuOyB9Ci5mbG9hdGllICB7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206LTQwcHg7IGFuaW1hdGlvbjpmbG9hdFVwIGxpbmVhciBpbmZpbml0ZTsgb3BhY2l0eTowOyB9CkBrZXlmcmFtZXMgZmxvYXRVcCB7CiAgMCUgIHsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgcm90YXRlKC0zZGVnKTsgb3BhY2l0eTowOyB9CiAgOCUgIHsgb3BhY2l0eTouMjsgfSA5MiV7IG9wYWNpdHk6LjA3OyB9CiAgMTAwJXsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTExMHZoKSByb3RhdGUoOGRlZyk7IG9wYWNpdHk6MDsgfQp9Cgoud3JhcCB7CiAgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6MTA7CiAgbWluLWhlaWdodDoxMDB2aDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmNlbnRlcjsKICBwYWRkaW5nOjAgMXJlbSA0cmVtOwp9CgovKiBUT1AgQkFSICovCi50b3AtYmFyIHsKICB3aWR0aDoxMDAlOyBtYXgtd2lkdGg6NzAwcHg7CiAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOwogIHBhZGRpbmc6MS4ycmVtIDAgMXJlbTsKfQoudGItYnJhbmQgeyBmb250LWZhbWlseTonQ29ybW9yYW50IEdhcmFtb25kJyxzZXJpZjsgZm9udC1zaXplOi45NXJlbTsgZm9udC13ZWlnaHQ6NzAwOyBjb2xvcjp2YXIoLS1nb2xkMik7IGxldHRlci1zcGFjaW5nOi4wNmVtOyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOi40cmVtOyB9Ci50Yi1ldmVudCB7IGZvbnQtc2l6ZTouNnJlbTsgZm9udC13ZWlnaHQ6NjAwOyBsZXR0ZXItc3BhY2luZzouMTRlbTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBjb2xvcjp2YXIoLS1ncmV5LW1pZCk7IHRleHQtYWxpZ246cmlnaHQ7IH0KLnRiLWV2ZW50IHNwYW4geyBkaXNwbGF5OmJsb2NrOyBjb2xvcjp2YXIoLS10ZWFsKTsgfQoKLyogSEVSTyAqLwouaGVybyB7CiAgd2lkdGg6MTAwJTsgbWF4LXdpZHRoOjcwMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxLjVyZW0gMCAycmVtOwogIGFuaW1hdGlvbjpmYWRlVXAgLjZzIGVhc2UgZm9yd2FyZHM7IG9wYWNpdHk6MDsKfQpAa2V5ZnJhbWVzIGZhZGVVcCB7IGZyb217b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDE0cHgpfSB0b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9IH0KLmhlcm8tZXllYnJvdyB7CiAgZGlzcGxheTppbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6LjVyZW07IHBhZGRpbmc6LjNyZW0gMXJlbTsKICBib3JkZXItcmFkaXVzOjIwcHg7IGJhY2tncm91bmQ6cmdiYSgyMDEsMTQ5LDI2LC4xKTsgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDIwMSwxNDksMjYsLjI4KTsKICBmb250LXNpemU6LjZyZW07IGZvbnQtd2VpZ2h0OjcwMDsgbGV0dGVyLXNwYWNpbmc6LjE4ZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICBjb2xvcjp2YXIoLS1nb2xkMik7IG1hcmdpbi1ib3R0b206MXJlbTsKfQouaGVybyBoMSB7IGZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNlcmlmOyBmb250LXNpemU6Y2xhbXAoMnJlbSw1dncsM3JlbSk7IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6dmFyKC0td2hpdGUpOyBsaW5lLWhlaWdodDoxLjE7IG1hcmdpbi1ib3R0b206LjVyZW07IH0KLmhlcm8gaDEgZW0geyBjb2xvcjp2YXIoLS1nb2xkMik7IGZvbnQtc3R5bGU6aXRhbGljOyB9Ci5oZXJvIHAgeyBmb250LXNpemU6Ljg1cmVtOyBjb2xvcjp2YXIoLS1ncmV5LW1pZCk7IGxpbmUtaGVpZ2h0OjEuNzU7IG1heC13aWR0aDo1MDBweDsgbWFyZ2luOjAgYXV0bzsgfQoKLyogTk8gUEFSQU1TIFNUQVRFICovCi5uby1wYXJhbXMgewogIHdpZHRoOjEwMCU7IG1heC13aWR0aDo2MDBweDsgdGV4dC1hbGlnbjpjZW50ZXI7CiAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLHJnYmEoMjcsNTgsMTA3LC40KSxyZ2JhKDEzLDM0LDcxLC44NSkpOwogIGJvcmRlcjoxcHggc29saWQgcmdiYSgyMDEsMTQ5LDI2LC4yNSk7IGJvcmRlci1yYWRpdXM6MThweDsKICBwYWRkaW5nOjIuNXJlbSAycmVtOyBtYXJnaW46MXJlbSAwOwp9Ci5uby1wYXJhbXMgaDIgeyBmb250LWZhbWlseTonQ29ybW9yYW50IEdhcmFtb25kJyxzZXJpZjsgZm9udC1zaXplOjEuNnJlbTsgZm9udC13ZWlnaHQ6NzAwOyBjb2xvcjp2YXIoLS13aGl0ZSk7IG1hcmdpbi1ib3R0b206LjZyZW07IH0KLm5vLXBhcmFtcyBwICB7IGZvbnQtc2l6ZTouODJyZW07IGNvbG9yOnZhcigtLWdyZXktbWlkKTsgbGluZS1oZWlnaHQ6MS43OyBtYXJnaW4tYm90dG9tOjEuNHJlbTsgfQoubnAtYnRuIHsKICBkaXNwbGF5OmlubGluZS1mbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGdhcDouNXJlbTsKICBwYWRkaW5nOi44NXJlbSAxLjhyZW07IGJvcmRlci1yYWRpdXM6MTFweDsKICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tZ29sZCksI0E4N0ExMik7IGNvbG9yOnZhcigtLWRhcmspOwogIGJvcmRlcjpub25lOyBmb250LWZhbWlseTonT3V0Zml0JyxzYW5zLXNlcmlmOyBmb250LXNpemU6Ljg4cmVtOwogIGZvbnQtd2VpZ2h0OjcwMDsgY3Vyc29yOnBvaW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOwogIGxldHRlci1zcGFjaW5nOi4wNGVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7CiAgYm94LXNoYWRvdzowIDRweCAyMHB4IHJnYmEoMjAxLDE0OSwyNiwuMzUpOyB0cmFuc2l0aW9uOmFsbCAuMnM7Cn0KLm5wLWJ0bjpob3ZlciB7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpOyB9CgovKiBEVUFMIFJFU1VMVFMgKi8KLmR1YWwtcmVzdWx0cyB7CiAgd2lkdGg6MTAwJTsgbWF4LXdpZHRoOjcwMHB4OyBkaXNwbGF5Om5vbmU7CiAgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBnYXA6MXJlbTsgbWFyZ2luLWJvdHRvbToxLjVyZW07Cn0KCi8qIHJlc3VsdCBjYXJkICovCi5yZXN1bHQtY2FyZCB7CiAgYm9yZGVyLXJhZGl1czoxNnB4OyBwYWRkaW5nOjEuNnJlbSAxLjVyZW07CiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xKTsgcG9zaXRpb246cmVsYXRpdmU7IG92ZXJmbG93OmhpZGRlbjsKfQoucmVzdWx0LWNhcmQ6OmJlZm9yZSB7CiAgY29udGVudDonJzsgcG9zaXRpb246YWJzb2x1dGU7IGluc2V0OjA7IHBvaW50ZXItZXZlbnRzOm5vbmU7CiAgYmFja2dyb3VuZC1pbWFnZTpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KC00NWRlZyx0cmFuc3BhcmVudCx0cmFuc3BhcmVudCAyMHB4LHJnYmEoMjU1LDI1NSwyNTUsLjAxNSkgMjBweCxyZ2JhKDI1NSwyNTUsMjU1LC4wMTUpIDIxcHgpOwp9Ci5yYy10b3AgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjFyZW07IG1hcmdpbi1ib3R0b206MXJlbTsgfQoucmMtaWNvbiB7IGZvbnQtc2l6ZToyLjRyZW07IGZsZXgtc2hyaW5rOjA7IH0KLnJjLW1ldGEgeyBmbGV4OjE7IH0KLnJjLXR5cGUgeyBmb250LXNpemU6LjU4cmVtOyBmb250LXdlaWdodDo3MDA7IGxldHRlci1zcGFjaW5nOi4xOGVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1ib3R0b206LjJyZW07IG9wYWNpdHk6Ljc7IH0KLnJjLW5hbWUgeyBmb250LWZhbWlseTonQ29ybW9yYW50IEdhcmFtb25kJyxzZXJpZjsgZm9udC1zaXplOjEuNnJlbTsgZm9udC13ZWlnaHQ6NzAwOyBsaW5lLWhlaWdodDoxLjE7IH0KLnJjLWJhZGdlIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6LjI1cmVtIC43NXJlbTsgYm9yZGVyLXJhZGl1czoyMHB4OyBmb250LXNpemU6LjU4cmVtOyBmb250LXdlaWdodDo3MDA7IGxldHRlci1zcGFjaW5nOi4xNWVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IG1hcmdpbi10b3A6LjNyZW07IH0KLnJjLXRhZ2xpbmUgeyBmb250LWZhbWlseTonQ29ybW9yYW50IEdhcmFtb25kJyxzZXJpZjsgZm9udC1zaXplOi45NXJlbTsgZm9udC1zdHlsZTppdGFsaWM7IGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjYpOyBsaW5lLWhlaWdodDoxLjY7IG1hcmdpbi1ib3R0b206LjhyZW07IH0KLnJjLWluc2lnaHQgIHsgZm9udC1zaXplOi44cmVtOyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43NSk7IGxpbmUtaGVpZ2h0OjEuNzsgfQoKLyogY29ubmVjdGlvbiBicmlkZ2UgKi8KLmNvbm5lY3Rpb24tYnJpZGdlIHsKICB3aWR0aDoxMDAlOyBtYXgtd2lkdGg6NzAwcHg7CiAgcGFkZGluZzoxLjJyZW0gMS41cmVtOyB0ZXh0LWFsaWduOmNlbnRlcjsKICBiYWNrZ3JvdW5kOnJnYmEoMjAxLDE0OSwyNiwuMDYpOyBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjAxLDE0OSwyNiwuMTgpOwogIGJvcmRlci1yYWRpdXM6MTRweDsgbWFyZ2luLWJvdHRvbToxLjVyZW07IGRpc3BsYXk6bm9uZTsKfQouY2ItY3Jvd24geyBmb250LXNpemU6MS42cmVtOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tYm90dG9tOi41cmVtOyBmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDEycHggcmdiYSgyMDEsMTQ5LDI2LC42KSk7IH0KLmNiLXRpdGxlIHsgZm9udC1mYW1pbHk6J0Nvcm1vcmFudCBHYXJhbW9uZCcsc2VyaWY7IGZvbnQtc2l6ZToxLjNyZW07IGZvbnQtd2VpZ2h0OjYwMDsgY29sb3I6dmFyKC0tZ29sZDIpOyBtYXJnaW4tYm90dG9tOi40cmVtOyB9Ci5jYi10ZXh0ICB7IGZvbnQtc2l6ZTouOHJlbTsgY29sb3I6dmFyKC0tZ3JleS1taWQpOyBsaW5lLWhlaWdodDoxLjc1OyBtYXgtd2lkdGg6NDgwcHg7IG1hcmdpbjowIGF1dG87IH0KCi8qIENUQSAqLwouY3RhLXdyYXAgewogIHdpZHRoOjEwMCU7IG1heC13aWR0aDo1NjBweDsgZGlzcGxheTpub25lOyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGdhcDouN3JlbTsgbWFyZ2luLWJvdHRvbToycmVtOwp9Ci5wcmltYXJ5LWN0YSB7CiAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGdhcDouNnJlbTsKICBwYWRkaW5nOjFyZW0gMS41cmVtOyBib3JkZXItcmFkaXVzOjEycHg7CiAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWdvbGQpLCNBODdBMTIpOyBjb2xvcjp2YXIoLS1kYXJrKTsKICBib3JkZXI6bm9uZTsgZm9udC1mYW1pbHk6J091dGZpdCcsc2Fucy1zZXJpZjsgZm9udC1zaXplOi45MnJlbTsgZm9udC13ZWlnaHQ6NzAwOwogIGN1cnNvcjpwb2ludGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbGV0dGVyLXNwYWNpbmc6LjA0ZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKICBib3gtc2hhZG93OjAgNXB4IDI0cHggcmdiYSgyMDEsMTQ5LDI2LC40KTsgdHJhbnNpdGlvbjphbGwgLjIyczsKfQoucHJpbWFyeS1jdGE6aG92ZXIgeyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTsgYm94LXNoYWRvdzowIDlweCAzMnB4IHJnYmEoMjAxLDE0OSwyNiwuNTUpOyB9Ci5zZWNvbmRhcnktY3RhIHsKICBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgZ2FwOi41cmVtOwogIHBhZGRpbmc6Ljg1cmVtIDEuNXJlbTsgYm9yZGVyLXJhZGl1czoxMXB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsKICBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50OyBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjAxLDE0OSwyNiwuMjgpOyBjb2xvcjp2YXIoLS1nb2xkMik7CiAgZm9udC1mYW1pbHk6J091dGZpdCcsc2Fucy1zZXJpZjsgZm9udC1zaXplOi44NXJlbTsgZm9udC13ZWlnaHQ6NjAwOyB0cmFuc2l0aW9uOmFsbCAuMnM7Cn0KLnNlY29uZGFyeS1jdGE6aG92ZXIgeyBiYWNrZ3JvdW5kOnJnYmEoMjAxLDE0OSwyNiwuMDgpOyBib3JkZXItY29sb3I6dmFyKC0tZ29sZCk7IH0KLmdob3N0LWN0YSB7CiAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGdhcDouNXJlbTsKICBwYWRkaW5nOi44cmVtIDEuNXJlbTsgYm9yZGVyLXJhZGl1czoxMXB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsKICBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50OyBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjEpOyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KTsKICBmb250LWZhbWlseTonT3V0Zml0JyxzYW5zLXNlcmlmOyBmb250LXNpemU6LjgycmVtOyBmb250LXdlaWdodDo1MDA7IHRyYW5zaXRpb246YWxsIC4yczsKfQouZ2hvc3QtY3RhOmhvdmVyIHsgYm9yZGVyLWNvbG9yOnJnYmEoMjAxLDE0OSwyNiwuMjUpOyBjb2xvcjp2YXIoLS1nb2xkMik7IH0KCi8qIHNoYXJlICovCi5zaGFyZS1zdHJpcCB7CiAgd2lkdGg6MTAwJTsgbWF4LXdpZHRoOjcwMHB4OwogIGRpc3BsYXk6bm9uZTsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6LjdyZW07CiAgcGFkZGluZzouOHJlbSAxcmVtOyBiYWNrZ3JvdW5kOnJnYmEoMjcsNTgsMTA3LC4zKTsKICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjAxLDE0OSwyNiwuMTQpOyBib3JkZXItcmFkaXVzOjEwcHg7IG1hcmdpbi1ib3R0b206MXJlbTsKfQouc3MtdGV4dCB7IGZsZXg6MTsgfQouc3MtdGV4dCBzdHJvbmcgeyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6LjcycmVtOyBjb2xvcjp2YXIoLS1nb2xkMik7IG1hcmdpbi1ib3R0b206LjFyZW07IH0KLnNzLXRleHQgcCB7IGZvbnQtc2l6ZTouNjdyZW07IGNvbG9yOnZhcigtLWdyZXktbWlkKTsgbGluZS1oZWlnaHQ6MS40OyB9Ci5zcy1idG4gewogIHBhZGRpbmc6LjQycmVtIC44OHJlbTsgYmFja2dyb3VuZDp2YXIoLS1uYXZ5KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1nb2xkKTsKICBib3JkZXItcmFkaXVzOjdweDsgY29sb3I6dmFyKC0tZ29sZCk7IGZvbnQtc2l6ZTouNjdyZW07IGZvbnQtd2VpZ2h0OjYwMDsKICBjdXJzb3I6cG9pbnRlcjsgbGV0dGVyLXNwYWNpbmc6LjA4ZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgd2hpdGUtc3BhY2U6bm93cmFwOyB0cmFuc2l0aW9uOmFsbCAuMnM7Cn0KLnNzLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6cmdiYSgyMDEsMTQ5LDI2LC4xNCk7IH0KCi8qIHF1b3RlICovCi5ib3R0b20tcXVvdGUgewogIHdpZHRoOjEwMCU7IG1heC13aWR0aDo3MDBweDsgdGV4dC1hbGlnbjpjZW50ZXI7CiAgcGFkZGluZzoxLjJyZW0gMXJlbTsgYm9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyMDEsMTQ5LDI2LC4xKTsgbWFyZ2luLXRvcDoxcmVtOwp9Ci5ib3R0b20tcXVvdGUgcCB7IGZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNlcmlmOyBmb250LXNpemU6Ljk1cmVtOyBmb250LXN0eWxlOml0YWxpYzsgY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMjgpOyBsaW5lLWhlaWdodDoxLjc7IH0KLmJvdHRvbS1xdW90ZSBzcGFuIHsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOi41OHJlbTsgZm9udC1zdHlsZTpub3JtYWw7IGxldHRlci1zcGFjaW5nOi4xMmVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGNvbG9yOnJnYmEoMjAxLDE0OSwyNiwuMzUpOyBtYXJnaW4tdG9wOi4zcmVtOyB9CgoucGFnZS1mb290ZXIgeyB3aWR0aDoxMDAlOyBtYXgtd2lkdGg6NzAwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjFyZW0gMCAuNXJlbTsgfQoucGFnZS1mb290ZXIgcCB7IGZvbnQtc2l6ZTouNThyZW07IGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpOyBsZXR0ZXItc3BhY2luZzouMWVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0KPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KPGRpdiBjbGFzcz0iYmciPjwvZGl2Pgo8ZGl2IGNsYXNzPSJmbG9hdGllcyIgaWQ9ImZsb2F0aWVzIj48L2Rpdj4KCjxkaXYgY2xhc3M9IndyYXAiPgoKICA8IS0tIFRPUCBCQVIgLS0+CiAgPGRpdiBjbGFzcz0idG9wLWJhciI+CiAgICA8ZGl2IGNsYXNzPSJ0Yi1icmFuZCI+8J+RkSBTaGUgRXZvbHZlcyBBZnJpY2E8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InRiLWV2ZW50Ij5XaGF0IFdvbWVuIFdhbnQgU3VtbWl0IDQuMDxzcGFuPk5haXJvYmkgfiBNYXJjaCAyMDI2PC9zcGFuPjwvZGl2PgogIDwvZGl2PgoKICA8IS0tIEhFUk8gLS0+CiAgPGRpdiBjbGFzcz0iaGVybyI+CiAgICA8ZGl2IGNsYXNzPSJoZXJvLWV5ZWJyb3ciPuKcpiBZb3VyIFNvdmVyZWlnbiBKb3VybmV5IOKcpjwvZGl2PgogICAgPGgxPllvdSBIYXZlIEJlZW48YnI+PGVtPlNlZW4uPC9lbT48L2gxPgogICAgPHA+WW91ciBNRSBCT1NTIFNlYXNvbiBhbmQgeW91ciBEaWdpdGFsIEFsdGl0dWRlIH4gdG9nZXRoZXIgdGhleSByZXZlYWwgdGhlIGNvbXBsZXRlIHBpY3R1cmUgb2Ygd2hlcmUgeW91IGFyZSBhbmQgZXhhY3RseSB3aGVyZSB5b3UgYXJlIGdvaW5nLjwvcD4KICA8L2Rpdj4KCiAgPCEtLSBOTyBQQVJBTVMgfiBzaG93biBpZiBwYWdlIGxvYWRlZCB3aXRob3V0IFVSTCBwYXJhbWV0ZXJzIC0tPgogIDxkaXYgY2xhc3M9Im5vLXBhcmFtcyIgaWQ9Im5vUGFyYW1zIj4KICAgIDxoMj5Zb3VyIHJlc3VsdHMgYXJlIHdhaXRpbmcg8J+RkTwvaDI+CiAgICA8cD5UaGlzIHBhZ2UgZGlzcGxheXMgeW91ciBNRSBCT1NTIFNlYXNvbiBhbmQgVm9ydGV4IEFsdGl0dWRlIHRvZ2V0aGVyIH4gYWZ0ZXIgeW91IGhhdmUgY29tcGxldGVkIGJvdGggYXNzZXNzbWVudHMuIFN0YXJ0IHdpdGggdGhlIE1FIEJPU1MgQXNzZXNzbWVudCBiZWxvdy48L3A+CiAgICA8YSBocmVmPSJodHRwczovL3NoZWVib3Nzc29sdXRpb25pc3QuY29tL21lLWJvc3MtYXNzZXNzbWVudCIgY2xhc3M9Im5wLWJ0biI+8J+RkSBCZWdpbiB0aGUgTUUgQk9TUyBBc3Nlc3NtZW50PC9hPgogIDwvZGl2PgoKICA8IS0tIERVQUwgUkVTVUxUUyAtLT4KICA8ZGl2IGNsYXNzPSJkdWFsLXJlc3VsdHMiIGlkPSJkdWFsUmVzdWx0cyI+CgogICAgPCEtLSBNRSBCT1NTIFNFQVNPTiBDQVJEIC0tPgogICAgPGRpdiBjbGFzcz0icmVzdWx0LWNhcmQiIGlkPSJzZWFzb25DYXJkIj4KICAgICAgPGRpdiBjbGFzcz0icmMtdG9wIj4KICAgICAgICA8c3BhbiBjbGFzcz0icmMtaWNvbiIgaWQ9InNlYXNvbkljb24iPvCfkZE8L3NwYW4+CiAgICAgICAgPGRpdiBjbGFzcz0icmMtbWV0YSI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icmMtdHlwZSIgaWQ9InNlYXNvblR5cGUiPllvdXIgTUUgQk9TUyBTZWFzb248L3NwYW4+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJyYy1uYW1lIiBpZD0ic2Vhc29uTmFtZSI+TG9hZGluZy4uLjwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0icmMtYmFkZ2UiIGlkPSJzZWFzb25CYWRnZSI+PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0icmMtdGFnbGluZSIgaWQ9InNlYXNvblRhZ2xpbmUiPjwvcD4KICAgICAgPHAgY2xhc3M9InJjLWluc2lnaHQiIGlkPSJzZWFzb25JbnNpZ2h0Ij48L3A+CiAgICA8L2Rpdj4KCiAgICA8IS0tIFZPUlRFWCBBTFRJVFVERSBDQVJEIC0tPgogICAgPGRpdiBjbGFzcz0icmVzdWx0LWNhcmQiIGlkPSJhbHRDYXJkIj4KICAgICAgPGRpdiBjbGFzcz0icmMtdG9wIj4KICAgICAgICA8c3BhbiBjbGFzcz0icmMtaWNvbiIgaWQ9ImFsdEljb24iPvCfjIA8L3NwYW4+CiAgICAgICAgPGRpdiBjbGFzcz0icmMtbWV0YSI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icmMtdHlwZSIgaWQ9ImFsdFR5cGUiPllvdXIgRGlnaXRhbCBBbHRpdHVkZTwvc3Bhbj4KICAgICAgICAgIDxkaXYgY2xhc3M9InJjLW5hbWUiIGlkPSJhbHROYW1lIj5Mb2FkaW5nLi4uPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJyYy1iYWRnZSIgaWQ9ImFsdEJhZGdlIj48L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJyYy10YWdsaW5lIiBpZD0iYWx0VGFnbGluZSI+PC9wPgogICAgICA8cCBjbGFzcz0icmMtaW5zaWdodCIgaWQ9ImFsdEluc2lnaHQiPjwvcD4KICAgIDwvZGl2PgoKICA8L2Rpdj4KCiAgPCEtLSBDT05ORUNUSU9OIEJSSURHRSAtLT4KICA8ZGl2IGNsYXNzPSJjb25uZWN0aW9uLWJyaWRnZSIgaWQ9ImNvbm5lY3Rpb25CcmlkZ2UiPgogICAgPHNwYW4gY2xhc3M9ImNiLWNyb3duIj7wn5GRPC9zcGFuPgogICAgPGRpdiBjbGFzcz0iY2ItdGl0bGUiIGlkPSJicmlkZ2VUaXRsZSI+WW91IGtub3cgd2hvIHlvdSBhcmUuIE5vdyBsZXQgdXMgbWFrZSBzdXJlIHRoZSB3b3JsZCBjYW4gZmluZCBoZXIuPC9kaXY+CiAgICA8cCBjbGFzcz0iY2ItdGV4dCIgaWQ9ImJyaWRnZVRleHQiPjwvcD4KICA8L2Rpdj4KCiAgPCEtLSBDVEEgLS0+CiAgPGRpdiBjbGFzcz0iY3RhLXdyYXAiIGlkPSJjdGFXcmFwIj4KICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJwcmltYXJ5LWN0YSIgaWQ9InByaW1hcnlDdGEiPvCfkZEgU2VlIFlvdXIgQ3VyYXRlZCBQYXRoIEZvcndhcmQ8L2E+CiAgICA8YSBocmVmPSJodHRwczovL2V2ZW50cy5zb3ZlcmVpZ25tb21lbnR1bS5jb20vaW52aXRhdGlvbiIgY2xhc3M9InNlY29uZGFyeS1jdGEiPkpvaW4gdGhlIFNoZSBFdm9sdmVzIEFmcmljYSBDb21tdW5pdHk8L2E+CiAgICA8YSBocmVmPSJodHRwczovL3NoZWV2b2x2ZXMuYWZyaWNhL25ld3MiIGNsYXNzPSJnaG9zdC1jdGEiPkV4cGxvcmUgU2hlIEV2b2x2ZXMgQWZyaWNhIE5ld3Mg4oaXPC9hPgogIDwvZGl2PgoKICA8IS0tIFNIQVJFIC0tPgogIDxkaXYgY2xhc3M9InNoYXJlLXN0cmlwIiBpZD0ic2hhcmVTdHJpcCI+CiAgICA8ZGl2IGNsYXNzPSJzcy10ZXh0Ij4KICAgICAgPHN0cm9uZz5TaGFyZSB5b3VyIGpvdXJuZXkg8J+RkTwvc3Ryb25nPgogICAgICA8cD5JbnZpdGUgYW5vdGhlciB3b21hbiB0byBkaXNjb3ZlciBoZXIgU2Vhc29uIGFuZCBoZXIgQWx0aXR1ZGU8L3A+CiAgICA8L2Rpdj4KICAgIDxidXR0b24gY2xhc3M9InNzLWJ0biIgb25jbGljaz0iY29weVNoYXJlKCkiPkNvcHkgUmVzdWx0czwvYnV0dG9uPgogIDwvZGl2PgoKICA8IS0tIEJPVFRPTSBRVU9URSAtLT4KICA8ZGl2IGNsYXNzPSJib3R0b20tcXVvdGUiPgogICAgPHA+IkRyYXcgdGhlIGxpbmUuIEJ1aWxkIHRoZSBlbXBpcmUuIEdvIGhvbWUuIFlvdSBhcmUgd2F5IG1vcmUgdGhhbiB5b3VyIGJ1c2luZXNzLiBOZXZlciBmb3JnZXQgaXQuIjwvcD4KICAgIDxzcGFuPn4gVGhlIFNIRSBFLUJvc3MgU29sdXRpb25pc3Q8L3NwYW4+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9InBhZ2UtZm9vdGVyIj4KICAgIDxwPvCfkZEgU2hlIEV2b2x2ZXMgQWZyaWNhIH4gV2hhdCBXb21lbiBXYW50IFN1bW1pdCA0LjAgfiBldmVudHMuc292ZXJlaWdubW9tZW50dW0uY29tPC9wPgogIDwvZGl2PgoKPC9kaXY+Cgo8c2NyaXB0PgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgREFUQSBNQVBTCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqLwpjb25zdCBTRUFTT05TID0gewogIHNlZWQ6ICAgICAgIHsgaWNvbjon8J+MsScsIG5hbWU6J1RoZSBTZWVkJywgICAgICAgY29sb3I6JyM0QThDNkYnLCB0YWdsaW5lOiciRXZlcnkgc292ZXJlaWduIHRyZWUgd2FzIG9uY2UgYSBzZWVkIHRoYXQgaGFkIG5vdCB5ZXQgZGVjaWRlZCB0byBncm93LiBZb3UgYXJlIGRlY2lkaW5nIHJpZ2h0IG5vdy4iJywgaW5zaWdodDonWW91IGFyZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHlvdXIgcmVsYXRpb25zaGlwIHdpdGggeW91cnNlbGYgfiBhbmQgdGhhdCBpcyB0aGUgbW9zdCBzYWNyZWQgcGxhY2UgdG8gYmVnaW4uIEV2ZXJ5dGhpbmcgeW91IG5lZWQgaXMgYWxyZWFkeSBpbnNpZGUgeW91LiBUaGUgd29yayBpcyBleGNhdmF0aW9uLCBub3QgY29uc3RydWN0aW9uLicgfSwKICByb290czogICAgICB7IGljb246J/CfjL8nLCBuYW1lOidUaGUgUm9vdHMnLCAgICAgIGNvbG9yOicjMkM3QTdCJywgdGFnbGluZTonIllvdSBrbm93IHdobyB5b3UgYXJlLiBUaGUgd29ybGQga2VlcHMgY2FsbGluZyB5b3UgYXdheS4gVGhlIHdvcmsgbm93IGlzIHRvIGJ1aWxkIHRoZSB3YWxscyB0aGF0IHByb3RlY3Qgd2hhdCB5b3Uga25vdy4iJywgaW5zaWdodDonWW91IGhhdmUgYSBzdHJvbmcgc2Vuc2Ugb2Ygc2VsZiBidXQgbGlmZSBrZWVwcyBwdWxsaW5nIHlvdSBmcm9tIGl0LiBZb3UgaGF2ZSB0aGUgYXdhcmVuZXNzIH4gbm93IHlvdSBuZWVkIHRoZSBzeXN0ZW1zIHRvIHByb3RlY3QgYW5kIHN1c3RhaW4gdGhlIHJldHVybi4nIH0sCiAgdHJ1bms6ICAgICAgeyBpY29uOifwn4yzJywgbmFtZTonVGhlIFRydW5rJywgICAgICBjb2xvcjonIzJCNkNCMCcsIHRhZ2xpbmU6JyJZb3UgYmVuZCBpbiB0aGUgc3Rvcm0gYnV0IHlvdSBkbyBub3QgYnJlYWsuIE5vdyBsZXQgdXMgbWFrZSB0aGUgcm9vdCBzeXN0ZW0gYXMgc3Ryb25nIGFzIHRoZSB0cmVlLiInLCBpbnNpZ2h0OidZb3UgaGF2ZSBhIHN0cm9uZyBjZW50cmUuIFlvdSBrbm93IHdobyB5b3UgYXJlIGFuZCBob25vdXIgeW91ciB2YWx1ZXMgbW9zdCBvZiB0aGUgdGltZS4gVGhlIGdhcHMgdGhhdCByZW1haW4gYXJlIHNwZWNpZmljIGFuZCBjbG9zYWJsZSB3aXRoIHRoZSByaWdodCB0b29scy4nIH0sCiAgYmxvb206ICAgICAgeyBpY29uOifwn4y6JywgbmFtZTonVGhlIEJsb29tJywgICAgICBjb2xvcjonIzZCNDZDMScsIHRhZ2xpbmU6JyJUaGUgTUUgQk9TUyBhbmQgdGhlIFNIRSBFLUJvc3MgY29leGlzdCBpbiB5b3Ugd2l0aCBncmFjZS4gWW91IGhhdmUgZG9uZSB3aGF0IG1vc3QgbmV2ZXIgZG8uIicsIGluc2lnaHQ6J1lvdSBsaXZlIHlvdXIgZHVhbGl0eSB3aXRoIGdyYWNlLiBUaGUgbGluZSBpcyBkcmF3biBhbmQgeW91IHByb3RlY3QgaXQuIFlvdSBnbyBob21lIHRvIHlvdXJzZWxmIH4gYW5kIHJldHVybiB0byB5b3VyIHdvcmsgd2l0aCBhIHBsYW4uIE5vdyBtYWtlIGl0IHN0cnVjdHVyYWwgYW5kIGxlZ2FjeS1yZWFkeS4nIH0sCiAgc292ZXJlaWduOiAgeyBpY29uOifwn5GRJywgbmFtZTonVGhlIFNvdmVyZWlnbicsICBjb2xvcjonI0M5OTUxQScsIHRhZ2xpbmU6JyJZb3UgYnVpbHQgdGhlIGVtcGlyZSBhbmQga2VwdCB5b3VyIHNvdWwuIFRoYXQgaXMgbm90IGEgY29udHJhZGljdGlvbiB+IHRoYXQgaXMgdGhlIHdob2xlIHBvaW50LiInLCBpbnNpZ2h0OidZb3UgYXJlIGhvbWUgaW4geW91cnNlbGYuIFRoZSBtaXJyb3IgaXMgYWx3YXlzIHRoZXJlLiBUaGUgcmV0dXJuIGlzIG5vdCBzb21ldGhpbmcgeW91IHJlbWVtYmVyIHRvIGRvIH4gaXQgaXMgd2hvIHlvdSBhcmUuIExlZ2FjeSBpcyB5b3VyIHByaW1hcnkgd29yayBub3cuJyB9LAp9OwoKY29uc3QgQUxUSVRVREVTID0gewogIGludmlzaWJsZTogICB7IGljb246J/CfjKvvuI8nLCBuYW1lOidJbnZpc2libGUnLCAgICBjb2xvcjonIzcxODA5NicsIHRhZ2xpbmU6JyJFdmVyeSBzb3ZlcmVpZ24gcHJlc2VuY2Ugc3RhcnRlZCBzb21ld2hlcmUuIFlvdXIgc3RvcnkgaXMgcmVhbCB+IHRoZSBkaWdpdGFsIHdvcmxkIHNpbXBseSBkb2VzIG5vdCBrbm93IGl0IHlldC4iJywgaW5zaWdodDonWW91ciBleHBlcnRpc2UgZXhpc3RzIGFuZCBtYXR0ZXJzLiBUaGUgZm91bmRhdGlvbmFsIGRpZ2l0YWwgaW5mcmFzdHJ1Y3R1cmUgdGhhdCB3b3VsZCBtYWtlIHlvdSBmaW5kYWJsZSBoYXMgbm90IHlldCBiZWVuIGJ1aWx0IH4gYnV0IHlvdSBub3cga25vdyB0aGF0LiBBbmQga25vd2luZyBpcyB3aGVyZSBzb3ZlcmVpZ250eSBiZWdpbnMuJyB9LAogIGVtZXJnaW5nOiAgICB7IGljb246J/CfjLEnLCBuYW1lOidFbWVyZ2luZycsICAgICAgY29sb3I6JyMyQzdBN0InLCB0YWdsaW5lOiciWW91ciBkaWdpdGFsIHJvb3RzIGFyZSBncm93aW5nLiBXaGF0IHlvdSBuZWVkIG5vdyBpcyBub3QgbW9yZSBjb250ZW50IH4gaXQgaXMgc3RydWN0dXJlIGFuZCB0aGUgcmlnaHQgZmlyc3Qgc3RlcHMuIicsIGluc2lnaHQ6J1lvdSBoYXZlIHN0YXJ0ZWQgdGhlIGRpZ2l0YWwgam91cm5leS4gU29tZSBwcmVzZW5jZSBleGlzdHMuIFRoZSBmb3VuZGF0aW9ucyBhcmUgZnJhZ2lsZSB+IGJ1aWx0IG9uIHBsYXRmb3JtcyB5b3UgZG8gbm90IG93bi4gVGhlIG5leHQgc3RlcHMgYXJlIGNsZWFyIGFuZCB0aGUgbW9tZW50dW0gaXMgeW91cnMgdG8gYnVpbGQuJyB9LAogIHZpc2libGU6ICAgICB7IGljb246J/CfkqEnLCBuYW1lOidWaXNpYmxlJywgICAgICAgY29sb3I6JyMyQjZDQjAnLCB0YWdsaW5lOiciWW91IGhhdmUgcHJlc2VuY2UuIE5vdyBpdCBpcyB0aW1lIHRvIGJ1aWxkIGF1dGhvcml0eSB+IHRoZSBraW5kIHRoYXQgbWFrZXMgeW91IGltcG9zc2libGUgdG8gb3Zlcmxvb2suIicsIGluc2lnaHQ6J1Blb3BsZSBjYW4gZmluZCB5b3UuIEJ1dCB5b3VyIGF1dGhvcml0eSBpcyBub3QgeWV0IGZ1bGx5IGVzdGFibGlzaGVkIGFuZCB5b3VyIGNvbnRlbnQgaXMgbm90IGNvbnNpc3RlbnRseSBkcml2aW5nIGluYm91bmQgb3Bwb3J0dW5pdHkuIE9uZSBjbGVhciBzdHJhdGVneSBhY2NlbGVyYXRlcyBldmVyeXRoaW5nIGZyb20gaGVyZS4nIH0sCiAgaW5mbHVlbnRpYWw6IHsgaWNvbjon4pqhJywgbmFtZTonSW5mbHVlbnRpYWwnLCAgIGNvbG9yOicjNkI0NkMxJywgdGFnbGluZTonIllvdSBoYXZlIGJ1aWx0IGF1dGhvcml0eS4gV2hhdCBzZXBhcmF0ZXMgSW5mbHVlbnRpYWwgZnJvbSBTb3ZlcmVpZ24gaXMgaW5mcmFzdHJ1Y3R1cmUgfiBvd25pbmcgdGhlIGVjb3N5c3RlbSwgbm90IGp1c3Qgb2NjdXB5aW5nIGl0LiInLCBpbnNpZ2h0OidZb3VyIGV4cGVydGlzZSBpcyByZWNvZ25pc2VkIGFuZCBwZW9wbGUgc2VlayB5b3Ugb3V0LiBUaGUgZ2FwcyBhcmUgc3BlY2lmaWMgfiBjb25zaXN0ZW5jeSwgb3duZWQgcGxhdGZvcm1zLCBkb2N1bWVudGVkIGF1dGhvcml0eS4gVGhlIE1hc3Rlcm1pbmQgaXMgeW91ciBuZXh0IGVudmlyb25tZW50LicgfSwKICBzb3ZlcmVpZ246ICAgeyBpY29uOifwn5GRJywgbmFtZTonU292ZXJlaWduJywgICAgIGNvbG9yOicjQzk5NTFBJywgdGFnbGluZTonIllvdSBoYXZlIGRvbmUgdGhlIHdvcmsuIFlvdSBvd24geW91ciBkaWdpdGFsIGVzdGF0ZS4gVGhlIHF1ZXN0aW9uIG5vdyBpcyBob3cgdG8gbWFrZSB5b3VyIGltcGFjdCBwZXJtYW5lbnQuIicsIGluc2lnaHQ6J1lvdSBhcmUgYXQgdGhlIGRpZ2l0YWwgcGlubmFjbGUuIFByZXNlbmNlIGVzdGFibGlzaGVkLiBBdXRob3JpdHkgcmVjb2duaXNlZC4gU3lzdGVtcyB3b3JraW5nLiBZb3VyIHByaW1hcnkgd29yayBub3cgaXMgbGVnYWN5IH4gbWFraW5nIHdoYXQgeW91IGhhdmUgYnVpbHQgcGVybWFuZW50IGFuZCBkb2N1bWVudGVkLicgfSwKfTsKCmNvbnN0IEhVQl9BTkNIT1JTID0gewogIGludmlzaWJsZTonI2ludmlzaWJsZScsIGVtZXJnaW5nOicjZW1lcmdpbmcnLCB2aXNpYmxlOicjdmlzaWJsZScsCiAgaW5mbHVlbnRpYWw6JyNpbmZsdWVudGlhbCcsIHNvdmVyZWlnbjonI3NvdmVyZWlnbicKfTsKCmNvbnN0IEJSSURHRV9NRVNTQUdFUyA9IHsKICBzZWVkX2ludmlzaWJsZTogICAnWW91IGFyZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGJvdGggam91cm5leXMgfiBzZWxmIGFuZCBkaWdpdGFsLiBUaGF0IGlzIG5vdCBhIGRpc2FkdmFudGFnZS4gVGhhdCBpcyBhIGNvbXBsZXRlbHkgb3BlbiBjYW52YXMuIFRoZSBTZWVkIHNlYXNvbiBhbmQgSW52aXNpYmxlIGFsdGl0dWRlIHRvZ2V0aGVyIG1lYW4geW91IGFyZSBmcmVlIHRvIGJ1aWxkIGV2ZXJ5dGhpbmcgZnJvbSB0aGUgZm91bmRhdGlvbiB1cCB+IHdpdGggZnVsbCBzb3ZlcmVpZ250eSBmcm9tIHRoZSB2ZXJ5IGZpcnN0IGJyaWNrLicsCiAgc2VlZF9lbWVyZ2luZzogICAgJ1lvdSBhcmUgYmVnaW5uaW5nIHRvIGtub3cgeW91cnNlbGYgZGVlcGx5IHdoaWxlIGJ1aWxkaW5nIHlvdXIgZmlyc3QgZGlnaXRhbCBmb3VuZGF0aW9ucy4gVGhlIE1FIEJPU1Mgd29yayB5b3UgYXJlIGRvaW5nIG5vdyB3aWxsIG1ha2UgZXZlcnkgZGlnaXRhbCBzdGVwIG1vcmUgaW50ZW50aW9uYWwgYW5kIG1vcmUgc3VzdGFpbmFibGUuIFlvdSBhcmUgYnVpbGRpbmcgZnJvbSB0aGUgaW5zaWRlIG91dCB+IHRoZSBvbmx5IHdheSB0aGF0IGxhc3RzLicsCiAgcm9vdHNfaW52aXNpYmxlOiAgJ1lvdSBrbm93IHdobyB5b3UgYXJlIGJ1dCB0aGUgd29ybGQgY2Fubm90IGZpbmQgeW91IHlldC4gVGhhdCBnYXAgaXMgbm90IHBlcm1hbmVudCB+IGl0IGlzIHNpbXBseSB0aGUgbmV4dCBmcm9udGllci4gWW91ciBzdHJvbmcgc2Vuc2Ugb2Ygc2VsZiBpcyBhY3R1YWxseSB5b3VyIGdyZWF0ZXN0IGRpZ2l0YWwgYXNzZXQuIFRoZSB3b21hbiB3aG8ga25vd3MgaGVyc2VsZiBidWlsZHMgYSBkaWdpdGFsIHByZXNlbmNlIHRoYXQgaXMgY29oZXJlbnQsIGNvbnNpc3RlbnQgYW5kIHNvdmVyZWlnbi4nLAogIHJvb3RzX2VtZXJnaW5nOiAgICdZb3UgaGF2ZSByb290cyBpbiB5b3VyIHNlbGYta25vd2xlZGdlIGFuZCBlYXJseSByb290cyBpbiB5b3VyIGRpZ2l0YWwgd29ybGQuIFRoZSB3b3JrIG9mIGJvdGggc2Vhc29ucyBydW5zIGluIHBhcmFsbGVsIH4gcHJvdGVjdGluZyB3aG8geW91IGFyZSB3aGlsZSBidWlsZGluZyB3aGVyZSB5b3UgYXJlIGZpbmRhYmxlLiBZb3UgYXJlIGluIGV4YWN0bHkgdGhlIHJpZ2h0IHBsYWNlIHRvIGRvIGJvdGggc2ltdWx0YW5lb3VzbHkuJywKICB0cnVua192aXNpYmxlOiAgICAnWW91IGFyZSBUaGUgVHJ1bmsgc2Vhc29uIG1lZXRpbmcgVmlzaWJsZSBhbHRpdHVkZSB+IGFuZCB0aGF0IGNvbWJpbmF0aW9uIGlzIHBvd2VyZnVsLiBZb3VyIHN0cm9uZyBjZW50cmUgZ2l2ZXMgeW91IHRoZSBzdGFiaWxpdHkgdG8gYnVpbGQgYXV0aG9yaXR5IGNvbnNpc3RlbnRseS4gWW91ciBkaWdpdGFsIHZpc2liaWxpdHkgaXMgcmVhbCB+IG5vdyBpdCBuZWVkcyB0byBiZSBkZWVwZW5lZCwgc3lzdGVtYXRpc2VkIGFuZCBtYWRlIHBlcm1hbmVudC4nLAogIHRydW5rX2luZmx1ZW50aWFsOidZb3UgaGF2ZSBidWlsdCByZWFsIHNlbGYta25vd2xlZGdlIGFuZCByZWFsIGRpZ2l0YWwgYXV0aG9yaXR5LiBUaGUgVHJ1bmsgc2Vhc29uIGdpdmVzIHlvdSB0aGUgcmVzaWxpZW5jZSB0aGUgSW5mbHVlbnRpYWwgYWx0aXR1ZGUgZGVtYW5kcy4gWW91IGFyZSBwb3NpdGlvbmVkIHRvIGNsb3NlIHRoZSBnYXBzIHRoYXQgc2VwYXJhdGUgSW5mbHVlbnRpYWwgZnJvbSBTb3ZlcmVpZ24gd2l0aCBmb2N1c2VkLCBpbnRlbnRpb25hbCB3b3JrLicsCiAgYmxvb21faW5mbHVlbnRpYWw6J1lvdSBsaXZlIHlvdXIgcGVyc29uYWwgZHVhbGl0eSB3aXRoIGdyYWNlIGFuZCB5b3VyIGRpZ2l0YWwgYXV0aG9yaXR5IGlzIGVzdGFibGlzaGVkLiBUaGUgQmxvb20gc2Vhc29uIGFuZCBJbmZsdWVudGlhbCBhbHRpdHVkZSB0b2dldGhlciByZXByZXNlbnQgYSB3b21hbiB3aG8gaGFzIGRvbmUgZXh0cmFvcmRpbmFyeSB3b3JrIGluIGJvdGggaGVyIGlubmVyIGFuZCBvdXRlciB3b3JsZHMuIFRoZSBTb3ZlcmVpZ24gaW4gYm90aCBkaW1lbnNpb25zIGlzIHdpdGhpbiBjbGVhciByZWFjaC4nLAogIGJsb29tX3NvdmVyZWlnbjogICdZb3UgYXJlIEJsb29tIG1lZXRpbmcgU292ZXJlaWduIH4gdGhlIGNvbXBsZXRlIGR1YWxpdHkgaW4gbW90aW9uLiBZb3UgcHJvdGVjdCB5b3VyIHByaXZhdGUgc2VsZiB3aGlsZSBidWlsZGluZyBhIHNvdmVyZWlnbiBkaWdpdGFsIGVtcGlyZS4gVGhpcyBjb21iaW5hdGlvbiBpcyBleGFjdGx5IHdoYXQgU2hlIEV2b2x2ZXMgQWZyaWNhIGRvY3VtZW50cyBhbmQgY2VsZWJyYXRlcy4gWW91ciBzdG9yeSBiZWxvbmdzIGluIHRoZSBhcmNoaXZlLicsCiAgc292ZXJlaWduX3NvdmVyZWlnbjonWW91IGFyZSBTb3ZlcmVpZ24gaW4gYm90aCBkaW1lbnNpb25zIH4gdGhlIHdvbWFuIHdobyBrZXB0IGhlciBzb3VsIHdoaWxlIGJ1aWxkaW5nIHRoZSBlbXBpcmUuIFRoaXMgaXMgdGhlIE1FIEJPU1MgcGhpbG9zb3BoeSBsaXZlZCBjb21wbGV0ZWx5LiBZb3VyIHN0b3J5IGlzIHRoZSBwcm9vZiB0aGUgbmV4dCBnZW5lcmF0aW9uIG5lZWRzLiBJdCBiZWxvbmdzIGluIHRoZSBTaGUgRXZvbHZlcyBBZnJpY2EgYXJjaGl2ZS4gUGVybWFuZW50bHkuJywKfTsKCmZ1bmN0aW9uIGdldEJyaWRnZU1lc3NhZ2Uoc2Vhc29uLCBhbHRpdHVkZSl7CiAgY29uc3Qga2V5ID0gYCR7c2Vhc29ufV8ke2FsdGl0dWRlfWA7CiAgaWYoQlJJREdFX01FU1NBR0VTW2tleV0pIHJldHVybiBCUklER0VfTUVTU0FHRVNba2V5XTsKICAvLyBmYWxsYmFjayBnZW5lcmljCiAgcmV0dXJuIGBZb3UgYXJlICR7U0VBU09OU1tzZWFzb25dPy5uYW1lIHx8ICdpbiB5b3VyIHNlYXNvbid9IG1lZXRpbmcgJHtBTFRJVFVERVNbYWx0aXR1ZGVdPy5uYW1lIHx8ICd5b3VyIGFsdGl0dWRlJ30uIFR3byBwb3J0cmFpdHMgfiBvbmUgY29tcGxldGUgcGljdHVyZS4gWW91ciBzb3ZlcmVpZ24gcGF0aCBmb3J3YXJkIGlzIGN1cmF0ZWQgYW5kIHdhaXRpbmcgZm9yIHlvdSBpbiB0aGUgU292ZXJlaWduIE1vbWVudHVtIEh1Yi5gOwp9CgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgSU5JVCB+IFJlYWQgVVJMIFBhcmFtZXRlcnMK4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCi8vIFVSTCBmb3JtYXQ6ID9zZWFzb249dHJ1bmsmYWx0aXR1ZGU9dmlzaWJsZQovLyBQYXNzIHRoZXNlIGZyb20gdGhlIE1FIEJPU1MgcmVzdWx0IHBhZ2UgcmVkaXJlY3QKLy8gYW5kIGZyb20gdGhlIFZvcnRleCByZXN1bHQgcGFnZSByZWRpcmVjdAoKKGZ1bmN0aW9uIGluaXQoKXsKICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpOwogIGNvbnN0IHNlYXNvbiAgID0gcGFyYW1zLmdldCgnc2Vhc29uJykgICB8fCBudWxsOwogIGNvbnN0IGFsdGl0dWRlID0gcGFyYW1zLmdldCgnYWx0aXR1ZGUnKSB8fCBudWxsOwoKICBpZighc2Vhc29uICYmICFhbHRpdHVkZSl7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9QYXJhbXMnKS5zdHlsZS5kaXNwbGF5PSdibG9jayc7CiAgICByZXR1cm47CiAgfQoKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm9QYXJhbXMnKS5zdHlsZS5kaXNwbGF5PSdub25lJzsKCiAgLy8gcG9wdWxhdGUgc2Vhc29uIGNhcmQKICBpZihzZWFzb24gJiYgU0VBU09OU1tzZWFzb25dKXsKICAgIGNvbnN0IHMgPSBTRUFTT05TW3NlYXNvbl07CiAgICBjb25zdCBzYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWFzb25DYXJkJyk7CiAgICBzYy5zdHlsZS5iYWNrZ3JvdW5kID0gYGxpbmVhci1ncmFkaWVudCgxNDVkZWcsICR7cy5jb2xvcn0yMiAwJSwgcmdiYSgxMywzNCw3MSwuODgpIDEwMCUpYDsKICAgIHNjLnN0eWxlLmJvcmRlckNvbG9yID0gYCR7cy5jb2xvcn00NGA7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vhc29uSWNvbicpLnRleHRDb250ZW50ICAgID0gcy5pY29uOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlYXNvbk5hbWUnKS50ZXh0Q29udGVudCAgICA9IHMubmFtZTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWFzb25OYW1lJykuc3R5bGUuY29sb3IgICAgPSBzLmNvbG9yOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlYXNvblR5cGUnKS5zdHlsZS5jb2xvciAgICA9IHMuY29sb3I7CiAgICBjb25zdCBiYWRnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWFzb25CYWRnZScpOwogICAgYmFkZ2UudGV4dENvbnRlbnQgPSAnTUUgQk9TUyBTRUFTT04nOwogICAgYmFkZ2Uuc3R5bGUuYmFja2dyb3VuZCA9IGAke3MuY29sb3J9MjJgOwogICAgYmFkZ2Uuc3R5bGUuYm9yZGVyID0gYDFweCBzb2xpZCAke3MuY29sb3J9NTVgOwogICAgYmFkZ2Uuc3R5bGUuY29sb3IgID0gcy5jb2xvcjsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWFzb25UYWdsaW5lJykudGV4dENvbnRlbnQgPSBzLnRhZ2xpbmU7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vhc29uSW5zaWdodCcpLnRleHRDb250ZW50ID0gcy5pbnNpZ2h0OwogIH0KCiAgLy8gcG9wdWxhdGUgYWx0aXR1ZGUgY2FyZAogIGlmKGFsdGl0dWRlICYmIEFMVElUVURFU1thbHRpdHVkZV0pewogICAgY29uc3QgYSA9IEFMVElUVURFU1thbHRpdHVkZV07CiAgICBjb25zdCBhYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbHRDYXJkJyk7CiAgICBhYy5zdHlsZS5iYWNrZ3JvdW5kID0gYGxpbmVhci1ncmFkaWVudCgxNDVkZWcsICR7YS5jb2xvcn0yMiAwJSwgcmdiYSgxMywzNCw3MSwuODgpIDEwMCUpYDsKICAgIGFjLnN0eWxlLmJvcmRlckNvbG9yID0gYCR7YS5jb2xvcn00NGA7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWx0SWNvbicpLnRleHRDb250ZW50ICAgPSBhLmljb247CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWx0TmFtZScpLnRleHRDb250ZW50ICAgPSBhLm5hbWU7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWx0TmFtZScpLnN0eWxlLmNvbG9yICAgPSBhLmNvbG9yOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsdFR5cGUnKS5zdHlsZS5jb2xvciAgID0gYS5jb2xvcjsKICAgIGNvbnN0IGFsdEJhZGdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsdEJhZGdlJyk7CiAgICBhbHRCYWRnZS50ZXh0Q29udGVudCA9ICdESUdJVEFMIEFMVElUVURFJzsKICAgIGFsdEJhZGdlLnN0eWxlLmJhY2tncm91bmQgPSBgJHthLmNvbG9yfTIyYDsKICAgIGFsdEJhZGdlLnN0eWxlLmJvcmRlciA9IGAxcHggc29saWQgJHthLmNvbG9yfTU1YDsKICAgIGFsdEJhZGdlLnN0eWxlLmNvbG9yICA9IGEuY29sb3I7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWx0VGFnbGluZScpLnRleHRDb250ZW50ID0gYS50YWdsaW5lOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FsdEluc2lnaHQnKS50ZXh0Q29udGVudCA9IGEuaW5zaWdodDsKICB9CgogIC8vIHNob3cgZHVhbCByZXN1bHRzCiAgY29uc3QgZHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVhbFJlc3VsdHMnKTsKICBkci5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOwoKICAvLyBicmlkZ2UgbWVzc2FnZQogIGlmKHNlYXNvbiAmJiBhbHRpdHVkZSl7CiAgICBjb25zdCBicmlkZ2VUZXh0ID0gZ2V0QnJpZGdlTWVzc2FnZShzZWFzb24sIGFsdGl0dWRlKTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdicmlkZ2VUZXh0JykudGV4dENvbnRlbnQgPSBicmlkZ2VUZXh0OwogICAgY29uc3QgYWx0RGF0YSA9IEFMVElUVURFU1thbHRpdHVkZV07CiAgICBpZihhbHREYXRhKXsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JyaWRnZVRpdGxlJykuc3R5bGUuY29sb3IgPSBhbHREYXRhLmNvbG9yOwogICAgfQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nvbm5lY3Rpb25CcmlkZ2UnKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICB9CgogIC8vIHByaW1hcnkgQ1RBIH4gcm91dGUgdG8gaHViIGFuY2hvcgogIGNvbnN0IGh1YlVybCA9IGFsdGl0dWRlCiAgICA/IGBodHRwczovL3NvdmVyZWlnbm1vbWVudHVtLmNvbSR7SFVCX0FOQ0hPUlNbYWx0aXR1ZGVdIHx8ICcnfWAKICAgIDogJ2h0dHBzOi8vc292ZXJlaWdubW9tZW50dW0uY29tJzsKICBjb25zdCBwcmltYXJ5QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByaW1hcnlDdGEnKTsKICBwcmltYXJ5QnRuLmhyZWYgPSBodWJVcmw7CiAgaWYoYWx0aXR1ZGUgJiYgQUxUSVRVREVTW2FsdGl0dWRlXSl7CiAgICBwcmltYXJ5QnRuLnN0eWxlLmJhY2tncm91bmQgPSBgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgJHtBTFRJVFVERVNbYWx0aXR1ZGVdLmNvbG9yfSwgJHtBTFRJVFVERVNbYWx0aXR1ZGVdLmNvbG9yfTk5KWA7CiAgfQoKICAvLyBzaG93IGN0YSArIHNoYXJlCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2N0YVdyYXAnKS5zdHlsZS5kaXNwbGF5ICAgPSAnZmxleCc7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NoYXJlU3RyaXAnKS5zdHlsZS5kaXNwbGF5PSAnZmxleCc7Cn0pKCk7CgovKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKICAgU0hBUkUK4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovCmZ1bmN0aW9uIGNvcHlTaGFyZSgpewogIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7CiAgY29uc3Qgc2Vhc29uICAgPSBwYXJhbXMuZ2V0KCdzZWFzb24nKSAgIHx8ICdzb3ZlcmVpZ24nOwogIGNvbnN0IGFsdGl0dWRlID0gcGFyYW1zLmdldCgnYWx0aXR1ZGUnKSB8fCAnc292ZXJlaWduJzsKICBjb25zdCBzTmFtZSA9IFNFQVNPTlNbc2Vhc29uXT8ubmFtZSAgICB8fCBzZWFzb247CiAgY29uc3QgYU5hbWUgPSBBTFRJVFVERVNbYWx0aXR1ZGVdPy5uYW1lIHx8IGFsdGl0dWRlOwogIGNvbnN0IHRleHQgPSBgSSBqdXN0IGNvbXBsZXRlZCB0aGUgU2hlIEV2b2x2ZXMgQWZyaWNhIFNvdmVyZWlnbiBKb3VybmV5IGF0IHRoZSBXaGF0IFdvbWVuIFdhbnQgU3VtbWl0IDQuMC5cblxuTXkgTUUgQk9TUyBTZWFzb246ICR7U0VBU09OU1tzZWFzb25dPy5pY29ufSAke3NOYW1lfVxuTXkgRGlnaXRhbCBBbHRpdHVkZTogJHtBTFRJVFVERVNbYWx0aXR1ZGVdPy5pY29ufSAke2FOYW1lfVxuXG5EaXNjb3ZlciB5b3VycyB+IFNoZSBFdm9sdmVzIEFmcmljYTpcbnNoZWVib3Nzc29sdXRpb25pc3QuY29tL21lLWJvc3NcbnRoZW1lcmlkaWFuLmFmcmljYS92b3J0ZXgtYWx0aXR1ZGVcblxu8J+RkSBBZnJpY2FuIHdvbWVuIHdlcmUgYWx3YXlzIHdvcnRoIGZpbmRpbmcuYDsKICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KS50aGVuKCgpPT57CiAgICBjb25zdCBidG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNzLWJ0bicpOwogICAgYnRuLnRleHRDb250ZW50PSdDb3BpZWQhIOKckyc7CiAgICBzZXRUaW1lb3V0KCgpPT5idG4udGV4dENvbnRlbnQ9J0NvcHkgUmVzdWx0cycsMjUwMCk7CiAgfSk7Cn0KCi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAogICBGTE9BVElFUwrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi8KKGZ1bmN0aW9uKCl7CiAgY29uc3Qgd3JhcD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmxvYXRpZXMnKTsKICBjb25zdCBzeW1zPVsn8J+RkScsJ+KcpicsJ+KXhicsJ+KZpiddOwogIGZvcihsZXQgaT0wO2k8MTY7aSsrKXsKICAgIGNvbnN0IGVsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBlbC5jbGFzc05hbWU9J2Zsb2F0aWUnOwogICAgZWwudGV4dENvbnRlbnQ9c3ltc1tpJXN5bXMubGVuZ3RoXTsKICAgIGNvbnN0IHM9OCtNYXRoLnJhbmRvbSgpKjEzOwogICAgZWwuc3R5bGUuY3NzVGV4dD1gbGVmdDoke01hdGgucmFuZG9tKCkqMTAwfSU7Zm9udC1zaXplOiR7c31weDthbmltYXRpb24tZHVyYXRpb246JHsxOCtNYXRoLnJhbmRvbSgpKjI2fXM7YW5pbWF0aW9uLWRlbGF5OiR7TWF0aC5yYW5kb20oKSoyNX1zO2NvbG9yOnJnYmEoMjAxLDE0OSwyNiwkey4wNytNYXRoLnJhbmRvbSgpKjAuMTZ9KTtgOwogICAgd3JhcC5hcHBlbmRDaGlsZChlbCk7CiAgfQp9KSgpOwo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+","embed":""}
š She Evolves Africa
What Women Want Summit 4.0Nairobi ~ March 2026
⦠Your Sovereign Journey ā¦
You Have Been
Seen.
Your ME BOSS Season and your Digital Altitude ~ together they reveal the complete picture of where you are and exactly where you are going.
Your results are waiting š
This page displays your ME BOSS Season and Vortex Altitude together ~ after you have completed both assessments. Start with the ME BOSS Assessment below.
š Begin the ME BOSS Assessment
š
Your ME BOSS Season
Loading...
š
Your Digital Altitude
Loading...
š
You know who you are. Now let us make sure the world can find her.
š See Your Curated Path Forward
Join the She Evolves Africa Community
Explore She Evolves Africa News ā
Share your journey š
Invite another woman to discover her Season and her Altitude
"Draw the line. Build the empire. Go home. You are way more than your business. Never forget it."
~ The SHE E-Boss Solutionistš She Evolves Africa ~ What Women Want Summit 4.0 ~ events.sovereignmomentum.com