ZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2ZvcnRoLnZpbSBiL3J1bnRpbWUvc3ludGF4L2ZvcnRoLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTczN2QzCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zeW50YXgvZm9ydGgudmltCkBAIC0wLDAgKzEsMjM1IEBACisiIFZpbSBzeW50YXggZmlsZQorIiBMYW5ndWFnZTogICAgRk9SVEgKKyIgTWFpbnRhaW5lcjogIENocmlzdGlhbiBWLiBKLiBCcvxzc293IDxjdmpiQGN2amIuZGU+CisiIExhc3QgQ2hhbmdlOiBTb24gMjIgSnVuIDIwMDMgMjA6NDI6NTUgQ0VTVAorIiBGaWxlbmFtZXM6ICAgKi5mcywqLmZ0CisiIFVSTDoJICAgICAgIGh0dHA6Ly93d3cuY3ZqYi5kZS9jb21wL3ZpbS9mb3J0aC52aW0KKworIiAkSWQkCisKKyIgVGhlIGxpc3Qgb2Yga2V5d29yZHMgaXMgaW5jb21wbGV0ZSwgY29tcGFyZWQgd2l0aCB0aGUgb2ZmaWNhbCBBTlMKKyIgd29yZGxpc3QuIElmIHlvdSB1c2UgdGhpcyBsYW5ndWFnZSwgcGxlYXNlIGltcHJvdmUgaXQsIGFuZCBzZW5kIG1lCisiIHRoZSBwYXRjaGVzLgorCisiIE1hbnkgVGhhbmtzIHRvLi4uCisiCisiIDIwMDMtMDUtMTA6CisiIEFuZHJldyBHYXVsIDxhbmRyZXcgYXQgZ2F1bC5vcmc+IHNlbmQgbWUgYSBwYXRjaCBmb3IKKyIgZm9ydGhPcGVyYXRvcnMuCisiCisiIDIwMDMtMDQtMDM6CisiIFJvbiBBYXJvbiA8cm9uIGF0IHJvbndhcmUub3JnPiBtYWRlIHVwZGF0ZXMgZm9yIGFuCisiIGltcHJvdmVkIFdpbjMyRm9ydGggc3VwcG9ydC4KKyIKKyIgMjAwMi0wNC0yMjoKKyIgQ2hhcmxlcyBTaGF0dHVjayA8Y2hhcmxleSBhdCBmb3J0aC5vcmc+IGhlbHBlZCBtZSB0byBzZXR0bGUgdXAgd2l0aCB0aGUKKyIgYmluYXJ5IGFuZCBoZXggbnVtYmVyIGhpZ2hsaWdodGluZy4KKyIKKyIgMjAwMi0wNC0yMDoKKyIgQ2hhcmxlcyBTaGF0dHVjayA8Y2hhcmxleSBhdCBmb3J0aC5vcmc+IHNlbmQgbWUgc29tZSBjb2RlIGZvciBjb3JyZWN0bHkKKyIgaGlnaGxpZ2h0aW5nIGNoYXIgYW5kIFtjaGFyXSBmb2xsb3dlZCBieSBhbiBvcGVuaW5nIHBhcmVuLiBIZSBhbHNvIGFkZGVkCisiIHNvbWUgd29yZHMgZm9yIG9wZXJhdG9ycywgY29uZGl0aW9uYWxzLCBhbmQgZGVmaW5pdGlvbnM7IGFuZCBhZGRlZCB0aGUKKyIgaGlnaGxpZ2h0aW5nIGZvciBzIiBhbmQgYyIuCisiCisiIDIwMDAtMDMtMjg6CisiIEpvaG4gUHJvdmlkZW56YSA8am9obiBhdCBwcm9iby5jb20+IG1hZGUgaW1wcm92ZW1lbnRzIGZvciB0aGUKKyIgaGlnaGxpZ2h0aW5nIG9mIHN0cmluZ3MsIGFuZCBhZGRlZCB0aGUgY29kZSBmb3IgaGlnaGxpZ2h0aW5nIGhleCBudW1iZXJzLgorIgorCisKKyIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCisiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCitpZiB2ZXJzaW9uIDwgNjAwCisgICAgc3ludGF4IGNsZWFyCitlbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgICBmaW5pc2gKK2VuZGlmCisKKyIgU3luY2hyb25pemF0aW9uIG1ldGhvZAorc3luIHN5bmMgY2NvbW1lbnQgbWF4bGluZXM9MjAwCisKKyIgSSB1c2UgZ2ZvcnRoLCBzbyBJIHNldCB0aGlzIHRvIGNhc2UgaWdub3JlCitzeW4gY2FzZSBpZ25vcmUKKworIiBTb21lIHNwZWNpYWwsIG5vbi1GT1JUSCBrZXl3b3Jkcworc3luIGtleXdvcmQgZm9ydGhUb2RvIGNvbnRhaW5lZCBUT0RPIEZJWE1FIFhYWAorc3luIG1hdGNoIGZvcnRoVG9kbyBjb250YWluZWQgJ0NvcHlyaWdodFwoXHMoW0NjXSlcKVw9XChcc1swLTldXHsyLDR9XClcPScKKworIiBDaGFyYWN0ZXJzIGFsbG93ZWQgaW4ga2V5d29yZHMKKyIgSSBkb24ndCBrbm93IGlmIDEyOC0yNTUgYXJlIGFsbG93ZWQgaW4gQU5TLUZPUkhUCitpZiB2ZXJzaW9uID49IDYwMAorICAgIHNldGxvY2FsIGlza2V5d29yZD0hLEAsMzMtMzUsJSwkLDM4LTY0LEEtWiw5MS05NixhLXosMTIzLTEyNiwxMjgtMjU1CitlbHNlCisgICAgc2V0IGlza2V5d29yZD0hLEAsMzMtMzUsJSwkLDM4LTY0LEEtWiw5MS05NixhLXosMTIzLTEyNiwxMjgtMjU1CitlbmRpZgorCisKKyIgS2V5d29yZHMKKworIiBiYXNpYyBtYXRoZW1hdGljYWwgYW5kIGxvZ2ljYWwgb3BlcmF0b3JzCitzeW4ga2V5d29yZCBmb3J0aE9wZXJhdG9ycyArIC0gKiAvIE1PRCAvTU9EIE5FR0FURSBBQlMgTUlOIE1BWAorc3luIGtleXdvcmQgZm9ydGhPcGVyYXRvcnMgQU5EIE9SIFhPUiBOT1QgSU5WRVJUIDIqIDIvIDErIDEtIDIrIDItIDgqCitzeW4ga2V5d29yZCBmb3J0aE9wZXJhdG9ycyBNKyAqLyAqL01PRCBNKiBVTSogTSovIFVNL01PRCBGTS9NT0QgU00vUkVNCitzeW4ga2V5d29yZCBmb3J0aE9wZXJhdG9ycyBEKyBELSBETkVHQVRFIERBQlMgRE1JTiBETUFYCitzeW4ga2V5d29yZCBmb3J0aE9wZXJhdG9ycyBGKyBGLSBGKiBGLyBGTkVHQVRFIEZBQlMgRk1BWCBGTUlOIEZMT09SIEZST1VORAorc3luIGtleXdvcmQgZm9ydGhPcGVyYXRvcnMgRioqIEZTUVJUIEZFWFAgRkVYUE0xIEZMTiBGTE5QMSBGTE9HIEZBTE9HIEZTSU4KK3N5biBrZXl3b3JkIGZvcnRoT3BlcmF0b3JzIEZDT1MgRlNJTkNPUyBGVEFOIEZBU0lOIEZBQ09TIEZBVEFOIEZBVEFOMiBGU0lOSAorc3luIGtleXdvcmQgZm9ydGhPcGVyYXRvcnMgRkNPU0ggRlRBTkggRkFTSU5IIEZBQ09TSCBGQVRBTkgKK3N5biBrZXl3b3JkIGZvcnRoT3BlcmF0b3JzIDA8IDA8PSAwPD4gMD0gMD4gMD49IDwgPD0gPD4gPSA+ID49CitzeW4ga2V5d29yZCBmb3J0aE9wZXJhdG9ycyA/TkVHQVRFID9ETkVHQVRFCisKKyIgc3RhY2sgbWFuaXB1bGF0aW9ucworc3luIGtleXdvcmQgZm9ydGhTdGFjayBEUk9QIE5JUCBEVVAgT1ZFUiBUVUNLIFNXQVAgUk9UIC1ST1QgP0RVUCBQSUNLIFJPTEwKK3N5biBrZXl3b3JkIGZvcnRoU3RhY2sgMkRST1AgMk5JUCAyRFVQIDJPVkVSIDJUVUNLIDJTV0FQIDJST1QKK3N5biBrZXl3b3JkIGZvcnRoU3RhY2sgM0RVUCA0RFVQCitzeW4ga2V5d29yZCBmb3J0aFJTdGFjayA+UiBSPiBSQCBSRFJPUCAyPlIgMlI+IDJSQCAyUkRST1AKK3N5biBrZXl3b3JkIGZvcnRoRlN0YWNrIEZEUk9QIEZOSVAgRkRVUCBGT1ZFUiBGVFVDSyBGU1dBUCBGUk9UCisKKyIgc3RhY2sgcG9pbnRlciBtYW5pcHVsYXRpb25zCitzeW4ga2V5d29yZCBmb3J0aFNQIFNQQCBTUCEgRlBAIEZQISBSUEAgUlAhIExQQCBMUCEKKworIiBhZGRyZXNzIG9wZXJhdGlvbnMKK3N5biBrZXl3b3JkIGZvcnRoTWVtb3J5IEAgISArISBDQCBDISAyQCAyISBGQCBGISBTRkAgU0YhIERGQCBERiEKK3N5biBrZXl3b3JkIGZvcnRoQWRyQXJpdGggQ0hBUlMgQ0hBUisgQ0VMTFMgQ0VMTCsgQ0VMTCBBTElHTiBBTElHTkVEIEZMT0FUUworc3luIGtleXdvcmQgZm9ydGhBZHJBcml0aCBGTE9BVCsgRkxPQVQgRkFMSUdOIEZBTElHTkVEIFNGTE9BVFMgU0ZMT0FUKworc3luIGtleXdvcmQgZm9ydGhBZHJBcml0aCBTRkFMSUdOIFNGQUxJR05FRCBERkxPQVRTIERGTE9BVCsgREZBTElHTiBERkFMSUdORUQKK3N5biBrZXl3b3JkIGZvcnRoQWRyQXJpdGggTUFYQUxJR04gTUFYQUxJR05FRCBDRkFMSUdOIENGQUxJR05FRAorc3luIGtleXdvcmQgZm9ydGhBZHJBcml0aCBBRERSRVNTLVVOSVQtQklUUyBBTExPVCBBTExPQ0FURSBIRVJFCitzeW4ga2V5d29yZCBmb3J0aE1lbUJsa3MgTU9WRSBFUkFTRSBDTU9WRSBDTU9WRT4gRklMTCBCTEFOSworCisiIGNvbmRpdGlvbmFscworc3luIGtleXdvcmQgZm9ydGhDb25kIElGIEVMU0UgRU5ESUYgVEhFTiBDQVNFIE9GIEVORE9GIEVORENBU0UgP0RVUC1JRgorc3luIGtleXdvcmQgZm9ydGhDb25kID9EVVAtMD0tSUYgQUhFQUQgQ1MtUElDSyBDUy1ST0xMIENBVENIIFRIUk9XIFdJVEhJTgorCisiIGl0ZXJhdGlvbnMKK3N5biBrZXl3b3JkIGZvcnRoTG9vcCBCRUdJTiBXSElMRSBSRVBFQVQgVU5USUwgQUdBSU4KK3N5biBrZXl3b3JkIGZvcnRoTG9vcCA/RE8gTE9PUCBJIEogSyArRE8gVStETyAtRE8gVS1ETyBETyArTE9PUCAtTE9PUAorc3luIGtleXdvcmQgZm9ydGhMb29wIFVOTE9PUCBMRUFWRSA/TEVBVkUgRVhJVCBET05FIEZPUiBORVhUCisKKyIgbmV3IHdvcmRzCitzeW4gbWF0Y2ggZm9ydGhDb2xvbkRlZiAnXDw6bVw/XHMqW14gXHRdXCtcPicKK3N5biBrZXl3b3JkIGZvcnRoRW5kT2ZDb2xvbkRlZiA7IDtNIDttCitzeW4ga2V5d29yZCBmb3J0aERlZmluZSBDT05TVEFOVCAyQ09OU1RBTlQgRkNPTlNUQU5UIFZBUklBQkxFIDJWQVJJQUJMRSBDUkVBVEUKK3N5biBrZXl3b3JkIGZvcnRoRGVmaW5lIFVTRVIgVkFMVUUgVE8gREVGRVIgSVMgRE9FUz4gSU1NRURJQVRFIENPTVBJTEUtT05MWQorc3luIGtleXdvcmQgZm9ydGhEZWZpbmUgQ09NUElMRSBSRVNUUklDVCBJTlRFUlBSRVQgUE9TVFBPTkUgRVhFQ1VURSBMSVRFUkFMCitzeW4ga2V5d29yZCBmb3J0aERlZmluZSBDUkVBVEUtSU5URVJQUkVUL0NPTVBJTEUgSU5URVJQUkVUQVRJT04+IDxJTlRFUlBSRVRBVElPTgorc3luIGtleXdvcmQgZm9ydGhEZWZpbmUgQ09NUElMQVRJT04+IDxDT01QSUxBVElPTiBdIExBU1RYVCBDT01QJyBQT1NUUE9ORSwKK3N5biBrZXl3b3JkIGZvcnRoRGVmaW5lIEZJTkQtTkFNRSBOQU1FPklOVCBOQU1FP0lOVCBOQU1FPkNPTVAgTkFNRT5TVFJJTkcgU1RBVEUKK3N5biBrZXl3b3JkIGZvcnRoRGVmaW5lIEM7IENWQVJJQUJMRQorc3luIG1hdGNoIGZvcnRoRGVmaW5lICJcW0NPTVAnXSIKK3N5biBtYXRjaCBmb3J0aERlZmluZSAiJyIKK3N5biBtYXRjaCBmb3J0aERlZmluZSAnXDxcW1w+Jworc3luIG1hdGNoIGZvcnRoRGVmaW5lICJcWyddIgorc3luIG1hdGNoIGZvcnRoRGVmaW5lICdcW0NPTVBJTEVdJworc3luIG1hdGNoIGZvcnRoQ2xhc3NEZWYgJ1w8OmNsYXNzXHMqW14gXHRdXCtcPicKK3N5biBtYXRjaCBmb3J0aE9iamVjdERlZiAnXDw6b2JqZWN0XHMqW14gXHRdXCtcPicKK3N5biBrZXl3b3JkIGZvcnRoRW5kT2ZDbGFzc0RlZiAnO2NsYXNzJworc3luIGtleXdvcmQgZm9ydGhFbmRPZk9iamVjdERlZiAnO29iamVjdCcKKworIiBkZWJ1Z2dpbmcKK3N5biBrZXl3b3JkIGZvcnRoRGVidWcgUFJJTlRERUJVR0RBVEEgUFJJTlRERUJVR0xJTkUKK3N5biBtYXRjaCBmb3J0aERlYnVnICJcPFx+XH5cPiIKKworIiBBc3NlbWJsZXIKK3N5biBrZXl3b3JkIGZvcnRoQXNzZW1ibGVyIEFTU0VNQkxFUiBDT0RFIEVORC1DT0RFIDtDT0RFIEZMVVNILUlDQUNIRSBDLAorCisiIGJhc2ljIGNoYXJhY3RlciBvcGVyYXRpb25zCitzeW4ga2V5d29yZCBmb3J0aENoYXJPcHMgKC4pIENIQVIgRVhQRUNUIEZJTkQgV09SRCBUWVBFIC1UUkFJTElORyBFTUlUIEtFWQorc3luIGtleXdvcmQgZm9ydGhDaGFyT3BzIEtFWT8gVElCIENSCisiIHJlY29nbml6ZSAnY2hhciAoJyBvciAnW2NoYXJdICgnIGNvcnJlY3RseSwgc28gaXQgZG9lc24ndAorIiBoaWdobGlnaHQgZXZlcnl0aGluZyBhZnRlciB0aGUgcGFyZW4gYXMgYSBjb21tZW50IHRpbGwgYSBjbG9zaW5nICcpJworc3luIG1hdGNoIGZvcnRoQ2hhck9wcyAnXDxjaGFyXHNcU1xzJworc3luIG1hdGNoIGZvcnRoQ2hhck9wcyAnXDxcW2NoYXJcXVxzXFNccycKK3N5biByZWdpb24gZm9ydGhDaGFyT3BzIHN0YXJ0PSsuIlxzKyBza2lwPStcXCIrIGVuZD0rIisKKworIiBjaGFyLW51bWJlciBjb252ZXJzaW9uCitzeW4ga2V5d29yZCBmb3J0aENvbnZlcnNpb24gPCMgIyAjPiAjUyAoTlVNQkVSKSAoTlVNQkVSPykgQ09OVkVSVCBEPkYgRD5TIERJR0lUCitzeW4ga2V5d29yZCBmb3J0aENvbnZlcnNpb24gRFBMIEY+RCBITEQgSE9MRCBOVU1CRVIgUz5EIFNJR04gPk5VTUJFUgorCisiIGludGVycHRyZXRlciwgd29yZGJvb2ssIGNvbXBpbGVyCitzeW4ga2V5d29yZCBmb3J0aEZvcnRoIChMT0NBTCkgQllFIENPTEQgQUJPUlQgPkJPRFkgPk5FWFQgPkxJTksgQ0ZBID5WSUVXIEhFUkUKK3N5biBrZXl3b3JkIGZvcnRoRm9ydGggUEFEIFdPUkRTIFZJRVcgVklFVz4gTj5MSU5LIE5BTUU+IExJTks+IEw+TkFNRSBGT1JHRVQKK3N5biBrZXl3b3JkIGZvcnRoRm9ydGggQk9EWT4KK3N5biByZWdpb24gZm9ydGhGb3J0aCBzdGFydD0rQUJPUlQiXHMrIHNraXA9K1xcIisgZW5kPSsiKworCisiIHZvY2FidWxhcmllcworc3luIGtleXdvcmQgZm9ydGhWb2NzIE9OTFkgRk9SVEggQUxTTyBST09UIFNFQUwgVk9DUyBPUkRFUiBDT05URVhUICNWT0NTCitzeW4ga2V5d29yZCBmb3J0aFZvY3MgVk9DQUJVTEFSWSBERUZJTklUSU9OUworCisiIG51bWJlcnMKK3N5biBrZXl3b3JkIGZvcnRoTWF0aCBERUNJTUFMIEhFWCBCQVNFCitzeW4gbWF0Y2ggZm9ydGhJbnRlZ2VyICdcPC1cPVswLTkuXSpbMC05Ll1cK1w+JworIiByZWNvZ25pemUgaGV4IGFuZCBiaW5hcnkgbnVtYmVycywgdGhlICckJyBhbmQgJyUnIG5vdGF0aW9uIGlzIGZvciBnZm9ydGgKK3N5biBtYXRjaCBmb3J0aEludGVnZXIgJ1w8XCRceCpceFwrXD4nICIgKjEqIC0tLSBkb250J3QgbWVzcworc3luIG1hdGNoIGZvcnRoSW50ZWdlciAnXDxceCpcZFx4Klw+JyAgIiAqMiogLS0tIHRoaXMgb3JkZXIhCitzeW4gbWF0Y2ggZm9ydGhJbnRlZ2VyICdcPCVbMC0xXSpbMC0xXVwrXD4nCitzeW4gbWF0Y2ggZm9ydGhGbG9hdCAnXDwtXD1cZCpbLl1cPVxkXCtbRWVdXGRcK1w+JworCisiIFN0cmluZ3MKK3N5biByZWdpb24gZm9ydGhTdHJpbmcgc3RhcnQ9K1wuKlwiKyBlbmQ9KyIrIGVuZD0rJCsKKyIgWFhYCitzeW4gcmVnaW9uIGZvcnRoU3RyaW5nIHN0YXJ0PStzXCIrIGVuZD0rIisgZW5kPSskKworc3luIHJlZ2lvbiBmb3J0aFN0cmluZyBzdGFydD0rY1wiKyBlbmQ9KyIrIGVuZD0rJCsKKworIiBDb21tZW50cworc3luIG1hdGNoIGZvcnRoQ29tbWVudCAnXFxccy4qJCcgY29udGFpbnM9Zm9ydGhUb2RvCitzeW4gcmVnaW9uIGZvcnRoQ29tbWVudCBzdGFydD0nXFxTXHMnIGVuZD0nLionIGNvbnRhaW5zPWZvcnRoVG9kbworc3luIG1hdGNoIGZvcnRoQ29tbWVudCAnXC4oXHNbXildKiknIGNvbnRhaW5zPWZvcnRoVG9kbworc3luIHJlZ2lvbiBmb3J0aENvbW1lbnQgc3RhcnQ9Jyhccycgc2tpcD0nXFwpJyBlbmQ9JyknIGNvbnRhaW5zPWZvcnRoVG9kbworc3luIHJlZ2lvbiBmb3J0aENvbW1lbnQgc3RhcnQ9Jy9cKicgZW5kPSdcKi8nIGNvbnRhaW5zPWZvcnRoVG9kbworInN5biBtYXRjaCBmb3J0aENvbW1lbnQgJyhcc1teXC1dKlwtXC1bXlwtXSopJyBjb250YWlucz1mb3J0aFRvZG8KKworIiBJbmNsdWRlIGZpbGVzCitzeW4gbWF0Y2ggZm9ydGhJbmNsdWRlICdeSU5DTFVERVxzXCtca1wrJworc3luIG1hdGNoIGZvcnRoSW5jbHVkZSAnXmZsb2FkXHNcKycKK3N5biBtYXRjaCBmb3J0aEluY2x1ZGUgJ15uZWVkc1xzXCsnCisKKyIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KKyIgRm9yIHZlcnNpb24gNS43IGFuZCBlYXJsaWVyOiBvbmx5IHdoZW4gbm90IGRvbmUgYWxyZWFkeQorIiBGb3IgdmVyc2lvbiA1LjggYW5kIGxhdGVyOiBvbmx5IHdoZW4gYW4gaXRlbSBkb2Vzbid0IGhhdmUgaGlnaGxpZ2h0aW5nIHlldAoraWYgdmVyc2lvbiA+PSA1MDggfHwgIWV4aXN0cygiZGlkX2ZvcnRoX3N5bl9pbml0cyIpCisgICAgaWYgdmVyc2lvbiA8IDUwOAorCWxldCBkaWRfZm9ydGhfc3luX2luaXRzID0gMQorCWNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGxpbmsgPGFyZ3M+CisgICAgZWxzZQorCWNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgorICAgIGVuZGlmCisKKyAgICAiIFRoZSBkZWZhdWx0IG1ldGhvZHMgZm9yIGhpZ2hsaWdodGluZy4gQ2FuIGJlIG92ZXJyaWRlbiBsYXRlci4KKyAgICBIaUxpbmsgZm9ydGhUb2RvIFRvZG8KKyAgICBIaUxpbmsgZm9ydGhPcGVyYXRvcnMgT3BlcmF0b3IKKyAgICBIaUxpbmsgZm9ydGhNYXRoIE51bWJlcgorICAgIEhpTGluayBmb3J0aEludGVnZXIgTnVtYmVyCisgICAgSGlMaW5rIGZvcnRoRmxvYXQgRmxvYXQKKyAgICBIaUxpbmsgZm9ydGhTdGFjayBTcGVjaWFsCisgICAgSGlMaW5rIGZvcnRoUnN0YWNrIFNwZWNpYWwKKyAgICBIaUxpbmsgZm9ydGhGU3RhY2sgU3BlY2lhbAorICAgIEhpTGluayBmb3J0aFNQIFNwZWNpYWwKKyAgICBIaUxpbmsgZm9ydGhNZW1vcnkgRnVuY3Rpb24KKyAgICBIaUxpbmsgZm9ydGhBZHJBcml0aCBGdW5jdGlvbgorICAgIEhpTGluayBmb3J0aE1lbUJsa3MgRnVuY3Rpb24KKyAgICBIaUxpbmsgZm9ydGhDb25kIENvbmRpdGlvbmFsCisgICAgSGlMaW5rIGZvcnRoTG9vcCBSZXBlYXQKKyAgICBIaUxpbmsgZm9ydGhDb2xvbkRlZiBEZWZpbmUKKyAgICBIaUxpbmsgZm9ydGhFbmRPZkNvbG9uRGVmIERlZmluZQorICAgIEhpTGluayBmb3J0aERlZmluZSBEZWZpbmUKKyAgICBIaUxpbmsgZm9ydGhEZWJ1ZyBEZWJ1ZworICAgIEhpTGluayBmb3J0aEFzc2VtYmxlciBJbmNsdWRlCisgICAgSGlMaW5rIGZvcnRoQ2hhck9wcyBDaGFyYWN0ZXIKKyAgICBIaUxpbmsgZm9ydGhDb252ZXJzaW9uIFN0cmluZworICAgIEhpTGluayBmb3J0aEZvcnRoIFN0YXRlbWVudAorICAgIEhpTGluayBmb3J0aFZvY3MgU3RhdGVtZW50CisgICAgSGlMaW5rIGZvcnRoU3RyaW5nIFN0cmluZworICAgIEhpTGluayBmb3J0aENvbW1lbnQgQ29tbWVudAorICAgIEhpTGluayBmb3J0aENsYXNzRGVmIERlZmluZQorICAgIEhpTGluayBmb3J0aEVuZE9mQ2xhc3NEZWYgRGVmaW5lCisgICAgSGlMaW5rIGZvcnRoT2JqZWN0RGVmIERlZmluZQorICAgIEhpTGluayBmb3J0aEVuZE9mT2JqZWN0RGVmIERlZmluZQorICAgIEhpTGluayBmb3J0aEluY2x1ZGUgSW5jbHVkZQorCisgICAgZGVsY29tbWFuZCBIaUxpbmsKK2VuZGlmCisKK2xldCBiOmN1cnJlbnRfc3ludGF4ID0gImZvcnRoIgorCisiIHZpbTp0cz04OnN3PTQ6bm9jaW5kZW50OnNtYXJ0aW5kZW50Ogo=