IiBNZW51IFRyYW5zbGF0aW9uczoJR2VybWFuIC8gRGV1dHNjaAoiIE1haW50YWluZXI6CQlHZW9yZyBEYWhuIDxnb3JneWRAeWFob28uY28udWs+CiIgT3JpZ2luYWxseSBCeToJTWFyY2luIERhbGVja2kgPGRhbGVja2lAY3MubmV0LnBsPgoiCQkJSm9oYW5uZXMgWmVsbG5lciA8am9oYW5uZXNAemVsbG5lci5vcmc+CiIgTGFzdCBDaGFuZ2U6CVNhdCwgMTEgTWFyIDIwMDYgMjI6NDA6MDAgQ0VTVAoiIHZpbTpzZXQgZm9sZG1ldGhvZD1tYXJrZXIgdGFic3RvcD04OgoKIiBRdWl0IHdoZW4gbWVudSB0cmFuc2xhdGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gZG9uZS4KaWYgZXhpc3RzKCJkaWRfbWVudV90cmFucyIpCiAgZmluaXNoCmVuZGlmCmxldCBkaWRfbWVudV90cmFucyA9IDEKCiIgVGhlIHRyYW5zbGF0aW9ucyBiZWxvdyBhcmUgaW4gbGF0aW4xLCBidXQgdGhleSB3b3JrIGZvciBjcDEyNTIgYW5kCiIgaXNvLTg4NTktMTUgd2l0aG91dCBjb252ZXJzaW9uIGFzIHdlbGwuCmlmICZlbmMgIT0gImNwMTI1MiIgJiYgJmVuYyAhPSAiaXNvLTg4NTktMTUiCiAgc2NyaXB0ZW5jb2RpbmcgbGF0aW4xCmVuZGlmCgoiIHt7eyBGSUxFIC8gREFURUkKbWVudXRyYW5zICZGaWxlCQkJCSZEYXRlaQptZW51dHJhbnMgJk9wZW5cLlwuXC48VGFiPjplCQkm1mZmbmVuXC5cLlwuPFRhYj46ZQptZW51dHJhbnMgU3AmbGl0LU9wZW5cLlwuXC48VGFiPjpzcAlJblwgZ2V0ZWlsdGVtXCAmRmVuc3Rlclwg9mZmbmVuXC5cLlwuPFRhYj46c3AKbWVudXRyYW5zIE9wZW5cIFRhYlwuXC5cLjxUYWI+OnRhYm5ldwlJblwgbmV1ZW1cICZUYWJcIPZmZm5lblwuXC5cLjxUYWI+OnRhYm5ldwptZW51dHJhbnMgJk5ldzxUYWI+OmVuZXcJCSZOZXVlXCBEYXRlaTxUYWI+OmVuZXcKbWVudXRyYW5zICZDbG9zZTxUYWI+OmNsb3NlCQlTJmNobGll32VuPFRhYj46Y2xvc2UKbWVudXRyYW5zICZTYXZlPFRhYj46dwkJCSZTcGVpY2hlcm48VGFiPjp3Cm1lbnV0cmFucyBTYXZlXCAmQXNcLlwuXC48VGFiPjpzYXYJU3BlaWNoZXJuXCAmYWxzXC5cLlwuPFRhYj46c2F2Cm1lbnV0cmFucyAmUHJpbnQJCQkmRHJ1Y2tlbgptZW51dHJhbnMgU2EmdmUtRXhpdDxUYWI+OndxYQkJU3BlaWNoZXJuXCB1bmRcIEJlJmVuZGVuPFRhYj46d3FhCm1lbnV0cmFucyBFJnhpdDxUYWI+OnFhCQkJJkJlZW5kZW48VGFiPjpxYQoKaWYgaGFzKCJkaWZmIikKICAgIG1lbnV0cmFucyBTcGxpdFwgJkRpZmZcIHdpdGhcLlwuXC4JRCZpZmZlcmVuelwgaW5cIGdldGVpbHRlbVwgRmVuc3RlclwgbWl0XC5cLlwuCiAgICBtZW51dHJhbnMgU3BsaXRcIFBhdGNoZWRcICZCeVwuXC5cLgkmUGF0Y2hcIGluXCBnZXRlaWx0ZW1cIEZlbnN0ZXJcIG1pdFwuXC5cLgplbmRpZgoiIH19fSBGSUxFIC8gREFURUkKCiIge3t7IEVESVQgLyBFRElUSUVSRU4KbWVudXRyYW5zICZFZGl0CQkJCSZFZGl0aWVyZW4KbWVudXRyYW5zICZVbmRvPFRhYj51CQkJWiZ1cvxjazxUYWI+dQptZW51dHJhbnMgJlJlZG88VGFiPl5SCQkJVm8mcjxUYWI+XlIKbWVudXRyYW5zIFJlcCZlYXQ8VGFiPlwuCQkmV2llZGVyaG9sZW48VGFiPlwuCm1lbnV0cmFucyBDdSZ0PFRhYj4iK3gJCQkmQXVzc2NobmVpZGVuPFRhYj4iK3gKbWVudXRyYW5zICZDb3B5PFRhYj4iK3kJCQkmS29waWVyZW48VGFiPiIreQptZW51dHJhbnMgJlBhc3RlPFRhYj4iK2dQCQlFaW4mZvxnZW48VGFiPiIrZ1AKbWVudXRyYW5zIFB1dFwgJkJlZm9yZTxUYWI+W3AJCURhJnZvclwgZWluZvxnZW48VGFiPltwCm1lbnV0cmFucyBQdXRcICZBZnRlcjxUYWI+XXAJCURhJm5hY2hcIGVpbmb8Z2VuPFRhYj5dcAptZW51dHJhbnMgJkRlbGV0ZTxUYWI+eAkJCSZM9nNjaGVuPFRhYj54Cm1lbnV0cmFucyAmU2VsZWN0XCBBbGw8VGFiPmdnVkcJCUFsbGVzXCAmbWFya2llcmVuPFRhYj5nZ1ZHCm1lbnV0cmFucyAmRmluZFwuXC5cLgkJCSZTdWNoZW5cLlwuXC4KbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2VcLlwuXC4JU3VjaGVuXCB1bmRcICZFcnNldHplblwuXC5cLgoKIiBbLS0gU0VUVElOR1MgLS1dCiIgWFhYICZFIHdvdWxkIGNvbmZsaWN0IHdpdGggJ1N1Y2hlblwgdW5kXCAmRXJzZXR6ZW4nLCBzZWUgYWJvdmUKbWVudXRyYW5zIFNldHRpbmdzXCAmV2luZG93CQkJCUUmaW5zdGVsbHVuZ2VuXC5cLlwuCm1lbnV0cmFucyAmR2xvYmFsXCBTZXR0aW5ncwkJCQkmR2xvYmFsZVwgRWluc3RlbGx1bmdlbgptZW51dHJhbnMgU3RhcnR1cFwgJlNldHRpbmdzCQkJCSZTdGFydGVpbnN0ZWxsdW5nZW4KCm1lbnV0cmFucyBUb2dnbGVcIFBhdHRlcm5cICZIaWdobGlnaHQ8VGFiPjpzZXRcIGhscyEJJkhlcnZvcmhlYnVuZ2VuXCBlaW4tXCB1bmRcIGF1c3NjaGFsdGVuPFRhYj46c2V0XCBobHMhCm1lbnV0cmFucyBUb2dnbGVcICZJZ25vcmUtY2FzZTxUYWI+OnNldFwgaWMhCQlHcm/fc2NocmVpYnVuZ1wgJmlnbm9yaWVyZW5cIG9kZXJcIGJlbnV0emVuPFRhYj46c2V0XCBpYyEKbWVudXRyYW5zIFRvZ2dsZVwgJlNob3dtYXRjaDxUYWI+OnNldFwgc20hCQlBbnplaWdlXCBkZXNcIHBhc3NlbmRlblwgJlN5bWJvbHNcIGVpbi1cIHVuZFwgYXVzc2NoYWx0ZW48VGFiPjpzZXRcIHNtIQoKbWVudXRyYW5zICZDb250ZXh0XCBsaW5lcwkJCQkmWnVzYW1tZW5oYW5nCgptZW51dHJhbnMgJlZpcnR1YWxcIEVkaXQJCQkJJlZpcnR1ZWxsZXJcIEVkaXRpZXItTW9kdXMKbWVudXRyYW5zIE5ldmVyCQkJCQkJTmllCm1lbnV0cmFucyBCbG9ja1wgU2VsZWN0aW9uCQkJCUJsb2NrLUF1c3dhaGwKbWVudXRyYW5zIEluc2VydFwgbW9kZQkJCQkJRWluZvxnZS1Nb2R1cwptZW51dHJhbnMgQmxvY2tcIGFuZFwgSW5zZXJ0CQkJCUJsb2NrLUF1c3dhaGxcIHVuZFwgRWluZvxnZS1Nb2R1cwptZW51dHJhbnMgQWx3YXlzCQkJCQlJbW1lcgptZW51dHJhbnMgVG9nZ2xlXCBJbnNlcnRcICZNb2RlPFRhYj46c2V0XCBpbSEJCUVpbmb8Z2UtJk1vZHVzXCBlaW4tXCB1bmRcIGF1c3NjaGFsdGVuPFRhYj46c2V0XCBpbSEKbWVudXRyYW5zIFRvZ2dsZVwgVmlcIEMmb21wYXRpYmxlPFRhYj46c2V0XCBjcCEJCVZpLUtvbXBhdGliaWxpdOR0XCBlaW4tXCB1bmRcIGF1c3NjaGFsdGVuPFRhYj46c2V0XCBjcCEKCm1lbnV0cmFucyBTZWFyY2hcICZQYXRoXC5cLlwuCQkJCVN1Y2gtJlBmYWRcLlwuXC4KbWVudXRyYW5zIFRhJmdcIEZpbGVzXC5cLlwuCQkJCVRhJmctRGF0ZWllblwuXC5cLgoKbWVudXRyYW5zIFRvZ2dsZVwgJlRvb2xiYXIJCQkJV2Vya3pldWdsZWlzdGVcIGVpbi1cIHVuZFwgYXVzc2NoYWx0ZW4KbWVudXRyYW5zIFRvZ2dsZVwgJkJvdHRvbVwgU2Nyb2xsYmFyCQkJVW50ZXJlblwgUm9sbGJhbGtlblwgZWluLVwgdW5kXCBhdXNzY2hhbHRlbgptZW51dHJhbnMgVG9nZ2xlXCAmTGVmdFwgU2Nyb2xsYmFyCQkJTGlua2VuXCBSb2xsYmFsa2VuXCBlaW4tXCB1bmRcIGF1c3NjaGFsdGVuCm1lbnV0cmFucyBUb2dnbGVcICZSaWdodFwgU2Nyb2xsYmFyCQkJUmVjaHRlblwgUm9sbGJhbGtlblwgZWluLVwgdW5kXCBhdXNzY2hhbHRlbgoKIiBFZGl0L0ZpbGUgU2V0dGluZ3MKbWVudXRyYW5zIEYmaWxlXCBTZXR0aW5ncwkJCQkmRGF0ZWktRWluc3RlbGx1bmdlbgoKIiBCb29sZWFuIG9wdGlvbnMKbWVudXRyYW5zIFRvZ2dsZVwgTGluZVwgJk51bWJlcmluZzxUYWI+OnNldFwgbnUhCUFuemVpZ2VcIGRlclwgWmVpbGVuJm51bW1lclwgZWluLVwgdW5kXCBhdXNzY2hhbHRlbjxUYWI+OnNldFwgbnUhCm1lbnV0cmFucyBUb2dnbGVcICZMaXN0XCBNb2RlPFRhYj46c2V0XCBsaXN0IQkJJkxpc3QtTW9kdXNcIGVpbi1cIHVuZFwgYXVzc2NoYWx0ZW48VGFiPjpzZXRcIGxpc3QhCm1lbnV0cmFucyBUb2dnbGVcIExpbmVcICZXcmFwPFRhYj46c2V0XCB3cmFwIQkJJlplaWxlbnVtYnJ1Y2hcIGVpbi1cIHVuZFwgYXVzc2NoYWx0ZW48VGFiPjpzZXRcIHdyYXAhCm1lbnV0cmFucyBUb2dnbGVcIFcmcmFwXCBhdFwgd29yZDxUYWI+OnNldFwgbGJyIQlVbWJydWNoXCBhblwgJldvcnRncmVuemVuXCBlaW4tXCB1bmRcIGF1c3NjaGFsdGVuPFRhYj46c2V0XCBsYnIhCm1lbnV0cmFucyBUb2dnbGVcICZleHBhbmQtdGFiPFRhYj46c2V0XCBldCEJCSZFcndlaXRlcnVuZ1wgdm9uXCBUYWJ1bGF0b3JlblwgZWluLVwgdW5kXCBhdXNzY2hhbHRlbjxUYWI+OnNldFwgZXQhCm1lbnV0cmFucyBUb2dnbGVcICZhdXRvLWluZGVudDxUYWI+OnNldFwgYWkhCQkmQXV0b21hdGlzY2hlXCBFaW5y/GNrdW5nXCBlaW4tXCB1bmRcIGF1c3NjaGFsdGVuPFRhYj46c2V0XCBhaSEKbWVudXRyYW5zIFRvZ2dsZVwgJkMtaW5kZW50aW5nPFRhYj46c2V0XCBjaW4hCQkmQy1FaW5y/GNrdW5nXCBlaW4tXCB1bmRcIGF1c3NjaGFsdGVuPFRhYj46c2V0XCBjaW4hCgoiIG90aGVyIG9wdGlvbnMKbWVudXRyYW5zICZTaGlmdHdpZHRoCQkJCQkmU2NoaWViZXdlaXRlCm1lbnV0cmFucyBTb2Z0XCAmVGFic3RvcAkJCQkmVGFidWxhdG9yCm1lbnV0cmFucyBUZSZ4dFwgV2lkdGhcLlwuXC4JCQkJVGUmeHRicmVpdGVcLlwuXC4KbWVudXRyYW5zICZGaWxlXCBGb3JtYXRcLlwuXC4JCQkJJkRhdGVpZm9ybWF0XC5cLlwuCm1lbnV0cmFucyBDJm9sb3JcIFNjaGVtZQkJCQlGJmFyYnNjaGVtYVwuXC5cLgptZW51dHJhbnMgJktleW1hcAkJCQkJJlRhc3RhdHVyYmVsZWd1bmcKIiB9fX0gRURJVCAvIEVESVRJRVJFTgoKIiB7e3sgIFRPT0xTIC8gV0VSS1pFVUdFCmlmIGhhcygic3BlbGwiKQogICAgbWVudXRyYW5zICZTcGVsbGluZwkJCQkJJlJlY2h0c2NocmVpYnVuZwogICAgbWVudXRyYW5zICZTcGVsbFwgQ2hlY2tcIE9uCQkJCSZSZWNodHNjaHJlaWJwcvxmdW5nXCBhbgogICAgbWVudXRyYW5zIFNwZWxsXCBDaGVja1wgJk9mZgkJCVJlY2h0c2NocmVpYnBy/GZ1bmdcICZhdXMKICAgIG1lbnV0cmFucyBUb1wgJk5leHRcIGVycm9yPFRhYj5dcwkJCVp1bVwgJm7kY2hzdGVuXCBGZWhsZXI8VGFiPl1zCiAgICBtZW51dHJhbnMgVG9cICZQcmV2aW91c1wgZXJyb3I8VGFiPltzCQladW1cICZ2b3JoZXJpZ2VuXCBGZWhsZXI8VGFiPltzCiAgICBtZW51dHJhbnMgU3VnZ2VzdFwgJkNvcnJlY3Rpb25zPFRhYj56PQkJJktvcnJla3R1cnZvcnNjaGzkZ2U8VGFiPno9CiAgICBtZW51dHJhbnMgJlJlcGVhdFwgY29ycmVjdGlvbjxUYWI+OnNwZWxscmVwYWxsCSZXaWVkZXJob2xlXCBLb3JyZWt0dXI8VGFiPjpzcGVsbHJlcGFsbAogICAgbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW4iCQkJVmVyd2VuZGVcIFf2cnRlcmJ1Y2hcICJlbiIKICAgIG1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX2F1IgkJVmVyd2VuZGVcIFf2cnRlcmJ1Y2hcICJlbl9hdSIKICAgIG1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX2NhIgkJVmVyd2VuZGVcIFf2cnRlcmJ1Y2hcICJlbl9jYSIKICAgIG1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX2diIgkJVmVyd2VuZGVcIFf2cnRlcmJ1Y2hcICJlbl9nYiIKICAgIG1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX256IgkJVmVyd2VuZGVcIFf2cnRlcmJ1Y2hcICJlbl9ueiIKICAgIG1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX3VzIgkJVmVyd2VuZGVcIFf2cnRlcmJ1Y2hcICJlbl91cyIKICAgIG1lbnV0cmFucyBTZXRcIGxhbmd1YWdlXCB0b1wgImRlIgkJCVZlcndlbmRlXCBX9nJ0ZXJidWNoXCAiZGUiCiAgICBtZW51dHJhbnMgJkZpbmRcIE1vcmVcIExhbmd1YWdlcwkJCSZTdWNoZVwgbmFjaFwgV/ZydGVyYvxjaGVybgplbmRpZgppZiBoYXMoImZvbGRpbmciKQogIG1lbnV0cmFucyAmRm9sZGluZwkJCQkJRmEmbHR1bmcKICAiIG9wZW4gY2xvc2UgZm9sZHMKICBtZW51dHJhbnMgJkVuYWJsZS9EaXNhYmxlXCBmb2xkczxUYWI+emkJCSZFaW4tXCB1bmRcIGF1c3NjaGFsdGVuPFRhYj56aQogIG1lbnV0cmFucyAmVmlld1wgQ3Vyc29yXCBMaW5lPFRhYj56dgkJCU1vbWVudGFuZVwgJlBvc2l0aW9uXCBhbnplaWdlbjxUYWI+enYKICBtZW51dHJhbnMgVmllJndcIEN1cnNvclwgTGluZVwgb25seTxUYWI+ek16eAkJJkF1c3NjaGxpZd9saWNoXCBtb21lbnRhbmVcIFBvc2l0aW9uXCBhbnplaWdlbjxUYWI+ek16eAogIG1lbnV0cmFucyBDJmxvc2VcIG1vcmVcIGZvbGRzPFRhYj56bQkJCUZhbHR1bmdlblwgJnNjaGxpZd9lbjxUYWI+em0KICBtZW51dHJhbnMgJkNsb3NlXCBhbGxcIGZvbGRzPFRhYj56TQkJCUFsbGVcIEZhbHR1bmdlblwgc2NobGll32VuPFRhYj56TQogIG1lbnV0cmFucyBPJnBlblwgbW9yZVwgZm9sZHM8VGFiPnpyCQkJRmFsdHVuZ2VuXCAm9mZmbmVuPFRhYj56cgogIG1lbnV0cmFucyAmT3BlblwgYWxsXCBmb2xkczxUYWI+elIJCQlBbGxlXCBGYWx0dW5nZW5cIPZmZm5lbjxUYWI+elIKICAiIGZvbGQgbWV0aG9kCiAgbWVudXRyYW5zIEZvbGRcIE1ldCZob2QJCQkJRmFsdHVuZ3MtJk1ldGhvZGUKICBtZW51dHJhbnMgTSZhbnVhbAkJCQkJJk1hbnVlbGwKICBtZW51dHJhbnMgSSZuZGVudAkJCQkJJkVpbnL8Y2t1bmdlbgogIG1lbnV0cmFucyBFJnhwcmVzc2lvbgkJCQkJJkF1c2RydWNrCiAgbWVudXRyYW5zIFMmeW50YXgJCQkJCSZTeW50YXgKICBtZW51dHJhbnMgJkRpZmYJCQkJCSZEaWZmZXJlbnoKICBtZW51dHJhbnMgTWEmcmtlcgkJCQkJTWEmcmtpZXJ1bmdlbgogICIgY3JlYXRlIGFuZCBkZWxldGUgZm9sZHMKICAiIFRPRE8gYWNjZWxlcmF0b3JzCiAgbWVudXRyYW5zIENyZWF0ZVwgJkZvbGQ8VGFiPnpmCQkJRmFsdHVuZ1wgZXJ6ZXVnZW48VGFiPnpmCiAgbWVudXRyYW5zICZEZWxldGVcIEZvbGQ8VGFiPnpkCQkJRmFsdHVuZ1wgbPZzY2hlbjxUYWI+emQKICBtZW51dHJhbnMgRGVsZXRlXCAmQWxsXCBGb2xkczxUYWI+ekQJCQlBbGxlXCBGYWx0dW5nZW5cIGz2c2NoZW48VGFiPnpECiAgIiBtb3ZpbmcgYXJvdW5kIGluIGZvbGRzCiAgbWVudXRyYW5zIEZvbGRcIGNvbHVtblwgJndpZHRoCQkJJkJyZWl0ZVwgZGVyXCBGYWx0dW5nc3NwYWx0ZQplbmRpZiAgIiBoYXMgZm9sZGluZwoKaWYgaGFzKCJkaWZmIikKICBtZW51dHJhbnMgJkRpZmYJCQkJCSZEaWZmZXJlbnoKICBtZW51dHJhbnMgJlVwZGF0ZQkJCQkJJkFrdHVhbGlzaWVyZW4KICBtZW51dHJhbnMgJkdldFwgQmxvY2sJCQkJCUJsb2NrXCAmZWluZvxnZW4KICBtZW51dHJhbnMgJlB1dFwgQmxvY2sJCQkJCUJsb2NrXCAm/GJlcnRyYWdlbgplbmRpZgoKbWVudXRyYW5zICZUb29scwkJCQkJJldlcmt6ZXVnZQptZW51dHJhbnMgJkp1bXBcIHRvXCB0aGlzXCB0YWc8VGFiPmdeXQkJCSZTcHJpbmdlXCB6dW1cIFRhZzxUYWI+Z15dCm1lbnV0cmFucyBKdW1wXCAmYmFjazxUYWI+XlQJCQkJU3ByaW5nZVwgJnp1cvxjazxUYWI+XlQKbWVudXRyYW5zIEJ1aWxkXCAmVGFnc1wgRmlsZQkJCQlFcnN0ZWxsZVwgJlRhZy1EYXRlaQptZW51dHJhbnMgJk1ha2U8VGFiPjptYWtlCQkJCSZFcnN0ZWxsZW48VGFiPjptYWtlCm1lbnV0cmFucyAmTGlzdFwgRXJyb3JzPFRhYj46Y2wJCQkJJkZlaGxlclwgYW56ZWlnZW48VGFiPjpjbAptZW51dHJhbnMgTCZpc3RcIE1lc3NhZ2VzPFRhYj46Y2whCQkJJkhpbndlaXNlXCBhbnplaWdlbjxUYWI+OmNsIQptZW51dHJhbnMgJk5leHRcIEVycm9yPFRhYj46Y24JCQkJWnVtXCAmbuRjaHN0ZW5cIEZlaGxlcjxUYWI+OmNuCm1lbnV0cmFucyAmUHJldmlvdXNcIEVycm9yPFRhYj46Y3AJCQladW1cICZ2b3JoZXJpZ2VuXCBGZWhsZXI8VGFiPjpjcAptZW51dHJhbnMgJk9sZGVyXCBMaXN0PFRhYj46Y29sZAkJCSbEbHRlcmVcIExpc3RlPFRhYj46Y29sZAptZW51dHJhbnMgTiZld2VyXCBMaXN0PFRhYj46Y25ldwkJCSZOZXVlcmVcIExpc3RlPFRhYj46Y25ldwoKbWVudXRyYW5zIEVycm9yXCAmV2luZG93CQkJCUZlaCZsZXItRmVuc3RlcgptZW51dHJhbnMgU2UmdFwgQ29tcGlsZXIJCQkJJkNvbXBpbGVyCm1lbnV0cmFucyBTZSZUXCBDb21waWxlcgkJCQkmQ29tcGlsZXIKbWVudXRyYW5zICZVcGRhdGU8VGFiPjpjd2luCQkJCSZBa3R1YWxpc2llcmVuPFRhYj46Y3dpbgptZW51dHJhbnMgJk9wZW48VGFiPjpjb3BlbgkJCQkm1mZmbmVuPFRhYj46Y29wZW4KbWVudXRyYW5zICZDbG9zZTxUYWI+OmNjbG9zZQkJCQkmU2NobGll32VuPFRhYj46Y2Nsb3NlCgptZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIRVg8VGFiPjolIXh4ZAkJCU5hY2hcIEhFJlhcIGtvbnZlcnRpZXJlbjxUYWI+OiUheHhkCm1lbnV0cmFucyBDb252ZSZydFwgYmFjazxUYWI+OiUheHhkXCAtcgkJCVp1cvxja1wga29udmVydGllcmVuPFRhYj46JSF4eGRcIC1yCiIgfX19ICBUT09MUyAvIFdFUktaRVVHRQoKIiB7e3sgU1lOVEFYIC8gU1lOVEFYCm1lbnV0cmFucyAmU3ludGF4CQkJCSZTeW50YXgKbWVudXRyYW5zICZTaG93XCBmaWxldHlwZXNcIGluXCBtZW51CQlEYXRlaXR5cGVuXCBhbiZ6ZWlnZW4KbWVudXRyYW5zIFNldFwgJyZzeW50YXgnXCBvbmx5CQkJTnVyXCAnJnN5bnRheCdcIHNldHplbgptZW51dHJhbnMgU2V0XCAnJmZpbGV0eXBlJ1wgdG9vCQkJQXVjaFwgJyZmaWxldHlwZSdcIHNldHplbgptZW51dHJhbnMgJk9mZgkJCQkJJkF1cwptZW51dHJhbnMgJk1hbnVhbAkJCQkmTWFudWVsbAptZW51dHJhbnMgQSZ1dG9tYXRpYwkJCQlBJnV0b21hdGlzY2gKbWVudXRyYW5zIG9uL29mZlwgZm9yXCAmVGhpc1wgZmlsZQkJQW4vQXVzIChkaWVzZVwgJkRhdGVpKQptZW51dHJhbnMgQ28mbG9yXCB0ZXN0CQkJCVRlc3RcIGRlclwgRmFyYmVuCm1lbnV0cmFucyAmSGlnaGxpZ2h0XCB0ZXN0CQkJVGVzdFwgZGVyXCBVbiZ0ZXJzdHJlaWNodW5nZW4KbWVudXRyYW5zICZDb252ZXJ0XCB0b1wgSFRNTAkJCUtvbnZlcnRpZXJlblwgbmFjaFwgJkhUTUwKIiB9fX0gU1lOVEFYIC8gU1lOVEFYCgoiIHt7eyBCVUZGRVJTIC8gUFVGRkVSCm1lbnV0cmFucyAmQnVmZmVycwkJCQkJJlB1ZmZlcgptZW51dHJhbnMgJlJlZnJlc2hcIG1lbnUJCQkJJkFrdHVhbGlzaWVyZW4KbWVudXRyYW5zIERlbGV0ZQkJCQkJTPZzY2hlbgptZW51dHJhbnMgJkFsdGVybmF0ZQkJCQkJJldlY2hzZWxuCm1lbnV0cmFucyAmTmV4dAkJCQkJCSZO5GNoc3RlcgptZW51dHJhbnMgJlByZXZpb3VzCQkJCQkmVm9yaGVyaWdlcgoiIH19fSBCVUZGRVJTIC8gUFVGRkVSCgoiIHt7eyBXSU5ET1cgLyBBTlNJQ0hUCm1lbnV0cmFucyAmV2luZG93CQkJJkFuc2ljaHQKbWVudXRyYW5zICZOZXc8VGFiPl5XbgkJCSZOZXU8VGFiPl5XbgptZW51dHJhbnMgUyZwbGl0PFRhYj5eV3MJCUF1ZnMmcGFsdGVuPFRhYj5eV3MKbWVudXRyYW5zIFNwbGl0XCAmVmVydGljYWxseTxUYWI+Xld2CSZWZXJ0aWthbFwgYXVmc3BhbHRlbjxUYWI+Xld2Cm1lbnV0cmFucyBTcGxpdFwgRmlsZVwgRSZ4cGxvcmVyCVZlciZ6ZWljaG5pcwptZW51dHJhbnMgU3AmbGl0XCBUb1wgIzxUYWI+XldeXglBdWZzcGEmbHRlblwgaW5cICM8VGFiPl5XXl4KbWVudXRyYW5zICZDbG9zZTxUYWI+XldjCQkmU2NobGll32VuPFRhYj5eV2MKbWVudXRyYW5zIENsb3NlXCAmT3RoZXIocyk8VGFiPl5XbwkmQW5kZXJlXCBzY2hsaWXfZW48VGFiPl5XbwptZW51dHJhbnMgTmUmeHQ8VGFiPl5XdwkJCU4m5GNoc3RlczxUYWI+Xld3Cm1lbnV0cmFucyBQJnJldmlvdXM8VGFiPl5XVwkJVm9yJmhlcmlnZXM8VGFiPl5XVwptZW51dHJhbnMgJkVxdWFsXCBTaXplPFRhYj5eVz0JCSZHbGVpY2hlXCBI9mhlbjxUYWI+Xlc9Cm1lbnV0cmFucyAmTWF4XCBIZWlnaHQ8VGFiPl5XXwkJJk1heGltYWxlXCBI9mhlPFRhYj5eV18KbWVudXRyYW5zIE0maW5cIEhlaWdodDxUYWI+XlcxXwkJTSZpbmltYWxlXCBI9mhlPFRhYj5eVzFfCm1lbnV0cmFucyBNYXhcICZXaWR0aDxUYWI+XldcfAkJTWF4aW1hbGVcICZCcmVpdGU8VGFiPl5XXHwKbWVudXRyYW5zIE1pblwgV2lkdCZoPFRhYj5eVzFcfAkJTWluaW1hbGVcIEJyZWkmdGU8VGFiPl5XMVx8Cm1lbnV0cmFucyBNb3ZlXCAmVG8JCQlWJmVyc2NoaWViZVwgbmFjaAptZW51dHJhbnMgJlRvcDxUYWI+XldLCQkJJk9iZW48VGFiPl5XSwptZW51dHJhbnMgJkJvdHRvbTxUYWI+XldKCQkmVW50ZW48VGFiPl5XSgptZW51dHJhbnMgJkxlZnRcIHNpZGU8VGFiPl5XSAkJJkxpbmtzPFRhYj5eV0gKbWVudXRyYW5zICZSaWdodFwgc2lkZTxUYWI+XldMCQkmUmVjaHRzPFRhYj5eV0wKbWVudXRyYW5zIFJvdGF0ZVwgJlVwPFRhYj5eV1IJCVJvdGllcmVcIG5hY2hcICZvYmVuPFRhYj5eV1IKbWVudXRyYW5zIFJvdGF0ZVwgJkRvd248VGFiPl5XcgkJUm90aWVyZVwgbmFjaFwgJnVudGVuPFRhYj5eV3IKbWVudXRyYW5zIFNlbGVjdFwgRm8mbnRcLlwuXC4JCUF1c3dhaGxcIGRlclwgU2NocmlmdGFydFwuXC5cLgoiIH19fSBXSU5ET1cgLyBBTlNJQ0hUCgoiIHt7eyBIRUxQIC8gSElMRkUKbWVudXRyYW5zICZIZWxwCQkJJkhpbGZlCm1lbnV0cmFucyAmT3ZlcnZpZXc8VGFiPjxGMT4JJtxiZXJibGljazxUYWI+PEYxPgptZW51dHJhbnMgJlVzZXJcIE1hbnVhbAkJJkhhbmRidWNoCm1lbnV0cmFucyAmSG93LXRvXCBsaW5rcwlIb3ctdG9cICZJbmRleAptZW51dHJhbnMgJkdVSQkJCSZHcmFwaGlzY2hlXCBPYmVyZmzkY2hlCm1lbnV0cmFucyAmQ3JlZGl0cwkJJkF1dG9yZW4KbWVudXRyYW5zIENvJnB5aW5nCQkmVXJoZWJlcnJlY2h0Cm1lbnV0cmFucyBPJnJwaGFucwkJJldhaXNlbgptZW51dHJhbnMgJkZpbmRcLlwuXC4JCSZTdWNoZW5cLlwuXC4JIiBjb25mbGljdHMgd2l0aCBFZGl0LkZpbmQKbWVudXRyYW5zICZWZXJzaW9uCQkmVmVyc2lvbgptZW51dHJhbnMgJkFib3V0CQkmVGl0ZWxzZWl0ZQoiIH19fSBIRUxQIC8gSElMRkUKCiIge3t7IFBPUFVQCm1lbnV0cmFucyAmVW5kbwkJCQkmWnVy/GNrCm1lbnV0cmFucyBDdSZ0CQkJCUF1cyZzY2huZWlkZW4KbWVudXRyYW5zICZDb3B5CQkJCSZLb3BpZXJlbgptZW51dHJhbnMgJlBhc3RlCQkJJkVpbmb8Z2VuCm1lbnV0cmFucyAmRGVsZXRlCQkJJkz2c2NoZW4KbWVudXRyYW5zIFNlbGVjdFwgQmxvY2t3aXNlCQlBdXN3YWhsXCBibG9ja2FydGlnCm1lbnV0cmFucyBTZWxlY3RcICZXb3JkCQkJQXVzd2FobFwgZGVzXCAmV29ydGVzCm1lbnV0cmFucyBTZWxlY3RcICZTZW50ZW5jZQkJQXVzd2FobFwgZGVzXCBTYSZ0emVzCm1lbnV0cmFucyBTZWxlY3RcIFBhJnJhZ3JhcGgJCUF1c3dhaGxcIGRlc1wgQWJzYXR6ZXMKbWVudXRyYW5zIFNlbGVjdFwgJkxpbmUJCQlBdXN3YWhsXCBkZXJcICZaZWlsZQptZW51dHJhbnMgU2VsZWN0XCAmQmxvY2sJCUF1c3dhaGxcIGRlc1wgJkJsb2NrcwptZW51dHJhbnMgU2VsZWN0XCAmQWxsCQkJJkFsbGVzXCBBdXN35GhsZW4KIiB9fX0gUE9QVVAKCiIge3t7IFRPT0xCQVIKaWYgaGFzKCJ0b29sYmFyIikKICBpZiBleGlzdHMoIipEb190b29sYmFyX3RtZW51IikKICAgIGRlbGZ1biBEb190b29sYmFyX3RtZW51CiAgZW5kaWYKICBmdW4gRG9fdG9vbGJhcl90bWVudSgpCiAgICB0bWVudSBUb29sQmFyLk9wZW4JCURhdGVpIPZmZm5lbgogICAgdG1lbnUgVG9vbEJhci5TYXZlCQlEYXRlaSBzcGVpY2hlcm4KICAgIHRtZW51IFRvb2xCYXIuU2F2ZUFsbAlBbGxlIERhdGVpZW4gc3BlaWNoZXJuCiAgICB0bWVudSBUb29sQmFyLlByaW50CQlEcnVja2VuCiAgICB0bWVudSBUb29sQmFyLlVuZG8JCVp1cvxjawogICAgdG1lbnUgVG9vbEJhci5SZWRvCQlXaWVkZXJob2xlbgogICAgdG1lbnUgVG9vbEJhci5DdXQJCUF1c3NjaG5laWRlbgogICAgdG1lbnUgVG9vbEJhci5Db3B5CQlLb3BpZXJlbgogICAgdG1lbnUgVG9vbEJhci5QYXN0ZQkJRWluZvxnZW4KICAgIHRtZW51IFRvb2xCYXIuRmluZAkJU3VjaGVuLi4uCiAgICB0bWVudSBUb29sQmFyLkZpbmROZXh0CVN1Y2hlIG7kY2hzdGVuCiAgICB0bWVudSBUb29sQmFyLkZpbmRQcmV2CVN1Y2hlIHZvcmhlcmlnZW4KICAgIHRtZW51IFRvb2xCYXIuUmVwbGFjZQlTdWNoZW4gdW5kIEVyc2V0emVuLi4uCiAgICBpZiAwCSIgZGlzYWJsZWQ7IFRoZXNlIGFyZSBpbiB0aGUgV2luZG93cyBtZW51CiAgICAgIHRtZW51IFRvb2xCYXIuTmV3CQlOZXVlIEFuc2ljaHQKICAgICAgdG1lbnUgVG9vbEJhci5XaW5TcGxpdAlBbnNpY2h0IGF1ZnNwYWx0ZW4KICAgICAgdG1lbnUgVG9vbEJhci5XaW5NYXgJQW5zaWNodCBtYXhpbWFsZSBI9mhlbgogICAgICB0bWVudSBUb29sQmFyLldpbk1pbglBbnNpY2h0IG1pbmltYWxlIEj2aGVuCiAgICAgIHRtZW51IFRvb2xCYXIuV2luQ2xvc2UJQW5zaWNodCBzY2hsaWXfZW4KICAgIGVuZGlmCiAgICB0bWVudSBUb29sQmFyLkxvYWRTZXNuCVNpdHp1bmcgbGFkZW4KICAgIHRtZW51IFRvb2xCYXIuU2F2ZVNlc24JU2l0enVuZyBzcGVpY2hlcm4KICAgIHRtZW51IFRvb2xCYXIuUnVuU2NyaXB0CVZpbS1Ta3JpcHQgYXVzZvxocmVuCiAgICB0bWVudSBUb29sQmFyLk1ha2UJCUVyc3RlbGxlbgogICAgdG1lbnUgVG9vbEJhci5TaGVsbAkJU2hlbGwgc3RhcnRlbgogICAgdG1lbnUgVG9vbEJhci5SdW5DdGFncwlFcnN0ZWxsZSBUYWctRGF0ZWkKICAgIHRtZW51IFRvb2xCYXIuVGFnSnVtcAlTcHJpbmdlIHp1bSBUYWcKICAgIHRtZW51IFRvb2xCYXIuSGVscAkJSGlsZmUhCiAgICB0bWVudSBUb29sQmFyLkZpbmRIZWxwCUhpbGZlIGR1cmNoc3VjaGVuLi4uCiAgZW5kZnVuCmVuZGlmCiIgfX19IFRPT0xCQVIKCiIge3t7IERJQUxPRyBURVhUUwpsZXQgZzptZW51dHJhbnNfbm9fZmlsZSA9ICJbS2VpbmUgRGF0ZWldIgpsZXQgZzptZW51dHJhbnNfaGVscF9kaWFsb2cgPSAiR2ViZW4gU2llIGVpbmVuIEJlZmVobCBvZGVyIGVpbiBXb3J0IGVpbiwgZvxyIGRhcyBTaWUgSGlsZmUgYmVu9nRpZ2VuOlxuXG5WZXJ3ZW5kZW4gU2llIGlfIGb8ciBFaW5nYWJlICgnaW5wdXQnKSBCZWZlaGxlICh6LkIuOiBpX0NUUkwtWClcblZlcndlbmRlbiBTaWUgY18gZvxyIEJlZmVobHMtWmVpbGVuICgnY29tbWFuZC1saW5lJykgQmVmZWhsZSAoei5CLjogY188RGVsPilcblZlcndlbmRlbiBTaWUgJyBm/HIgT3B0aW9ucy1OYW1lbiAoei5CLjogJ3NoaWZ0d2lkdGgnKSIKbGV0IGc6bWVudXRyYW5zX3BhdGhfZGlhbG9nID0gIkdlYmVuIFNpZSBTdWNoLVBmYWRlIGb8ciBEYXRlaWVuIGVpbi5cblRyZW5uZW4gU2llIGRpZSBWZXJ6ZWljaG5pcy1OYW1lbiBkdXJjaCBLb21tYXRhLiIKbGV0IGc6bWVudXRyYW5zX3RhZ3NfZGlhbG9nID0gIkdlYmVuIFNpZSBkaWUgTmFtZW4gZGVyICd0YWcnLURhdGVpZW4gZWluLlxuVHJlbm5lbiBTaWUgZGllIE5hbWVuIGR1cmNoIEtvbW1hdGEuIgpsZXQgZzptZW51dHJhbnNfdGV4dHdpZHRoX2RpYWxvZyA9ICJHZWJlbiBTaWUgZWluZSBuZXVlIFRleHQtQnJlaXRlIGVpbiAob2RlciAwLCB1bSBkaWUgRm9ybWF0aWVydW5nIGFienVzY2hhbHRlbikiCmxldCBnOm1lbnV0cmFuc19maWxlZm9ybWF0X2RpYWxvZyA9ICJX5GhsZW4gU2llIGVpbiBEYXRlaS1Gb3JtYXQgYXVzIgoiIH19fQo=