LyoKICogQ29weXJpZ2h0IDIwMDYtMjAwOSBieSBKb25hdGhhbiBFcm5zdAogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAid29yZHBhZC5oIgoKTEFOR1VBR0UgTEFOR19GUkVOQ0gsIFNVQkxBTkdfTkVVVFJBTAoKSURNX01BSU5NRU5VIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICImRmljaGllciIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZOb3V2ZWF1Li4uXHRDdHJsK04iLCAgICAgICAgSURfRklMRV9ORVcKICAgICAgICBNRU5VSVRFTSAiJk91dnJpci4uLlx0Q3RybCtPIiwgICAgICBJRF9GSUxFX09QRU4KICAgICAgICBNRU5VSVRFTSAiJkVucmVnaXN0cmVyXHRDdHJsK1MiLCAgICBJRF9GSUxFX1NBVkUKICAgICAgICBNRU5VSVRFTSAiRW5yZWdpc3RyZXIgJnNvdXMuLi4iLCAgICBJRF9GSUxFX1NBVkVBUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImSW1wcmltZXIuLi5cdEN0cmwrUCIsICAgIElEX1BSSU5UCiAgICAgICAgTUVOVUlURU0gIkEmcGVy53UgYXZhbnQgaW1wcmVzc2lvbi4uLiIsICAgIElEX1BSRVZJRVcKICAgICAgICBNRU5VSVRFTSAiJk1pc2UgZW4gcGFnZS4uLiIsICAgICAgICBJRF9QUklOVFNFVFVQCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZRdWl0dGVyIiwgICAgICAgIElEX0ZJTEVfRVhJVAogICAgRU5ECiAgICBQT1BVUCAiySZkaXRpb24iCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQW5udWxlclx0Q3RybCtaIiwgICAgICAgICAgICAgICAgSURfRURJVF9VTkRPCiAgICAgICAgTUVOVUlURU0gIiZS6XRhYmxpclx0Q3RybCtZIiwgICAgICAgICAgICAgICAgSURfRURJVF9SRURPCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZDb3VwZXJcdEN0cmwrWCIsICAgICAgICAgICAgICAgICBJRF9FRElUX0NVVAogICAgICAgIE1FTlVJVEVNICJDbyZwaWVyXHRDdHJsK0MiLCAgICAgICAgICAgICAgICAgSURfRURJVF9DT1BZCiAgICAgICAgTUVOVUlURU0gIkMmb2xsZXJcdEN0cmwrViIsICAgICAgICAgICAgICAgICBJRF9FRElUX1BBU1RFCiAgICAgICAgTUVOVUlURU0gIiZFZmZhY2VyXHREZWwiLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX0NMRUFSCiAgICAgICAgTUVOVUlURU0gIiZT6WxlY3Rpb25uZXIgdG91dFx0Q3RybCtBIiwgICAgICBJRF9FRElUX1NFTEVDVEFMTAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImUmVjaGVyY2hlci4uLlx0Q3J0bCtGIiwgICAgICAgICAgICAgSURfRklORAogICAgICAgIE1FTlVJVEVNICJSZWNoZXJjaGVyIGxlICZzdWl2YW50XHRGMyIsICAgICAgICAgICAgICAgICAgSURfRklORF9ORVhUCiAgICAgICAgTUVOVUlURU0gIiZSZW1wbGFjZXIuLi5cdEN0cmwrSCIsICAgICAgICAgIElEX1JFUExBQ0UKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiTGVjdHVyZS0mc2V1bGUiLCAgICAgICAgICAgICAgICAgIElEX0VESVRfUkVBRE9OTFkKICAgICAgICBNRU5VSVRFTSAiJk1vZGlmaekiLCAgICAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZJRUQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBQT1BVUCAiJkF2YW5j6XMiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZJbmZvcm1hdGlvbiBz6WxlY3Rpb24iLCAgICAgIElEX0VESVRfU0VMRUNUSU9OSU5GTwogICAgICAgICAgICBNRU5VSVRFTSAiJkZvcm1hdCBjYXJhY3TocmVzIiwgICAgICAgICAgSURfRURJVF9DSEFSRk9STUFUCiAgICAgICAgICAgIE1FTlVJVEVNICImROlmLiBmb3JtYXQgY2FyLiIsICAgICAgICAgICBJRF9FRElUX0RFRkNIQVJGT1JNQVQKICAgICAgICAgICAgTUVOVUlURU0gIkZvcm1hdCBwYXJhZ3JhcCZoZSIsICAgICAgICAgIElEX0VESVRfUEFSQUZPUk1BVAogICAgICAgICAgICBNRU5VSVRFTSAiJlJlY2V2b2lyIHRleHRlIiwgICAgICAgICAgICAgSURfRURJVF9HRVRURVhUCiAgICAgICAgRU5ECiAgICBFTkQKICAgIFBPUFVQICImQWZmaWNoYWdlIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkJhcnJlIGQnb3V0aWxzIiwgICAgICAgIElEX1RPR0dMRV9UT09MQkFSCiAgICAgICAgTUVOVUlURU0gIiZCYXJyZSBkZSBmb3JtYXQiLCAgICAgIElEX1RPR0dMRV9GT1JNQVRCQVIKICAgICAgICBNRU5VSVRFTSAiJlLoZ2xlIiwgICAgICAgICAgICAgSURfVE9HR0xFX1JVTEVSCiAgICAgICAgTUVOVUlURU0gIiZCYXJyZSBkJ+l0YXQiLCAgICAgIElEX1RPR0dMRV9TVEFUVVNCQVIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk9wdGlvbnMuLi4iLCAgSURfVklFV1BST1BFUlRJRVMKICAgIEVORAogICAgUE9QVVAgIiZJbnNlcnRpb24iCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImRGF0ZSBldCBoZXVyZS4uLiIsICBJRF9EQVRFVElNRQogICAgRU5ECiAgICBQT1BVUCAiRm9ybWEmdCIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZQb2xpY2UuLi4iLCAgICAgICAgICAgICAgICAgIElEX0ZPTlRTRVRUSU5HUwogICAgICAgIE1FTlVJVEVNICImUHVjZXMiICAgICAgICAgICAgICAgIElEX0JVTExFVAogICAgICAgIE1FTlVJVEVNICImUGFyYWdyYXBoZS4uLiIgICAgICAgICAgICAgIElEX1BBUkFGT1JNQVQKICAgICAgICBNRU5VSVRFTSAiJlRhYnVsYXRpb25zLi4uIiAgICAgICAgICAgICAgICAgICBJRF9UQUJTVE9QUwogICAgICAgIFBPUFVQICImRm9uZCIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiJlN5c3TobWVcdEN0cmwrMSIsICAgICAgICAgSURfQkFDS18xCiAgICAgICAgICAgIE1FTlVJVEVNICImSmF1bmFzc2VcdEN0cmwrMiIsICAgICAgICAgICBJRF9CQUNLXzIKICAgICAgICBFTkQKICAgIEVORAogICAgUE9QVVAgIkFpZCZlIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiwCAmcHJvcG9zIGR1IFdvcmRwYWQgZGUgV2luZSIgICAgICAgSURfQUJPVVQKICAgIEVORApFTkQKCklETV9QT1BVUCBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkNvdXBlciIsICAgICAgICAgICAgIElEX0VESVRfQ1VUCiAgICAgICAgTUVOVUlURU0gIkNvJnBpZXIiLCAgICAgICAgICAgICBJRF9FRElUX0NPUFkKICAgICAgICBNRU5VSVRFTSAiQyZvbGxlciIsICAgICAgICAgICAgIElEX0VESVRfUEFTVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlB1Y2VzIiAgICAgICBJRF9CVUxMRVQKICAgICAgICBNRU5VSVRFTSAiJlBhcmFncmFwaGUiICAgICBJRF9QQVJBRk9STUFUCiAgICBFTkQKRU5ECgpJRERfREFURVRJTUUgRElBTE9HIERJU0NBUkRBQkxFIDMwLCAyMCwgMTMwLCA4MApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRGF0ZSBldCBoZXVyZSIKRk9OVCAxMCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBMVEVYVCAgICAgICAgIkZvcm1hdHMgZGlzcG9uaWJsZXMiLC0xLDMsMiwxMDAsMTUKICAgIExJU1RCT1ggICAgICBJRENfREFURVRJTUUsMywxMiw4MCw2NSxMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IExCU19OT1RJRlkKICAgIFBVU0hCVVRUT04gICAiJk9LIixJRE9LLDg3LDEyLDQwLDEyCiAgICBQVVNIQlVUVE9OICAgIiZBbm51bGVyIixJRENBTkNFTCw4NywyNiw0MCwxMgpFTkQKCklERF9ORVdGSUxFIERJQUxPRyBESVNDQVJEQUJMRSAzMCwgMjAsIDE0MCwgODAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk5vdXZlYXUiCkZPTlQgMTAsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgTFRFWFQgICAgICAgICJOb3V2ZWF1IHR5cGUgZGUgZG9jdW1lbnQiLC0xLDMsMiwxMDAsMTUKICAgIExJU1RCT1ggICAgICBJRENfTkVXRklMRSwzLDEyLDkwLDY1LExCU19OT0lOVEVHUkFMSEVJR0hUCiAgICBQVVNIQlVUVE9OICAgIiZPSyIsSURPSyw5NywxMiw0MCwxMgogICAgUFVTSEJVVFRPTiAgICImQW5udWxlciIsSURDQU5DRUwsOTcsMjYsNDAsMTIKRU5ECgpJRERfUEFSQUZPUk1BVCBESUFMT0cgRElTQ0FSREFCTEUgMzAsIDIwLCAyMDAsIDExMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ2FwdGlvbiAiRm9ybWF0IGRlIHBhcmFncmFwaGUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICJJbmRlbnRhdGlvbiIsIC0xLCAxMCwgMTAsIDEyMCwgNjgKICAgIExURVhUICJHYXVjaGUiLCAtMSwgMTUsIDIyLCA0MCwgMTMKICAgIEVESVRURVhUIElEQ19QQVJBX0xFRlQsIDU1LCAyMCwgNjAsIDEzCiAgICBMVEVYVCAiRHJvaXRlIiwgLTEsIDE1LCA0MCwgNDAsIDEzCiAgICBFRElUVEVYVCBJRENfUEFSQV9SSUdIVCwgNTUsIDM4LCA2MCwgMTMKICAgIExURVhUICJQcmVtaehyZSBsaWduZSIsIC0xLCAxNSwgNTgsIDQwLCAxOAogICAgRURJVFRFWFQgSURDX1BBUkFfRklSU1QsIDU1LCA1NiwgNjAsIDEzCiAgICBMVEVYVCAiQWxpZ25lbWVudCIsIC0xLCAxNSwgODcsIDQwLCAxMwogICAgQ09NQk9CT1ggSURDX1BBUkFfQUxJR04sIDU1LCA4NSwgNjAsIDYwLCBDQlNfRFJPUERPV05MSVNUCiAgICBQVVNIQlVUVE9OICImT0siLCBJRE9LLCAxMzcsIDE1LCA1MCwgMTUKICAgIFBVU0hCVVRUT04gIiZBbm51bGVyIiwgSURDQU5DRUwsIDEzNywgMzMsIDUwLCAxNQpFTkQKCklERF9UQUJTVE9QUyBESUFMT0cgRElTQ0FSREFCTEUgMzAsIDIwLCAyMDAsIDExMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ2FwdGlvbiAiVGFidWxhdGlvbnMiCkZPTlQgOCwgIk1TIFNIZWxsIERMZyIKQkVHSU4KICAgIEdST1VQQk9YICJBcnLqdHMgZGUgdGFidWxhdGlvbiIsIC0xLCAxMCwgMTAsIDEyMCwgOTAKICAgIENPTUJPQk9YIElEQ19UQUJTVE9QUywgMjAsIDIwLCAxMDAsIDYwLCBDQlNfU0lNUExFCiAgICBERUZQVVNIQlVUVE9OICImQWpvdXRlciIsIElEX1RBQl9BREQsIDIwLCA4MCwgNDUsIDE1CiAgICBQVVNIQlVUVE9OICImU3VwcHJpbWVyIiwgSURfVEFCX0RFTCwgNzIsIDgwLCA0NSwgMTUKICAgIFBVU0hCVVRUT04gIiZPSyIsIElET0ssIDEzNywgMTUsIDUwLCAxNQogICAgUFVTSEJVVFRPTiAiJkFubnVsZXIiLCBJRENBTkNFTCwgMTM3LCAzMywgNTAsIDE1CiAgICBQVVNIQlVUVE9OICJTdXBwcmltZXIgJnRvdXMiLCBJRF9UQUJfRU1QVFksIDEzNywgNTEsIDUwLCAxNQpFTkQKCklERF9GT1JNQVRPUFRTIERJQUxPRyBESVNDQVJEQUJMRSAwLCAwLCAyODAsIDExMApTVFlMRSBEU19TWVNNT0RBTApDYXB0aW9uICIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICJFbnZlbG9wcGVtZW50IGRlIGxpZ25lIiwgLTEsIDEwLCAxMCwgMTcwLCA4NQogICAgUkFESU9CVVRUT04gIk5vIGxpbmUgd3JhcHBpbmciLCBJRENfUEFHRUZNVF9XTiwgMTgsIDI1LCAxNDUsIDE1CiAgICBSQURJT0JVVFRPTiAiRW52ZWxvcHBlIGxlIHRleHRlIOAgcGFydGlyIGRlIGxhIGJvcmR1cmUgZGUgZmVu6nRyZSIsIElEQ19QQUdFRk1UX1dXLCAxOCwgNDUsIDE0NSwgMTUKICAgIFJBRElPQlVUVE9OICJFbnZlbG9wcGUgbGUgdGV4dGUg4CBwYXJ0aXIgZGUgbGEgJm1hcmdlIiwgSURDX1BBR0VGTVRfV00sIDE4LCA2NSwgMTQ1LCAxNQogICAgR1JPVVBCT1ggIkJhcnJlcyBkJ291dGlscyIsIC0xLCAxNzAsIDEwLCAxMjAsIDg1CiAgICBDSEVDS0JPWCAiJkJhcnJlIGQnb3V0aWxzIiwgSURDX1BBR0VGTVRfVEIsIDE4MCwgMjAsIDgwLCAxNQogICAgQ0hFQ0tCT1ggIkJhcnJlIGRlICZmb3JtYXQiLCBJRENfUEFHRUZNVF9GQiwgMTgwLCAzOCwgODAsIDE1CiAgICBDSEVDS0JPWCAiJlLoZ2xlIiwgSURDX1BBR0VGTVRfUlUsIDE4MCwgNTYsIDgwLCAxNQogICAgQ0hFQ0tCT1ggIkJhcnJlIGRlICZzdGF0dXQiLCBJRENfUEFHRUZNVF9TQiwgMTgwLCA3NCwgODAsIDE1CiAgICBMVEVYVCAiIiwgSURDX1BBR0VGTVRfSUQsIDAsMCwwLDAKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgU1RSSU5HX1JJQ0hURVhUX0ZJTEVTX1JURiwgICAgICJEb2N1bWVudHMgdGV4dGUgcmljaGUgKCoucnRmKSIKICAgIFNUUklOR19URVhUX0ZJTEVTX1RYVCwgICAgICAgICAiRG9jdW1lbnRzIHRleHRlICgqLnR4dCkiCiAgICBTVFJJTkdfVEVYVF9GSUxFU19VTklDT0RFX1RYVCwgIkRvY3VtZW50cyB0ZXh0ZSB1bmljb2RlICgqLnR4dCkiCiAgICBTVFJJTkdfQUxMX0ZJTEVTLCAgICAgICAgICAgICAgIlRvdXMgbGVzIGRvY3VtZW50cyAoKi4qKSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgU1RSSU5HX0FMSUdOX0xFRlQsICAgICAgICAgICAgIkdhdWNoZSIKICAgIFNUUklOR19BTElHTl9SSUdIVCwgICAgICAgICAgICJEcm9pdGUiCiAgICBTVFJJTkdfQUxJR05fQ0VOVEVSLCAgICAgICAgICAiQ2VudHJlciIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgU1RSSU5HX05FV0ZJTEVfUklDSFRFWFQsICAgICAiRG9jdW1lbnQgdGV4dGUgcmljaGUiCiAgICBTVFJJTkdfTkVXRklMRV9UWFQsICAgICAgICAgICJEb2N1bWVudCB0ZXh0ZSIKICAgIFNUUklOR19ORVdGSUxFX1RYVF9VTklDT0RFLCAgIkRvY3VtZW50IHRleHRlIHVuaWNvZGUiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFNUUklOR19QUklOVEVSX0ZJTEVTX1BSTiwgICAgICAgICJGaWNoaWVycyBkJ2ltcHJlc3Npb24gKCouUFJOKSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgU1RSSU5HX1ZJRVdQUk9QU19USVRMRSwgICAgICAgICAgIk9wdGlvbnMiCiAgICBTVFJJTkdfVklFV1BST1BTX1RFWFQsICAgICAgICAgICAiVGV4dGUiCiAgICBTVFJJTkdfVklFV1BST1BTX1JJQ0hURVhULCAgICAgICAiVGV4dGUgcmljaGUiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFNUUklOR19QUkVWSUVXX1BSSU5ULCAgICAgICAgICAgICJJbXByaW1lciIKICAgIFNUUklOR19QUkVWSUVXX05FWFRQQUdFLCAgICAgICAgICJQYWdlIHN1aXZhbnRlIgogICAgU1RSSU5HX1BSRVZJRVdfUFJFVlBBR0UsICAgICAgICAgIlBhZ2UgcHLpY+lkZW50ZSIKICAgIFNUUklOR19QUkVWSUVXX1RXT1BBR0VTLCAgICAgICAgICJEZXV4IHBhZ2VzIgogICAgU1RSSU5HX1BSRVZJRVdfT05FUEFHRSwgICAgICAgICAgIlVuZSBwYWdlIgogICAgU1RSSU5HX1BSRVZJRVdfQ0xPU0UsICAgICAgICAgICAgIkZlcm1lciIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgU1RSSU5HX1VOSVRTX0NNLCAgICAgICAgICAgICAiY20iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFNUUklOR19ERUZBVUxUX0ZJTEVOQU1FLCAgICAgIkRvY3VtZW50IgogICAgU1RSSU5HX1BST01QVF9TQVZFX0NIQU5HRVMsICAiRW5yZWdpc3RyZXIgbGVzIG1vZGlmaWNhdGlvbnMgZGUgq6Alc6C7oD8iCiAgICBTVFJJTkdfU0VBUkNIX0ZJTklTSEVELCAgICAgICJSZWNoZXJjaGUgdGVybWlu6WUgZGFucyBsZSBkb2N1bWVudC4iCiAgICBTVFJJTkdfTE9BRF9SSUNIRURfRkFJTEVELCAgICJJbXBvc3NpYmxlIGRlIGNoYXJnZXIgbGEgYmlibGlvdGjocXVlIFJpY2hFZGl0LiIKICAgIFNUUklOR19TQVZFX0xPU0VGT1JNQVRUSU5HLCAgIlZvdXMgYXZleiBjaG9pc2kgZCdlbnJlZ2lzdHJlciBlbiB0ZXh0ZSBzaW1wbGUsICIgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2UgcXVpIGNhdXNlcmEgbGEgcGVydGUgZGUgdG91dCBmb3JtYXR0YWdlLiAiIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlZvdWxlei12b3VzIHZyYWltZW50IGNvbnRpbnVlcqA/IgogICAgU1RSSU5HX0lOVkFMSURfTlVNQkVSLCAgICAgICAiRm9ybWF0IGRlIG5vbWJyZSBpbnZhbGlkZSIKICAgIFNUUklOR19PTEVfU1RPUkFHRV9OT1RfU1VQUE9SVEVELCAiTGVzIGRvY3VtZW50cyBjb250ZW5ldXIgT0xFIG5lIHNvbnQgcGFzIHN1cHBvcnTpcyIKICAgIFNUUklOR19XUklURV9GQUlMRUQsICAgICAgICAgICAgICAiSW1wb3NzaWJsZSBkJ2VucmVnaXN0cmVyIGxlIGZpY2hpZXIuIgogICAgU1RSSU5HX1dSSVRFX0FDQ0VTU19ERU5JRUQsICAgICAgICJWb3VzIG5lIGRpc3Bvc2V6IHBhcyBkZXMgYWNj6HMgbuljZXNzYWlyZXMg4CBsJ2VucmVnaXN0cmVtZW50IGR1IGZpY2hpZXIuIgogICAgU1RSSU5HX09QRU5fRkFJTEVELCAgICAgICAgICAgICAgICJJbXBvc3NpYmxlIGQnb3V2cmlyIGxlIGZpY2hpZXIuIgogICAgU1RSSU5HX09QRU5fQUNDRVNTX0RFTklFRCwgICAgICAgICJWb3VzIG5lIGRpc3Bvc2V6IHBhcyBkZXMgYWNj6HMgbuljZXNzYWlyZXMg4CBsJ291dmVydHVyZSBkdSBmaWNoaWVyLiIKICAgIFNUUklOR19QUklOVElOR19OT1RfSU1QTEVNRU5URUQsICJMJ2ltcHJlc3Npb24gbidlc3QgcGFzIGltcGzpbWVudOllIgogICAgU1RSSU5HX01BWF9UQUJfU1RPUFMsICAgICAgICAgICAgICJJbXBvc3NpYmxlIGQnYWpvdXRlciBwbHVzIGRlIDMyIHRhcXVldHMgZGUgdGFidWxhdGlvbi4iCkVORAo=