CpYGChFkbWkvY29tbW9ucy5wcm90bxIDZG1pKjEKBlN0YXR1cxIUChBVTkRFRklORURfU1RBVFVTEAASBgoCT0sQARIJCgVFUlJPUhACKmkKBlJlYXNvbhIUChBVTkRFRklORURfUkVBU09OEAASEgoOVU5LTk9XTl9ERVZJQ0UQARISCg5JTlRFUk5BTF9FUlJPUhACEhAKDFdST05HX01FVFJJQxADEg8KC1dST05HX0VWRU5UEARCO1o5Z2l0aHViLmNvbS9vcGVuY29yZC9kZXZpY2UtbWFuYWdlbWVudC1pbnRlcmZhY2UvdjMvZ28vZG1pSpgECgYSBAAAFAEKCAoBDBIDAAASCggKAQgSAwIAUAoJCgIICxIDAgBQCggKAQISAwMADApUCgIFABIEBwALATJIIENvbW1vbiBzdHJ1Y3R1cmVzIHVzZWQgYWNyb3NzIHRoZSBkaWZmZXJlbnQgRGV2aWNlIE1hbmFnZW1lbnQgc2VydmljZXMKCgoKAwUAARIDBwULCgsKBAUAAgASAwgEGQoMCgUFAAIAARIDCAQUCgwKBQUAAgACEgMIFxgKCwoEBQACARIDCQQLCgwKBQUAAgEBEgMJBAYKDAoFBQACAQISAwkJCgoLCgQFAAICEgMKBA4KDAoFBQACAgESAwoECQoMCgUFAAICAhIDCgwNCi8KAgUBEgQOABQBGiMgUmVhc29uIGZvciB0aGUgZmFpbHVyZSBvZiByZXF1ZXN0CgoKCgMFAQESAw4FCwoLCgQFAQIAEgMPBBkKDAoFBQECAAESAw8EFAoMCgUFAQIAAhIDDxcYCgsKBAUBAgESAxAEFwoMCgUFAQIBARIDEAQSCgwKBQUBAgECEgMQFRYKCwoEBQECAhIDEQQXCgwKBQUBAgIBEgMRBBIKDAoFBQECAgISAxEVFgoLCgQFAQIDEgMSBBUKDAoFBQECAwESAxIEEAoMCgUFAQIDAhIDEhMUCgsKBAUBAgQSAxMEFAoMCgUFAQIEARIDEwQPCgwKBQUBAgQCEgMTEhNiBnByb3RvMwryLwofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjsKCVRpbWVzdGFtcBIYCgdzZWNvbmRzGAEgASgDUgdzZWNvbmRzEhQKBW5hbm9zGAIgASgFUgVuYW5vc0J+ChNjb20uZ29vZ2xlLnByb3RvYnVmQg5UaW1lc3RhbXBQcm90b1ABWitnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvdGltZXN0YW1w+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSvgtCgcSBR4AiAEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAfCgkKAggfEgMjAB8KCAoBCBIDJABCCgkKAggLEgMkAEIKCAoBCBIDJQAsCgkKAggBEgMlACwKCAoBCBIDJgAvCgkKAggIEgMmAC8KCAoBCBIDJwAiCgkKAggKEgMnACIKCAoBCBIDKAAhCgkKAggkEgMoACEK8RsKAgQAEgV8AIgBARrjGyBBIFRpbWVzdGFtcCByZXByZXNlbnRzIGEgcG9pbnQgaW4gdGltZSBpbmRlcGVuZGVudCBvZiBhbnkgdGltZSB6b25lIG9yIGxvY2FsCiBjYWxlbmRhciwgZW5jb2RlZCBhcyBhIGNvdW50IG9mIHNlY29uZHMgYW5kIGZyYWN0aW9ucyBvZiBzZWNvbmRzIGF0CiBuYW5vc2Vjb25kIHJlc29sdXRpb24uIFRoZSBjb3VudCBpcyByZWxhdGl2ZSB0byBhbiBlcG9jaCBhdCBVVEMgbWlkbmlnaHQgb24KIEphbnVhcnkgMSwgMTk3MCwgaW4gdGhlIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIgd2hpY2ggZXh0ZW5kcyB0aGUKIEdyZWdvcmlhbiBjYWxlbmRhciBiYWNrd2FyZHMgdG8geWVhciBvbmUuCgogQWxsIG1pbnV0ZXMgYXJlIDYwIHNlY29uZHMgbG9uZy4gTGVhcCBzZWNvbmRzIGFyZSAic21lYXJlZCIgc28gdGhhdCBubyBsZWFwCiBzZWNvbmQgdGFibGUgaXMgbmVlZGVkIGZvciBpbnRlcnByZXRhdGlvbiwgdXNpbmcgYSBbMjQtaG91ciBsaW5lYXIKIHNtZWFyXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS90aW1lL3NtZWFyKS4KCiBUaGUgcmFuZ2UgaXMgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0byA5OTk5LTEyLTMxVDIzOjU5OjU5Ljk5OTk5OTk5OVouIEJ5CiByZXN0cmljdGluZyB0byB0aGF0IHJhbmdlLCB3ZSBlbnN1cmUgdGhhdCB3ZSBjYW4gY29udmVydCB0byBhbmQgZnJvbSBbUkZDCiAzMzM5XShodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGRhdGUgc3RyaW5ncy4KCiAjIEV4YW1wbGVzCgogRXhhbXBsZSAxOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGB0aW1lKClgLgoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0aW1lKE5VTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKDApOwoKIEV4YW1wbGUgMjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgZ2V0dGltZW9mZGF5KClgLgoKICAgICBzdHJ1Y3QgdGltZXZhbCB0djsKICAgICBnZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModHYudHZfc2VjKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKHR2LnR2X3VzZWMgKiAxMDAwKTsKCiBFeGFtcGxlIDM6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gV2luMzIgYEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKClgLgoKICAgICBGSUxFVElNRSBmdDsKICAgICBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgmZnQpOwogICAgIFVJTlQ2NCB0aWNrcyA9ICgoKFVJTlQ2NClmdC5kd0hpZ2hEYXRlVGltZSkgPDwgMzIpIHwgZnQuZHdMb3dEYXRlVGltZTsKCiAgICAgLy8gQSBXaW5kb3dzIHRpY2sgaXMgMTAwIG5hbm9zZWNvbmRzLiBXaW5kb3dzIGVwb2NoIDE2MDEtMDEtMDFUMDA6MDA6MDBaCiAgICAgLy8gaXMgMTE2NDQ0NzM2MDAgc2Vjb25kcyBiZWZvcmUgVW5peCBlcG9jaCAxOTcwLTAxLTAxVDAwOjAwOjAwWi4KICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcygoSU5UNjQpICgodGlja3MgLyAxMDAwMDAwMCkgLSAxMTY0NDQ3MzYwMExMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygoSU5UMzIpICgodGlja3MgJSAxMDAwMDAwMCkgKiAxMDApKTsKCiBFeGFtcGxlIDQ6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gSmF2YSBgU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKClgLgoKICAgICBsb25nIG1pbGxpcyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wID0gVGltZXN0YW1wLm5ld0J1aWxkZXIoKS5zZXRTZWNvbmRzKG1pbGxpcyAvIDEwMDApCiAgICAgICAgIC5zZXROYW5vcygoaW50KSAoKG1pbGxpcyAlIDEwMDApICogMTAwMDAwMCkpLmJ1aWxkKCk7CgoKIEV4YW1wbGUgNTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBjdXJyZW50IHRpbWUgaW4gUHl0aG9uLgoKICAgICB0aW1lc3RhbXAgPSBUaW1lc3RhbXAoKQogICAgIHRpbWVzdGFtcC5HZXRDdXJyZW50VGltZSgpCgogIyBKU09OIE1hcHBpbmcKCiBJbiBKU09OIGZvcm1hdCwgdGhlIFRpbWVzdGFtcCB0eXBlIGlzIGVuY29kZWQgYXMgYSBzdHJpbmcgaW4gdGhlCiBbUkZDIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZm9ybWF0LiBUaGF0IGlzLCB0aGUKIGZvcm1hdCBpcyAie3llYXJ9LXttb250aH0te2RheX1Ue2hvdXJ9OnttaW59OntzZWN9Wy57ZnJhY19zZWN9XVoiCiB3aGVyZSB7eWVhcn0gaXMgYWx3YXlzIGV4cHJlc3NlZCB1c2luZyBmb3VyIGRpZ2l0cyB3aGlsZSB7bW9udGh9LCB7ZGF5fSwKIHtob3VyfSwge21pbn0sIGFuZCB7c2VjfSBhcmUgemVyby1wYWRkZWQgdG8gdHdvIGRpZ2l0cyBlYWNoLiBUaGUgZnJhY3Rpb25hbAogc2Vjb25kcywgd2hpY2ggY2FuIGdvIHVwIHRvIDkgZGlnaXRzIChpLmUuIHVwIHRvIDEgbmFub3NlY29uZCByZXNvbHV0aW9uKSwKIGFyZSBvcHRpb25hbC4gVGhlICJaIiBzdWZmaXggaW5kaWNhdGVzIHRoZSB0aW1lem9uZSAoIlVUQyIpOyB0aGUgdGltZXpvbmUKIGlzIHJlcXVpcmVkLiBBIHByb3RvMyBKU09OIHNlcmlhbGl6ZXIgc2hvdWxkIGFsd2F5cyB1c2UgVVRDIChhcyBpbmRpY2F0ZWQgYnkKICJaIikgd2hlbiBwcmludGluZyB0aGUgVGltZXN0YW1wIHR5cGUgYW5kIGEgcHJvdG8zIEpTT04gcGFyc2VyIHNob3VsZCBiZQogYWJsZSB0byBhY2NlcHQgYm90aCBVVEMgYW5kIG90aGVyIHRpbWV6b25lcyAoYXMgaW5kaWNhdGVkIGJ5IGFuIG9mZnNldCkuCgogRm9yIGV4YW1wbGUsICIyMDE3LTAxLTE1VDAxOjMwOjE1LjAxWiIgZW5jb2RlcyAxNS4wMSBzZWNvbmRzIHBhc3QKIDAxOjMwIFVUQyBvbiBKYW51YXJ5IDE1LCAyMDE3LgoKIEluIEphdmFTY3JpcHQsIG9uZSBjYW4gY29udmVydCBhIERhdGUgb2JqZWN0IHRvIHRoaXMgZm9ybWF0IHVzaW5nIHRoZQogc3RhbmRhcmQgW3RvSVNPU3RyaW5nKCldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGUvdG9JU09TdHJpbmcpCiBtZXRob2QuIEluIFB5dGhvbiwgYSBzdGFuZGFyZCBgZGF0ZXRpbWUuZGF0ZXRpbWVgIG9iamVjdCBjYW4gYmUgY29udmVydGVkCiB0byB0aGlzIGZvcm1hdCB1c2luZyBbYHN0cmZ0aW1lYF0oaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMi9saWJyYXJ5L3RpbWUuaHRtbCN0aW1lLnN0cmZ0aW1lKQogd2l0aCB0aGUgdGltZSBmb3JtYXQgc3BlYyAnJVktJW0tJWRUJUg6JU06JVMuJWZaJy4gTGlrZXdpc2UsIGluIEphdmEsIG9uZQogY2FuIHVzZSB0aGUgSm9kYSBUaW1lJ3MgW2BJU09EYXRlVGltZUZvcm1hdC5kYXRlVGltZSgpYF0oCiBodHRwOi8vd3d3LmpvZGEub3JnL2pvZGEtdGltZS9hcGlkb2NzL29yZy9qb2RhL3RpbWUvZm9ybWF0L0lTT0RhdGVUaW1lRm9ybWF0Lmh0bWwjZGF0ZVRpbWUlMkQlMkQKICkgdG8gb2J0YWluIGEgZm9ybWF0dGVyIGNhcGFibGUgb2YgZ2VuZXJhdGluZyB0aW1lc3RhbXBzIGluIHRoaXMgZm9ybWF0LgoKCgoKCgMEAAESA3wIEQqdAQoEBAACABIEgQECFBqOASBSZXByZXNlbnRzIHNlY29uZHMgb2YgVVRDIHRpbWUgc2luY2UgVW5peCBlcG9jaAogMTk3MC0wMS0wMVQwMDowMDowMFouIE11c3QgYmUgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0bwogOTk5OS0xMi0zMVQyMzo1OTo1OVogaW5jbHVzaXZlLgoKDgoFBAACAAQSBYEBAnwTCg0KBQQAAgAFEgSBAQIHCg0KBQQAAgABEgSBAQgPCg0KBQQAAgADEgSBARITCuUBCgQEAAIBEgSHAQISGtYBIE5vbi1uZWdhdGl2ZSBmcmFjdGlvbnMgb2YgYSBzZWNvbmQgYXQgbmFub3NlY29uZCByZXNvbHV0aW9uLiBOZWdhdGl2ZQogc2Vjb25kIHZhbHVlcyB3aXRoIGZyYWN0aW9ucyBtdXN0IHN0aWxsIGhhdmUgbm9uLW5lZ2F0aXZlIG5hbm9zIHZhbHVlcwogdGhhdCBjb3VudCBmb3J3YXJkIGluIHRpbWUuIE11c3QgYmUgZnJvbSAwIHRvIDk5OSw5OTksOTk5CiBpbmNsdXNpdmUuCgoPCgUEAAIBBBIGhwECgQEUCg0KBQQAAgEFEgSHAQIHCg0KBQQAAgEBEgSHAQgNCg0KBQQAAgEDEgSHARARYgZwcm90bzMK3WQKDGRtaS9ody5wcm90bxIDZG1pGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvIhoKBFV1aWQSEgoEdXVpZBgBIAEoCVIEdXVpZCIrCgpIYXJkd2FyZUlEEh0KBHV1aWQYASABKAsyCS5kbWkuVXVpZFIEdXVpZCIXCgNVcmkSEAoDdXJpGAEgASgJUgN1cmkihAMKDkNvbXBvbmVudFN0YXRlEkgKEnN0YXRlX2xhc3RfY2hhbmdlZBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSEHN0YXRlTGFzdENoYW5nZWQSOQoLYWRtaW5fc3RhdGUYAiABKA4yGC5kbWkuQ29tcG9uZW50QWRtaW5TdGF0ZVIKYWRtaW5TdGF0ZRI2CgpvcGVyX3N0YXRlGAMgASgOMhcuZG1pLkNvbXBvbmVudE9wZXJTdGF0ZVIJb3BlclN0YXRlEjkKC3VzYWdlX3N0YXRlGAQgASgOMhguZG1pLkNvbXBvbmVudFVzYWdlU3RhdGVSCnVzYWdlU3RhdGUSOQoLYWxhcm1fc3RhdGUYBSABKA4yGC5kbWkuQ29tcG9uZW50QWxhcm1TdGF0ZVIKYWxhcm1TdGF0ZRI/Cg1zdGFuZGJ5X3N0YXRlGAYgASgOMhouZG1pLkNvbXBvbmVudFN0YW5kYnlTdGF0ZVIMc3RhbmRieVN0YXRlIvMCChNDb21wb25lbnRTZW5zb3JEYXRhEhQKBXZhbHVlGAEgASgFUgV2YWx1ZRIoCgR0eXBlGAIgASgOMhQuZG1pLlNlbnNvclZhbHVlVHlwZVIEdHlwZRIrCgVzY2FsZRgDIAEoDjIVLmRtaS5TZW5zb3JWYWx1ZVNjYWxlUgVzY2FsZRIcCglwcmVjaXNpb24YBCABKAVSCXByZWNpc2lvbhIpCgZzdGF0dXMYBSABKA4yES5kbWkuU2Vuc29yU3RhdHVzUgZzdGF0dXMSIwoNdW5pdHNfZGlzcGxheRgGIAEoCVIMdW5pdHNEaXNwbGF5EjgKCXRpbWVzdGFtcBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSCXRpbWVzdGFtcBIqChF2YWx1ZV91cGRhdGVfcmF0ZRgIIAEoDVIPdmFsdWVVcGRhdGVSYXRlEhsKCWRhdGFfdHlwZRgJIAEoCVIIZGF0YVR5cGUitwUKCUNvbXBvbmVudBISCgRuYW1lGAEgASgJUgRuYW1lEigKBWNsYXNzGAIgASgOMhIuZG1pLkNvbXBvbmVudFR5cGVSBWNsYXNzEiAKC2Rlc2NyaXB0aW9uGAMgASgJUgtkZXNjcmlwdGlvbhIWCgZwYXJlbnQYBCABKAlSBnBhcmVudBIkCg5wYXJlbnRfcmVsX3BvcxgFIAEoBVIMcGFyZW50UmVsUG9zEioKCGNoaWxkcmVuGAYgAygLMg4uZG1pLkNvbXBvbmVudFIIY2hpbGRyZW4SIQoMaGFyZHdhcmVfcmV2GAcgASgJUgtoYXJkd2FyZVJldhIhCgxmaXJtd2FyZV9yZXYYCCABKAlSC2Zpcm13YXJlUmV2EiEKDHNvZnR3YXJlX3JldhgJIAEoCVILc29mdHdhcmVSZXYSHQoKc2VyaWFsX251bRgKIAEoCVIJc2VyaWFsTnVtEhkKCG1mZ19uYW1lGAsgASgJUgdtZmdOYW1lEh0KCm1vZGVsX25hbWUYDCABKAlSCW1vZGVsTmFtZRIUCgVhbGlhcxgNIAEoCVIFYWxpYXMSGQoIYXNzZXRfaWQYDiABKAlSB2Fzc2V0SWQSFQoGaXNfZnJ1GA8gASgIUgVpc0ZydRI1CghtZmdfZGF0ZRgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSB21mZ0RhdGUSGgoDdXJpGBEgASgLMgguZG1pLlVyaVIDdXJpEh0KBHV1aWQYEiABKAsyCS5kbWkuVXVpZFIEdXVpZBIpCgVzdGF0ZRgTIAEoCzITLmRtaS5Db21wb25lbnRTdGF0ZVIFc3RhdGUSOQoLc2Vuc29yX2RhdGEYFCADKAsyGC5kbWkuQ29tcG9uZW50U2Vuc29yRGF0YVIKc2Vuc29yRGF0YSJrCghIYXJkd2FyZRI7CgtsYXN0X2NoYW5nZRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSCmxhc3RDaGFuZ2USIgoEcm9vdBgCIAEoCzIOLmRtaS5Db21wb25lbnRSBHJvb3QiqQIKE01vZGlmaWFibGVDb21wb25lbnQSEgoEbmFtZRgBIAEoCVIEbmFtZRIoCgVjbGFzcxgCIAEoDjISLmRtaS5Db21wb25lbnRUeXBlUgVjbGFzcxImCgZwYXJlbnQYAyABKAsyDi5kbWkuQ29tcG9uZW50UgZwYXJlbnQSJAoOcGFyZW50X3JlbF9wb3MYBCABKAVSDHBhcmVudFJlbFBvcxIUCgVhbGlhcxgFIAEoCVIFYWxpYXMSGQoIYXNzZXRfaWQYBiABKAlSB2Fzc2V0SWQSGgoDdXJpGAcgASgLMgguZG1pLlVyaVIDdXJpEjkKC2FkbWluX3N0YXRlGAggASgOMhguZG1pLkNvbXBvbmVudEFkbWluU3RhdGVSCmFkbWluU3RhdGUqgQQKDUNvbXBvbmVudFR5cGUSHAoYQ09NUE9ORU5UX1RZUEVfVU5ERUZJTkVEEAASGgoWQ09NUE9ORU5UX1RZUEVfVU5LTk9XThABEhoKFkNPTVBPTkVOVF9UWVBFX0NIQVNTSVMQAhIcChhDT01QT05FTlRfVFlQRV9CQUNLUExBTkUQAxIcChhDT01QT05FTlRfVFlQRV9DT05UQUlORVIQBBIfChtDT01QT05FTlRfVFlQRV9QT1dFUl9TVVBQTFkQBRIWChJDT01QT05FTlRfVFlQRV9GQU4QBhIZChVDT01QT05FTlRfVFlQRV9TRU5TT1IQBxIZChVDT01QT05FTlRfVFlQRV9NT0RVTEUQCBIXChNDT01QT05FTlRfVFlQRV9QT1JUEAkSFgoSQ09NUE9ORU5UX1RZUEVfQ1BVEAoSGgoWQ09NUE9ORU5UX1RZUEVfQkFUVEVSWRALEhoKFkNPTVBPTkVOVF9UWVBFX1NUT1JBR0UQDBIZChVDT01QT05FTlRfVFlQRV9NRU1PUlkQDRIeChpDT01QT05FTlRfVFlQRV9UUkFOU0NFSVZFUhAOEiMKH0NPTVBPTkVOVF9UWVBFX0dQT05fVFJBTlNDRUlWRVIQDxImCiJDT01QT05FTlRfVFlQRV9YR1NfUE9OX1RSQU5TQ0VJVkVSEBAqswEKE0NvbXBvbmVudEFkbWluU3RhdGUSHgoaQ09NUF9BRE1JTl9TVEFURV9VTkRFRklORUQQABIcChhDT01QX0FETUlOX1NUQVRFX1VOS05PV04QARIbChdDT01QX0FETUlOX1NUQVRFX0xPQ0tFRBACEiIKHkNPTVBfQURNSU5fU1RBVEVfU0hVVFRJTkdfRE9XThADEh0KGUNPTVBfQURNSU5fU1RBVEVfVU5MT0NLRUQQBCqoAQoSQ29tcG9uZW50T3BlclN0YXRlEh0KGUNPTVBfT1BFUl9TVEFURV9VTkRFRklORUQQABIbChdDT01QX09QRVJfU1RBVEVfVU5LTk9XThABEhwKGENPTVBfT1BFUl9TVEFURV9ESVNBQkxFRBACEhsKF0NPTVBfT1BFUl9TVEFURV9FTkFCTEVEEAMSGwoXQ09NUF9PUEVSX1NUQVRFX1RFU1RJTkcQBCqmAQoTQ29tcG9uZW50VXNhZ2VTdGF0ZRIeChpDT01QX1VTQUdFX1NUQVRFX1VOREVGSU5FRBAAEhwKGENPTVBfVVNBR0VfU1RBVEVfVU5LTk9XThABEhkKFUNPTVBfVVNBR0VfU1RBVEVfSURMRRACEhsKF0NPTVBfVVNBR0VfU1RBVEVfQUNUSVZFEAMSGQoVQ09NUF9VU0FHRV9TVEFURV9CVVNZEAQqjgIKE0NvbXBvbmVudEFsYXJtU3RhdGUSHgoaQ09NUF9BTEFSTV9TVEFURV9VTkRFRklORUQQABIcChhDT01QX0FMQVJNX1NUQVRFX1VOS05PV04QARIhCh1DT01QX0FMQVJNX1NUQVRFX1VOREVSX1JFUEFJUhACEh0KGUNPTVBfQUxBUk1fU1RBVEVfQ1JJVElDQUwQAxIaChZDT01QX0FMQVJNX1NUQVRFX01BSk9SEAQSGgoWQ09NUF9BTEFSTV9TVEFURV9NSU5PUhAFEhwKGENPTVBfQUxBUk1fU1RBVEVfV0FSTklORxAGEiEKHUNPTVBfQUxBUk1fU1RBVEVfSU5URVJNRURJQVRFEAcqvAEKFUNvbXBvbmVudFN0YW5kYnlTdGF0ZRIgChxDT01QX1NUQU5EQllfU1RBVEVfVU5ERUZJTkVEEAASHgoaQ09NUF9TVEFOREJZX1NUQVRFX1VOS05PV04QARIaChZDT01QX1NUQU5EQllfU1RBVEVfSE9UEAISGwoXQ09NUF9TVEFOREJZX1NUQVRFX0NPTEQQAxIoCiRDT01QX1NUQU5EQllfU1RBVEVfUFJPVklESU5HX1NFUlZJQ0UQBCqhAwoPU2Vuc29yVmFsdWVUeXBlEh8KG1NFTlNPUl9WQUxVRV9UWVBFX1VOREVGSU5FRBAAEhsKF1NFTlNPUl9WQUxVRV9UWVBFX09USEVSEAESHQoZU0VOU09SX1ZBTFVFX1RZUEVfVU5LTk9XThACEh4KGlNFTlNPUl9WQUxVRV9UWVBFX1ZPTFRTX0FDEAMSHgoaU0VOU09SX1ZBTFVFX1RZUEVfVk9MVFNfREMQBBIdChlTRU5TT1JfVkFMVUVfVFlQRV9BTVBFUkVTEAUSGwoXU0VOU09SX1ZBTFVFX1RZUEVfV0FUVFMQBhIbChdTRU5TT1JfVkFMVUVfVFlQRV9IRVJUWhAHEh0KGVNFTlNPUl9WQUxVRV9UWVBFX0NFTFNJVVMQCBIgChxTRU5TT1JfVkFMVUVfVFlQRV9QRVJDRU5UX1JIEAkSGQoVU0VOU09SX1ZBTFVFX1RZUEVfUlBNEAoSGQoVU0VOU09SX1ZBTFVFX1RZUEVfQ01NEAsSIQodU0VOU09SX1ZBTFVFX1RZUEVfVFJVVEhfVkFMVUUQDCqoBAoQU2Vuc29yVmFsdWVTY2FsZRIgChxTRU5TT1JfVkFMVUVfU0NBTEVfVU5ERUZJTkVEEAASHAoYU0VOU09SX1ZBTFVFX1NDQUxFX1lPQ1RPEAESHAoYU0VOU09SX1ZBTFVFX1NDQUxFX1pFUFRPEAISGwoXU0VOU09SX1ZBTFVFX1NDQUxFX0FUVE8QAxIcChhTRU5TT1JfVkFMVUVfU0NBTEVfRkVNVE8QBBIbChdTRU5TT1JfVkFMVUVfU0NBTEVfUElDTxAFEhsKF1NFTlNPUl9WQUxVRV9TQ0FMRV9OQU5PEAYSHAoYU0VOU09SX1ZBTFVFX1NDQUxFX01JQ1JPEAcSHAoYU0VOU09SX1ZBTFVFX1NDQUxFX01JTExJEAgSHAoYU0VOU09SX1ZBTFVFX1NDQUxFX1VOSVRTEAkSGwoXU0VOU09SX1ZBTFVFX1NDQUxFX0tJTE8QChIbChdTRU5TT1JfVkFMVUVfU0NBTEVfTUVHQRALEhsKF1NFTlNPUl9WQUxVRV9TQ0FMRV9HSUdBEAwSGwoXU0VOU09SX1ZBTFVFX1NDQUxFX1RFUkEQDRIbChdTRU5TT1JfVkFMVUVfU0NBTEVfUEVUQRAOEhoKFlNFTlNPUl9WQUxVRV9TQ0FMRV9FWEEQDxIcChhTRU5TT1JfVkFMVUVfU0NBTEVfWkVUVEEQEBIcChhTRU5TT1JfVkFMVUVfU0NBTEVfWU9UVEEQESqCAQoMU2Vuc29yU3RhdHVzEhsKF1NFTlNPUl9TVEFUVVNfVU5ERUZJTkVEEAASFAoQU0VOU09SX1NUQVRVU19PSxABEh0KGVNFTlNPUl9TVEFUVVNfVU5BVkFJTEFCTEUQAhIgChxTRU5TT1JfU1RBVFVTX05PTk9QRVJBVElPTkFMEANCO1o5Z2l0aHViLmNvbS9vcGVuY29yZC9kZXZpY2UtbWFuYWdlbWVudC1pbnRlcmZhY2UvdjMvZ28vZG1pSv0/CgcSBQAAxAEBCggKAQwSAwAAEgoICgEIEgMCAFAKCQoCCAsSAwIAUAoICgECEgMDAAwKCQoCAwASAwUAKQppCgIEABIECQALATJdIFRoZSBtb2RlbCB1c2VkIHRvIHJlcHJlc2VudCBhIEhXIGlzIGJhc2VkIG9uIFJGQzgzNDggKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM4MzQ4KQ0KCgoKAwQAARIDCQgMCgsKBAQAAgASAwoEFAoNCgUEAAIABBIECgQJDgoMCgUEAAIABRIDCgQKCgwKBQQAAgABEgMKCw8KDAoFBAACAAMSAwoSEwoKCgIEARIEDQAPAQoKCgMEAQESAw0IEgoLCgQEAQIAEgMOBBIKDQoFBAECAAQSBA4EDRQKDAoFBAECAAYSAw4ECAoMCgUEAQIAARIDDgkNCgwKBQQBAgADEgMOEBEKCgoCBAISBBEAEwEKCgoDBAIBEgMRCAsKCwoEBAICABIDEgQTCg0KBQQCAgAEEgQSBBENCgwKBQQCAgAFEgMSBAoKDAoFBAICAAESAxILDgoMCgUEAgIAAxIDEhESCgoKAgUAEgQVACcBCgoKAwUAARIDFQUSCgsKBAUAAgASAxYEIQoMCgUFAAIAARIDFgQcCgwKBQUAAgACEgMWHyAKCwoEBQACARIDFwQfCgwKBQUAAgEBEgMXBBoKDAoFBQACAQISAxcdHgoLCgQFAAICEgMYBB8KDAoFBQACAgESAxgEGgoMCgUFAAICAhIDGB0eCgsKBAUAAgMSAxkEIQoMCgUFAAIDARIDGQQcCgwKBQUAAgMCEgMZHyAKCwoEBQACBBIDGgQhCgwKBQUAAgQBEgMaBBwKDAoFBQACBAISAxofIAoLCgQFAAIFEgMbBCQKDAoFBQACBQESAxsEHwoMCgUFAAIFAhIDGyIjCgsKBAUAAgYSAxwEGwoMCgUFAAIGARIDHAQWCgwKBQUAAgYCEgMcGRoKCwoEBQACBxIDHQQeCgwKBQUAAgcBEgMdBBkKDAoFBQACBwISAx0cHQoLCgQFAAIIEgMeBB4KDAoFBQACCAESAx4EGQoMCgUFAAIIAhIDHhwdCgsKBAUAAgkSAx8EHAoMCgUFAAIJARIDHwQXCgwKBQUAAgkCEgMfGhsKCwoEBQACChIDIAQcCgwKBQUAAgoBEgMgBBYKDAoFBQACCgISAyAZGwoLCgQFAAILEgMhBCAKDAoFBQACCwESAyEEGgoMCgUFAAILAhIDIR0fCgsKBAUAAgwSAyIEIAoMCgUFAAIMARIDIgQaCgwKBQUAAgwCEgMiHR8KCwoEBQACDRIDIwQfCgwKBQUAAg0BEgMjBBkKDAoFBQACDQISAyMcHgoLCgQFAAIOEgMkBCQKDAoFBQACDgESAyQEHgoMCgUFAAIOAhIDJCEjCgsKBAUAAg8SAyUEKQoMCgUFAAIPARIDJQQjCgwKBQUAAg8CEgMlJigKCwoEBQACEBIDJgQsCgwKBQUAAhABEgMmBCYKDAoFBQACEAISAyYpKwoKCgIFARIEKQAvAQoKCgMFAQESAykFGAoLCgQFAQIAEgMqBCMKDAoFBQECAAESAyoEHgoMCgUFAQIAAhIDKiEiCgsKBAUBAgESAysEIQoMCgUFAQIBARIDKwQcCgwKBQUBAgECEgMrHyAKCwoEBQECAhIDLAQgCgwKBQUBAgIBEgMsBBsKDAoFBQECAgISAyweHwoLCgQFAQIDEgMtBCcKDAoFBQECAwESAy0EIgoMCgUFAQIDAhIDLSUmCgsKBAUBAgQSAy4EIgoMCgUFAQIEARIDLgQdCgwKBQUBAgQCEgMuICEKCgoCBQISBDEANwEKCgoDBQIBEgMxBRcKCwoEBQICABIDMgQiCgwKBQUCAgABEgMyBB0KDAoFBQICAAISAzIgIQoLCgQFAgIBEgMzBCAKDAoFBQICAQESAzMEGwoMCgUFAgIBAhIDMx4fCgsKBAUCAgISAzQEIQoMCgUFAgICARIDNAQcCgwKBQUCAgICEgM0HyAKCwoEBQICAxIDNQQgCgwKBQUCAgMBEgM1BBsKDAoFBQICAwISAzUeHwoLCgQFAgIEEgM2BCAKDAoFBQICBAESAzYEGwoMCgUFAgIEAhIDNh4fCgoKAgUDEgQ5AD8BCgoKAwUDARIDOQUYCgsKBAUDAgASAzoEIwoMCgUFAwIAARIDOgQeCgwKBQUDAgACEgM6ISIKCwoEBQMCARIDOwQhCgwKBQUDAgEBEgM7BBwKDAoFBQMCAQISAzsfIAoLCgQFAwICEgM8BB4KDAoFBQMCAgESAzwEGQoMCgUFAwICAhIDPBwdCgsKBAUDAgMSAz0EIAoMCgUFAwIDARIDPQQbCgwKBQUDAgMCEgM9Hh8KCwoEBQMCBBIDPgQeCgwKBQUDAgQBEgM+BBkKDAoFBQMCBAISAz4cHQoKCgIFBBIEQQBKAQoKCgMFBAESA0EFGAoLCgQFBAIAEgNCBCMKDAoFBQQCAAESA0IEHgoMCgUFBAIAAhIDQiEiCgsKBAUEAgESA0MEIQoMCgUFBAIBARIDQwQcCgwKBQUEAgECEgNDHyAKCwoEBQQCAhIDRAQlCgwKBQUEAgIBEgNEBCEKDAoFBQQCAgISA0QjJAoLCgQFBAIDEgNFBCIKDAoFBQQCAwESA0UEHQoMCgUFBAIDAhIDRSAhCgsKBAUEAgQSA0YEHwoMCgUFBAIEARIDRgQaCgwKBQUEAgQCEgNGHR4KCwoEBQQCBRIDRwQfCgwKBQUEAgUBEgNHBBoKDAoFBQQCBQISA0cdHgoLCgQFBAIGEgNIBCEKDAoFBQQCBgESA0gEHAoMCgUFBAIGAhIDSB8gCgsKBAUEAgcSA0kEJgoMCgUFBAIHARIDSQQhCgwKBQUEAgcCEgNJJCUKCgoCBQUSBEwAUgEKCgoDBQUBEgNMBRoKCwoEBQUCABIDTQQlCgwKBQUFAgABEgNNBCAKDAoFBQUCAAISA00jJAoLCgQFBQIBEgNOBCMKDAoFBQUCAQESA04EHgoMCgUFBQIBAhIDTiEiCgsKBAUFAgISA08EHwoMCgUFBQICARIDTwQaCgwKBQUFAgICEgNPHR4KCwoEBQUCAxIDUAQgCgwKBQUFAgMBEgNQBBsKDAoFBQUCAwISA1AeHwoLCgQFBQIEEgNRBC0KDAoFBQUCBAESA1EEKAoMCgUFBQIEAhIDUSssCgoKAgQDEgRUAFsBCgoKAwQDARIDVAgWCgsKBAQDAgASA1UENQoNCgUEAwIABBIEVQRUGAoMCgUEAwIABhIDVQQdCgwKBQQDAgABEgNVHjAKDAoFBAMCAAMSA1UzNAoLCgQEAwIBEgNWBCgKDQoFBAMCAQQSBFYEVTUKDAoFBAMCAQYSA1YEFwoMCgUEAwIBARIDVhgjCgwKBQQDAgEDEgNWJicKCwoEBAMCAhIDVwQmCg0KBQQDAgIEEgRXBFYoCgwKBQQDAgIGEgNXBBYKDAoFBAMCAgESA1cXIQoMCgUEAwICAxIDVyQlCgsKBAQDAgMSA1gEKAoNCgUEAwIDBBIEWARXJgoMCgUEAwIDBhIDWAQXCgwKBQQDAgMBEgNYGCMKDAoFBAMCAwMSA1gmJwoLCgQEAwIEEgNZBCgKDQoFBAMCBAQSBFkEWCgKDAoFBAMCBAYSA1kEFwoMCgUEAwIEARIDWRgjCgwKBQQDAgQDEgNZJicKCwoEBAMCBRIDWgQsCg0KBQQDAgUEEgRaBFkoCgwKBQQDAgUGEgNaBBkKDAoFBAMCBQESA1oaJwoMCgUEAwIFAxIDWiorCgoKAgUGEgRdAGsBCgoKAwUGARIDXQUUCgsKBAUGAgASA14EJAoMCgUFBgIAARIDXgQfCgwKBQUGAgACEgNeIiMKCwoEBQYCARIDXwQgCgwKBQUGAgEBEgNfBBsKDAoFBQYCAQISA18eHwoLCgQFBgICEgNgBCIKDAoFBQYCAgESA2AEHQoMCgUFBgICAhIDYCAhCgsKBAUGAgMSA2EEIwoMCgUFBgIDARIDYQQeCgwKBQUGAgMCEgNhISIKCwoEBQYCBBIDYgQjCgwKBQUGAgQBEgNiBB4KDAoFBQYCBAISA2IhIgoLCgQFBgIFEgNjBCIKDAoFBQYCBQESA2MEHQoMCgUFBgIFAhIDYyAhCgsKBAUGAgYSA2QEIAoMCgUFBgIGARIDZAQbCgwKBQUGAgYCEgNkHh8KCwoEBQYCBxIDZQQgCgwKBQUGAgcBEgNlBBsKDAoFBQYCBwISA2UeHwoLCgQFBgIIEgNmBCIKDAoFBQYCCAESA2YEHQoMCgUFBgIIAhIDZiAhCgsKBAUGAgkSA2cEJQoMCgUFBgIJARIDZwQgCgwKBQUGAgkCEgNnIyQKCwoEBQYCChIDaAQfCgwKBQUGAgoBEgNoBBkKDAoFBQYCCgISA2gcHgoLCgQFBgILEgNpBB8KDAoFBQYCCwESA2kEGQoMCgUFBgILAhIDaRweCgsKBAUGAgwSA2oEJwoMCgUFBgIMARIDagQhCgwKBQUGAgwCEgNqJCYKCwoCBQcSBW0AgAEBCgoKAwUHARIDbQUVCgsKBAUHAgASA24EJQoMCgUFBwIAARIDbgQgCgwKBQUHAgACEgNuIyQKCwoEBQcCARIDbwQhCgwKBQUHAgEBEgNvBBwKDAoFBQcCAQISA28fIAoLCgQFBwICEgNwBCEKDAoFBQcCAgESA3AEHAoMCgUFBwICAhIDcB8gCgsKBAUHAgMSA3EEIAoMCgUFBwIDARIDcQQbCgwKBQUHAgMCEgNxHh8KCwoEBQcCBBIDcgQhCgwKBQUHAgQBEgNyBBwKDAoFBQcCBAISA3IfIAoLCgQFBwIFEgNzBCAKDAoFBQcCBQESA3MEGwoMCgUFBwIFAhIDcx4fCgsKBAUHAgYSA3QEIAoMCgUFBwIGARIDdAQbCgwKBQUHAgYCEgN0Hh8KCwoEBQcCBxIDdQQhCgwKBQUHAgcBEgN1BBwKDAoFBQcCBwISA3UfIAoLCgQFBwIIEgN2BCEKDAoFBQcCCAESA3YEHAoMCgUFBwIIAhIDdh8gCgsKBAUHAgkSA3cEIQoMCgUFBwIJARIDdwQcCgwKBQUHAgkCEgN3HyAKCwoEBQcCChIDeAQhCgwKBQUHAgoBEgN4BBsKDAoFBQcCCgISA3geIAoLCgQFBwILEgN5BCEKDAoFBQcCCwESA3kEGwoMCgUFBwILAhIDeR4gCgsKBAUHAgwSA3oEIQoMCgUFBwIMARIDegQbCgwKBQUHAgwCEgN6HiAKCwoEBQcCDRIDewQhCgwKBQUHAg0BEgN7BBsKDAoFBQcCDQISA3seIAoLCgQFBwIOEgN8BCEKDAoFBQcCDgESA3wEGwoMCgUFBwIOAhIDfB4gCgsKBAUHAg8SA30EIAoMCgUFBwIPARIDfQQaCgwKBQUHAg8CEgN9HR8KCwoEBQcCEBIDfgQiCgwKBQUHAhABEgN+BBwKDAoFBQcCEAISA34fIQoLCgQFBwIREgN/BCEKDAoFBQcCEQESA38EHAoMCgUFBwIRAhIDfx4gCgwKAgUIEgaCAQCHAQEKCwoDBQgBEgSCAQURCgwKBAUIAgASBIMBBCAKDQoFBQgCAAESBIMBBBsKDQoFBQgCAAISBIMBHh8KDAoEBQgCARIEhAEEGQoNCgUFCAIBARIEhAEEFAoNCgUFCAIBAhIEhAEXGAoMCgQFCAICEgSFAQQiCg0KBQUIAgIBEgSFAQQdCg0KBQUIAgICEgSFASAhCgwKBAUIAgMSBIYBBCUKDQoFBQgCAwESBIYBBCAKDQoFBQgCAwISBIYBIyQKDAoCBAQSBokBAJQBAQoLCgMEBAESBIkBCBsKDAoEBAQCABIEigEEFAoPCgUEBAIABBIGigEEiQEdCg0KBQQEAgAFEgSKAQQJCg0KBQQEAgABEgSKAQoPCg0KBQQEAgADEgSKARITCgwKBAQEAgESBIsBBB0KDwoFBAQCAQQSBosBBIoBFAoNCgUEBAIBBhIEiwEEEwoNCgUEBAIBARIEiwEUGAoNCgUEBAIBAxIEiwEbHAoMCgQEBAICEgSMAQQfCg8KBQQEAgIEEgaMAQSLAR0KDQoFBAQCAgYSBIwBBBQKDQoFBAQCAgESBIwBFRoKDQoFBAQCAgMSBIwBHR4KDAoEBAQCAxIEjQEEGAoPCgUEBAIDBBIGjQEEjAEfCg0KBQQEAgMFEgSNAQQJCg0KBQQEAgMBEgSNAQoTCg0KBQQEAgMDEgSNARYXCgwKBAQEAgQSBI4BBBwKDwoFBAQCBAQSBo4BBI0BGAoNCgUEBAIEBhIEjgEEEAoNCgUEBAIEARIEjgERFwoNCgUEBAIEAxIEjgEaGwoMCgQEBAIFEgSPAQQdCg8KBQQEAgUEEgaPAQSOARwKDQoFBAQCBQUSBI8BBAoKDQoFBAQCBQESBI8BCxgKDQoFBAQCBQMSBI8BGxwKDAoEBAQCBhIEkAEELAoPCgUEBAIGBBIGkAEEjwEdCg0KBQQEAgYGEgSQAQQdCg0KBQQEAgYBEgSQAR4nCg0KBQQEAgYDEgSQASorCgwKBAQEAgcSBJEBBCEKDwoFBAQCBwQSBpEBBJABLAoNCgUEBAIHBRIEkQEECgoNCgUEBAIHARIEkQELHAoNCgUEBAIHAxIEkQEfIApnCgQEBAIIEgSTAQQZGlkgZGF0YV90eXBlIGNhbiBiZSBvZiB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIE1ldHJpY05hbWVzIG9yIHNvbWV0aGluZyBlbHNlIGFzIHdlbGwNCgoPCgUEBAIIBBIGkwEEkQEhCg0KBQQEAggFEgSTAQQKCg0KBQQEAggBEgSTAQsUCg0KBQQEAggDEgSTARcYCgwKAgQFEgaWAQCuAQEKCwoDBAUBEgSWAQgRCl0KBAQFAgASBJgBBBQaTyBUaGUgbmFtZSBvZiBhIGNvbXBvbmVudCB1bmlxdWVseSBpZGVudGlmaWVzIGFuIGNvbXBvbmVudCB3aXRoaW4gdGhlIEhhcmR3YXJlDQoKDwoFBAUCAAQSBpgBBJYBEwoNCgUEBQIABRIEmAEECgoNCgUEBQIAARIEmAELDwoNCgUEBQIAAxIEmAESEwoMCgQEBQIBEgSZAQQcCg8KBQQFAgEEEgaZAQSYARQKDQoFBAUCAQYSBJkBBBEKDQoFBAUCAQESBJkBEhcKDQoFBAUCAQMSBJkBGhsKDAoEBAUCAhIEmgEEGwoPCgUEBQICBBIGmgEEmQEcCg0KBQQFAgIFEgSaAQQKCg0KBQQFAgIBEgSaAQsWCg0KBQQFAgIDEgSaARkaCmEKBAQFAgMSBJwBBBYaUyBUaGUgbmFtZSBvZiB0aGUgcGFyZW50IG9mIHRoaXMgY29tcG9uZW50LCBlbXB0eSAiIiBpbiBjYXNlIG9mIHRoZSByb290IGNvbXBvbmVudA0KCg8KBQQFAgMEEgacAQSaARsKDQoFBAUCAwUSBJwBBAoKDQoFBAUCAwESBJwBCxEKDQoFBAUCAwMSBJwBFBUKDAoEBAUCBBIEnQEEHQoPCgUEBQIEBBIGnQEEnAEWCg0KBQQFAgQFEgSdAQQJCg0KBQQFAgQBEgSdAQoYCg0KBQQFAgQDEgSdARscCgwKBAQFAgUSBJ4BBCQKDQoFBAUCBQQSBJ4BBAwKDQoFBAUCBQYSBJ4BDRYKDQoFBAUCBQESBJ4BFx8KDQoFBAUCBQMSBJ4BIiMKDAoEBAUCBhIEnwEEHAoPCgUEBQIGBBIGnwEEngEkCg0KBQQFAgYFEgSfAQQKCg0KBQQFAgYBEgSfAQsXCg0KBQQFAgYDEgSfARobCgwKBAQFAgcSBKABBBwKDwoFBAUCBwQSBqABBJ8BHAoNCgUEBQIHBRIEoAEECgoNCgUEBQIHARIEoAELFwoNCgUEBQIHAxIEoAEaGwoMCgQEBQIIEgShAQQcCg8KBQQFAggEEgahAQSgARwKDQoFBAUCCAUSBKEBBAoKDQoFBAUCCAESBKEBCxcKDQoFBAUCCAMSBKEBGhsKDAoEBAUCCRIEogEEGwoPCgUEBQIJBBIGogEEoQEcCg0KBQQFAgkFEgSiAQQKCg0KBQQFAgkBEgSiAQsVCg0KBQQFAgkDEgSiARgaCgwKBAQFAgoSBKMBBBkKDwoFBAUCCgQSBqMBBKIBGwoNCgUEBQIKBRIEowEECgoNCgUEBQIKARIEowELEwoNCgUEBQIKAxIEowEWGAoMCgQEBQILEgSkAQQbCg8KBQQFAgsEEgakAQSjARkKDQoFBAUCCwUSBKQBBAoKDQoFBAUCCwESBKQBCxUKDQoFBAUCCwMSBKQBGBoKDAoEBAUCDBIEpQEEFgoPCgUEBQIMBBIGpQEEpAEbCg0KBQQFAgwFEgSlAQQKCg0KBQQFAgwBEgSlAQsQCg0KBQQFAgwDEgSlARMVCgwKBAQFAg0SBKYBBBkKDwoFBAUCDQQSBqYBBKUBFgoNCgUEBQINBRIEpgEECgoNCgUEBQINARIEpgELEwoNCgUEBQINAxIEpgEWGAoMCgQEBQIOEgSnAQQVCg8KBQQFAg4EEganAQSmARkKDQoFBAUCDgUSBKcBBAgKDQoFBAUCDgESBKcBCQ8KDQoFBAUCDgMSBKcBEhQKDAoEBAUCDxIEqAEELAoPCgUEBQIPBBIGqAEEpwEVCg0KBQQFAg8GEgSoAQQdCg0KBQQFAg8BEgSoAR4mCg0KBQQFAg8DEgSoASkrCgwKBAQFAhASBKkBBBEKDwoFBAUCEAQSBqkBBKgBLAoNCgUEBQIQBhIEqQEEBwoNCgUEBQIQARIEqQEICwoNCgUEBQIQAxIEqQEOEAplCgQEBQIREgSrAQQSGlcgVGhlIHV1aWQgb2YgdGhlIGNvbXBvbmVudCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBjb21wb25lbnQgYWNyb3NzIHRoZSBlbnRpcmUgc3lzdGVtDQoKDwoFBAUCEQQSBqsBBKkBEQoNCgUEBQIRBhIEqwEECAoNCgUEBQIRARIEqwEJDQoNCgUEBQIRAxIEqwEPEQoMCgQEBQISEgSsAQQeCg8KBQQFAhIEEgasAQSrARIKDQoFBAUCEgYSBKwBBBIKDQoFBAUCEgESBKwBExgKDQoFBAUCEgMSBKwBGx0KDAoEBAUCExIErQEEMgoNCgUEBQITBBIErQEEDAoNCgUEBQITBhIErQENIAoNCgUEBQITARIErQEhLAoNCgUEBQITAxIErQEvMQoMCgIEBhIGsAEAtgEBCgsKAwQGARIEsAEIEAoMCgQEBgIAEgSxAQQuCg8KBQQGAgAEEgaxAQSwARIKDQoFBAYCAAYSBLEBBB0KDQoFBAYCAAESBLEBHikKDQoFBAYCAAMSBLEBLC0KsAEKBAQGAgESBLQBBBcaiAEgRWFjaCBIVyBoYXMgb25lIHBhcmVudC9yb290IGFuZCBhbGwgb3RoZXIgY29tcG9uZW50cyBhcmUgY2hpbGRyZW4gb2YgdGhpcw0KIFRoZSBjbGFzcyBvZiB0aGUgcm9vdCBjb21wb25lbnQgd291bGQgYmUgc2V0IGFzIFVOREVGSU5FRA0KIhcgVE9ETzogQXV0aGV0aWNhdGlvbj8NCgoPCgUEBgIBBBIGtAEEsQEuCg0KBQQGAgEGEgS0AQQNCg0KBQQGAgEBEgS0AQ4SCg0KBQQGAgEDEgS0ARUWClgKAgQHEga5AQDEAQEaSiBUaGUgYXR0cmlidXRlcyBvZiBhIGNvbXBvbmVudCB3aGljaCBhcmUgbW9kaWZpYWJsZSBmcm9tIHRoZSBjbGllbnQgc2lkZQ0KCgsKAwQHARIEuQEIGwqXAQoEBAcCABIEvAEEFBqIASBUaGUgbmFtZSBoYXMgdG8gYmUgdW5pcXVlIGZvciBlYWNoIGNvbXBvbmVudCB3aXRoaW4gdGhlIGhhcmR3YXJlIGFuZCBpbXBsZW1lbnRhdGlvbnMgbmVlZCB0bw0KIGFzY2VydGFpbiB0aGlzIHdoZW4gbW9kaWZ5aW5nIHRoZSBuYW1lDQoKDwoFBAcCAAQSBrwBBLkBHQoNCgUEBwIABRIEvAEECgoNCgUEBwIAARIEvAELDwoNCgUEBwIAAxIEvAESEwoMCgQEBwIBEgS9AQQcCg8KBQQHAgEEEga9AQS8ARQKDQoFBAcCAQYSBL0BBBEKDQoFBAcCAQESBL0BEhcKDQoFBAcCAQMSBL0BGhsKDAoEBAcCAhIEvgEEGQoPCgUEBwICBBIGvgEEvQEcCg0KBQQHAgIGEgS+AQQNCg0KBQQHAgIBEgS+AQ4UCg0KBQQHAgIDEgS+ARcYCgwKBAQHAgMSBL8BBB0KDwoFBAcCAwQSBr8BBL4BGQoNCgUEBwIDBRIEvwEECQoNCgUEBwIDARIEvwEKGAoNCgUEBwIDAxIEvwEbHAoMCgQEBwIEEgTAAQQVCg8KBQQHAgQEEgbAAQS/AR0KDQoFBAcCBAUSBMABBAoKDQoFBAcCBAESBMABCxAKDQoFBAcCBAMSBMABExQKDAoEBAcCBRIEwQEEGAoPCgUEBwIFBBIGwQEEwAEVCg0KBQQHAgUFEgTBAQQKCg0KBQQHAgUBEgTBAQsTCg0KBQQHAgUDEgTBARYXCgwKBAQHAgYSBMIBBBAKDwoFBAcCBgQSBsIBBMEBGAoNCgUEBwIGBhIEwgEEBwoNCgUEBwIGARIEwgEICwoNCgUEBwIGAxIEwgEODwoMCgQEBwIHEgTDAQQoCg8KBQQHAgcEEgbDAQTCARAKDQoFBAcCBwYSBMMBBBcKDQoFBAcCBwESBMMBGCMKDQoFBAcCBwMSBMMBJidiBnByb3RvMwqFRQogZG1pL2h3X2V2ZW50c19tZ210X3NlcnZpY2UucHJvdG8SA2RtaRoRZG1pL2NvbW1vbnMucHJvdG8aDGRtaS9ody5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90byJpCglWYWx1ZVR5cGUSGQoHaW50X3ZhbBgBIAEoA0gAUgZpbnRWYWwSGwoIdWludF92YWwYAiABKARIAFIHdWludFZhbBIdCglmbG9hdF92YWwYAyABKAJIAFIIZmxvYXRWYWxCBQoDdmFsIlIKCldhdGVyTWFya3MSIgoEaGlnaBgBIAEoCzIOLmRtaS5WYWx1ZVR5cGVSBGhpZ2gSIAoDbG93GAIgASgLMg4uZG1pLlZhbHVlVHlwZVIDbG93ImsKClRocmVzaG9sZHMSJwoFdXBwZXIYASABKAsyDy5kbWkuV2F0ZXJNYXJrc0gAUgV1cHBlchInCgVsb3dlchgCIAEoCzIPLmRtaS5XYXRlck1hcmtzSABSBWxvd2VyQgsKCXRocmVzaG9sZCJ+ChRUaHJlc2hvbGRJbmZvcm1hdGlvbhI1Cg5vYnNlcnZlZF92YWx1ZRgBIAEoCzIOLmRtaS5WYWx1ZVR5cGVSDW9ic2VydmVkVmFsdWUSLwoKdGhyZXNob2xkcxgCIAEoCzIPLmRtaS5UaHJlc2hvbGRzUgp0aHJlc2hvbGRzIooBCghFdmVudENmZxIoCghldmVudF9pZBgBIAEoDjINLmRtaS5FdmVudElkc1IHZXZlbnRJZBIjCg1pc19jb25maWd1cmVkGAIgASgIUgxpc0NvbmZpZ3VyZWQSLwoKdGhyZXNob2xkcxgDIAEoCzIPLmRtaS5UaHJlc2hvbGRzUgp0aHJlc2hvbGRzIjAKCUV2ZW50c0NmZxIjCgVpdGVtcxgBIAMoCzINLmRtaS5FdmVudENmZ1IFaXRlbXMihgEKEkxpc3RFdmVudHNSZXNwb25zZRIjCgZzdGF0dXMYASABKA4yCy5kbWkuU3RhdHVzUgZzdGF0dXMSIwoGcmVhc29uGAIgASgOMgsuZG1pLlJlYXNvblIGcmVhc29uEiYKBmV2ZW50cxgDIAEoCzIOLmRtaS5FdmVudHNDZmdSBmV2ZW50cyKtAQoaRXZlbnRzQ29uZmlndXJhdGlvblJlcXVlc3QSKgoLZGV2aWNlX3V1aWQYASABKAsyCS5kbWkuVXVpZFIKZGV2aWNlVXVpZBIqCgdjaGFuZ2VzGAIgASgLMg4uZG1pLkV2ZW50c0NmZ0gAUgdjaGFuZ2VzEioKEHJlc2V0X3RvX2RlZmF1bHQYAyABKAhIAFIOcmVzZXRUb0RlZmF1bHRCCwoJb3BlcmF0aW9uImcKG0V2ZW50c0NvbmZpZ3VyYXRpb25SZXNwb25zZRIjCgZzdGF0dXMYASABKA4yCy5kbWkuU3RhdHVzUgZzdGF0dXMSIwoGcmVhc29uGAIgASgOMgsuZG1pLlJlYXNvblIGcmVhc29uIpQBCg1FdmVudE1ldGFEYXRhEioKC2RldmljZV91dWlkGAEgASgLMgkuZG1pLlV1aWRSCmRldmljZVV1aWQSMAoOY29tcG9uZW50X3V1aWQYAiABKAsyCS5kbWkuVXVpZFINY29tcG9uZW50VXVpZBIlCg5jb21wb25lbnRfbmFtZRgDIAEoCVINY29tcG9uZW50TmFtZSKCAgoFRXZlbnQSOQoOZXZlbnRfbWV0YWRhdGEYASABKAsyEi5kbWkuRXZlbnRNZXRhRGF0YVINZXZlbnRNZXRhZGF0YRIoCghldmVudF9pZBgCIAEoDjINLmRtaS5FdmVudElkc1IHZXZlbnRJZBI3CglyYWlzZWRfdHMYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUghyYWlzZWRUcxJACg50aHJlc2hvbGRfaW5mbxgEIAEoCzIZLmRtaS5UaHJlc2hvbGRJbmZvcm1hdGlvblINdGhyZXNob2xkSW5mbxIZCghhZGRfaW5mbxgFIAEoCVIHYWRkSW5mbyrRDgoIRXZlbnRJZHMSGAoURVZFTlRfTkFNRV9VTkRFRklORUQQABIeChpFVkVOVF9UUkFOU0NFSVZFUl9QTFVHX09VVBBkEh0KGUVWRU5UX1RSQU5TQ0VJVkVSX1BMVUdfSU4QZRItCilFVkVOVF9UUkFOU0NFSVZFUl9WT0xUQUdFX0FCT1ZFX1RIUkVTSE9MRBBmEi0KKUVWRU5UX1RSQU5TQ0VJVkVSX1ZPTFRBR0VfQkVMT1dfVEhSRVNIT0xEEGcSMQotRVZFTlRfVFJBTlNDRUlWRVJfVEVNUEVSQVRVUkVfQUJPVkVfVEhSRVNIT0xEEGgSMQotRVZFTlRfVFJBTlNDRUlWRVJfVEVNUEVSQVRVUkVfQkVMT1dfVEhSRVNIT0xEEGkSLQopRVZFTlRfVFJBTlNDRUlWRVJfQ1VSUkVOVF9BQk9WRV9USFJFU0hPTEQQahItCilFVkVOVF9UUkFOU0NFSVZFUl9DVVJSRU5UX0JFTE9XX1RIUkVTSE9MRBBrEi4KKkVWRU5UX1RSQU5TQ0VJVkVSX1JYX1BPV0VSX0FCT1ZFX1RIUkVTSE9MRBBsEi4KKkVWRU5UX1RSQU5TQ0VJVkVSX1JYX1BPV0VSX0JFTE9XX1RIUkVTSE9MRBBtEi4KKkVWRU5UX1RSQU5TQ0VJVkVSX1RYX1BPV0VSX0FCT1ZFX1RIUkVTSE9MRBBuEi4KKkVWRU5UX1RSQU5TQ0VJVkVSX1RYX1BPV0VSX0JFTE9XX1RIUkVTSE9MRBBvEh0KGUVWRU5UX1RSQU5TQ0VJVkVSX0ZBSUxVUkUQcBI3CjNFVkVOVF9UUkFOU0NFSVZFUl9WT0xUQUdFX0FCT1ZFX1RIUkVTSE9MRF9SRUNPVkVSRUQQcRI3CjNFVkVOVF9UUkFOU0NFSVZFUl9WT0xUQUdFX0JFTE9XX1RIUkVTSE9MRF9SRUNPVkVSRUQQchI7CjdFVkVOVF9UUkFOU0NFSVZFUl9URU1QRVJBVFVSRV9BQk9WRV9USFJFU0hPTERfUkVDT1ZFUkVEEHMSOwo3RVZFTlRfVFJBTlNDRUlWRVJfVEVNUEVSQVRVUkVfQkVMT1dfVEhSRVNIT0xEX1JFQ09WRVJFRBB0EjcKM0VWRU5UX1RSQU5TQ0VJVkVSX0NVUlJFTlRfQUJPVkVfVEhSRVNIT0xEX1JFQ09WRVJFRBB1EjcKM0VWRU5UX1RSQU5TQ0VJVkVSX0NVUlJFTlRfQkVMT1dfVEhSRVNIT0xEX1JFQ09WRVJFRBB2EjgKNEVWRU5UX1RSQU5TQ0VJVkVSX1JYX1BPV0VSX0FCT1ZFX1RIUkVTSE9MRF9SRUNPVkVSRUQQdxI4CjRFVkVOVF9UUkFOU0NFSVZFUl9SWF9QT1dFUl9CRUxPV19USFJFU0hPTERfUkVDT1ZFUkVEEHgSOAo0RVZFTlRfVFJBTlNDRUlWRVJfVFhfUE9XRVJfQUJPVkVfVEhSRVNIT0xEX1JFQ09WRVJFRBB5EjgKNEVWRU5UX1RSQU5TQ0VJVkVSX1RYX1BPV0VSX0JFTE9XX1RIUkVTSE9MRF9SRUNPVkVSRUQQehInCiNFVkVOVF9UUkFOU0NFSVZFUl9GQUlMVVJFX1JFQ09WRVJFRBB7EhcKEkVWRU5UX1BTVV9QTFVHX09VVBDIARIWChFFVkVOVF9QU1VfUExVR19JThDJARIWChFFVkVOVF9QU1VfRkFJTFVSRRDKARIgChtFVkVOVF9QU1VfRkFJTFVSRV9SRUNPVkVSRUQQywESFgoRRVZFTlRfRkFOX0ZBSUxVUkUQrAISFwoSRVZFTlRfRkFOX1BMVUdfT1VUEK0CEhYKEUVWRU5UX0ZBTl9QTFVHX0lOEK4CEiAKG0VWRU5UX0ZBTl9GQUlMVVJFX1JFQ09WRVJFRBCvAhIpCiRFVkVOVF9DUFVfVEVNUEVSQVRVUkVfQUJPVkVfQ1JJVElDQUwQkAMSJgohRVZFTlRfQ1BVX1RFTVBFUkFUVVJFX0FCT1ZFX0ZBVEFMEJEDEjMKLkVWRU5UX0NQVV9URU1QRVJBVFVSRV9BQk9WRV9DUklUSUNBTF9SRUNPVkVSRUQQkgMSMAorRVZFTlRfQ1BVX1RFTVBFUkFUVVJFX0FCT1ZFX0ZBVEFMX1JFQ09WRVJFRBCTAxIaChVFVkVOVF9IV19ERVZJQ0VfUkVTRVQQ9AMSLwoqRVZFTlRfSFdfREVWSUNFX1RFTVBFUkFUVVJFX0FCT1ZFX0NSSVRJQ0FMEPUDEiwKJ0VWRU5UX0hXX0RFVklDRV9URU1QRVJBVFVSRV9BQk9WRV9GQVRBTBD2AxI5CjRFVkVOVF9IV19ERVZJQ0VfVEVNUEVSQVRVUkVfQUJPVkVfQ1JJVElDQUxfUkVDT1ZFUkVEEPcDEjYKMUVWRU5UX0hXX0RFVklDRV9URU1QRVJBVFVSRV9BQk9WRV9GQVRBTF9SRUNPVkVSRUQQ+AMytwEKHU5hdGl2ZUV2ZW50c01hbmFnZW1lbnRTZXJ2aWNlEjYKCkxpc3RFdmVudHMSDy5kbWkuSGFyZHdhcmVJRBoXLmRtaS5MaXN0RXZlbnRzUmVzcG9uc2USXgoZVXBkYXRlRXZlbnRzQ29uZmlndXJhdGlvbhIfLmRtaS5FdmVudHNDb25maWd1cmF0aW9u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AaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0r+EAoGEgQeADMQCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwA+CgkKAggLEgMjAD4KCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQArCgkKAggIEgMlACsKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEKCAoBCBIDKAAfCgkKAggfEgMoAB8K+wIKAgQAEgMzABAa7wIgQSBnZW5lcmljIGVtcHR5IG1lc3NhZ2UgdGhhdCB5b3UgY2FuIHJlLXVzZSB0byBhdm9pZCBkZWZpbmluZyBkdXBsaWNhdGVkCiBlbXB0eSBtZXNzYWdlcyBpbiB5b3VyIEFQSXMuIEEgdHlwaWNhbCBleGFtcGxlIGlzIHRvIHVzZSBpdCBhcyB0aGUgcmVxdWVzdAogb3IgdGhlIHJlc3BvbnNlIHR5cGUgb2YgYW4gQVBJIG1ldGhvZC4gRm9yIGluc3RhbmNlOgoKICAgICBzZXJ2aWNlIEZvbyB7CiAgICAgICBycGMgQmFyKGdvb2dsZS5wcm90b2J1Zi5FbXB0eSkgcmV0dXJucyAoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KTsKICAgICB9CgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBFbXB0eWAgaXMgZW1wdHkgSlNPTiBvYmplY3QgYHt9YC4KCgoKAwQAARIDMwgNYgZwcm90bzMKxicKH2RtaS9od19tYW5hZ2VtZW50X3NlcnZpY2UucHJvdG8SA2RtaRoRZG1pL2NvbW1vbnMucHJvdG8aDGRtaS9ody5wcm90bxobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvIkYKGFBoeXNpY2FsSW52ZW50b3J5UmVxdWVzdBIqCgtkZXZpY2VfdXVpZBgBIAEoCzIJLmRtaS5VdWlkUgpkZXZpY2VVdWlkIpIBChlQaHlzaWNhbEludmVudG9yeVJlc3BvbnNlEiMKBnN0YXR1cxgBIAEoDjILLmRtaS5TdGF0dXNSBnN0YXR1cxIjCgZyZWFzb24YAiABKA4yCy5kbWkuUmVhc29uUgZyZWFzb24SKwoJaW52ZW50b3J5GAMgASgLMg0uZG1pLkhhcmR3YXJlUglpbnZlbnRvcnkioAEKGUhXQ29tcG9uZW50SW5mb0dldFJlcXVlc3QSKgoLZGV2aWNlX3V1aWQYASABKAsyCS5kbWkuVXVpZFIKZGV2aWNlVXVpZBIwCg5jb21wb25lbnRfdXVpZBgCIAEoCzIJLmRtaS5VdWlkUg1jb21wb25lbnRVdWlkEiUKDmNvbXBvbmVudF9uYW1lGAMgASgJUg1jb21wb25lbnROYW1lIpQBChpIV0NvbXBvbmVudEluZm9HZXRSZXNwb25zZRIjCgZzdGF0dXMYASABKA4yCy5kbWkuU3RhdHVzUgZzdGF0dXMSIwoGcmVhc29uGAIgASgOMgsuZG1pLlJlYXNvblIGcmVhc29uEiwKCWNvbXBvbmVudBgDIAEoCzIOLmRtaS5Db21wb25lbnRSCWNvbXBvbmVudCLUAQoZSFdDb21wb25lbnRJbmZvU2V0UmVxdWVzdBIqCgtkZXZpY2VfdXVpZBgBIAEoCzIJLmRtaS5VdWlkUgpkZXZpY2VVdWlkEjAKDmNvbXBvbmVudF91dWlkGAIgASgLMgkuZG1pLlV1aWRSDWNvbXBvbmVudFV1aWQSJQoOY29tcG9uZW50X25hbWUYAyABKAlSDWNvbXBvbmVudE5hbWUSMgoHY2hhbmdlcxgEIAEoCzIYLmRtaS5Nb2RpZmlhYmxlQ29tcG9uZW50UgdjaGFuZ2VzImYKGkhXQ29tcG9uZW50SW5mb1NldFJlc3BvbnNlEiMKBnN0YXR1cxgBIAEoDjILLmRtaS5TdGF0dXNSBnN0YXR1cxIjCgZyZWFzb24YAiABKA4yCy5kbWkuUmVhc29uUgZyZWFzb24ikwEKG1N0YXJ0TWFuYWdpbmdEZXZpY2VSZXNwb25zZRIjCgZzdGF0dXMYASABKA4yCy5kbWkuU3RhdHVzUgZzdGF0dXMSIwoGcmVhc29uGAIgASgOMgsuZG1pLlJlYXNvblIGcmVhc29uEioKC2RldmljZV91dWlkGAMgASgLMgkuZG1pLlV1aWRSCmRldmljZVV1aWQiLwoZU3RvcE1hbmFnaW5nRGV2aWNlUmVxdWVzdBISCgRuYW1lGAEgASgJUgRuYW1lImYKGlN0b3BNYW5hZ2luZ0RldmljZVJlc3BvbnNlEiMKBnN0YXR1cxgBIAEoDjILLmRtaS5TdGF0dXNSBnN0YXR1cxIjCgZyZWFzb24YAiABKA4yCy5kbWkuUmVhc29uUgZyZWFzb24iTAoWTWFuYWdlZERldmljZXNSZXNwb25zZRIyCgdkZXZpY2VzGAEgAygLMhguZG1pLk1vZGlmaWFibGVDb21wb25lbnRSB2RldmljZXMymgQKGU5hdGl2ZUhXTWFuYWdlbWVudFNlcnZpY2USUwoTU3RhcnRNYW5hZ2luZ0RldmljZRIYLmRtaS5Nb2RpZmlhYmxlQ29tcG9uZW50GiAuZG1pLlN0YXJ0TWFuYWdpbmdEZXZpY2VSZXNwb25zZTABElUKElN0b3BNYW5hZ2luZ0RldmljZRIeLmRtaS5TdG9wTWFuYWdpbmdEZXZpY2VSZXF1ZXN0Gh8uZG1pLlN0b3BNYW5hZ2luZ0RldmljZVJlc3BvbnNlEkgKEUdldE1hbmFnZWREZXZpY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhsuZG1pLk1hbmFnZWREZXZpY2VzUmVzcG9uc2USVwoUR2V0UGh5c2ljYWxJbnZlbnRvcnkSHS5kbWkuUGh5c2ljYWxJbnZlbnRvcnlSZXF1ZXN0Gh4uZG1pLlBoeXNpY2FsSW52ZW50b3J5UmVzcG9uc2UwARJXChJHZXRIV0NvbXBvbmVudEluZm8SHi5kbWkuSFdDb21wb25lbnRJbmZvR2V0UmVxdWVzdBofLmRtaS5IV0NvbXBvbmVudEluZm9HZXRSZXNwb25zZTABElUKElNldEhXQ29tcG9uZW50SW5mbxIeLmRtaS5IV0NvbXBvbmVudEluZm9TZXRSZXF1ZXN0Gh8uZG1pLkhXQ29tcG9uZW50SW5mb1NldFJlc3BvbnNlQjtaOWdpdGh1Yi5jb20vb3BlbmNvcmQvZGV2aWNlLW1hbmFnZW1lbnQtaW50ZXJmYWNlL3YzL2dvL2RtaUqqGAoGEgQAAFoBCggKAQwSAwAAEgoICgEIEgMCAFAKCQoCCAsSAwIAUAoICgECEgMDAAwKCQoCAwASAwUAGwoJCgIDARIDBgAWCgkKAgMCEgMHACUKSgoCBAASBAsADQEyPiBQcm90b3MgZm9yIHRoZSBtYW5hZ2VtZW50IG9mIGEgaGFyZHdhcmUgYW5kIGl0J3MgY29tcG9uZW50cw0KCgoKAwQAARIDCwggCgsKBAQAAgASAwwEGQoNCgUEAAIABBIEDAQLIgoMCgUEAAIABhIDDAQICgwKBQQAAgABEgMMCRQKDAoFBAACAAMSAwwXGAoKCgIEARIEDwATAQoKCgMEAQESAw8IIQoLCgQEAQIAEgMQBBYKDQoFBAECAAQSBBAEDyMKDAoFBAECAAYSAxAECgoMCgUEAQIAARIDEAsRCgwKBQQBAgADEgMQ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cm1pc3NpYmxlIGF0dHJpYnV0ZXMgb2YgYSBIVyBjb21wb25lbnQNCgoMCgUGAAIFARIDWQgaCgwKBQYAAgUCEgNZGzQKDAoFBgACBQMSA1k+WGIGcHJvdG8zCoQ2CiFkbWkvaHdfbWV0cmljc19tZ210X3NlcnZpY2UucHJvdG8SA2RtaRoRZG1pL2NvbW1vbnMucHJvdG8aDGRtaS9ody5wcm90byKHAQoMTWV0cmljQ29uZmlnEi0KCW1ldHJpY19pZBgBIAEoDjIQLmRtaS5NZXRyaWNOYW1lc1IIbWV0cmljSWQSIwoNaXNfY29uZmlndXJlZBgCIAEoCFIMaXNDb25maWd1cmVkEiMKDXBvbGxfaW50ZXJ2YWwYAyABKA1SDHBvbGxJbnRlcnZhbCI8Cg1NZXRyaWNzQ29uZmlnEisKB21ldHJpY3MYASADKAsyES5kbWkuTWV0cmljQ29uZmlnUgdtZXRyaWNzIo0BChNMaXN0TWV0cmljc1Jlc3BvbnNlEiMKBnN0YXR1cxgBIAEoDjILLmRtaS5TdGF0dXNSBnN0YXR1cxIjCgZyZWFzb24YAiABKA4yCy5kbWkuUmVhc29uUgZyZWFzb24SLAoHbWV0cmljcxgDIAEoCzISLmRtaS5NZXRyaWNzQ29uZmlnUgdtZXRyaWNzIrIBChtNZXRyaWNzQ29uZmlndXJhdGlvblJlcXVlc3QSKgoLZGV2aWNlX3V1aWQYASABKAsyCS5kbWkuVXVpZFIKZGV2aWNlVXVpZBIuCgdjaGFuZ2VzGAIgASgLMhIuZG1pLk1ldHJpY3NDb25maWdIAFIHY2hhbmdlcxIqChByZXNldF90b19kZWZhdWx0GAMgASgISABSDnJlc2V0VG9EZWZhdWx0QgsKCW9wZXJhdGlvbiJoChxNZXRyaWNzQ29uZmlndXJhdGlvblJlc3BvbnNlEiMKBnN0YXR1cxgBIAEoDjILLmRtaS5TdGF0dXNSBnN0YXR1cxIjCgZyZWFzb24YAiABKA4yCy5kbWkuUmVhc29uUgZyZWFzb24ilQEKDk1ldHJpY01ldGFEYXRhEioKC2RldmljZV91dWlkGAEgASgLMgkuZG1pLlV1aWRSCmRldmljZVV1aWQSMAoOY29tcG9uZW50X3V1aWQYAiABKAsyCS5kbWkuVXVpZFINY29tcG9uZW50VXVpZBIlCg5jb21wb25lbnRfbmFtZRgDIAEoCVINY29tcG9uZW50TmFtZSKlAQoGTWV0cmljEi0KCW1ldHJpY19pZBgBIAEoDjIQLmRtaS5NZXRyaWNOYW1lc1IIbWV0cmljSWQSPAoPbWV0cmljX21ldGFkYXRhGAIgASgLMhMuZG1pLk1ldHJpY01ldGFEYXRhUg5tZXRyaWNNZXRhZGF0YRIuCgV2YWx1ZRgDIAEoCzIYLmRtaS5Db21wb25lbnRTZW5zb3JEYXRhUgV2YWx1ZSJzChBHZXRNZXRyaWNSZXF1ZXN0EjAKCW1ldGFfZGF0YRgBIAEoCzITLmRtaS5NZXRyaWNNZXRhRGF0YVIIbWV0YURhdGESLQoJbWV0cmljX2lkGAIgASgOMhAuZG1pLk1ldHJpY05hbWVzUghtZXRyaWNJZCKCAQoRR2V0TWV0cmljUmVzcG9uc2USIwoGc3RhdHVzGAEgASgOMgsuZG1pLlN0YXR1c1IGc3RhdHVzEiMKBnJlYXNvbhgCIAEoDjILLmRtaS5SZWFzb25SBnJlYXNvbhIjCgZtZXRyaWMYAyABKAsyCy5kbWkuTWV0cmljUgZtZXRyaWMq2QUKC01ldHJpY05hbWVzEhkKFU1FVFJJQ19OQU1FX1VOREVGSU5FRBAAEhQKEE1FVFJJQ19GQU5fU1BFRUQQARITCg9NRVRSSUNfQ1BVX1RFTVAQZBIfChtNRVRSSUNfQ1BVX1VTQUdFX1BFUkNFTlRBR0UQZRIcChdNRVRSSUNfVFJBTlNDRUlWRVJfVEVNUBDIARIfChpNRVRSSUNfVFJBTlNDRUlWRVJfVk9MVEFHRRDJARIcChdNRVRSSUNfVFJBTlNDRUlWRVJfQklBUxDKARIgChtNRVRSSUNfVFJBTlNDRUlWRVJfUlhfUE9XRVIQywESIAobTUVUUklDX1RSQU5TQ0VJVkVSX1RYX1BPV0VSEMwBEiIKHU1FVFJJQ19UUkFOU0NFSVZFUl9XQVZFTEVOR1RIEM0BEhUKEE1FVFJJQ19ESVNLX1RFTVAQrAISGQoUTUVUUklDX0RJU0tfQ0FQQUNJVFkQrQISFgoRTUVUUklDX0RJU0tfVVNBR0UQrgISIQocTUVUUklDX0RJU0tfVVNBR0VfUEVSQ0VOVEFHRRCvAhImCiFNRVRSSUNfRElTS19SRUFEX1dSSVRFX1BFUkNFTlRBR0UQsAISKAojTUVUUklDX0RJU0tfRkFVTFRZX0NFTExTX1BFUkNFTlRBR0UQsQISFAoPTUVUUklDX1JBTV9URU1QEJADEhgKE01FVFJJQ19SQU1fQ0FQQUNJVFkQkQMSFQoQTUVUUklDX1JBTV9VU0FHRRCSAxIgChtNRVRSSUNfUkFNX1VTQUdFX1BFUkNFTlRBR0UQkwMSFQoQTUVUUklDX1BPV0VSX01BWBD0AxIXChJNRVRSSUNfUE9XRVJfVVNBR0UQ9QMSIgodTUVUUklDX1BPV0VSX1VTQUdFX1BFUkNFTlRBR0UQ9gMSIgodTUVUUklDX0lOTkVSX1NVUlJPVU5ESU5HX1RFTVAQ2AQy+QEKHk5hdGl2ZU1ldHJpY3NNYW5hZ2VtZW50U2VydmljZRI4CgtMaXN0TWV0cmljcxIPLmRtaS5IYXJkd2FyZUlEGhguZG1pLkxpc3RNZXRyaWNzUmVzcG9uc2USYQoaVXBkYXRlTWV0cmljc0NvbmZpZ3VyYXRpb24SIC5kbWkuTWV0cmljc0NvbmZpZ3VyYXRpb25SZXF1ZXN0GiEuZG1pLk1ldHJpY3NDb25maWd1cmF0aW9uUmVzcG9uc2USOgoJR2V0TWV0cmljEhUuZG1pLkdldE1ldHJpY1JlcXVlc3QaFi5kbWkuR2V0TWV0cmljUmVzcG9uc2VCO1o5Z2l0aHViLmNvbS9vcGVuY29yZC9kZXZpY2UtbWFuYWdlbWVudC1pbnRlcmZhY2UvdjMvZ28vZG1pSuojCgcSBQAAggEBCggKAQwSAwAAEgoICgEIEgMCAFAKCQoCCAsSAwIAUAoICgECEgMDAAwKCQoCAwASAwUAGwoJCgIDARIDBgAWCtgBCgIFABIEDQA0ATKOASBUaGUgbW9kZWwgdXNlZCB0byByZXByZXNlbnQgdGhlIGV2ZW50IGRhdGEgb24gdGhlIFNlbnNvckRhdGEgb2YgYSBjb21wb25lbnQgYXMgZGVzY3JpYmVkDQogaW4gUkZDODM0OCAoaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzgzNDgpDQoyOyBNYW5hZ2VtZW50IG9mIE1ldHJpY3MgYW5kIHByb3RvcyBmb3IgZW5jb2Rpbmcgb2YgTWV0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IGZvciB0aGUgcGFzc2VkIGRldmljZS4NCiBUaGlzIHdvdWxkIGJlIHRoZSBmaXJzdCBjYWxsIHRoYXQgeW91IG1ha2UgdG8ga25vdyBhYm91dCB0aGUgbWV0cmljcyB0aGF0IGEgcGFydGljdWxhciBkZXZpY2Ugc3VwcG9ydHMgYW5kDQogdGhlbiB1c2UgdGhlIFVwZGF0ZU1ldHJpY3NDb25maWd1cmF0aW9uIEFQSSB0byBtb25pdG9yIG9ubHkgdGhlIHJlcXVpcmVkIG1ldHJpY3MuDQoKDAoFBgACAAESA3cIEwoMCgUGAAIAAhIDdxQeCgwKBQYAAgADEgN3KDsKpgIKBAYAAgESA34EZhqYAiBVcGRhdGVzIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBsaXN0IG9mIG1ldHJpY3MgaW4gdGhlIHJlcXVlc3QNCiBBY3RzIHVwb24gc2luZ2xlIG1ldHJpYyBjb25maWd1cmF0aW9uLCBjb2xsZWN0aW9uIG9mIGEgc2luZ2xlIG1ldHJpYyBjYW4gYmUgc3RhcnRlZC9zdG9wcGVkDQogYnkgY2hhbmdpbmcgaXRzIGNvbmZpZ3VyYXRpb24uDQoNCiBUaGlzIGNvbmZpZ3VyYXRpb24gaXMgcGVyc2lzdGVkIGFjcm9zcyByZXN0YXJ0IG9mIHRoZSBkZXZpY2Ugb3IgdGhlIGRldmljZSBtYW5hZ2VyDQoKDAoFBgACAQESA34IIgoMCgUGAAIBAhIDfiM+CgwKBQYAAgEDEgN+SGQKNwoEBgACAhIEgQEEPxopIEdldCB0aGUgaW5zdGFudGVub3VzIHZhbHVlIG9mIGEgbWV0cmljDQoKDQoFBgACAgESBIEBCBEKDQoFBgACAgISBIEBEiIKDQoFBgACAgMSBIEBLD1iBnByb3RvMwrTGAoSZG1pL3N3X2ltYWdlLnByb3RvEgNkbWkaEWRtaS9jb21tb25zLnByb3RvIkcKDEltYWdlVmVyc2lvbhIdCgppbWFnZV9uYW1lGAEgASgJUglpbWFnZU5hbWUSGAoHdmVyc2lvbhgCIAEoCVIHdmVyc2lvbiKoAQoQSW1hZ2VJbmZvcm1hdGlvbhInCgVpbWFnZRgBIAEoCzIRLmRtaS5JbWFnZVZlcnNpb25SBWltYWdlEjAKFGltYWdlX2luc3RhbGxfc2NyaXB0GAIgASgJUhJpbWFnZUluc3RhbGxTY3JpcHQSGwoJaW1hZ2VfdXJsGAMgASgJUghpbWFnZVVybBIcCglzaGEyNTZzdW0YBSABKAlSCXNoYTI1NnN1bSKeBAoLSW1hZ2VTdGF0dXMSIwoGc3RhdHVzGAEgASgOMgsuZG1pLlN0YXR1c1IGc3RhdHVzEi8KBnJlYXNvbhgCIAEoDjIXLmRtaS5JbWFnZVN0YXR1cy5SZWFzb25SBnJlYXNvbhIxCgVzdGF0ZRgDIAEoDjIbLmRtaS5JbWFnZVN0YXR1cy5JbWFnZVN0YXRlUgVzdGF0ZRIgCgtkZXNjcmlwdGlvbhgEIAEoCVILZGVzY3JpcHRpb24i0AEKCkltYWdlU3RhdGUSEwoPVU5ERUZJTkVEX1NUQVRFEAASEQoNQ09QWUlOR19JTUFHRRABEhQKEElOU1RBTExJTkdfSU1BR0UQAhIUChBDT01NSVRUSU5HX0lNQUdFEAMSFAoQUkVCT09USU5HX0RFVklDRRAEEhQKEFVQR1JBREVfQ09NUExFVEUQBRISCg5VUEdSQURFX0ZBSUxFRBAGEhcKE0FDVElWQVRJT05fQ09NUExFVEUQBxIVChFBQ1RJVkFUSU9OX0ZBSUxFRBAIIpABCgZSZWFzb24SFAoQVU5ERUZJTkVEX1JFQVNPThAAEhQKEEVSUk9SX0lOX1JFUVVFU1QQARISCg5JTlRFUk5BTF9FUlJPUhACEhkKFURFVklDRV9JTl9XUk9OR19TVEFURRADEhEKDUlOVkFMSURfSU1BR0UQBBIYChRXUk9OR19JTUFHRV9DSEVDS1NVTRAFQjtaOWdpdGh1Yi5jb20vb3BlbmNvcmQvZGV2aWNlLW1hbmFnZW1lbnQtaW50ZXJmYWNlL3YzL2dvL2RtaUrKEQoGEgQAADYBCggKAQwSAwAAEgoICgEIEgMCAFAKCQoCCAsSAwIAUAoICgECEgMDAAwKCQoCAwASAwUAGwpDCgIEABIECQAMATI3IFByb3RvcyBmb3IgbW9kZWxpbmcgYSBzb2Z0d2FyZSBpbWFnZSBhbmQgaXQncyBzdGF0dXMNCgoKCgMEAAESAwkIFAoLCgQEAAIAEgMKBBoKDQoFBAACAAQSBAoECRYKDAoFBAACAAUSAwoECgoMCgUEAAIA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CgUEAgIBAxIDMhQVCgsKBAQCAgISAzMEGQoNCgUEAgICBBIEMwQyFgoMCgUEAgICBhIDMwQOCgwKBQQCAgIBEgMzDxQKDAoFBAICAgMSAzMXGAp2CgQEAgIDEgM1BBsaaSBkZXNjcmlwdGlvbiBjb250YWlucyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBwcm9jZWR1cmUgYW5kIGlzIGRldmljZSBkZXBlbmRhbnQNCgoNCgUEAgIDBBIENQQzGQoMCgUEAgIDBRIDNQQKCgwKBQQCAgMBEgM1CxYKDAoFBAICAwMSAzUZGmIGcHJvdG8zCsAVCh9kbWkvc3dfbWFuYWdlbWVudF9zZXJ2aWNlLnByb3RvEgNkbWkaEWRtaS9jb21tb25zLnByb3RvGgxkbWkvaHcucHJvdG8aEmRtaS9zd19pbWFnZS5wcm90byKWAQoaU29mdHdhcmVWZXJzaW9uSW5mb3JtYXRpb24SOgoPYWN0aXZlX3ZlcnNpb25zGAEgAygLMhEuZG1pLkltYWdlVmVyc2lvblIOYWN0aXZlVmVyc2lvbnMSPAoQc3RhbmRieV92ZXJzaW9ucxgCIAMoCzIRLmRtaS5JbWFnZVZlcnNpb25SD3N0YW5kYnlWZXJzaW9ucyKmAQolR2V0U29mdHdhcmVWZXJzaW9uSW5mb3JtYXRpb25SZXNwb25zZRIjCgZzdGF0dXMYASABKA4yCy5kbWkuU3RhdHVzUgZzdGF0dXMSIwoGcmVhc29uGAIgASgOMgsuZG1pLlJlYXNvblIGcmVhc29uEjMKBGluZm8YAyABKAsyHy5kbWkuU29mdHdhcmVWZXJzaW9uSW5mb3JtYXRpb25SBGluZm8ieAoURG93bmxvYWRJbWFnZVJlcXVlc3QSKgoLZGV2aWNlX3V1aWQYASABKAsyCS5kbWkuVXVpZFIKZGV2aWNlVXVpZBI0CgppbWFnZV9pbmZvGAIgASgLMhUuZG1pLkltYWdlSW5mb3JtYXRpb25SCWltYWdlSW5mbzKnAgofTmF0aXZlU29mdHdhcmVNYW5hZ2VtZW50U2VydmljZRJRChJHZXRTb2Z0d2FyZVZlcnNpb24SDy5kbWkuSGFyZHdhcmVJRBoqLmRtaS5HZXRTb2Z0d2FyZVZl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