LyoKICogQ29weXJpZ2h0IDE5OTkgSnVsaW8gQ2VzYXIgR2F6cXVlegogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpTVFJJTkdUQUJMRSBMQU5HVUFHRSBMQU5HX1NQQU5JU0gsIFNVQkxBTkdfREVGQVVMVAogICBCRUdJTgoKICAgLyogTU1TWVMgZXJyb3JzICovCiAgIE1NU1lTRVJSX05PRVJST1IsICJFbCBjb21hbmRvIGVzcGVjaWZpY2FkbyBmdWUgZWplY3V0YWRvLiIKICAgTU1TWVNFUlJfRVJST1IsICJFcnJvciBleHRlcm5vIGluZGVmaW5pZG8uIgogICBNTVNZU0VSUl9CQURERVZJQ0VJRCwgIlVuIGlkZW50aWZpY2Fkb3IgZGUgZGlzcG9zaXRpdm8gcXVlIGhhIHNpZG8gdXNhZG8gZXN04SBmdWVyYSBkZSByYW5nbyBwYXJhIHN1IHNpc3RlbWEuIgogICBNTVNZU0VSUl9OT1RFTkFCTEVELCAiRWwgY29udHJvbGFkb3Igbm8gZnVlIGFjdGl2YWRvLiIKICAgTU1TWVNFUlJfQUxMT0NBVEVELCAiRWwgZGlzcG9zaXRpdm8gZXNwZWNpZmljYWRvIGH6biBlc3ThIGVuIHVzby4gRXNwZXJlIGhhc3RhIHF1ZSBlc3TpIGxpYnJlIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTU1TWVNFUlJfSU5WQUxIQU5ETEUsICJFbCBoYW5kbGUgZGUgZGlzcG9zaXRpdm8gZXNwZWNpZmljYWRvIGVzIGluduFsaWRvLiIKICAgTU1TWVNFUlJfTk9EUklWRVIsICJObyBoYXkgdW4gY29udHJvbGFkb3IgaW5zdGFsYWRvIGVuIHN1IHNpc3RlbWEgIVxuIgogICBNTVNZU0VSUl9OT01FTSwgIk5vIGhheSBzdWZpY2llbnRlIG1lbW9yaWEgZGlzcG9uaWJsZSBwYXJhIGVzdGEgdGFyZWEuIENpZXJyZSB1bmEgbyBt4XMgYXBsaWNhY2lvbmVzIHBhcmEgYXVtZW50YXIgbGEgbWVtb3JpYSBkaXNwb25pYmxlIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTU1TWVNFUlJfTk9UU1VQUE9SVEVELCAiRXN0YSBmdW5jafNuIG5vIGVzdOEgc29wb3J0YWRhLiBVc2UgbGEgZnVuY2nzbiBDYXBhY2lkYWRlcyBwYXJhIGRldGVybWluYXIgcXVlIGZ1bmNpb25lcyB5IG1lbnNhamVzIHNvcG9ydGEgZWwgY29udHJvbGFkb3IuIgogICBNTVNZU0VSUl9CQURFUlJOVU0sICJTZSBoYSBlc3BlY2lmaWNhZG8gdW4gbvptZXJvIGRlIGVycm9yIHF1ZSBubyBlc3ThIGRlZmluaWRvIGVuIGVsIHNpc3RlbWEuIgogICBNTVNZU0VSUl9JTlZBTEZMQUcsICJTZSBoYSBwYXNhZG8gdW4gZmxhZyBubyB24WxpZG8gYSB1bmEgZnVuY2nzbiBkZWwgc2lzdGVtYS4iCiAgIE1NU1lTRVJSX0lOVkFMUEFSQU0sICJTZSBoYSBwYXNhZG8gdW4gcGFy4W1ldHJvIG5vIHbhbGlkbyBhIHVuYSBmdW5jafNuIGRlbCBzaXN0ZW1hLiIKCiAgIC8qIFdBVkUgZXJyb3JzICovCiAgIFdBVkVSUl9CQURGT1JNQVQsICJFbCBmb3JtYXRvIGVzcGVjaWZpY2FkbyBubyBlc3ThIHNvcG9ydGFkbyBvIG5vIHB1ZWRlIHNlciB0cmFkdWNpZG8uIFVzZSBsYSBmdW5jafNuIENhcGFjaWRhZGVzIHBhcmEgZGV0ZXJtaW5hciBsb3MgZm9ybWF0b3Mgc29wb3J0YWRvcy4iCiAgIFdBVkVSUl9TVElMTFBMQVlJTkcsICJFc3RhIG9wZXJhY2nzbiBubyBwdWVkZSBlamVjdXRhcnNlIG1pZW50cmFzIGNvbnRpbvphIGxhIHJlcHJvZHVjY2nzbi4gUmVpbmljaWUgZWwgZGlzcG9zaXRpdm8sIG8gZXNwZXJlIGhhc3RhIHF1ZSBsYSByZXByb2R1Y2Np824gdGVybWluZS4iCiAgIFdBVkVSUl9VTlBSRVBBUkVELCAiTGEgY2FiZWNlcmEgZGVsIGZvcm1hIGRlIG9uZGEgbm8gZXN04SBwcmVwYXJhZGEuIFVzZSBsYSBmdW5jafNuIFByZXBhcmFyIHBhcmEgcHJlcGFyYXIgbGEgY2FiZWNlcmEsIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgV0FWRVJSX1NZTkMsICJObyBwdWVkZSBhYnJpcnNlIGVsIGRpc3Bvc2l0aXZvIHNpbiB1c2FyIGVsIGZsYWcgV0FWRV9BTExPV1NZTkMuIFVzZSBlbCBmbGFnLCBlIGludGVudGUgbnVldmFtZW50ZS4iCgogICAvKiBNSURJIGVycm9ycyAqLwogICBNSURJRVJSX1VOUFJFUEFSRUQsICJMYSBjYWJlY2VyYSBNSURJIG5vIGVzdOEgcHJlcGFyYWRhLiBVc2UgbGEgZnVuY2nzbiBQcmVwYXJhciBwYXJhIHByZXBhcmFyIGxhIGNhYmVjZXJhLCBlIGludGVudGUgbnVldmFtZW50ZS4iCiAgIE1JRElFUlJfU1RJTExQTEFZSU5HLCAiRXN0YSBvcGVyYWNp824gbm8gcHVlZGUgZWplY3V0YXJzZSBtaWVudHJhcyBzZSBjb250aW76YSB0b2NhbmRvLiBSZWluaWNpZSBlbCBkaXNwb3NpdGl2bywgbyBlc3BlcmEgaGFzdGEgcXVlIHRlcm1pbmUgZGUgdG9jYXIuIgogICBNSURJRVJSX05PTUFQLCAiTm8gc2UgZW5jb250cvMgdW4gbWFwYSBNSURJLiBQdWVkZSBoYWJlciB1biBwcm9ibGVtYSBjb24gZWwgY29udHJvbGFkb3IsIGVsIGVsIGZpY2hlcm8gTUlESU1BUC5DRkcgcHVlZGUgZmFsdGFyIG8gZXN0YXIgY29ycnVwdG8uIgogICBNSURJRVJSX05PVFJFQURZLCAiRWwgcHVlcnRvIGVzdOEgdHJhbnNtaXRpZW5kbyBkYXRvcyBhbCBkaXNwb3NpdGl2by4gRXNwZXJhIGhhc3RhIHF1ZSBsb3MgZGF0b3MgaGF5YW4gc2lkbyB0cmFuc21pdGlkb3MsIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTUlESUVSUl9OT0RFVklDRSwgIkxhIGNvbmZpZ3VyYWNp824gYWN0dWFsIGRlbCBtYXBlYWRvciBNSURJIHJlZmllcmUgYSB1biBkaXNwb3NpdGl2byBNSURJIHF1ZSBubyBlc3ThIGluc3RhbGFkbyBlbiBlbCBzaXN0ZW1hLiBVc2UgZWwgbWFwZWFkb3IgTUlESSBwYXJhIGVkaXRhciBsYSBjb25maWd1cmFjafNuLiIKICAgTUlESUVSUl9JTlZBTElEU0VUVVAsICJMYSBjb25maWd1cmFjafNuIGFjdHVhbCBkZSBNSURJIGVzdOEgZGHxYWRhLiBDb3BpZSBlbCBmaWNoZXJvIE1JRElNQVAuQ0ZHIG9yaWdpbmFsIGFsIGRpcmVjdG9yaW8gU1lTVEVNIGRlIFdpbmRvd3MgU1lTVEVNLCBlIGludGVudGUgbnVldmFtZW50ZS4iCgogICAvKiBNQ0kgZXJyb3JzICovCiAgIE1DSUVSUl9JTlZBTElEX0RFVklDRV9JRCwgIklkZW50aWZpY2Fkb3IgZGUgZGlzcG9zaXRpdm8gTUNJIGluduFsaWRvLiBVc2UgZWwgaWRlbnRpZmljYWRvciBkZXZ1ZWx0byBhbCBhYnJpciBlbCBkaXNwb3NpdGl2byBNQ0kuIgogICBNQ0lFUlJfVU5SRUNPR05JWkVEX0tFWVdPUkQsICJFbCBjb250cm9sYWRvciBubyBwdWVkZSByZWNvbm9jZXIgZWwgcGFy4W1ldHJvIGRlIGNvbWFuZG8gZXNwZWNpZmljYWRvLiIKICAgTUNJRVJSX1VOUkVDT0dOSVpFRF9DT01NQU5ELCAiRWwgY29udHJvbGFkb3Igbm8gcHVlZGUgcmVjb25vY2VyIGVsIGNvbWFuZG8gZXNwZWNpZmljYWRvLiIKICAgTUNJRVJSX0hBUkRXQVJFLCAiSGF5IHVuIHByb2JsZW1hIGNvbiBzdSBkaXNwb3NpdGl2by4gQXNlZ/pyZXNlIGRlIHF1ZSBlc3TpIGZ1bmNpb25hbmRvIGNvcnJlY3RhbWVudGUgbyBjb250YWN0ZSBhbCBmYWJyaWNhbnRlIGRlbCBkaXNwb3NpdGl2by4iCiAgIE1DSUVSUl9JTlZBTElEX0RFVklDRV9OQU1FLCAiRWwgZGlzcG9zaXRpdm8gZXNwZWNpZmljYWRvIG5vIGVzdOEgYWJpZXJ0byBvIG5vIGVzIHJlY29ub2NpZG8gcG9yIE1DSS4iCiAgIE1DSUVSUl9PVVRfT0ZfTUVNT1JZLCAiTm8gaGF5IHN1ZmljaWVudGUgbWVtb3JpYSBwYXJhIGVzdGEgdGFyZWEuXG5DaWVycmUgdW5hIG8gbeFzIGFwbGljYWNpb25lcyBwYXJhIGF1bWVudGFyIGxhIG1lbW9yaWEgZGlzcG9uaWJsZSBlIGludGVudGUgbnVldmFtZW50ZS4iCiAgIE1DSUVSUl9ERVZJQ0VfT1BFTiwgIkVsIG5vbWJyZSBkZSBkaXNwb3NpdGl2byB5YSBlc3ThIHNpZW5kbyB1c2FkbyBjb21vIHVuIGFsaWFzIHBvciBlc3RhIGFwbGljYWNp824uIFVzZSB1biBhbGlhcyD6bmljby4iCiAgIE1DSUVSUl9DQU5OT1RfTE9BRF9EUklWRVIsICJIYXkgdW4gcHJvYmxlbWEgbm8gZGV0ZWN0YWJsZSBlbiBsYSBjYXJnYSBkZWwgY29udHJvbGFkb3IgZGUgZGlzcG9zaXRpdm8gZXNwZWNpZmljYWRvLiIKICAgTUNJRVJSX01JU1NJTkdfQ09NTUFORF9TVFJJTkcsICJObyBzZSBoYSBlc3BlY2lmaWNhZG8gdW4gY29tYW5kby4iCiAgIE1DSUVSUl9QQVJBTV9PVkVSRkxPVywgIkxhIGNhZGVuYSBkZSBzYWxpZGEgZXMgbXV5IGdyYW5kZSBwYXJhIGNhYmVyIGVuIGVsIGJ1ZmZlciBkZSByZXRvcm5vLiBBdW1lbnRlIGVsIHRhbWHxbyBkZWwgYnVmZmVyLiIKICAgTUNJRVJSX01JU1NJTkdfU1RSSU5HX0FSR1VNRU5ULCAiRWwgY29tYW5kbyBlc3BlY2lmaWNhZG8gcmVxdWllcmUgdW4gcGFy4W1ldHJvIGRlIGNhZGVuYSBkZSBjYXJhY3RlcmVzLiBQb3IgZmF2b3IgcHJvdmVhIHVuby4iCiAgIE1DSUVSUl9CQURfSU5URUdFUiwgIkVsIGVudGVybyBlc3BlY2lmaWNhZG8gZXMgaW524WxpZG8gcGFyYSBlc3RlIGNvbWFuZG8uIgogICBNQ0lFUlJfUEFSU0VSX0lOVEVSTkFMLCAiRWwgY29udHJvbGFkb3IgZGUgZGlzcG9zaXRpdm8gZGV2b2x2afMgdW4gdGlwbyBkZSByZXRvcm5vIGluduFsaWRvLiBDb250YWN0ZSBhbCBmYWJyaWNhbnRlIGRlbCBkaXNwb3NpdGl2byBwYXJhIG9idGVuZXIgdW4gbnVldm8gY29udHJvbGFkb3IuIgogICBNQ0lFUlJfRFJJVkVSX0lOVEVSTkFMLCAiSGF5IHVuIHByb2JsZW1hIGNvbiBlbCBjb250cm9sYWRvciBkZSBkaXNwb3NpdGl2by4gQ29udGFjdGUgYWwgZmFicmljYW50ZSBkZWwgZGlzcG9zaXRpdm8gcGFyYSBvYnRlbmVyIHVuIG51ZXZvIGNvbnRyb2xhZG9yLiIKICAgTUNJRVJSX01JU1NJTkdfUEFSQU1FVEVSLCAiRWwgY29tYW5kbyBlc3BlY2lmaWNhZG8gcmVxdWllcmUgdW4gcGFy4W1ldHJvLiBQb3IgZmF2b3IgcHJvdmVhIHVuby4iCiAgIE1DSUVSUl9VTlNVUFBPUlRFRF9GVU5DVElPTiwgIkVsIGRpc3Bvc2l0aXZvIE1DSSBxdWUgZXN04SB1c2FuZG8gbm8gc29wb3J0YSBlbCBjb21hbmRvIGVzcGVjaWZpY2Fkby4iCiAgIE1DSUVSUl9GSUxFX05PVF9GT1VORCwgIk5vIHNlIGVuY3VlbnRyYSBlbCBmaWNoZXJvIGVzcGVjaWZpY2Fkby4gQXNlZ/pyZXNlIHF1ZSBlbCBwYXRoIHkgZWwgbm9tYnJlIGRlbCBmaWNoZXJvIHNvbiBjb3JyZWN0b3MuIgogICBNQ0lFUlJfREVWSUNFX05PVF9SRUFEWSwgIkVsIGNvbnRyb2xhZG9yIGRlIGRpc3Bvc2l0aXZvIG5vIGVzdOEgbGlzdG8uIgogICBNQ0lFUlJfSU5URVJOQUwsICJVbiBwcm9ibGVtYSBoYSBvY3VycmlkbyBpbmljaWFsaXphbmRvIGVsIE1DSS4gSW50ZW50ZSByZWluaWNpYXIgV2luZG93cy4iCiAgIE1DSUVSUl9EUklWRVIsICJIYXkgdW4gcHJvYmxlbWEgY29uIGVsIGNvbnRyb2xhZG9yIGRlbCBkaXNwb3NpdGl2by4gRWwgY29udHJvbGFkb3Igc2UgaGEgY2VycmFkby4gSW50ZW50ZSByZWVudmlhciBlbCBjb21hbmRvLiIKICAgTUNJRVJSX0NBTk5PVF9VU0VfQUxMLCAiVXRpbGljZSB1biBub21icmUgZGUgZGlzcG9zaXRpdm8gZXNwZWPtZmljbyBwYXJhIGVzdGUgY29tYW5kby4iCiAgIE1DSUVSUl9NVUxUSVBMRSwgIkhhbiBvY3VycmlkbyBlcnJvcmVzIGVuIG3hcyBkZSB1biBkaXNwb3NpdGl2by4gRXNwZWNpZmlxdWUgY2FkYSBjb21hbmRvIHkgZGlzcG9zaXRpdm8gcG9yIHNlcGFyYWRvIHBhcmEgZGV0ZXJtaW5hciBxdWUgZGlzcG9zaXRpdm9zIGNhdXNhcm9uIGVsIGVycm9yLiIKICAgTUNJRVJSX0VYVEVOU0lPTl9OT1RfRk9VTkQsICJObyBwdWVkZSBkZXRlcm1pbmFyc2UgZWwgdGlwbyBkZSBkaXNwb3NpdGl2byBhIHBhcnRpciBkZSBsYSBleHRlbnNp824gZGUgZmljaGVybyBkYWRhLiIKICAgTUNJRVJSX09VVE9GUkFOR0UsICJFbCBwYXLhbWV0cm8gZXNwZWNpZmljYWRvIGVzdOEgZnVlcmEgZGVsIHJhbmdvIHBhcmEgZWwgY29tYW5kbyBlc3BlY2lmaWNhZG8uIgogICBNQ0lFUlJfRkxBR1NfTk9UX0NPTVBBVElCTEUsICJMb3MgcGFy4W1ldHJvcyBlc3BlY2lmaWNhZG9zIG5vIHB1ZWRlbiB1c2Fyc2UganVudG9zLiIKICAgTUNJRVJSX0ZJTEVfTk9UX1NBVkVELCAiTm8gcHVlZGUgZ3JhYmFyc2UgZWwgZmljaGVybyBlc3BlY2lmaWNhZG8uIEFzZWf6cmVzZSBkZSB0ZW5lciBzdWZpY2llbnRlIGVzcGFjaW8gZW4gZGlzY28gbyBkZSBxdWUgcGVybWFuZWNlIGNvbmVjdGFkbyBhIGxhIHJlZC4iCiAgIE1DSUVSUl9ERVZJQ0VfVFlQRV9SRVFVSVJFRCwgIk5vIHB1ZWRlIGVuY29udHJhcnNlIGVsIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2Fkby4gQXNlZ/pyZXNlIGRlIHF1ZSBlc3ThIGluc3RhbGFkbyBvIGRlIHF1ZSBlbCBub21icmUgZGVsIGRpc3Bvc2l0aXZvIGVzdOEgZXNjcml0byBjb3JyZWN0YW1lbnRlLiIKICAgTUNJRVJSX0RFVklDRV9MT0NLRUQsICJFbCBkaXNwb3NpdGl2byBlc3BlY2lmaWNhZG8gZXN04SBzaWVuZG8gY2VycmFkby4gRXNwZXJlIHVub3Mgc2VndW5kb3MgZSBpbnRlbnRlIG51ZXZhbWVudGUuIgogICBNQ0lFUlJfRFVQTElDQVRFX0FMSUFTLCAiRWwgYWxpYXMgZXNwZWNpZmljYWRvIHlhIGVzdOEgc2llbmRvIHVzYWRvIHBvciBlc3RhIGFwbGljYWNp824uIFVzZSB1biBhbGlhcyD6bmljby4iCiAgIE1DSUVSUl9CQURfQ09OU1RBTlQsICJFbCBwYXLhbWV0cm8gZXNwZWNpZmljYWRvIGVzIGluduFsaWRvIHBhcmEgZXN0ZSBjb21hbmRvLiIKICAgTUNJRVJSX01VU1RfVVNFX1NIQVJFQUJMRSwgIkVsIGNvbnRyb2xhZG9yIGRlIGRpc3Bvc2l0aXZvIHlhIGVzdOEgZW4gdXNvLiBQYXJhIGNvbXBhcnRpcmxvLCB1c2UgZWwgcGFy4W1ldHJvICdjb21wYXJ0aWJsZScgKCdzaGFyZWFibGUnKSBjb24gY2FkYSBjb21hbmRvICdhYnJpcicgKCdvcGVuJykuIgogICBNQ0lFUlJfTUlTU0lOR19ERVZJQ0VfTkFNRSwgIkVsIGNvbWFuZG8gZXNwZWNpZmljYWRvIHJlcXVpZXJlIHVuIGFsaWFzLCBmaWNoZXJvLCBjb250cm9sYWRvciBvIG5vbWJyZSBkZSBkaXNwb3NpdGl2by4gUG9yIGZhdm9yIHByb3ZlYSB1bm8uIgogICBNQ0lFUlJfQkFEX1RJTUVfRk9STUFULCAiRWwgdmFsb3IgZXNwZWNpZmljYWRvIHBhcmEgZWwgZm9ybWF0byBkZSB0aWVtcG8gZXMgaW524WxpZG8uIFZlcmlmaXF1ZSBsb3MgZm9ybWF0b3MgduFsaWRvcyBlbiBsYSBkb2N1bWVudGFjafNuIGRlIE1DSS4iCiAgIE1DSUVSUl9OT19DTE9TSU5HX1FVT1RFLCAiVW5hIGNvbWlsbGEgZGUgY2llcnJlIGVzdOEgZmFsdGFuZG8gZW4gZWwgdmFsb3IgZGVsIHBhcuFtZXRyby4gUG9yIGZhdm9yIHByb3ZlYSB1bmEuIgogICBNQ0lFUlJfRFVQTElDQVRFX0ZMQUdTLCAiVW4gcGFy4W1ldHJvIG8gdmFsb3IgZnVlIGVzcGVjaWZpY2FkbyBkb3MgdmVjZXMuIEVzcGVjaWbtcXVlbG8gdW5hIHNvbGEgdmV6LiIKICAgTUNJRVJSX0lOVkFMSURfRklMRSwgIkVsIGZpY2hlcm8gZXNwZWNpZmljYWRvIG5vIHB1ZWRlIHNlciB0b2NhZG8gZW4gZWwgZGlzcG9zaXRpdm8gTUNJIGVzcGVjaWZpY2Fkby4gRWwgZmljaGVybyBwdWVkZSBlc3RhciBjb3JydXB0byBvIGVuIHVuIGZvcm1hdG8gaW5jb3JyZWN0by4iCiAgIE1DSUVSUl9OVUxMX1BBUkFNRVRFUl9CTE9DSywgIlNlIGhhIHBhc2FkbyB1biBibG9xdWUgZGUgcGFy4W1ldHJvcyBudWxvIGFsIE1DSS4iCiAgIE1DSUVSUl9VTk5BTUVEX1JFU09VUkNFLCAiTm8gcHVlZGUgZ3VhcmRhcnNlIHVuIGZpY2hlcm8gc2luIG5vbWJyZS4gUHJvdmVhIHVuIG5vbWJyZSBwYXJhIGVsIGZpY2hlcm8uIgogICBNQ0lFUlJfTkVXX1JFUVVJUkVTX0FMSUFTLCAiRGViZSBlc3BlY2lmaWNhciB1biBhbGlhcyBjdWFuZG8gdXRpbGljZSBlbCBwYXLhbWV0cm8gJ251ZXZvJy4iCiAgIE1DSUVSUl9OT1RJRllfT05fQVVUT19PUEVOLCAiTm8gcHVlZGUgdXNhciBlbCBmbGFnICdub3RpZmljYXInIGNvbiBkaXNwb3NpdGl2b3MgZGUgYXBlcnR1cmEgYXV0b23hdGljYS4iCiAgIE1DSUVSUl9OT19FTEVNRU5UX0FMTE9XRUQsICJObyBwdWVkZSB1c2FyIHVuIG5vbWJyZSBkZSBmaWNoZXJvIGNvbiBlbCBkaXNwb3NpdGl2byBlc3BlY2lmaWNhZG8uIgogICBNQ0lFUlJfTk9OQVBQTElDQUJMRV9GVU5DVElPTiwgIk5vIHB1ZWRlbiBlamVjdXRhcnNlIGxvcyBjb21hbmRvcyBlbiBlbCBvcmRlbiBlc3BlY2lmaWNhZG8uIENvcnJpamEgbGEgc2VjdWVuY2lhIGRlIGNvbWFuZG9zIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTUNJRVJSX0lMTEVHQUxfRk9SX0FVVE9fT1BFTiwgIk5vIHB1ZWRlIGVqZWN1dGFyc2UgZWwgY29tYW5kbyBlc3BlY2lmaWNhZG8gZW4gdW4gZGlzcG9zaXRpdm8gZGUgYXBlcnR1cmEgYXV0b23hdGljYS4gRXNwZXJlIGhhc3RhIHF1ZSBlbCBkaXNwb3NpdGl2byBlc3TpIGNlcnJhZG8gZSBpbnRlbnRlIG51ZXZhbWVudGUuIgogICBNQ0lFUlJfRklMRU5BTUVfUkVRVUlSRUQsICJFbCBub21icmUgZGVsIGZpY2hlcm8gZXMgaW524WxpZG8uIEFzZWf6cmVzZSBkZSBxdWUgZWwgbm9tYnJlIGRlbCBmaWNoZXJvIG5vIGVzIG1heW9yIGRlIDggY2FyYWN0ZXJlcywgc2VndWlkbyBwb3IgdW4gcHVudG8geSB1bmEgZXh0ZW5zafNuLiIKICAgTUNJRVJSX0VYVFJBX0NIQVJBQ1RFUlMsICJObyBwdWVkZSBlc3BlY2lmaWNhciBjYXJhY3RlcmVzIGV4dHJhIGRlc3B16XMgZGUgdW5hIGNhZGVuYSBlbmNlcnJhZGEgZW50cmUgY29taWxsYXMuIgogICBNQ0lFUlJfREVWSUNFX05PVF9JTlNUQUxMRUQsICJFbCBkaXNwb3NpdGl2byBlc3BlY2lmaWNhZG8gbm8gZXN04SBpbnN0YWxhZG8gZW4gZWwgc2lzdGVtYS4gVXNlIGxhIG9wY2nzbiBDb250cm9sYWRvcmVzIGVuIGVsIFBhbmVsIGRlIENvbnRyb2wgcGFyYSBpbnN0YWxhciBlbCBkaXNwb3NpdGl2by4iCiAgIE1DSUVSUl9HRVRfQ0QsICJObyBwdWVkZSBhY2NlZGVyc2UgYWwgZmljaGVybyBvIGRpc3Bvc2l0aXZvIE1DSSBlc3BlY2lmaWNhZG8uIEludGVudGUgY2FtYmlhbmRvIGRlIGRpcmVjdG9yaW8gbyByZWluaWNpYW5kbyBlbCBlcXVpcG8uIgogICBNQ0lFUlJfU0VUX0NELCAiTm8gcHVlZGUgYWNjZWRlcnNlIGFsIGZpY2hlcm8gbyBkaXNwb3NpdGl2byBNQ0kgZXNwZWNpZmljYWRvIHBvcnF1ZSBsYSBhcGxpY2FjafNuIG5vIHB1ZWRlIGNhbWJpYXIgZGUgZGlyZWN0b3Jpby4iCiAgIE1DSUVSUl9TRVRfRFJJVkUsICJObyBwdWVkZSBhY2NlZGVyc2UgYWwgZmljaGVybyBvIGRpc3Bvc2l0aXZvIE1DSSBlc3BlY2lmaWNhZG8gcG9ycXVlIGxhIGFwbGljYWNp824gbm8gcHVlZGUgY2FtYmlhciBkZSB1bmlkYWQuIgogICBNQ0lFUlJfREVWSUNFX0xFTkdUSCwgIkVzcGVjaWZpcXVlIHVuIGRpc3Bvc2l0aXZvIG8gbm9tYnJlIGRlIGNvbnRyb2xhZG9yIGRlIG1lbm9zIGRlIDc5IGNhcmFjdGVyZXMuIgogICBNQ0lFUlJfREVWSUNFX09SRF9MRU5HVEgsICJFc3BlY2lmaXF1ZSB1biBkaXNwb3NpdGl2byBvIG5vbWJyZSBkZSBjb250cm9sYWRvciBkZSBtZW5vcyBkZSA2OSBjYXJhY3RlcmVzLiIKICAgTUNJRVJSX05PX0lOVEVHRVIsICJFbCBjb21hbmRvIGVzcGVjaWZpY2FkbyByZXF1aWVyZSB1biBwYXLhbWV0cm8gZW50ZXJvLiBQb3IgZmF2b3IgcHJvdmVhIHVuby4iCiAgIE1DSUVSUl9XQVZFX09VVFBVVFNJTlVTRSwgIlRvZG9zIGxvcyBkaXNwb3NpdGl2b3MgcXVlIHB1ZWRlbiB0b2NhciBmaWNoZXJvcyBlbiBlc3RlIGZvcm1hdG8gZXN04W4gZW4gdXNvLiBFc3BlcmUgaGFzdGEgcXVlIHNlIGxpYmVyZSB1biBkaXNwb3NpdGl2byBlIGludGVudGUgbnVldmFtZW50ZS4iCiAgIE1DSUVSUl9XQVZFX1NFVE9VVFBVVElOVVNFLCAiTm8gcHVlZGUgcHJlcGFyYXJzZSBlbCBkaXNwb3NpdGl2byBkZSBmb3JtYSBkZSBvbmRhIHBhcmEgcmVwcm9kdWNjafNuIHBvcnF1ZSBlc3ThIGVuIHVzby4gRXNwZXJlIGhhc3RhIHF1ZSBlbCBkaXNwb3NpdGl2byBlc3TpIGxpYnJlIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTUNJRVJSX1dBVkVfSU5QVVRTSU5VU0UsICJUb2RvcyBsb3MgZGlzcG9zaXRpdm9zIHF1ZSBwdWVkZW4gZ3JhYmFyIGZpY2hlcm9zIGVuIGVzdGUgZm9ybWF0byBlc3ThbiBlbiB1c28uIEVzcGVyZSBoYXN0YSBxdWUgc2UgbGliZXJlIHVuIGRpc3Bvc2l0aXZvIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTUNJRVJSX1dBVkVfU0VUSU5QVVRJTlVTRSwgIk5vIHB1ZWRlIHByZXBhcmFyc2UgZWwgZGlzcG9zaXRpdm8gZGUgZm9ybWEgZGUgb25kYSBwYXJhIGdyYWJhY2nzbiBwb3JxdWUgZXN04SBlbiB1c28uIEVzcGVyZSBoYXN0YSBxdWUgZWwgZGlzcG9zaXRpdm8gZXN06SBsaWJyZSBlIGludGVudGUgbnVldmFtZW50ZS4iCiAgIE1DSUVSUl9XQVZFX09VVFBVVFVOU1BFQ0lGSUVELCAiQ3VhbHF1aWVyIGRpc3Bvc2l0aXZvIGNvbXBhdGlibGUgZGUgcmVwcm9kdWNjafNuIGRlIGZvcm1hIGRlIG9uZGEgcHVlZGUgc2VyIHVzYWRvLiIKICAgTUNJRVJSX1dBVkVfSU5QVVRVTlNQRUNJRklFRCwgIkN1YWxxdWllciBkaXNwb3NpdGl2byBjb21wYXRpYmxlIGRlIGdyYWJhY2nzbiBkZSBmb3JtYSBkZSBvbmRhIHB1ZWRlIHNlciB1c2Fkby4iCiAgIE1DSUVSUl9XQVZFX09VVFBVVFNVTlNVSVRBQkxFLCAiTm8gaGF5IG5pbmf6biBkaXNwb3NpdGl2byBkZSBmb3JtYSBkZSBvbmRhIGluc3RhbGFkbyBjYXBheiBkZSByZXByb2R1Y2lyIGZpY2hlcm9zIGVuIGVzdGUgZm9ybWF0by4gVXNlIGxhIG9wY2nzbiBEaXNwb3NpdGl2b3MgcGFyYSBpbnN0YWxhciBlbCBkaXNwb3NpdGl2byBkZSBmb3JtYSBkZSBvbmRhLiIKICAgTUNJRVJSX1dBVkVfU0VUT1VUUFVUVU5TVUlUQUJMRSwiRWwgZGlzcG9zaXRpdm8gY29uIGVsIHF1ZSBpbnRlbnRhIHJlcHJvZHVjaXIgbm8gcHVlZGUgcmVjb25vY2VyIGVsIGZvcm1hdG8gZGUgZmljaGVyby4iCiAgIE1DSUVSUl9XQVZFX0lOUFVUU1VOU1VJVEFCTEUsICJObyBoYXkgbmluZ/puIGRpc3Bvc2l0aXZvIGRlIGZvcm1hIGRlIG9uZGEgaW5zdGFsYWRvIGNhcGF6IGRlIGdyYWJhciBmaWNoZXJvcyBlbiBlc3RlIGZvcm1hdG8uIFVzZSBsYSBvcGNp824gRGlzcG9zaXRpdm9zIHBhcmEgaW5zdGFsYXIgZWwgZGlzcG9zaXRpdm8gZGUgZm9ybWEgZGUgb25kYS4iCiAgIE1DSUVSUl9XQVZFX1NFVElOUFVUVU5TVUlUQUJMRSwgIkVsIGRpc3Bvc2l0aXZvIGNvbiBlbCBxdWUgaW50ZW50YSBncmFiYXIgbm8gcHVlZGUgcmVjb25vY2VyIGVsIGZvcm1hdG8gZGUgZmljaGVyby4iCiAgIE1DSUVSUl9OT19XSU5ET1csICJObyBoYXkgdW5hIHZlbnRhbmEuIgogICBNQ0lFUlJfQ1JFQVRFV0lORE9XLCAiTm8gcHVlZGUgY3JlYXJzZSBvIHVzYXIgdW5hIHZlbnRhbmEuIgogICBNQ0lFUlJfRklMRV9SRUFELCAiTm8gcHVlZGUgbGVlcnNlIGVsIGZpY2hlcm8gZXNwZWNpZmljYWRvLiBBc2Vn+nJlc2UgZGUgcXVlIGVsIGZpY2hlcm8gYfpuIGVzdOEgcHJlc2VudGUsIG8gcmV2aXNlIHN1IGRpc2NvIG8gY29uZXhp824gZGUgcmVkLiIKICAgTUNJRVJSX0ZJTEVfV1JJVEUsICJObyBwdWVkZSBncmFiYXJzZSBlbCBmaWNoZXJvIGVzcGVjaWZpY2Fkby4gQXNlZ/pyZXNlIGRlIHRlbmVyIHN1ZmljaWVudGUgZXNwYWNpbyBlbiBkaXNjbyBvIGRlIHF1ZSBwZXJtYW5lY2UgY29uZWN0YWRvIGEgbGEgcmVkLiIKICAgTUNJRVJSX1NFUV9ESVZfSU5DT01QQVRJQkxFLCAiTG9zIGZvcm1hdG9zIGRlIHRpZW1wbyBkZSAiInNvbmcgcG9pbnRlciIiIHkgU01QVEUgc29uIG11dHVhbWVudGUgZXhjbHVzaXZvcy4gTm8gcHVlZGVuIHV0aWxpemFyc2UgYSBsYSB2ZXouIgogICBNQ0lFUlJfU0VRX05PTUlESVBSRVNFTlQsICJFbCBzaXN0ZW1hIG5vIHRpZW5lIGRpc3Bvc2l0aXZvcyBNSURJIGluc3RhbGFkb3MuIFVzZSBsYSBvcGNp824gQ29udHJvbGFkb3JlcyBlbiBlbCBQYW5lbCBkZSBDb250cm9sIHBhcmEgaW5zdGFsYXIgZWwgZGlzcG9zaXRpdm8uIgogICBNQ0lFUlJfU0VRX1BPUlRfSU5VU0UsICJFbCBwdWVydG8gTUlESSBlc3BlY2lmaWNhZG8geWEgZXN04SBlbiB1c28uIEVzcGVyZSBoYXN0YSBxdWUgZXN06SBsaWJyZSBlIGludGVudGUgbnVldmFtZW50ZS4iCiAgIE1DSUVSUl9TRVFfUE9SVF9NQVBOT0RFVklDRSwgIkxhIGNvbmZpZ3VyYWNp824gYWN0dWFsIGRlbCBtYXBlYWRvciBNSURJIHJlZmllcmUgYSB1biBkaXNwb3NpdGl2byBNSURJIHF1ZSBubyBlc3ThIGluc3RhbGFkbyBlbiBlbCBzaXN0ZW1hLiBVc2UgZWwgbGEgb3BjafNuIGRlbCBtYXBlYWRvciBNSURJIGVuIGVsIFBhbmVsIGRlIENvbnRyb2wgcGFyYSBlZGl0YXIgbGEgY29uZmlndXJhY2nzbi4iCiAgIE1DSUVSUl9TRVFfUE9SVF9NSVNDRVJST1IsICJIYSBvY3VycmlkbyB1biBlcnJvciBjb24gZWwgcHVlcnRvIGVzcGVjaWZpY2Fkby4iCiAgIE1DSUVSUl9TRVFfUE9SVF9OT05FWElTVEVOVCwgIkVsIGRpc3Bvc2l0aXZvIE1JREkgZXNwZWNpZmljYWRvIG5vIGVzdOEgaW5zdGFsYWRvIGVuIGVsIHNpc3RlbWEuIFVzZSBsYSBvcGNp824gRGlzcG9zaXRpdm9zIGVuIGVsIFBhbmVsIGRlIENvbnRyb2wgcGFyYSBpbnN0YWxhciB1biBkaXNwb3NpdGl2byBNSURJLiIKICAgTUNJRVJSX1NFUV9QT1JUVU5TUEVDSUZJRUQsICJFbCBzaXN0ZW1hIG5vIHRpZW5lIGFjdHVhbG1lbnRlIHVuIHB1ZXJ0byBNSURJIGVzcGVjaWZpY2Fkby4iCiAgIE1DSUVSUl9TRVFfVElNRVIsICJUb2RvcyBsb3MgdGVtcG9yaXphZG9yZXMgZGUgbXVsdGltZWRpYSBlc3ThbiBzaWVuZG8gdXNhZG9zIHBvciBvdHJhcyBhcGxpY2FjaW9uZXMuIENpZXJyZSB1bmEgZGUgZXNhcyBhcGxpY2FjaW9uZXMgZSBpbnRlbnRlIG51ZXZhbWVudGUuIgoKICAgRU5ECg==