LyoKICogQ29weXJpZ2h0IDE5OTkgSnVsaW8gQ2VzYXIgR2F6cXVlegogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpTVFJJTkdUQUJMRSBMQU5HVUFHRSBMQU5HX1NQQU5JU0gsIFNVQkxBTkdfREVGQVVMVAogICBCRUdJTgoKICAgLyogTU1TWVMgZXJyb3JzICovCiAgIE1NU1lTRVJSX05PRVJST1IsICJFbCBjb21hbmRvIGVzcGVjaWZpY2FkbyBmdWUgZWplY3V0YWRvLiIKICAgTU1TWVNFUlJfRVJST1IsICJFcnJvciBleHRlcm5vIGluZGVmaW5pZG8uIgogICBNTVNZU0VSUl9CQURERVZJQ0VJRCwgIlVuIGlkZW50aWZpY2Fkb3IgZGUgZGlzcG9zaXRpdm8gcXVlIGhhIHNpZG8gdXNhZG8gZXN04SBmdWVyYSBkZSByYW5nbyBwYXJhIHN1IHNpc3RlbWEuIgogICBNTVNZU0VSUl9OT1RFTkFCTEVELCAiRWwgY29udHJvbGFkb3Igbm8gZnVlIGFjdGl2YWRvLiIKICAgTU1TWVNFUlJfQUxMT0NBVEVELCAiRWwgZGlzcG9zaXRpdm8gZXNwZWNpZmljYWRvIGH6biBlc3ThIGVuIHVzby4gRXNwZXJlIGhhc3RhIHF1ZSBlc3TpIGxpYnJlIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTU1TWVNFUlJfSU5WQUxIQU5ETEUsICJFbCBoYW5kbGUgZGUgZGlzcG9zaXRpdm8gZXNwZWNpZmljYWRvIGVzIGluduFsaWRvLiIKICAgTU1TWVNFUlJfTk9EUklWRVIsICJObyBoYXkgdW4gY29udHJvbGFkb3IgaW5zdGFsYWRvIGVuIHN1IHNpc3RlbWEgIVxuIgogICBNTVNZU0VSUl9OT01FTSwgIk5vIGhheSBzdWZpY2llbnRlIG1lbW9yaWEgZGlzcG9uaWJsZSBwYXJhIGVzdGEgdGFyZWEuIENpZXJyZSB1bmEgbyBt4XMgYXBsaWNhY2lvbmVzIHBhcmEgYXVtZW50YXIgbGEgbWVtb3JpYSBkaXNwb25pYmxlIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTU1TWVNFUlJfTk9UU1VQUE9SVEVELCAiRXN0YSBmdW5jafNuIG5vIGVzdOEgc29wb3J0YWRhLiBVc2UgbGEgZnVuY2nzbiBDYXBhY2lkYWRlcyBwYXJhIGRldGVybWluYXIgcXVlIGZ1bmNpb25lcyB5IG1lbnNhamVzIHNvcG9ydGEgZWwgY29udHJvbGFkb3IuIgogICBNTVNZU0VSUl9CQURFUlJOVU0sICJTZSBoYSBlc3BlY2lmaWNhZG8gdW4gbvptZXJvIGRlIGVycm9yIHF1ZSBubyBlc3ThIGRlZmluaWRvIGVuIGVsIHNpc3RlbWEuIgogICBNTVNZU0VSUl9JTlZBTEZMQUcsICJTZSBoYSBwYXNhZG8gdW4gZmxhZyBubyB24WxpZG8gYSB1bmEgZnVuY2nzbiBkZWwgc2lzdGVtYS4iCiAgIE1NU1lTRVJSX0lOVkFMUEFSQU0sICJTZSBoYSBwYXNhZG8gdW4gcGFy4W1ldHJvIG5vIHbhbGlkbyBhIHVuYSBmdW5jafNuIGRlbCBzaXN0ZW1hLiIKCiAgIC8qIFdBVkUgZXJyb3JzICovCiAgIFdBVkVSUl9CQURGT1JNQVQsICJFbCBmb3JtYXRvIGVzcGVjaWZpY2FkbyBubyBlc3ThIHNvcG9ydGFkbyBvIG5vIHB1ZWRlIHNlciB0cmFkdWNpZG8uIFVzZSBsYSBmdW5jafNuIENhcGFjaWRhZGVzIHBhcmEgZGV0ZXJtaW5hciBsb3MgZm9ybWF0b3Mgc29wb3J0YWRvcy4iCiAgIFdBVkVSUl9TVElMTFBMQVlJTkcsICJFc3RhIG9wZXJhY2nzbiBubyBwdWVkZSBlamVjdXRhcnNlIG1pZW50cmFzIGNvbnRpbvphIGxhIHJlcHJvZHVjY2nzbi4gUmVpbmljaWUgZWwgZGlzcG9zaXRpdm8sIG8gZXNwZXJlIGhhc3RhIHF1ZSBsYSByZXByb2R1Y2Np824gdGVybWluZS4iCiAgIFdBVkVSUl9VTlBSRVBBUkVELCAiTGEgY2FiZWNlcmEgZGVsIGZvcm1hIGRlIG9uZGEgbm8gZXN04SBwcmVwYXJhZGEuIFVzZSBsYSBmdW5jafNuIFByZXBhcmFyIHBhcmEgcHJlcGFyYXIgbGEgY2FiZWNlcmEsIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgV0FWRVJSX1NZTkMsICJObyBwdWVkZSBhYnJpcnNlIGVsIGRpc3Bvc2l0aXZvIHNpbiB1c2FyIGVsIGZsYWcgV0FWRV9BTExPV1NZTkMuIFVzZSBlbCBmbGFnLCBlIGludGVudGUgbnVldmFtZW50ZS4iCgogICAvKiBNSURJIGVycm9ycyAqLwogICBNSURJRVJSX1VOUFJFUEFSRUQsICJMYSBjYWJlY2VyYSBNSURJIG5vIGVzdOEgcHJlcGFyYWRhLiBVc2UgbGEgZnVuY2nzbiBQcmVwYXJhciBwYXJhIHByZXBhcmFyIGxhIGNhYmVjZXJhLCBlIGludGVudGUgbnVldmFtZW50ZS4iCiAgIE1JRElFUlJfU1RJTExQTEFZSU5HLCAiRXN0YSBvcGVyYWNp824gbm8gcHVlZGUgZWplY3V0YXJzZSBtaWVudHJhcyBzZSBjb250aW76YSB0b2NhbmRvLiBSZWluaWNpZSBlbCBkaXNwb3NpdGl2bywgbyBlc3BlcmEgaGFzdGEgcXVlIHRlcm1pbmUgZGUgdG9jYXIuIgogICBNSURJRVJSX05PTUFQLCAiTm8gc2UgZW5jb250cvMgdW4gbWFwYSBNSURJLiBQdWVkZSBoYWJlciB1biBwcm9ibGVtYSBjb24gZWwgY29udHJvbGFkb3IsIGVsIGVsIGZpY2hlcm8gTUlESU1BUC5DRkcgcHVlZGUgZmFsdGFyIG8gZXN0YXIgY29ycnVwdG8uIgogICBNSURJRVJSX05PVFJFQURZLCAiRWwgcHVlcnRvIGVzdOEgdHJhbnNtaXRpZW5kbyBkYXRvcyBhbCBkaXNwb3NpdGl2by4gRXNwZXJhIGhhc3RhIHF1ZSBsb3MgZGF0b3MgaGF5YW4gc2lkbyB0cmFuc21pdGlkb3MsIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTUlESUVSUl9OT0RFVklDRSwgIkxhIGNvbmZpZ3VyYWNp824gYWN0dWFsIGRlbCBtYXBlYWRvciBNSURJIHJlZmllcmUgYSB1biBkaXNwb3NpdGl2byBNSURJIHF1ZSBubyBlc3ThIGluc3RhbGFkbyBlbiBlbCBzaXN0ZW1hLiBVc2UgZWwgbWFwZWFkb3IgTUlESSBwYXJhIGVkaXRhciBsYSBjb25maWd1cmFjafNuLiIKICAgTUlESUVSUl9JTlZBTElEU0VUVVAsICJMYSBjb25maWd1cmFjafNuIGFjdHVhbCBkZSBNSURJIGVzdOEgZGHxYWRhLiBDb3BpZSBlbCBmaWNoZXJvIE1JRElNQVAuQ0ZHIG9yaWdpbmFsIGFsIGRpcmVjdG9yaW8gU1lTVEVNIGRlIFdpbmRvd3MgU1lTVEVNLCBlIGludGVudGUgbnVldmFtZW50ZS4iCgogICAvKiBNQ0kgZXJyb3JzICovCiAgIE1DSUVSUl9JTlZBTElEX0RFVklDRV9JRCwgIklkZW50aWZpY2Fkb3IgZGUgZGlzcG9zaXRpdm8gTUNJIGluduFsaWRvLiBVc2UgZWwgaWRlbnRpZmljYWRvciBkZXZ1ZWx0byBhbCBhYnJpciBlbCBkaXNwb3NpdGl2byBNQ0kuIgogICBNQ0lFUlJfVU5SRUNPR05JWkVEX0tFWVdPUkQsICJFbCBjb250cm9sYWRvciBubyBwdWVkZSByZWNvbm9jZXIgZWwgcGFy4W1ldHJvIGRlIGNvbWFuZG8gZXNwZWNpZmljYWRvLiIKICAgTUNJRVJSX1VOUkVDT0dOSVpFRF9DT01NQU5ELCAiRWwgY29udHJvbGFkb3Igbm8gcHVlZGUgcmVjb25vY2VyIGVsIGNvbWFuZG8gZXNwZWNpZmljYWRvLiIKICAgTUNJRVJSX0hBUkRXQVJFLCAiSGF5IHVuIHByb2JsZW1hIGNvbiBzdSBkaXNwb3NpdGl2by4gQXNlZ/pyZXNlIGRlIHF1ZSBlc3TpIGZ1bmNpb25hbmRvIGNvcnJlY3RhbWVudGUgbyBjb250YWN0ZSBhbCBmYWJyaWNhbnRlIGRlbCBkaXNwb3NpdGl2by4iCiAgIE1DSUVSUl9JTlZBTElEX0RFVklDRV9OQU1FLCAiRWwgZGlzcG9zaXRpdm8gZXNwZWNpZmljYWRvIG5vIGVzdOEgYWJpZXJ0byBvIG5vIGVzIHJlY29ub2NpZG8gcG9yIE1DSS4iCiAgIE1DSUVSUl9PVVRfT0ZfTUVNT1JZLCAiTm8gaGF5IHN1ZmljaWVudGUgbWVtb3JpYSBwYXJhIGVzdGEgdGFyZWEuXG5DaWVycmUgdW5hIG8gbeFzIGFwbGljYWNpb25lcyBwYXJhIGF1bWVudGFyIGxhIG1lbW9yaWEgZGlzcG9uaWJsZSBlIGludGVudGUgbnVldmFtZW50ZS4iCiAgIE1DSUVSUl9ERVZJQ0VfT1BFTiwgIkVsIG5vbWJyZSBkZSBkaXNwb3NpdGl2byB5YSBlc3ThIHNpZW5kbyB1c2FkbyBjb21vIHVuIGFsaWFzIHBvciBlc3RhIGFwbGljYWNp824uIFVzZSB1biBhbGlhcyD6bmljby4iCiAgIE1DSUVSUl9DQU5OT1RfTE9BRF9EUklWRVIsICJIYXkgdW4gcHJvYmxlbWEgbm8gZGV0ZWN0YWJsZSBlbiBsYSBjYXJnYSBkZWwgY29udHJvbGFkb3IgZGUgZGlzcG9zaXRpdm8gZXNwZWNpZmljYWRvLiIKICAgTUNJRVJSX01JU1NJTkdfQ09NTUFORF9TVFJJTkcsICJObyBzZSBoYSBlc3BlY2lmaWNhZG8gdW4gY29tYW5kby4iCiAgIE1DSUVSUl9QQVJBTV9PVkVSRkxPVywgIkxhIGNhZGVuYSBkZSBzYWxpZGEgZXMgbXV5IGdyYW5kZSBwYXJhIGNhYmVyIGVuIGVsIGJ1ZmZlciBkZSByZXRvcm5vLiBBdW1lbnRlIGVsIHRhbWHxbyBkZWwgYnVmZmVyLiIKICAgTUNJRVJSX01JU1NJTkdfU1RSSU5HX0FSR1VNRU5ULCAiRWwgY29tYW5kbyBlc3BlY2lmaWNhZG8gcmVxdWllcmUgdW4gcGFy4W1ldHJvIGRlIGNhZGVuYSBkZSBjYXJhY3RlcmVzLiBQb3IgZmF2b3IgcHJvdmVhIHVuby4iCiAgIE1DSUVSUl9CQURfSU5URUdFUiwgIkVsIGVudGVybyBlc3BlY2lmaWNhZG8gZXMgaW524WxpZG8gcGFyYSBlc3RlIGNvbWFuZG8uIgogICBNQ0lFUlJfUEFSU0VSX0lOVEVSTkFMLCAiRWwgY29udHJvbGFkb3IgZGUgZGlzcG9zaXRpdm8gZGV2b2x2afMgdW4gdGlwbyBkZSByZXRvcm5vIGluduFsaWRvLiBDb250YWN0ZSBhbCBmYWJyaWNhbnRlIGRlbCBkaXNwb3NpdGl2byBwYXJhIG9idGVuZXIgdW4gbnVldm8gY29udHJvbGFkb3IuIgogICBNQ0lFUlJfRFJJVkVSX0lOVEVSTkFMLCAiSGF5IHVuIHByb2JsZW1hIGNvbiBlbCBjb250cm9sYWRvciBkZSBkaXNwb3NpdGl2by4gQ29udGFjdGUgYWwgZmFicmljYW50ZSBkZWwgZGlzcG9zaXRpdm8gcGFyYSBvYnRlbmVyIHVuIG51ZXZvIGNvbnRyb2xhZG9yLiIKICAgTUNJRVJSX01JU1NJTkdfUEFSQU1FVEVSLCAiRWwgY29tYW5kbyBlc3BlY2lmaWNhZG8gcmVxdWllcmUgdW4gcGFy4W1ldHJvLiBQb3IgZmF2b3IgcHJvdmVhIHVuby4iCiAgIE1DSUVSUl9VTlNVUFBPUlRFRF9GVU5DVElPTiwgIkVsIGRpc3Bvc2l0aXZvIE1DSSBxdWUgZXN04SB1c2FuZG8gbm8gc29wb3J0YSBlbCBjb21hbmRvIGVzcGVjaWZpY2Fkby4iCiAgIE1DSUVSUl9GSUxFX05PVF9GT1VORCwgIk5vIHNlIGVuY3VlbnRyYSBlbCBmaWNoZXJvIGVzcGVjaWZpY2Fkby4gQXNlZ/pyZXNlIHF1ZSBlbCBwYXRoIHkgZWwgbm9tYnJlIGRlbCBmaWNoZXJvIHNvbiBjb3JyZWN0b3MuIgogICBNQ0lFUlJfREVWSUNFX05PVF9SRUFEWSwgIkVsIGNvbnRyb2xhZG9yIGRlIGRpc3Bvc2l0aXZvIG5vIGVzdOEgbGlzdG8uIgogICBNQ0lFUlJfSU5URVJOQUwsICJVbiBwcm9ibGVtYSBoYSBvY3VycmlkbyBpbmljaWFsaXphbmRvIGVsIE1DSS4gSW50ZW50ZSByZWluaWNpYXIgV2luZG93cy4iCiAgIE1DSUVSUl9EUklWRVIsICJIYXkgdW4gcHJvYmxlbWEgY29uIGVsIGNvbnRyb2xhZG9yIGRlbCBkaXNwb3NpdGl2by4gRWwgY29udHJvbGFkb3Igc2UgaGEgY2VycmFkby4gSW50ZW50ZSByZWVudmlhciBlbCBjb21hbmRvLiIKICAgTUNJRVJSX0NBTk5PVF9VU0VfQUxMLCAiVXRpbGljZSB1biBub21icmUgZGUgZGlzcG9zaXRpdm8gZXNwZWPtZmljbyBwYXJhIGVzdGUgY29tYW5kby4iCiAgIE1DSUVSUl9NVUxUSVBMRSwgIkhhbiBvY3VycmlkbyBlcnJvcmVzIGVuIG3hcyBkZSB1biBkaXNwb3NpdGl2by4gRXNwZWNpZmlxdWUgY2FkYSBjb21hbmRvIHkgZGlzcG9zaXRpdm8gcG9yIHNlcGFyYWRvIHBhcmEgZGV0ZXJtaW5hciBxdWUgZGlzcG9zaXRpdm9zIGNhdXNhcm9uIGVsIGVycm9yLiIKICAgTUNJRVJSX0VYVEVOU0lPTl9OT1RfRk9VTkQsICJObyBwdWVkZSBkZXRlcm1pbmFyc2UgZWwgdGlwbyBkZSBkaXNwb3NpdGl2byBhIHBhcnRpciBkZSBsYSBleHRlbnNp824gZGUgZmljaGVybyBkYWRhLiIKICAgTUNJRVJSX09VVE9GUkFOR0UsICJFbCBwYXLhbWV0cm8gZXNwZWNpZmljYWRvIGVzdOEgZnVlcmEgZGVsIHJhbmdvIHBhcmEgZWwgY29tYW5kbyBlc3BlY2lmaWNhZG8uIgogICBNQ0lFUlJfRkxBR1NfTk9UX0NPTVBBVElCTEUsICJMb3MgcGFy4W1ldHJvcyBlc3BlY2lmaWNhZG9zIG5vIHB1ZWRlbiB1c2Fyc2UganVudG9zLiIKICAgTUNJRVJSX0ZJTEVfTk9UX1NBVkVELCAiTm8gcHVlZGUgZ3JhYmFyc2UgZWwgZmljaGVybyBlc3BlY2lmaWNhZG8uIEFzZWf6cmVzZSBkZSB0ZW5lciBzdWZpY2llbnRlIGVzcGFjaW8gZW4gZGlzY28gbyBkZSBxdWUgcGVybWFuZWNlIGNvbmVjdGFkbyBhIGxhIHJlZC4iCiAgIE1DSUVSUl9ERVZJQ0VfVFlQRV9SRVFVSVJFRCwgIk5vIHB1ZWRlIGVuY29udHJhcnNlIGVsIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2Fkby4gQXNlZ/pyZXNlIGRlIHF1ZSBlc3ThIGluc3RhbGFkbyBvIGRlIHF1ZSBlbCBub21icmUgZGVsIGRpc3Bvc2l0aXZvIGVzdOEgZXNjcml0byBjb3JyZWN0YW1lbnRlLiIKICAgTUNJRVJSX0RFVklDRV9MT0NLRUQsICJFbCBkaXNwb3NpdGl2byBlc3BlY2lmaWNhZG8gZXN04SBzaWVuZG8gY2VycmFkby4gRXNwZXJlIHVub3Mgc2VndW5kb3MgZSBpbnRlbnRlIG51ZXZhbWVudGUuIgogICBNQ0lFUlJfRFVQTElDQVRFX0FMSUFTLCAiRWwgYWxpYXMgZXNwZWNpZmljYWRvIHlhIGVzdOEgc2llbmRvIHVzYWRvIHBvciBlc3RhIGFwbGljYWNp824uIFVzZSB1biBhbGlhcyD6bmljby4iIAogICBNQ0lFUlJfQkFEX0NPTlNUQU5ULCAiRWwgcGFy4W1ldHJvIGVzcGVjaWZpY2FkbyBlcyBpbnbhbGlkbyBwYXJhIGVzdGUgY29tYW5kby4iCiAgIE1DSUVSUl9NVVNUX1VTRV9TSEFSRUFCTEUsICJFbCBjb250cm9sYWRvciBkZSBkaXNwb3NpdGl2byB5YSBlc3ThIGVuIHVzby4gUGFyYSBjb21wYXJ0aXJsbywgdXNlIGVsIHBhcuFtZXRybyAnY29tcGFydGlibGUnICgnc2hhcmVhYmxlJykgY29uIGNhZGEgY29tYW5kbyAnYWJyaXInICgnb3BlbicpLiIKICAgTUNJRVJSX01JU1NJTkdfREVWSUNFX05BTUUsICJFbCBjb21hbmRvIGVzcGVjaWZpY2FkbyByZXF1aWVyZSB1biBhbGlhcywgZmljaGVybywgY29udHJvbGFkb3IgbyBub21icmUgZGUgZGlzcG9zaXRpdm8uIFBvciBmYXZvciBwcm92ZWEgdW5vLiIKICAgTUNJRVJSX0JBRF9USU1FX0ZPUk1BVCwgIkVsIHZhbG9yIGVzcGVjaWZpY2FkbyBwYXJhIGVsIGZvcm1hdG8gZGUgdGllbXBvIGVzIGluduFsaWRvLiBWZXJpZmlxdWUgbG9zIGZvcm1hdG9zIHbhbGlkb3MgZW4gbGEgZG9jdW1lbnRhY2nzbiBkZSBNQ0kuIgogICBNQ0lFUlJfTk9fQ0xPU0lOR19RVU9URSwgIlVuYSBjb21pbGxhIGRlIGNpZXJyZSBlc3ThIGZhbHRhbmRvIGVuIGVsIHZhbG9yIGRlbCBwYXLhbWV0cm8uIFBvciBmYXZvciBwcm92ZWEgdW5hLiIKICAgTUNJRVJSX0RVUExJQ0FURV9GTEFHUywgIlVuIHBhcuFtZXRybyBvIHZhbG9yIGZ1ZSBlc3BlY2lmaWNhZG8gZG9zIHZlY2VzLiBFc3BlY2lm7XF1ZWxvIHVuYSBzb2xhIHZlei4iCiAgIE1DSUVSUl9JTlZBTElEX0ZJTEUsICJFbCBmaWNoZXJvIGVzcGVjaWZpY2FkbyBubyBwdWVkZSBzZXIgdG9jYWRvIGVuIGVsIGRpc3Bvc2l0aXZvIE1DSSBlc3BlY2lmaWNhZG8uIEVsIGZpY2hlcm8gcHVlZGUgZXN0YXIgY29ycnVwdG8gbyBlbiB1biBmb3JtYXRvIGluY29ycmVjdG8uIgogICBNQ0lFUlJfTlVMTF9QQVJBTUVURVJfQkxPQ0ssICJTZSBoYSBwYXNhZG8gdW4gYmxvcXVlIGRlIHBhcuFtZXRyb3MgbnVsbyBhbCBNQ0kuIgogICBNQ0lFUlJfVU5OQU1FRF9SRVNPVVJDRSwgIk5vIHB1ZWRlIGd1YXJkYXJzZSB1biBmaWNoZXJvIHNpbiBub21icmUuIFByb3ZlYSB1biBub21icmUgcGFyYSBlbCBmaWNoZXJvLiIKICAgTUNJRVJSX05FV19SRVFVSVJFU19BTElBUywgIkRlYmUgZXNwZWNpZmljYXIgdW4gYWxpYXMgY3VhbmRvIHV0aWxpY2UgZWwgcGFy4W1ldHJvICdudWV2bycuIgogICBNQ0lFUlJfTk9USUZZX09OX0FVVE9fT1BFTiwgIk5vIHB1ZWRlIHVzYXIgZWwgZmxhZyAnbm90aWZpY2FyJyBjb24gZGlzcG9zaXRpdm9zIGRlIGFwZXJ0dXJhIGF1dG9t4XRpY2EuIgogICBNQ0lFUlJfTk9fRUxFTUVOVF9BTExPV0VELCAiTm8gcHVlZGUgdXNhciB1biBub21icmUgZGUgZmljaGVybyBjb24gZWwgZGlzcG9zaXRpdm8gZXNwZWNpZmljYWRvLiIKICAgTUNJRVJSX05PTkFQUExJQ0FCTEVfRlVOQ1RJT04sICJObyBwdWVkZW4gZWplY3V0YXJzZSBsb3MgY29tYW5kb3MgZW4gZWwgb3JkZW4gZXNwZWNpZmljYWRvLiBDb3JyaWphIGxhIHNlY3VlbmNpYSBkZSBjb21hbmRvcyBlIGludGVudGUgbnVldmFtZW50ZS4iCiAgIE1DSUVSUl9JTExFR0FMX0ZPUl9BVVRPX09QRU4sICJObyBwdWVkZSBlamVjdXRhcnNlIGVsIGNvbWFuZG8gZXNwZWNpZmljYWRvIGVuIHVuIGRpc3Bvc2l0aXZvIGRlIGFwZXJ0dXJhIGF1dG9t4XRpY2EuIEVzcGVyZSBoYXN0YSBxdWUgZWwgZGlzcG9zaXRpdm8gZXN06SBjZXJyYWRvIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTUNJRVJSX0ZJTEVOQU1FX1JFUVVJUkVELCAiRWwgbm9tYnJlIGRlbCBmaWNoZXJvIGVzIGluduFsaWRvLiBBc2Vn+nJlc2UgZGUgcXVlIGVsIG5vbWJyZSBkZWwgZmljaGVybyBubyBlcyBtYXlvciBkZSA4IGNhcmFjdGVyZXMsIHNlZ3VpZG8gcG9yIHVuIHB1bnRvIHkgdW5hIGV4dGVuc2nzbi4iCiAgIE1DSUVSUl9FWFRSQV9DSEFSQUNURVJTLCAiTm8gcHVlZGUgZXNwZWNpZmljYXIgY2FyYWN0ZXJlcyBleHRyYSBkZXNwdelzIGRlIHVuYSBjYWRlbmEgZW5jZXJyYWRhIGVudHJlIGNvbWlsbGFzLiIKICAgTUNJRVJSX0RFVklDRV9OT1RfSU5TVEFMTEVELCAiRWwgZGlzcG9zaXRpdm8gZXNwZWNpZmljYWRvIG5vIGVzdOEgaW5zdGFsYWRvIGVuIGVsIHNpc3RlbWEuIFVzZSBsYSBvcGNp824gQ29udHJvbGFkb3JlcyBlbiBlbCBQYW5lbCBkZSBDb250cm9sIHBhcmEgaW5zdGFsYXIgZWwgZGlzcG9zaXRpdm8uIgogICBNQ0lFUlJfR0VUX0NELCAiTm8gcHVlZGUgYWNjZWRlcnNlIGFsIGZpY2hlcm8gbyBkaXNwb3NpdGl2byBNQ0kgZXNwZWNpZmljYWRvLiBJbnRlbnRlIGNhbWJpYW5kbyBkZSBkaXJlY3RvcmlvIG8gcmVpbmljaWFuZG8gZWwgZXF1aXBvLiIKICAgTUNJRVJSX1NFVF9DRCwgIk5vIHB1ZWRlIGFjY2VkZXJzZSBhbCBmaWNoZXJvIG8gZGlzcG9zaXRpdm8gTUNJIGVzcGVjaWZpY2FkbyBwb3JxdWUgbGEgYXBsaWNhY2nzbiBubyBwdWVkZSBjYW1iaWFyIGRlIGRpcmVjdG9yaW8uIgogICBNQ0lFUlJfU0VUX0RSSVZFLCAiTm8gcHVlZGUgYWNjZWRlcnNlIGFsIGZpY2hlcm8gbyBkaXNwb3NpdGl2byBNQ0kgZXNwZWNpZmljYWRvIHBvcnF1ZSBsYSBhcGxpY2FjafNuIG5vIHB1ZWRlIGNhbWJpYXIgZGUgdW5pZGFkLiIKICAgTUNJRVJSX0RFVklDRV9MRU5HVEgsICJFc3BlY2lmaXF1ZSB1biBkaXNwb3NpdGl2byBvIG5vbWJyZSBkZSBjb250cm9sYWRvciBkZSBtZW5vcyBkZSA3OSBjYXJhY3RlcmVzLiIKICAgTUNJRVJSX0RFVklDRV9PUkRfTEVOR1RILCAiRXNwZWNpZmlxdWUgdW4gZGlzcG9zaXRpdm8gbyBub21icmUgZGUgY29udHJvbGFkb3IgZGUgbWVub3MgZGUgNjkgY2FyYWN0ZXJlcy4iCiAgIE1DSUVSUl9OT19JTlRFR0VSLCAiRWwgY29tYW5kbyBlc3BlY2lmaWNhZG8gcmVxdWllcmUgdW4gcGFy4W1ldHJvIGVudGVyby4gUG9yIGZhdm9yIHByb3ZlYSB1bm8uIgogICBNQ0lFUlJfV0FWRV9PVVRQVVRTSU5VU0UsICJUb2RvcyBsb3MgZGlzcG9zaXRpdm9zIHF1ZSBwdWVkZW4gdG9jYXIgZmljaGVyb3MgZW4gZXN0ZSBmb3JtYXRvIGVzdOFuIGVuIHVzby4gRXNwZXJlIGhhc3RhIHF1ZSBzZSBsaWJlcmUgdW4gZGlzcG9zaXRpdm8gZSBpbnRlbnRlIG51ZXZhbWVudGUuIgogICBNQ0lFUlJfV0FWRV9TRVRPVVRQVVRJTlVTRSwgIk5vIHB1ZWRlIHByZXBhcmFyc2UgZWwgZGlzcG9zaXRpdm8gZGUgZm9ybWEgZGUgb25kYSBwYXJhIHJlcHJvZHVjY2nzbiBwb3JxdWUgZXN04SBlbiB1c28uIEVzcGVyZSBoYXN0YSBxdWUgZWwgZGlzcG9zaXRpdm8gZXN06SBsaWJyZSBlIGludGVudGUgbnVldmFtZW50ZS4iCiAgIE1DSUVSUl9XQVZFX0lOUFVUU0lOVVNFLCAiVG9kb3MgbG9zIGRpc3Bvc2l0aXZvcyBxdWUgcHVlZGVuIGdyYWJhciBmaWNoZXJvcyBlbiBlc3RlIGZvcm1hdG8gZXN04W4gZW4gdXNvLiBFc3BlcmUgaGFzdGEgcXVlIHNlIGxpYmVyZSB1biBkaXNwb3NpdGl2byBlIGludGVudGUgbnVldmFtZW50ZS4iCiAgIE1DSUVSUl9XQVZFX1NFVElOUFVUSU5VU0UsICJObyBwdWVkZSBwcmVwYXJhcnNlIGVsIGRpc3Bvc2l0aXZvIGRlIGZvcm1hIGRlIG9uZGEgcGFyYSBncmFiYWNp824gcG9ycXVlIGVzdOEgZW4gdXNvLiBFc3BlcmUgaGFzdGEgcXVlIGVsIGRpc3Bvc2l0aXZvIGVzdOkgbGlicmUgZSBpbnRlbnRlIG51ZXZhbWVudGUuIgogICBNQ0lFUlJfV0FWRV9PVVRQVVRVTlNQRUNJRklFRCwgIkN1YWxxdWllciBkaXNwb3NpdGl2byBjb21wYXRpYmxlIGRlIHJlcHJvZHVjY2nzbiBkZSBmb3JtYSBkZSBvbmRhIHB1ZWRlIHNlciB1c2Fkby4iCiAgIE1DSUVSUl9XQVZFX0lOUFVUVU5TUEVDSUZJRUQsICJDdWFscXVpZXIgZGlzcG9zaXRpdm8gY29tcGF0aWJsZSBkZSBncmFiYWNp824gZGUgZm9ybWEgZGUgb25kYSBwdWVkZSBzZXIgdXNhZG8uIiAKICAgTUNJRVJSX1dBVkVfT1VUUFVUU1VOU1VJVEFCTEUsICJObyBoYXkgbmluZ/puIGRpc3Bvc2l0aXZvIGRlIGZvcm1hIGRlIG9uZGEgaW5zdGFsYWRvIGNhcGF6IGRlIHJlcHJvZHVjaXIgZmljaGVyb3MgZW4gZXN0ZSBmb3JtYXRvLiBVc2UgbGEgb3BjafNuIERpc3Bvc2l0aXZvcyBwYXJhIGluc3RhbGFyIGVsIGRpc3Bvc2l0aXZvIGRlIGZvcm1hIGRlIG9uZGEuIgogICBNQ0lFUlJfV0FWRV9TRVRPVVRQVVRVTlNVSVRBQkxFLCJFbCBkaXNwb3NpdGl2byBjb24gZWwgcXVlIGludGVudGEgcmVwcm9kdWNpciBubyBwdWVkZSByZWNvbm9jZXIgZWwgZm9ybWF0byBkZSBmaWNoZXJvLiIKICAgTUNJRVJSX1dBVkVfSU5QVVRTVU5TVUlUQUJMRSwgIk5vIGhheSBuaW5n+m4gZGlzcG9zaXRpdm8gZGUgZm9ybWEgZGUgb25kYSBpbnN0YWxhZG8gY2FwYXogZGUgZ3JhYmFyIGZpY2hlcm9zIGVuIGVzdGUgZm9ybWF0by4gVXNlIGxhIG9wY2nzbiBEaXNwb3NpdGl2b3MgcGFyYSBpbnN0YWxhciBlbCBkaXNwb3NpdGl2byBkZSBmb3JtYSBkZSBvbmRhLiIKICAgTUNJRVJSX1dBVkVfU0VUSU5QVVRVTlNVSVRBQkxFLCAiRWwgZGlzcG9zaXRpdm8gY29uIGVsIHF1ZSBpbnRlbnRhIGdyYWJhciBubyBwdWVkZSByZWNvbm9jZXIgZWwgZm9ybWF0byBkZSBmaWNoZXJvLiIKICAgTUNJRVJSX05PX1dJTkRPVywgIk5vIGhheSB1bmEgdmVudGFuYS4iCiAgIE1DSUVSUl9DUkVBVEVXSU5ET1csICJObyBwdWVkZSBjcmVhcnNlIG8gdXNhciB1bmEgdmVudGFuYS4iCiAgIE1DSUVSUl9GSUxFX1JFQUQsICJObyBwdWVkZSBsZWVyc2UgZWwgZmljaGVybyBlc3BlY2lmaWNhZG8uIEFzZWf6cmVzZSBkZSBxdWUgZWwgZmljaGVybyBh+m4gZXN04SBwcmVzZW50ZSwgbyByZXZpc2Ugc3UgZGlzY28gbyBjb25leGnzbiBkZSByZWQuIgogICBNQ0lFUlJfRklMRV9XUklURSwgIk5vIHB1ZWRlIGdyYWJhcnNlIGVsIGZpY2hlcm8gZXNwZWNpZmljYWRvLiBBc2Vn+nJlc2UgZGUgdGVuZXIgc3VmaWNpZW50ZSBlc3BhY2lvIGVuIGRpc2NvIG8gZGUgcXVlIHBlcm1hbmVjZSBjb25lY3RhZG8gYSBsYSByZWQuIgogICBNQ0lFUlJfU0VRX0RJVl9JTkNPTVBBVElCTEUsICJMb3MgZm9ybWF0b3MgZGUgdGllbXBvIGRlIFwic29uZyBwb2ludGVyXCIgeSBTTVBURSBzb24gbXV0dWFtZW50ZSBleGNsdXNpdm9zLiBObyBwdWVkZW4gdXRpbGl6YXJzZSBhIGxhIHZlei4iCiAgIE1DSUVSUl9TRVFfTk9NSURJUFJFU0VOVCwgIkVsIHNpc3RlbWEgbm8gdGllbmUgZGlzcG9zaXRpdm9zIE1JREkgaW5zdGFsYWRvcy4gVXNlIGxhIG9wY2nzbiBDb250cm9sYWRvcmVzIGVuIGVsIFBhbmVsIGRlIENvbnRyb2wgcGFyYSBpbnN0YWxhciBlbCBkaXNwb3NpdGl2by4iCiAgIE1DSUVSUl9TRVFfUE9SVF9JTlVTRSwgIkVsIHB1ZXJ0byBNSURJIGVzcGVjaWZpY2FkbyB5YSBlc3ThIGVuIHVzby4gRXNwZXJlIGhhc3RhIHF1ZSBlc3TpIGxpYnJlIGUgaW50ZW50ZSBudWV2YW1lbnRlLiIKICAgTUNJRVJSX1NFUV9QT1JUX01BUE5PREVWSUNFLCAiTGEgY29uZmlndXJhY2nzbiBhY3R1YWwgZGVsIG1hcGVhZG9yIE1JREkgcmVmaWVyZSBhIHVuIGRpc3Bvc2l0aXZvIE1JREkgcXVlIG5vIGVzdOEgaW5zdGFsYWRvIGVuIGVsIHNpc3RlbWEuIFVzZSBlbCBsYSBvcGNp824gZGVsIG1hcGVhZG9yIE1JREkgZW4gZWwgUGFuZWwgZGUgQ29udHJvbCBwYXJhIGVkaXRhciBsYSBjb25maWd1cmFjafNuLiIKICAgTUNJRVJSX1NFUV9QT1JUX01JU0NFUlJPUiwgIkhhIG9jdXJyaWRvIHVuIGVycm9yIGNvbiBlbCBwdWVydG8gZXNwZWNpZmljYWRvLiIKICAgTUNJRVJSX1NFUV9QT1JUX05PTkVYSVNURU5ULCAiRWwgZGlzcG9zaXRpdm8gTUlESSBlc3BlY2lmaWNhZG8gbm8gZXN04SBpbnN0YWxhZG8gZW4gZWwgc2lzdGVtYS4gVXNlIGxhIG9wY2nzbiBEaXNwb3NpdGl2b3MgZW4gZWwgUGFuZWwgZGUgQ29udHJvbCBwYXJhIGluc3RhbGFyIHVuIGRpc3Bvc2l0aXZvIE1JREkuIgogICBNQ0lFUlJfU0VRX1BPUlRVTlNQRUNJRklFRCwgIkVsIHNpc3RlbWEgbm8gdGllbmUgYWN0dWFsbWVudGUgdW4gcHVlcnRvIE1JREkgZXNwZWNpZmljYWRvLiIKICAgTUNJRVJSX1NFUV9USU1FUiwgIlRvZG9zIGxvcyB0ZW1wb3JpemFkb3JlcyBkZSBtdWx0aW1lZGlhIGVzdOFuIHNpZW5kbyB1c2Fkb3MgcG9yIG90cmFzIGFwbGljYWNpb25lcy4gQ2llcnJlIHVuYSBkZSBlc2FzIGFwbGljYWNpb25lcyBlIGludGVudGUgbnVldmFtZW50ZS4iCgogICBFTkQK