LyoKICogVHVya2lzaCBSZXNvdXJjZXMgZm9yIFdvcmRwYWQKICoKICogQ29weXJpZ2h0IDIwMDYgRmF0aWggQf79Y/0gPGZhc2ljaUBsaW51eC1zZXZlbmxlci5vcmc+CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfVFVSS0lTSCwgU1VCTEFOR19ERUZBVUxUCgpJRE1fTUFJTk1FTlUgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiZEb3N5YSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZZZW5pXHRDdHJsK04iLCAgICAgICAgIElEX0ZJTEVfTkVXCiAgICAgICAgTUVOVUlURU0gIiZB5y4uLlx0Q3RybCtPIiwgICAgICAgIElEX0ZJTEVfT1BFTgogICAgICAgIE1FTlVJVEVNICImS2F5ZGV0XHRDdHJsK1MiLCAgICAgICBJRF9GSUxFX1NBVkUKICAgICAgICBNRU5VSVRFTSAiJkZhcmts/SBLYXlkZXQuLi4iLCAgICAgSURfRklMRV9TQVZFQVMKICAgICAgICBNRU5VSVRFTSAiUGFnJmUgc2V0dXAgLiAuIC4iLCAgICAgSURfUFJJTlRTRVRVUAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImUHJpbnQgLiAuIC5cdEN0cmwrUCIsICBJRF9QUklOVAogICAgICAgIE1FTlVJVEVNICJQYWcmZSBzZXR1cCAuIC4gLiIsICAgICBJRF9QUklOVFNFVFVQCiAgICAgICAgTUVOVUlURU0gIlByaW50IHByZXZpZSZ3IC4gLiAuIiwgIElEX1BSRVZJRVcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJsf9ayIsICAgICAgICAgIElEX0ZJTEVfRVhJVAogICAgRU5ECiAgICBQT1BVUCAiJkT8emVuIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkdlcmkgQWxcdEN0cmwrWiIsICAgICAgICAgICAgSURfRURJVF9VTkRPCiAgICAgICAgTUVOVUlURU0gIiZZaW5lbGVcdEN0cmwrWSIsICAgICAgICAgICAgIElEX0VESVRfUkVETwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJLZSZzXHRDdHJsK1giLCAgICAgICAgICAgICAgICBJRF9FRElUX0NVVAogICAgICAgIE1FTlVJVEVNICImS29weWFsYVx0Q3RybCtDIiwgICAgICAgICAgICBJRF9FRElUX0NPUFkKICAgICAgICBNRU5VSVRFTSAiWWEmcP3+dP1yXHRDdHJsK1YiLCAgICAgICAgICAgSURfRURJVF9QQVNURQogICAgICAgIE1FTlVJVEVNICImU2lsXHREZWwiLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX0NMRUFSCiAgICAgICAgTUVOVUlURU0gIiZU/G38bvwgc2XnXHRDdHJsK0EiLCAgICAgICAgIElEX0VESVRfU0VMRUNUQUxMCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZGaW5kIC4gLiAuXHRDcnRsK0YiLCAgICAgICAgIElEX0ZJTkQKICAgICAgICBNRU5VSVRFTSAiRmluZCAmbmV4dFx0RjMiLCAgICAgICAgICAgICAgSURfRklORF9ORVhUCiAgICAgICAgTUVOVUlURU0gIiZSZXBsYWNlIC4gLiAuXHRDdHJsK0giLCAgICAgIElEX1JFUExBQ0UKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiU2FsdC0mb2t1bnVyIiwgICAgICAgICAgICAgICAgSURfRURJVF9SRUFET05MWQogICAgICAgIE1FTlVJVEVNICImRGXwaf5taf4iLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX01PRElGSUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgUE9QVVAgIkQmafBlcmxlcmkiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIlNl52ltICZiaWxnaXNpIiwgICAgICAgICAgICAgIElEX0VESVRfU0VMRUNUSU9OSU5GTwogICAgICAgICAgICBNRU5VSVRFTSAiS2FyYWt0ZXIgYmkm52ltaSIsICAgICAgICAgICAgSURfRURJVF9DSEFSRk9STUFUCiAgICAgICAgICAgIE1FTlVJVEVNICIm1m50YW79bWz9IGthci4gYmnnaW1pIiwgICAgICBJRF9FRElUX0RFRkNIQVJGT1JNQVQKICAgICAgICAgICAgTUVOVUlURU0gIlBhcmFncmEmZiBiaedpbWkiLCAgICAgICAgICAgIElEX0VESVRfUEFSQUZPUk1BVAogICAgICAgICAgICBNRU5VSVRFTSAiJk1ldG5pIGFsIiwgICAgICAgICAgICAgICAgICAgSURfRURJVF9HRVRURVhUCiAgICAgICAgRU5ECiAgICBFTkQKICAgIFBPUFVQICImVmlldyIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZUb29sYmFyIiwgICAgICAgIElEX1RPR0dMRV9UT09MQkFSCiAgICAgICAgTUVOVUlURU0gIiZGb3JtYXRiYXIiLCAgICAgIElEX1RPR0dMRV9GT1JNQVRCQVIKICAgICAgICBNRU5VSVRFTSAiJlN0YXR1c2JhciIsICAgICAgSURfVE9HR0xFX1NUQVRVU0JBUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImT3B0aW9ucyAuIC4gLiIsICBJRF9WSUVXUFJPUEVSVElFUwogICAgRU5ECiAgICBQT1BVUCAiJkluc2VydCIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZEYXRlIGFuZCB0aW1lIC4gLiAuIiwgIElEX0RBVEVUSU1FCiAgICBFTkQKICAgIFBPUFVQICImQmnnaW0iCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImRm9udCAuIC4gLiIsICAgICAgICAgICAgICAgICAgSURfRk9OVFNFVFRJTkdTCiAgICAgICAgTUVOVUlURU0gIiZCdWxsZXQgcG9pbnRzIiAgICAgICAgICAgICAgICBJRF9CVUxMRVQKICAgICAgICBNRU5VSVRFTSAiJlBhcmFncmFwaCAuIC4gLiIgICAgICAgICAgICAgIElEX1BBUkFGT1JNQVQKICAgICAgICBNRU5VSVRFTSAiJlRhYnMgLiAuIC4iICAgICAgICAgICAgICAgICAgIElEX1RBQlNUT1BTCiAgICAgICAgUE9QVVAgIiZBcmthcGxhbiIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiUyZpc3RlbVx0Q3RybCsxIiwgICAgICAgICBJRF9CQUNLXzEKICAgICAgICAgICAgTUVOVUlURU0gIiZTYXL9bXT9cmFrXHRDdHJsKzIiLCAgICAgSURfQkFDS18yCiAgICAgICAgRU5ECiAgICBFTkQKICAgIFBPUFVQICImSGVscCIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZBYm91dCBXaW5lIFdvcmRwYWQiICAgICAgIElEX0FCT1VUCiAgICBFTkQKRU5ECgpJRE1fUE9QVVAgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIktlJnMiLCAgICAgICAgICAgICAgICAgSURfRURJVF9DVVQKICAgICAgICBNRU5VSVRFTSAiJktvcHlhbGEiLCAgICAgICAgICAgICBJRF9FRElUX0NPUFkKICAgICAgICBNRU5VSVRFTSAiWWEmcP3+dP1yIiwgICAgICAgICAgICBJRF9FRElUX1BBU1RFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZCdWxsZXQgcG9pbnRzIiAgICAgICAgSURfQlVMTEVUCiAgICAgICAgTUVOVUlURU0gIiZQYXJhZ3JhcGggLiAuIC4iICAgICAgSURfUEFSQUZPUk1BVAogICAgRU5ECkVORAoKSUREX0RBVEVUSU1FIERJQUxPRyBESVNDQVJEQUJMRSAzMCwgMjAsIDEzMCwgODAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkRhdGUgYW5kIHRpbWUiCkZPTlQgMTAsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgTFRFWFQgICAgICAgICJBdmFpbGFibGUgZm9ybWF0cyIsMCwzLDIsMTAwLDE1CiAgICBMSVNUQk9YICAgICAgSURDX0RBVEVUSU1FLDMsMTIsODAsNjUsTEJTX05PSU5URUdSQUxIRUlHSFQKICAgIFBVU0hCVVRUT04gICAiJk9LIixJRE9LLDg3LDEyLDQwLDEyCiAgICBQVVNIQlVUVE9OICAgIiZDYW5jZWwiLElEQ0FOQ0VMLDg3LDI2LDQwLDEyCkVORAoKSUREX05FV0ZJTEUgRElBTE9HIERJU0NBUkRBQkxFIDMwLCAyMCwgMTQwLCA4MApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiTmV3IgpGT05UIDEwLCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIExURVhUICAgICAgICAiTmV3IGRvY3VtZW50IHR5cGUiLDAsMywyLDEwMCwxNQogICAgTElTVEJPWCAgICAgIElEQ19ORVdGSUxFLDMsMTIsOTAsNjUsTEJTX05PSU5URUdSQUxIRUlHSFQKICAgIFBVU0hCVVRUT04gICAiJk9LIixJRE9LLDk3LDEyLDQwLDEyCiAgICBQVVNIQlVUVE9OICAgIiZDYW5jZWwiLElEQ0FOQ0VMLDk3LDI2LDQwLDEyCkVORAoKSUREX1BBUkFGT1JNQVQgRElBTE9HIERJU0NBUkRBQkxFIDMwLCAyMCwgMjAwLCAxMTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNhcHRpb24gIlBhcmFncmFwaCBmb3JtYXQiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICJJbmRlbnRhdGlvbiIsIDAsIDEwLCAxMCwgMTIwLCA2OAogICAgTFRFWFQgIkxlZnQiLCAwLCAxNSwgMjIsIDQwLCAxMwogICAgRURJVFRFWFQgSURDX1BBUkFfTEVGVCwgNTUsIDIwLCA2MCwgMTMKICAgIExURVhUICJSaWdodCIsIDAsIDE1LCA0MCwgNDAsIDEzCiAgICBFRElUVEVYVCBJRENfUEFSQV9SSUdIVCwgNTUsIDM4LCA2MCwgMTMKICAgIExURVhUICJGaXJzdCBsaW5lIiwgMCwgMTUsIDU4LCA0MCwgMTMKICAgIEVESVRURVhUIElEQ19QQVJBX0ZJUlNULCA1NSwgNTYsIDYwLCAxMwogICAgTFRFWFQgIkFsaWdubWVudCIsIDAsIDE1LCA4NywgNDAsIDEzCiAgICBDT01CT0JPWCBJRENfUEFSQV9BTElHTiwgNTUsIDg1LCA2MCwgMTMsIENCU19EUk9QRE9XTkxJU1QKICAgIFBVU0hCVVRUT04gIiZPSyIsIElET0ssIDEzNywgMTUsIDUwLCAxNQogICAgUFVTSEJVVFRPTiAiJkNhbmNlbCIsIElEQ0FOQ0VMLCAxMzcsIDMzLCA1MCwgMTUKRU5ECgpJRERfVEFCU1RPUFMgRElBTE9HIERJU0NBUkRBQkxFIDMwLCAyMCwgMjAwLCAxMTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNhcHRpb24gIlRhYnMiCkZPTlQgOCwgIk1TIFNIZWxsIERMZyIKQkVHSU4KICAgIEdST1VQQk9YICJUYWIgc3RvcHMiLCAwLCAxMCwgMTAsIDEyMCwgOTAKICAgIENPTUJPQk9YIElEQ19UQUJTVE9QUywgMjAsIDIwLCAxMDAsIDYwLCBDQlNfU0lNUExFIHwgQ0JTX1NPUlQKICAgIERFRlBVU0hCVVRUT04gIiZBZGQiLCBJRF9UQUJfQURELCAyMCwgODAsIDQ1LCAxNQogICAgUFVTSEJVVFRPTiAiJlJlbW92ZSIsIElEX1RBQl9ERUwsIDcyLCA4MCwgNDUsIDE1CiAgICBQVVNIQlVUVE9OICImT0siLCBJRE9LLCAxMzcsIDE1LCA1MCwgMTUKICAgIFBVU0hCVVRUT04gIiZDYW5jZWwiLCBJRENBTkNFTCwgMTM3LCAzMywgNTAsIDE1CiAgICBQVVNIQlVUVE9OICJSZW1vdmUgYWwmbCIsIElEX1RBQl9FTVBUWSwgMTM3LCA1MSwgNTAsIDE1CkVORAoKSUREX0ZPUk1BVE9QVFMgRElBTE9HIERJU0NBUkRBQkxFIDAsIDAsIDI4MCwgMTEwClNUWUxFIERTX1NZU01PREFMCkNhcHRpb24gIiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggIkxpbmUgd3JhcHBpbmciLCAwLCAxMCwgMTAsIDEzMCwgODUKICAgIFJBRElPQlVUVE9OICJXcmFwIHRleHQgYnkgdGhlICZ3aW5kb3cgYm9yZGVyIiwgSURDX1BBR0VGTVRfV1csIDE4LCAyNSwgMTE3LCAxNQogICAgUkFESU9CVVRUT04gIldyYXAgdGV4dCBieSB0aGUgJm1hcmdpbiIsIElEQ19QQUdFRk1UX1dNLCAxOCwgNDUsIDExNywgMTUKICAgIEdST1VQQk9YICJUb29sYmFycyIsIDAsIDE1MCwgMTAsIDEyMCwgODUKICAgIENIRUNLQk9YICImVG9vbGJhciIsIElEQ19QQUdFRk1UX1RCLCAxNjAsIDIwLCA4MCwgMTUKICAgIENIRUNLQk9YICImRm9ybWF0YmFyIiwgSURDX1BBR0VGTVRfRkIsIDE2MCwgMzgsIDgwLCAxNQogICAgQ0hFQ0tCT1ggIiZTdGF0dXNiYXIiLCBJRENfUEFHRUZNVF9TQiwgMTYwLCA1NiwgODAsIDE1CiAgICBMVEVYVCAiIiwgSURDX1BBR0VGTVRfSUQsIDAsMCwwLDAKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgU1RSSU5HX1JJQ0hURVhUX0ZJTEVTX1JURiwgICAgICJSaWNoIHRleHQgZm9ybWF0ICgqLnJ0ZikiCiAgICBTVFJJTkdfVEVYVF9GSUxFU19UWFQsICAgICAgICAgIlRleHQgZG9jdW1lbnRzICgqLnR4dCkiCiAgICBTVFJJTkdfVEVYVF9GSUxFU19VTklDT0RFX1RYVCwgIlVuaWNvZGUgdGV4dCBkb2N1bWVudCAoKi50eHQpIgogICAgU1RSSU5HX0FMTF9GSUxFUywgICAgICAgICAgICAgICJBbGwgZG9jdW1lbnRzICgqLiopIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBTVFJJTkdfQUxJR05fTEVGVCwgICAgICAgICAgICAiTGVmdCIKICAgIFNUUklOR19BTElHTl9SSUdIVCwgICAgICAgICAgICJSaWdodCIKICAgIFNUUklOR19BTElHTl9DRU5URVIsICAgICAgICAgICJDZW50ZXIiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFNUUklOR19ORVdGSUxFX1JJQ0hURVhULCAgICAgIlJpY2ggdGV4dCBkb2N1bWVudCIKICAgIFNUUklOR19ORVdGSUxFX1RYVCwgICAgICAgICAgIlRleHQgZG9jdW1lbnQiCiAgICBTVFJJTkdfTkVXRklMRV9UWFRfVU5JQ09ERSwgICJVbmljb2RlIHRleHQgZG9jdW1lbnQiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFNUUklOR19QUklOVEVSX0ZJTEVTX1BSTiwgICAgICAgICJQcmludGVyIGZpbGVzICgqLlBSTikiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFNUUklOR19WSUVXUFJPUFNfVElUTEUsICAgICAgICAgICJPcHRpb25zIgogICAgU1RSSU5HX1ZJRVdQUk9QU19URVhULCAgICAgICAgICAgIlRleHQiCiAgICBTVFJJTkdfVklFV1BST1BTX1JJQ0hURVhULCAgICAgICAiUmljaCB0ZXh0IgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBTVFJJTkdfUFJFVklFV19QUklOVCwgICAgICAgICAgICAiUHJpbnQiCiAgICBTVFJJTkdfUFJFVklFV19ORVhUUEFHRSwgICAgICAgICAiTmV4dCBwYWdlIgogICAgU1RSSU5HX1BSRVZJRVdfUFJFVlBBR0UsICAgICAgICAgIlByZXZpb3VzIHBhZ2UiCiAgICBTVFJJTkdfUFJFVklFV19DTE9TRSwgICAgICAgICAgICAiQ2xvc2UiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFNUUklOR19VTklUU19DTSwgICAgICAgICAgICAgImNtIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBTVFJJTkdfREVGQVVMVF9GSUxFTkFNRSwgICAgICJEb2N1bWVudCIKICAgIFNUUklOR19QUk9NUFRfU0FWRV9DSEFOR0VTLCAgIlNhdmUgY2hhbmdlcyB0byAnJXMnPyIKICAgIFNUUklOR19TRUFSQ0hfRklOSVNIRUQsICAgICAgIkZpbmlzaGVkIHNlYXJjaGluZyB0aGUgZG9jdW1lbnQuIgogICAgU1RSSU5HX0xPQURfUklDSEVEX0ZBSUxFRCwgICAiRmFpbGVkIHRvIGxvYWQgdGhlIFJpY2hFZGl0IGxpYnJhcnkuIgogICAgU1RSSU5HX1NBVkVfTE9TRUZPUk1BVFRJTkcsICAiWW91IGhhdmUgY2hvc2VuIHRvIHNhdmUgaW4gcGxhaW4gdGV4dCBmb3JtYXQsICIgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2hpY2ggd2lsbCBjYXVzZSBhbGwgZm9ybWF0dGluZyB0byBiZSBsb3N0LiAiIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3aXNoIHRvIGRvIHRoaXM/IgogICAgU1RSSU5HX0lOVkFMSURfTlVNQkVSLCAgICAgICAiSW52YWxpZCBudW1iZXIgZm9ybWF0IgogICAgU1RSSU5HX09MRV9TVE9SQUdFX05PVF9TVVBQT1JURUQsICJPTEUgc3RvcmFnZSBkb2N1bWVudHMgYXJlIG5vdCBzdXBwb3J0ZWQiCkVORAo=