home.svg
Home
About
EV
List
A
About
Album
AnimateOnLoad
AnimateOnScroll
API
B
BIO
Blog
m_blog
C
Category
Church
Contact
CTA
DE
Dev
Email
Events
FG
Google
FAQ
Flash Messages
Footer
Form
HIL
Headings
Home-Page
Integrations
Lesson
MN
Misc
Modules
OP
Pagination
Portfolio
Product
QR
Quote
React
Restaurant
ST
Team
Test
Testimonials
Service
Shopping
Svelte5
U-Z
Vue3
yii2
Stripe
PaymentIntent
PHP
Klogger
Yii2RoleConsoleCommand
Yii2 Role console command!
Yii2 Role console command!
Page,idxx-xx,oneColumn,
oneColumn/id15-41,Click to clipboard
ezI6IHsnZW4nOiB7J05vdGVzJzogJycsCiAgICAgICAgICAgICdTbGlkZVR5cGUnOiAnU3RhcnRNc2cnLAogICAgICAgICAgICAnYUxhYmVsJzogJycsCiAgICAgICAgICAgICdhX2ZpbGUnOiAnJywKICAgICAgICAgICAgJ2FkZENsYXNzJzogJycsCiAgICAgICAgICAgICdhc3ZnZmlsZSc6ICc8c3ZnPjwvc3ZnPicsCiAgICAgICAgICAgICdjZGF0YSc6ICcnLAogICAgICAgICAgICAnY29kZSc6ICcnLAogICAgICAgICAgICAnY29kZUluYyc6ICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHN0eWxlSW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgaGVhZCB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzdHlsZUluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc2NyaXB0SW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgYm9keSB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc2NyaXB0SW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBFbmRcclxuJywKICAgICAgICAgICAgJ2NvbEJHSW1hZ2UnOiAnJywKICAgICAgICAgICAgJ2NvbEJHSW1hZ2VXcmFwJzogJycsCiAgICAgICAgICAgICdjb21wb3NlckpTT04nOiAnJywKICAgICAgICAgICAgJ2RhdGEnOiAnPGgyIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPllpaTIgUm9sZSBjb25zb2xlICcKICAgICAgICAgICAgICAgICAgICAnY29tbWFuZCE8L2gyPicsCiAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCiAgICAgICAgICAgICdwaHBGaWxlJzogJycsCiAgICAgICAgICAgICdwaHBGaWxlQSc6ICcnLAogICAgICAgICAgICAncGhwRmlsZUInOiAnJ30sCiAgICAgJ2VuLVVTJzogeydOb3Rlcyc6ICcnLAogICAgICAgICAgICAgICAnU2xpZGVUeXBlJzogJ1N0YXJ0TXNnJywKICAgICAgICAgICAgICAgJ2FMYWJlbCc6ICcnLAogICAgICAgICAgICAgICAnYV9maWxlJzogJycsCiAgICAgICAgICAgICAgICdhZGRDbGFzcyc6ICcnLAogICAgICAgICAgICAgICAnYXN2Z2ZpbGUnOiAnPHN2Zz48L3N2Zz4nLAogICAgICAgICAgICAgICAnY2RhdGEnOiAnJywKICAgICAgICAgICAgICAgJ2NvZGUnOiAnJywKICAgICAgICAgICAgICAgJ2NvZGVJbmMnOiAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzdHlsZUluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGhlYWQgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc3R5bGVJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHNjcmlwdEluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGJvZHkgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHNjcmlwdEluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgRW5kXHJcbicsCiAgICAgICAgICAgICAgICdjb2xCR0ltYWdlJzogJycsCiAgICAgICAgICAgICAgICdjb2xCR0ltYWdlV3JhcCc6ICcnLAogICAgICAgICAgICAgICAnY29tcG9zZXJKU09OJzogJycsCiAgICAgICAgICAgICAgICdkYXRhJzogJzxoMiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij5ZaWkyIFJvbGUgY29uc29sZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2NvbW1hbmQhPC9oMj4nLAogICAgICAgICAgICAgICAnZHluYW1pY0Jsb2NrJzogJycsCiAgICAgICAgICAgICAgICdrZXl3b3Jkcyc6ICcnLAogICAgICAgICAgICAgICAncGhwRmlsZSc6ICcnLAogICAgICAgICAgICAgICAncGhwRmlsZUEnOiAnJywKICAgICAgICAgICAgICAgJ3BocEZpbGVCJzogJyd9fSwKIDE3OiB7J2VuJzogeydOb3Rlcyc6ICcnLAogICAgICAgICAgICAgJ1NsaWRlVHlwZSc6ICdTdGFydE1zZycsCiAgICAgICAgICAgICAnYUxhYmVsJzogJycsCiAgICAgICAgICAgICAnYV9maWxlJzogJycsCiAgICAgICAgICAgICAnYWRkQ2xhc3MnOiAnJywKICAgICAgICAgICAgICdhc3ZnZmlsZSc6ICc8c3ZnPjwvc3ZnPicsCiAgICAgICAgICAgICAnY2RhdGEnOiAnJywKICAgICAgICAgICAgICdjb2RlJzogJycsCiAgICAgICAgICAgICAnY29kZUluYyc6ICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzdHlsZUluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBoZWFkIHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHN0eWxlSW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHNjcmlwdEluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBib2R5IHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzY3JpcHRJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyMgRW5kXHJcbicsCiAgICAgICAgICAgICAnY29sQkdJbWFnZSc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWcxLmpwZycsCiAgICAgICAgICAgICAnY29sQkdJbWFnZVdyYXAnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nMi5qcGcnLAogICAgICAgICAgICAgJ2NvbXBvc2VySlNPTic6ICcnLAogICAgICAgICAgICAgJ2RhdGEnOiAnPGgyIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPllpaTIgUm9sZSBjb25zb2xlICcKICAgICAgICAgICAgICAgICAgICAgJ2NvbW1hbmQhPC9oMj4nLAogICAgICAgICAgICAgJ2R5bmFtaWNCbG9jayc6ICcnLAogICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCiAgICAgICAgICAgICAncGhwRmlsZSc6ICcnLAogICAgICAgICAgICAgJ3BocEZpbGVBJzogJycsCiAgICAgICAgICAgICAncGhwRmlsZUInOiAnJ30sCiAgICAgICdlbi1VUyc6IHsnTm90ZXMnOiAnJywKICAgICAgICAgICAgICAgICdTbGlkZVR5cGUnOiAnU3RhcnRNc2cnLAogICAgICAgICAgICAgICAgJ2FMYWJlbCc6ICcnLAogICAgICAgICAgICAgICAgJ2FfZmlsZSc6ICcnLAogICAgICAgICAgICAgICAgJ2FkZENsYXNzJzogJycsCiAgICAgICAgICAgICAgICAnYXN2Z2ZpbGUnOiAnPHN2Zz48L3N2Zz4nLAogICAgICAgICAgICAgICAgJ2NkYXRhJzogJycsCiAgICAgICAgICAgICAgICAnY29kZSc6ICcnLAogICAgICAgICAgICAgICAgJ2NvZGVJbmMnOiAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgaGVhZCB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzdHlsZUluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzY3JpcHRJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgYm9keSB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc2NyaXB0SW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIEVuZFxyXG4nLAogICAgICAgICAgICAgICAgJ2NvbEJHSW1hZ2UnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nMS5qcGcnLAogICAgICAgICAgICAgICAgJ2NvbEJHSW1hZ2VXcmFwJzogJy9kZWZhdWx0L21lZGlhL25hdjZoMC9zL1VJL0EwMDAwMDEwMjcwMDIwMDEvb25lQ29sdW1uL2ltZzIuanBnJywKICAgICAgICAgICAgICAgICdjb21wb3NlckpTT04nOiAnJywKICAgICAgICAgICAgICAgICdkYXRhJzogJzxoMiBzdHlsZT0idGV4dC1hbGlnbjogcmlnaHQ7Ij5ZaWkyIFJvbGUgY29uc29sZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICdjb21tYW5kITwvaDI+JywKICAgICAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgICAgICdrZXl3b3Jkcyc6ICcnLAogICAgICAgICAgICAgICAgJ3BocEZpbGUnOiAnJywKICAgICAgICAgICAgICAgICdwaHBGaWxlQSc6ICcnLAogICAgICAgICAgICAgICAgJ3BocEZpbGVCJzogJyd9fSwKIDE4OiB7J2VuJzogeydOb3Rlcyc6ICcnLAogICAgICAgICAgICAgJ1NsaWRlVHlwZSc6ICdDb2RlJywKICAgICAgICAgICAgICdhSW1hZ2UnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nMy5qcGcnLAogICAgICAgICAgICAgJ2FJbWFnZVRodW0nOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vdGh1bS9pbWcxLmpwZycsCiAgICAgICAgICAgICAnYUxhYmVsJzogJ1JvbGUgQ29tbWFuZHMnLAogICAgICAgICAgICAgJ2FNZWRpYSc6ICcnLAogICAgICAgICAgICAgJ2FfZmlsZSc6ICcnLAogICAgICAgICAgICAgJ2FkZENsYXNzJzogJycsCiAgICAgICAgICAgICAnYXN2Z2ZpbGUnOiAnPHN2Zz48L3N2Zz4nLAogICAgICAgICAgICAgJ2NvZGUnOiAnJywKICAgICAgICAgICAgICdjb2RlSW5jJzogJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHN0eWxlSW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGhlYWQgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc3R5bGVJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc2NyaXB0SW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGJvZHkgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHNjcmlwdEluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnIyBFbmRcclxuJywKICAgICAgICAgICAgICdjb2xCR0ltYWdlJzogJy9kZWZhdWx0L21lZGlhL25hdjZoMC9zL1VJL0EwMDAwMDEwMjcwMDIwMDEvb25lQ29sdW1uL2ltZzQuanBnJywKICAgICAgICAgICAgICdjb2xCR0ltYWdlV3JhcCc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWc1LmpwZycsCiAgICAgICAgICAgICAnY29tcG9zZXJKU09OJzogJycsCiAgICAgICAgICAgICAnZHluYW1pY0Jsb2NrJzogJycsCiAgICAgICAgICAgICAna2V5d29yZHMnOiAnJywKICAgICAgICAgICAgICdwaHBGaWxlJzogJzw/cGhwIC8qICcKICAgICAgICAgICAgICAgICAgICAgICAgJ19kb2Nyb290Xy8uLi9zcmMveWlpMi9hZHZhbmNlZC92ZW5kb3IvMmFtaWdvcy95aWkyLXVzdWFyaW8vc3JjL1VzZXIvQ29tbWFuZC9Sb2xlQ29udHJvbGxlci5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJy8qXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSAyYW1pZ29zL3lpaTItdXN1YXJpbyAnCiAgICAgICAgICAgICAgICAgICAgICAgICdwcm9qZWN0LlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgKiAoYykgMmFtaWdPUyEgPGh0dHA6Ly8yYW1pZ29zLnVzLz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgJwogICAgICAgICAgICAgICAgICAgICAgICAncGxlYXNlIHZpZXdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICogdGhlIExJQ0VOU0UgZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgJwogICAgICAgICAgICAgICAgICAgICAgICAnc291cmNlIGNvZGUuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnbmFtZXNwYWNlIERhXFxVc2VyXFxDb21tYW5kO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxGYWN0b3J5XFxNYWlsRmFjdG9yeTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxNb2RlbFxcVXNlcjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxTZXJ2aWNlXFxVc2VyQ3JlYXRlU2VydmljZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxUcmFpdHNcXENvbnRhaW5lckF3YXJlVHJhaXQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBZaWk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSB5aWlcXGNvbnNvbGVcXENvbnRyb2xsZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSB5aWlcXGhlbHBlcnNcXENvbnNvbGU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdjbGFzcyBSb2xlQ29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAne1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgdXNlIENvbnRhaW5lckF3YXJlVHJhaXQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIFRoaXMgY29tbWFuZCBhIHJvbGUgdG8gYSB1c2VyL2VtYWlsLiBJZiB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICAndXNlciBhbHJlYWR5IGhhcyB0aGUgcm9sZSBhc3NpZ24sIGl0IHdpbGwgc2tpcC5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgJGVtYWlsICAgIEVtYWlsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZ3xudWxsICRyb2xlICAgICBSb2xlIHRvIGFzc2lnbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICcobXVzdCBhbHJlYWR5IGV4aXN0KVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEB0aHJvd3MgXFx5aWlcXGJhc2VcXEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHVibGljIGZ1bmN0aW9uIGFjdGlvbkluZGV4KCRlbWFpbCwgJHJvbGUpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB7ICAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJHVzZXIgPSBZaWk6OiRhcHAtPmRiLT5jcmVhdGVDb21tYW5kKCdTRUxFQ1QgIgogICAgICAgICAgICAgICAgICAgICAgICAnaWQsIHVzZXJuYW1lLCBlbWFpbCBGUk9NIHVzZXIgICB3aGVyZSAgZW1haWwgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICciXCcuJGVtYWlsLlwnIlwnKSAtPnF1ZXJ5T25lKCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICNwcmludF9yKCRhbGxVc2Vycyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJGF1dGggPSBZaWk6OiRhcHAtPmdldEF1dGhNYW5hZ2VyKCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgaWYgKGZhbHNlID09PSAkYXV0aCkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAkdGhpcy0+c3Rkb3V0KFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgWWlpOjp0KFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgICAgICd1c3VhcmlvJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICAgICBcJ0Nhbm5vdCBhc3NpZ24gcm9sZSAiezB9IiBhcyB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICAnQXV0aE1hbmFnZXIgaXMgbm90IGNvbmZpZ3VyZWQgb24geW91ciBjb25zb2xlICcKICAgICAgICAgICAgICAgICAgICAgICAgImFwcGxpY2F0aW9uLicsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICAgICAgJHJvbGVcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICkgLiAiXFxuIixcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgIENvbnNvbGU6OkZHX1JFRFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICApOyBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICB9IGVsc2Uge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAkdXNlclJvbGUgPSAkYXV0aC0+Z2V0Um9sZSgkcm9sZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIGlmIChudWxsID09PSAkdXNlclJvbGUpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICR0aGlzLT5zdGRvdXQoWWlpOjp0KCd1c3VhcmlvJywgJ1JvbGUgIgogICAgICAgICAgICAgICAgICAgICAgICAnInswfSIgbm90IGZvdW5kLiBDcmVhdGluZyBpdC5cJywgWyRyb2xlXSkgLiAiIVxcbiIsICcKICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnNvbGU6OkZHX0dSRUVOKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICR1c2VyUm9sZSA9ICcKICAgICAgICAgICAgICAgICAgICAgICAgJyRhdXRoLT5jcmVhdGVSb2xlKCRyb2xlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICRhdXRoLT5hZGQoJHVzZXJSb2xlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgIC8vIHByaW50X3IoJHVzZXJSb2xlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAkYXV0aC0+YXNzaWduKCR1c2VyUm9sZSwgJHVzZXJbJ2lkJ10pO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJywKICAgICAgICAgICAgICdwaHBGaWxlQSc6ICc8P3BocCAvKiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnX2RvY3Jvb3RfLy4uL3NyYy95aWkyL2FkdmFuY2VkL3ZlbmRvci8yYW1pZ29zL3lpaTItdXN1YXJpby9zcmMvVXNlci9Db21tYW5kL0Fzb25lQ29udHJvbGxlci5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAgJyovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJy8qXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgMmFtaWdvcy95aWkyLXVzdWFyaW8gJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3QuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICogKGMpIDJhbWlnT1MhIDxodHRwOi8vMmFtaWdvcy51cy8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3BsZWFzZSB2aWV3XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgKiB0aGUgTElDRU5TRSBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnc291cmNlIGNvZGUuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZXNwYWNlIERhXFxVc2VyXFxDb21tYW5kO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXEZhY3RvcnlcXE1haWxGYWN0b3J5O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxNb2RlbFxcVXNlcjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcU2VydmljZVxcVXNlckNyZWF0ZVNlcnZpY2U7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXFRyYWl0c1xcQ29udGFpbmVyQXdhcmVUcmFpdDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBZaWk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgeWlpXFxjb25zb2xlXFxDb250cm9sbGVyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIHlpaVxcaGVscGVyc1xcQ29uc29sZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnY2xhc3MgQXNvbmVDb250cm9sbGVyIGV4dGVuZHMgQ29udHJvbGxlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAne1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHVzZSBDb250YWluZXJBd2FyZVRyYWl0O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLyoqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogVGhpcyBjb21tYW5kIGNyZWF0ZXMgYSBuZXcgdXNlciBhY2NvdW50IGZvciAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnV2ViQXNPbmUuIElmIG5vIHBhc3N3b3JkIGlzIG5vdCBzZXQsIGFuIDgtY2hhciAnCiAgICAgICAgICAgICAgICAgICAgICAgICAncGFzc3dvcmQgd2lsbCBiZSBnZW5lcmF0ZWQuIEFmdGVyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogc2F2aW5nIHVzZXIgdG8gZGF0YWJhc2UsIHRoaXMgY29tbWFuZCB1c2VzICcKICAgICAgICAgICAgICAgICAgICAgICAgICdtYWlsZXIgY29tcG9uZW50IHRvIHNlbmQgY3JlZGVudGlhbHMgKHVzZXJuYW1lIGFuZCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAncGFzc3dvcmQpIHRvIHVzZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiB2aWEgZW1haWwuIEEgcm9sZSBjYW4gYmUgYWxzbyBhc3NpZ25lZCBidXQgaXQgJwogICAgICAgICAgICAgICAgICAgICAgICAgJ211c3QgZXhpc3RzIHByZXZpb3VzbHkgb24gdGhlIGRhdGFiYXNlLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICRlbWFpbCAgICBFbWFpbFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAkdXNlcm5hbWUgVXNlcm5hbWVcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHBhc3N3b3JkIFRoZSBwYXNzd29yZC4gSWYgJwogICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwgaXQgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmd8bnVsbCAkcm9sZSAgICAgUm9sZSB0byBhc3NpZ24gJwogICAgICAgICAgICAgICAgICAgICAgICAgJyhtdXN0IGFscmVhZHkgZXhpc3QpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAdGhyb3dzICcKICAgICAgICAgICAgICAgICAgICAgICAgICdcXHlpaVxcYmFzZVxcSW52YWxpZENvbmZpZ0V4Y2VwdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHB1YmxpYyBmdW5jdGlvbiBhY3Rpb25JbmRleCgpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgJGFsbFVzZXJzID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1lpaTo6JGFwcC0+ZGItPmNyZWF0ZUNvbW1hbmQoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICdTRUxFQ1QgdS5pZCwgdS51c2VybmFtZSwgdS5lbWFpbCwgIgogICAgICAgICAgICAgICAgICAgICAgICAgImEuaXRlbV9uYW1lIEZST00nXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIC4nIHVzZXIgYXMgdSBpbm5lciBqb2luIGF1dGhfYXNzaWdubWVudCBhICIKICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGVyZSBhLnVzZXJfaWQgPSB1LmlkJykgLT5xdWVyeUFsbCgpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgI3ByaW50X3IoJGFsbFVzZXJzKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgI3Zhcl9kdW1wKGFycmF5X21hcChmdW5jdGlvbiAoJGEpIHsgJwogICAgICAgICAgICAgICAgICAgICAgICAgInJldHVybiBbJGFbJ3VzZXJuYW1lJ10sICRhWydlbWFpbCddXTsgIgogICAgICAgICAgICAgICAgICAgICAgICAgJ30sJGFsbFVzZXJzKSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBlY2hvICJcXG5cXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgZm9yZWFjaCAoJGFsbFVzZXJzIGFzICR1KSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgICAgIGVjaG8gJyAgICAnLCR1WydpZCddLCc6JywgIgogICAgICAgICAgICAgICAgICAgICAgICAgIiR1Wyd1c2VybmFtZSddLCAnOicsICR1WydlbWFpbCddLCAnOicsICIKICAgICAgICAgICAgICAgICAgICAgICAgICckdVtcJ2l0ZW1fbmFtZVwnXSwgIlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBlY2hvICJcXG5cXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ30nLAogICAgICAgICAgICAgJ3BocEZpbGVCJzogJzw/cGhwIC8qICcKICAgICAgICAgICAgICAgICAgICAgICAgICdfZG9jcm9vdF8vLi4vc3JjL3lpaTIvYWR2YW5jZWQvdmVuZG9yLzJhbWlnb3MveWlpMi11c3VhcmlvL3NyYy9Vc2VyL0NvbW1hbmQvQ3JlYXRlQ29udHJvbGxlci5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAgJyovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnLypcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSAyYW1pZ29zL3lpaTItdXN1YXJpbyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdC5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgKiAoYykgMmFtaWdPUyEgPGh0dHA6Ly8yYW1pZ29zLnVzLz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAncGxlYXNlIHZpZXdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAqIHRoZSBMSUNFTlNFIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzICcKICAgICAgICAgICAgICAgICAgICAgICAgICdzb3VyY2UgY29kZS5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICduYW1lc3BhY2UgRGFcXFVzZXJcXENvbW1hbmQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcRmFjdG9yeVxcTWFpbEZhY3Rvcnk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXE1vZGVsXFxVc2VyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxTZXJ2aWNlXFxVc2VyQ3JlYXRlU2VydmljZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcVHJhaXRzXFxDb250YWluZXJBd2FyZVRyYWl0O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIFlpaTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSB5aWlcXGNvbnNvbGVcXENvbnRyb2xsZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgeWlpXFxoZWxwZXJzXFxDb25zb2xlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdjbGFzcyBDcmVhdGVDb250cm9sbGVyIGV4dGVuZHMgQ29udHJvbGxlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAne1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHVzZSBDb250YWluZXJBd2FyZVRyYWl0O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLyoqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogVGhpcyBjb21tYW5kIGNyZWF0ZXMgYSBuZXcgdXNlciBhY2NvdW50LiBJZiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnbm8gcGFzc3dvcmQgaXMgbm90IHNldCwgYW4gOC1jaGFyIHBhc3N3b3JkIHdpbGwgYmUgJwogICAgICAgICAgICAgICAgICAgICAgICAgJ2dlbmVyYXRlZC4gQWZ0ZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBzYXZpbmcgdXNlciB0byBkYXRhYmFzZSwgdGhpcyBjb21tYW5kIHVzZXMgJwogICAgICAgICAgICAgICAgICAgICAgICAgJ21haWxlciBjb21wb25lbnQgdG8gc2VuZCBjcmVkZW50aWFscyAodXNlcm5hbWUgYW5kICcKICAgICAgICAgICAgICAgICAgICAgICAgICdwYXNzd29yZCkgdG8gdXNlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIHZpYSBlbWFpbC4gQSByb2xlIGNhbiBiZSBhbHNvIGFzc2lnbmVkIGJ1dCBpdCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnbXVzdCBleGlzdHMgcHJldmlvdXNseSBvbiB0aGUgZGF0YWJhc2UuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgJGVtYWlsICAgIEVtYWlsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICR1c2VybmFtZSBVc2VybmFtZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAkdXJsIHdlYnNpdGUgdXJsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZ3xudWxsICRwYXNzd29yZCBUaGUgcGFzc3dvcmQuIElmICcKICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsIGl0IHdpbGwgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHlcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHJvbGUgICAgIFJvbGUgdG8gYXNzaWduICcKICAgICAgICAgICAgICAgICAgICAgICAgICcobXVzdCBhbHJlYWR5IGV4aXN0KVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHRocm93cyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnXFx5aWlcXGJhc2VcXEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aW9uSW5kZXgoJGVtYWlsLCAkdXNlcm5hbWUsICcKICAgICAgICAgICAgICAgICAgICAgICAgICckdXJsLCAkcGFzc3dvcmQgPSBudWxsLCAkcm9sZSA9IG51bGwpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvKiogQHZhciBVc2VyICR1c2VyICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICR1c2VyID0gJHRoaXMtPm1ha2UoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBVc2VyOjpjbGFzcyxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIFtdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgWydzY2VuYXJpbycgPT4gJ2NyZWF0ZScsICdlbWFpbCcgPT4gIgogICAgICAgICAgICAgICAgICAgICAgICAgIiRlbWFpbCwgJ3VzZXJuYW1lJyA9PiAkdXNlcm5hbWUsICdwYXNzd29yZCcgPT4gIgogICAgICAgICAgICAgICAgICAgICAgICAgJyRwYXNzd29yZF1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1x0I3ByaW50X3IoJHVzZXItPnVzZXJuYW1lKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1x0I3JldHVybjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJG1haWxTZXJ2aWNlID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgJ01haWxGYWN0b3J5OjptYWtlV2VsY29tZU1haWxlclNlcnZpY2UoJHVzZXIsIHRydWUsICcKICAgICAgICAgICAgICAgICAgICAgICAgICIob2JqZWN0KVsndXJsJyA9PiAkdXJsXSk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgaWYgKCR0aGlzLT5tYWtlKFVzZXJDcmVhdGVTZXJ2aWNlOjpjbGFzcywgJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1skdXNlciwgJG1haWxTZXJ2aWNlXSktPnJ1bigpKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAkdGhpcy0+c3Rkb3V0KFlpaTo6dCgndXN1YXJpbycsICdVc2VyICIKICAgICAgICAgICAgICAgICAgICAgICAgICdoYXMgYmVlbiBjcmVhdGVkXCcpIC4gIiFcXG4iLCBDb25zb2xlOjpGR19HUkVFTik7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIGlmIChudWxsICE9PSAkcm9sZSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICR0aGlzLT5hc3NpZ25Sb2xlKCR1c2VyLCAkcm9sZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIH0gZWxzZSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAkdGhpcy0+c3Rkb3V0KFlpaTo6dCgndXN1YXJpbycsICdQbGVhc2UgIgogICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpeCBmb2xsb3dpbmcgZXJyb3JzOlwnKSAuICJcXG4iLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnQ29uc29sZTo6RkdfUkVEKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIGZvcmVhY2ggKCR1c2VyLT5lcnJvcnMgYXMgJGVycm9ycykge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRlcnJvcnMgYXMgJGVycm9yKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgICAgICR0aGlzLT5zdGRvdXQoJyAtICcgLiAkZXJyb3IgLiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAnIlxcbiIsIENvbnNvbGU6OkZHX1JFRCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGFzc2lnblJvbGUoVXNlciAkdXNlciwgJwogICAgICAgICAgICAgICAgICAgICAgICAgJyRyb2xlKVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJGF1dGggPSBZaWk6OiRhcHAtPmdldEF1dGhNYW5hZ2VyKCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIGlmIChmYWxzZSA9PT0gJGF1dGgpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICR0aGlzLT5zdGRvdXQoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgWWlpOjp0KFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAndXN1YXJpbycsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgICAgIFwnQ2Fubm90IGFzc2lnbiByb2xlICJ7MH0iIGFzICcKICAgICAgICAgICAgICAgICAgICAgICAgICd0aGUgQXV0aE1hbmFnZXIgaXMgbm90IGNvbmZpZ3VyZWQgb24geW91ciBjb25zb2xlICcKICAgICAgICAgICAgICAgICAgICAgICAgICJhcHBsaWNhdGlvbi4nLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICAgICAkcm9sZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICkgLiAiXFxuIixcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICBDb25zb2xlOjpGR19SRURcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIH0gZWxzZSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAkdXNlclJvbGUgPSAkYXV0aC0+Z2V0Um9sZSgkcm9sZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBpZiAobnVsbCA9PT0gJHVzZXJSb2xlKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgJHRoaXMtPnN0ZG91dChZaWk6OnQoJ3VzdWFyaW8nLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAnXCdSb2xlICJ7MH0iIG5vdCBmb3VuZC4gQ3JlYXRpbmcgaXQuXCcsIFskcm9sZV0pIC4gJwogICAgICAgICAgICAgICAgICAgICAgICAgJyIhXFxuIiwgQ29uc29sZTo6RkdfR1JFRU4pO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICR1c2VyUm9sZSA9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICckYXV0aC0+Y3JlYXRlUm9sZSgkcm9sZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgJGF1dGgtPmFkZCgkdXNlclJvbGUpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgJGF1dGgtPmFzc2lnbigkdXNlclJvbGUsICR1c2VyLT5pZCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICd9XHJcbicsCiAgICAgICAgICAgICAncmVjb2RlJzogJzw/cGhwIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiRjbWQgPSAkcmVsX3Jvb3QuJy8uLi9zcmMveWlpMi9hZHZhbmNlZC95aWkgJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICckcmV0ID0gc2hlbGxfZXhlYygkY21kLiIgdXNlci9yb2xlIHdlYmFzb25lQGdtYWlsLmNvbSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ0NvdXJzZUEiKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICckcmV0ID0gc2hlbGxfZXhlYygkY21kLiIgdXNlci9yb2xlIHdlYmFzb25lQGdtYWlsLmNvbSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ0NvdXJzZUIiKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICckcmV0ID0gc2hlbGxfZXhlYygkY21kLiIgdXNlci9yb2xlIHdlYmFzb25lQGdtYWlsLmNvbSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ0NvdXJzZUMiKTsgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPz4nLAogICAgICAgICAgICAgJ3VGaWxlJzogJyd9LAogICAgICAnZW4tVVMnOiB7J05vdGVzJzogJycsCiAgICAgICAgICAgICAgICAnU2xpZGVUeXBlJzogJ0NvZGUnLAogICAgICAgICAgICAgICAgJ2FJbWFnZSc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWczLmpwZycsCiAgICAgICAgICAgICAgICAnYUltYWdlVGh1bSc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi90aHVtL2ltZzEuanBnJywKICAgICAgICAgICAgICAgICdhTGFiZWwnOiAnUm9sZSBDb21tYW5kcycsCiAgICAgICAgICAgICAgICAnYU1lZGlhJzogJycsCiAgICAgICAgICAgICAgICAnYV9maWxlJzogJycsCiAgICAgICAgICAgICAgICAnYWRkQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgICdhc3ZnZmlsZSc6ICc8c3ZnPjwvc3ZnPicsCiAgICAgICAgICAgICAgICAnY29kZSc6ICcnLAogICAgICAgICAgICAgICAgJ2NvZGVJbmMnOiAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgaGVhZCB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzdHlsZUluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzY3JpcHRJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgYm9keSB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc2NyaXB0SW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIEVuZFxyXG4nLAogICAgICAgICAgICAgICAgJ2NvbEJHSW1hZ2UnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nNC5qcGcnLAogICAgICAgICAgICAgICAgJ2NvbEJHSW1hZ2VXcmFwJzogJy9kZWZhdWx0L21lZGlhL25hdjZoMC9zL1VJL0EwMDAwMDEwMjcwMDIwMDEvb25lQ29sdW1uL2ltZzUuanBnJywKICAgICAgICAgICAgICAgICdjb21wb3NlckpTT04nOiAnJywKICAgICAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgICAgICdrZXl3b3Jkcyc6ICcnLAogICAgICAgICAgICAgICAgJ3BocEZpbGUnOiAnPD9waHAgLyogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnX2RvY3Jvb3RfLy4uL3NyYy95aWkyL2FkdmFuY2VkL3ZlbmRvci8yYW1pZ29zL3lpaTItdXN1YXJpby9zcmMvVXNlci9Db21tYW5kL1JvbGVDb250cm9sbGVyLnBocCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnLypcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIDJhbWlnb3MveWlpMi11c3VhcmlvICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3QuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIChjKSAyYW1pZ09TISA8aHR0cDovLzJhbWlnb3MudXMvPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdwbGVhc2Ugdmlld1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiB0aGUgTElDRU5TRSBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdzb3VyY2UgY29kZS5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICduYW1lc3BhY2UgRGFcXFVzZXJcXENvbW1hbmQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXEZhY3RvcnlcXE1haWxGYWN0b3J5O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXE1vZGVsXFxVc2VyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXFNlcnZpY2VcXFVzZXJDcmVhdGVTZXJ2aWNlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXFRyYWl0c1xcQ29udGFpbmVyQXdhcmVUcmFpdDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIFlpaTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIHlpaVxcY29uc29sZVxcQ29udHJvbGxlcjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIHlpaVxcaGVscGVyc1xcQ29uc29sZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsYXNzIFJvbGVDb250cm9sbGVyIGV4dGVuZHMgQ29udHJvbGxlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICd7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB1c2UgQ29udGFpbmVyQXdhcmVUcmFpdDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8qKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogVGhpcyBjb21tYW5kIGEgcm9sZSB0byBhIHVzZXIvZW1haWwuIElmIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2VyIGFscmVhZHkgaGFzIHRoZSByb2xlIGFzc2lnbiwgaXQgd2lsbCBza2lwLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAkZW1haWwgICAgRW1haWxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHJvbGUgICAgIFJvbGUgdG8gYXNzaWduICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhtdXN0IGFscmVhZHkgZXhpc3QpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHRocm93cyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcXHlpaVxcYmFzZVxcSW52YWxpZENvbmZpZ0V4Y2VwdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aW9uSW5kZXgoJGVtYWlsLCAkcm9sZSlcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHsgICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkdXNlciA9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIllpaTo6JGFwcC0+ZGItPmNyZWF0ZUNvbW1hbmQoJ1NFTEVDVCBpZCwgdXNlcm5hbWUsICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VtYWlsIEZST00gdXNlciAgIHdoZXJlICBlbWFpbCA9ICJcJy4kZW1haWwuXCciXCcpICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0+cXVlcnlPbmUoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgI3ByaW50X3IoJGFsbFVzZXJzKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkYXV0aCA9IFlpaTo6JGFwcC0+Z2V0QXV0aE1hbmFnZXIoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBpZiAoZmFsc2UgPT09ICRhdXRoKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICR0aGlzLT5zdGRvdXQoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICBZaWk6OnQoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgJ3VzdWFyaW8nLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgICAgIFwnQ2Fubm90IGFzc2lnbiByb2xlICJ7MH0iIGFzICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBBdXRoTWFuYWdlciBpcyBub3QgY29uZmlndXJlZCBvbiB5b3VyIGNvbnNvbGUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiYXBwbGljYXRpb24uJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICAgICAkcm9sZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgKSAuICJcXG4iLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgQ29uc29sZTo6RkdfUkVEXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICk7IFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIH0gZWxzZSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICR1c2VyUm9sZSA9ICRhdXRoLT5nZXRSb2xlKCRyb2xlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgaWYgKG51bGwgPT09ICR1c2VyUm9sZSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgJHRoaXMtPnN0ZG91dChZaWk6OnQoJ3VzdWFyaW8nLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcJ1JvbGUgInswfSIgbm90IGZvdW5kLiBDcmVhdGluZyBpdC5cJywgWyRyb2xlXSkgLiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICciIVxcbiIsIENvbnNvbGU6OkZHX0dSRUVOKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICR1c2VyUm9sZSA9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyRhdXRoLT5jcmVhdGVSb2xlKCRyb2xlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICRhdXRoLT5hZGQoJHVzZXJSb2xlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgIC8vIHByaW50X3IoJHVzZXJSb2xlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAkYXV0aC0+YXNzaWduKCR1c2VyUm9sZSwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiJHVzZXJbJ2lkJ10pO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJywKICAgICAgICAgICAgICAgICdwaHBGaWxlQSc6ICc8P3BocCAvKiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX2RvY3Jvb3RfLy4uL3NyYy95aWkyL2FkdmFuY2VkL3ZlbmRvci8yYW1pZ29zL3lpaTItdXN1YXJpby9zcmMvVXNlci9Db21tYW5kL0Fzb25lQ29udHJvbGxlci5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgMmFtaWdvcy95aWkyLXVzdWFyaW8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3QuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICogKGMpIDJhbWlnT1MhIDxodHRwOi8vMmFtaWdvcy51cy8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiB0aGUgTElDRU5TRSBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoaXMgc291cmNlIGNvZGUuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZXNwYWNlIERhXFxVc2VyXFxDb21tYW5kO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXEZhY3RvcnlcXE1haWxGYWN0b3J5O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxNb2RlbFxcVXNlcjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcU2VydmljZVxcVXNlckNyZWF0ZVNlcnZpY2U7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXFRyYWl0c1xcQ29udGFpbmVyQXdhcmVUcmFpdDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBZaWk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgeWlpXFxjb25zb2xlXFxDb250cm9sbGVyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIHlpaVxcaGVscGVyc1xcQ29uc29sZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xhc3MgQXNvbmVDb250cm9sbGVyIGV4dGVuZHMgQ29udHJvbGxlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAne1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHVzZSBDb250YWluZXJBd2FyZVRyYWl0O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLyoqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogVGhpcyBjb21tYW5kIGNyZWF0ZXMgYSBuZXcgdXNlciBhY2NvdW50ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3IgV2ViQXNPbmUuIElmIG5vIHBhc3N3b3JkIGlzIG5vdCBzZXQsIGFuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc4LWNoYXIgcGFzc3dvcmQgd2lsbCBiZSBnZW5lcmF0ZWQuIEFmdGVyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogc2F2aW5nIHVzZXIgdG8gZGF0YWJhc2UsIHRoaXMgY29tbWFuZCB1c2VzICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWlsZXIgY29tcG9uZW50IHRvIHNlbmQgY3JlZGVudGlhbHMgKHVzZXJuYW1lICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhbmQgcGFzc3dvcmQpIHRvIHVzZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiB2aWEgZW1haWwuIEEgcm9sZSBjYW4gYmUgYWxzbyBhc3NpZ25lZCBidXQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2l0IG11c3QgZXhpc3RzIHByZXZpb3VzbHkgb24gdGhlIGRhdGFiYXNlLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICRlbWFpbCAgICBFbWFpbFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAkdXNlcm5hbWUgVXNlcm5hbWVcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHBhc3N3b3JkIFRoZSBwYXNzd29yZC4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lmIG51bGwgaXQgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmd8bnVsbCAkcm9sZSAgICAgUm9sZSB0byAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNzaWduIChtdXN0IGFscmVhZHkgZXhpc3QpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAdGhyb3dzICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcXHlpaVxcYmFzZVxcSW52YWxpZENvbmZpZ0V4Y2VwdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHB1YmxpYyBmdW5jdGlvbiBhY3Rpb25JbmRleCgpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgJGFsbFVzZXJzID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1lpaTo6JGFwcC0+ZGItPmNyZWF0ZUNvbW1hbmQoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICdTRUxFQ1QgdS5pZCwgdS51c2VybmFtZSwgdS5lbWFpbCwgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgImEuaXRlbV9uYW1lIEZST00nXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIC4nIHVzZXIgYXMgdSBpbm5lciBqb2luIGF1dGhfYXNzaWdubWVudCBhICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGVyZSBhLnVzZXJfaWQgPSB1LmlkJykgLT5xdWVyeUFsbCgpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgI3ByaW50X3IoJGFsbFVzZXJzKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgI3Zhcl9kdW1wKGFycmF5X21hcChmdW5jdGlvbiAoJGEpIHsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgInJldHVybiBbJGFbJ3VzZXJuYW1lJ10sICRhWydlbWFpbCddXTsgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30sJGFsbFVzZXJzKSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBlY2hvICJcXG5cXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgZm9yZWFjaCAoJGFsbFVzZXJzIGFzICR1KSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgICAgIGVjaG8gJyAgICAnLCR1WydpZCddLCc6JywgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR1Wyd1c2VybmFtZSddLCAnOicsICR1WydlbWFpbCddLCAnOicsICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICckdVtcJ2l0ZW1fbmFtZVwnXSwgIlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBlY2hvICJcXG5cXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30nLAogICAgICAgICAgICAgICAgJ3BocEZpbGVCJzogJzw/cGhwIC8qICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfZG9jcm9vdF8vLi4vc3JjL3lpaTIvYWR2YW5jZWQvdmVuZG9yLzJhbWlnb3MveWlpMi11c3VhcmlvL3NyYy9Vc2VyL0NvbW1hbmQvQ3JlYXRlQ29udHJvbGxlci5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLypcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSAyYW1pZ29zL3lpaTItdXN1YXJpbyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdC5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiAoYykgMmFtaWdPUyEgPGh0dHA6Ly8yYW1pZ29zLnVzLz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIHRoZSBMSUNFTlNFIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGhpcyBzb3VyY2UgY29kZS5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICduYW1lc3BhY2UgRGFcXFVzZXJcXENvbW1hbmQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcRmFjdG9yeVxcTWFpbEZhY3Rvcnk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXE1vZGVsXFxVc2VyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxTZXJ2aWNlXFxVc2VyQ3JlYXRlU2VydmljZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcVHJhaXRzXFxDb250YWluZXJBd2FyZVRyYWl0O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIFlpaTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSB5aWlcXGNvbnNvbGVcXENvbnRyb2xsZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgeWlpXFxoZWxwZXJzXFxDb25zb2xlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjbGFzcyBDcmVhdGVDb250cm9sbGVyIGV4dGVuZHMgQ29udHJvbGxlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAne1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHVzZSBDb250YWluZXJBd2FyZVRyYWl0O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLyoqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogVGhpcyBjb21tYW5kIGNyZWF0ZXMgYSBuZXcgdXNlciBhY2NvdW50LiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSWYgbm8gcGFzc3dvcmQgaXMgbm90IHNldCwgYW4gOC1jaGFyIHBhc3N3b3JkICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWxsIGJlIGdlbmVyYXRlZC4gQWZ0ZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBzYXZpbmcgdXNlciB0byBkYXRhYmFzZSwgdGhpcyBjb21tYW5kIHVzZXMgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21haWxlciBjb21wb25lbnQgdG8gc2VuZCBjcmVkZW50aWFscyAodXNlcm5hbWUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FuZCBwYXNzd29yZCkgdG8gdXNlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIHZpYSBlbWFpbC4gQSByb2xlIGNhbiBiZSBhbHNvIGFzc2lnbmVkIGJ1dCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXQgbXVzdCBleGlzdHMgcHJldmlvdXNseSBvbiB0aGUgZGF0YWJhc2UuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgJGVtYWlsICAgIEVtYWlsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICR1c2VybmFtZSBVc2VybmFtZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAkdXJsIHdlYnNpdGUgdXJsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZ3xudWxsICRwYXNzd29yZCBUaGUgcGFzc3dvcmQuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdJZiBudWxsIGl0IHdpbGwgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHlcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHJvbGUgICAgIFJvbGUgdG8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Fzc2lnbiAobXVzdCBhbHJlYWR5IGV4aXN0KVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHRocm93cyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXFx5aWlcXGJhc2VcXEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aW9uSW5kZXgoJGVtYWlsLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJHVzZXJuYW1lLCAkdXJsLCAkcGFzc3dvcmQgPSBudWxsLCAkcm9sZSA9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsKVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLyoqIEB2YXIgVXNlciAkdXNlciAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkdXNlciA9ICR0aGlzLT5tYWtlKFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgVXNlcjo6Y2xhc3MsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBbXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIFsnc2NlbmFyaW8nID0+ICdjcmVhdGUnLCAnZW1haWwnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkZW1haWwsICd1c2VybmFtZScgPT4gJHVzZXJuYW1lLCAncGFzc3dvcmQnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICckcGFzc3dvcmRdXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcdCNwcmludF9yKCR1c2VyLT51c2VybmFtZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcdCNyZXR1cm47XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRtYWlsU2VydmljZSA9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNYWlsRmFjdG9yeTo6bWFrZVdlbGNvbWVNYWlsZXJTZXJ2aWNlKCR1c2VyLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJ1ZSwgKG9iamVjdClbJ3VybCcgPT4gJHVybF0pO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIGlmICgkdGhpcy0+bWFrZShVc2VyQ3JlYXRlU2VydmljZTo6Y2xhc3MsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbJHVzZXIsICRtYWlsU2VydmljZV0pLT5ydW4oKSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJHRoaXMtPnN0ZG91dChZaWk6OnQoJ3VzdWFyaW8nLCAnVXNlciAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFzIGJlZW4gY3JlYXRlZFwnKSAuICIhXFxuIiwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnNvbGU6OkZHX0dSRUVOKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgaWYgKG51bGwgIT09ICRyb2xlKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgJHRoaXMtPmFzc2lnblJvbGUoJHVzZXIsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICckcm9sZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIH0gZWxzZSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAkdGhpcy0+c3Rkb3V0KFlpaTo6dCgndXN1YXJpbycsICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcJ1BsZWFzZSBmaXggZm9sbG93aW5nIGVycm9yczpcJykgLiAiXFxuIiwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnNvbGU6OkZHX1JFRCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBmb3JlYWNoICgkdXNlci0+ZXJyb3JzIGFzICRlcnJvcnMpICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgZm9yZWFjaCAoJGVycm9ycyBhcyAkZXJyb3IpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnN0ZG91dCgnIC0gJyAuICRlcnJvciAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLiAiXFxuIiwgQ29uc29sZTo6RkdfUkVEKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYXNzaWduUm9sZShVc2VyICR1c2VyLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJHJvbGUpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkYXV0aCA9IFlpaTo6JGFwcC0+Z2V0QXV0aE1hbmFnZXIoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgaWYgKGZhbHNlID09PSAkYXV0aCkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgJHRoaXMtPnN0ZG91dChcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICBZaWk6OnQoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgICAgICd1c3VhcmlvJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICAgICAgXCdDYW5ub3QgYXNzaWduIHJvbGUgInswfSIgYXMgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBBdXRoTWFuYWdlciBpcyBub3QgY29uZmlndXJlZCBvbiB5b3VyIGNvbnNvbGUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgImFwcGxpY2F0aW9uLicsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgICAgICRyb2xlXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgKSAuICJcXG4iLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgIENvbnNvbGU6OkZHX1JFRFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgfSBlbHNlIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICR1c2VyUm9sZSA9ICRhdXRoLT5nZXRSb2xlKCRyb2xlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIGlmIChudWxsID09PSAkdXNlclJvbGUpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAkdGhpcy0+c3Rkb3V0KFlpaTo6dCgndXN1YXJpbycsICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcJ1JvbGUgInswfSIgbm90IGZvdW5kLiBDcmVhdGluZyBpdC5cJywgWyRyb2xlXSkgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJy4gIiFcXG4iLCBDb25zb2xlOjpGR19HUkVFTik7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgJHVzZXJSb2xlID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyRhdXRoLT5jcmVhdGVSb2xlKCRyb2xlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICAkYXV0aC0+YWRkKCR1c2VyUm9sZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAkYXV0aC0+YXNzaWduKCR1c2VyUm9sZSwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyR1c2VyLT5pZCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XHJcbicsCiAgICAgICAgICAgICAgICAncmVjb2RlJzogJzw/cGhwIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiRjbWQgPSAkcmVsX3Jvb3QuJy8uLi9zcmMveWlpMi9hZHZhbmNlZC95aWkgJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICckcmV0ID0gc2hlbGxfZXhlYygkY21kLiIgdXNlci9yb2xlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnd2ViYXNvbmVAZ21haWwuY29tIENvdXJzZUEiKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICckcmV0ID0gc2hlbGxfZXhlYygkY21kLiIgdXNlci9yb2xlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnd2ViYXNvbmVAZ21haWwuY29tIENvdXJzZUIiKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICckcmV0ID0gc2hlbGxfZXhlYygkY21kLiIgdXNlci9yb2xlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnd2ViYXNvbmVAZ21haWwuY29tIENvdXJzZUMiKTsgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPz4nLAogICAgICAgICAgICAgICAgJ3VGaWxlJzogJyd9fSwKIDE5OiB7J2VuJzogeydOb3Rlcyc6ICcnLAogICAgICAgICAgICAgJ1NsaWRlVHlwZSc6ICdDb2RlSW5jJywKICAgICAgICAgICAgICdhTGFiZWwnOiAnRm9yIHJvbGUgbWFpbCcsCiAgICAgICAgICAgICAnYV9maWxlJzogJycsCiAgICAgICAgICAgICAnYWRkQ2xhc3MnOiAnJywKICAgICAgICAgICAgICdhc3ZnZmlsZSc6ICc8c3ZnPjwvc3ZnPicsCiAgICAgICAgICAgICAnY29kZSc6ICcnLAogICAgICAgICAgICAgJ2NvZGVJbmMnOiAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgaGVhZCB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzdHlsZUluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzY3JpcHRJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgYm9keSB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc2NyaXB0SW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcjIEVuZFxyXG4nLAogICAgICAgICAgICAgJ2NvbEJHSW1hZ2UnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nNi5qcGcnLAogICAgICAgICAgICAgJ2NvbEJHSW1hZ2VXcmFwJzogJy9kZWZhdWx0L21lZGlhL25hdjZoMC9zL1VJL0EwMDAwMDEwMjcwMDIwMDEvb25lQ29sdW1uL2ltZzcuanBnJywKICAgICAgICAgICAgICdjb21wb3NlckpTT04nOiAnJywKICAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgICdrZXl3b3Jkcyc6ICcnLAogICAgICAgICAgICAgJ3BocEZpbGUnOiAnJywKICAgICAgICAgICAgICdwaHBGaWxlQSc6ICc8P3BocCAvKiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnX2RvY3Jvb3RfLy4uL3NyYy95aWkyL2FkdmFuY2VkL3ZlbmRvci8yYW1pZ29zL3lpaTItdXN1YXJpby9zcmMvVXNlci9yZXNvdXJjZXMvdmlld3MvbWFpbC93ZWxjb21lLnBocCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcvKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIDJhbWlnb3MveWlpMi11c3VhcmlvICcKICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9qZWN0LlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAqIChjKSAyYW1pZ09TISA8aHR0cDovLzJhbWlnb3MudXMvPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sICcKICAgICAgICAgICAgICAgICAgICAgICAgICdwbGVhc2Ugdmlld1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICogdGhlIExJQ0VOU0UgZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3NvdXJjZSBjb2RlLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSB5aWlcXGhlbHBlcnNcXEh0bWw7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJy8qKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICogQHZhciBcXERhXFxVc2VyXFxNb2R1bGUgICAgICAkbW9kdWxlXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBAdmFyIFxcRGFcXFVzZXJcXE1vZGVsXFxVc2VyICAkdXNlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICogQHZhciBcXERhXFxVc2VyXFxNb2RlbFxcVG9rZW4gJHRva2VuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBAdmFyIGJvb2wgICAgICAgICAgICAgICAgICRzaG93UGFzc3dvcmRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICc/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnPHAgc3R5bGU9ImZvbnQtZmFtaWx5OiBcJ0hlbHZldGljYSBOZXVlXCcsICcKICAgICAgICAgICAgICAgICAgICAgICAgICInSGVsdmV0aWNhJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgIgogICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDEuNjsgZm9udC13ZWlnaHQ6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICdub3JtYWw7IG1hcmdpbjogMCAwIDEwcHg7IHBhZGRpbmc6IDA7Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICA8Pz0gWWlpOjp0KCd1c3VhcmlvJywgJ0hlbGxvJykgPz4sXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICc8L3A+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJzxwIHN0eWxlPSJmb250LWZhbWlseTogXCdIZWx2ZXRpY2EgTmV1ZVwnLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAiJ0hlbHZldGljYScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICIKICAgICAgICAgICAgICAgICAgICAgICAgICdmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGZvbnQtd2VpZ2h0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnbm9ybWFsOyBtYXJnaW46IDAgMCAxMHB4OyBwYWRkaW5nOiAwOyI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPD89IFlpaTo6dCgndXN1YXJpbycsICdZb3VyIGFjY291bnQgb24gezB9IGhhcyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAiYmVlbiBjcmVhdGVkJywgWWlpOjokYXBwLT5uYW1lKSA/Pi5cclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJyA8L3A+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICc8cD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICA8P3BocCBpZiAoJHNob3dQYXNzd29yZCB8fCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnJG1vZHVsZS0+Z2VuZXJhdGVQYXNzd29yZHMpOiA/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgPD89IFlpaTo6dCgndXN1YXJpbycsICdVc2VybmFtZScpID8+OiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0cm9uZz48Pz0kdXNlci0+dXNlcm5hbWUgPz4gPC9zdHJvbmc+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICc8L3A+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICc8cD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgPD89IFlpaTo6dCgndXN1YXJpbycsICdQYXNzd29yZCcpID8+OiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0cm9uZz48Pz0gJHVzZXItPnBhc3N3b3JkID8+PC9zdHJvbmc+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPD9waHAgZW5kaWYgPz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnPC9wPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICc8P3BocCBpZiAoJHRva2VuICE9PSBudWxsKTogPz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICA8cCBzdHlsZT0iZm9udC1mYW1pbHk6IFwnSGVsdmV0aWNhIE5ldWVcJywgJwogICAgICAgICAgICAgICAgICAgICAgICAgIidIZWx2ZXRpY2EnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAnZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42OyBmb250LXdlaWdodDogJwogICAgICAgICAgICAgICAgICAgICAgICAgJ25vcm1hbDsgbWFyZ2luOiAwIDAgMTBweDsgcGFkZGluZzogMDsiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICA8Pz0gWWlpOjp0KCd1c3VhcmlvJywgJ1RvIGxvZ2luIGluLCBwbGVhc2UgIgogICAgICAgICAgICAgICAgICAgICAgICAgImNsaWNrIHRoZSBsaW5rIGJlbG93JykgPz4uXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPC9wPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIDxwIHN0eWxlPSJmb250LWZhbWlseTogXCdIZWx2ZXRpY2EgTmV1ZVwnLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAiJ0hlbHZldGljYScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICIKICAgICAgICAgICAgICAgICAgICAgICAgICdmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGZvbnQtd2VpZ2h0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnbm9ybWFsOyBtYXJnaW46IDAgMCAxMHB4OyBwYWRkaW5nOiAwOyI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIDw/PSBIdG1sOjphKEh0bWw6OmVuY29kZSgkdG9rZW4tPnVybCksICcKICAgICAgICAgICAgICAgICAgICAgICAgICckdG9rZW4tPnVybCk7ID8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPC9wPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIDxwIHN0eWxlPSJmb250LWZhbWlseTogXCdIZWx2ZXRpY2EgTmV1ZVwnLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAiJ0hlbHZldGljYScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICIKICAgICAgICAgICAgICAgICAgICAgICAgICdmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGZvbnQtd2VpZ2h0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnbm9ybWFsOyBtYXJnaW46IDAgMCAxMHB4OyBwYWRkaW5nOiAwOyI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIDw/PSBZaWk6OnQoJ3VzdWFyaW8nLCAnSWYgeW91IGNhbm5vdCBjbGljayAiCiAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIGxpbmssIHBsZWFzZSB0cnkgcGFzdGluZyB0aGUgdGV4dCBpbnRvIHlvdXIgJwogICAgICAgICAgICAgICAgICAgICAgICAgImJyb3dzZXInKSA/Pi5cclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICA8L3A+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICc8P3BocCBlbmRpZiA/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICc8cCBzdHlsZT0iZm9udC1mYW1pbHk6IFwnSGVsdmV0aWNhIE5ldWVcJywgJwogICAgICAgICAgICAgICAgICAgICAgICAgIidIZWx2ZXRpY2EnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAnZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42OyBmb250LXdlaWdodDogJwogICAgICAgICAgICAgICAgICAgICAgICAgJ25vcm1hbDsgbWFyZ2luOiAwIDAgMTBweDsgcGFkZGluZzogMDsiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIDw/PSBZaWk6OnQoJ3VzdWFyaW8nLCAnSWYgeW91IGRpZCBub3QgbWFrZSB0aGlzICIKICAgICAgICAgICAgICAgICAgICAgICAgICJyZXF1ZXN0IHlvdSBjYW4gaWdub3JlIHRoaXMgZW1haWwnKSA/Pi5cclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJzwvcD5cclxuJywKICAgICAgICAgICAgICdwaHBGaWxlQic6ICc8P3BocCAgLyogJwogICAgICAgICAgICAgICAgICAgICAgICAgJ19kb2Nyb290Xy8uLi9zcmMveWlpMi9hZHZhbmNlZC92ZW5kb3IvMmFtaWdvcy95aWkyLXVzdWFyaW8vc3JjL1VzZXIvRmFjdG9yeS9NYWlsRmFjdG9yeS5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAgJyovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJy8qXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgMmFtaWdvcy95aWkyLXVzdWFyaW8gJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3QuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICogKGMpIDJhbWlnT1MhIDxodHRwOi8vMmFtaWdvcy51cy8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3BsZWFzZSB2aWV3XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgKiB0aGUgTElDRU5TRSBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnc291cmNlIGNvZGUuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZXNwYWNlIERhXFxVc2VyXFxGYWN0b3J5O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXEV2ZW50XFxNYWlsRXZlbnQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXE1vZGVsXFxUb2tlbjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcTW9kZWxcXFVzZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXE1vZHVsZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcU2VydmljZVxcTWFpbFNlcnZpY2U7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgWWlpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIHlpaVxcYmFzZVxcSW52YWxpZENvbmZpZ0V4Y2VwdGlvbjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnY2xhc3MgTWFpbEZhY3RvcnlcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3tcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gVXNlciAkdXNlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBib29sICRzaG93UGFzc3dvcmRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEB0aHJvd3MgSW52YWxpZENvbmZpZ0V4Y2VwdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEByZXR1cm4gTWFpbFNlcnZpY2VcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICcKICAgICAgICAgICAgICAgICAgICAgICAgICdtYWtlV2VsY29tZU1haWxlclNlcnZpY2UoVXNlciAkdXNlciwgJHNob3dQYXNzd29yZCA9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICdmYWxzZSwgJHRva2VuID0gbnVsbClcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qKiBAdmFyIE1vZHVsZSAkbW9kdWxlICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICRtb2R1bGUgPSBZaWk6OiRhcHAtPmdldE1vZHVsZSgndXNlcicpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkdG8gPSAkdXNlci0+ZW1haWw7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICRmcm9tID0gJG1vZHVsZS0+bWFpbFBhcmFtc1snZnJvbUVtYWlsJ107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRzdWJqZWN0ID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgIiRtb2R1bGUtPm1haWxQYXJhbXNbJ3dlbGNvbWVNYWlsU3ViamVjdCddO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkcGFyYW1zID0gW1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3VzZXInID0+ICR1c2VyLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3Rva2VuJyA9PiAkdG9rZW4sXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAnbW9kdWxlJyA9PiAkbW9kdWxlLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3Nob3dQYXNzd29yZCcgPT4gJHNob3dQYXNzd29yZCxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgXTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICByZXR1cm4gJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXRpYzo6bWFrZU1haWxlclNlcnZpY2UoTWFpbEV2ZW50OjpUWVBFX1dFTENPTUUsICcKICAgICAgICAgICAgICAgICAgICAgICAgICIkZnJvbSwgJHRvLCAkc3ViamVjdCwgJ3dlbGNvbWUnLCAkcGFyYW1zKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nICRlbWFpbFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBUb2tlbiAgJHRva2VuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAdGhyb3dzIEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcmV0dXJuIE1haWxTZXJ2aWNlXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnbWFrZVJlY292ZXJ5TWFpbGVyU2VydmljZSgkZW1haWwsIFRva2VuICR0b2tlbiA9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsKVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLyoqIEB2YXIgTW9kdWxlICRtb2R1bGUgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJG1vZHVsZSA9IFlpaTo6JGFwcC0+Z2V0TW9kdWxlKCd1c2VyJyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICR0byA9ICRlbWFpbDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJGZyb20gPSAkbW9kdWxlLT5tYWlsUGFyYW1zWydmcm9tRW1haWwnXTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHN1YmplY3QgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAiJG1vZHVsZS0+bWFpbFBhcmFtc1sncmVjb3ZlcnlNYWlsU3ViamVjdCddO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkcGFyYW1zID0gW1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3VzZXInID0+ICR0b2tlbiAmJiAkdG9rZW4tPnVzZXIgPyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAnJHRva2VuLT51c2VyIDogbnVsbCxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICd0b2tlbicgPT4gJHRva2VuLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIHJldHVybiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhdGljOjptYWtlTWFpbGVyU2VydmljZShNYWlsRXZlbnQ6OlRZUEVfUkVDT1ZFUlksICcKICAgICAgICAgICAgICAgICAgICAgICAgICIkZnJvbSwgJHRvLCAkc3ViamVjdCwgJ3JlY292ZXJ5JywgJHBhcmFtcyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLyoqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIFVzZXIgICAgICAgJHVzZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gVG9rZW58bnVsbCAkdG9rZW5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEB0aHJvd3MgSW52YWxpZENvbmZpZ0V4Y2VwdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEByZXR1cm4gTWFpbFNlcnZpY2VcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICcKICAgICAgICAgICAgICAgICAgICAgICAgICdtYWtlQ29uZmlybWF0aW9uTWFpbGVyU2VydmljZShVc2VyICR1c2VyLCBUb2tlbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnJHRva2VuID0gbnVsbClcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qKiBAdmFyIE1vZHVsZSAkbW9kdWxlICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICRtb2R1bGUgPSBZaWk6OiRhcHAtPmdldE1vZHVsZSgndXNlcicpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkdG8gPSAkdXNlci0+ZW1haWw7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICRmcm9tID0gJG1vZHVsZS0+bWFpbFBhcmFtc1snZnJvbUVtYWlsJ107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRzdWJqZWN0ID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgIiRtb2R1bGUtPm1haWxQYXJhbXNbJ2NvbmZpcm1hdGlvbk1haWxTdWJqZWN0J107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRwYXJhbXMgPSBbXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAndXNlcicgPT4gJHRva2VuICYmICR0b2tlbi0+dXNlciA/ICIKICAgICAgICAgICAgICAgICAgICAgICAgICckdG9rZW4tPnVzZXIgOiBudWxsLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3Rva2VuJyA9PiAkdG9rZW4sXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF07XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgcmV0dXJuICcKICAgICAgICAgICAgICAgICAgICAgICAgICdzdGF0aWM6Om1ha2VNYWlsZXJTZXJ2aWNlKE1haWxFdmVudDo6VFlQRV9DT05GSVJNLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAiJGZyb20sICR0bywgJHN1YmplY3QsICdjb25maXJtYXRpb24nLCAkcGFyYW1zKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gVXNlciAgJHVzZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gVG9rZW4gJHRva2VuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAdGhyb3dzIEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcmV0dXJuIE1haWxTZXJ2aWNlXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnbWFrZVJlY29uZmlybWF0aW9uTWFpbGVyU2VydmljZShVc2VyICR1c2VyLCBUb2tlbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnJHRva2VuKVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLyoqIEB2YXIgTW9kdWxlICRtb2R1bGUgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJG1vZHVsZSA9IFlpaTo6JGFwcC0+Z2V0TW9kdWxlKCd1c2VyJyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICR0byA9ICR0b2tlbi0+dHlwZSA9PT0gJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1Rva2VuOjpUWVBFX0NPTkZJUk1fTkVXX0VNQUlMXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICA/ICR1c2VyLT51bmNvbmZpcm1lZF9lbWFpbFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgOiAkdXNlci0+ZW1haWw7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJGZyb20gPSAkbW9kdWxlLT5tYWlsUGFyYW1zWydmcm9tRW1haWwnXTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHN1YmplY3QgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAiJG1vZHVsZS0+bWFpbFBhcmFtc1sncmVjb25maXJtYXRpb25NYWlsU3ViamVjdCddO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkcGFyYW1zID0gW1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3VzZXInID0+ICR0b2tlbiAmJiAkdG9rZW4tPnVzZXIgPyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAnJHRva2VuLT51c2VyIDogbnVsbCxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICd0b2tlbicgPT4gJHRva2VuLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIHJldHVybiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhdGljOjptYWtlTWFpbGVyU2VydmljZShNYWlsRXZlbnQ6OlRZUEVfUkVDT05GSVJNLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAiJGZyb20sICR0bywgJHN1YmplY3QsICdyZWNvbmZpcm1hdGlvbicsICRwYXJhbXMpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8qKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEJ1aWxkcyBhIE1haWxlclNlcnZpY2UuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICR0eXBlXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZ3xhcnJheXxcXENsb3N1cmUgJGZyb21cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICR0b1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAgICAgICAgICAgJHN1YmplY3RcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICR2aWV3XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIGFycmF5ICAgICAgICAgICAgICAgICAkcGFyYW1zXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAdGhyb3dzIEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcmV0dXJuIE1haWxTZXJ2aWNlXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG1ha2VNYWlsZXJTZXJ2aWNlKCR0eXBlLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnJGZyb20sICR0bywgJHN1YmplY3QsICR2aWV3LCAkcGFyYW1zID0gW10pXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBpZiAoJGZyb20gaW5zdGFuY2VvZiBcXENsb3N1cmUpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICRmcm9tID0gJGZyb20oJHR5cGUpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qKiBAbm9pbnNwZWN0aW9uICcKICAgICAgICAgICAgICAgICAgICAgICAgICdQaHBJbmNvbXBhdGlibGVSZXR1cm5UeXBlSW5zcGVjdGlvbiAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICByZXR1cm4gWWlpOjokY29udGFpbmVyLT5nZXQoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBNYWlsU2VydmljZTo6Y2xhc3MsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBbJHR5cGUsICRmcm9tLCAkdG8sICRzdWJqZWN0LCAkdmlldywgJwogICAgICAgICAgICAgICAgICAgICAgICAgJyRwYXJhbXMsIFlpaTo6JGFwcC0+Z2V0TWFpbGVyKCldXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nfSwKICAgICAgJ2VuLVVTJzogeydOb3Rlcyc6ICcnLAogICAgICAgICAgICAgICAgJ1NsaWRlVHlwZSc6ICdDb2RlSW5jJywKICAgICAgICAgICAgICAgICdhTGFiZWwnOiAnRm9yIHJvbGUgbWFpbCcsCiAgICAgICAgICAgICAgICAnYV9maWxlJzogJycsCiAgICAgICAgICAgICAgICAnYWRkQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgICdhc3ZnZmlsZSc6ICc8c3ZnPjwvc3ZnPicsCiAgICAgICAgICAgICAgICAnY29kZSc6ICcnLAogICAgICAgICAgICAgICAgJ2NvZGVJbmMnOiAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgaGVhZCB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzdHlsZUluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzY3JpcHRJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgYm9keSB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc2NyaXB0SW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIEVuZFxyXG4nLAogICAgICAgICAgICAgICAgJ2NvbEJHSW1hZ2UnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nNi5qcGcnLAogICAgICAgICAgICAgICAgJ2NvbEJHSW1hZ2VXcmFwJzogJy9kZWZhdWx0L21lZGlhL25hdjZoMC9zL1VJL0EwMDAwMDEwMjcwMDIwMDEvb25lQ29sdW1uL2ltZzcuanBnJywKICAgICAgICAgICAgICAgICdjb21wb3NlckpTT04nOiAnJywKICAgICAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgICAgICdrZXl3b3Jkcyc6ICcnLAogICAgICAgICAgICAgICAgJ3BocEZpbGUnOiAnJywKICAgICAgICAgICAgICAgICdwaHBGaWxlQSc6ICc8P3BocCAvKiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX2RvY3Jvb3RfLy4uL3NyYy95aWkyL2FkdmFuY2VkL3ZlbmRvci8yYW1pZ29zL3lpaTItdXN1YXJpby9zcmMvVXNlci9yZXNvdXJjZXMvdmlld3MvbWFpbC93ZWxjb21lLnBocCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIDJhbWlnb3MveWlpMi11c3VhcmlvICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9qZWN0LlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIChjKSAyYW1pZ09TISA8aHR0cDovLzJhbWlnb3MudXMvPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luZm9ybWF0aW9uLCBwbGVhc2Ugdmlld1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICogdGhlIExJQ0VOU0UgZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aGlzIHNvdXJjZSBjb2RlLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSB5aWlcXGhlbHBlcnNcXEh0bWw7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICogQHZhciBcXERhXFxVc2VyXFxNb2R1bGUgICAgICAkbW9kdWxlXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBAdmFyIFxcRGFcXFVzZXJcXE1vZGVsXFxVc2VyICAkdXNlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICogQHZhciBcXERhXFxVc2VyXFxNb2RlbFxcVG9rZW4gJHRva2VuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBAdmFyIGJvb2wgICAgICAgICAgICAgICAgICRzaG93UGFzc3dvcmRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHAgc3R5bGU9ImZvbnQtZmFtaWx5OiBcJ0hlbHZldGljYSBOZXVlXCcsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICInSGVsdmV0aWNhJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDEuNjsgZm9udC13ZWlnaHQ6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub3JtYWw7IG1hcmdpbjogMCAwIDEwcHg7IHBhZGRpbmc6IDA7Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICA8Pz0gWWlpOjp0KCd1c3VhcmlvJywgJ0hlbGxvJykgPz4sXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3A+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxwIHN0eWxlPSJmb250LWZhbWlseTogXCdIZWx2ZXRpY2EgTmV1ZVwnLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ0hlbHZldGljYScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGZvbnQtd2VpZ2h0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9ybWFsOyBtYXJnaW46IDAgMCAxMHB4OyBwYWRkaW5nOiAwOyI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPD89IFlpaTo6dCgndXN1YXJpbycsICdZb3VyIGFjY291bnQgb24gezB9ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoYXMgYmVlbiBjcmVhdGVkJywgWWlpOjokYXBwLT5uYW1lKSA/Pi5cclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyA8L3A+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8cD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICA8P3BocCBpZiAoJHNob3dQYXNzd29yZCB8fCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJG1vZHVsZS0+Z2VuZXJhdGVQYXNzd29yZHMpOiA/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgPD89IFlpaTo6dCgndXN1YXJpbycsICdVc2VybmFtZScpID8+OiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0cm9uZz48Pz0kdXNlci0+dXNlcm5hbWUgPz4gPC9zdHJvbmc+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3A+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8cD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgPD89IFlpaTo6dCgndXN1YXJpbycsICdQYXNzd29yZCcpID8+OiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0cm9uZz48Pz0gJHVzZXItPnBhc3N3b3JkID8+PC9zdHJvbmc+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPD9waHAgZW5kaWYgPz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9wPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8P3BocCBpZiAoJHRva2VuICE9PSBudWxsKTogPz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICA8cCBzdHlsZT0iZm9udC1mYW1pbHk6IFwnSGVsdmV0aWNhIE5ldWVcJywgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIidIZWx2ZXRpY2EnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42OyBmb250LXdlaWdodDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vcm1hbDsgbWFyZ2luOiAwIDAgMTBweDsgcGFkZGluZzogMDsiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICA8Pz0gWWlpOjp0KCd1c3VhcmlvJywgJ1RvIGxvZ2luIGluLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGxlYXNlIGNsaWNrIHRoZSBsaW5rIGJlbG93JykgPz4uXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPC9wPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIDxwIHN0eWxlPSJmb250LWZhbWlseTogXCdIZWx2ZXRpY2EgTmV1ZVwnLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ0hlbHZldGljYScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGZvbnQtd2VpZ2h0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9ybWFsOyBtYXJnaW46IDAgMCAxMHB4OyBwYWRkaW5nOiAwOyI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIDw/PSBIdG1sOjphKEh0bWw6OmVuY29kZSgkdG9rZW4tPnVybCksICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICckdG9rZW4tPnVybCk7ID8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPC9wPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIDxwIHN0eWxlPSJmb250LWZhbWlseTogXCdIZWx2ZXRpY2EgTmV1ZVwnLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ0hlbHZldGljYScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGZvbnQtd2VpZ2h0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9ybWFsOyBtYXJnaW46IDAgMCAxMHB4OyBwYWRkaW5nOiAwOyI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIDw/PSBZaWk6OnQoJ3VzdWFyaW8nLCAnSWYgeW91IGNhbm5vdCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xpY2sgdGhlIGxpbmssIHBsZWFzZSB0cnkgcGFzdGluZyB0aGUgdGV4dCBpbnRvICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ5b3VyIGJyb3dzZXInKSA/Pi5cclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICA8L3A+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8P3BocCBlbmRpZiA/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8cCBzdHlsZT0iZm9udC1mYW1pbHk6IFwnSGVsdmV0aWNhIE5ldWVcJywgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIidIZWx2ZXRpY2EnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42OyBmb250LXdlaWdodDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vcm1hbDsgbWFyZ2luOiAwIDAgMTBweDsgcGFkZGluZzogMDsiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIDw/PSBZaWk6OnQoJ3VzdWFyaW8nLCAnSWYgeW91IGRpZCBub3QgbWFrZSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhpcyByZXF1ZXN0IHlvdSBjYW4gaWdub3JlIHRoaXMgZW1haWwnKSA/Pi5cclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvcD5cclxuJywKICAgICAgICAgICAgICAgICdwaHBGaWxlQic6ICc8P3BocCAgLyogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19kb2Nyb290Xy8uLi9zcmMveWlpMi9hZHZhbmNlZC92ZW5kb3IvMmFtaWdvcy95aWkyLXVzdWFyaW8vc3JjL1VzZXIvRmFjdG9yeS9NYWlsRmFjdG9yeS5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgMmFtaWdvcy95aWkyLXVzdWFyaW8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3QuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICogKGMpIDJhbWlnT1MhIDxodHRwOi8vMmFtaWdvcy51cy8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiB0aGUgTElDRU5TRSBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoaXMgc291cmNlIGNvZGUuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZXNwYWNlIERhXFxVc2VyXFxGYWN0b3J5O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXEV2ZW50XFxNYWlsRXZlbnQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXE1vZGVsXFxUb2tlbjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcTW9kZWxcXFVzZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXE1vZHVsZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcU2VydmljZVxcTWFpbFNlcnZpY2U7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgWWlpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIHlpaVxcYmFzZVxcSW52YWxpZENvbmZpZ0V4Y2VwdGlvbjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xhc3MgTWFpbEZhY3RvcnlcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3tcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gVXNlciAkdXNlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBib29sICRzaG93UGFzc3dvcmRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEB0aHJvd3MgSW52YWxpZENvbmZpZ0V4Y2VwdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEByZXR1cm4gTWFpbFNlcnZpY2VcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWtlV2VsY29tZU1haWxlclNlcnZpY2UoVXNlciAkdXNlciwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyRzaG93UGFzc3dvcmQgPSBmYWxzZSwgJHRva2VuID0gbnVsbClcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qKiBAdmFyIE1vZHVsZSAkbW9kdWxlICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRtb2R1bGUgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWlpOjokYXBwLT5nZXRNb2R1bGUoJ3VzZXInKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHRvID0gJHVzZXItPmVtYWlsO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkZnJvbSA9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkbW9kdWxlLT5tYWlsUGFyYW1zWydmcm9tRW1haWwnXTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHN1YmplY3QgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJG1vZHVsZS0+bWFpbFBhcmFtc1snd2VsY29tZU1haWxTdWJqZWN0J107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRwYXJhbXMgPSBbXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAndXNlcicgPT4gJHVzZXIsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAndG9rZW4nID0+ICR0b2tlbixcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICdtb2R1bGUnID0+ICRtb2R1bGUsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAnc2hvd1Bhc3N3b3JkJyA9PiAkc2hvd1Bhc3N3b3JkLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIHJldHVybiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhdGljOjptYWtlTWFpbGVyU2VydmljZShNYWlsRXZlbnQ6OlRZUEVfV0VMQ09NRSwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRmcm9tLCAkdG8sICRzdWJqZWN0LCAnd2VsY29tZScsICRwYXJhbXMpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8qKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgJGVtYWlsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIFRva2VuICAkdG9rZW5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEB0aHJvd3MgSW52YWxpZENvbmZpZ0V4Y2VwdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEByZXR1cm4gTWFpbFNlcnZpY2VcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWtlUmVjb3ZlcnlNYWlsZXJTZXJ2aWNlKCRlbWFpbCwgVG9rZW4gJHRva2VuID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvKiogQHZhciBNb2R1bGUgJG1vZHVsZSAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkbW9kdWxlID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIllpaTo6JGFwcC0+Z2V0TW9kdWxlKCd1c2VyJyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICR0byA9ICRlbWFpbDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJGZyb20gPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJG1vZHVsZS0+bWFpbFBhcmFtc1snZnJvbUVtYWlsJ107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRzdWJqZWN0ID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRtb2R1bGUtPm1haWxQYXJhbXNbJ3JlY292ZXJ5TWFpbFN1YmplY3QnXTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHBhcmFtcyA9IFtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICd1c2VyJyA9PiAkdG9rZW4gJiYgJHRva2VuLT51c2VyID8gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyR0b2tlbi0+dXNlciA6IG51bGwsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAndG9rZW4nID0+ICR0b2tlbixcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgXTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICByZXR1cm4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXRpYzo6bWFrZU1haWxlclNlcnZpY2UoTWFpbEV2ZW50OjpUWVBFX1JFQ09WRVJZLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJGZyb20sICR0bywgJHN1YmplY3QsICdyZWNvdmVyeScsICRwYXJhbXMpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8qKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBVc2VyICAgICAgICR1c2VyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIFRva2VufG51bGwgJHRva2VuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAdGhyb3dzIEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcmV0dXJuIE1haWxTZXJ2aWNlXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFrZUNvbmZpcm1hdGlvbk1haWxlclNlcnZpY2UoVXNlciAkdXNlciwgVG9rZW4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyR0b2tlbiA9IG51bGwpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvKiogQHZhciBNb2R1bGUgJG1vZHVsZSAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkbW9kdWxlID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIllpaTo6JGFwcC0+Z2V0TW9kdWxlKCd1c2VyJyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICR0byA9ICR1c2VyLT5lbWFpbDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJGZyb20gPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJG1vZHVsZS0+bWFpbFBhcmFtc1snZnJvbUVtYWlsJ107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRzdWJqZWN0ID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRtb2R1bGUtPm1haWxQYXJhbXNbJ2NvbmZpcm1hdGlvbk1haWxTdWJqZWN0J107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRwYXJhbXMgPSBbXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAndXNlcicgPT4gJHRva2VuICYmICR0b2tlbi0+dXNlciA/ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICckdG9rZW4tPnVzZXIgOiBudWxsLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3Rva2VuJyA9PiAkdG9rZW4sXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF07XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgcmV0dXJuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGF0aWM6Om1ha2VNYWlsZXJTZXJ2aWNlKE1haWxFdmVudDo6VFlQRV9DT05GSVJNLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJGZyb20sICR0bywgJHN1YmplY3QsICdjb25maXJtYXRpb24nLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJHBhcmFtcyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLyoqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIFVzZXIgICR1c2VyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIFRva2VuICR0b2tlblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHRocm93cyBJbnZhbGlkQ29uZmlnRXhjZXB0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHJldHVybiBNYWlsU2VydmljZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21ha2VSZWNvbmZpcm1hdGlvbk1haWxlclNlcnZpY2UoVXNlciAkdXNlciwgVG9rZW4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyR0b2tlbilcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qKiBAdmFyIE1vZHVsZSAkbW9kdWxlICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRtb2R1bGUgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWlpOjokYXBwLT5nZXRNb2R1bGUoJ3VzZXInKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHRvID0gJHRva2VuLT50eXBlID09PSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVG9rZW46OlRZUEVfQ09ORklSTV9ORVdfRU1BSUxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgID8gJHVzZXItPnVuY29uZmlybWVkX2VtYWlsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICA6ICR1c2VyLT5lbWFpbDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkZnJvbSA9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkbW9kdWxlLT5tYWlsUGFyYW1zWydmcm9tRW1haWwnXTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHN1YmplY3QgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJG1vZHVsZS0+bWFpbFBhcmFtc1sncmVjb25maXJtYXRpb25NYWlsU3ViamVjdCddO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkcGFyYW1zID0gW1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3VzZXInID0+ICR0b2tlbiAmJiAkdG9rZW4tPnVzZXIgPyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJHRva2VuLT51c2VyIDogbnVsbCxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICd0b2tlbicgPT4gJHRva2VuLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIHJldHVybiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhdGljOjptYWtlTWFpbGVyU2VydmljZShNYWlsRXZlbnQ6OlRZUEVfUkVDT05GSVJNLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJGZyb20sICR0bywgJHN1YmplY3QsICdyZWNvbmZpcm1hdGlvbicsICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICckcGFyYW1zKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBCdWlsZHMgYSBNYWlsZXJTZXJ2aWNlLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICAkdHlwZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmd8YXJyYXl8XFxDbG9zdXJlICRmcm9tXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICAkdG9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICRzdWJqZWN0XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICAkdmlld1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBhcnJheSAgICAgICAgICAgICAgICAgJHBhcmFtc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHRocm93cyBJbnZhbGlkQ29uZmlnRXhjZXB0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHJldHVybiBNYWlsU2VydmljZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFrZU1haWxlclNlcnZpY2UoJHR5cGUsICRmcm9tLCAkdG8sICRzdWJqZWN0LCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJHZpZXcsICRwYXJhbXMgPSBbXSlcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIGlmICgkZnJvbSBpbnN0YW5jZW9mIFxcQ2xvc3VyZSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgJGZyb20gPSAkZnJvbSgkdHlwZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLyoqIEBub2luc3BlY3Rpb24gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1BocEluY29tcGF0aWJsZVJldHVyblR5cGVJbnNwZWN0aW9uICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIHJldHVybiBZaWk6OiRjb250YWluZXItPmdldChcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIE1haWxTZXJ2aWNlOjpjbGFzcyxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIFskdHlwZSwgJGZyb20sICR0bywgJHN1YmplY3QsICR2aWV3LCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJHBhcmFtcywgWWlpOjokYXBwLT5nZXRNYWlsZXIoKV1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XHJcbid9fSwKIDIwOiB7J2VuJzogeydOb3Rlcyc6ICcnLAogICAgICAgICAgICAgJ1NsaWRlVHlwZSc6ICdDb2RlSW5jJywKICAgICAgICAgICAgICdhTGFiZWwnOiAnWWlpIENvbmZpZyBwYXJhbSoucGhwJywKICAgICAgICAgICAgICdhX2ZpbGUnOiAnJywKICAgICAgICAgICAgICdhZGRDbGFzcyc6ICcnLAogICAgICAgICAgICAgJ2FzdmdmaWxlJzogJzxzdmc+PC9zdmc+JywKICAgICAgICAgICAgICdjb2RlJzogJycsCiAgICAgICAgICAgICAnY29kZUluYyc6ICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzdHlsZUluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBoZWFkIHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHN0eWxlSW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHNjcmlwdEluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBib2R5IHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzY3JpcHRJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyMgRW5kXHJcbicsCiAgICAgICAgICAgICAnY29sQkdJbWFnZSc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWc4LmpwZycsCiAgICAgICAgICAgICAnY29sQkdJbWFnZVdyYXAnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nOS5qcGcnLAogICAgICAgICAgICAgJ2NvbXBvc2VySlNPTic6ICcnLAogICAgICAgICAgICAgJ2R5bmFtaWNCbG9jayc6ICcnLAogICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCiAgICAgICAgICAgICAncGhwRmlsZSc6ICc8P3BocCAvKiAnCiAgICAgICAgICAgICAgICAgICAgICAgICdfZG9jcm9vdF8vLi4vc3JjL3lpaTIvYWR2YW5jZWQvY29tbW9uL2NvbmZpZy9fcGFyYW1zLnBocCAnCiAgICAgICAgICAgICAgICAgICAgICAgICcqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAncmV0dXJuIFtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICdhZG1pbkVtYWlsJyA9PiAnaW5mb0Bhc29uZWxpc3QuY29tJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAgICdzdXBwb3J0RW1haWwnID0+ICdpbmZvQGFzb25lbGlzdC5jb20nLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ3NlbmRlckVtYWlsJyA9PiAnaW5mb0Bhc29uZWxpc3QuY29tJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAgICdzZW5kZXJOYW1lJyA9PiAnTm9SZXBseScsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAndXNlci5wYXNzd29yZFJlc2V0VG9rZW5FeHBpcmUnID0+IDM2MDAsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAndXNlci5wYXNzd29yZE1pbkxlbmd0aCcgPT4gOCxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAnXTsnLAogICAgICAgICAgICAgJ3BocEZpbGVBJzogJzw/cGhwIC8qICcKICAgICAgICAgICAgICAgICAgICAgICAgICdfZG9jcm9vdF8vLi4vc3JjL3lpaTIvYWR2YW5jZWQvZnJvbnRlbmQvY29uZmlnL19wYXJhbXMucGhwICcKICAgICAgICAgICAgICAgICAgICAgICAgICcqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdyZXR1cm4gW1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXTsnLAogICAgICAgICAgICAgJ3BocEZpbGVCJzogJyd9LAogICAgICAnZW4tVVMnOiB7J05vdGVzJzogJycsCiAgICAgICAgICAgICAgICAnU2xpZGVUeXBlJzogJ0NvZGVJbmMnLAogICAgICAgICAgICAgICAgJ2FMYWJlbCc6ICdZaWkgQ29uZmlnIHBhcmFtKi5waHAnLAogICAgICAgICAgICAgICAgJ2FfZmlsZSc6ICcnLAogICAgICAgICAgICAgICAgJ2FkZENsYXNzJzogJycsCiAgICAgICAgICAgICAgICAnYXN2Z2ZpbGUnOiAnPHN2Zz48L3N2Zz4nLAogICAgICAgICAgICAgICAgJ2NvZGUnOiAnJywKICAgICAgICAgICAgICAgICdjb2RlSW5jJzogJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHN0eWxlSW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGhlYWQgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc3R5bGVJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc2NyaXB0SW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGJvZHkgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHNjcmlwdEluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBFbmRcclxuJywKICAgICAgICAgICAgICAgICdjb2xCR0ltYWdlJzogJy9kZWZhdWx0L21lZGlhL25hdjZoMC9zL1VJL0EwMDAwMDEwMjcwMDIwMDEvb25lQ29sdW1uL2ltZzguanBnJywKICAgICAgICAgICAgICAgICdjb2xCR0ltYWdlV3JhcCc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWc5LmpwZycsCiAgICAgICAgICAgICAgICAnY29tcG9zZXJKU09OJzogJycsCiAgICAgICAgICAgICAgICAnZHluYW1pY0Jsb2NrJzogJycsCiAgICAgICAgICAgICAgICAna2V5d29yZHMnOiAnJywKICAgICAgICAgICAgICAgICdwaHBGaWxlJzogJzw/cGhwIC8qICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19kb2Nyb290Xy8uLi9zcmMveWlpMi9hZHZhbmNlZC9jb21tb24vY29uZmlnL19wYXJhbXMucGhwICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXR1cm4gW1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2FkbWluRW1haWwnID0+ICdpbmZvQGFzb25lbGlzdC5jb20nLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ3N1cHBvcnRFbWFpbCcgPT4gJ2luZm9AYXNvbmVsaXN0LmNvbScsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnc2VuZGVyRW1haWwnID0+ICdpbmZvQGFzb25lbGlzdC5jb20nLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ3NlbmRlck5hbWUnID0+ICdOb1JlcGx5JyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICd1c2VyLnBhc3N3b3JkUmVzZXRUb2tlbkV4cGlyZScgPT4gMzYwMCxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICd1c2VyLnBhc3N3b3JkTWluTGVuZ3RoJyA9PiA4LFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICddOycsCiAgICAgICAgICAgICAgICAncGhwRmlsZUEnOiAnPD9waHAgLyogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19kb2Nyb290Xy8uLi9zcmMveWlpMi9hZHZhbmNlZC9mcm9udGVuZC9jb25maWcvX3BhcmFtcy5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JldHVybiBbXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICddOycsCiAgICAgICAgICAgICAgICAncGhwRmlsZUInOiAnJ319LAogMjE6IHsnZW4nOiB7J05vdGVzJzogJycsCiAgICAgICAgICAgICAnU2xpZGVUeXBlJzogJ0NvZGVJbmMnLAogICAgICAgICAgICAgJ2FMYWJlbCc6ICdDb25maWcgbWFpbioucGhwJywKICAgICAgICAgICAgICdhX2ZpbGUnOiAnJywKICAgICAgICAgICAgICdhZGRDbGFzcyc6ICcnLAogICAgICAgICAgICAgJ2FzdmdmaWxlJzogJzxzdmc+PC9zdmc+JywKICAgICAgICAgICAgICdjb2RlJzogJycsCiAgICAgICAgICAgICAnY29kZUluYyc6ICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzdHlsZUluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBoZWFkIHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHN0eWxlSW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHNjcmlwdEluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBib2R5IHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzY3JpcHRJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyMgRW5kXHJcbicsCiAgICAgICAgICAgICAnY29sQkdJbWFnZSc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWcxMC5qcGcnLAogICAgICAgICAgICAgJ2NvbEJHSW1hZ2VXcmFwJzogJy9kZWZhdWx0L21lZGlhL25hdjZoMC9zL1VJL0EwMDAwMDEwMjcwMDIwMDEvb25lQ29sdW1uL2ltZzExLmpwZycsCiAgICAgICAgICAgICAnY29tcG9zZXJKU09OJzogJycsCiAgICAgICAgICAgICAnZHluYW1pY0Jsb2NrJzogJycsCiAgICAgICAgICAgICAna2V5d29yZHMnOiAnJywKICAgICAgICAgICAgICdwaHBGaWxlJzogJycsCiAgICAgICAgICAgICAncGhwRmlsZUEnOiAnPD9waHAgLyogJwogICAgICAgICAgICAgICAgICAgICAgICAgJ19kb2Nyb290Xy8uLi9zcmMveWlpMi9hZHZhbmNlZC9mcm9udGVuZC9jb25maWcvbWFpbi5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAgJyovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnJHBhcmFtcyA9IGFycmF5X21lcmdlKFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHJlcXVpcmUgX19ESVJfXyAuICcKICAgICAgICAgICAgICAgICAgICAgICAgICInLy4uLy4uL2NvbW1vbi9jb25maWcvcGFyYW1zLnBocCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcmVxdWlyZSBfX0RJUl9fIC4gJwogICAgICAgICAgICAgICAgICAgICAgICAgIicvLi4vLi4vY29tbW9uL2NvbmZpZy9wYXJhbXMtbG9jYWwucGhwJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICByZXF1aXJlIF9fRElSX18gLiAnL3BhcmFtcy5waHAnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIHJlcXVpcmUgX19ESVJfXyAuICcvcGFyYW1zLWxvY2FsLnBocCdcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3JldHVybiBbXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2lkJyA9PiAnYXBwLWZyb250ZW5kJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnYmFzZVBhdGgnID0+IGRpcm5hbWUoX19ESVJfXyksXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2Jvb3RzdHJhcCcgPT4gWydsb2cnXSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnY29udHJvbGxlck5hbWVzcGFjZScgPT4gIgogICAgICAgICAgICAgICAgICAgICAgICAgIidmcm9udGVuZFxcY29udHJvbGxlcnMnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICdjb21wb25lbnRzJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICdyZXF1ZXN0JyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAnY3NyZlBhcmFtJyA9PiAnX2NzcmYtZnJvbnRlbmQnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAvLyd1c2VyJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIC8vICAgICdpZGVudGl0eUNsYXNzJyA9PiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAiJ2NvbW1vblxcbW9kZWxzXFxVc2VyJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgLy8gICAgJ2VuYWJsZUF1dG9Mb2dpbicgPT4gdHJ1ZSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgLy8gICAgJ2lkZW50aXR5Q29va2llJyA9PiBbJ25hbWUnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgICInX2lkZW50aXR5LWZyb250ZW5kJywgJ2h0dHBPbmx5JyA9PiB0cnVlXSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLy9dLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAnc2Vzc2lvbicgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnY29va2llIHVzZWQgZm9yIGxvZ2luIG9uIHRoZSBmcm9udGVuZFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ25hbWUnID0+ICdhZHZhbmNlZC1mcm9udGVuZCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICdsb2cnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICd0cmFjZUxldmVsJyA9PiBZSUlfREVCVUcgPyAzIDogMCxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICd0YXJnZXRzJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgW1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAnY2xhc3MnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgICIneWlpXFxsb2dcXEZpbGVUYXJnZXQnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAnbGV2ZWxzJyA9PiBbJ2Vycm9yJywgIgogICAgICAgICAgICAgICAgICAgICAgICAgIid3YXJuaW5nJ10sXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICdlcnJvckhhbmRsZXInID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICdlcnJvckFjdGlvbicgPT4gJ3NpdGUvZXJyb3InLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAndXJsTWFuYWdlcicgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ2VuYWJsZVByZXR0eVVybCcgPT4gdHJ1ZSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICdzaG93U2NyaXB0TmFtZScgPT4gZmFsc2UsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAncnVsZXMnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAncGFyYW1zJyA9PiAkcGFyYW1zLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnXTtcclxuJywKICAgICAgICAgICAgICdwaHBGaWxlQic6ICc8P3BocCAvKiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnX2RvY3Jvb3RfLy4uL3NyYy95aWkyL2FkdmFuY2VkL2Zyb250ZW5kL2NvbmZpZy9tYWluLnBocCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICckcGFyYW1zID0gYXJyYXlfbWVyZ2UoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcmVxdWlyZSBfX0RJUl9fIC4gJwogICAgICAgICAgICAgICAgICAgICAgICAgIicvLi4vLi4vY29tbW9uL2NvbmZpZy9wYXJhbXMucGhwJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICByZXF1aXJlIF9fRElSX18gLiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAiJy8uLi8uLi9jb21tb24vY29uZmlnL3BhcmFtcy1sb2NhbC5waHAnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIHJlcXVpcmUgX19ESVJfXyAuICcvcGFyYW1zLnBocCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgcmVxdWlyZSBfX0RJUl9fIC4gJy9wYXJhbXMtbG9jYWwucGhwJ1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAncmV0dXJuIFtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnaWQnID0+ICdhcHAtZnJvbnRlbmQnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICdiYXNlUGF0aCcgPT4gZGlybmFtZShfX0RJUl9fKSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnYm9vdHN0cmFwJyA9PiBbJ2xvZyddLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICdjb250cm9sbGVyTmFtZXNwYWNlJyA9PiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAiJ2Zyb250ZW5kXFxjb250cm9sbGVycycsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2NvbXBvbmVudHMnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJ3JlcXVlc3QnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICdjc3JmUGFyYW0nID0+ICdfY3NyZi1mcm9udGVuZCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIC8vJ3VzZXInID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgLy8gICAgJ2lkZW50aXR5Q2xhc3MnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgICInY29tbW9uXFxtb2RlbHNcXFVzZXInLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAvLyAgICAnZW5hYmxlQXV0b0xvZ2luJyA9PiB0cnVlLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAvLyAgICAnaWRlbnRpdHlDb29raWUnID0+IFsnbmFtZScgPT4gIgogICAgICAgICAgICAgICAgICAgICAgICAgIidfaWRlbnRpdHktZnJvbnRlbmQnLCAnaHR0cE9ubHknID0+IHRydWVdLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvL10sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICdzZXNzaW9uJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAvLyB0aGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uICcKICAgICAgICAgICAgICAgICAgICAgICAgICdjb29raWUgdXNlZCBmb3IgbG9naW4gb24gdGhlIGZyb250ZW5kXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAnbmFtZScgPT4gJ2FkdmFuY2VkLWZyb250ZW5kJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJ2xvZycgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3RyYWNlTGV2ZWwnID0+IFlJSV9ERUJVRyA/IDMgOiAwLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3RhcmdldHMnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICBbXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgICAgICdjbGFzcycgPT4gIgogICAgICAgICAgICAgICAgICAgICAgICAgIid5aWlcXGxvZ1xcRmlsZVRhcmdldCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgICAgICdsZXZlbHMnID0+IFsnZXJyb3InLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAiJ3dhcm5pbmcnXSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJ2Vycm9ySGFuZGxlcicgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ2Vycm9yQWN0aW9uJyA9PiAnc2l0ZS9lcnJvcicsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICd1cmxNYW5hZ2VyJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAnZW5hYmxlUHJldHR5VXJsJyA9PiB0cnVlLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3Nob3dTY3JpcHROYW1lJyA9PiBmYWxzZSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICdydWxlcycgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICdwYXJhbXMnID0+ICRwYXJhbXMsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICddO1xyXG4nfSwKICAgICAgJ2VuLVVTJzogeydOb3Rlcyc6ICcnLAogICAgICAgICAgICAgICAgJ1NsaWRlVHlwZSc6ICdDb2RlSW5jJywKICAgICAgICAgICAgICAgICdhTGFiZWwnOiAnQ29uZmlnIG1haW4qLnBocCcsCiAgICAgICAgICAgICAgICAnYV9maWxlJzogJycsCiAgICAgICAgICAgICAgICAnYWRkQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgICdhc3ZnZmlsZSc6ICc8c3ZnPjwvc3ZnPicsCiAgICAgICAgICAgICAgICAnY29kZSc6ICcnLAogICAgICAgICAgICAgICAgJ2NvZGVJbmMnOiAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgaGVhZCB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzdHlsZUluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzY3JpcHRJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgYm9keSB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc2NyaXB0SW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIEVuZFxyXG4nLAogICAgICAgICAgICAgICAgJ2NvbEJHSW1hZ2UnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nMTAuanBnJywKICAgICAgICAgICAgICAgICdjb2xCR0ltYWdlV3JhcCc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWcxMS5qcGcnLAogICAgICAgICAgICAgICAgJ2NvbXBvc2VySlNPTic6ICcnLAogICAgICAgICAgICAgICAgJ2R5bmFtaWNCbG9jayc6ICcnLAogICAgICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCiAgICAgICAgICAgICAgICAncGhwRmlsZSc6ICcnLAogICAgICAgICAgICAgICAgJ3BocEZpbGVBJzogJzw/cGhwIC8qICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfZG9jcm9vdF8vLi4vc3JjL3lpaTIvYWR2YW5jZWQvZnJvbnRlbmQvY29uZmlnL21haW4ucGhwICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyRwYXJhbXMgPSBhcnJheV9tZXJnZShcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICByZXF1aXJlIF9fRElSX18gLiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJy8uLi8uLi9jb21tb24vY29uZmlnL3BhcmFtcy5waHAnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHJlcXVpcmUgX19ESVJfXyAuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICInLy4uLy4uL2NvbW1vbi9jb25maWcvcGFyYW1zLWxvY2FsLnBocCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgcmVxdWlyZSBfX0RJUl9fIC4gJy9wYXJhbXMucGhwJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICByZXF1aXJlIF9fRElSX18gLiAnL3BhcmFtcy1sb2NhbC5waHAnXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXR1cm4gW1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICdpZCcgPT4gJ2FwcC1mcm9udGVuZCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2Jhc2VQYXRoJyA9PiBkaXJuYW1lKF9fRElSX18pLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICdib290c3RyYXAnID0+IFsnbG9nJ10sXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2NvbnRyb2xsZXJOYW1lc3BhY2UnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICInZnJvbnRlbmRcXGNvbnRyb2xsZXJzJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnY29tcG9uZW50cycgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAncmVxdWVzdCcgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ2NzcmZQYXJhbScgPT4gJ19jc3JmLWZyb250ZW5kJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgLy8ndXNlcicgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAvLyAgICAnaWRlbnRpdHlDbGFzcycgPT4gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIidjb21tb25cXG1vZGVsc1xcVXNlcicsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIC8vICAgICdlbmFibGVBdXRvTG9naW4nID0+IHRydWUsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIC8vICAgICdpZGVudGl0eUNvb2tpZScgPT4gWyduYW1lJyA9PiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ19pZGVudGl0eS1mcm9udGVuZCcsICdodHRwT25seScgPT4gdHJ1ZV0sXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8vXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJ3Nlc3Npb24nID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIC8vIHRoaXMgaXMgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nvb2tpZSB1c2VkIGZvciBsb2dpbiBvbiB0aGUgZnJvbnRlbmRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICduYW1lJyA9PiAnYWR2YW5jZWQtZnJvbnRlbmQnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAnbG9nJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAndHJhY2VMZXZlbCcgPT4gWUlJX0RFQlVHID8gMyA6IDAsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAndGFyZ2V0cycgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgIFtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgJ2NsYXNzJyA9PiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ3lpaVxcbG9nXFxGaWxlVGFyZ2V0JyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgJ2xldmVscycgPT4gWydlcnJvcicsICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICInd2FybmluZyddLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAnZXJyb3JIYW5kbGVyJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAnZXJyb3JBY3Rpb24nID0+ICdzaXRlL2Vycm9yJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLypcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJ3VybE1hbmFnZXInID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICdlbmFibGVQcmV0dHlVcmwnID0+IHRydWUsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAnc2hvd1NjcmlwdE5hbWUnID0+IGZhbHNlLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3J1bGVzJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ3BhcmFtcycgPT4gJHBhcmFtcyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ107XHJcbicsCiAgICAgICAgICAgICAgICAncGhwRmlsZUInOiAnPD9waHAgLyogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19kb2Nyb290Xy8uLi9zcmMveWlpMi9hZHZhbmNlZC9mcm9udGVuZC9jb25maWcvbWFpbi5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJHBhcmFtcyA9IGFycmF5X21lcmdlKFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHJlcXVpcmUgX19ESVJfXyAuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICInLy4uLy4uL2NvbW1vbi9jb25maWcvcGFyYW1zLnBocCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcmVxdWlyZSBfX0RJUl9fIC4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIicvLi4vLi4vY29tbW9uL2NvbmZpZy9wYXJhbXMtbG9jYWwucGhwJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICByZXF1aXJlIF9fRElSX18gLiAnL3BhcmFtcy5waHAnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIHJlcXVpcmUgX19ESVJfXyAuICcvcGFyYW1zLWxvY2FsLnBocCdcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JldHVybiBbXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2lkJyA9PiAnYXBwLWZyb250ZW5kJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnYmFzZVBhdGgnID0+IGRpcm5hbWUoX19ESVJfXyksXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2Jvb3RzdHJhcCcgPT4gWydsb2cnXSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnY29udHJvbGxlck5hbWVzcGFjZScgPT4gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIidmcm9udGVuZFxcY29udHJvbGxlcnMnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICdjb21wb25lbnRzJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICdyZXF1ZXN0JyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAnY3NyZlBhcmFtJyA9PiAnX2NzcmYtZnJvbnRlbmQnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAvLyd1c2VyJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIC8vICAgICdpZGVudGl0eUNsYXNzJyA9PiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ2NvbW1vblxcbW9kZWxzXFxVc2VyJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgLy8gICAgJ2VuYWJsZUF1dG9Mb2dpbicgPT4gdHJ1ZSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgLy8gICAgJ2lkZW50aXR5Q29va2llJyA9PiBbJ25hbWUnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICInX2lkZW50aXR5LWZyb250ZW5kJywgJ2h0dHBPbmx5JyA9PiB0cnVlXSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLy9dLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAnc2Vzc2lvbicgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29va2llIHVzZWQgZm9yIGxvZ2luIG9uIHRoZSBmcm9udGVuZFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ25hbWUnID0+ICdhZHZhbmNlZC1mcm9udGVuZCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICdsb2cnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICd0cmFjZUxldmVsJyA9PiBZSUlfREVCVUcgPyAzIDogMCxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICd0YXJnZXRzJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgW1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAnY2xhc3MnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIneWlpXFxsb2dcXEZpbGVUYXJnZXQnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAnbGV2ZWxzJyA9PiBbJ2Vycm9yJywgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIid3YXJuaW5nJ10sXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICdlcnJvckhhbmRsZXInID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICdlcnJvckFjdGlvbicgPT4gJ3NpdGUvZXJyb3InLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAndXJsTWFuYWdlcicgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ2VuYWJsZVByZXR0eVVybCcgPT4gdHJ1ZSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICdzaG93U2NyaXB0TmFtZScgPT4gZmFsc2UsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAncnVsZXMnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAncGFyYW1zJyA9PiAkcGFyYW1zLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXTtcclxuJ319fQo=
Copyright © 2025 by WebAsOne LLC, All Rights Reserved