LyoKICogVHVya2lzaCBSZXNvdXJjZXMgZm9yIFdvcmRwYWQKICoKICogQ29weXJpZ2h0IDIwMDYgRmF0aWggQf79Y/0gPGZhc2ljaUBsaW51eC1zZXZlbmxlci5vcmc+CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfVFVSS0lTSCwgU1VCTEFOR19ERUZBVUxUCgpJRE1fTUFJTk1FTlUgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiZEb3N5YSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZZZW5pLi4uXHRDdHJsK04iLCAgICAgIElEX0ZJTEVfTkVXCiAgICAgICAgTUVOVUlURU0gIiZB5y4uLlx0Q3RybCtPIiwgICAgICAgIElEX0ZJTEVfT1BFTgogICAgICAgIE1FTlVJVEVNICImS2F5ZGV0XHRDdHJsK1MiLCAgICAgICBJRF9GSUxFX1NBVkUKICAgICAgICBNRU5VSVRFTSAiJkZhcmts/SBLYXlkZXQuLi4iLCAgICAgSURfRklMRV9TQVZFQVMKICAgICAgICBNRU5VSVRFTSAiUGFnJmUgc2V0dXAgLiAuIC4iLCAgICAgSURfUFJJTlRTRVRVUAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImUHJpbnQgLiAuIC5cdEN0cmwrUCIsICBJRF9QUklOVAogICAgICAgIE1FTlVJVEVNICJQYWcmZSBzZXR1cCAuIC4gLiIsICAgICBJRF9QUklOVFNFVFVQCiAgICAgICAgTUVOVUlURU0gIlByaW50IHByZXZpZSZ3IC4gLiAuIiwgIElEX1BSRVZJRVcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJsf9ayIsICAgICAgICAgIElEX0ZJTEVfRVhJVAogICAgRU5ECiAgICBQT1BVUCAiJkT8emVuIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkdlcmkgQWxcdEN0cmwrWiIsICAgICAgICAgICAgSURfRURJVF9VTkRPCiAgICAgICAgTUVOVUlURU0gIiZZaW5lbGVcdEN0cmwrWSIsICAgICAgICAgICAgIElEX0VESVRfUkVETwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJLZSZzXHRDdHJsK1giLCAgICAgICAgICAgICAgICBJRF9FRElUX0NVVAogICAgICAgIE1FTlVJVEVNICImS29weWFsYVx0Q3RybCtDIiwgICAgICAgICAgICBJRF9FRElUX0NPUFkKICAgICAgICBNRU5VSVRFTSAiWWEmcP3+dP1yXHRDdHJsK1YiLCAgICAgICAgICAgSURfRURJVF9QQVNURQogICAgICAgIE1FTlVJVEVNICImU2lsXHREZWwiLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX0NMRUFSCiAgICAgICAgTUVOVUlURU0gIiZU/G38bvwgc2XnXHRDdHJsK0EiLCAgICAgICAgIElEX0VESVRfU0VMRUNUQUxMCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZGaW5kIC4gLiAuXHRDcnRsK0YiLCAgICAgICAgIElEX0ZJTkQKICAgICAgICBNRU5VSVRFTSAiRmluZCAmbmV4dFx0RjMiLCAgICAgICAgICAgICAgSURfRklORF9ORVhUCiAgICAgICAgTUVOVUlURU0gIiZSZXBsYWNlIC4gLiAuXHRDdHJsK0giLCAgICAgIElEX1JFUExBQ0UKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiU2FsdC0mb2t1bnVyIiwgICAgICAgICAgICAgICAgSURfRURJVF9SRUFET05MWQogICAgICAgIE1FTlVJVEVNICImRGXwaf5taf4iLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX01PRElGSUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgUE9QVVAgIkQmafBlcmxlcmkiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIlNl52ltICZiaWxnaXNpIiwgICAgICAgICAgICAgIElEX0VESVRfU0VMRUNUSU9OSU5GTwogICAgICAgICAgICBNRU5VSVRFTSAiS2FyYWt0ZXIgYmkm52ltaSIsICAgICAgICAgICAgSURfRURJVF9DSEFSRk9STUFUCiAgICAgICAgICAgIE1FTlVJVEVNICIm1m50YW79bWz9IGthci4gYmnnaW1pIiwgICAgICBJRF9FRElUX0RFRkNIQVJGT1JNQVQKICAgICAgICAgICAgTUVOVUlURU0gIlBhcmFncmEmZiBiaedpbWkiLCAgICAgICAgICAgIElEX0VESVRfUEFSQUZPUk1BVAogICAgICAgICAgICBNRU5VSVRFTSAiJk1ldG5pIGFsIiwgICAgICAgICAgICAgICAgICAgSURfRURJVF9HRVRURVhUCiAgICAgICAgRU5ECiAgICBFTkQKICAgIFBPUFVQICImVmlldyIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZUb29sYmFyIiwgICAgICAgIElEX1RPR0dMRV9UT09MQkFSCiAgICAgICAgTUVOVUlURU0gIiZGb3JtYXRiYXIiLCAgICAgIElEX1RPR0dMRV9GT1JNQVRCQVIKICAgICAgICBNRU5VSVRFTSAiJlJ1bGVyIiwgICAgICAgICAgSURfVE9HR0xFX1JVTEVSCiAgICAgICAgTUVOVUlURU0gIiZTdGF0dXNiYXIiLCAgICAgIElEX1RPR0dMRV9TVEFUVVNCQVIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk9wdGlvbnMgLiAuIC4iLCAgSURfVklFV1BST1BFUlRJRVMKICAgIEVORAogICAgUE9QVVAgIiZJbnNlcnQiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImRGF0ZSBhbmQgdGltZSAuIC4gLiIsICBJRF9EQVRFVElNRQogICAgRU5ECiAgICBQT1BVUCAiJkJp52ltIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkZvbnQgLiAuIC4iLCAgICAgICAgICAgICAgICAgIElEX0ZPTlRTRVRUSU5HUwogICAgICAgIE1FTlVJVEVNICImQnVsbGV0IHBvaW50cyIgICAgICAgICAgICAgICAgSURfQlVMTEVUCiAgICAgICAgTUVOVUlURU0gIiZQYXJhZ3JhcGggLiAuIC4iICAgICAgICAgICAgICBJRF9QQVJBRk9STUFUCiAgICAgICAgTUVOVUlURU0gIiZUYWJzIC4gLiAuIiAgICAgICAgICAgICAgICAgICBJRF9UQUJTVE9QUwogICAgICAgIFBPUFVQICImQXJrYXBsYW4iCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIlMmaXN0ZW1cdEN0cmwrMSIsICAgICAgICAgSURfQkFDS18xCiAgICAgICAgICAgIE1FTlVJVEVNICImU2Fy/W10/XJha1x0Q3RybCsyIiwgICAgIElEX0JBQ0tfMgogICAgICAgIEVORAogICAgRU5ECiAgICBQT1BVUCAiJkhlbHAiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQWJvdXQgV2luZSBXb3JkcGFkIiAgICAgICBJRF9BQk9VVAogICAgRU5ECkVORAoKSURNX1BPUFVQIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJLZSZzIiwgICAgICAgICAgICAgICAgIElEX0VESVRfQ1VUCiAgICAgICAgTUVOVUlURU0gIiZLb3B5YWxhIiwgICAgICAgICAgICAgSURfRURJVF9DT1BZCiAgICAgICAgTUVOVUlURU0gIllhJnD9/nT9ciIsICAgICAgICAgICAgSURfRURJVF9QQVNURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQnVsbGV0IHBvaW50cyIgICAgICAgIElEX0JVTExFVAogICAgICAgIE1FTlVJVEVNICImUGFyYWdyYXBoIC4gLiAuIiAgICAgIElEX1BBUkFGT1JNQVQKICAgIEVORApFTkQKCklERF9EQVRFVElNRSBESUFMT0cgRElTQ0FSREFCTEUgMzAsIDIwLCAxMzAsIDgwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJEYXRlIGFuZCB0aW1lIgpGT05UIDEwLCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIExURVhUICAgICAgICAiQXZhaWxhYmxlIGZvcm1hdHMiLDAsMywyLDEwMCwxNQogICAgTElTVEJPWCAgICAgIElEQ19EQVRFVElNRSwzLDEyLDgwLDY1LExCU19OT0lOVEVHUkFMSEVJR0hUCiAgICBQVVNIQlVUVE9OICAgIiZPSyIsSURPSyw4NywxMiw0MCwxMgogICAgUFVTSEJVVFRPTiAgICImQ2FuY2VsIixJRENBTkNFTCw4NywyNiw0MCwxMgpFTkQKCklERF9ORVdGSUxFIERJQUxPRyBESVNDQVJEQUJMRSAzMCwgMjAsIDE0MCwgODAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk5ldyIKRk9OVCAxMCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBMVEVYVCAgICAgICAgIk5ldyBkb2N1bWVudCB0eXBlIiwwLDMsMiwxMDAsMTUKICAgIExJU1RCT1ggICAgICBJRENfTkVXRklMRSwzLDEyLDkwLDY1LExCU19OT0lOVEVHUkFMSEVJR0hUCiAgICBQVVNIQlVUVE9OICAgIiZPSyIsSURPSyw5NywxMiw0MCwxMgogICAgUFVTSEJVVFRPTiAgICImQ2FuY2VsIixJRENBTkNFTCw5NywyNiw0MCwxMgpFTkQKCklERF9QQVJBRk9STUFUIERJQUxPRyBESVNDQVJEQUJMRSAzMCwgMjAsIDIwMCwgMTEwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDYXB0aW9uICJQYXJhZ3JhcGggZm9ybWF0IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAiSW5kZW50YXRpb24iLCAwLCAxMCwgMTAsIDEyMCwgNjgKICAgIExURVhUICJMZWZ0IiwgMCwgMTUsIDIyLCA0MCwgMTMKICAgIEVESVRURVhUIElEQ19QQVJBX0xFRlQsIDU1LCAyMCwgNjAsIDEzCiAgICBMVEVYVCAiUmlnaHQiLCAwLCAxNSwgNDAsIDQwLCAxMwogICAgRURJVFRFWFQgSURDX1BBUkFfUklHSFQsIDU1LCAzOCwgNjAsIDEzCiAgICBMVEVYVCAiRmlyc3QgbGluZSIsIDAsIDE1LCA1OCwgNDAsIDEzCiAgICBFRElUVEVYVCBJRENfUEFSQV9GSVJTVCwgNTUsIDU2LCA2MCwgMTMKICAgIExURVhUICJBbGlnbm1lbnQiLCAwLCAxNSwgODcsIDQwLCAxMwogICAgQ09NQk9CT1ggSURDX1BBUkFfQUxJR04sIDU1LCA4NSwgNjAsIDEzLCBDQlNfRFJPUERPV05MSVNUCiAgICBQVVNIQlVUVE9OICImT0siLCBJRE9LLCAxMzcsIDE1LCA1MCwgMTUKICAgIFBVU0hCVVRUT04gIiZDYW5jZWwiLCBJRENBTkNFTCwgMTM3LCAzMywgNTAsIDE1CkVORAoKSUREX1RBQlNUT1BTIERJQUxPRyBESVNDQVJEQUJMRSAzMCwgMjAsIDIwMCwgMTEwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDYXB0aW9uICJUYWJzIgpGT05UIDgsICJNUyBTSGVsbCBETGciCkJFR0lOCiAgICBHUk9VUEJPWCAiVGFiIHN0b3BzIiwgMCwgMTAsIDEwLCAxMjAsIDkwCiAgICBDT01CT0JPWCBJRENfVEFCU1RPUFMsIDIwLCAyMCwgMTAwLCA2MCwgQ0JTX1NJTVBMRSB8IENCU19TT1JUCiAgICBERUZQVVNIQlVUVE9OICImQWRkIiwgSURfVEFCX0FERCwgMjAsIDgwLCA0NSwgMTUKICAgIFBVU0hCVVRUT04gIiZSZW1vdmUiLCBJRF9UQUJfREVMLCA3MiwgODAsIDQ1LCAxNQogICAgUFVTSEJVVFRPTiAiJk9LIiwgSURPSywgMTM3LCAxNSwgNTAsIDE1CiAgICBQVVNIQlVUVE9OICImQ2FuY2VsIiwgSURDQU5DRUwsIDEzNywgMzMsIDUwLCAxNQogICAgUFVTSEJVVFRPTiAiUmVtb3ZlIGFsJmwiLCBJRF9UQUJfRU1QVFksIDEzNywgNTEsIDUwLCAxNQpFTkQKCklERF9GT1JNQVRPUFRTIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAyODAsIDExMApTVFlMRSBEU19TWVNNT0RBTApDYXB0aW9uICIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICJMaW5lIHdyYXBwaW5nIiwgMCwgMTAsIDEwLCAxMzAsIDg1CiAgICBSQURJT0JVVFRPTiAiV3JhcCB0ZXh0IGJ5IHRoZSAmd2luZG93IGJvcmRlciIsIElEQ19QQUdFRk1UX1dXLCAxOCwgMjUsIDExNywgMTUKICAgIFJBRElPQlVUVE9OICJXcmFwIHRleHQgYnkgdGhlICZtYXJnaW4iLCBJRENfUEFHRUZNVF9XTSwgMTgsIDQ1LCAxMTcsIDE1CiAgICBHUk9VUEJPWCAiVG9vbGJhcnMiLCAwLCAxNTAsIDEwLCAxMjAsIDg1CiAgICBDSEVDS0JPWCAiJlRvb2xiYXIiLCBJRENfUEFHRUZNVF9UQiwgMTYwLCAyMCwgODAsIDE1CiAgICBDSEVDS0JPWCAiJkZvcm1hdGJhciIsIElEQ19QQUdFRk1UX0ZCLCAxNjAsIDM4LCA4MCwgMTUKICAgIENIRUNLQk9YICImUnVsZXIiLCBJRENfUEFHRUZNVF9SVSwgMTYwLCA1NiwgODAsIDE1CiAgICBDSEVDS0JPWCAiJlN0YXR1c2JhciIsIElEQ19QQUdFRk1UX1NCLCAxNjAsIDc0LCA4MCwgMTUKICAgIExURVhUICIiLCBJRENfUEFHRUZNVF9JRCwgMCwwLDAsMApFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBTVFJJTkdfUklDSFRFWFRfRklMRVNfUlRGLCAgICAgIlJpY2ggdGV4dCBmb3JtYXQgKCoucnRmKSIKICAgIFNUUklOR19URVhUX0ZJTEVTX1RYVCwgICAgICAgICAiVGV4dCBkb2N1bWVudHMgKCoudHh0KSIKICAgIFNUUklOR19URVhUX0ZJTEVTX1VOSUNPREVfVFhULCAiVW5pY29kZSB0ZXh0IGRvY3VtZW50ICgqLnR4dCkiCiAgICBTVFJJTkdfQUxMX0ZJTEVTLCAgICAgICAgICAgICAgIkFsbCBkb2N1bWVudHMgKCouKikiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFNUUklOR19BTElHTl9MRUZULCAgICAgICAgICAgICJMZWZ0IgogICAgU1RSSU5HX0FMSUdOX1JJR0hULCAgICAgICAgICAgIlJpZ2h0IgogICAgU1RSSU5HX0FMSUdOX0NFTlRFUiwgICAgICAgICAgIkNlbnRlciIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgU1RSSU5HX05FV0ZJTEVfUklDSFRFWFQsICAgICAiUmljaCB0ZXh0IGRvY3VtZW50IgogICAgU1RSSU5HX05FV0ZJTEVfVFhULCAgICAgICAgICAiVGV4dCBkb2N1bWVudCIKICAgIFNUUklOR19ORVdGSUxFX1RYVF9VTklDT0RFLCAgIlVuaWNvZGUgdGV4dCBkb2N1bWVudCIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgU1RSSU5HX1BSSU5URVJfRklMRVNfUFJOLCAgICAgICAgIlByaW50ZXIgZmlsZXMgKCouUFJOKSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgU1RSSU5HX1ZJRVdQUk9QU19USVRMRSwgICAgICAgICAgIk9wdGlvbnMiCiAgICBTVFJJTkdfVklFV1BST1BTX1RFWFQsICAgICAgICAgICAiVGV4dCIKICAgIFNUUklOR19WSUVXUFJPUFNfUklDSFRFWFQsICAgICAgICJSaWNoIHRleHQiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFNUUklOR19QUkVWSUVXX1BSSU5ULCAgICAgICAgICAgICJQcmludCIKICAgIFNUUklOR19QUkVWSUVXX05FWFRQQUdFLCAgICAgICAgICJOZXh0IHBhZ2UiCiAgICBTVFJJTkdfUFJFVklFV19QUkVWUEFHRSwgICAgICAgICAiUHJldmlvdXMgcGFnZSIKICAgIFNUUklOR19QUkVWSUVXX1RXT1BBR0VTLCAgICAgICAgICJUd28gcGFnZXMiCiAgICBTVFJJTkdfUFJFVklFV19PTkVQQUdFLCAgICAgICAgICAiT25lIHBhZ2UiCiAgICBTVFJJTkdfUFJFVklFV19DTE9TRSwgICAgICAgICAgICAiQ2xvc2UiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFNUUklOR19VTklUU19DTSwgICAgICAgICAgICAgImNtIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBTVFJJTkdfREVGQVVMVF9GSUxFTkFNRSwgICAgICJEb2N1bWVudCIKICAgIFNUUklOR19QUk9NUFRfU0FWRV9DSEFOR0VTLCAgIlNhdmUgY2hhbmdlcyB0byAnJXMnPyIKICAgIFNUUklOR19TRUFSQ0hfRklOSVNIRUQsICAgICAgIkZpbmlzaGVkIHNlYXJjaGluZyB0aGUgZG9jdW1lbnQuIgogICAgU1RSSU5HX0xPQURfUklDSEVEX0ZBSUxFRCwgICAiRmFpbGVkIHRvIGxvYWQgdGhlIFJpY2hFZGl0IGxpYnJhcnkuIgogICAgU1RSSU5HX1NBVkVfTE9TRUZPUk1BVFRJTkcsICAiWW91IGhhdmUgY2hvc2VuIHRvIHNhdmUgaW4gcGxhaW4gdGV4dCBmb3JtYXQsICIgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2hpY2ggd2lsbCBjYXVzZSBhbGwgZm9ybWF0dGluZyB0byBiZSBsb3N0LiAiIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZSB5b3Ugc3VyZSB0aGF0IHlvdSB3aXNoIHRvIGRvIHRoaXM/IgogICAgU1RSSU5HX0lOVkFMSURfTlVNQkVSLCAgICAgICAiSW52YWxpZCBudW1iZXIgZm9ybWF0IgogICAgU1RSSU5HX09MRV9TVE9SQUdFX05PVF9TVVBQT1JURUQsICJPTEUgc3RvcmFnZSBkb2N1bWVudHMgYXJlIG5vdCBzdXBwb3J0ZWQiCkVORAo=