LyoKICogQ29weXJpZ2h0IDE5OTkgRXJpYyBQb3VlY2gKICogQ29weXJpZ2h0IDIwMDMgSXZhbiBMZW8gUHVvdGkKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKU1RSSU5HVEFCTEUgTEFOR1VBR0UgTEFOR19JVEFMSUFOLCBTVUJMQU5HX05FVVRSQUwKQkVHSU4KCi8qIE1NU1lTIGVycm9ycyAqLwpNTVNZU0VSUl9OT0VSUk9SLCAJCSJJbCBjb21hbmRvIHNwZWNpZmljYXRvIOggc3RhdG8gZXNlZ3VpdG8uIgpNTVNZU0VSUl9FUlJPUiwgCQkiRXJyb3JlIGVzdGVybm8gc2Nvbm9zY2l1dG8uIgpNTVNZU0VSUl9CQURERVZJQ0VJRCwgCQkiRScgc3RhdG8gdXNhdG8gbCdJRCBkaSB1biBkaXNwb3NpdGl2byBjaGUg6CBmdW9yaSBkYWxsYSBwb3J0YXRhIGRlbCBzaXN0ZW1hLiIKTU1TWVNFUlJfTk9URU5BQkxFRCwgCQkiSWwgZHJpdmVyIG5vbiDoIGFiaWxpdGF0by4iCk1NU1lTRVJSX0FMTE9DQVRFRCwgCQkiSWwgZHJpdmVyIHNwZWNpZmljYXRvIOggZ2ngIGluIHVzby4gQXR0ZW5kZXJlIGNoZSBzaWEgbnVvdmFtZW50ZSBkaXNwb25pYmlsZSwgZSByaXByb3ZhcmUuIgpNTVNZU0VSUl9JTlZBTEhBTkRMRSwgCQkiSWwgaGFuZGxlIGRlbCBkaXNwb3NpdGl2byBzcGVjaWZpY2F0byDoIGludmFsaWRvLiIKTU1TWVNFUlJfTk9EUklWRVIsIAkJIk5vbiDoIGluc3RhbGxhdG8gbmVzc3VuIGRyaXZlciBuZWwgc2lzdGVtYSAhXG4iCk1NU1lTRVJSX05PTUVNLCAJCSJNZW1vcmlhIGluc3VmZmljZW50ZSBwZXIgZXNlZ3VpcmUgcXVlc3RhIG9wZXJhemlvbmUuIENoaXVkZXJlIHVuYSBvIHBp+SBhcHBsaWNhemlvbmkgcGVyIGF1bWVudGFyZSBsYSBtZW1vcmlhIGRpc3BvbmliaWxlLCBlIHJpcHJvdmFyZS4iCk1NU1lTRVJSX05PVFNVUFBPUlRFRCwgCQkiUXVlc3RhIGZ1bnppb25lIG5vbiDoIHN1cHBvcnRhdGEuIFVzYXJlIGxhIGZ1bnppb25lIENhcGFiaWxpdGllcyBwZXIgZGV0ZXJtaW5hcmUgcXVhbGkgZnVuemlvbmkgZSBtZXNzYWdnaSBzb25vIHN1cHBvcnRhdGkgZGFsIGRyaXZlci4iCk1NU1lTRVJSX0JBREVSUk5VTSwgCQkiRScgc3RhdG8gc3BlY2lmaWNhdG8gdW4gbnVtZXJvIGRpIGVycm9yZSBub24gZGVmaW5pdG8gZGFsIHNpc3RlbWEuIgpNTVNZU0VSUl9JTlZBTEZMQUcsIAkJIlVuIGZsYWcgaW52YWxpZG8g6CBzdGF0byBwYXNzYXRvIGEgdW5hIGZ1bnppb25lIGRpIHNpc3RlbWEuIgpNTVNZU0VSUl9JTlZBTFBBUkFNLCAJCSJVbiBwYXJhbWV0cm8gaW52YWxpZG8g6CBzdGF0byBwYXNhdG8gYSB1bmEgZnVuemlvbmUgZGkgc2lzdGVtYS4iCgovKiBXQVZFIGVycm9ycyAqLwpXQVZFUlJfQkFERk9STUFULCAJCSJJbCBmb3JtYXRvIHNwZWNpZmljYXRvIG5vbiDoIHN1cHBvcnRhdG8gbyBub24gcHXyIGVzc2VyZSB0cmFkb3R0by4gVXNhcmUgbGEgZnVuemlvbmUgQ2FwYWJpbGl0aWVzIHBlciBkZXRlcm1pbmFyZSBsZSBmdW56aW9uaSBzdXBwb3J0YXRlIgpXQVZFUlJfU1RJTExQTEFZSU5HLCAJCSJOb24g6CBwb3NzaWJpbGUgZWZmZXR1YXJlIHF1ZXN0YSBvcGVyYXppb25lIGR1cmFudGUgbCdlc2VjdXppb25lLiBSZWluaXppYWxpenphcmUgaWwgZGlzcG9zaXRpdm8sIG8gYXR0ZW5kZXJlIGxhIGZpbmUgZGVsbCdlc2VjdXppb25lLiIKV0FWRVJSX1VOUFJFUEFSRUQsIAkJIklsIGhlYWRlciB3YXZlIG5vbiDoIHN0YXRvIHByZXBhcmF0by4gVXNhcmUgbGEgZnVuemlvbmUgUHJlcGFyZSBwZXIgcHJlcGFyYWxlIGwnaGVhZGVyLCBlIHJpcHJvdmFyZS4iCldBVkVSUl9TWU5DLCAJCQkiTm9uIOggcG9zc2liaWxlIGFwcmlyZSBpbCBkaXNwb3NpdGl2byBzZW56YSB1c2FyZSBpbCBmbGFnIFdBVkVfQUxMT1dTWU5DLiBVc2FyZSBpbCBmbGFnLCBlIHJpcHJvdmFyZS4iCgovKiBNSURJIGVycm9ycyAqLwpNSURJRVJSX1VOUFJFUEFSRUQsIAkJIkwnaGVhZGVyIE1JREkgbm9uIOggc3RhdG8gcHJlcGFyYXRvLiBVc2FyZSBsYSBmdW56aW9uZSBQcmVwYXJlIHBlciBwcmVwYXJhcmUgbCdoZWFkZXIsIGUgcmlwcm92YXJlLiIKTUlESUVSUl9TVElMTFBMQVlJTkcsIAkJIk5vbiDoIHBvc3NpYmlsZSBlZmZldHVhcmUgcXVlc3RhIG9wZXJhemlvbmUgZHVyYW50ZSBsJ2VzZWN1emlvbmUuIFJlaW5pemlhbGl6emFyZSBpbCBkaXNwb3NpdGl2bywgbyBhdHRlbmRlcmUgbGEgZmluZSBkZWxsJ2VzZWN1emlvbmUuIgpNSURJRVJSX05PTUFQLCAJCQkiTm9uIOggc3RhdGEgdHJvdmF0YSB1bmEgbWFwcGEgTUlESS4gQ2kgcG90cmViYmUgZXNzZXJlIHVuIHByb2JsZW1hIGNvbiBpbCBkcml2ZXIsIG8gaWwgZmlsZSBNSURJTUFQLkNGRyBwb3RyZWJiZSBlc3NlcmUgZGFubmVnZ2lhdG8gbyBtYW5jYW50ZS4iCk1JRElFUlJfTk9UUkVBRFksIAkJIkxhIHBvcnRhIHN0YSB0cmFzbWV0dGVuZG8gZGVpIGRhdGkgYWwgZGlzcG9zaXRpdm8uIEF0dGVuZGVyZSBsYSB0cmFzbWlzc2lvbmUgZGkgdHV0dGkgaSBkYXRpLCBlIHJpcHJvdmFyZS4iCk1JRElFUlJfTk9ERVZJQ0UsIAkJIkxhIGNvbmZpZ3VyYXppb25lIGF0dHVhbGUgZGVsIE1hcHBlciBNSURJIHNpIHJpZmVyaXNjZSBhIHVuIGRpc3Bvc2l0aXZvIE1JREkgY2hlIG5vbiDoIHByZXNlbnRlIG5lbCBzaXN0ZW1hLiBVc2FyZSBpbCBNYXBwZXIgTUlESSBwZXIgbW9kaWZpY2FyZSBsYSBjb25maWd1cmF6aW9uZS4iCk1JRElFUlJfSU5WQUxJRFNFVFVQLCAJCSJMYSBjb25maWd1dGF6aW9uZSBNSURJIGF0dHVhbGUg6CBkYW5uZWdnaWF0YS4gQ29waWFyZSBpbCBmaWxlIE1JRElNQVAuQ0ZHIG5lbGxhIGRpcmVjdG9yeSBTWVNURU0gZGkgV2luZG93cywgZSByaXByb3ZhcmUuIgoKLyogTUNJIGVycm9ycyAqLwpNQ0lFUlJfSU5WQUxJRF9ERVZJQ0VfSUQsIAkiSUQgZGVsIGRpc3Bvc2l0aXZvIE1DSSBpbnZhbGlkby4gVXNhcmUgbCdJRCByZXN0aXR1aXRvIHF1YW5kbyBzaSDoIGFwZXJ0byBpbCBkaXNwb3NpdGl2byBNQ0kuIgpNQ0lFUlJfVU5SRUNPR05JWkVEX0tFWVdPUkQsIAkiSWwgZHJpdmVyIG5vbiByaWNvbm9zY2UgaWwgcGFyYW1ldHJvIGRlbCBjb21hbmRvIHNwZWNpZmljYXRvLiIKTUNJRVJSX1VOUkVDT0dOSVpFRF9DT01NQU5ELAkiSWwgZHJpdmVyIG5vbiByaWNvbm9zY2UgaWwgY29tYW5kbyBzcGVjaWZpY2F0by4iCk1DSUVSUl9IQVJEV0FSRSwgCQkiQyfoIHVuIHByb2JsZW1hIGNvbiBpbCBkaXNwb3NpdGl2byBtdWx0aW1lZGlhbGUuIENvbnRyb2xsYXJlIGNoZSBpbCBmdW56aW9uYW1lbnRvIGRlbCBkaXNwb3NpdGl2byBvIGNvbnRhdHRhcmUgaWwgcHJvZHV0dG9yZS4iCk1DSUVSUl9JTlZBTElEX0RFVklDRV9OQU1FLCAJIklsIGRpc3Bvc2l0aXZvIHNwZWNpZmljYXRvIG5vbiDoIGFwZXJ0byBvIG5vbiDoIHN1cHBvcnRhdG8gZGEgTUNJLiIKTUNJRVJSX09VVF9PRl9NRU1PUlksIAkJIk1lbW9yaWEgaW5zdWZmaWNlbnRlIHBlciBlc2VndWlyZSBxdWVzdGEgb3BlcmF6aW9uZS4gXG5DaGl1ZGVyZSB1bmEgbyBwafkgYXBwbGljYXppb25pIHBlciBhdW1lbnRhcmUgbGEgbWVtb3JpYSBkaXNwb25pYmlsZSwgZSByaXByb3ZhcmUuIgpNQ0lFUlJfREVWSUNFX09QRU4sIAkJIklsIG5vbWUgZGVsIGRpc3Bvc2l0aXZvIOggZ2ngIGluIHVzbyBjb21lIGFsaWFzIGRhIHBhcnRlIGRpIHF1ZXN0YSBhcHBsaWNhemlvbmUuIFVzYXJlIHVuIGFsaWFzIHVuaXZvY28uIgpNQ0lFUlJfQ0FOTk9UX0xPQURfRFJJVkVSLCAJIlNpIOggdmVyaWZpY2F0byB1biBwcm9ibGVtYSBub24gcmlsZXZhYmlsZSBuZWwgY2FyaWNhbWVudG8gZGVsIGRyaXZlciBzcGVjaWZpY2F0by4iCk1DSUVSUl9NSVNTSU5HX0NPTU1BTkRfU1RSSU5HLCAJIk5vbiDoIHN0YXRvIHNwZWNpZmljYXRvIG5lc3N1biBjb21hbmRvLiIKTUNJRVJSX1BBUkFNX09WRVJGTE9XLCAJCSJMYSBzdHJpbmdhIGRpIG91dHB1dCDoIHRyb3BwbyBncmFuZGUgcGVyIGVudHJhcmUgbmVsIGJ1ZmZlciBkaSByaXRvcm5vLiBBdW1lbnRhcmUgbGEgZGltZW5zaW9uZSBkZWwgYnVmZmVyLiIKTUNJRVJSX01JU1NJTkdfU1RSSU5HX0FSR1VNRU5ULCAiSWwgY29tYW5kbyBzcGVjaWZpY2F0byByaWNoaWVkZSB1biBwYXJhbWV0cm8gY2hlIHNpYSB1bmEgc3RyaW5nYSBkaSBjYXJhdHRlcmkuIEZvcm5pcm5lIHVuby4iCk1DSUVSUl9CQURfSU5URUdFUiwgCQkiSWwgbnVtZXJvIGludHJlbyBzcGVjaWZpY2F0byBub24g6CB2YWxpZG8gcGVyIHF1ZXN0byBjb21hbmRvLiIKTUNJRVJSX1BBUlNFUl9JTlRFUk5BTCwgCSJJbCBkcml2ZXIgaGEgcmVzdGl0dWl0byB1biB0aXBvIG5vbiB2YWxpZG8uIENvbnRhdHRhcmUgaWwgcHJvZHV0dG9yZSBkZWwgZGlzcG9zaXRpdm8gcGVyIG90dGVuZXJlIHVuIG51b3ZvIGRyaXZlci4iCk1DSUVSUl9EUklWRVJfSU5URVJOQUwsIAkiQyfoIHVuIHByb2JsZW1hIGNvbiBpbCBkcml2ZXIuIENvbnRhdHRhcmUgaWwgcHJvZHV0dG9yZSBkZWwgZGlzcG9zaXRpdm8gcGVyIG90dGVuZXJlIHVuIG51b3ZvIGRyaXZlci4iCk1DSUVSUl9NSVNTSU5HX1BBUkFNRVRFUiwgCSJJbCBjb21hbmRvIHNwZWNpZmljYXRvIHJpY2hpZWRlIHVuIHBhcmFtZXRyby4gRm9ybmlybmUgdW5vLiIKTUNJRVJSX1VOU1VQUE9SVEVEX0ZVTkNUSU9OLCAJIklsIGRpc3Bvc2l0aXZvIE1DSSBpbiB1c28gbm9uIHN1cHBvcnRhIGlsIGNvbWFuZG8gc3BlY2lmaWNhdG8uIgpNQ0lFUlJfRklMRV9OT1RfRk9VTkQsIAkJIklsIGZpbGUgc3BlY2lmaWNhdG8gbm9uIOggc3RhdG8gdHJvdmF0by4gQ29udHJvbGxhcmUgY2hlIGwnaW5kaXJpenpvIGUgaWwgbm9tZSBkZWwgZmlsZSBzaWFubyBjb3JyZXR0aS4iCk1DSUVSUl9ERVZJQ0VfTk9UX1JFQURZLCAJIklsIGRyaXZlciBub24g6CBwcm9udG8uIgpNQ0lFUlJfSU5URVJOQUwsIAkJIlNpIOggdmVyaWZpY2F0byB1biBwcm9ibGVtYSBuZWxsJ2luaXppYWxpemF6aW9uZSBkaSBNQ0kuIFByb3ZhcmUgYSByaWF2dmlhcmUgV2luZG93cy4iCk1DSUVSUl9EUklWRVIsIAkJCSJTaSDoIHZlcmlmaWNhdG8gdW4gZXJyb3JlIG5lbCBkcml2ZXIuIElsIGRyaXZlciDoIHN0YXRvIGNoaXVzby4gRXJyb3JlIG5vbiBhY2Nlc3NpYmlsZS4iCk1DSUVSUl9DQU5OT1RfVVNFX0FMTCwgCQkiTm9uIOggcG9zc2liaWxlIHVzYXJlICdhbGwnIGNvbWUgbm9tZSBkZWwgZGlzcG9zaXRpdm8gY29uIGlsIGNvbWFuZG8gc3BlY2lmaWNhdG8uIgpNQ0lFUlJfTVVMVElQTEUsIAkJIlNpIHNvbm8gdmVyaWZpY2F0aSBkZWdsaSBlcnJvcmkgaW4gcGn5IGRpIHVuIGRpc3Bvc2l0aXZvLiBTcGVjaWZpY2FyZSBvZ25pIGNvbWFuZG8gZSBkaXNwb3NpdGl2byBzZXBhcmF0YW1lbnRlIHBlciBkZXRlcm1pbmFyZSBxdWFsZSBkaXNwb3NpdGl2byBoYSBjYXVzYXRvIGwnZXJyb3JlIgpNQ0lFUlJfRVhURU5TSU9OX05PVF9GT1VORCwgCSJJbXBvc3NpYmlsZSBkZXRlcm1pbmFyZSBpbCB0aXBvIGRpIGRpc3Bvc2l0aXZvIGRhbGwnZXN0ZW5zaW9uZSBkYXRhLiIKTUNJRVJSX09VVE9GUkFOR0UsIAkJIklsIHBhcmFtZXRybyBzcGVjaWZpY2F0byDoIGZ1b3JpIGRhbGxhIHBvcnRhdGEgZGVsIGNvbWFuZG8gc3BlY2lmaWNhdG8uIgpNQ0lFUlJfRkxBR1NfTk9UX0NPTVBBVElCTEUsIAkiSSBwYXJhbWV0cmkgc3BlY2lmaWNhdGkgbm9uIHBvc3Nvbm8gZXNzZXJlIHVzYXRpIGluc2llbWUuIgpNQ0lFUlJfRklMRV9OT1RfU0FWRUQsIAkJIkltcG9zc2liaWxlIHNhbHZhcmUgaWwgZmlsZSBzcGVjaWZpY2F0by4gQ29udHJvbGxhcmUgZGkgYXZlcmUgYWJiYXN0YW56YSBzcGF6aW8gbGliZXJvIGUgZGkgZXNzZXJlIGFuY29yYSBjb25uZXNzaSBhbGxhIHJldGUuIgpNQ0lFUlJfREVWSUNFX1RZUEVfUkVRVUlSRUQsIAkiSW1wb3NzaWJpbGUgdHJvdmFyZSBpbCBkaXNwb3NpdGl2byBzcGVjaWZpY2F0by4gQ29udHJvbGxhcmUgY2hlIHNpYSBpbnN0YWxsYXRvIGUgY2hlIGlsIG5vbWUgc2lhIGRpZ2l0YXRvIGNvcnJldHRhbWVudGUuIgpNQ0lFUlJfREVWSUNFX0xPQ0tFRCwgCQkiSWwgZGlzcG9zaXRpdm8gc3BlY2lmaWNhdG8gdmVycuAgY2hpdXNvLiBBdHRlbmRlcmUgYWxjdW5pIHNlY29uZGkgZSByaXByb3ZhcmUuIgpNQ0lFUlJfRFVQTElDQVRFX0FMSUFTLCAJIkwnYWxpYXMgc3BlY2lmaWNhdG8g6CBnaeAgaW4gdXNvIGRhIHBhcnRlIGRpIHF1ZXN0YSBhcHBsaWNhemlvbmUuIFVzYXJlIHVuIGFsaWFzIHVuaXZvY28uIgpNQ0lFUlJfQkFEX0NPTlNUQU5ULCAJCSJJbCBwYXJhbWV0cm8gc3BlY2lmaWNhdG8g6CBpbnZhbGlkbyBwZXIgcXVlc3RvIGNvbWFuZG8uIgpNQ0lFUlJfTVVTVF9VU0VfU0hBUkVBQkxFLCAJIklsIGRyaXZlciDoIGdp4CBpbiB1c28uIFBlciBjb25kaXZpZGVybG8sIHVzYXJlIGlsIHBhcmFtZXRybyAgJ3NoYXJlYWJsZScgY29uIG9nbmkgY29tYW5kbyAnb3BlbicuIgpNQ0lFUlJfTUlTU0lOR19ERVZJQ0VfTkFNRSwgCSJJbCBjb21hbmRvIHNwZWNpZmljYXRvIHJpY2hpZWRlIHVuIGFsaWFzLCB1biBmaWxlLCB1biBkcml2ZXIgbyBpbCBub21lIGRpIHVuIGRpc3Bvc2l0aXZvLiBGb3JuaXJuZSB1bm8uIgpNQ0lFUlJfQkFEX1RJTUVfRk9STUFULCAJIklsIHZhbG9yZSBzcGVjaWZpY2F0byDoIGludmFsaWRvIHBlciBpbCBmb3JtYXRvIGRlbGwnb3JhcmlvLiBDb25zdWx0YXJlIGxhIGRvY3VtZW50YXppb25lIGRlbGwnTUNJIHBlciBpIGZvcm1hdGkgdmFsaWRpLiIKTUNJRVJSX05PX0NMT1NJTkdfUVVPVEUsIAkiTWFuY2EgdW5hIGRvcHBpYSB2b3Jnb2xldHRhIGRpIGNoaXVzdXJhIGRhbCB2YWxvcmUgZGVsIHBhcmFtZXRyby4gRm9ybmlybmUgdW5hLiIKTUNJRVJSX0RVUExJQ0FURV9GTEFHUywgCSJVbiB2YWxvcmUgbyBwYXJhbWV0cm8g6CBzdGF0byBzcGVjaWZpY2F0byBkdWUgdm9sdGUuIFNwZWNpZmljYXJsbyBzb2xvIHVuYSB2b2x0YS4iCk1DSUVSUl9JTlZBTElEX0ZJTEUsIAkJIklsIGZpbGUgc3BlY2lmaWNhdG8gbm9uIHB18iBlc3NlcmUgYXBlcnRvIGNvbiBpbCBkaXNwb3NpdGl2byBNQ0kgc3BlY2lmaWNhdG8uIElsIGZpbGUgcG90cmViYmUgZXNzZXJlIGRhbmVnZ2lhdG8sIG8gaW4gdW4gZm9ybWF0byBlcnJhdG8uIgpNQ0lFUlJfTlVMTF9QQVJBTUVURVJfQkxPQ0ssIAkiVW4gbnVsbCBwYXJhbWV0ZXIgYmxvY2sg6CBzdGF0byBwYXNzYXRvIGEgTUNJLiIKTUNJRVJSX1VOTkFNRURfUkVTT1VSQ0UsIAkiTm9uIOggcG9zc2liaWxlIHNhbHZhcmUgdW4gZmlsZSBzZW56YSBub21lLiBGb3JuaXJlIHVuIG5vbWUgYWwgZmlsZS4iCk1DSUVSUl9ORVdfUkVRVUlSRVNfQUxJQVMsIAkiRScgbmVjZXNzYXJpbyBzcGVjaWZpY2FyZSB1biBhbGlhcyBxdWFuZG8gc2kgdXNhIGlsIHBhcmFtZXRybyAnbmV3Jy4iCk1DSUVSUl9OT1RJRllfT05fQVVUT19PUEVOLCAJIk5vbiDoIHBvc3NpYmlsZSB1c2FyZSBpbCBmbGFnICdub3RpZnknIGNvbiBkaXNwb3NpdGl2aSBhdXRvLWFwZXJ0aS4iCk1DSUVSUl9OT19FTEVNRU5UX0FMTE9XRUQsIAkiTm9uIOggcG9zc2liaWxlIHVzYXJlIHVuIG5vbWUgZmlsZSBjb24gaWwgZGlzcG9zaXRpdm8gc3BlY2lmaWNhdG8uIgpNQ0lFUlJfTk9OQVBQTElDQUJMRV9GVU5DVElPTiwgCSJOb24g6CBwb3NzaWJpbGUgZXNlZ3VpcmUgaSBjb21hbmRpIG5lbGwnb3JkaW5lIHNwZWNpZmljYXRvLiBDb3JyZWdnZXJlIGxhIHNlcXVlbnphLCBlIHJpcHJvdmFyZS4iCk1DSUVSUl9JTExFR0FMX0ZPUl9BVVRPX09QRU4sIAkiTm9uIOggcG9zc2liaWxlIGVzZWd1aXJlIGlsIGNvbWFuZG8gc3BlY2lmaWNhdG8gY29uIHVuIGRpc3Bvc2l0aXZvIGF1dG8tYXBlcnRvLiBBdHRlbmRlcmUgY2hlIGlsIGRpc3Bvc2l0aXZvIHNpIHNpYSBjaGl1c28sIGUgcmlwcm92YXJlLiIKTUNJRVJSX0ZJTEVOQU1FX1JFUVVJUkVELCAJIklsIG5vbWUgZGVsIGZpbGUg6CBpbnZhbGlkby4gQ29udHJvbGxhcmUgY2hlIGlsIG5vbWUgZGVsIGZpbGUgbm9uIHNpYSBwafkgbHVuZ28gZGkgOCBjYXJhdHRlcmksIHNlZ3VpdG8gZGEgdW4gcGVyaW9kbyBlIHVuJ2VzdGVuc2lvbmUuIgpNQ0lFUlJfRVhUUkFfQ0hBUkFDVEVSUywgCSJOb24g6CBwb3NzaWJpbGUgc3BlY2lmaWNhcmUgYWx0cmkgY2FyYXR0ZXJpIGRvcG8gdW5hIHN0cmluZ2EgY29tcHJlc2EgdHJhIHZpcmdvbGV0dGUuIgpNQ0lFUlJfREVWSUNFX05PVF9JTlNUQUxMRUQsIAkiSWwgZGlzcG9zaXRpdm8gc3BlY2lmaWNhdG8gbm9uIOggaW5zdGFsbGF0byBuZWwgc2lzdGVtYS4gVXNhcmUgbCdvcHppb25lIERyaXZlcnMgbmVsIFBhbm5lbGxvIGRpIENvbnRyb2xsbyBwZXIgaW5zdGFsbGFyZSBpbCBkaXNwb3NpdGl2by4iCk1DSUVSUl9HRVRfQ0QsIAkJCSJJbXBvc3NpYmlsZSBhY2NlZGVyZSBhbCBmaWxlIG8gZGlzcG9zaXRpdm8gTUNJIHNwZWNpZmljYXRvLiBQcm92YXJlIGEgY2FtYmlhcmUgZGlyZWN0b3J5IG8gcmlhdnZpYXJlIGlsIGNvbXB1dGVyLiIKTUNJRVJSX1NFVF9DRCwgCQkJIkltcG9zc2liaWxlIGFjY2VkZXJlIGFsIGZpbGUgbyBkaXNwb3NpdGl2byBNQ0kgc3BlY2lmaWNhdG8gcGVyY2joIGwnYXBwbGljYXppb25lIG5vbiBwdfIgY2FtYmlhcmUgZGlyZWN0b3J5LiIKTUNJRVJSX1NFVF9EUklWRSwgCQkiSW1wb3NzaWJpbGUgYWNjZWRlcmUgYWwgZmlsZSBvIGRpc3Bvc2l0aXZvIE1DSSBzcGVjaWZpY2F0byBwZXJjaOggbCdhcHBsaWNhemlvbmUgbm9uIHB18iBjYW1iaWFyZSBkcml2ZS4iCk1DSUVSUl9ERVZJQ0VfTEVOR1RILCAJCSJTcGVjaWZpY2FyZSB1biBkcml2ZXIgbyBkaXNwb3NpdGl2byBjb24gbWVubyBkaSA3OSBjYXJhdHRlcmkuIgpNQ0lFUlJfREVWSUNFX09SRF9MRU5HVEgsIAkiU3BlY2lmaWNhcmUgdW4gZHJpdmVyIG8gZGlzcG9zaXRpdm8gY29uIG1lbm8gZGkgNjkgY2FyYXR0ZXJpLiIKTUNJRVJSX05PX0lOVEVHRVIsIAkJIklsIGNvbWFuZG8gc3BlY2lmaWNhdG8gcmljaGllZGUgdW4gbnVtZXJvIGludGVybyBjb21lIHBhcmFtZXRyby4gRm9ybmlybmUgdW5vLiIKTUNJRVJSX1dBVkVfT1VUUFVUU0lOVVNFLCAJIlR1dHRpIGkgZGlzcG9zaXRpdmkgd2F2ZSBjaGUgcG9zc29ubyBsZWdnZXJlIGlsIGZpbGUgbmVsIGZvcm1hdG8gYXR0dWFsZSBzb25vIGluIHVzby4gQXR0ZW5kZXJlIGNoZSB1biBkaXNwb3NpdGl2byB3YXZlIHNpYSBsaWJlcm8sIGUgcmlwcm92YXJlLiIKTUNJRVJSX1dBVkVfU0VUT1VUUFVUSU5VU0UsIAkiTm9uIOggcG9zc2liaWxlIGltcG9zdGFyZSBpbCBkaXNwb3NpdGl2byB3YXZlIGF0dHVhbGUgcGVyIGlsIHBsYXkgYmFjayBwZXJjaOgg6CBpbiB1c28uIEF0dGVuZGVyZSBjaGUgaWwgZGlzcG9zaXRpdm8gc2lhIGxpYmVybywgZSByaXByb3ZhcmUuIgpNQ0lFUlJfV0FWRV9JTlBVVFNJTlVTRSwgCSJUdXR0aSBpIGRpc3Bvc2l0aXZpIHdhdmUgY2hlIHBvc3Nvbm8gcmVnaXN0cmFyZSBuZWwgZm9ybWF0byBhdHR1YWxlIHNvbm8gaW4gdXNvLiBBdHRlbmRlcmUgY2hlIHVuIGRpc3Bvc2l0aXZvIHdhdmUgc2lhIGRpc3BvbmliaWxlLCBlIHJpcHJvdmFyZS4iCk1DSUVSUl9XQVZFX1NFVElOUFVUSU5VU0UsIAkiTm9uIOggcG9zc2liaWxlIGltcG9zdGFyZSBpbCBkaXNwb3NpdGl2byBwZXIgcmVnaXN0cmFyZSBwZXJjaOgg6CBpbiB1c28uIEF0dGVuZGVyZSBjaGUgaWwgZGlzcG9zaXRpdm8gc2lhIGRpc3BvbmliaWxlLCBlIHJpcHJvdmFyZS4iCk1DSUVSUl9XQVZFX09VVFBVVFVOU1BFQ0lGSUVELAkiUHXyIGVzc2VyZSB1c2F0byBxdWFsdW5xdWUgZGlzcG9zaXRpdm8gY29tcGF0aWJpbGUgd2F2ZWZvcm0gcGVyIGlsIHBsYXliYWNrLiIKTUNJRVJSX1dBVkVfSU5QVVRVTlNQRUNJRklFRCwgCSJQdfIgZXNzZXJlIHVzYXRvIHF1YWx1bnF1ZSBkaXNwb3NpdGl2byBjb21wYXRpYmlsZSB3YXZlZm9ybSBwZXIgcmVnaXN0cmFyZS4iCk1DSUVSUl9XQVZFX09VVFBVVFNVTlNVSVRBQkxFLCAJIk5lc3N1biBkaXNwb3NpdGl2byB3YXZlIGluc3RhbGxhdG8gcHXyIGxlZ2dlcmUgaSBmaWxlIG5lbCBmb3JtYXRvIGF0dHVhbGUuIFVzYXJlIGwnb3B6aW9uZSBkcml2ZXJzIHBlciBpbnN0YWxsYXJlIHVuIGRpc3Bvc2l0aXZvIHdhdmUuIgpNQ0lFUlJfV0FWRV9TRVRPVVRQVVRVTlNVSVRBQkxFLCJJbCBkaXNwb3NpdGl2byBjaGUgc2kgc3RhIHVzYW5kbyBwZXIgbGVnZ2VyZSBpbCBmaWxlIG5vbiByaXNvbm9zY2UgaWwgZm9ybWF0byBkZWwgZmlsZSBhdHR1YWxlLiIKTUNJRVJSX1dBVkVfSU5QVVRTVU5TVUlUQUJMRSwgCSJOb24g6CBpbnN0YWxsYXRvIG5lc3N1biBkaXBvc2l0aXZvIHdhdmUgY2hlIHBvc3NhIHJlZ2lzdHJhcmUgZGVpIGZpbGUgbmVsIGZvcm1hdG8gYXR0dWFsZS4gVXNhcmUgbCdvcHppb25lIERyaXZlcnMgcGVyIGluc3RhbGxhcmUgdW4gZGlzcG9zaXRpdm8gd2F2ZS4iCk1DSUVSUl9XQVZFX1NFVElOUFVUVU5TVUlUQUJMRSwgIklsIGRpc3Bvc2l0aXZvIGNoZSBzaSBzdGEgdXNhbmRvIHBlciByZWdpc3RyYXJlIG5vbiByaXNvbm9zY2UgaWwgZm9ybWF0byBhdHR1YWxlLiIKTUNJRVJSX05PX1dJTkRPVywgCQkiTm9uIGMn6CBuZXNzdW5hIGZpbmVzdHJhIGRpIHZpc3VhbGl6emF6aW9uZS4iCk1DSUVSUl9DUkVBVEVXSU5ET1csIAkJIkltcG9zc2liaWxlIHVzYXJlIG8gY3JlYXJlIGxhIGZpbmVzdHJhLiIKTUNJRVJSX0ZJTEVfUkVBRCwgCQkiSW1wb3NzaWJpbGUgbGVnZ2VyZSBpbCBmaWxlIHNwZWNpZmljYXRvLiBBc3NpY3VyYXJzaSBjaGUgaWwgZmlsZSBzaWEgYW5jb3JhIHByZXNlbnRlLCBvIGNvbnRyb2xsYXJlIGlsIGRpc2NvIG8gbGEgY29ubmVzc2lvbmUgZGkgcmV0ZS4iCk1DSUVSUl9GSUxFX1dSSVRFLCAJCSJJbXBvc3NpYmlsZSBzY3JpdmVyZSBpbCBmaWxlIHNwZWNpZmljYXRvLiBDb250cm9sbGFyZSBkaSBhdmVyZSBzcGF6aW8gbGliZXJvIHN1ZmZpY2VudGUgc3VsIGRpc2NvIG8gZGkgZXNzZXJlIGFuY29yYSBjb25uZXNzaSBhbGxhIHJldGUuIgpNQ0lFUlJfU0VRX0RJVl9JTkNPTVBBVElCTEUsIAkiSSBmb3JtYXRpIGRlbGwnb3JhcmlvIGRlbCAiInNvbmcgcG9pbnRlciIiIGUgIFNNUFRFIHNpIGVzY2x1ZG9ubyB2aWNlbmRldm9sbWVudGUuIE5vbiBzaSBwb3Nzb25vIHVzYXJlIGluc2llbWUuIgpNQ0lFUlJfU0VRX05PTUlESVBSRVNFTlQsIAkiTmVsIHNpc3RlbWEgbm9uIHNvbm8gaW5zdGFsbGF0aSBkaXNwb3NpdGl2aSBNSURJLiBVc2FyZSBsJ29wemlvbmUgRHJpdmVycyBkYWwgUGFubmVsbG8gZGkgQ29udHJvbGxvIHBlciBpbnN0YWxsYXJlIHVuIGRyaXZlciBNSURJLiIKTUNJRVJSX1NFUV9QT1JUX0lOVVNFLCAJCSJMYSBwb3J0YSBNSURJIHNwZWNpZmljYXRhIOggZ2ngIGluIHVzby4gQXR0ZW5kZXJlIGNoZSBzaWEgbGliZXJhLCBlIHJpcHJvdmFyZS4iCk1DSUVSUl9TRVFfUE9SVF9NQVBOT0RFVklDRSwgCSJMYSBjb25maWd1cmF6aW9uZSBkZWwgTWFwcGVyIE1JREkgc2kgcmlmZXJpc2NlIGEgdW4gZGlzcG9zaXRpdm8gTUlESSBjaGUgbm9uIOggaW5zdGFsbGF0byBuZWwgc2lzdGVtYS4gVXNhcmUgbCdvcHppb25lIE1hcHBlciBNSURJIG5lbCBQYW5uZWxsbyBkaSBDb250cm9sbG8gcGVyIGNhbWJpYXJlIGxhIGNvbmZpZ3VyYXppb25lLiIKTUNJRVJSX1NFUV9QT1JUX01JU0NFUlJPUiwgCSJTaSDoIHZlcmlmaWNhdG8gdW4gZXJyb3JlIGNvbiBsYSBwb3J0YSBzcGVjaWZpY2F0YS4iCk1DSUVSUl9TRVFfUE9SVF9OT05FWElTVEVOVCwgCSJJbCBkaXNwb3NpdGl2byBNSURJIHNwZWNpZmljYXRvIG5vbiDoIGluc3RhbGxhdG8gbmVsIHNpc3RlbWEuIFVzYXJlIGwnb3B6aW9uZSBEUklWRVJTIG5lbCBQYW5uZWxsbyBkaSBDb250cm9sbG8gcGVyIGluc3RhbGxhcmUgdW4gZGlzcG9zaXRpdm8gTUlESS4iCk1DSUVSUl9TRVFfUE9SVFVOU1BFQ0lGSUVELCAJIk5vbiDoIHN0YXRhIHNwZWNpZmljYXRhIHVuYSBwb3J0YSBNSURJIG5lbCBzaXN0ZW1hLiIKTUNJRVJSX1NFUV9USU1FUiwgCQkiVHV0dGkgaSB0aW1lciBtdWx0aW1lZGlhbGkgc29ubyBpbiB1c28gZGEgcGFydGUgZGkgYWx0cmUgYXBwbGljYXppb25pLiBDaGl1ZGVyZSB1bmEgZGkgcXVlc3RhIGFwcGxpY2F6aW9uaSwgZSByaXByb3ZhcmUuIgoKRU5ECg==