IiBNZW51IFRyYW5zbGF0aW9uczoJSXRhbGlhbiAvIEl0YWxpYW5vCiIgTWFpbnRhaW5lcjoJCUFudG9uaW8gQ29sb21ibyA8YXpjMTAwQGdtYWlsLmNvbT4KIgkJCVZsYWQgU2FuZHJpbmkgPHZsYWQuZ2VudGx5QGdtYWlsLmNvbT4KIgkJCUx1Y2lhbm8gTW9udGFuYXJvIDxtaWtlbGltYUBjaXJ1bGxhLm5ldD4KIiBMYXN0IENoYW5nZToJMjAxMCBBZ28gMTMKCiIgUXVpdCB3aGVuIG1lbnUgdHJhbnNsYXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRvbmUuCmlmIGV4aXN0cygiZGlkX21lbnVfdHJhbnMiKQogIGZpbmlzaAplbmRpZgpsZXQgZGlkX21lbnVfdHJhbnMgPSAxCgpzY3JpcHRlbmNvZGluZyBpc28tODg1OS0xCgoiIEhlbHAgLyBBaXV0bwptZW51dCAmSGVscAkJCSZBaXV0bwptZW51dCAmT3ZlcnZpZXc8VGFiPjxGMT4JJlBhbm9yYW1pY2E8VGFiPjxGMT4KbWVudXQgJlVzZXJcIE1hbnVhbAkJTWFudWFsZVwgJlV0ZW50ZQptZW51dCAmSG93LXRvXCBsaW5rcwlDbyZNZVwuXC5cLgoibWVudXQgJkdVSQkJCSZHVUkKbWVudXQgJkNyZWRpdHMJCUNyJkVkaXRpCm1lbnV0IENvJnB5aW5nCQlDJk9waWUKbWVudXQgJlNwb25zb3IvUmVnaXN0ZXIgJlNwb25zb3IvcmVnaXN0cmF6aW9uZQptZW51dCBPJnJwaGFucwkJTyZSZmFuaQoibWVudXQgJkZpbmRcLlwuXC4JCSZDZXJjYVwuXC5cLgoiTk9UQTogZmEgY29uZmxpdHRvIGNvbiAnY2VyY2EnIG5lbCBtZW51ICdtb2RpZmljYScKbWVudXQgJlZlcnNpb24JCSZWZXJzaW9uZQptZW51dCAmQWJvdXQJCSZJbnRybwoKbGV0IGc6bWVudXRyYW5zX2hlbHBfZGlhbG9nID0gIkJhdHRpIHVuIGNvbWFuZG8gbyB1bmEgcGFyb2xhIHBlciBjZXJjYXJlIGFpdXRvOlxuXG5QcmVtZXR0aSBpXyBwZXIgY29tYW5kaSBpbiBtb2RvIElucHV0IChhZC5lcy46IGlfQ1RSTC1YKVxuUHJlbWV0dGkgY18gcGVyIGNvbWFuZGkgY2hlIGVkaXRhbm8gbGEgbGluZWEtY29tYW5kaSAoYWQuZXMuOiBjXzxEZWw+KVxuUHJlbWV0dGkgJyBwZXIgdW4gbm9tZSBkaSBvcHppb25lIChhZC5lcy46ICdzaGlmdHdpZHRoJykiCgoiIEZpbGUgbWVudQoibWVudXQgJkZpbGUJCQkJJkZpbGUKIgptZW51dCAmT3BlblwuXC5cLjxUYWI+OmUJCSZBcHJpXC5cLlwuPFRhYj46ZQptZW51dCBTcCZsaXQtT3BlblwuXC5cLjxUYWI+OnNwCUEmUHJpXCBudW92YVwgZmluZXN0cmFcLlwuXC48VGFiPjpzcAptZW51dCBPcGVuXCBUYWJcLlwuXC48VGFiPjp0YWJuZXcgQXByaVwgbnVvdmFcICZMaW5ndWV0dGFcLlwuXC48VGFiPjp0YWJuZXcKbWVudXQgJk5ldzxUYWI+OmVuZXcJCSZOdW92bzxUYWI+OmVuZXcKbWVudXQgJkNsb3NlPFRhYj46Y2xvc2UJCSZDaGl1ZGk8VGFiPjpjbG9zZQptZW51dCAmU2F2ZTxUYWI+OncJCQkmU2FsdmE8VGFiPjp3Cm1lbnV0IFNhdmVcICZBc1wuXC5cLjxUYWI+OnNhdglTYWx2YVwgJkNvblwgbm9tZVwuXC5cLjxUYWI+OnNhdgoKaWYgaGFzKCJkaWZmIikKICAgIG1lbnV0IFNwbGl0XCAmRGlmZlwgd2l0aFwuXC5cLglGaW5lc3RyYVwgJkRpZmZlcmVuemFcIGNvblwuXC5cLgogICAgbWVudXQgU3BsaXRcIFBhdGNoZWRcICZCeVwuXC5cLglGaW5lc3RyYVwgcGF0YyZIXCBkYVwuXC5cLgplbmRpZgoKbWVudXQgJlByaW50CQkJUyZ0YW1wYQptZW51dCBTYSZ2ZS1FeGl0PFRhYj46d3FhCQlTYSZMdmFcIGVkXCBlc2NpPFRhYj46d3FhCm1lbnV0IEUmeGl0PFRhYj46cWEJCQkmRXNjaTxUYWI+OnFhCgoiIEVkaXQgLyBNb2RpZmljYQoKbWVudXQgJkVkaXQJCQkJJk1vZGlmaWNhCm1lbnV0ICZVbmRvPFRhYj51CQkJJkFubnVsbGE8VGFiPnUKbWVudXQgJlJlZG88VGFiPl5SCQkJJlJpcHJpc3RpbmE8VGFiPl5SCm1lbnV0IFJlcCZlYXQ8VGFiPlwuCQlSaSZQZXRpPFRhYj5cLgptZW51dCBDdSZ0PFRhYj4iK3gJCQkmVGFnbGlhPFRhYj4iK3gKbWVudXQgJkNvcHk8VGFiPiIreQkJCSZDb3BpYTxUYWI+Iit5Cm1lbnV0ICZQYXN0ZTxUYWI+IitnUAkJJkluY29sbGE8VGFiPiIrZ1AKbWVudXQgUHV0XCAmQmVmb3JlPFRhYj5bcAkJJk1ldHRpXCBkYXZhbnRpPFRhYj5bcAptZW51dCBQdXRcICZBZnRlcjxUYWI+XXAJCU0mRXR0aVwgZGlldHJvPFRhYj5dcAptZW51dCAmRGVsZXRlPFRhYj54CQkJQ2FuY2UmTGxhPFRhYj54Cm1lbnV0ICZTZWxlY3RcIGFsbDxUYWI+Z2dWRwkJU2VsZXppb25hXCAmVHV0dG88VGFiPmdnVkcKbWVudXQgJlNlbGVjdFwgQWxsPFRhYj5nZ1ZHCQlTZWxlemlvbmFcICZUdXR0bzxUYWI+Z2dWRwptZW51dCAmRmluZFwuXC5cLgkJCSZDZXJjYVwuXC5cLgptZW51dCBGaW5kXCBhbmRcIFJlcCZsYWNlXC5cLlwuCSZTb3N0aXR1aXNjaVwuXC5cLgptZW51dCBTZXR0aW5nc1wgJldpbmRvdwkJJkZpbmVzdHJhXCBpbXBvc3RhemlvbmkKbWVudXQgU3RhcnR1cFwgJlNldHRpbmdzCUltcG9zdGF6aW9uaVwgZGlcICZBdnZpbwptZW51dCAmR2xvYmFsXCBTZXR0aW5ncwkJSW1wb3N0YXppb25pXCAmR2xvYmFsaQptZW51dCBRdWVzdGlvbgkJCURvbWFuZGEKCiIgRWRpdCAvIE1vZGlmaWNhIEltcG9zdGF6aW9uaSBHbG9iYWxpCm1lbnV0ICZHbG9iYWxcIFNldHRpbmdzCUltcG9zdGF6aW9uaVwgJkdsb2JhbGkKbWVudXQgVG9nZ2xlXCBQYXR0ZXJuXCAmSGlnaGxpZ2h0PFRhYj46c2V0XCBobHMhCSZFdmlkZW56aWFcIHJpY2VyY2hlXCBT7C9ObzxUYWI+OnNldFwgaGxzIQptZW51dCBUb2dnbGVcICZJZ25vcmUtY2FzZTxUYWI+OnNldFwgaWMhCQkmSWdub3JhXCBtYWl1c2NcLi1taW51c2NcLlwgU+wvTm88VGFiPjpzZXRcIGljIQptZW51dCBUb2dnbGVcICZTaG93bWF0Y2g8VGFiPjpzZXRcIHNtIQlJbmRpY2FcICZDb3JyaXNwb25kZW50ZVwgU+wvTm88VGFiPjpzZXRcIHNtIQoKbWVudXQgJkNvbnRleHRcIGxpbmVzCSZMaW5lZVwgZGlcIGNvbnRlc3RvCm1lbnV0ICZWaXJ0dWFsXCBFZGl0CQkmRWRpdFwgdmlydHVhbGUKCm1lbnV0IE5ldmVyCQlNYWkKbWVudXQgQmxvY2tcIFNlbGVjdGlvbgkJU2VsZXppb25lXCBibG9jY28KbWVudXQgSW5zZXJ0XCBtb2RlCU1vZG9cIGluc2VydAptZW51dCBCbG9ja1wgYW5kXCBJbnNlcnQJU2VsZXppb25lXCBibG9jY28raW5zZXJpbWVudG8KbWVudXQgQWx3YXlzCQlTZW1wcmUKCm1lbnV0IFRvZ2dsZVwgSW5zZXJ0XCAmTW9kZTxUYWI+OnNldFwgaW0hCSZNb2RvXCBpbnNlcnRcIFPsL05vPFRhYj46c2V0XCBpbSEKbWVudXQgVG9nZ2xlXCBWaVwgQyZvbXBhdGlibGU8VGFiPjpzZXRcIGNwIQlDJk9tcGF0aWJpbGVcIFZJXCBT7C9ObzxUYWI+OnNldFwgY3AhCm1lbnV0IFNlYXJjaFwgJlBhdGhcLlwuXC4JJlBlcmNvcnNvXCBkaVwgcmljZXJjYVwuXC5cLgptZW51dCBUYSZnXCBGaWxlc1wuXC5cLgkJRmlsZVwgdGEmR1wuXC5cLgoiCiIgT3B6aW9uaSBHVUkKbWVudXQgVG9nZ2xlXCAmVG9vbGJhcglCYXJyYVwgcyZUcnVtZW50aVwgU+wvTm8KbWVudXQgVG9nZ2xlXCAmQm90dG9tXCBTY3JvbGxiYXIJQmFycmFcIHNjb3JyaW1lbnRvXCBpblwgJkZvbmRvXCBT7C9ObwptZW51dCBUb2dnbGVcICZMZWZ0XCBTY3JvbGxiYXIJQmFycmFcIHNjb3JyaW1lbnRvXCBhXCAmU2luaXN0cmFcIFPsL05vCm1lbnV0IFRvZ2dsZVwgJlJpZ2h0XCBTY3JvbGxiYXIJQmFycmFcIHNjb3JyaW1lbnRvXCBhXCAmRGVzdHJhXCBT7C9ObwoKbGV0IGc6bWVudXRyYW5zX3BhdGhfZGlhbG9nID0gIkJhdHRpIHBlcmNvcnNvIGRpIHJpY2VyY2EgcGVyIGkgZmlsZS5cblNlcGFyYSBmcmEgbG9ybyBpIG5vbWkgZGkgZGlyZWN0b3J5IGNvbiB1bmEgdmlyZ29sYS4iCmxldCBnOm1lbnV0cmFuc190YWdzX2RpYWxvZyA9ICJCYXR0aSBub21lIGRlaSBmaWxlIGRpIHRhZy5cblNlcGFyYSBmcmEgbG9ybyBpIG5vbWkgZGkgZGlyZWN0b3J5IGNvbiB1bmEgdmlyZ29sYS4iCgoiIEVkaXQgLyBJbXBvc3RhemlvbmkgRmlsZQptZW51dCBGJmlsZVwgU2V0dGluZ3MJJkltcG9zdGF6aW9uaVwgZmlsZQoKIiBCb29sZWFuIG9wdGlvbnMKbWVudXQgVG9nZ2xlXCBMaW5lXCAmTnVtYmVyaW5nPFRhYj46c2V0XCBudSEJJk51bWVyYXppb25lXCBcIFPsL05vPFRhYj46c2V0XCBudSEKbWVudXQgVG9nZ2xlXCByZWxhdGkmdmVcIExpbmVcIE51bWJlcmluZzxUYWI+OnNldFwgcm51IQlOdW1lcmF6aW9uZVwgcmVsYXRpJlZhXCBT7C9ObzxUYWI+OnNldFwgcm51IQptZW51dCBUb2dnbGVcICZMaXN0XCBNb2RlPFRhYj46c2V0XCBsaXN0IQkJTW9kb1wgJkxpc3RcIFPsL05vPFRhYj46c2V0XCBsaXN0IQptZW51dCBUb2dnbGVcIExpbmVcICZXcmFwPFRhYj46c2V0XCB3cmFwIQkJTGluZWVcICZDb250aW51YXRlXCBT7C9ObzxUYWI+OnNldFwgd3JhcCEKbWVudXQgVG9nZ2xlXCBXJnJhcFwgYXRcIHdvcmQ8VGFiPjpzZXRcIGxiciEJQVwgY2Fwb1wgYWxsYVwgJlBhcm9sYVwgU+wvTm88VGFiPjpzZXRcIGxiciEKbWVudXQgVG9nZ2xlXCAmZXhwYW5kLXRhYjxUYWI+OnNldFwgZXQhCQkmRXNwYW5kaVwgdGFidWxhemlvbmVcIFPsL05vPFRhYj46c2V0XCBldCEKbWVudXQgVG9nZ2xlXCAmYXV0by1pbmRlbnQ8VGFiPjpzZXRcIGFpIQlJbmRlbnRhemlvbmVcICZBdXRvbWF0aWNhXCBT7C9ObzxUYWI+OnNldCBhaSEKbWVudXQgVG9nZ2xlXCAmQy1pbmRlbnRpbmc8VGFiPjpzZXRcIGNpbiEJSW5kZW50YXppb25lXCBzdGlsZVwgJkNcIFPsL05vPFRhYj46c2V0IGNpbiEKCiIgYWx0cmUgb3B6aW9uaQptZW51dCAmU2hpZnR3aWR0aAkJCSZTcGF6aVwgcmllbnRyYW56YQptZW51dCBTb2Z0XCAmVGFic3RvcAkJJlRhYnVsYXppb25lXCBzb2Z0d2FyZQptZW51dCBUZSZ4dFwgV2lkdGhcLlwuXC4JCUx1bmdoZSZaemFcIHJpZ2FcLlwuXC4KbWVudXQgJkZpbGVcIEZvcm1hdFwuXC5cLglGb3JtYXRvXCAmRmlsZVwuXC5cLgoKbGV0IGc6bWVudXRyYW5zX3RleHR3aWR0aF9kaWFsb2cgPSAiQmF0dGkgbnVvdmEgbHVuZ2hlenphIGxpbmVhICgwIHBlciBpbmliaXJlIGxhIGZvcm1hdHRhemlvbmUpOiAiCgpsZXQgZzptZW51dHJhbnNfZmlsZWZvcm1hdF9kaWFsb2cgPSAiU2NlZ2xpIGZvcm1hdG8gY29uIGN1aSBzY3JpdmVyZSBpbCBmaWxlIgoKbWVudXQgQyZvbG9yXCBTY2hlbWUJCVNjaGVtYVwgYyZPbG9yaQoKbWVudXQgZGVmYXVsdAkJbm9ybWFsZQptZW51dCBERUZBVUxUCQlOT1JNQUxFCm1lbnV0IGV2ZW5pbmcJCW5vdHR1cm5vCm1lbnV0IEVWRU5JTkcJCU5PVFRVUk5PCm1lbnV0IG1vcm5pbmcJCWRpdXJubwptZW51dCBNT1JOSU5HCQlESVVSTk8KbWVudXQgc2hpbmUJCWJyaWxsYW50ZQptZW51dCBTSElORQkJQlJJTExBTlRFCm1lbnV0IHBlYWNocHVmZgkJcGVzY2EKbWVudXQgUEVBQ0hQVUYJCVBFU0NBCgptZW51dCAmS2V5bWFwCQkJCSZNYXBwYVwgdGFzdGllcmEKCm1lbnV0IE5vbmUJCW5lc3N1bmEKbWVudXQgYWNjZW50cwkJYWNjZW50aQptZW51dCBBQ0NFTlRTCQlBQ0NFTlRJCm1lbnV0IGhlYnJldwkJZWJyYWljbwptZW51dCBIRUJSRVcJCUVCUkFJQ08KbWVudXQgaGVicmV3X2lzby04ODU5LTggZWJyYWljb19pc28tODg1OS04Cm1lbnV0IGhlYnJld19jcDEyNTUJZWJyYWljb19jcDEyNTUKbWVudXQgaGVicmV3X3V0Zi04CWVicmFpY29fdXRmLTgKbWVudXQgaGVicmV3cF9pc28tODg1OS04IGVicmFpY29fcF9pc28tODg1OS04Cm1lbnV0IEhFQlJFVy0JCUVCUkFJQ08rCm1lbnV0IGhlYnJld3AJCUVCUkFJQ09QCm1lbnV0IEhFQlJFV1AJCUVCUkFJQ09QCm1lbnV0IHJ1c3NpYW4tamN1a2VuCWNpcmlsbGljby1qY3VrZW4KbWVudXQgcnVzc2lhbi1qY3VrZW53aW4JY2lyaWxsaWNvLWpjdWtlbi13aW4KbWVudXQgUlVTU0lBTgkJQ0lSSUxMSUNPCm1lbnV0IFJVU1NJQU4tCQlDSVJJTExJQ08tCgptZW51dCBTZWxlY3RcIEZvJm50XC5cLlwuCQlTY2VnbGlcICZGb250XC5cLlwuCgoiIE1lbnUgc3RydW1lbnRpIHByb2dyYW1tYXppb25lCm1lbnV0ICZUb29scwkJCSZTdHJ1bWVudGkKCm1lbnV0ICZKdW1wXCB0b1wgdGhpc1wgdGFnPFRhYj5nXl0JJlZhaVwgYVwgcXVlc3RhXCB0YWc8VGFiPmdeXQptZW51dCBKdW1wXCAmYmFjazxUYWI+XlQJCVRvcm5hXCAmSW5kaWV0cm88VGFiPl5UCm1lbnV0IEJ1aWxkXCAmVGFnc1wgRmlsZQkJQ29zdHJ1aXNjaVwgZmlsZVwgJlRhZ3NcCgoiIE1lbnUgb3J0b2dyYWZpYSAvIFNwZWxsaW5nCm1lbnV0ICZTcGVsbGluZwkJCSZPcnRvZ3JhZmlhCgptZW51dCAmU3BlbGxcIENoZWNrXCBPbgkJCUF0dGl2YVwgJkNvbnRyb2xsb1wgb3J0b2dyYWZpY28KbWVudXQgU3BlbGxcIENoZWNrXCAmT2ZmCQkmRGlzYXR0aXZhXCBjb250cm9sbG9cIG9ydG9ncmFmaWNvCm1lbnV0IFRvXCAmTmV4dFwgZXJyb3I8VGFiPl1zCQlFcnJvcmVcICZTZWd1ZW50ZTx0YWI+XXMKbWVudXQgVG9cICZQcmV2aW91c1wgZXJyb3I8VGFiPltzCUVycm9yZVwgJlByZWNlZGVudGU8dGFiPltzCm1lbnV0IFN1Z2dlc3RcICZDb3JyZWN0aW9uczxUYWI+ej0JJlN1Z2dlcmltZW50aTxUYWI+ej0KbWVudXQgJlJlcGVhdFwgY29ycmVjdGlvbjxUYWI+OnNwZWxscmVwYWxsCSZSaXBldGlcIGNvcnJlemlvbmU8VGFiPjpzcGVsbHJlcGFsbAptZW51dCBTZXRcIGxhbmd1YWdlXCB0b1wgImVuIgkJSW1wb3N0YVwgbGluZ3VhXCBhXCAiZW4iCm1lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fYXUiCUltcG9zdGFcIGxpbmd1YVwgYVwgImVuX2F1IgptZW51dCBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX2NhIglJbXBvc3RhXCBsaW5ndWFcIGFcICJlbl9jYSIKbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl9nYiIJSW1wb3N0YVwgbGluZ3VhXCBhXCAiZW5fZ2IiCm1lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fbnoiCUltcG9zdGFcIGxpbmd1YVwgYVwgImVuX256IgptZW51dCBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX3VzIglJbXBvc3RhXCBsaW5ndWFcIGFcICJlbl91cyIKbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJpdCIJCUltcG9zdGFcIGxpbmd1YVwgYVwgIml0IgptZW51dCBTZXRcIGxhbmd1YWdlXCB0b1wgIml0X2l0IglJbXBvc3RhXCBsaW5ndWFcIGFcICJpdF9pdCIKbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJpdF9jaCIJSW1wb3N0YVwgbGluZ3VhXCBhXCAiaXRfY2giCm1lbnV0ICZGaW5kXCBNb3JlXCBMYW5ndWFnZXMJCSZUcm92YVwgYWx0cmVcIGxpbmd1ZQoKIiBNZW51IHBpZWdhdHVyZSAvIEZvbGQKaWYgaGFzKCJmb2xkaW5nIikKICBtZW51dCAmRm9sZGluZwkJCQkJJlBpZWdhdHVyZQogICIgYXByaSBlIGNoaXVkaSBwaWVnYXR1cmUKICBtZW51dCAmRW5hYmxlL0Rpc2FibGVcIGZvbGRzPFRhYj56aQkJUGkmZWdhdHVyZVwgU+wvTm88VGFiPnppCiAgbWVudXQgJlZpZXdcIEN1cnNvclwgTGluZTxUYWI+enYJCQkmVmVkaVwgbGluZWFcIGNvbFwgQ3Vyc29yZTxUYWI+enYKICBtZW51dCBWaWUmd1wgQ3Vyc29yXCBMaW5lXCBvbmx5PFRhYj56TXp4CQlWZWRpXCAmU29sb1wgbGluZWFcIGNvbFwgQ3Vyc29yZTxUYWI+ek16eAogIG1lbnV0IEMmbG9zZVwgbW9yZVwgZm9sZHM8VGFiPnptCQkJQyZIaXVkaVwgcGn5XCBwaWVnYXR1cmU8VGFiPnptCiAgbWVudXQgJkNsb3NlXCBhbGxcIGZvbGRzPFRhYj56TQkJCSZDaGl1ZGlcIHR1dHRlXCBsZVwgcGllZ2F0dXJlPFRhYj56TQogIG1lbnV0IE8mcGVuXCBtb3JlXCBmb2xkczxUYWI+enIJCQlBJlByaVwgcGn5XCBwaWVnYXR1cmU8VGFiPnpyCiAgbWVudXQgJk9wZW5cIGFsbFwgZm9sZHM8VGFiPnpSCQkJJkFwcmlcIHR1dHRlXCBsZVwgcGllZ2F0dXJlPFRhYj56UgogICIgbWV0b2RvIHBpZWdhdHVyYQogIG1lbnV0IEZvbGRcIE1ldCZob2QJCQkJTWV0byZEb1wgcGllZ2F0dXJhCiAgbWVudXQgTSZhbnVhbAkJCQkJJk1hbnVhbGUKICBtZW51dCBJJm5kZW50CQkJCQkmTmlkaWZpY2F6aW9uZQogIG1lbnV0IEUmeHByZXNzaW9uCQkJCQkmRXNwcmVzc2lvbmVcIFJlZ1wuCiAgbWVudXQgUyZ5bnRheAkJCQkJJlNpbnRhc3NpCiAgbWVudXQgJkRpZmYJCQkJCSZEaWZmZXJlbnphCiAgbWVudXQgTWEmcmtlcgkJCQkJTWFyJkNhdHVyYQogICIgY3JlYSBlIGNhbmNlbGxhIHBpZWdhdHVyZQogIG1lbnV0IENyZWF0ZVwgJkZvbGQ8VGFiPnpmCQkJQ3JlYVwgJlBpZWdhdHVyYTxUYWI+emYKICBtZW51dCAmRGVsZXRlXCBGb2xkPFRhYj56ZAkJCSZMZXZhXCBwaWVnYXR1cmE8VGFiPnpkCiAgbWVudXQgRGVsZXRlXCAmQWxsXCBGb2xkczxUYWI+ekQJCQlMZXZhXCAmVHV0dGVcIGxlXCBwaWVnYXR1cmU8VGFiPnpECiAgIiBtb3ZpbWVudGkgYWxsJ2ludGVybm8gZGVsbGUgcGllZ2F0dXJlCiAgbWVudXQgRm9sZFwgY29sJnVtblwgd2lkdGgJCQlMYXJnaGV6emFcIHBpZWdhdCZVcmVcIGluXCBjb2xvbm5lCmVuZGlmICAiIGhhcyBmb2xkaW5nCgppZiBoYXMoImRpZmYiKQogIG1lbnV0ICZEaWZmCQkJCQkmRGlmZmVyZW56YQogICIKICBtZW51dCAmVXBkYXRlCQkJCQkmQWdnaW9ybmEKICBtZW51dCAmR2V0XCBCbG9jawkJCQkJJkltcG9ydGFcIGRpZmZlcmVuemUKICBtZW51dCAmUHV0XCBCbG9jawkJCQkJJkVzcG9ydGFcIGRpZmZlcmVuemUKZW5kaWYgICIgaGFzIGRpZmYKCm1lbnV0ICZNYWtlPFRhYj46bWFrZQkJRXNlZ3VpXCAmTWFrZTxUYWI+Om1ha2UKCm1lbnV0ICZMaXN0XCBFcnJvcnM8VGFiPjpjbAkJTGlzdGFcICZFcnJvcmk8VGFiPjpjbAptZW51dCBMJmlzdFwgTWVzc2FnZXM8VGFiPjpjbCEJTGlzdGFcICZNZXNzYWdnaTxUYWI+OmNsIQptZW51dCAmTmV4dFwgRXJyb3I8VGFiPjpjbgkJRXJyb3JlXCBzJlVjY2Vzc2l2bzxUYWI+OmNuCm1lbnV0ICZQcmV2aW91c1wgRXJyb3I8VGFiPjpjcAlFcnJvcmVcICZQcmVjZWRlbnRlPFRhYj46Y3AKbWVudXQgJk9sZGVyXCBMaXN0PFRhYj46Y29sZAlMaXN0YVwgbWVuJk9cIHJlY2VudGU8VGFiPjpjb2xkCm1lbnV0IE4mZXdlclwgTGlzdDxUYWI+OmNuZXcJTGlzdGFcIHBp+VwgcmVjZSZOdGU8VGFiPjpjbmV3CgptZW51dCBFcnJvclwgJldpbmRvdwkJJkZpbmVzdHJhXCBlcnJvcmkKCm1lbnV0ICZVcGRhdGU8VGFiPjpjd2luCQlBJkdnaW9ybmE8VGFiPjpjd2luCm1lbnV0ICZPcGVuPFRhYj46Y29wZW4JCSZBcHJpPFRhYj46Y29wZW4KbWVudXQgJkNsb3NlPFRhYj46Y2Nsb3NlCSZDaGl1ZGk8VGFiPjpjY2xvc2UKCm1lbnV0ICZDb252ZXJ0XCB0b1wgSEVYPFRhYj46JSF4eGQJJkNvbnZlcnRpXCBhXCBlc2FkZWNpbWFsZTxUYWI+OiUheHhkCm1lbnV0IENvbnZlJnJ0XCBiYWNrPFRhYj46JSF4eGRcIC1yCUNvbnZlJnJ0aVwgZGFcIGVzYWRlY2ltYWxlPFRhYj46JSF4eGRcIC1yCgptZW51dCBTZSZUXCBDb21waWxlcgkJSW1wbyZTdGFcIENvbXBpbGF0b3JlCgoiIEJ1ZmZlcnMgLyBCdWZmZXIKbWVudXQgJkJ1ZmZlcnMJCSZCdWZmZXIKCm1lbnV0ICZSZWZyZXNoXCBtZW51CQkJCUEmZ2dpb3JuYVwgbWVudQptZW51dCAmRGVsZXRlCQkmRWxpbWluYQptZW51dCAmQWx0ZXJuYXRlCQkmQWx0ZXJuYXRvCm1lbnV0ICZOZXh0CQkJJlN1Y2Nlc3Npdm8KbWVudXQgJlByZXZpb3VzCQkmUHJlY2VkZW50ZQptZW51dCBbTm9cIEZpbGVdCQlbTmVzc3VuXCBGaWxlXQoiIFN5bnRheCAvIFNpbnRhc3NpCm1lbnV0ICZTeW50YXgJCSZTaW50YXNzaQptZW51dCAmU2hvd1wgZmlsZXR5cGVzXCBpblwgbWVudQlNbyZTdHJhXCB0aXBpXCBkaVwgZmlsZVwgbmVsXCBtZW51Cm1lbnV0IFNldFwgJyZzeW50YXgnXCBvbmx5CSZTXCBBdHRpdmFcIHNvbG9cIFwgJ3N5bnRheCcKbWVudXQgU2V0XCAnJmZpbGV0eXBlJ1wgdG9vCSZGXCBBdHRpdmFcIGFuY2hlXCAnZmlsZXR5cGUnCm1lbnV0ICZPZmYJCQkmRGlzYXR0aXZhCm1lbnV0ICZNYW51YWwJCSZNYW51YWxlCm1lbnV0IEEmdXRvbWF0aWMJCUEmVXRvbWF0aWNvCm1lbnV0IG9uL29mZlwgZm9yXCAmVGhpc1wgZmlsZQlBdHRpdmFcIFPsL05vXCBzdVwgcXVlcyZUb1wgZmlsZQptZW51dCBDbyZsb3JcIHRlc3QJCVRlc3RcICZDb2xvcmkKbWVudXQgJkhpZ2hsaWdodFwgdGVzdAlUZXN0XCAmRXZpZGVuemlhbWVudG8KbWVudXQgJkNvbnZlcnRcIHRvXCBIVE1MCUNvbnZlcnRpXCBhZFwgJkhUTUwKCmxldCBnOm1lbnV0cmFuc19ub19maWxlID0gIltTZW56YSBub21lXSIKCiIgV2luZG93IC8gRmluZXN0cmEKbWVudXQgJldpbmRvdwkJCSZGaW5lc3RyYQoKbWVudXQgJk5ldzxUYWI+XlduCQkJJk51b3ZhPFRhYj5eV24KbWVudXQgUyZwbGl0PFRhYj5eV3MJCSZEaXZpZGlcIGxvXCBzY2hlcm1vPFRhYj5eV3MKbWVudXQgU3AmbGl0XCBUb1wgIzxUYWI+XldeXglEJkl2aWRpXCB2ZXJzb1wgIzxUYWI+XldeXgptZW51dCBTcGxpdFwgJlZlcnRpY2FsbHk8VGFiPl5XdglEaSZWaWRpXCB2ZXJ0aWNhbG1lbnRlPFRhYj5eV3YKbWVudXQgU3BsaXRcIEZpbGVcIEUmeHBsb3JlcglBZ2dpdW5naVwgZmluZXN0cmFcIGUmWHBsb3JlcgoKbWVudXQgJkNsb3NlPFRhYj5eV2MJCSZDaGl1ZGk8VGFiPl5XYwptZW51dCBDbG9zZVwgJk90aGVyKHMpPFRhYj5eV28JQyZIaXVkaVwgYWx0cmEoZSk8VGFiPl5XbwoKbWVudXQgTW92ZVwgJlRvCQkJJk11b3ZpXCB2ZXJzbwoKbWVudXQgJlRvcDxUYWI+XldLCQkJJkNpbWE8VGFiPl5XSwptZW51dCAmQm90dG9tPFRhYj5eV0oJCSZGb25kbzxUYWI+XldKCm1lbnV0ICZMZWZ0XCBzaWRlPFRhYj5eV0gJCUxhdG9cICZTaW5pc3RybzxUYWI+XldICm1lbnV0ICZSaWdodFwgc2lkZTxUYWI+XldMCQlMYXRvXCAmRGVzdHJvPFRhYj5eV0wKbWVudXQgUm90YXRlXCAmVXA8VGFiPl5XUgkJUnVvdGFcIHZlcnNvXCBsJyZBbHRvPFRhYj5eV1IKbWVudXQgUm90YXRlXCAmRG93bjxUYWI+XldyCQlSdW90YVwgdmVyc29cIGlsXCAmQmFzc288VGFiPl5XcgoKbWVudXQgJkVxdWFsXCBTaXplPFRhYj5eVz0JCSZVZ3VhbGVcIGFtcGllenphPFRhYj5eVz0KbWVudXQgJk1heFwgSGVpZ2h0PFRhYj5eV18JCSZBbHRlenphXCBtYXNzaW1hPFRhYj5eV18KbWVudXQgTSZpblwgSGVpZ2h0PFRhYj5eVzFfCQlBJkx0ZXp6YVwgbWluaW1hPFRhYj5eVzFfCm1lbnV0IE1heFwgJldpZHRoPFRhYj5eV1x8CQlMYXJnaGV6emFcIG1hc3NpbWE8VGFiPl5XXHwKbWVudXQgTWluXCBXaWR0Jmg8VGFiPl5XMVx8CQlMYXJnaGV6emFcIG1pbmltYTxUYWI+XlcxXHwKCiIgVGhlIHBvcHVwIG1lbnUKbWVudXQgJlVuZG8JCQkmQW5udWxsYQptZW51dCBDdSZ0CQkJJlRhZ2xpYQptZW51dCAmQ29weQkJCSZDb3BpYQptZW51dCAmUGFzdGUJCSZJbmNvbGxhCm1lbnV0ICZEZWxldGUJCSZFbGltaW5hCgptZW51dCBTZWxlY3RcIEJsb2Nrd2lzZQlTZWxlemlvbmFcIGluXCBibG9jY28KbWVudXQgU2VsZWN0XCAmV29yZAkJU2VsZXppb25hXCAmUGFyb2xhCm1lbnV0IFNlbGVjdFwgJkxpbmUJCVNlbGV6aW9uYVwgJkxpbmVhCm1lbnV0IFNlbGVjdFwgJkJsb2NrCVNlbGV6aW9uYVwgJkJsb2NjbwptZW51dCBTZWxlY3RcICZBbGwJCVNlbGV6aW9uYVwgdCZVdHRvCgoiIFRoZSBHVUkgVG9vbGJhciAvIEJhcnJhIFN0cnVtZW50aQppZiBoYXMoInRvb2xiYXIiKQogIGlmIGV4aXN0cygiKkRvX3Rvb2xiYXJfdG1lbnUiKQogICAgZGVsZnVuIERvX3Rvb2xiYXJfdG1lbnUKICBlbmRpZgogIGZ1biBEb190b29sYmFyX3RtZW51KCkKICAgIHRtZW51IFRvb2xCYXIuT3BlbgkJQXByaQogICAgdG1lbnUgVG9vbEJhci5TYXZlCQlTYWx2YQogICAgdG1lbnUgVG9vbEJhci5TYXZlQWxsCVNhbHZhIFR1dHRvCiAgICB0bWVudSBUb29sQmFyLlByaW50CQlTdGFtcGEKICAgIHRtZW51IFRvb2xCYXIuVW5kbwkJQW5udWxsYQogICAgdG1lbnUgVG9vbEJhci5SZWRvCQlSaXByaXN0aW5hCiAgICB0bWVudSBUb29sQmFyLkN1dAkJVGFnbGlhCiAgICB0bWVudSBUb29sQmFyLkNvcHkJCUNvcGlhCiAgICB0bWVudSBUb29sQmFyLlBhc3RlCQlJbmNvbGxhCgogICAgaWYgIWhhcygiZ3VpX2F0aGVuYSIpCiAgICAgIHRtZW51IFRvb2xCYXIuRmluZAlDZXJjYQogICAgICB0bWVudSBUb29sQmFyLkZpbmROZXh0CUNlcmNhIFN1Y2Nlc3Npdm8KICAgICAgdG1lbnUgVG9vbEJhci5GaW5kUHJldglDZXJjYSBQcmVjZWRlbnRlCiAgICAgIHRtZW51IFRvb2xCYXIuUmVwbGFjZQlTb3N0aXR1aXNjaQogICAgZW5kaWYKCmlmIDAJIiBkaXNhYmxlZDsgVGhlc2UgYXJlIGluIHRoZSBXaW5kb3dzIG1lbnUKICAgICAgdG1lbnUgVG9vbEJhci5OZXcJCU51b3ZhIGZpbmVzdHJhCiAgICAgIHRtZW51IFRvb2xCYXIuV2luU3BsaXQJRGl2aWRpIGZpbmVzdHJhCiAgICAgIHRtZW51IFRvb2xCYXIuV2luTWF4CU1hc3NpbWEgYW1waWV6emEKICAgICAgdG1lbnUgVG9vbEJhci5XaW5NaW4JTWluaW1hIGFtcGllenphCiAgICAgIHRtZW51IFRvb2xCYXIuV2luVlNwbGl0CURpdmlkaSB2ZXJ0aWNhbG1lbnRlCiAgICAgIHRtZW51IFRvb2xCYXIuV2luTWF4V2lkdGgJTWFzc2ltYSBsYXJnaGV6emEKICAgICAgdG1lbnUgVG9vbEJhci5XaW5NaW5XaWR0aAlNaW5pbWEgbGFyZ2hlenphCiAgICAgIHRtZW51IFRvb2xCYXIuV2luQ2xvc2UJQ2hpdWRpIGZpbmVzdHJhCmVuZGlmCgogICAgdG1lbnUgVG9vbEJhci5Mb2FkU2VzbglDYXJpY2EgU2Vzc2lvbmUKICAgIHRtZW51IFRvb2xCYXIuU2F2ZVNlc24JU2FsdmEgU2Vzc2lvbmUKICAgIHRtZW51IFRvb2xCYXIuUnVuU2NyaXB0CUVzZWd1aSBTY3JpcHQKICAgIHRtZW51IFRvb2xCYXIuTWFrZQkJTWFrZQogICAgdG1lbnUgVG9vbEJhci5TaGVsbAkJU2hlbGwKICAgIHRtZW51IFRvb2xCYXIuUnVuQ3RhZ3MJRXNlZ3VpIEN0YWdzCiAgICB0bWVudSBUb29sQmFyLlRhZ0p1bXAJVmFpIGEgVGFnCiAgICB0bWVudSBUb29sQmFyLkhlbHAJCUFpdXRvCiAgICB0bWVudSBUb29sQmFyLkZpbmRIZWxwCUNlcmNhIGluIEFpdXRvCiAgZW5kZnVuCmVuZGlmCgoiIHZpbTogc2V0IHN3PTIgOgo=