@paraspell/descriptors 14.2.1 → 14.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ const binMeta = "bWV0YRAhEAAMHHNwX2NvcmUYY3J5cHRvLEFjY291bnRJZDMyAAAEAAQBIFt1ODsgMzJdAAAEAAADIAAAAAgACAAABQMADAg8aHlkcmFkeF9ydW50aW1lLFJ1bnRpbWVDYWxsAAENARhTeXN0ZW0EABABrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U3lzdGVtLCBSdW50aW1lPgABACRUaW1lc3RhbXAEADABuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VGltZXN0YW1wLCBSdW50aW1lPgADACBCYWxhbmNlcwQAOAG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxCYWxhbmNlcywgUnVudGltZT4ABwBcTXVsdGlUcmFuc2FjdGlvblBheW1lbnQEAFAB8QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TXVsdGlUcmFuc2FjdGlvblBheW1lbnQsIFJ1bnRpbWU+AMsAIFRyZWFzdXJ5BABoAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFRyZWFzdXJ5LCBSdW50aW1lPgALABxVdGlsaXR5BAB4AbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFV0aWxpdHksIFJ1bnRpbWU+AA0AIFByZWltYWdlBADoAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFByZWltYWdlLCBSdW50aW1lPgAPACBJZGVudGl0eQQA8AG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxJZGVudGl0eSwgUnVudGltZT4AEQAkRGVtb2NyYWN5BAClAQG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxEZW1vY3JhY3ksIFJ1bnRpbWU+ABMASFRlY2huaWNhbENvbW1pdHRlZQQAyQEB3QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VGVjaG5pY2FsQ29tbWl0dGVlLCBSdW50aW1lPgAZABRQcm94eQQA0QEBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UHJveHksIFJ1bnRpbWU+AB0AIE11bHRpc2lnBADdAQG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNdWx0aXNpZywgUnVudGltZT4AHwAcVW5pcXVlcwQA6QEBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VW5pcXVlcywgUnVudGltZT4AIABIU3RhdGVUcmllTWlncmF0aW9uBAAFAgHdAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdGF0ZVRyaWVNaWdyYXRpb24sIFJ1bnRpbWU+ACMAQENvbnZpY3Rpb25Wb3RpbmcEAB0CAdUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvbnZpY3Rpb25Wb3RpbmcsIFJ1bnRpbWU+ACQAJFJlZmVyZW5kYQQAMQIBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UmVmZXJlbmRhLCBSdW50aW1lPgAlACRXaGl0ZWxpc3QEADkCAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFdoaXRlbGlzdCwgUnVudGltZT4AJwAoRGlzcGF0Y2hlcgQAPQIBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RGlzcGF0Y2hlciwgUnVudGltZT4AKAA0QXNzZXRSZWdpc3RyeQQAQQIByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QXNzZXRSZWdpc3RyeSwgUnVudGltZT4AMwAYQ2xhaW1zBABlAgGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDbGFpbXMsIFJ1bnRpbWU+ADUAOEdlbmVzaXNIaXN0b3J5BABtAgHNAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxHZW5lc2lzSGlzdG9yeSwgUnVudGltZT4ANwAgT21uaXBvb2wEAHECAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9tbmlwb29sLCBSdW50aW1lPgA7AEBUcmFuc2FjdGlvblBhdXNlBACJAgHVAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxUcmFuc2FjdGlvblBhdXNlLCBSdW50aW1lPgA8ABhEdXN0ZXIEAI0CAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPER1c3RlciwgUnVudGltZT4APQBMT21uaXBvb2xXYXJlaG91c2VMTQQAkQIB4QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8T21uaXBvb2xXYXJlaG91c2VMTSwgUnVudGltZT4APgBcT21uaXBvb2xMaXF1aWRpdHlNaW5pbmcEAJUCAfEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9tbmlwb29sTGlxdWlkaXR5TWluaW5nLCBSdW50aW1lPgA/AAxPVEMEAMkCAaEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9UQywgUnVudGltZT4AQAA4Q2lyY3VpdEJyZWFrZXIEAM0CAc0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENpcmN1aXRCcmVha2VyLCBSdW50aW1lPgBBABhSb3V0ZXIEAOECAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJvdXRlciwgUnVudGltZT4AQwAsRHluYW1pY0ZlZXMEAPkCAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPER5bmFtaWNGZWVzLCBSdW50aW1lPgBEABxTdGFraW5nBAAFAwGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdGFraW5nLCBSdW50aW1lPgBFAChTdGFibGVzd2FwBAAJAwG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdGFibGVzd2FwLCBSdW50aW1lPgBGABRCb25kcwQALQMBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Qm9uZHMsIFJ1bnRpbWU+AEcAOE90Y1NldHRsZW1lbnRzBAAxAwHNAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxPdGNTZXR0bGVtZW50cywgUnVudGltZT4ASAAMTEJQBAA1AwGhAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxMQlAsIFJ1bnRpbWU+AEkADFhZSwQAQQMBoQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8WFlLLCBSdW50aW1lPgBKACRSZWZlcnJhbHMEAEUDAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJlZmVycmFscywgUnVudGltZT4ASwAsTGlxdWlkYXRpb24EAFUDAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPExpcXVpZGF0aW9uLCBSdW50aW1lPgBMAAxIU00EAF0DAaEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEhTTSwgUnVudGltZT4AUgAYU2lnbmV0BAB5AwGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTaWduZXQsIFJ1bnRpbWU+AFQAMEV0aERpc3BlbnNlcgQAuQMBxQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RXRoRGlzcGVuc2VyLCBSdW50aW1lPgBVABxHaWdhSGR4BADBAwGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxHaWdhSGR4LCBSdW50aW1lPgBWADhHaWdhSGR4UmV3YXJkcwQAxQMBzQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8R2lnYUhkeFJld2FyZHMsIFJ1bnRpbWU+AFcAGFRva2VucwQAyQMBrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VG9rZW5zLCBSdW50aW1lPgBNAChDdXJyZW5jaWVzBADNAwG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDdXJyZW5jaWVzLCBSdW50aW1lPgBPABxWZXN0aW5nBADVAwGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxWZXN0aW5nLCBSdW50aW1lPgBRAAxFVk0EAOEDAaEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEVWTSwgUnVudGltZT4AWgAgRXRoZXJldW0EAP0DAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEV0aGVyZXVtLCBSdW50aW1lPgBcACxFVk1BY2NvdW50cwQALQQBwQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RVZNQWNjb3VudHMsIFJ1bnRpbWU+AF0ASFhZS0xpcXVpZGl0eU1pbmluZwQAMQQB3QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8WFlLTGlxdWlkaXR5TWluaW5nLCBSdW50aW1lPgBfADhYWUtXYXJlaG91c2VMTQQAQQQBzQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8WFlLV2FyZWhvdXNlTE0sIFJ1bnRpbWU+AGAAOFJlbGF5Q2hhaW5JbmZvBABFBAHNAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxSZWxheUNoYWluSW5mbywgUnVudGltZT4AyQAMRENBBABJBAGhAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxEQ0EsIFJ1bnRpbWU+AEIAJFNjaGVkdWxlcgQAVQQBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U2NoZWR1bGVyLCBSdW50aW1lPgAFADxQYXJhY2hhaW5TeXN0ZW0EAFkEAdEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFjaGFpblN5c3RlbSwgUnVudGltZT4AZwA0UGFyYWNoYWluSW5mbwQApQQByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UGFyYWNoYWluSW5mbywgUnVudGltZT4AaQAsUG9sa2Fkb3RYY20EAKkEAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBvbGthZG90WGNtLCBSdW50aW1lPgBrAChDdW11bHVzWGNtBABpBgG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDdW11bHVzWGNtLCBSdW50aW1lPgBtADBNZXNzYWdlUXVldWUEAG0GAcUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE1lc3NhZ2VRdWV1ZSwgUnVudGltZT4AcgBQTXVsdGlCbG9ja01pZ3JhdGlvbnMEAHUGAeUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE11bHRpQmxvY2tNaWdyYXRpb25zLCBSdW50aW1lPgB0ABxPcm1sWGNtBACVBgGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxPcm1sWGNtLCBSdW50aW1lPgCHABxYVG9rZW5zBACZBgGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxYVG9rZW5zLCBSdW50aW1lPgCJAERDb2xsYXRvclNlbGVjdGlvbgQApQYB2QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q29sbGF0b3JTZWxlY3Rpb24sIFJ1bnRpbWU+AKMAHFNlc3Npb24EAKkGAbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFNlc3Npb24sIFJ1bnRpbWU+AKUAJEVtYU9yYWNsZQQAtQYBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RW1hT3JhY2xlLCBSdW50aW1lPgDKACRCcm9hZGNhc3QEALkGAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEJyb2FkY2FzdCwgUnVudGltZT4AzAAwRmVlUHJvY2Vzc29yBAC9BgHFAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxGZWVQcm9jZXNzb3IsIFJ1bnRpbWU+AM8AABAMMGZyYW1lX3N5c3RlbRhwYWxsZXQQQ2FsbAQEVAABLBhyZW1hcmsEARhyZW1hcmsUARxWZWM8dTg+AAAMaE1ha2Ugc29tZSBvbi1jaGFpbiByZW1hcmsuAIhDYW4gYmUgZXhlY3V0ZWQgYnkgZXZlcnkgYG9yaWdpbmAuOHNldF9oZWFwX3BhZ2VzBAEUcGFnZXMYAQx1NjQAAQT4U2V0IHRoZSBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIFdlYkFzc2VtYmx5IGVudmlyb25tZW50J3MgaGVhcC4gc2V0X2NvZGUEARBjb2RlFAEcVmVjPHU4PgACBGRTZXQgdGhlIG5ldyBydW50aW1lIGNvZGUuXHNldF9jb2RlX3dpdGhvdXRfY2hlY2tzBAEQY29kZRQBHFZlYzx1OD4AAxAZAVNldCB0aGUgbmV3IHJ1bnRpbWUgY29kZSB3aXRob3V0IGRvaW5nIGFueSBjaGVja3Mgb2YgdGhlIGdpdmVuIGBjb2RlYC4AUQFOb3RlIHRoYXQgcnVudGltZSB1cGdyYWRlcyB3aWxsIG5vdCBydW4gaWYgdGhpcyBpcyBjYWxsZWQgd2l0aCBhIG5vdC1pbmNyZWFzaW5nIHNwZWMgdmVyc2lvbiEsc2V0X3N0b3JhZ2UEARRpdGVtcxwBNFZlYzxLZXlWYWx1ZT4ABARoU2V0IHNvbWUgaXRlbXMgb2Ygc3RvcmFnZS4wa2lsbF9zdG9yYWdlBAEQa2V5cyQBIFZlYzxLZXk+AAUEdEtpbGwgc29tZSBpdGVtcyBmcm9tIHN0b3JhZ2UuLGtpbGxfcHJlZml4CAEYcHJlZml4FAEMS2V5AAEcc3Via2V5cygBDHUzMgAGEBEBS2lsbCBhbGwgc3RvcmFnZSBpdGVtcyB3aXRoIGEga2V5IHRoYXQgc3RhcnRzIHdpdGggdGhlIGdpdmVuIHByZWZpeC4AOQEqKk5PVEU6KiogV2UgcmVseSBvbiB0aGUgUm9vdCBvcmlnaW4gdG8gcHJvdmlkZSB1cyB0aGUgbnVtYmVyIG9mIHN1YmtleXMgdW5kZXI9AXRoZSBwcmVmaXggd2UgYXJlIHJlbW92aW5nIHRvIGFjY3VyYXRlbHkgY2FsY3VsYXRlIHRoZSB3ZWlnaHQgb2YgdGhpcyBmdW5jdGlvbi5EcmVtYXJrX3dpdGhfZXZlbnQEARhyZW1hcmsUARxWZWM8dTg+AAcEpE1ha2Ugc29tZSBvbi1jaGFpbiByZW1hcmsgYW5kIGVtaXQgZXZlbnQuRGF1dGhvcml6ZV91cGdyYWRlBAEkY29kZV9oYXNoLAEcVDo6SGFzaAAJEGEBQXV0aG9yaXplIGFuIHVwZ3JhZGUgdG8gYSBnaXZlbiBgY29kZV9oYXNoYCBmb3IgdGhlIHJ1bnRpbWUuIFRoZSBydW50aW1lIGNhbiBiZSBzdXBwbGllZBhsYXRlci4AfFRoaXMgY2FsbCByZXF1aXJlcyBSb290IG9yaWdpbi6AYXV0aG9yaXplX3VwZ3JhZGVfd2l0aG91dF9jaGVja3MEASRjb2RlX2hhc2gsARxUOjpIYXNoAAogYQFBdXRob3JpemUgYW4gdXBncmFkZSB0byBhIGdpdmVuIGBjb2RlX2hhc2hgIGZvciB0aGUgcnVudGltZS4gVGhlIHJ1bnRpbWUgY2FuIGJlIHN1cHBsaWVkGGxhdGVyLgBdAVdBUk5JTkc6IFRoaXMgYXV0aG9yaXplcyBhbiB1cGdyYWRlIHRoYXQgd2lsbCB0YWtlIHBsYWNlIHdpdGhvdXQgYW55IHNhZmV0eSBjaGVja3MsIGZvclkBZXhhbXBsZSB0aGF0IHRoZSBzcGVjIG5hbWUgcmVtYWlucyB0aGUgc2FtZSBhbmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIgaW5jcmVhc2VzLiBOb3TwcmVjb21tZW5kZWQgZm9yIG5vcm1hbCB1c2UuIFVzZSBgYXV0aG9yaXplX3VwZ3JhZGVgIGluc3RlYWQuAHxUaGlzIGNhbGwgcmVxdWlyZXMgUm9vdCBvcmlnaW4uYGFwcGx5X2F1dGhvcml6ZWRfdXBncmFkZQQBEGNvZGUUARxWZWM8dTg+AAskVQFQcm92aWRlIHRoZSBwcmVpbWFnZSAocnVudGltZSBiaW5hcnkpIGBjb2RlYCBmb3IgYW4gdXBncmFkZSB0aGF0IGhhcyBiZWVuIGF1dGhvcml6ZWQuAEkBSWYgdGhlIGF1dGhvcml6YXRpb24gcmVxdWlyZWQgYSB2ZXJzaW9uIGNoZWNrLCB0aGlzIGNhbGwgd2lsbCBlbnN1cmUgdGhlIHNwZWMgbmFtZehyZW1haW5zIHVuY2hhbmdlZCBhbmQgdGhhdCB0aGUgc3BlYyB2ZXJzaW9uIGhhcyBpbmNyZWFzZWQuAFkBRGVwZW5kaW5nIG9uIHRoZSBydW50aW1lJ3MgYE9uU2V0Q29kZWAgY29uZmlndXJhdGlvbiwgdGhpcyBmdW5jdGlvbiBtYXkgZGlyZWN0bHkgYXBwbHkRAXRoZSBuZXcgYGNvZGVgIGluIHRoZSBzYW1lIGJsb2NrIG9yIGF0dGVtcHQgdG8gc2NoZWR1bGUgdGhlIHVwZ3JhZGUuAGBBbGwgb3JpZ2lucyBhcmUgYWxsb3dlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuFAAAAggAGAAABQYAHAAAAiAAIAAABAgUFAAkAAACFAAoAAAFBQAsCDxwcmltaXRpdmVfdHlwZXMQSDI1NgAABAAEASBbdTg7IDMyXQAAMAxAcGFsbGV0X3RpbWVzdGFtcBhwYWxsZXQQQ2FsbAQEVAABBAxzZXQEAQxub3c0ASRUOjpNb21lbnQAAExUU2V0IHRoZSBjdXJyZW50IHRpbWUuAFUBVGhpcyBjYWxsIHNob3VsZCBiZSBpbnZva2VkIGV4YWN0bHkgb25jZSBwZXIgYmxvY2suIEl0IHdpbGwgcGFuaWMgYXQgdGhlIGZpbmFsaXphdGlvbtRwaGFzZSwgaWYgdGhpcyBjYWxsIGhhc24ndCBiZWVuIGludm9rZWQgYnkgdGhhdCB0aW1lLgBBAVRoZSB0aW1lc3RhbXAgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lIGJ5IHRoZSBhbW91bnQgc3BlY2lmaWVkIGJ5aFtgQ29uZmlnOjpNaW5pbXVtUGVyaW9kYF0uAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfTm9uZV8uAFEBVGhpcyBkaXNwYXRjaCBjbGFzcyBpcyBfTWFuZGF0b3J5XyB0byBlbnN1cmUgaXQgZ2V0cyBleGVjdXRlZCBpbiB0aGUgYmxvY2suIEJlIGF3YXJlUQF0aGF0IGNoYW5naW5nIHRoZSBjb21wbGV4aXR5IG9mIHRoaXMgY2FsbCBjb3VsZCByZXN1bHQgZXhoYXVzdGluZyB0aGUgcmVzb3VyY2VzIGluIGGEYmxvY2sgdG8gZXhlY3V0ZSBhbnkgb3RoZXIgY2FsbHMuADQjIyBDb21wbGV4aXR5MQEtIGBPKDEpYCAoTm90ZSB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBgT25UaW1lc3RhbXBTZXRgIG11c3QgYWxzbyBiZSBgTygxKWApVQEtIDEgc3RvcmFnZSByZWFkIGFuZCAxIHN0b3JhZ2UgbXV0YXRpb24gKGNvZGVjIGBPKDEpYCBiZWNhdXNlIG9mIGBEaWRVcGRhdGU6OnRha2VgIGluQCAgYG9uX2ZpbmFsaXplYCnULSAxIGV2ZW50IGhhbmRsZXIgYG9uX3RpbWVzdGFtcF9zZXRgLiBNdXN0IGJlIGBPKDEpYC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuNAAABhgAOAw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBBDYWxsCARUAARJAAEkUHRyYW5zZmVyX2FsbG93X2RlYXRoCAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWU8AShUOjpCYWxhbmNlAAAc1FRyYW5zZmVyIHNvbWUgbGlxdWlkIGZyZWUgYmFsYW5jZSB0byBhbm90aGVyIGFjY291bnQuADUBYHRyYW5zZmVyX2FsbG93X2RlYXRoYCB3aWxsIHNldCB0aGUgYEZyZWVCYWxhbmNlYCBvZiB0aGUgc2VuZGVyIGFuZCByZWNlaXZlci4RAUlmIHRoZSBzZW5kZXIncyBhY2NvdW50IGlzIGJlbG93IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0IGFzIGEgcmVzdWx0sG9mIHRoZSB0cmFuc2ZlciwgdGhlIGFjY291bnQgd2lsbCBiZSByZWFwZWQuABUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlIHRyYW5zYWN0b3IuOGZvcmNlX3RyYW5zZmVyDAEYc291cmNlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkZXN0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZTwBKFQ6OkJhbGFuY2UAAghhAUV4YWN0bHkgYXMgYHRyYW5zZmVyX2FsbG93X2RlYXRoYCwgZXhjZXB0IHRoZSBvcmlnaW4gbXVzdCBiZSByb290IGFuZCB0aGUgc291cmNlIGFjY291bnREbWF5IGJlIHNwZWNpZmllZC5MdHJhbnNmZXJfa2VlcF9hbGl2ZQgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlPAEoVDo6QmFsYW5jZQADGFkBU2FtZSBhcyB0aGUgW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdIGNhbGwsIGJ1dCB3aXRoIGEgY2hlY2sgdGhhdCB0aGUgdHJhbnNmZXIgd2lsbCBub3Rga2lsbCB0aGUgb3JpZ2luIGFjY291bnQuAOg5OSUgb2YgdGhlIHRpbWUgeW91IHdhbnQgW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdIGluc3RlYWQuAPBbYHRyYW5zZmVyX2FsbG93X2RlYXRoYF06IHN0cnVjdC5QYWxsZXQuaHRtbCNtZXRob2QudHJhbnNmZXIwdHJhbnNmZXJfYWxsCAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoa2VlcF9hbGl2ZUQBEGJvb2wABDwFAVRyYW5zZmVyIHRoZSBlbnRpcmUgdHJhbnNmZXJhYmxlIGJhbGFuY2UgZnJvbSB0aGUgY2FsbGVyIGFjY291bnQuAFkBTk9URTogVGhpcyBmdW5jdGlvbiBvbmx5IGF0dGVtcHRzIHRvIHRyYW5zZmVyIF90cmFuc2ZlcmFibGVfIGJhbGFuY2VzLiBUaGlzIG1lYW5zIHRoYXRhAWFueSBsb2NrZWQsIHJlc2VydmVkLCBvciBleGlzdGVudGlhbCBkZXBvc2l0cyAod2hlbiBga2VlcF9hbGl2ZWAgaXMgYHRydWVgKSwgd2lsbCBub3QgYmVdAXRyYW5zZmVycmVkIGJ5IHRoaXMgZnVuY3Rpb24uIFRvIGVuc3VyZSB0aGF0IHRoaXMgZnVuY3Rpb24gcmVzdWx0cyBpbiBhIGtpbGxlZCBhY2NvdW50LEUBeW91IG1pZ2h0IG5lZWQgdG8gcHJlcGFyZSB0aGUgYWNjb3VudCBieSByZW1vdmluZyBhbnkgcmVmZXJlbmNlIGNvdW50ZXJzLCBzdG9yYWdlQGRlcG9zaXRzLCBldGMuLi4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgU2lnbmVkLgCgLSBgZGVzdGA6IFRoZSByZWNpcGllbnQgb2YgdGhlIHRyYW5zZmVyLlkBLSBga2VlcF9hbGl2ZWA6IEEgYm9vbGVhbiB0byBkZXRlcm1pbmUgaWYgdGhlIGB0cmFuc2Zlcl9hbGxgIG9wZXJhdGlvbiBzaG91bGQgc2VuZCBhbGxNASAgb2YgdGhlIGZ1bmRzIHRoZSBhY2NvdW50IGhhcywgY2F1c2luZyB0aGUgc2VuZGVyIGFjY291bnQgdG8gYmUga2lsbGVkIChmYWxzZSksIG9yWQEgIHRyYW5zZmVyIGV2ZXJ5dGhpbmcgZXhjZXB0IGF0IGxlYXN0IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0LCB3aGljaCB3aWxsIGd1YXJhbnRlZSB0b5wgIGtlZXAgdGhlIHNlbmRlciBhY2NvdW50IGFsaXZlICh0cnVlKS48Zm9yY2VfdW5yZXNlcnZlCAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnRAAShUOjpCYWxhbmNlAAUMsFVucmVzZXJ2ZSBzb21lIGJhbGFuY2UgZnJvbSBhIHVzZXIgYnkgZm9yY2UuAGxDYW4gb25seSBiZSBjYWxsZWQgYnkgUk9PVC5AdXBncmFkZV9hY2NvdW50cwQBDHdob0gBRFZlYzxUOjpBY2NvdW50SWQ+AAYgcFVwZ3JhZGUgYSBzcGVjaWZpZWQgYWNjb3VudC4AdC0gYG9yaWdpbmA6IE11c3QgYmUgYFNpZ25lZGAukC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIHVwZ3JhZGVkLgBVAVRoaXMgd2lsbCB3YWl2ZSB0aGUgdHJhbnNhY3Rpb24gZmVlIGlmIGF0IGxlYXN0IGFsbCBidXQgMTAlIG9mIHRoZSBhY2NvdW50cyBuZWVkZWQgdG9BAWJlIHVwZ3JhZGVkLiAoV2UgbGV0IHNvbWUgbm90IGhhdmUgdG8gYmUgdXBncmFkZWQganVzdCBpbiBvcmRlciB0byBhbGxvdyBmb3IgdGhlWHBvc3NpYmlsaXR5IG9mIGNodXJuKS5EZm9yY2Vfc2V0X2JhbGFuY2UIAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIG5ld19mcmVlPAEoVDo6QmFsYW5jZQAIDKxTZXQgdGhlIHJlZ3VsYXIgYmFsYW5jZSBvZiBhIGdpdmVuIGFjY291bnQuALBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgaXMgYHJvb3RgLmxmb3JjZV9hZGp1c3RfdG90YWxfaXNzdWFuY2UIASRkaXJlY3Rpb25MAUxBZGp1c3RtZW50RGlyZWN0aW9uAAEUZGVsdGE8AShUOjpCYWxhbmNlAAkUuEFkanVzdCB0aGUgdG90YWwgaXNzdWFuY2UgaW4gYSBzYXR1cmF0aW5nIHdheS4A/ENhbiBvbmx5IGJlIGNhbGxlZCBieSByb290IGFuZCBhbHdheXMgbmVlZHMgYSBwb3NpdGl2ZSBgZGVsdGFgLgAkIyBFeGFtcGxlEGJ1cm4IARR2YWx1ZTwBKFQ6OkJhbGFuY2UAAShrZWVwX2FsaXZlRAEQYm9vbAAKHPxCdXJuIHRoZSBzcGVjaWZpZWQgbGlxdWlkIGZyZWUgYmFsYW5jZSBmcm9tIHRoZSBvcmlnaW4gYWNjb3VudC4AJQFJZiB0aGUgb3JpZ2luJ3MgYWNjb3VudCBlbmRzIHVwIGJlbG93IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0IGFzIGEgcmVzdWx0CQFvZiB0aGUgYnVybiBhbmQgYGtlZXBfYWxpdmVgIGlzIGZhbHNlLCB0aGUgYWNjb3VudCB3aWxsIGJlIHJlYXBlZC4AUQFVbmxpa2Ugc2VuZGluZyBmdW5kcyB0byBhIF9idXJuXyBhZGRyZXNzLCB3aGljaCBtZXJlbHkgbWFrZXMgdGhlIGZ1bmRzIGluYWNjZXNzaWJsZSwhAXRoaXMgYGJ1cm5gIG9wZXJhdGlvbiB3aWxsIHJlZHVjZSB0b3RhbCBpc3N1YW5jZSBieSB0aGUgYW1vdW50IF9idXJuZWRfLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy48AAAGQABAAAAFBwBEAAAFAABIAAACAABMDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXNMQWRqdXN0bWVudERpcmVjdGlvbgABCCBJbmNyZWFzZQAAACBEZWNyZWFzZQABAABQDIBwYWxsZXRfdHJhbnNhY3Rpb25fbXVsdGlfcGF5bWVudBhwYWxsZXQQQ2FsbAQEVAABFDBzZXRfY3VycmVuY3kEASBjdXJyZW5jeSgBMEFzc2V0SWRPZjxUPgAANKBTZXQgc2VsZWN0ZWQgY3VycmVuY3kgZm9yIGdpdmVuIGFjY291bnQuAGEBVGhpcyBhbGxvd3MgdG8gc2V0IGEgY3VycmVuY3kgZm9yIGFuIGFjY291bnQgaW4gd2hpY2ggYWxsIHRyYW5zYWN0aW9uIGZlZXMgd2lsbCBiZSBwYWlkLnxBY2NvdW50IGJhbGFuY2UgY2Fubm90IGJlIHplcm8uAG0BSW4gY2FzZSBvZiBzdWZmaWNpZW50IGFzc2V0LCB0aGUgY2hvc2VuIGN1cnJlbmN5IG11c3QgYmUgaW4gdGhlIGxpc3Qgb2YgYWNjZXB0ZWQgY3VycmVuY2llc0EBSW4gY2FzZSBvZiBpbnN1ZmZpY2llbnQgYXNzZXQsIHRoZSBjaG9zZW4gY3VycmVuY3kgbXVzdCBoYXZlIGEgWFlLIHBvb2wgd2l0aCBET1QAcQFXaGVuIGN1cnJlbmN5IGlzIHNldCwgZml4ZWQgZmVlIGlzIHdpdGhkcmF3biBmcm9tIHRoZSBhY2NvdW50IHRvIHBheSBmb3IgdGhlIGN1cnJlbmN5IGNoYW5nZQD4RVZNIGFjY291bnRzIGFyZSBub3cgYWxsb3dlZCB0byBjaGFuZ2UgdGhpZXIgcGF5bWVudCBjdXJyZW5jeS4AqEVtaXRzIGBDdXJyZW5jeVNldGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjBhZGRfY3VycmVuY3kIASBjdXJyZW5jeSgBMEFzc2V0SWRPZjxUPgABFHByaWNlVAEUUHJpY2UAARzIQWRkIGEgY3VycmVuY3kgdG8gdGhlIGxpc3Qgb2YgYWNjZXB0ZWQgY3VycmVuY2llcy4AkE9ubHkgbWVtYmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgBBAUN1cnJlbmN5IG11c3Qgbm90IGJlIGFscmVhZHkgYWNjZXB0ZWQuIENvcmUgYXNzZXQgaWQgY2Fubm90IGJlIGV4cGxpY2l0bHkgYWRkZWQuALBFbWl0cyBgQ3VycmVuY3lBZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjxyZW1vdmVfY3VycmVuY3kEASBjdXJyZW5jeSgBMEFzc2V0SWRPZjxUPgACGNRSZW1vdmUgY3VycmVuY3kgZnJvbSB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgY3VycmVuY2llc7RPbmx5IHNlbGVjdGVkIG1lbWJlcnMgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24AdENvcmUgYXNzZXQgY2Fubm90IGJlIHJlbW92ZWQuAKBFbWl0cyBgQ3VycmVuY3lSZW1vdmVkYCB3aGVuIHN1Y2Nlc3NmdWwuWHJlc2V0X3BheW1lbnRfY3VycmVuY3kEAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAMUvFJlc2V0IGN1cnJlbmN5IG9mIHRoZSBzcGVjaWZpZWQgYWNjb3VudCB0byBIRFguFQFJZiB0aGUgYWNjb3VudCBpcyBFVk0gYWNjb3VudCwgdGhlIHBheW1lbnQgY3VycmVuY3kgaXMgcmVzZXQgdG8gV0VUSC64T25seSBzZWxlY3RlZCBtZW1iZXJzIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgCQRW1pdHMgYEN1cnJlbmN5U2V0YCB3aGVuIHN1Y2Nlc3NmdWwuPGRpc3BhdGNoX3Blcm1pdCQBEGZyb21YARBIMTYwAAEIdG9YARBIMTYwAAEUdmFsdWVgARBVMjU2AAEQZGF0YRQBHFZlYzx1OD4AASRnYXNfbGltaXQYAQx1NjQAASBkZWFkbGluZWABEFUyNTYAAQR2CAEIdTgAAQRyLAEQSDI1NgABBHMsARBIMjU2AAQghERpc3BhdGNoIGEgcHJlLXNpZ25lZCBFVk0gcGVybWl0LgDoVW5zaWduZWQ6IHRoZSBFVk0gYWNjb3VudCBgZnJvbWAgcGF5cyBmb3IgdGhlIGRpc3BhdGNoIHZpYZhgd2l0aGRyYXdfZmVlYCBpbiBpdHMgY2hvc2VuIGN1cnJlbmN5LgABAVNpZ25lZDogdGhlIHNpZ25lciAocGF5bWFzdGVyKSBwYXlzIGJvdGggdGhlIFN1YnN0cmF0ZSBleHRyaW5zaWP4ZmVlIGFuZCB0aGUgRVZNLXNpZGUgZ2FzOyBgcGVybWl0LmZyb21gIGlzIHRvdWNoZWQgb25seSBieSB0aGWcaW5uZXIgY2FsbCdzIGVmZmVjdHMuIFJvb3QgaXMgcmVqZWN0ZWQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLlQMNHNwX2FyaXRobWV0aWMsZml4ZWRfcG9pbnQkRml4ZWRVMTI4AAAEAEABEHUxMjgAAFgIPHByaW1pdGl2ZV90eXBlcxBIMTYwAAAEAFwBIFt1ODsgMjBdAABcAAADFAAAAAgAYAg8cHJpbWl0aXZlX3R5cGVzEFUyNTYAAAQAZAEgW3U2NDsgNF0AAGQAAAMEAAAAGABoDDxwYWxsZXRfdHJlYXN1cnkYcGFsbGV0EENhbGwIBFQABEkAARgsc3BlbmRfbG9jYWwIARhhbW91bnQ8ATxCYWxhbmNlT2Y8VCwgST4AASxiZW5lZmljaWFyeQABUEFjY291bnRJZExvb2t1cE9mPFQ+AANEuFByb3Bvc2UgYW5kIGFwcHJvdmUgYSBzcGVuZCBvZiB0cmVhc3VyeSBmdW5kcy4ASCMjIERpc3BhdGNoIE9yaWdpbgBFAU11c3QgYmUgW2BDb25maWc6OlNwZW5kT3JpZ2luYF0gd2l0aCB0aGUgYFN1Y2Nlc3NgIHZhbHVlIGJlaW5nIGF0IGxlYXN0IGBhbW91bnRgLgAsIyMjIERldGFpbHNFAU5PVEU6IEZvciByZWNvcmQta2VlcGluZyBwdXJwb3NlcywgdGhlIHByb3Bvc2VyIGlzIGRlZW1lZCB0byBiZSBlcXVpdmFsZW50IHRvIHRoZTBiZW5lZmljaWFyeS4AOCMjIyBQYXJhbWV0ZXJzQQEtIGBhbW91bnRgOiBUaGUgYW1vdW50IHRvIGJlIHRyYW5zZmVycmVkIGZyb20gdGhlIHRyZWFzdXJ5IHRvIHRoZSBgYmVuZWZpY2lhcnlgLugtIGBiZW5lZmljaWFyeWA6IFRoZSBkZXN0aW5hdGlvbiBhY2NvdW50IGZvciB0aGUgdHJhbnNmZXIuACQjIyBFdmVudHMAtEVtaXRzIFtgRXZlbnQ6OlNwZW5kQXBwcm92ZWRgXSBpZiBzdWNjZXNzZnVsLjxyZW1vdmVfYXBwcm92YWwEASxwcm9wb3NhbF9pZGwBNFByb3Bvc2FsSW5kZXgABFQtAUZvcmNlIGEgcHJldmlvdXNseSBhcHByb3ZlZCBwcm9wb3NhbCB0byBiZSByZW1vdmVkIGZyb20gdGhlIGFwcHJvdmFsIHF1ZXVlLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAIRNdXN0IGJlIFtgQ29uZmlnOjpSZWplY3RPcmlnaW5gXS4AKCMjIERldGFpbHMAwFRoZSBvcmlnaW5hbCBkZXBvc2l0IHdpbGwgbm8gbG9uZ2VyIGJlIHJldHVybmVkLgA4IyMjIFBhcmFtZXRlcnOgLSBgcHJvcG9zYWxfaWRgOiBUaGUgaW5kZXggb2YgYSBwcm9wb3NhbAA4IyMjIENvbXBsZXhpdHmsLSBPKEEpIHdoZXJlIGBBYCBpcyB0aGUgbnVtYmVyIG9mIGFwcHJvdmFscwAoIyMjIEVycm9yc0UBLSBbYEVycm9yOjpQcm9wb3NhbE5vdEFwcHJvdmVkYF06IFRoZSBgcHJvcG9zYWxfaWRgIHN1cHBsaWVkIHdhcyBub3QgZm91bmQgaW4gdGhlUQEgIGFwcHJvdmFsIHF1ZXVlLCBpLmUuLCB0aGUgcHJvcG9zYWwgaGFzIG5vdCBiZWVuIGFwcHJvdmVkLiBUaGlzIGNvdWxkIGFsc28gbWVhbiB0aGVZASAgcHJvcG9zYWwgZG9lcyBub3QgZXhpc3QgYWx0b2dldGhlciwgdGh1cyB0aGVyZSBpcyBubyB3YXkgaXQgd291bGQgaGF2ZSBiZWVuIGFwcHJvdmVkVCAgaW4gdGhlIGZpcnN0IHBsYWNlLhRzcGVuZBABKGFzc2V0X2tpbmRwAURCb3g8VDo6QXNzZXRLaW5kPgABGGFtb3VudDwBUEFzc2V0QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnkAAXhCb3g8QmVuZWZpY2lhcnlMb29rdXBPZjxULCBJPj4AASh2YWxpZF9mcm9tdAFwT3B0aW9uPEJsb2NrTnVtYmVyRm9yPFQsIEk+PgAFaLhQcm9wb3NlIGFuZCBhcHByb3ZlIGEgc3BlbmQgb2YgdHJlYXN1cnkgZnVuZHMuAEgjIyBEaXNwYXRjaCBPcmlnaW4AHQFNdXN0IGJlIFtgQ29uZmlnOjpTcGVuZE9yaWdpbmBdIHdpdGggdGhlIGBTdWNjZXNzYCB2YWx1ZSBiZWluZyBhdCBsZWFzdFUBYGFtb3VudGAgb2YgYGFzc2V0X2tpbmRgIGluIHRoZSBuYXRpdmUgYXNzZXQuIFRoZSBhbW91bnQgb2YgYGFzc2V0X2tpbmRgIGlzIGNvbnZlcnRlZNRmb3IgYXNzZXJ0aW9uIHVzaW5nIHRoZSBbYENvbmZpZzo6QmFsYW5jZUNvbnZlcnRlcmBdLgAoIyMgRGV0YWlscwBJAUNyZWF0ZSBhbiBhcHByb3ZlZCBzcGVuZCBmb3IgdHJhbnNmZXJyaW5nIGEgc3BlY2lmaWMgYGFtb3VudGAgb2YgYGFzc2V0X2tpbmRgIHRvIGFhAWRlc2lnbmF0ZWQgYmVuZWZpY2lhcnkuIFRoZSBzcGVuZCBtdXN0IGJlIGNsYWltZWQgdXNpbmcgdGhlIGBwYXlvdXRgIGRpc3BhdGNoYWJsZSB3aXRoaW50dGhlIFtgQ29uZmlnOjpQYXlvdXRQZXJpb2RgXS4AOCMjIyBQYXJhbWV0ZXJzFQEtIGBhc3NldF9raW5kYDogQW4gaW5kaWNhdG9yIG9mIHRoZSBzcGVjaWZpYyBhc3NldCBjbGFzcyB0byBiZSBzcGVudC5BAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgdG8gYmUgdHJhbnNmZXJyZWQgZnJvbSB0aGUgdHJlYXN1cnkgdG8gdGhlIGBiZW5lZmljaWFyeWAuuC0gYGJlbmVmaWNpYXJ5YDogVGhlIGJlbmVmaWNpYXJ5IG9mIHRoZSBzcGVuZC5VAS0gYHZhbGlkX2Zyb21gOiBUaGUgYmxvY2sgbnVtYmVyIGZyb20gd2hpY2ggdGhlIHNwZW5kIGNhbiBiZSBjbGFpbWVkLiBJdCBjYW4gcmVmZXIgdG8ZASAgdGhlIHBhc3QgaWYgdGhlIHJlc3VsdGluZyBzcGVuZCBoYXMgbm90IHlldCBleHBpcmVkIGFjY29yZGluZyB0byB0aGVFASAgW2BDb25maWc6OlBheW91dFBlcmlvZGBdLiBJZiBgTm9uZWAsIHRoZSBzcGVuZCBjYW4gYmUgY2xhaW1lZCBpbW1lZGlhdGVseSBhZnRlciwgIGFwcHJvdmFsLgAkIyMgRXZlbnRzAMhFbWl0cyBbYEV2ZW50OjpBc3NldFNwZW5kQXBwcm92ZWRgXSBpZiBzdWNjZXNzZnVsLhhwYXlvdXQEARRpbmRleCgBKFNwZW5kSW5kZXgABkw4Q2xhaW0gYSBzcGVuZC4ASCMjIERpc3BhdGNoIE9yaWdpbgA4TXVzdCBiZSBzaWduZWQAKCMjIERldGFpbHMAVQFTcGVuZHMgbXVzdCBiZSBjbGFpbWVkIHdpdGhpbiBzb21lIHRlbXBvcmFsIGJvdW5kcy4gQSBzcGVuZCBtYXkgYmUgY2xhaW1lZCB3aXRoaW4gb25l1FtgQ29uZmlnOjpQYXlvdXRQZXJpb2RgXSBmcm9tIHRoZSBgdmFsaWRfZnJvbWAgYmxvY2suVQFJbiBjYXNlIG9mIGEgcGF5b3V0IGZhaWx1cmUsIHRoZSBzcGVuZCBzdGF0dXMgbXVzdCBiZSB1cGRhdGVkIHdpdGggdGhlIGBjaGVja19zdGF0dXNg3GRpc3BhdGNoYWJsZSBiZWZvcmUgcmV0cnlpbmcgd2l0aCB0aGUgY3VycmVudCBmdW5jdGlvbi4AOCMjIyBQYXJhbWV0ZXJzbC0gYGluZGV4YDogVGhlIHNwZW5kIGluZGV4LgAkIyMgRXZlbnRzAJBFbWl0cyBbYEV2ZW50OjpQYWlkYF0gaWYgc3VjY2Vzc2Z1bC4wY2hlY2tfc3RhdHVzBAEUaW5kZXgoAShTcGVuZEluZGV4AAdMKQFDaGVjayB0aGUgc3RhdHVzIG9mIHRoZSBzcGVuZCBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIHN0b3JhZ2UgaWYgcHJvY2Vzc2VkLgBIIyMgRGlzcGF0Y2ggT3JpZ2luADxNdXN0IGJlIHNpZ25lZC4AKCMjIERldGFpbHMAAQFUaGUgc3RhdHVzIGNoZWNrIGlzIGEgcHJlcmVxdWlzaXRlIGZvciByZXRyeWluZyBhIGZhaWxlZCBwYXlvdXQuSQFJZiBhIHNwZW5kIGhhcyBlaXRoZXIgc3VjY2VlZGVkIG9yIGV4cGlyZWQsIGl0IGlzIHJlbW92ZWQgZnJvbSB0aGUgc3RvcmFnZSBieSB0aGlz7GZ1bmN0aW9uLiBJbiBzdWNoIGluc3RhbmNlcywgdHJhbnNhY3Rpb24gZmVlcyBhcmUgcmVmdW5kZWQuADgjIyMgUGFyYW1ldGVyc2wtIGBpbmRleGA6IFRoZSBzcGVuZCBpbmRleC4AJCMjIEV2ZW50cwD4RW1pdHMgW2BFdmVudDo6UGF5bWVudEZhaWxlZGBdIGlmIHRoZSBzcGVuZCBwYXlvdXQgaGFzIGZhaWxlZC4BAUVtaXRzIFtgRXZlbnQ6OlNwZW5kUHJvY2Vzc2VkYF0gaWYgdGhlIHNwZW5kIHBheW91dCBoYXMgc3VjY2VlZC4odm9pZF9zcGVuZAQBFGluZGV4KAEoU3BlbmRJbmRleAAIQHxWb2lkIHByZXZpb3VzbHkgYXBwcm92ZWQgc3BlbmQuAEgjIyBEaXNwYXRjaCBPcmlnaW4AhE11c3QgYmUgW2BDb25maWc6OlJlamVjdE9yaWdpbmBdLgAoIyMgRGV0YWlscwAdAUEgc3BlbmQgdm9pZCBpcyBvbmx5IHBvc3NpYmxlIGlmIHRoZSBwYXlvdXQgaGFzIG5vdCBiZWVuIGF0dGVtcHRlZCB5ZXQuADgjIyMgUGFyYW1ldGVyc2wtIGBpbmRleGA6IFRoZSBzcGVuZCBpbmRleC4AJCMjIEV2ZW50cwDARW1pdHMgW2BFdmVudDo6QXNzZXRTcGVuZFZvaWRlZGBdIGlmIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLmwAAAYoAHAAAAQAAHQEGE9wdGlvbgQEVAEoAQgQTm9uZQAAABBTb21lBAAoAAABAAB4DDhwYWxsZXRfdXRpbGl0eRhwYWxsZXQQQ2FsbAQEVAABIBRiYXRjaAQBFGNhbGxzfAF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAASHxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAFUBSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoZWQgd2l0aG91dCBjaGVja2luZyBvcmlnaW4gZmlsdGVyLiAoVGhpc+xpbmNsdWRlcyBieXBhc3NpbmcgYGZyYW1lX3N5c3RlbTo6Q29uZmlnOjpCYXNlQ2FsbEZpbHRlcmApLgA0IyMgQ29tcGxleGl0edAtIE8oQykgd2hlcmUgQyBpcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIGJlIGJhdGNoZWQuAFUBVGhpcyB3aWxsIHJldHVybiBgT2tgIGluIGFsbCBjaXJjdW1zdGFuY2VzLiBUbyBkZXRlcm1pbmUgdGhlIHN1Y2Nlc3Mgb2YgdGhlIGJhdGNoLCBhbjEBZXZlbnQgaXMgZGVwb3NpdGVkLiBJZiBhIGNhbGwgZmFpbGVkIGFuZCB0aGUgYmF0Y2ggd2FzIGludGVycnVwdGVkLCB0aGVuIHRoZVUBYEJhdGNoSW50ZXJydXB0ZWRgIGV2ZW50IGlzIGRlcG9zaXRlZCwgYWxvbmcgd2l0aCB0aGUgbnVtYmVyIG9mIHN1Y2Nlc3NmdWwgY2FsbHMgbWFkZU0BYW5kIHRoZSBlcnJvciBvZiB0aGUgZmFpbGVkIGNhbGwuIElmIGFsbCB3ZXJlIHN1Y2Nlc3NmdWwsIHRoZW4gdGhlIGBCYXRjaENvbXBsZXRlZGBMZXZlbnQgaXMgZGVwb3NpdGVkLjRhc19kZXJpdmF0aXZlCAEUaW5kZXiAAQx1MTYAARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABNNxTZW5kIGEgY2FsbCB0aHJvdWdoIGFuIGluZGV4ZWQgcHNldWRvbnltIG9mIHRoZSBzZW5kZXIuAFUBRmlsdGVyIGZyb20gb3JpZ2luIGFyZSBwYXNzZWQgYWxvbmcuIFRoZSBjYWxsIHdpbGwgYmUgZGlzcGF0Y2hlZCB3aXRoIGFuIG9yaWdpbiB3aGljaLx1c2UgdGhlIHNhbWUgZmlsdGVyIGFzIHRoZSBvcmlnaW4gb2YgdGhpcyBjYWxsLgBFAU5PVEU6IElmIHlvdSBuZWVkIHRvIGVuc3VyZSB0aGF0IGFueSBhY2NvdW50LWJhc2VkIGZpbHRlcmluZyBpcyBub3QgaG9ub3JlZCAoaS5lLmEBYmVjYXVzZSB5b3UgZXhwZWN0IGBwcm94eWAgdG8gaGF2ZSBiZWVuIHVzZWQgcHJpb3IgaW4gdGhlIGNhbGwgc3RhY2sgYW5kIHlvdSBkbyBub3Qgd2FudFEBdGhlIGNhbGwgcmVzdHJpY3Rpb25zIHRvIGFwcGx5IHRvIGFueSBzdWItYWNjb3VudHMpLCB0aGVuIHVzZSBgYXNfbXVsdGlfdGhyZXNob2xkXzFgfGluIHRoZSBNdWx0aXNpZyBwYWxsZXQgaW5zdGVhZC4A9E5PVEU6IFByaW9yIHRvIHZlcnNpb24gKjEyLCB0aGlzIHdhcyBjYWxsZWQgYGFzX2xpbWl0ZWRfc3ViYC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLiRiYXRjaF9hbGwEARRjYWxsc3wBfFZlYzw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAjTsU2VuZCBhIGJhdGNoIG9mIGRpc3BhdGNoIGNhbGxzIGFuZCBhdG9taWNhbGx5IGV4ZWN1dGUgdGhlbS4hAVRoZSB3aG9sZSB0cmFuc2FjdGlvbiB3aWxsIHJvbGxiYWNrIGFuZCBmYWlsIGlmIGFueSBvZiB0aGUgY2FsbHMgZmFpbGVkLgCwTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4AXQEtIGBjYWxsc2A6IFRoZSBjYWxscyB0byBiZSBkaXNwYXRjaGVkIGZyb20gdGhlIHNhbWUgb3JpZ2luLiBUaGUgbnVtYmVyIG9mIGNhbGwgbXVzdCBub3Q5ASAgZXhjZWVkIHRoZSBjb25zdGFudDogYGJhdGNoZWRfY2FsbHNfbGltaXRgIChhdmFpbGFibGUgaW4gY29uc3RhbnQgbWV0YWRhdGEpLgBVAUlmIG9yaWdpbiBpcyByb290IHRoZW4gdGhlIGNhbGxzIGFyZSBkaXNwYXRjaGVkIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLixkaXNwYXRjaF9hcwgBJGFzX29yaWdpboQBVEJveDxUOjpQYWxsZXRzT3JpZ2luPgABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAMYyERpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYSBwcm92aWRlZCBvcmlnaW4uAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uADQjIyBDb21wbGV4aXR5HC0gTygxKS4sZm9yY2VfYmF0Y2gEARRjYWxsc3wBfFZlYzw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABDR8U2VuZCBhIGJhdGNoIG9mIGRpc3BhdGNoIGNhbGxzLtRVbmxpa2UgYGJhdGNoYCwgaXQgYWxsb3dzIGVycm9ycyBhbmQgd29uJ3QgaW50ZXJydXB0LgCwTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4AXQEtIGBjYWxsc2A6IFRoZSBjYWxscyB0byBiZSBkaXNwYXRjaGVkIGZyb20gdGhlIHNhbWUgb3JpZ2luLiBUaGUgbnVtYmVyIG9mIGNhbGwgbXVzdCBub3Q5ASAgZXhjZWVkIHRoZSBjb25zdGFudDogYGJhdGNoZWRfY2FsbHNfbGltaXRgIChhdmFpbGFibGUgaW4gY29uc3RhbnQgbWV0YWRhdGEpLgBNAUlmIG9yaWdpbiBpcyByb290IHRoZW4gdGhlIGNhbGxzIGFyZSBkaXNwYXRjaCB3aXRob3V0IGNoZWNraW5nIG9yaWdpbiBmaWx0ZXIuIChUaGlz7GluY2x1ZGVzIGJ5cGFzc2luZyBgZnJhbWVfc3lzdGVtOjpDb25maWc6OkJhc2VDYWxsRmlsdGVyYCkuADQjIyBDb21wbGV4aXR50C0gTyhDKSB3aGVyZSBDIGlzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gYmUgYmF0Y2hlZC4sd2l0aF93ZWlnaHQIARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABGHdlaWdodOQBGFdlaWdodAAFGMREaXNwYXRjaCBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHNwZWNpZmllZCB3ZWlnaHQuAC0BVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLCBhbmQgaW5zdGVhZCBhbGxvd3MgdGhluFJvb3Qgb3JpZ2luIHRvIHNwZWNpZnkgdGhlIHdlaWdodCBvZiB0aGUgY2FsbC4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4caWZfZWxzZQgBEG1haW4MAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEgZmFsbGJhY2sMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAZcFQFEaXNwYXRjaCBhIGZhbGxiYWNrIGNhbGwgaW4gdGhlIGV2ZW50IHRoZSBtYWluIGNhbGwgZmFpbHMgdG8gZXhlY3V0ZS6wTWF5IGJlIGNhbGxlZCBmcm9tIGFueSBvcmlnaW4gZXhjZXB0IGBOb25lYC4A5FRoaXMgZnVuY3Rpb24gZmlyc3QgYXR0ZW1wdHMgdG8gZGlzcGF0Y2ggdGhlIGBtYWluYCBjYWxsLtRJZiB0aGUgYG1haW5gIGNhbGwgZmFpbHMsIHRoZSBgZmFsbGJhY2tgIGlzIGF0dGVtdGVkLhUBaWYgdGhlIGZhbGxiYWNrIGlzIHN1Y2Nlc3NmdWxseSBkaXNwYXRjaGVkLCB0aGUgd2VpZ2h0cyBvZiBib3RoIGNhbGxzJQFhcmUgYWNjdW11bGF0ZWQgYW5kIGFuIGV2ZW50IGNvbnRhaW5pbmcgdGhlIG1haW4gY2FsbCBlcnJvciBpcyBkZXBvc2l0ZWQuANxJbiB0aGUgZXZlbnQgb2YgYSBmYWxsYmFjayBmYWlsdXJlIHRoZSB3aG9sZSBjYWxsIGZhaWxzaHdpdGggdGhlIHdlaWdodHMgcmV0dXJuZWQuAEEBLSBgbWFpbmA6IFRoZSBtYWluIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZC4gVGhpcyBpcyB0aGUgcHJpbWFyeSBhY3Rpb24gdG8gZXhlY3V0ZS49AS0gYGZhbGxiYWNrYDogVGhlIGZhbGxiYWNrIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZCBpbiBjYXNlIHRoZSBgbWFpbmAgY2FsbCBmYWlscy4ARCMjIERpc3BhdGNoIExvZ2ljQQEtIElmIHRoZSBvcmlnaW4gaXMgYHJvb3RgLCBib3RoIHRoZSBtYWluIGFuZCBmYWxsYmFjayBjYWxscyBhcmUgZXhlY3V0ZWQgd2l0aG91dHggIGFwcGx5aW5nIGFueSBvcmlnaW4gZmlsdGVycy5JAS0gSWYgdGhlIG9yaWdpbiBpcyBub3QgYHJvb3RgLCB0aGUgb3JpZ2luIGZpbHRlciBpcyBhcHBsaWVkIHRvIGJvdGggdGhlIGBtYWluYCBhbmRMICBgZmFsbGJhY2tgIGNhbGxzLgAsIyMgVXNlIENhc2VZAS0gU29tZSB1c2UgY2FzZXMgbWlnaHQgaW52b2x2ZSBzdWJtaXR0aW5nIGEgYGJhdGNoYCB0eXBlIGNhbGwgaW4gZWl0aGVyIG1haW4sIGZhbGxiYWNrKCAgb3IgYm90aC5QZGlzcGF0Y2hfYXNfZmFsbGlibGUIASRhc19vcmlnaW6EAVRCb3g8VDo6UGFsbGV0c09yaWdpbj4AARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAHFMhEaXNwYXRjaGVzIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGEgcHJvdmlkZWQgb3JpZ2luLgBRAUFsbW9zdCB0aGUgc2FtZSBhcyBbYFBhbGxldDo6ZGlzcGF0Y2hfYXNgXSBidXQgZm9yd2FyZHMgYW55IGVycm9yIG9mIHRoZSBpbm5lciBjYWxsLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy58AAACDACAAAAFBACECDxoeWRyYWR4X3J1bnRpbWUwT3JpZ2luQ2FsbGVyAAEYGHN5c3RlbQQAiAF0ZnJhbWVfc3lzdGVtOjpPcmlnaW48UnVudGltZT4AAQBIVGVjaG5pY2FsQ29tbWl0dGVlBACMAQEBcGFsbGV0X2NvbGxlY3RpdmU6Ok9yaWdpbjxSdW50aW1lLCBwYWxsZXRfY29sbGVjdGl2ZTo6SW5zdGFuY2UyPgAZABxPcmlnaW5zBACQAXRwYWxsZXRfY3VzdG9tX29yaWdpbnM6Ok9yaWdpbgAmACBFdGhlcmV1bQQAlAFccGFsbGV0X2V0aGVyZXVtOjpPcmlnaW4AXAAsUG9sa2Fkb3RYY20EAJgBSHBhbGxldF94Y206Ok9yaWdpbgBrAChDdW11bHVzWGNtBADcAWhjdW11bHVzX3BhbGxldF94Y206Ok9yaWdpbgBtAACIDDRmcmFtZV9zdXBwb3J0IGRpc3BhdGNoJFJhd09yaWdpbgQkQWNjb3VudElkAQABEBBSb290AAAAGFNpZ25lZAQAAAEkQWNjb3VudElkAAEAEE5vbmUAAgAoQXV0aG9yaXplZAADAACMCERwYWxsZXRfY29sbGVjdGl2ZSRSYXdPcmlnaW4IJEFjY291bnRJZAEABEkAAQwcTWVtYmVycwgAKAEsTWVtYmVyQ291bnQAACgBLE1lbWJlckNvdW50AAAAGE1lbWJlcgQAAAEkQWNjb3VudElkAAEAIF9QaGFudG9tAAIAAJAUPGh5ZHJhZHhfcnVudGltZShnb3Zlcm5hbmNlHG9yaWdpbnNUcGFsbGV0X2N1c3RvbV9vcmlnaW5zGE9yaWdpbgABJERXaGl0ZWxpc3RlZENhbGxlcgAAAExSZWZlcmVuZHVtQ2FuY2VsbGVyAAEAQFJlZmVyZW5kdW1LaWxsZXIAAgAwR2VuZXJhbEFkbWluAAMANE9tbmlwb29sQWRtaW4ABAAkVHJlYXN1cmVyAAUAHFNwZW5kZXIABgAYVGlwcGVyAAcASEVjb25vbWljUGFyYW1ldGVycwAIAACUCDxwYWxsZXRfZXRoZXJldW0kUmF3T3JpZ2luAAEETEV0aGVyZXVtVHJhbnNhY3Rpb24EAFgBEEgxNjAAAAAAmAwocGFsbGV0X3hjbRhwYWxsZXQYT3JpZ2luAAEIDFhjbQQAnAEgTG9jYXRpb24AAAAgUmVzcG9uc2UEAJwBIExvY2F0aW9uAAEAAJwQLHN0YWdpbmdfeGNtCHY1IGxvY2F0aW9uIExvY2F0aW9uAAAIARxwYXJlbnRzCAEIdTgAASBpbnRlcmlvcqABJEp1bmN0aW9ucwAAoBAsc3RhZ2luZ194Y20IdjUkanVuY3Rpb25zJEp1bmN0aW9ucwABJBBIZXJlAAAACFgxBACkAUhBcmM8W0p1bmN0aW9uOyAxXT4AAQAIWDIEAMABSEFyYzxbSnVuY3Rpb247IDJdPgACAAhYMwQAxAFIQXJjPFtKdW5jdGlvbjsgM10+AAMACFg0BADIAUhBcmM8W0p1bmN0aW9uOyA0XT4ABAAIWDUEAMwBSEFyYzxbSnVuY3Rpb247IDVdPgAFAAhYNgQA0AFIQXJjPFtKdW5jdGlvbjsgNl0+AAYACFg3BADUAUhBcmM8W0p1bmN0aW9uOyA3XT4ABwAIWDgEANgBSEFyYzxbSnVuY3Rpb247IDhdPgAIAACkAAADAQAAAKgAqBAsc3RhZ2luZ194Y20IdjUganVuY3Rpb24gSnVuY3Rpb24AASgkUGFyYWNoYWluBABsAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3JrrAFET3B0aW9uPE5ldHdvcmtJZD4AAQhpZAQBIFt1ODsgMzJdAAEAOEFjY291bnRJbmRleDY0CAEcbmV0d29ya6wBRE9wdGlvbjxOZXR3b3JrSWQ+AAEUaW5kZXg0AQx1NjQAAgAwQWNjb3VudEtleTIwCAEcbmV0d29ya6wBRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V5XAEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAgBCHU4AAQAMEdlbmVyYWxJbmRleAQAPAEQdTEyOAAFAChHZW5lcmFsS2V5CAEYbGVuZ3RoCAEIdTgAARBkYXRhBAEgW3U4OyAzMl0ABgAkT25seUNoaWxkAAcAJFBsdXJhbGl0eQgBCGlktAEYQm9keUlkAAEQcGFydLwBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQAsAEkTmV0d29ya0lkAAkAAKwEGE9wdGlvbgQEVAGwAQgQTm9uZQAAABBTb21lBACwAAABAACwECxzdGFnaW5nX3hjbQh2NSBqdW5jdGlvbiROZXR3b3JrSWQAASAkQnlHZW5lc2lzBAAEASBbdTg7IDMyXQAAABhCeUZvcmsIATBibG9ja19udW1iZXIYAQx1NjQAAShibG9ja19oYXNoBAEgW3U4OyAzMl0AAQAgUG9sa2Fkb3QAAgAYS3VzYW1hAAMAIEV0aGVyZXVtBAEgY2hhaW5faWQ0AQx1NjQABwAsQml0Y29pbkNvcmUACAAsQml0Y29pbkNhc2gACQBAUG9sa2Fkb3RCdWxsZXRpbgAKAAC0EAx4Y20IdjMganVuY3Rpb24YQm9keUlkAAEoEFVuaXQAAAAcTW9uaWtlcgQAuAEcW3U4OyA0XQABABRJbmRleAQAbAEMdTMyAAIAJEV4ZWN1dGl2ZQADACRUZWNobmljYWwABAAsTGVnaXNsYXRpdmUABQAgSnVkaWNpYWwABgAcRGVmZW5zZQAHADhBZG1pbmlzdHJhdGlvbgAIACBUcmVhc3VyeQAJAAC4AAADBAAAAAgAvBAMeGNtCHYzIGp1bmN0aW9uIEJvZHlQYXJ0AAEUFFZvaWNlAAAAHE1lbWJlcnMEARRjb3VudGwBDHUzMgABACBGcmFjdGlvbggBDG5vbWwBDHUzMgABFGRlbm9tbAEMdTMyAAIAREF0TGVhc3RQcm9wb3J0aW9uCAEMbm9tbAEMdTMyAAEUZGVub21sAQx1MzIAAwBITW9yZVRoYW5Qcm9wb3J0aW9uCAEMbm9tbAEMdTMyAAEUZGVub21sAQx1MzIABAAAwAAAAwIAAACoAMQAAAMDAAAAqADIAAADBAAAAKgAzAAAAwUAAACoANAAAAMGAAAAqADUAAADBwAAAKgA2AAAAwgAAACoANwMSGN1bXVsdXNfcGFsbGV0X3hjbRhwYWxsZXQYT3JpZ2luAAEIFFJlbGF5AAAAQFNpYmxpbmdQYXJhY2hhaW4EAOABGFBhcmFJZAABAADgDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzCElkAAAEACgBDHUzMgAA5Awoc3Bfd2VpZ2h0cyR3ZWlnaHRfdjIYV2VpZ2h0AAAIASByZWZfdGltZTQBDHU2NAABKHByb29mX3NpemU0AQx1NjQAAOgMPHBhbGxldF9wcmVpbWFnZRhwYWxsZXQQQ2FsbAQEVAABFDRub3RlX3ByZWltYWdlBAEUYnl0ZXMUARxWZWM8dTg+AAAQdFJlZ2lzdGVyIGEgcHJlaW1hZ2Ugb24tY2hhaW4uAFUBSWYgdGhlIHByZWltYWdlIHdhcyBwcmV2aW91c2x5IHJlcXVlc3RlZCwgbm8gZmVlcyBvciBkZXBvc2l0cyBhcmUgdGFrZW4gZm9yIHByb3ZpZGluZ1UBdGhlIHByZWltYWdlLiBPdGhlcndpc2UsIGEgZGVwb3NpdCBpcyB0YWtlbiBwcm9wb3J0aW9uYWwgdG8gdGhlIHNpemUgb2YgdGhlIHByZWltYWdlLjx1bm5vdGVfcHJlaW1hZ2UEARBoYXNoLAEcVDo6SGFzaAABGNxDbGVhciBhbiB1bnJlcXVlc3RlZCBwcmVpbWFnZSBmcm9tIHRoZSBydW50aW1lIHN0b3JhZ2UuAPxJZiBgbGVuYCBpcyBwcm92aWRlZCwgdGhlbiBpdCB3aWxsIGJlIGEgbXVjaCBjaGVhcGVyIG9wZXJhdGlvbi4AAQEtIGBoYXNoYDogVGhlIGhhc2ggb2YgdGhlIHByZWltYWdlIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgc3RvcmUuuC0gYGxlbmA6IFRoZSBsZW5ndGggb2YgdGhlIHByZWltYWdlIG9mIGBoYXNoYC5AcmVxdWVzdF9wcmVpbWFnZQQBEGhhc2gsARxUOjpIYXNoAAIQQQFSZXF1ZXN0IGEgcHJlaW1hZ2UgYmUgdXBsb2FkZWQgdG8gdGhlIGNoYWluIHdpdGhvdXQgcGF5aW5nIGFueSBmZWVzIG9yIGRlcG9zaXRzLgBVAUlmIHRoZSBwcmVpbWFnZSByZXF1ZXN0cyBoYXMgYWxyZWFkeSBiZWVuIHByb3ZpZGVkIG9uLWNoYWluLCB3ZSB1bnJlc2VydmUgYW55IGRlcG9zaXQ5AWEgdXNlciBtYXkgaGF2ZSBwYWlkLCBhbmQgdGFrZSB0aGUgY29udHJvbCBvZiB0aGUgcHJlaW1hZ2Ugb3V0IG9mIHRoZWlyIGhhbmRzLkh1bnJlcXVlc3RfcHJlaW1hZ2UEARBoYXNoLAEcVDo6SGFzaAADDLxDbGVhciBhIHByZXZpb3VzbHkgbWFkZSByZXF1ZXN0IGZvciBhIHByZWltYWdlLgAtAU5PVEU6IFRISVMgTVVTVCBOT1QgQkUgQ0FMTEVEIE9OIGBoYXNoYCBNT1JFIFRJTUVTIFRIQU4gYHJlcXVlc3RfcHJlaW1hZ2VgLjhlbnN1cmVfdXBkYXRlZAQBGGhhc2hlc+wBMFZlYzxUOjpIYXNoPgAEDLxFbnN1cmUgdGhhdCB0aGUgYnVsayBvZiBwcmUtaW1hZ2VzIGlzIHVwZ3JhZGVkLgA9AVRoZSBjYWxsZXIgcGF5cyBubyBmZWUgaWYgYXQgbGVhc3QgOTAlIG9mIHByZS1pbWFnZXMgd2VyZSBzdWNjZXNzZnVsbHkgdXBkYXRlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu7AAAAiwA8Aw8cGFsbGV0X2lkZW50aXR5GHBhbGxldBBDYWxsBARUAAFgNGFkZF9yZWdpc3RyYXIEARxhY2NvdW50AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AABx4QWRkIGEgcmVnaXN0cmFyIHRvIHRoZSBzeXN0ZW0uAPxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgVDo6UmVnaXN0cmFyT3JpZ2luYC4AqC0gYGFjY291bnRgOiB0aGUgYWNjb3VudCBvZiB0aGUgcmVnaXN0cmFyLgCURW1pdHMgYFJlZ2lzdHJhckFkZGVkYCBpZiBzdWNjZXNzZnVsLjBzZXRfaWRlbnRpdHkEARBpbmZv9AFsQm94PFQ6OklkZW50aXR5SW5mb3JtYXRpb24+AAEoKQFTZXQgYW4gYWNjb3VudCdzIGlkZW50aXR5IGluZm9ybWF0aW9uIGFuZCByZXNlcnZlIHRoZSBhcHByb3ByaWF0ZSBkZXBvc2l0LgBVAUlmIHRoZSBhY2NvdW50IGFscmVhZHkgaGFzIGlkZW50aXR5IGluZm9ybWF0aW9uLCB0aGUgZGVwb3NpdCBpcyB0YWtlbiBhcyBwYXJ0IHBheW1lbnRQZm9yIHRoZSBuZXcgZGVwb3NpdC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgCMLSBgaW5mb2A6IFRoZSBpZGVudGl0eSBpbmZvcm1hdGlvbi4AiEVtaXRzIGBJZGVudGl0eVNldGAgaWYgc3VjY2Vzc2Z1bC4gc2V0X3N1YnMEARBzdWJzhQEBZFZlYzwoVDo6QWNjb3VudElkLCBEYXRhKT4AAiSMU2V0IHRoZSBzdWItYWNjb3VudHMgb2YgdGhlIHNlbmRlci4AVQFQYXltZW50OiBBbnkgYWdncmVnYXRlIGJhbGFuY2UgcmVzZXJ2ZWQgYnkgcHJldmlvdXMgYHNldF9zdWJzYCBjYWxscyB3aWxsIGJlIHJldHVybmVkLQFhbmQgYW4gYW1vdW50IGBTdWJBY2NvdW50RGVwb3NpdGAgd2lsbCBiZSByZXNlcnZlZCBmb3IgZWFjaCBpdGVtIGluIGBzdWJzYC4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkJGlkZW50aXR5LgCwLSBgc3Vic2A6IFRoZSBpZGVudGl0eSdzIChuZXcpIHN1Yi1hY2NvdW50cy44Y2xlYXJfaWRlbnRpdHkAAyA5AUNsZWFyIGFuIGFjY291bnQncyBpZGVudGl0eSBpbmZvIGFuZCBhbGwgc3ViLWFjY291bnRzIGFuZCByZXR1cm4gYWxsIGRlcG9zaXRzLgDsUGF5bWVudDogQWxsIHJlc2VydmVkIGJhbGFuY2VzIG9uIHRoZSBhY2NvdW50IGFyZSByZXR1cm5lZC4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkJGlkZW50aXR5LgCYRW1pdHMgYElkZW50aXR5Q2xlYXJlZGAgaWYgc3VjY2Vzc2Z1bC5EcmVxdWVzdF9qdWRnZW1lbnQIASRyZWdfaW5kZXhsAThSZWdpc3RyYXJJbmRleAABHG1heF9mZWU8ATBCYWxhbmNlT2Y8VD4ABECUUmVxdWVzdCBhIGp1ZGdlbWVudCBmcm9tIGEgcmVnaXN0cmFyLgBVAVBheW1lbnQ6IEF0IG1vc3QgYG1heF9mZWVgIHdpbGwgYmUgcmVzZXJ2ZWQgZm9yIHBheW1lbnQgdG8gdGhlIHJlZ2lzdHJhciBpZiBqdWRnZW1lbnQYZ2l2ZW4uADUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGFQcmVnaXN0ZXJlZCBpZGVudGl0eS4AHQEtIGByZWdfaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBqdWRnZW1lbnQgaXMgcmVxdWVzdGVkLlUBLSBgbWF4X2ZlZWA6IFRoZSBtYXhpbXVtIGZlZSB0aGF0IG1heSBiZSBwYWlkLiBUaGlzIHNob3VsZCBqdXN0IGJlIGF1dG8tcG9wdWxhdGVkIGFzOgAwYGBgbm9jb21waWxlyFJlZ2lzdHJhcnM6OjxUPjo6Z2V0KCkuZ2V0KHJlZ19pbmRleCkudW53cmFwKCkuZmVlDGBgYACkRW1pdHMgYEp1ZGdlbWVudFJlcXVlc3RlZGAgaWYgc3VjY2Vzc2Z1bC44Y2FuY2VsX3JlcXVlc3QEASRyZWdfaW5kZXgoAThSZWdpc3RyYXJJbmRleAAFKGhDYW5jZWwgYSBwcmV2aW91cyByZXF1ZXN0LgD4UGF5bWVudDogQSBwcmV2aW91c2x5IHJlc2VydmVkIGRlcG9zaXQgaXMgcmV0dXJuZWQgb24gc3VjY2Vzcy4ANQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYVByZWdpc3RlcmVkIGlkZW50aXR5LgBFAS0gYHJlZ19pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGp1ZGdlbWVudCBpcyBubyBsb25nZXIgcmVxdWVzdGVkLgCsRW1pdHMgYEp1ZGdlbWVudFVucmVxdWVzdGVkYCBpZiBzdWNjZXNzZnVsLhxzZXRfZmVlCAEUaW5kZXhsAThSZWdpc3RyYXJJbmRleAABDGZlZTwBMEJhbGFuY2VPZjxUPgAGHBkBU2V0IHRoZSBmZWUgcmVxdWlyZWQgZm9yIGEganVkZ2VtZW50IHRvIGJlIHJlcXVlc3RlZCBmcm9tIGEgcmVnaXN0cmFyLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSgb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgaW5kZXhgLgD0LSBgaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBmZWUgaXMgdG8gYmUgc2V0LlQtIGBmZWVgOiB0aGUgbmV3IGZlZS44c2V0X2FjY291bnRfaWQIARRpbmRleGwBOFJlZ2lzdHJhckluZGV4AAEMbmV3AAFQQWNjb3VudElkTG9va3VwT2Y8VD4ABxy8Q2hhbmdlIHRoZSBhY2NvdW50IGFzc29jaWF0ZWQgd2l0aCBhIHJlZ2lzdHJhci4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBhY2NvdW50oG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgaW5kZXggaXMgYGluZGV4YC4A9C0gYGluZGV4YDogdGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgZmVlIGlzIHRvIGJlIHNldC5wLSBgbmV3YDogdGhlIG5ldyBhY2NvdW50IElELihzZXRfZmllbGRzCAEUaW5kZXhsAThSZWdpc3RyYXJJbmRleAABGGZpZWxkcxgBKQE8VDo6SWRlbnRpdHlJbmZvcm1hdGlvbiBhcyBJZGVudGl0eUluZm9ybWF0aW9uUHJvdmlkZXI+OjoKRmllbGRzSWRlbnRpZmllcgAIHKhTZXQgdGhlIGZpZWxkIGluZm9ybWF0aW9uIGZvciBhIHJlZ2lzdHJhci4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBhY2NvdW50oG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgaW5kZXggaXMgYGluZGV4YC4A9C0gYGluZGV4YDogdGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgZmVlIGlzIHRvIGJlIHNldC4NAS0gYGZpZWxkc2A6IHRoZSBmaWVsZHMgdGhhdCB0aGUgcmVnaXN0cmFyIGNvbmNlcm5zIHRoZW1zZWx2ZXMgd2l0aC5EcHJvdmlkZV9qdWRnZW1lbnQQASRyZWdfaW5kZXhsAThSZWdpc3RyYXJJbmRleAABGHRhcmdldAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEkanVkZ2VtZW50jQEBXEp1ZGdlbWVudDxCYWxhbmNlT2Y8VD4+AAEgaWRlbnRpdHksARxUOjpIYXNoAAk8uFByb3ZpZGUgYSBqdWRnZW1lbnQgZm9yIGFuIGFjY291bnQncyBpZGVudGl0eS4AVQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGJlIHRoZSBhY2NvdW50sG9mIHRoZSByZWdpc3RyYXIgd2hvc2UgaW5kZXggaXMgYHJlZ19pbmRleGAuACEBLSBgcmVnX2luZGV4YDogdGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UganVkZ2VtZW50IGlzIGJlaW5nIG1hZGUuVQEtIGB0YXJnZXRgOiB0aGUgYWNjb3VudCB3aG9zZSBpZGVudGl0eSB0aGUganVkZ2VtZW50IGlzIHVwb24uIFRoaXMgbXVzdCBiZSBhbiBhY2NvdW50dCAgd2l0aCBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuSQEtIGBqdWRnZW1lbnRgOiB0aGUganVkZ2VtZW50IG9mIHRoZSByZWdpc3RyYXIgb2YgaW5kZXggYHJlZ19pbmRleGAgYWJvdXQgYHRhcmdldGAuXQEtIGBpZGVudGl0eWA6IFRoZSBoYXNoIG9mIHRoZSBbYElkZW50aXR5SW5mb3JtYXRpb25Qcm92aWRlcmBdIGZvciB0aGF0IHRoZSBqdWRnZW1lbnQgaXMsICBwcm92aWRlZC4AsE5vdGU6IEp1ZGdlbWVudHMgZG8gbm90IGFwcGx5IHRvIGEgdXNlcm5hbWUuAJRFbWl0cyBgSnVkZ2VtZW50R2l2ZW5gIGlmIHN1Y2Nlc3NmdWwuNGtpbGxfaWRlbnRpdHkEARh0YXJnZXQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAKMEEBUmVtb3ZlIGFuIGFjY291bnQncyBpZGVudGl0eSBhbmQgc3ViLWFjY291bnQgaW5mb3JtYXRpb24gYW5kIHNsYXNoIHRoZSBkZXBvc2l0cy4AYQFQYXltZW50OiBSZXNlcnZlZCBiYWxhbmNlcyBmcm9tIGBzZXRfc3Vic2AgYW5kIGBzZXRfaWRlbnRpdHlgIGFyZSBzbGFzaGVkIGFuZCBoYW5kbGVkIGJ5RQFgU2xhc2hgLiBWZXJpZmljYXRpb24gcmVxdWVzdCBkZXBvc2l0cyBhcmUgbm90IHJldHVybmVkOyB0aGV5IHNob3VsZCBiZSBjYW5jZWxsZWSAbWFudWFsbHkgdXNpbmcgYGNhbmNlbF9yZXF1ZXN0YC4A+FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IG1hdGNoIGBUOjpGb3JjZU9yaWdpbmAuAFUBLSBgdGFyZ2V0YDogdGhlIGFjY291bnQgd2hvc2UgaWRlbnRpdHkgdGhlIGp1ZGdlbWVudCBpcyB1cG9uLiBUaGlzIG11c3QgYmUgYW4gYWNjb3VudHQgIHdpdGggYSByZWdpc3RlcmVkIGlkZW50aXR5LgCURW1pdHMgYElkZW50aXR5S2lsbGVkYCBpZiBzdWNjZXNzZnVsLhxhZGRfc3ViCAEMc3ViAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkYXRhAQEBEERhdGEACxysQWRkIHRoZSBnaXZlbiBhY2NvdW50IHRvIHRoZSBzZW5kZXIncyBzdWJzLgBdAVBheW1lbnQ6IEJhbGFuY2UgcmVzZXJ2ZWQgYnkgYSBwcmV2aW91cyBgc2V0X3N1YnNgIGNhbGwgZm9yIG9uZSBzdWIgd2lsbCBiZSByZXBhdHJpYXRlZDh0byB0aGUgc2VuZGVyLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWRYc3ViIGlkZW50aXR5IG9mIGBzdWJgLihyZW5hbWVfc3ViCAEMc3ViAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkYXRhAQEBEERhdGEADBDMQWx0ZXIgdGhlIGFzc29jaWF0ZWQgbmFtZSBvZiB0aGUgZ2l2ZW4gc3ViLWFjY291bnQuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZFhzdWIgaWRlbnRpdHkgb2YgYHN1YmAuKHJlbW92ZV9zdWIEAQxzdWIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgANHMBSZW1vdmUgdGhlIGdpdmVuIGFjY291bnQgZnJvbSB0aGUgc2VuZGVyJ3Mgc3Vicy4AXQFQYXltZW50OiBCYWxhbmNlIHJlc2VydmVkIGJ5IGEgcHJldmlvdXMgYHNldF9zdWJzYCBjYWxsIGZvciBvbmUgc3ViIHdpbGwgYmUgcmVwYXRyaWF0ZWQ4dG8gdGhlIHNlbmRlci4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkWHN1YiBpZGVudGl0eSBvZiBgc3ViYC4gcXVpdF9zdWIADiiMUmVtb3ZlIHRoZSBzZW5kZXIgYXMgYSBzdWItYWNjb3VudC4AXQFQYXltZW50OiBCYWxhbmNlIHJlc2VydmVkIGJ5IGEgcHJldmlvdXMgYHNldF9zdWJzYCBjYWxsIGZvciBvbmUgc3ViIHdpbGwgYmUgcmVwYXRyaWF0ZWS0dG8gdGhlIHNlbmRlciAoKm5vdCogdGhlIG9yaWdpbmFsIGRlcG9zaXRvcikuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZDxzdXBlci1pZGVudGl0eS4ARQFOT1RFOiBUaGlzIHNob3VsZCBub3Qgbm9ybWFsbHkgYmUgdXNlZCwgYnV0IGlzIHByb3ZpZGVkIGluIHRoZSBjYXNlIHRoYXQgdGhlIG5vbi0RAWNvbnRyb2xsZXIgb2YgYW4gYWNjb3VudCBpcyBtYWxpY2lvdXNseSByZWdpc3RlcmVkIGFzIGEgc3ViLWFjY291bnQuWGFkZF91c2VybmFtZV9hdXRob3JpdHkMASRhdXRob3JpdHkAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABGHN1ZmZpeBQBHFZlYzx1OD4AAShhbGxvY2F0aW9uKAEMdTMyAA8UVQFBZGQgYW4gYEFjY291bnRJZGAgd2l0aCBwZXJtaXNzaW9uIHRvIGdyYW50IHVzZXJuYW1lcyB3aXRoIGEgZ2l2ZW4gYHN1ZmZpeGAgYXBwZW5kZWQuAEUBVGhlIGF1dGhvcml0eSBjYW4gZ3JhbnQgdXAgdG8gYGFsbG9jYXRpb25gIHVzZXJuYW1lcy4gVG8gdG9wIHVwIHRoZSBhbGxvY2F0aW9uIG9ySQFjaGFuZ2UgdGhlIGFjY291bnQgdXNlZCB0byBncmFudCB1c2VybmFtZXMsIHRoaXMgY2FsbCBjYW4gYmUgdXNlZCB3aXRoIHRoZSB1cGRhdGVkzHBhcmFtZXRlcnMgdG8gb3ZlcndyaXRlIHRoZSBleGlzdGluZyBjb25maWd1cmF0aW9uLmRyZW1vdmVfdXNlcm5hbWVfYXV0aG9yaXR5CAEYc3VmZml4FAEcVmVjPHU4PgABJGF1dGhvcml0eQABUEFjY291bnRJZExvb2t1cE9mPFQ+ABAExFJlbW92ZSBgYXV0aG9yaXR5YCBmcm9tIHRoZSB1c2VybmFtZSBhdXRob3JpdGllcy5Ac2V0X3VzZXJuYW1lX2ZvchABDHdobwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEgdXNlcm5hbWUUARxWZWM8dTg+AAEkc2lnbmF0dXJlkQEBcE9wdGlvbjxUOjpPZmZjaGFpblNpZ25hdHVyZT4AATh1c2VfYWxsb2NhdGlvbkQBEGJvb2wAETQNAVNldCB0aGUgdXNlcm5hbWUgZm9yIGB3aG9gLiBNdXN0IGJlIGNhbGxlZCBieSBhIHVzZXJuYW1lIGF1dGhvcml0eS4AWQFJZiBgdXNlX2FsbG9jYXRpb25gIGlzIHNldCwgdGhlIGF1dGhvcml0eSBtdXN0IGhhdmUgYSB1c2VybmFtZSBhbGxvY2F0aW9uIGF2YWlsYWJsZSB0b0UBc3BlbmQuIE90aGVyd2lzZSwgdGhlIGF1dGhvcml0eSB3aWxsIG5lZWQgdG8gcHV0IHVwIGEgZGVwb3NpdCBmb3IgcmVnaXN0ZXJpbmcgdGhlJHVzZXJuYW1lLgCwVXNlcnMgY2FuIGVpdGhlciBwcmUtc2lnbiB0aGVpciB1c2VybmFtZXMgb3JIYWNjZXB0IHRoZW0gbGF0ZXIuADxVc2VybmFtZXMgbXVzdDrYICAtIE9ubHkgY29udGFpbiBsb3dlcmNhc2UgQVNDSUkgY2hhcmFjdGVycyBvciBkaWdpdHMuNQEgIC0gV2hlbiBjb21iaW5lZCB3aXRoIHRoZSBzdWZmaXggb2YgdGhlIGlzc3VpbmcgYXV0aG9yaXR5IGJlIF9sZXNzIHRoYW5fIHRoZWAgICAgYE1heFVzZXJuYW1lTGVuZ3RoYC48YWNjZXB0X3VzZXJuYW1lBAEgdXNlcm5hbWWhAQEsVXNlcm5hbWU8VD4AEghNAUFjY2VwdCBhIGdpdmVuIHVzZXJuYW1lIHRoYXQgYW4gYGF1dGhvcml0eWAgZ3JhbnRlZC4gVGhlIGNhbGwgbXVzdCBpbmNsdWRlIHRoZSBmdWxsiHVzZXJuYW1lLCBhcyBpbiBgdXNlcm5hbWUuc3VmZml4YC5ccmVtb3ZlX2V4cGlyZWRfYXBwcm92YWwEASB1c2VybmFtZaEBASxVc2VybmFtZTxUPgATDGEBUmVtb3ZlIGFuIGV4cGlyZWQgdXNlcm5hbWUgYXBwcm92YWwuIFRoZSB1c2VybmFtZSB3YXMgYXBwcm92ZWQgYnkgYW4gYXV0aG9yaXR5IGJ1dCBuZXZlclUBYWNjZXB0ZWQgYnkgdGhlIHVzZXIgYW5kIG11c3Qgbm93IGJlIGJleW9uZCBpdHMgZXhwaXJhdGlvbi4gVGhlIGNhbGwgbXVzdCBpbmNsdWRlIHRoZZxmdWxsIHVzZXJuYW1lLCBhcyBpbiBgdXNlcm5hbWUuc3VmZml4YC5Qc2V0X3ByaW1hcnlfdXNlcm5hbWUEASB1c2VybmFtZaEBASxVc2VybmFtZTxUPgAUBDEBU2V0IGEgZ2l2ZW4gdXNlcm5hbWUgYXMgdGhlIHByaW1hcnkuIFRoZSB1c2VybmFtZSBzaG91bGQgaW5jbHVkZSB0aGUgc3VmZml4Ljx1bmJpbmRfdXNlcm5hbWUEASB1c2VybmFtZaEBASxVc2VybmFtZTxUPgAVDFkBU3RhcnQgdGhlIHByb2Nlc3Mgb2YgcmVtb3ZpbmcgYSB1c2VybmFtZSBieSBwbGFjaW5nIGl0IGluIHRoZSB1bmJpbmRpbmcgdXNlcm5hbWVzIG1hcC4hAU9uY2UgdGhlIGdyYWNlIHBlcmlvZCBoYXMgcGFzc2VkLCB0aGUgdXNlcm5hbWUgY2FuIGJlIGRlbGV0ZWQgYnkgY2FsbGluZ8BbcmVtb3ZlX3VzZXJuYW1lXShjcmF0ZTo6Q2FsbDo6cmVtb3ZlX3VzZXJuYW1lKS48cmVtb3ZlX3VzZXJuYW1lBAEgdXNlcm5hbWWhAQEsVXNlcm5hbWU8VD4AFghhAVBlcm1hbmVudGx5IGRlbGV0ZSBhIHVzZXJuYW1lIHdoaWNoIGhhcyBiZWVuIHVuYmluZGluZyBmb3IgbG9uZ2VyIHRoYW4gdGhlIGdyYWNlIHBlcmlvZC5JAUNhbGxlciBpcyByZWZ1bmRlZCB0aGUgZmVlIGlmIHRoZSB1c2VybmFtZSBleHBpcmVkIGFuZCB0aGUgcmVtb3ZhbCB3YXMgc3VjY2Vzc2Z1bC40a2lsbF91c2VybmFtZQQBIHVzZXJuYW1loQEBLFVzZXJuYW1lPFQ+ABcIXQFDYWxsIHdpdGggW0ZvcmNlT3JpZ2luXShjcmF0ZTo6Q29uZmlnOjpGb3JjZU9yaWdpbikgcHJpdmlsZWdlcyB3aGljaCBkZWxldGVzIGEgdXNlcm5hbWWsYW5kIHNsYXNoZXMgYW55IGRlcG9zaXQgYXNzb2NpYXRlZCB3aXRoIGl0LgRwSWRlbnRpdHkgcGFsbGV0IGRlY2xhcmF0aW9uLvQMPHBhbGxldF9pZGVudGl0eRhsZWdhY3kwSWRlbnRpdHlJbmZvBChGaWVsZExpbWl0AAAkAShhZGRpdGlvbmFs+AGQQm91bmRlZFZlYzwoRGF0YSwgRGF0YSksIEZpZWxkTGltaXQ+AAEcZGlzcGxheQEBARBEYXRhAAEUbGVnYWwBAQEQRGF0YQABDHdlYgEBARBEYXRhAAEQcmlvdAEBARBEYXRhAAEUZW1haWwBAQEQRGF0YQABPHBncF9maW5nZXJwcmludIEBAUBPcHRpb248W3U4OyAyMF0+AAEUaW1hZ2UBAQEQRGF0YQABHHR3aXR0ZXIBAQEQRGF0YQAA+AxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAfwEUwAABAB9AQEYVmVjPFQ+AAD8AAAECAEBAQEAAQEMPHBhbGxldF9pZGVudGl0eRR0eXBlcxBEYXRhAAGYEE5vbmUAAAAQUmF3MAQABQEAAAEAEFJhdzEEAAkBAAACABBSYXcyBAANAQAAAwAQUmF3MwQAEQEAAAQAEFJhdzQEALgAAAUAEFJhdzUEABUBAAAGABBSYXc2BAAZAQAABwAQUmF3NwQAHQEAAAgAEFJhdzgEACEBAAAJABBSYXc5BAAlAQAACgAUUmF3MTAEACkBAAALABRSYXcxMQQALQEAAAwAFFJhdzEyBAAxAQAADQAUUmF3MTMEADUBAAAOABRSYXcxNAQAOQEAAA8AFFJhdzE1BAA9AQAAEAAUUmF3MTYEAEEBAAARABRSYXcxNwQARQEAABIAFFJhdzE4BABJAQAAEwAUUmF3MTkEAE0BAAAUABRSYXcyMAQAXAAAFQAUUmF3MjEEAFEBAAAWABRSYXcyMgQAVQEAABcAFFJhdzIzBABZAQAAGAAUUmF3MjQEAF0BAAAZABRSYXcyNQQAYQEAABoAFFJhdzI2BABlAQAAGwAUUmF3MjcEAGkBAAAcABRSYXcyOAQAbQEAAB0AFFJhdzI5BABxAQAAHgAUUmF3MzAEAHUBAAAfABRSYXczMQQAeQEAACAAFFJhdzMyBAAEAAAhACxCbGFrZVR3bzI1NgQABAAAIgAYU2hhMjU2BAAEAAAjACRLZWNjYWsyNTYEAAQAACQALFNoYVRocmVlMjU2BAAEAAAlAAAFAQAAAwAAAAAIAAkBAAADAQAAAAgADQEAAAMCAAAACAARAQAAAwMAAAAIABUBAAADBQAAAAgAGQEAAAMGAAAACAAdAQAAAwcAAAAIACEBAAADCAAAAAgAJQEAAAMJAAAACAApAQAAAwoAAAAIAC0BAAADCwAAAAgAMQEAAAMMAAAACAA1AQAAAw0AAAAIADkBAAADDgAAAAgAPQEAAAMPAAAACABBAQAAAxAAAAAIAEUBAAADEQAAAAgASQEAAAMSAAAACABNAQAAAxMAAAAIAFEBAAADFQAAAAgAVQEAAAMWAAAACABZAQAAAxcAAAAIAF0BAAADGAAAAAgAYQEAAAMZAAAACABlAQAAAxoAAAAIAGkBAAADGwAAAAgAbQEAAAMcAAAACABxAQAAAx0AAAAIAHUBAAADHgAAAAgAeQEAAAMfAAAACAB9AQAAAvwAgQEEGE9wdGlvbgQEVAFcAQgQTm9uZQAAABBTb21lBABcAAABAACFAQAAAokBAIkBAAAECAABAQCNAQw8cGFsbGV0X2lkZW50aXR5FHR5cGVzJEp1ZGdlbWVudAQcQmFsYW5jZQFAARwcVW5rbm93bgAAABxGZWVQYWlkBABAARxCYWxhbmNlAAEAKFJlYXNvbmFibGUAAgAkS25vd25Hb29kAAMAJE91dE9mRGF0ZQAEAChMb3dRdWFsaXR5AAUAJEVycm9uZW91cwAGAACRAQQYT3B0aW9uBARUAZUBAQgQTm9uZQAAABBTb21lBACVAQAAAQAAlQEIKHNwX3J1bnRpbWU4TXVsdGlTaWduYXR1cmUAAQwcRWQyNTUxOQQAmQEBSGVkMjU1MTk6OlNpZ25hdHVyZQAAABxTcjI1NTE5BACZAQFIc3IyNTUxOTo6U2lnbmF0dXJlAAEAFEVjZHNhBACdAQFAZWNkc2E6OlNpZ25hdHVyZQACAACZAQAAA0AAAAAIAJ0BAAADQQAAAAgAoQEMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AAClAQxAcGFsbGV0X2RlbW9jcmFjeRhwYWxsZXQQQ2FsbAQEVAABUBxwcm9wb3NlCAEgcHJvcG9zYWypAQFAQm91bmRlZENhbGxPZjxUPgABFHZhbHVlPAEwQmFsYW5jZU9mPFQ+AAAknFByb3Bvc2UgYSBzZW5zaXRpdmUgYWN0aW9uIHRvIGJlIHRha2VuLgAVAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdIBoYXZlIGZ1bmRzIHRvIGNvdmVyIHRoZSBkZXBvc2l0LgDULSBgcHJvcG9zYWxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBwcm9wb3NhbCBwcmVpbWFnZS4VAS0gYHZhbHVlYDogVGhlIGFtb3VudCBvZiBkZXBvc2l0IChtdXN0IGJlIGF0IGxlYXN0IGBNaW5pbXVtRGVwb3NpdGApLgBERW1pdHMgYFByb3Bvc2VkYC4Yc2Vjb25kBAEgcHJvcG9zYWxsASRQcm9wSW5kZXgAARi0U2lnbmFscyBhZ3JlZW1lbnQgd2l0aCBhIHBhcnRpY3VsYXIgcHJvcG9zYWwuAAEBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlchEBbXVzdCBoYXZlIGZ1bmRzIHRvIGNvdmVyIHRoZSBkZXBvc2l0LCBlcXVhbCB0byB0aGUgb3JpZ2luYWwgZGVwb3NpdC4AyC0gYHByb3Bvc2FsYDogVGhlIGluZGV4IG9mIHRoZSBwcm9wb3NhbCB0byBzZWNvbmQuEHZvdGUIASRyZWZfaW5kZXhsATxSZWZlcmVuZHVtSW5kZXgAARB2b3RltQEBZEFjY291bnRWb3RlPEJhbGFuY2VPZjxUPj4AAhwxAVZvdGUgaW4gYSByZWZlcmVuZHVtLiBJZiBgdm90ZS5pc19heWUoKWAsIHRoZSB2b3RlIGlzIHRvIGVuYWN0IHRoZSBwcm9wb3NhbDu4b3RoZXJ3aXNlIGl0IGlzIGEgdm90ZSB0byBrZWVwIHRoZSBzdGF0dXMgcXVvLgDIVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4A3C0gYHJlZl9pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVmZXJlbmR1bSB0byB2b3RlIGZvci6ELSBgdm90ZWA6IFRoZSB2b3RlIGNvbmZpZ3VyYXRpb24uQGVtZXJnZW5jeV9jYW5jZWwEASRyZWZfaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgAAyBNAVNjaGVkdWxlIGFuIGVtZXJnZW5jeSBjYW5jZWxsYXRpb24gb2YgYSByZWZlcmVuZHVtLiBDYW5ub3QgaGFwcGVuIHR3aWNlIHRvIHRoZSBzYW1lLHJlZmVyZW5kdW0uAPhUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBDYW5jZWxsYXRpb25PcmlnaW5gLgDQLWByZWZfaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlZmVyZW5kdW0gdG8gY2FuY2VsLgA8V2VpZ2h0OiBgTygxKWAuQGV4dGVybmFsX3Byb3Bvc2UEASBwcm9wb3NhbKkBAUBCb3VuZGVkQ2FsbE9mPFQ+AAQYLQFTY2hlZHVsZSBhIHJlZmVyZW5kdW0gdG8gYmUgdGFibGVkIG9uY2UgaXQgaXMgbGVnYWwgdG8gc2NoZWR1bGUgYW4gZXh0ZXJuYWwscmVmZXJlbmR1bS4A6FRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgYEV4dGVybmFsT3JpZ2luYC4A1C0gYHByb3Bvc2FsX2hhc2hgOiBUaGUgcHJlaW1hZ2UgaGFzaCBvZiB0aGUgcHJvcG9zYWwuZGV4dGVybmFsX3Byb3Bvc2VfbWFqb3JpdHkEASBwcm9wb3NhbKkBAUBCb3VuZGVkQ2FsbE9mPFQ+AAUsVQFTY2hlZHVsZSBhIG1ham9yaXR5LWNhcnJpZXMgcmVmZXJlbmR1bSB0byBiZSB0YWJsZWQgbmV4dCBvbmNlIGl0IGlzIGxlZ2FsIHRvIHNjaGVkdWxlXGFuIGV4dGVybmFsIHJlZmVyZW5kdW0uAOxUaGUgZGlzcGF0Y2ggb2YgdGhpcyBjYWxsIG11c3QgYmUgYEV4dGVybmFsTWFqb3JpdHlPcmlnaW5gLgDULSBgcHJvcG9zYWxfaGFzaGA6IFRoZSBwcmVpbWFnZSBoYXNoIG9mIHRoZSBwcm9wb3NhbC4ASQFVbmxpa2UgYGV4dGVybmFsX3Byb3Bvc2VgLCBibGFja2xpc3RpbmcgaGFzIG5vIGVmZmVjdCBvbiB0aGlzIGFuZCBpdCBtYXkgcmVwbGFjZSBhmHByZS1zY2hlZHVsZWQgYGV4dGVybmFsX3Byb3Bvc2VgIGNhbGwuADhXZWlnaHQ6IGBPKDEpYGBleHRlcm5hbF9wcm9wb3NlX2RlZmF1bHQEASBwcm9wb3NhbKkBAUBCb3VuZGVkQ2FsbE9mPFQ+AAYsRQFTY2hlZHVsZSBhIG5lZ2F0aXZlLXR1cm5vdXQtYmlhcyByZWZlcmVuZHVtIHRvIGJlIHRhYmxlZCBuZXh0IG9uY2UgaXQgaXMgbGVnYWwgdG+Ac2NoZWR1bGUgYW4gZXh0ZXJuYWwgcmVmZXJlbmR1bS4A6FRoZSBkaXNwYXRjaCBvZiB0aGlzIGNhbGwgbXVzdCBiZSBgRXh0ZXJuYWxEZWZhdWx0T3JpZ2luYC4A1C0gYHByb3Bvc2FsX2hhc2hgOiBUaGUgcHJlaW1hZ2UgaGFzaCBvZiB0aGUgcHJvcG9zYWwuAEkBVW5saWtlIGBleHRlcm5hbF9wcm9wb3NlYCwgYmxhY2tsaXN0aW5nIGhhcyBubyBlZmZlY3Qgb24gdGhpcyBhbmQgaXQgbWF5IHJlcGxhY2UgYZhwcmUtc2NoZWR1bGVkIGBleHRlcm5hbF9wcm9wb3NlYCBjYWxsLgA4V2VpZ2h0OiBgTygxKWAoZmFzdF90cmFjawwBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAE0dm90aW5nX3BlcmlvZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAEUZGVsYXkoAURCbG9ja051bWJlckZvcjxUPgAHQE0BU2NoZWR1bGUgdGhlIGN1cnJlbnRseSBleHRlcm5hbGx5LXByb3Bvc2VkIG1ham9yaXR5LWNhcnJpZXMgcmVmZXJlbmR1bSB0byBiZSB0YWJsZWRhAWltbWVkaWF0ZWx5LiBJZiB0aGVyZSBpcyBubyBleHRlcm5hbGx5LXByb3Bvc2VkIHJlZmVyZW5kdW0gY3VycmVudGx5LCBvciBpZiB0aGVyZSBpcyBvbmXoYnV0IGl0IGlzIG5vdCBhIG1ham9yaXR5LWNhcnJpZXMgcmVmZXJlbmR1bSB0aGVuIGl0IGZhaWxzLgDQVGhlIGRpc3BhdGNoIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBGYXN0VHJhY2tPcmlnaW5gLgD0LSBgcHJvcG9zYWxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjdXJyZW50IGV4dGVybmFsIHByb3Bvc2FsLl0BLSBgdm90aW5nX3BlcmlvZGA6IFRoZSBwZXJpb2QgdGhhdCBpcyBhbGxvd2VkIGZvciB2b3Rpbmcgb24gdGhpcyBwcm9wb3NhbC4gSW5jcmVhc2VkIHRviAlNdXN0IGJlIGFsd2F5cyBncmVhdGVyIHRoYW4gemVyby41AQlGb3IgYEZhc3RUcmFja09yaWdpbmAgbXVzdCBiZSBlcXVhbCBvciBncmVhdGVyIHRoYW4gYEZhc3RUcmFja1ZvdGluZ1BlcmlvZGAuUQEtIGBkZWxheWA6IFRoZSBudW1iZXIgb2YgYmxvY2sgYWZ0ZXIgdm90aW5nIGhhcyBlbmRlZCBpbiBhcHByb3ZhbCBhbmQgdGhpcyBzaG91bGQgYmW4ICBlbmFjdGVkLiBUaGlzIGRvZXNuJ3QgaGF2ZSBhIG1pbmltdW0gYW1vdW50LgBARW1pdHMgYFN0YXJ0ZWRgLgA4V2VpZ2h0OiBgTygxKWA0dmV0b19leHRlcm5hbAQBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAgkuFZldG8gYW5kIGJsYWNrbGlzdCB0aGUgZXh0ZXJuYWwgcHJvcG9zYWwgaGFzaC4A2FRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgYFZldG9PcmlnaW5gLgAtAS0gYHByb3Bvc2FsX2hhc2hgOiBUaGUgcHJlaW1hZ2UgaGFzaCBvZiB0aGUgcHJvcG9zYWwgdG8gdmV0byBhbmQgYmxhY2tsaXN0LgA8RW1pdHMgYFZldG9lZGAuAPxXZWlnaHQ6IGBPKFYgKyBsb2coVikpYCB3aGVyZSBWIGlzIG51bWJlciBvZiBgZXhpc3RpbmcgdmV0b2Vyc2BEY2FuY2VsX3JlZmVyZW5kdW0EASRyZWZfaW5kZXhsATxSZWZlcmVuZHVtSW5kZXgACRxQUmVtb3ZlIGEgcmVmZXJlbmR1bS4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgDULSBgcmVmX2luZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWZlcmVuZHVtIHRvIGNhbmNlbC4ARCMgV2VpZ2h0OiBgTygxKWAuIGRlbGVnYXRlDAEIdG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKGNvbnZpY3Rpb269AQEoQ29udmljdGlvbgABHGJhbGFuY2VAATBCYWxhbmNlT2Y8VD4AClA5AURlbGVnYXRlIHRoZSB2b3RpbmcgcG93ZXIgKHdpdGggc29tZSBnaXZlbiBjb252aWN0aW9uKSBvZiB0aGUgc2VuZGluZyBhY2NvdW50LgBVAVRoZSBiYWxhbmNlIGRlbGVnYXRlZCBpcyBsb2NrZWQgZm9yIGFzIGxvbmcgYXMgaXQncyBkZWxlZ2F0ZWQsIGFuZCB0aGVyZWFmdGVyIGZvciB0aGXIdGltZSBhcHByb3ByaWF0ZSBmb3IgdGhlIGNvbnZpY3Rpb24ncyBsb2NrIHBlcmlvZC4AXQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLCBhbmQgdGhlIHNpZ25pbmcgYWNjb3VudCBtdXN0IGVpdGhlcjp0ICAtIGJlIGRlbGVnYXRpbmcgYWxyZWFkeTsgb3JZASAgLSBoYXZlIG5vIHZvdGluZyBhY3Rpdml0eSAoaWYgdGhlcmUgaXMsIHRoZW4gaXQgd2lsbCBuZWVkIHRvIGJlIHJlbW92ZWQvY29uc29saWRhdGVklCAgICB0aHJvdWdoIGByZWFwX3ZvdGVgIG9yIGB1bnZvdGVgKS4ARQEtIGB0b2A6IFRoZSBhY2NvdW50IHdob3NlIHZvdGluZyB0aGUgYHRhcmdldGAgYWNjb3VudCdzIHZvdGluZyBwb3dlciB3aWxsIGZvbGxvdy5VAS0gYGNvbnZpY3Rpb25gOiBUaGUgY29udmljdGlvbiB0aGF0IHdpbGwgYmUgYXR0YWNoZWQgdG8gdGhlIGRlbGVnYXRlZCB2b3Rlcy4gV2hlbiB0aGVBASAgYWNjb3VudCBpcyB1bmRlbGVnYXRlZCwgdGhlIGZ1bmRzIHdpbGwgYmUgbG9ja2VkIGZvciB0aGUgY29ycmVzcG9uZGluZyBwZXJpb2QuYQEtIGBiYWxhbmNlYDogVGhlIGFtb3VudCBvZiB0aGUgYWNjb3VudCdzIGJhbGFuY2UgdG8gYmUgdXNlZCBpbiBkZWxlZ2F0aW5nLiBUaGlzIG11c3Qgbm90tCAgYmUgbW9yZSB0aGFuIHRoZSBhY2NvdW50J3MgY3VycmVudCBiYWxhbmNlLgBIRW1pdHMgYERlbGVnYXRlZGAuAD0BV2VpZ2h0OiBgTyhSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHJlZmVyZW5kdW1zIHRoZSB2b3RlciBkZWxlZ2F0aW5nIHRvIGhhc8ggIHZvdGVkIG9uLiBXZWlnaHQgaXMgY2hhcmdlZCBhcyBpZiBtYXhpbXVtIHZvdGVzLih1bmRlbGVnYXRlAAswzFVuZGVsZWdhdGUgdGhlIHZvdGluZyBwb3dlciBvZiB0aGUgc2VuZGluZyBhY2NvdW50LgBdAVRva2VucyBtYXkgYmUgdW5sb2NrZWQgZm9sbG93aW5nIG9uY2UgYW4gYW1vdW50IG9mIHRpbWUgY29uc2lzdGVudCB3aXRoIHRoZSBsb2NrIHBlcmlvZNxvZiB0aGUgY29udmljdGlvbiB3aXRoIHdoaWNoIHRoZSBkZWxlZ2F0aW9uIHdhcyBpc3N1ZWQuAEUBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNpZ25pbmcgYWNjb3VudCBtdXN0IGJlVGN1cnJlbnRseSBkZWxlZ2F0aW5nLgBQRW1pdHMgYFVuZGVsZWdhdGVkYC4APQFXZWlnaHQ6IGBPKFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcmVmZXJlbmR1bXMgdGhlIHZvdGVyIGRlbGVnYXRpbmcgdG8gaGFzyCAgdm90ZWQgb24uIFdlaWdodCBpcyBjaGFyZ2VkIGFzIGlmIG1heGltdW0gdm90ZXMuWGNsZWFyX3B1YmxpY19wcm9wb3NhbHMADBRwQ2xlYXJzIGFsbCBwdWJsaWMgcHJvcG9zYWxzLgDAVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uADxXZWlnaHQ6IGBPKDEpYC4YdW5sb2NrBAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4ADRygVW5sb2NrIHRva2VucyB0aGF0IGhhdmUgYW4gZXhwaXJlZCBsb2NrLgDIVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AuC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSB0aGUgbG9jayBvbi4AvFdlaWdodDogYE8oUilgIHdpdGggUiBudW1iZXIgb2Ygdm90ZSBvZiB0YXJnZXQuLHJlbW92ZV92b3RlBAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgADmx8UmVtb3ZlIGEgdm90ZSBmb3IgYSByZWZlcmVuZHVtLgAMSWY6iC0gdGhlIHJlZmVyZW5kdW0gd2FzIGNhbmNlbGxlZCwgb3J8LSB0aGUgcmVmZXJlbmR1bSBpcyBvbmdvaW5nLCBvcpAtIHRoZSByZWZlcmVuZHVtIGhhcyBlbmRlZCBzdWNoIHRoYXT8ICAtIHRoZSB2b3RlIG9mIHRoZSBhY2NvdW50IHdhcyBpbiBvcHBvc2l0aW9uIHRvIHRoZSByZXN1bHQ7IG9y1CAgLSB0aGVyZSB3YXMgbm8gY29udmljdGlvbiB0byB0aGUgYWNjb3VudCdzIHZvdGU7IG9yhCAgLSB0aGUgYWNjb3VudCBtYWRlIGEgc3BsaXQgdm90ZV0BLi4udGhlbiB0aGUgdm90ZSBpcyByZW1vdmVkIGNsZWFubHkgYW5kIGEgZm9sbG93aW5nIGNhbGwgdG8gYHVubG9ja2AgbWF5IHJlc3VsdCBpbiBtb3JlWGZ1bmRzIGJlaW5nIGF2YWlsYWJsZS4AqElmLCBob3dldmVyLCB0aGUgcmVmZXJlbmR1bSBoYXMgZW5kZWQgYW5kOuwtIGl0IGZpbmlzaGVkIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHZvdGUgb2YgdGhlIGFjY291bnQsIGFuZNwtIHRoZSBhY2NvdW50IG1hZGUgYSBzdGFuZGFyZCB2b3RlIHdpdGggY29udmljdGlvbiwgYW5kvC0gdGhlIGxvY2sgcGVyaW9kIG9mIHRoZSBjb252aWN0aW9uIGlzIG5vdCBvdmVyWQEuLi50aGVuIHRoZSBsb2NrIHdpbGwgYmUgYWdncmVnYXRlZCBpbnRvIHRoZSBvdmVyYWxsIGFjY291bnQncyBsb2NrLCB3aGljaCBtYXkgaW52b2x2ZVkBKm92ZXJsb2NraW5nKiAod2hlcmUgdGhlIHR3byBsb2NrcyBhcmUgY29tYmluZWQgaW50byBhIHNpbmdsZSBsb2NrIHRoYXQgaXMgdGhlIG1heGltdW3kb2YgYm90aCB0aGUgYW1vdW50IGxvY2tlZCBhbmQgdGhlIHRpbWUgaXMgaXQgbG9ja2VkIGZvcikuAEkBVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXywgYW5kIHRoZSBzaWduZXIgbXVzdCBoYXZlIGEgdm90ZYhyZWdpc3RlcmVkIGZvciByZWZlcmVuZHVtIGBpbmRleGAuAPQtIGBpbmRleGA6IFRoZSBpbmRleCBvZiByZWZlcmVuZHVtIG9mIHRoZSB2b3RlIHRvIGJlIHJlbW92ZWQuAFUBV2VpZ2h0OiBgTyhSICsgbG9nIFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcmVmZXJlbmRhIHRoYXQgYHRhcmdldGAgaGFzIHZvdGVkIG9uLtggIFdlaWdodCBpcyBjYWxjdWxhdGVkIGZvciB0aGUgbWF4aW11bSBudW1iZXIgb2Ygdm90ZS5EcmVtb3ZlX290aGVyX3ZvdGUIARh0YXJnZXQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4AA88fFJlbW92ZSBhIHZvdGUgZm9yIGEgcmVmZXJlbmR1bS4ATQFJZiB0aGUgYHRhcmdldGAgaXMgZXF1YWwgdG8gdGhlIHNpZ25lciwgdGhlbiB0aGlzIGZ1bmN0aW9uIGlzIGV4YWN0bHkgZXF1aXZhbGVudCB0by0BYHJlbW92ZV92b3RlYC4gSWYgbm90IGVxdWFsIHRvIHRoZSBzaWduZXIsIHRoZW4gdGhlIHZvdGUgbXVzdCBoYXZlIGV4cGlyZWQsVQFlaXRoZXIgYmVjYXVzZSB0aGUgcmVmZXJlbmR1bSB3YXMgY2FuY2VsbGVkLCBiZWNhdXNlIHRoZSB2b3RlciBsb3N0IHRoZSByZWZlcmVuZHVtIG9ymGJlY2F1c2UgdGhlIGNvbnZpY3Rpb24gcGVyaW9kIGlzIG92ZXIuAMhUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgBNAS0gYHRhcmdldGA6IFRoZSBhY2NvdW50IG9mIHRoZSB2b3RlIHRvIGJlIHJlbW92ZWQ7IHRoaXMgYWNjb3VudCBtdXN0IGhhdmUgdm90ZWQgZm9yVCAgcmVmZXJlbmR1bSBgaW5kZXhgLvQtIGBpbmRleGA6IFRoZSBpbmRleCBvZiByZWZlcmVuZHVtIG9mIHRoZSB2b3RlIHRvIGJlIHJlbW92ZWQuAFUBV2VpZ2h0OiBgTyhSICsgbG9nIFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcmVmZXJlbmRhIHRoYXQgYHRhcmdldGAgaGFzIHZvdGVkIG9uLtggIFdlaWdodCBpcyBjYWxjdWxhdGVkIGZvciB0aGUgbWF4aW11bSBudW1iZXIgb2Ygdm90ZS4kYmxhY2tsaXN0CAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAATxtYXliZV9yZWZfaW5kZXh0AVxPcHRpb248UmVmZXJlbmR1bUluZGV4PgAQPEUBUGVybWFuZW50bHkgcGxhY2UgYSBwcm9wb3NhbCBpbnRvIHRoZSBibGFja2xpc3QuIFRoaXMgcHJldmVudHMgaXQgZnJvbSBldmVyIGJlaW5nPHByb3Bvc2VkIGFnYWluLgBRAUlmIGNhbGxlZCBvbiBhIHF1ZXVlZCBwdWJsaWMgb3IgZXh0ZXJuYWwgcHJvcG9zYWwsIHRoZW4gdGhpcyB3aWxsIHJlc3VsdCBpbiBpdCBiZWluZ1EBcmVtb3ZlZC4gSWYgdGhlIGByZWZfaW5kZXhgIHN1cHBsaWVkIGlzIGFuIGFjdGl2ZSByZWZlcmVuZHVtIHdpdGggdGhlIHByb3Bvc2FsIGhhc2gsaHRoZW4gaXQgd2lsbCBiZSBjYW5jZWxsZWQuAOxUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBCbGFja2xpc3RPcmlnaW5gLgD4LSBgcHJvcG9zYWxfaGFzaGA6IFRoZSBwcm9wb3NhbCBoYXNoIHRvIGJsYWNrbGlzdCBwZXJtYW5lbnRseS5FAS0gYHJlZl9pbmRleGA6IEFuIG9uZ29pbmcgcmVmZXJlbmR1bSB3aG9zZSBoYXNoIGlzIGBwcm9wb3NhbF9oYXNoYCwgd2hpY2ggd2lsbCBiZShjYW5jZWxsZWQuAEEBV2VpZ2h0OiBgTyhwKWAgKHRob3VnaCBhcyB0aGlzIGlzIGFuIGhpZ2gtcHJpdmlsZWdlIGRpc3BhdGNoLCB3ZSBhc3N1bWUgaXQgaGFzIGFQICByZWFzb25hYmxlIHZhbHVlKS48Y2FuY2VsX3Byb3Bvc2FsBAEocHJvcF9pbmRleGwBJFByb3BJbmRleAARHEhSZW1vdmUgYSBwcm9wb3NhbC4AAQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIGBDYW5jZWxQcm9wb3NhbE9yaWdpbmAuANAtIGBwcm9wX2luZGV4YDogVGhlIGluZGV4IG9mIHRoZSBwcm9wb3NhbCB0byBjYW5jZWwuAORXZWlnaHQ6IGBPKHApYCB3aGVyZSBgcCA9IFB1YmxpY1Byb3BzOjo8VD46OmRlY29kZV9sZW4oKWAwc2V0X21ldGFkYXRhCAEUb3duZXLBAQE0TWV0YWRhdGFPd25lcgABKG1heWJlX2hhc2jFAQE8T3B0aW9uPFQ6Okhhc2g+ABI82FNldCBvciBjbGVhciBhIG1ldGFkYXRhIG9mIGEgcHJvcG9zYWwgb3IgYSByZWZlcmVuZHVtLgAsUGFyYW1ldGVyczrMLSBgb3JpZ2luYDogTXVzdCBjb3JyZXNwb25kIHRvIHRoZSBgTWV0YWRhdGFPd25lcmAuPQEgICAgLSBgRXh0ZXJuYWxPcmlnaW5gIGZvciBhbiBleHRlcm5hbCBwcm9wb3NhbCB3aXRoIHRoZSBgU3VwZXJNYWpvcml0eUFwcHJvdmVgQCAgICAgIHRocmVzaG9sZC5ZASAgICAtIGBFeHRlcm5hbERlZmF1bHRPcmlnaW5gIGZvciBhbiBleHRlcm5hbCBwcm9wb3NhbCB3aXRoIHRoZSBgU3VwZXJNYWpvcml0eUFnYWluc3RgQCAgICAgIHRocmVzaG9sZC5FASAgICAtIGBFeHRlcm5hbE1ham9yaXR5T3JpZ2luYCBmb3IgYW4gZXh0ZXJuYWwgcHJvcG9zYWwgd2l0aCB0aGUgYFNpbXBsZU1ham9yaXR5YEAgICAgICB0aHJlc2hvbGQuyCAgICAtIGBTaWduZWRgIGJ5IGEgY3JlYXRvciBmb3IgYSBwdWJsaWMgcHJvcG9zYWwu9CAgICAtIGBTaWduZWRgIHRvIGNsZWFyIGEgbWV0YWRhdGEgZm9yIGEgZmluaXNoZWQgcmVmZXJlbmR1bS7kICAgIC0gYFJvb3RgIHRvIHNldCBhIG1ldGFkYXRhIGZvciBhbiBvbmdvaW5nIHJlZmVyZW5kdW0utC0gYG93bmVyYDogYW4gaWRlbnRpZmllciBvZiBhIG1ldGFkYXRhIG93bmVyLlEBLSBgbWF5YmVfaGFzaGA6IFRoZSBoYXNoIG9mIGFuIG9uLWNoYWluIHN0b3JlZCBwcmVpbWFnZS4gYE5vbmVgIHRvIGNsZWFyIGEgbWV0YWRhdGEuRGZvcmNlX3JlbW92ZV92b3RlCAEYdGFyZ2V0AAFsY3JhdGU6OkFjY291bnRJZExvb2t1cE9mPFQ+AAEUaW5kZXgoAXRjcmF0ZTo6dHlwZXM6OlJlZmVyZW5kdW1JbmRleAATPLhBbGxvdyB0byBmb3JjZSByZW1vdmUgYSB2b3RlIGZvciBhIHJlZmVyZW5kdW0uACkBU2FtZSBhcyBgcmVtb3ZlX290aGVyX3ZvdGVgLCBleGNlcHQgdGhlIHNjb3BlIGlzIG92ZXJyaWRlbiBieSBmb3JjZWQgZmxhZy70VGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBgVm90ZVJlbW92YWxPcmlnaW5gLgCsT25seSBhbGxvd2VkIGlmIHRoZSByZWZlcmVuZHVtIGlzIGZpbmlzaGVkLgDIVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ATQEtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCBvZiB0aGUgdm90ZSB0byBiZSByZW1vdmVkOyB0aGlzIGFjY291bnQgbXVzdCBoYXZlIHZvdGVkIGZvclQgIHJlZmVyZW5kdW0gYGluZGV4YC70LSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgcmVmZXJlbmR1bSBvZiB0aGUgdm90ZSB0byBiZSByZW1vdmVkLgBVAVdlaWdodDogYE8oUiArIGxvZyBSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHJlZmVyZW5kYSB0aGF0IGB0YXJnZXRgIGhhcyB2b3RlZCBvbi7YICBXZWlnaHQgaXMgY2FsY3VsYXRlZCBmb3IgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZvdGUuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLqkBEDRmcmFtZV9zdXBwb3J0GHRyYWl0cyRwcmVpbWFnZXMcQm91bmRlZAgEVAEMBEgBrQEBDBhMZWdhY3kEARBoYXNoLAEkSDo6T3V0cHV0AAAAGElubGluZQQAsQEBNEJvdW5kZWRJbmxpbmUAAQAYTG9va3VwCAEQaGFzaCwBJEg6Ok91dHB1dAABDGxlbigBDHUzMgACAACtAQwoc3BfcnVudGltZRh0cmFpdHMsQmxha2VUd28yNTYAAAAAsQEMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AAC1AQxAcGFsbGV0X2RlbW9jcmFjeRB2b3RlLEFjY291bnRWb3RlBBxCYWxhbmNlAUABCCBTdGFuZGFyZAgBEHZvdGW5AQEQVm90ZQABHGJhbGFuY2VAARxCYWxhbmNlAAAAFFNwbGl0CAEMYXllQAEcQmFsYW5jZQABDG5heUABHEJhbGFuY2UAAQAAuQEMQHBhbGxldF9kZW1vY3JhY3kQdm90ZRBWb3RlAAAEAAgAAAC9AQxAcGFsbGV0X2RlbW9jcmFjeShjb252aWN0aW9uKENvbnZpY3Rpb24AARwQTm9uZQAAACBMb2NrZWQxeAABACBMb2NrZWQyeAACACBMb2NrZWQzeAADACBMb2NrZWQ0eAAEACBMb2NrZWQ1eAAFACBMb2NrZWQ2eAAGAADBAQxAcGFsbGV0X2RlbW9jcmFjeRR0eXBlczRNZXRhZGF0YU93bmVyAAEMIEV4dGVybmFsAAAAIFByb3Bvc2FsBAAoASRQcm9wSW5kZXgAAQAoUmVmZXJlbmR1bQQAKAE8UmVmZXJlbmR1bUluZGV4AAIAAMUBBBhPcHRpb24EBFQBLAEIEE5vbmUAAAAQU29tZQQALAAAAQAAyQEMRHBhbGxldF9jb2xsZWN0aXZlGHBhbGxldBBDYWxsCARUAARJAAEgLHNldF9tZW1iZXJzDAEsbmV3X21lbWJlcnNIAURWZWM8VDo6QWNjb3VudElkPgABFHByaW1lzQEBUE9wdGlvbjxUOjpBY2NvdW50SWQ+AAEkb2xkX2NvdW50KAEsTWVtYmVyQ291bnQAAGCAU2V0IHRoZSBjb2xsZWN0aXZlJ3MgbWVtYmVyc2hpcC4ARQEtIGBuZXdfbWVtYmVyc2A6IFRoZSBuZXcgbWVtYmVyIGxpc3QuIEJlIG5pY2UgdG8gdGhlIGNoYWluIGFuZCBwcm92aWRlIGl0IHNvcnRlZC7gLSBgcHJpbWVgOiBUaGUgcHJpbWUgbWVtYmVyIHdob3NlIHZvdGUgc2V0cyB0aGUgZGVmYXVsdC5ZAS0gYG9sZF9jb3VudGA6IFRoZSB1cHBlciBib3VuZCBmb3IgdGhlIHByZXZpb3VzIG51bWJlciBvZiBtZW1iZXJzIGluIHN0b3JhZ2UuIFVzZWQgZm9yUCAgd2VpZ2h0IGVzdGltYXRpb24uANRUaGUgZGlzcGF0Y2ggb2YgdGhpcyBjYWxsIG11c3QgYmUgYFNldE1lbWJlcnNPcmlnaW5gLgBRAU5PVEU6IERvZXMgbm90IGVuZm9yY2UgdGhlIGV4cGVjdGVkIGBNYXhNZW1iZXJzYCBsaW1pdCBvbiB0aGUgYW1vdW50IG9mIG1lbWJlcnMsIGJ1dCEBICAgICAgdGhlIHdlaWdodCBlc3RpbWF0aW9ucyByZWx5IG9uIGl0IHRvIGVzdGltYXRlIGRpc3BhdGNoYWJsZSB3ZWlnaHQuACgjIFdBUk5JTkc6AFkBVGhlIGBwYWxsZXQtY29sbGVjdGl2ZWAgY2FuIGFsc28gYmUgbWFuYWdlZCBieSBsb2dpYyBvdXRzaWRlIG9mIHRoZSBwYWxsZXQgdGhyb3VnaCB0aGW4aW1wbGVtZW50YXRpb24gb2YgdGhlIHRyYWl0IFtgQ2hhbmdlTWVtYmVyc2BdLlUBQW55IGNhbGwgdG8gYHNldF9tZW1iZXJzYCBtdXN0IGJlIGNhcmVmdWwgdGhhdCB0aGUgbWVtYmVyIHNldCBkb2Vzbid0IGdldCBvdXQgb2Ygc3luY6R3aXRoIG90aGVyIGxvZ2ljIG1hbmFnaW5nIHRoZSBtZW1iZXIgc2V0LgA4IyMgQ29tcGxleGl0eTpQLSBgTyhNUCArIE4pYCB3aGVyZTrgICAtIGBNYCBvbGQtbWVtYmVycy1jb3VudCAoY29kZS0gYW5kIGdvdmVybmFuY2UtYm91bmRlZCngICAtIGBOYCBuZXctbWVtYmVycy1jb3VudCAoY29kZS0gYW5kIGdvdmVybmFuY2UtYm91bmRlZCmYICAtIGBQYCBwcm9wb3NhbHMtY291bnQgKGNvZGUtYm91bmRlZCkcZXhlY3V0ZQgBIHByb3Bvc2FsDAF8Qm94PDxUIGFzIENvbmZpZzxJPj46OlByb3Bvc2FsPgABMGxlbmd0aF9ib3VuZGwBDHUzMgABJPBEaXNwYXRjaCBhIHByb3Bvc2FsIGZyb20gYSBtZW1iZXIgdXNpbmcgdGhlIGBNZW1iZXJgIG9yaWdpbi4AqE9yaWdpbiBtdXN0IGJlIGEgbWVtYmVyIG9mIHRoZSBjb2xsZWN0aXZlLgA4IyMgQ29tcGxleGl0eTpcLSBgTyhCICsgTSArIFApYCB3aGVyZTrYLSBgQmAgaXMgYHByb3Bvc2FsYCBzaXplIGluIGJ5dGVzIChsZW5ndGgtZmVlLWJvdW5kZWQpiC0gYE1gIG1lbWJlcnMtY291bnQgKGNvZGUtYm91bmRlZCmoLSBgUGAgY29tcGxleGl0eSBvZiBkaXNwYXRjaGluZyBgcHJvcG9zYWxgHHByb3Bvc2UMASR0aHJlc2hvbGRsASxNZW1iZXJDb3VudAABIHByb3Bvc2FsDAF8Qm94PDxUIGFzIENvbmZpZzxJPj46OlByb3Bvc2FsPgABMGxlbmd0aF9ib3VuZGwBDHUzMgACOPhBZGQgYSBuZXcgcHJvcG9zYWwgdG8gZWl0aGVyIGJlIHZvdGVkIG9uIG9yIGV4ZWN1dGVkIGRpcmVjdGx5LgCEUmVxdWlyZXMgdGhlIHNlbmRlciB0byBiZSBtZW1iZXIuAEEBYHRocmVzaG9sZGAgZGV0ZXJtaW5lcyB3aGV0aGVyIGBwcm9wb3NhbGAgaXMgZXhlY3V0ZWQgZGlyZWN0bHkgKGB0aHJlc2hvbGQgPCAyYClUb3IgcHV0IHVwIGZvciB2b3RpbmcuADQjIyBDb21wbGV4aXR5rC0gYE8oQiArIE0gKyBQMSlgIG9yIGBPKEIgKyBNICsgUDIpYCB3aGVyZTrgICAtIGBCYCBpcyBgcHJvcG9zYWxgIHNpemUgaW4gYnl0ZXMgKGxlbmd0aC1mZWUtYm91bmRlZCncICAtIGBNYCBpcyBtZW1iZXJzLWNvdW50IChjb2RlLSBhbmQgZ292ZXJuYW5jZS1ib3VuZGVkKcQgIC0gYnJhbmNoaW5nIGlzIGluZmx1ZW5jZWQgYnkgYHRocmVzaG9sZGAgd2hlcmU69CAgICAtIGBQMWAgaXMgcHJvcG9zYWwgZXhlY3V0aW9uIGNvbXBsZXhpdHkgKGB0aHJlc2hvbGQgPCAyYCn8ICAgIC0gYFAyYCBpcyBwcm9wb3NhbHMtY291bnQgKGNvZGUtYm91bmRlZCkgKGB0aHJlc2hvbGQgPj0gMmApEHZvdGUMASBwcm9wb3NhbCwBHFQ6Okhhc2gAARRpbmRleGwBNFByb3Bvc2FsSW5kZXgAARxhcHByb3ZlRAEQYm9vbAADJPBBZGQgYW4gYXllIG9yIG5heSB2b3RlIGZvciB0aGUgc2VuZGVyIHRvIHRoZSBnaXZlbiBwcm9wb3NhbC4AjFJlcXVpcmVzIHRoZSBzZW5kZXIgdG8gYmUgYSBtZW1iZXIuAEkBVHJhbnNhY3Rpb24gZmVlcyB3aWxsIGJlIHdhaXZlZCBpZiB0aGUgbWVtYmVyIGlzIHZvdGluZyBvbiBhbnkgcGFydGljdWxhciBwcm9wb3NhbFEBZm9yIHRoZSBmaXJzdCB0aW1lIGFuZCB0aGUgY2FsbCBpcyBzdWNjZXNzZnVsLiBTdWJzZXF1ZW50IHZvdGUgY2hhbmdlcyB3aWxsIGNoYXJnZSBhEGZlZS40IyMgQ29tcGxleGl0eQkBLSBgTyhNKWAgd2hlcmUgYE1gIGlzIG1lbWJlcnMtY291bnQgKGNvZGUtIGFuZCBnb3Zlcm5hbmNlLWJvdW5kZWQpTGRpc2FwcHJvdmVfcHJvcG9zYWwEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAAFKFkBRGlzYXBwcm92ZSBhIHByb3Bvc2FsLCBjbG9zZSwgYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSBzeXN0ZW0sIHJlZ2FyZGxlc3Mgb2YgaXRzIGN1cnJlbnQYc3RhdGUuAIhNdXN0IGJlIGNhbGxlZCBieSB0aGUgUm9vdCBvcmlnaW4uACxQYXJhbWV0ZXJzOh0BKiBgcHJvcG9zYWxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBwcm9wb3NhbCB0aGF0IHNob3VsZCBiZSBkaXNhcHByb3ZlZC4ANCMjIENvbXBsZXhpdHmsTyhQKSB3aGVyZSBQIGlzIHRoZSBudW1iZXIgb2YgbWF4IHByb3Bvc2FscxRjbG9zZRABNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAEUaW5kZXhsATRQcm9wb3NhbEluZGV4AAFUcHJvcG9zYWxfd2VpZ2h0X2JvdW5k5AEYV2VpZ2h0AAEwbGVuZ3RoX2JvdW5kbAEMdTMyAAZgTQFDbG9zZSBhIHZvdGUgdGhhdCBpcyBlaXRoZXIgYXBwcm92ZWQsIGRpc2FwcHJvdmVkIG9yIHdob3NlIHZvdGluZyBwZXJpb2QgaGFzIGVuZGVkLgBVAU1heSBiZSBjYWxsZWQgYnkgYW55IHNpZ25lZCBhY2NvdW50IGluIG9yZGVyIHRvIGZpbmlzaCB2b3RpbmcgYW5kIGNsb3NlIHRoZSBwcm9wb3NhbC4ASQFJZiBjYWxsZWQgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIHZvdGluZyBwZXJpb2QgaXQgd2lsbCBvbmx5IGNsb3NlIHRoZSB2b3RlIGlmIGl0IGlzvGhhcyBlbm91Z2ggdm90ZXMgdG8gYmUgYXBwcm92ZWQgb3IgZGlzYXBwcm92ZWQuAEkBSWYgY2FsbGVkIGFmdGVyIHRoZSBlbmQgb2YgdGhlIHZvdGluZyBwZXJpb2QgYWJzdGVudGlvbnMgYXJlIGNvdW50ZWQgYXMgcmVqZWN0aW9ucyUBdW5sZXNzIHRoZXJlIGlzIGEgcHJpbWUgbWVtYmVyIHNldCBhbmQgdGhlIHByaW1lIG1lbWJlciBjYXN0IGFuIGFwcHJvdmFsLgBhAUlmIHRoZSBjbG9zZSBvcGVyYXRpb24gY29tcGxldGVzIHN1Y2Nlc3NmdWxseSB3aXRoIGRpc2FwcHJvdmFsLCB0aGUgdHJhbnNhY3Rpb24gZmVlIHdpbGxdAWJlIHdhaXZlZC4gT3RoZXJ3aXNlIGV4ZWN1dGlvbiBvZiB0aGUgYXBwcm92ZWQgb3BlcmF0aW9uIHdpbGwgYmUgY2hhcmdlZCB0byB0aGUgY2FsbGVyLgBhASsgYHByb3Bvc2FsX3dlaWdodF9ib3VuZGA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgY29uc3VtZWQgYnkgZXhlY3V0aW5nIHRoZSBjbG9zZWQkcHJvcG9zYWwuYQErIGBsZW5ndGhfYm91bmRgOiBUaGUgdXBwZXIgYm91bmQgZm9yIHRoZSBsZW5ndGggb2YgdGhlIHByb3Bvc2FsIGluIHN0b3JhZ2UuIENoZWNrZWQgdmlhNQFgc3RvcmFnZTo6cmVhZGAgc28gaXQgaXMgYHNpemVfb2Y6Ojx1MzI+KCkgPT0gNGAgbGFyZ2VyIHRoYW4gdGhlIHB1cmUgbGVuZ3RoLgA0IyMgQ29tcGxleGl0eXQtIGBPKEIgKyBNICsgUDEgKyBQMilgIHdoZXJlOuAgIC0gYEJgIGlzIGBwcm9wb3NhbGAgc2l6ZSBpbiBieXRlcyAobGVuZ3RoLWZlZS1ib3VuZGVkKdwgIC0gYE1gIGlzIG1lbWJlcnMtY291bnQgKGNvZGUtIGFuZCBnb3Zlcm5hbmNlLWJvdW5kZWQpyCAgLSBgUDFgIGlzIHRoZSBjb21wbGV4aXR5IG9mIGBwcm9wb3NhbGAgcHJlaW1hZ2UupCAgLSBgUDJgIGlzIHByb3Bvc2FsLWNvdW50IChjb2RlLWJvdW5kZWQpEGtpbGwEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAAHHCUBRGlzYXBwcm92ZSB0aGUgcHJvcG9zYWwgYW5kIGJ1cm4gdGhlIGNvc3QgaGVsZCBmb3Igc3RvcmluZyB0aGlzIHByb3Bvc2FsLgAsUGFyYW1ldGVyczqULSBgb3JpZ2luYDogbXVzdCBiZSB0aGUgYEtpbGxPcmlnaW5gLgkBLSBgcHJvcG9zYWxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBwcm9wb3NhbCB0aGF0IHNob3VsZCBiZSBraWxsZWQuAEkBRW1pdHMgYEtpbGxlZGAgYW5kIGBQcm9wb3NhbENvc3RCdXJuZWRgIGlmIGFueSBjb3N0IHdhcyBoZWxkIGZvciBhIGdpdmVuIHByb3Bvc2FsLlRyZWxlYXNlX3Byb3Bvc2FsX2Nvc3QEATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAAIJEkBUmVsZWFzZSB0aGUgY29zdCBoZWxkIGZvciBzdG9yaW5nIGEgcHJvcG9zYWwgb25jZSB0aGUgZ2l2ZW4gcHJvcG9zYWwgaXMgY29tcGxldGVkLgBVAUlmIHRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgY29zdCBmb3IgdGhlIGdpdmVuIHByb3Bvc2FsLCB0aGlzIGNhbGwgd2lsbCBoYXZlIG5vIGVmZmVjdC4ALFBhcmFtZXRlcnM6nC0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgb3IgYFJvb3RgLrAtIGBwcm9wb3NhbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIHByb3Bvc2FsLgANAUVtaXRzIGBQcm9wb3NhbENvc3RSZWxlYXNlZGAgaWYgYW55IGNvc3QgaGVsZCBmb3IgYSBnaXZlbiBwcm9wb3NhbC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuzQEEGE9wdGlvbgQEVAEAAQgQTm9uZQAAABBTb21lBAAAAAABAADRAQwwcGFsbGV0X3Byb3h5GHBhbGxldBBDYWxsBARUAAEsFHByb3h5DAEQcmVhbAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAFAZm9yY2VfcHJveHlfdHlwZdUBAVBPcHRpb248VDo6UHJveHlUeXBlPgABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAkTQFEaXNwYXRjaCB0aGUgZ2l2ZW4gYGNhbGxgIGZyb20gYW4gYWNjb3VudCB0aGF0IHRoZSBzZW5kZXIgaXMgYXV0aG9yaXNlZCBmb3IgdGhyb3VnaDBgYWRkX3Byb3h5YC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi5hAS0gYGZvcmNlX3Byb3h5X3R5cGVgOiBTcGVjaWZ5IHRoZSBleGFjdCBwcm94eSB0eXBlIHRvIGJlIHVzZWQgYW5kIGNoZWNrZWQgZm9yIHRoaXMgY2FsbC7QLSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LiRhZGRfcHJveHkMASBkZWxlZ2F0ZQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEocHJveHlfdHlwZdkBATBUOjpQcm94eVR5cGUAARRkZWxheSgBREJsb2NrTnVtYmVyRm9yPFQ+AAEkRQFSZWdpc3RlciBhIHByb3h5IGFjY291bnQgZm9yIHRoZSBzZW5kZXIgdGhhdCBpcyBhYmxlIHRvIG1ha2UgY2FsbHMgb24gaXRzIGJlaGFsZi4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoRAS0gYHByb3h5YDogVGhlIGFjY291bnQgdGhhdCB0aGUgYGNhbGxlcmAgd291bGQgbGlrZSB0byBtYWtlIGEgcHJveHku/C0gYHByb3h5X3R5cGVgOiBUaGUgcGVybWlzc2lvbnMgYWxsb3dlZCBmb3IgdGhpcyBwcm94eSBhY2NvdW50Lk0BLSBgZGVsYXlgOiBUaGUgYW5ub3VuY2VtZW50IHBlcmlvZCByZXF1aXJlZCBvZiB0aGUgaW5pdGlhbCBwcm94eS4gV2lsbCBnZW5lcmFsbHkgYmUUemVyby4wcmVtb3ZlX3Byb3h5DAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKHByb3h5X3R5cGXZAQEwVDo6UHJveHlUeXBlAAEUZGVsYXkoAURCbG9ja051bWJlckZvcjxUPgACHKhVbnJlZ2lzdGVyIGEgcHJveHkgYWNjb3VudCBmb3IgdGhlIHNlbmRlci4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczolAS0gYHByb3h5YDogVGhlIGFjY291bnQgdGhhdCB0aGUgYGNhbGxlcmAgd291bGQgbGlrZSB0byByZW1vdmUgYXMgYSBwcm94eS5BAS0gYHByb3h5X3R5cGVgOiBUaGUgcGVybWlzc2lvbnMgY3VycmVudGx5IGVuYWJsZWQgZm9yIHRoZSByZW1vdmVkIHByb3h5IGFjY291bnQuOHJlbW92ZV9wcm94aWVzAAMYtFVucmVnaXN0ZXIgYWxsIHByb3h5IGFjY291bnRzIGZvciB0aGUgc2VuZGVyLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAEEBV0FSTklORzogVGhpcyBtYXkgYmUgY2FsbGVkIG9uIGFjY291bnRzIGNyZWF0ZWQgYnkgYHB1cmVgLCBob3dldmVyIGlmIGRvbmUsIHRoZW5ZAXRoZSB1bnJlc2VydmVkIGZlZXMgd2lsbCBiZSBpbmFjY2Vzc2libGUuICoqQWxsIGFjY2VzcyB0byB0aGlzIGFjY291bnQgd2lsbCBiZSBsb3N0LioqLGNyZWF0ZV9wdXJlDAEocHJveHlfdHlwZdkBATBUOjpQcm94eVR5cGUAARRkZWxheSgBREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXiAAQx1MTYABEg5AVNwYXduIGEgZnJlc2ggbmV3IGFjY291bnQgdGhhdCBpcyBndWFyYW50ZWVkIHRvIGJlIG90aGVyd2lzZSBpbmFjY2Vzc2libGUsIGFuZPxpbml0aWFsaXplIGl0IHdpdGggYSBwcm94eSBvZiBgcHJveHlfdHlwZWAgZm9yIGBvcmlnaW5gIHNlbmRlci4AbFJlcXVpcmVzIGEgYFNpZ25lZGAgb3JpZ2luLgBRAS0gYHByb3h5X3R5cGVgOiBUaGUgdHlwZSBvZiB0aGUgcHJveHkgdGhhdCB0aGUgc2VuZGVyIHdpbGwgYmUgcmVnaXN0ZXJlZCBhcyBvdmVyIHRoZU0BbmV3IGFjY291bnQuIFRoaXMgd2lsbCBhbG1vc3QgYWx3YXlzIGJlIHRoZSBtb3N0IHBlcm1pc3NpdmUgYFByb3h5VHlwZWAgcG9zc2libGUgdG94YWxsb3cgZm9yIG1heGltdW0gZmxleGliaWxpdHkuUQEtIGBpbmRleGA6IEEgZGlzYW1iaWd1YXRpb24gaW5kZXgsIGluIGNhc2UgdGhpcyBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIHNhbWVdAXRyYW5zYWN0aW9uIChlLmcuIHdpdGggYHV0aWxpdHk6OmJhdGNoYCkuIFVubGVzcyB5b3UncmUgdXNpbmcgYGJhdGNoYCB5b3UgcHJvYmFibHkganVzdEB3YW50IHRvIHVzZSBgMGAuTQEtIGBkZWxheWA6IFRoZSBhbm5vdW5jZW1lbnQgcGVyaW9kIHJlcXVpcmVkIG9mIHRoZSBpbml0aWFsIHByb3h5LiBXaWxsIGdlbmVyYWxseSBiZRR6ZXJvLgBRAUZhaWxzIHdpdGggYER1cGxpY2F0ZWAgaWYgdGhpcyBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZCBpbiB0aGlzIHRyYW5zYWN0aW9uLCBmcm9tIHRoZZhzYW1lIHNlbmRlciwgd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXJzLgDkRmFpbHMgaWYgdGhlcmUgYXJlIGluc3VmZmljaWVudCBmdW5kcyB0byBwYXkgZm9yIGRlcG9zaXQuJGtpbGxfcHVyZRQBHHNwYXduZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABKHByb3h5X3R5cGXZAQEwVDo6UHJveHlUeXBlAAEUaW5kZXiAAQx1MTYAARhoZWlnaHRsAURCbG9ja051bWJlckZvcjxUPgABJGV4dF9pbmRleGwBDHUzMgAFQKBSZW1vdmVzIGEgcHJldmlvdXNseSBzcGF3bmVkIHB1cmUgcHJveHkuAEkBV0FSTklORzogKipBbGwgYWNjZXNzIHRvIHRoaXMgYWNjb3VudCB3aWxsIGJlIGxvc3QuKiogQW55IGZ1bmRzIGhlbGQgaW4gaXQgd2lsbCBiZTRpbmFjY2Vzc2libGUuAFkBUmVxdWlyZXMgYSBgU2lnbmVkYCBvcmlnaW4sIGFuZCB0aGUgc2VuZGVyIGFjY291bnQgbXVzdCBoYXZlIGJlZW4gY3JlYXRlZCBieSBhIGNhbGwgdG+UYHB1cmVgIHdpdGggY29ycmVzcG9uZGluZyBwYXJhbWV0ZXJzLgA5AS0gYHNwYXduZXJgOiBUaGUgYWNjb3VudCB0aGF0IG9yaWdpbmFsbHkgY2FsbGVkIGBwdXJlYCB0byBjcmVhdGUgdGhpcyBhY2NvdW50LlUBLSBgaW5kZXhgOiBUaGUgZGlzYW1iaWd1YXRpb24gaW5kZXggb3JpZ2luYWxseSBwYXNzZWQgdG8gYGNyZWF0ZV9wdXJlYC4gUHJvYmFibHkgYDBgLuwtIGBwcm94eV90eXBlYDogVGhlIHByb3h5IHR5cGUgb3JpZ2luYWxseSBwYXNzZWQgdG8gYHB1cmVgLikBLSBgaGVpZ2h0YDogVGhlIGhlaWdodCBvZiB0aGUgY2hhaW4gd2hlbiB0aGUgY2FsbCB0byBgcHVyZWAgd2FzIHByb2Nlc3NlZC41AS0gYGV4dF9pbmRleGA6IFRoZSBleHRyaW5zaWMgaW5kZXggaW4gd2hpY2ggdGhlIGNhbGwgdG8gYHB1cmVgIHdhcyBwcm9jZXNzZWQuADUBRmFpbHMgd2l0aCBgTm9QZXJtaXNzaW9uYCBpbiBjYXNlIHRoZSBjYWxsZXIgaXMgbm90IGEgcHJldmlvdXNseSBjcmVhdGVkIHB1cmXcYWNjb3VudCB3aG9zZSBgcHVyZWAgY2FsbCBoYXMgY29ycmVzcG9uZGluZyBwYXJhbWV0ZXJzLiBhbm5vdW5jZQgBEHJlYWwAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaCwBNENhbGxIYXNoT2Y8VD4ABjwFAVB1Ymxpc2ggdGhlIGhhc2ggb2YgYSBwcm94eS1jYWxsIHRoYXQgd2lsbCBiZSBtYWRlIGluIHRoZSBmdXR1cmUuAF0BVGhpcyBtdXN0IGJlIGNhbGxlZCBzb21lIG51bWJlciBvZiBibG9ja3MgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIGBwcm94eWAgaXMgYXR0ZW1wdGVkJQFpZiB0aGUgZGVsYXkgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm94eSByZWxhdGlvbnNoaXAgaXMgZ3JlYXRlciB0aGFuIHplcm8uABEBTm8gbW9yZSB0aGFuIGBNYXhQZW5kaW5nYCBhbm5vdW5jZW1lbnRzIG1heSBiZSBtYWRlIGF0IGFueSBvbmUgdGltZS4ACQFUaGlzIHdpbGwgdGFrZSBhIGRlcG9zaXQgb2YgYEFubm91bmNlbWVudERlcG9zaXRGYWN0b3JgIGFzIHdlbGwgYXMZAWBBbm5vdW5jZW1lbnREZXBvc2l0QmFzZWAgaWYgdGhlcmUgYXJlIG5vIG90aGVyIHBlbmRpbmcgYW5ub3VuY2VtZW50cy4AJQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgYSBwcm94eSBvZiBgcmVhbGAuACxQYXJhbWV0ZXJzOg0BLSBgcmVhbGA6IFRoZSBhY2NvdW50IHRoYXQgdGhlIHByb3h5IHdpbGwgbWFrZSBhIGNhbGwgb24gYmVoYWxmIG9mLhUBLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZSBieSB0aGUgYHJlYWxgIGFjY291bnQuTHJlbW92ZV9hbm5vdW5jZW1lbnQIARByZWFsAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRjYWxsX2hhc2gsATRDYWxsSGFzaE9mPFQ+AAcocFJlbW92ZSBhIGdpdmVuIGFubm91bmNlbWVudC4AWQFNYXkgYmUgY2FsbGVkIGJ5IGEgcHJveHkgYWNjb3VudCB0byByZW1vdmUgYSBjYWxsIHRoZXkgcHJldmlvdXNseSBhbm5vdW5jZWQgYW5kIHJldHVybjB0aGUgZGVwb3NpdC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi4VAS0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LkxyZWplY3RfYW5ub3VuY2VtZW50CAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABJGNhbGxfaGFzaCwBNENhbGxIYXNoT2Y8VD4ACCiwUmVtb3ZlIHRoZSBnaXZlbiBhbm5vdW5jZW1lbnQgb2YgYSBkZWxlZ2F0ZS4AYQFNYXkgYmUgY2FsbGVkIGJ5IGEgdGFyZ2V0IChwcm94aWVkKSBhY2NvdW50IHRvIHJlbW92ZSBhIGNhbGwgdGhhdCBvbmUgb2YgdGhlaXIgZGVsZWdhdGVzJQEoYGRlbGVnYXRlYCkgaGFzIGFubm91bmNlZCB0aGV5IHdhbnQgdG8gZXhlY3V0ZS4gVGhlIGRlcG9zaXQgaXMgcmV0dXJuZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4ALFBhcmFtZXRlcnM69C0gYGRlbGVnYXRlYDogVGhlIGFjY291bnQgdGhhdCBwcmV2aW91c2x5IGFubm91bmNlZCB0aGUgY2FsbC68LSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgbWFkZS48cHJveHlfYW5ub3VuY2VkEAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEHJlYWwAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABQGZvcmNlX3Byb3h5X3R5cGXVAQFQT3B0aW9uPFQ6OlByb3h5VHlwZT4AARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAJLE0BRGlzcGF0Y2ggdGhlIGdpdmVuIGBjYWxsYCBmcm9tIGFuIGFjY291bnQgdGhhdCB0aGUgc2VuZGVyIGlzIGF1dGhvcml6ZWQgZm9yIHRocm91Z2gwYGFkZF9wcm94eWAuAKhSZW1vdmVzIGFueSBjb3JyZXNwb25kaW5nIGFubm91bmNlbWVudChzKS4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgAsUGFyYW1ldGVyczoNAS0gYHJlYWxgOiBUaGUgYWNjb3VudCB0aGF0IHRoZSBwcm94eSB3aWxsIG1ha2UgYSBjYWxsIG9uIGJlaGFsZiBvZi5hAS0gYGZvcmNlX3Byb3h5X3R5cGVgOiBTcGVjaWZ5IHRoZSBleGFjdCBwcm94eSB0eXBlIHRvIGJlIHVzZWQgYW5kIGNoZWNrZWQgZm9yIHRoaXMgY2FsbC7QLSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIG1hZGUgYnkgdGhlIGByZWFsYCBhY2NvdW50LjBwb2tlX2RlcG9zaXQACiBJAVBva2UgLyBBZGp1c3QgZGVwb3NpdHMgbWFkZSBmb3IgcHJveGllcyBhbmQgYW5ub3VuY2VtZW50cyBiYXNlZCBvbiBjdXJyZW50IHZhbHVlcy4NAVRoaXMgY2FuIGJlIHVzZWQgYnkgYWNjb3VudHMgdG8gcG9zc2libHkgbG93ZXIgdGhlaXIgbG9ja2VkIGFtb3VudC4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgABAVRoZSB0cmFuc2FjdGlvbiBmZWUgaXMgd2FpdmVkIGlmIHRoZSBkZXBvc2l0IGFtb3VudCBoYXMgY2hhbmdlZC4AjEVtaXRzIGBEZXBvc2l0UG9rZWRgIGlmIHN1Y2Nlc3NmdWwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLtUBBBhPcHRpb24EBFQB2QEBCBBOb25lAAAAEFNvbWUEANkBAAABAADZAQw8aHlkcmFkeF9ydW50aW1lGHN5c3RlbSRQcm94eVR5cGUAARgMQW55AAAALENhbmNlbFByb3h5AAEAKEdvdmVybmFuY2UAAgAgVHJhbnNmZXIAAwAkTGlxdWlkaXR5AAQAPExpcXVpZGl0eU1pbmluZwAFAADdAQw8cGFsbGV0X211bHRpc2lnGHBhbGxldBBDYWxsBARUAAEUUGFzX211bHRpX3RocmVzaG9sZF8xCAFEb3RoZXJfc2lnbmF0b3JpZXNIAURWZWM8VDo6QWNjb3VudElkPgABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAwUQFJbW1lZGlhdGVseSBkaXNwYXRjaCBhIG11bHRpLXNpZ25hdHVyZSBjYWxsIHVzaW5nIGEgc2luZ2xlIGFwcHJvdmFsIGZyb20gdGhlIGNhbGxlci4AzFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLgA9AS0gYG90aGVyX3NpZ25hdG9yaWVzYDogVGhlIGFjY291bnRzIChvdGhlciB0aGFuIHRoZSBzZW5kZXIpIHdobyBhcmUgcGFydCBvZiB0aGUBAW11bHRpLXNpZ25hdHVyZSwgYnV0IGRvIG5vdCBwYXJ0aWNpcGF0ZSBpbiB0aGUgYXBwcm92YWwgcHJvY2Vzcy6ILSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgC4UmVzdWx0IGlzIGVxdWl2YWxlbnQgdG8gdGhlIGRpc3BhdGNoZWQgcmVzdWx0LgA0IyMgQ29tcGxleGl0eRkBTyhaICsgQykgd2hlcmUgWiBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBjYWxsIGFuZCBDIGl0cyBleGVjdXRpb24gd2VpZ2h0LiBhc19tdWx0aRQBJHRocmVzaG9sZIABDHUxNgABRG90aGVyX3NpZ25hdG9yaWVzSAFEVmVjPFQ6OkFjY291bnRJZD4AATxtYXliZV90aW1lcG9pbnThAQGQT3B0aW9uPFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4+AAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAShtYXhfd2VpZ2h05AEYV2VpZ2h0AAGcVQFSZWdpc3RlciBhcHByb3ZhbCBmb3IgYSBkaXNwYXRjaCB0byBiZSBtYWRlIGZyb20gYSBkZXRlcm1pbmlzdGljIGNvbXBvc2l0ZSBhY2NvdW50IGlm+GFwcHJvdmVkIGJ5IGEgdG90YWwgb2YgYHRocmVzaG9sZCAtIDFgIG9mIGBvdGhlcl9zaWduYXRvcmllc2AuALBJZiB0aGVyZSBhcmUgZW5vdWdoLCB0aGVuIGRpc3BhdGNoIHRoZSBjYWxsLgAtAVBheW1lbnQ6IGBEZXBvc2l0QmFzZWAgd2lsbCBiZSByZXNlcnZlZCBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgcGx1cz0BYHRocmVzaG9sZGAgdGltZXMgYERlcG9zaXRGYWN0b3JgLiBJdCBpcyByZXR1cm5lZCBvbmNlIHRoaXMgZGlzcGF0Y2ggaGFwcGVucyBvcjRpcyBjYW5jZWxsZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AVQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBmb3IgdGhpcyBkaXNwYXRjaCBiZWZvcmUgaXQgaXMgZXhlY3V0ZWQuQQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gY2FuIGFwcHJvdmUgdGhpc2xkaXNwYXRjaC4gTWF5IG5vdCBiZSBlbXB0eS5ZAS0gYG1heWJlX3RpbWVwb2ludGA6IElmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIHRoaXMgbXVzdCBiZSBgTm9uZWAuIElmIGl0IGlzUQFub3QgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIGl0IG11c3QgYmUgYFNvbWVgLCB3aXRoIHRoZSB0aW1lcG9pbnQgKGJsb2NrIG51bWJlciBhbmTUdHJhbnNhY3Rpb24gaW5kZXgpIG9mIHRoZSBmaXJzdCBhcHByb3ZhbCB0cmFuc2FjdGlvbi6ILSBgY2FsbGA6IFRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgAdAU5PVEU6IFVubGVzcyB0aGlzIGlzIHRoZSBmaW5hbCBhcHByb3ZhbCwgeW91IHdpbGwgZ2VuZXJhbGx5IHdhbnQgdG8gdXNlGQFgYXBwcm92ZV9hc19tdWx0aWAgaW5zdGVhZCwgc2luY2UgaXQgb25seSByZXF1aXJlcyBhIGhhc2ggb2YgdGhlIGNhbGwuAFkBUmVzdWx0IGlzIGVxdWl2YWxlbnQgdG8gdGhlIGRpc3BhdGNoZWQgcmVzdWx0IGlmIGB0aHJlc2hvbGRgIGlzIGV4YWN0bHkgYDFgLiBPdGhlcndpc2VVAW9uIHN1Y2Nlc3MsIHJlc3VsdCBpcyBgT2tgIGFuZCB0aGUgcmVzdWx0IGZyb20gdGhlIGludGVyaW9yIGNhbGwsIGlmIGl0IHdhcyBleGVjdXRlZCzcbWF5IGJlIGZvdW5kIGluIHRoZSBkZXBvc2l0ZWQgYE11bHRpc2lnRXhlY3V0ZWRgIGV2ZW50LgA0IyMgQ29tcGxleGl0eVAtIGBPKFMgKyBaICsgQ2FsbClgLswtIFVwIHRvIG9uZSBiYWxhbmNlLXJlc2VydmUgb3IgdW5yZXNlcnZlIG9wZXJhdGlvbi49AS0gT25lIHBhc3N0aHJvdWdoIG9wZXJhdGlvbiwgb25lIGluc2VydCwgYm90aCBgTyhTKWAgd2hlcmUgYFNgIGlzIHRoZSBudW1iZXIgb2ZFASAgc2lnbmF0b3JpZXMuIGBTYCBpcyBjYXBwZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCB3ZWlnaHQgYmVpbmcgcHJvcG9ydGlvbmFsLiEBLSBPbmUgY2FsbCBlbmNvZGUgJiBoYXNoLCBib3RoIG9mIGNvbXBsZXhpdHkgYE8oWilgIHdoZXJlIGBaYCBpcyB0eC1sZW4uvC0gT25lIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhTKWAu1C0gVXAgdG8gb25lIGJpbmFyeSBzZWFyY2ggYW5kIGluc2VydCAoYE8obG9nUyArIFMpYCku+C0gSS9POiAxIHJlYWQgYE8oUylgLCB1cCB0byAxIG11dGF0ZSBgTyhTKWAuIFVwIHRvIG9uZSByZW1vdmUuMC0gT25lIGV2ZW50LmwtIFRoZSB3ZWlnaHQgb2YgdGhlIGBjYWxsYC5NAS0gU3RvcmFnZTogaW5zZXJ0cyBvbmUgaXRlbSwgdmFsdWUgc2l6ZSBib3VuZGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggYSBkZXBvc2l0GQEgIHRha2VuIGZvciBpdHMgbGlmZXRpbWUgb2YgYERlcG9zaXRCYXNlICsgdGhyZXNob2xkICogRGVwb3NpdEZhY3RvcmAuQGFwcHJvdmVfYXNfbXVsdGkUASR0aHJlc2hvbGSAAQx1MTYAAURvdGhlcl9zaWduYXRvcmllc0gBRFZlYzxUOjpBY2NvdW50SWQ+AAE8bWF5YmVfdGltZXBvaW504QEBkE9wdGlvbjxUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+PgABJGNhbGxfaGFzaAQBIFt1ODsgMzJdAAEobWF4X3dlaWdodOQBGFdlaWdodAACeFUBUmVnaXN0ZXIgYXBwcm92YWwgZm9yIGEgZGlzcGF0Y2ggdG8gYmUgbWFkZSBmcm9tIGEgZGV0ZXJtaW5pc3RpYyBjb21wb3NpdGUgYWNjb3VudCBpZvhhcHByb3ZlZCBieSBhIHRvdGFsIG9mIGB0aHJlc2hvbGQgLSAxYCBvZiBgb3RoZXJfc2lnbmF0b3JpZXNgLgAtAVBheW1lbnQ6IGBEZXBvc2l0QmFzZWAgd2lsbCBiZSByZXNlcnZlZCBpZiB0aGlzIGlzIHRoZSBmaXJzdCBhcHByb3ZhbCwgcGx1cz0BYHRocmVzaG9sZGAgdGltZXMgYERlcG9zaXRGYWN0b3JgLiBJdCBpcyByZXR1cm5lZCBvbmNlIHRoaXMgZGlzcGF0Y2ggaGFwcGVucyBvcjRpcyBjYW5jZWxsZWQuAMxUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AVQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBmb3IgdGhpcyBkaXNwYXRjaCBiZWZvcmUgaXQgaXMgZXhlY3V0ZWQuQQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gY2FuIGFwcHJvdmUgdGhpc2xkaXNwYXRjaC4gTWF5IG5vdCBiZSBlbXB0eS5ZAS0gYG1heWJlX3RpbWVwb2ludGA6IElmIHRoaXMgaXMgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIHRoaXMgbXVzdCBiZSBgTm9uZWAuIElmIGl0IGlzUQFub3QgdGhlIGZpcnN0IGFwcHJvdmFsLCB0aGVuIGl0IG11c3QgYmUgYFNvbWVgLCB3aXRoIHRoZSB0aW1lcG9pbnQgKGJsb2NrIG51bWJlciBhbmTUdHJhbnNhY3Rpb24gaW5kZXgpIG9mIHRoZSBmaXJzdCBhcHByb3ZhbCB0cmFuc2FjdGlvbi7MLSBgY2FsbF9oYXNoYDogVGhlIGhhc2ggb2YgdGhlIGNhbGwgdG8gYmUgZXhlY3V0ZWQuADUBTk9URTogSWYgdGhpcyBpcyB0aGUgZmluYWwgYXBwcm92YWwsIHlvdSB3aWxsIHdhbnQgdG8gdXNlIGBhc19tdWx0aWAgaW5zdGVhZC4ANCMjIENvbXBsZXhpdHkkLSBgTyhTKWAuzC0gVXAgdG8gb25lIGJhbGFuY2UtcmVzZXJ2ZSBvciB1bnJlc2VydmUgb3BlcmF0aW9uLj0BLSBPbmUgcGFzc3Rocm91Z2ggb3BlcmF0aW9uLCBvbmUgaW5zZXJ0LCBib3RoIGBPKFMpYCB3aGVyZSBgU2AgaXMgdGhlIG51bWJlciBvZkUBICBzaWduYXRvcmllcy4gYFNgIGlzIGNhcHBlZCBieSBgTWF4U2lnbmF0b3JpZXNgLCB3aXRoIHdlaWdodCBiZWluZyBwcm9wb3J0aW9uYWwuvC0gT25lIGVuY29kZSAmIGhhc2gsIGJvdGggb2YgY29tcGxleGl0eSBgTyhTKWAu1C0gVXAgdG8gb25lIGJpbmFyeSBzZWFyY2ggYW5kIGluc2VydCAoYE8obG9nUyArIFMpYCku+C0gSS9POiAxIHJlYWQgYE8oUylgLCB1cCB0byAxIG11dGF0ZSBgTyhTKWAuIFVwIHRvIG9uZSByZW1vdmUuMC0gT25lIGV2ZW50Lk0BLSBTdG9yYWdlOiBpbnNlcnRzIG9uZSBpdGVtLCB2YWx1ZSBzaXplIGJvdW5kZWQgYnkgYE1heFNpZ25hdG9yaWVzYCwgd2l0aCBhIGRlcG9zaXQZASAgdGFrZW4gZm9yIGl0cyBsaWZldGltZSBvZiBgRGVwb3NpdEJhc2UgKyB0aHJlc2hvbGQgKiBEZXBvc2l0RmFjdG9yYC48Y2FuY2VsX2FzX211bHRpEAEkdGhyZXNob2xkgAEMdTE2AAFEb3RoZXJfc2lnbmF0b3JpZXNIAURWZWM8VDo6QWNjb3VudElkPgABJHRpbWVwb2ludOUBAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEkY2FsbF9oYXNoBAEgW3U4OyAzMl0AA1RVAUNhbmNlbCBhIHByZS1leGlzdGluZywgb24tZ29pbmcgbXVsdGlzaWcgdHJhbnNhY3Rpb24uIEFueSBkZXBvc2l0IHJlc2VydmVkIHByZXZpb3VzbHnEZm9yIHRoaXMgb3BlcmF0aW9uIHdpbGwgYmUgdW5yZXNlcnZlZCBvbiBzdWNjZXNzLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAFUBLSBgdGhyZXNob2xkYDogVGhlIHRvdGFsIG51bWJlciBvZiBhcHByb3ZhbHMgZm9yIHRoaXMgZGlzcGF0Y2ggYmVmb3JlIGl0IGlzIGV4ZWN1dGVkLkEBLSBgb3RoZXJfc2lnbmF0b3JpZXNgOiBUaGUgYWNjb3VudHMgKG90aGVyIHRoYW4gdGhlIHNlbmRlcikgd2hvIGNhbiBhcHByb3ZlIHRoaXNsZGlzcGF0Y2guIE1heSBub3QgYmUgZW1wdHkuXQEtIGB0aW1lcG9pbnRgOiBUaGUgdGltZXBvaW50IChibG9jayBudW1iZXIgYW5kIHRyYW5zYWN0aW9uIGluZGV4KSBvZiB0aGUgZmlyc3QgYXBwcm92YWx4dHJhbnNhY3Rpb24gZm9yIHRoaXMgZGlzcGF0Y2guzC0gYGNhbGxfaGFzaGA6IFRoZSBoYXNoIG9mIHRoZSBjYWxsIHRvIGJlIGV4ZWN1dGVkLgA0IyMgQ29tcGxleGl0eSQtIGBPKFMpYC7MLSBVcCB0byBvbmUgYmFsYW5jZS1yZXNlcnZlIG9yIHVucmVzZXJ2ZSBvcGVyYXRpb24uPQEtIE9uZSBwYXNzdGhyb3VnaCBvcGVyYXRpb24sIG9uZSBpbnNlcnQsIGJvdGggYE8oUylgIHdoZXJlIGBTYCBpcyB0aGUgbnVtYmVyIG9mRQEgIHNpZ25hdG9yaWVzLiBgU2AgaXMgY2FwcGVkIGJ5IGBNYXhTaWduYXRvcmllc2AsIHdpdGggd2VpZ2h0IGJlaW5nIHByb3BvcnRpb25hbC68LSBPbmUgZW5jb2RlICYgaGFzaCwgYm90aCBvZiBjb21wbGV4aXR5IGBPKFMpYC4wLSBPbmUgZXZlbnQuhC0gSS9POiAxIHJlYWQgYE8oUylgLCBvbmUgcmVtb3ZlLnAtIFN0b3JhZ2U6IHJlbW92ZXMgb25lIGl0ZW0uMHBva2VfZGVwb3NpdAwBJHRocmVzaG9sZIABDHUxNgABRG90aGVyX3NpZ25hdG9yaWVzSAFEVmVjPFQ6OkFjY291bnRJZD4AASRjYWxsX2hhc2gEASBbdTg7IDMyXQAENPRQb2tlIHRoZSBkZXBvc2l0IHJlc2VydmVkIGZvciBhbiBleGlzdGluZyBtdWx0aXNpZyBvcGVyYXRpb24uAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIG11c3QgYmUgdGhlIG9yaWdpbmFsIGRlcG9zaXRvciBvZlx0aGUgbXVsdGlzaWcgb3BlcmF0aW9uLgABAVRoZSB0cmFuc2FjdGlvbiBmZWUgaXMgd2FpdmVkIGlmIHRoZSBkZXBvc2l0IGFtb3VudCBoYXMgY2hhbmdlZC4AGQEtIGB0aHJlc2hvbGRgOiBUaGUgdG90YWwgbnVtYmVyIG9mIGFwcHJvdmFscyBuZWVkZWQgZm9yIHRoaXMgbXVsdGlzaWcuPQEtIGBvdGhlcl9zaWduYXRvcmllc2A6IFRoZSBhY2NvdW50cyAob3RoZXIgdGhhbiB0aGUgc2VuZGVyKSB3aG8gYXJlIHBhcnQgb2YgdGhlLCAgbXVsdGlzaWcuBQEtIGBjYWxsX2hhc2hgOiBUaGUgaGFzaCBvZiB0aGUgY2FsbCB0aGlzIGRlcG9zaXQgaXMgcmVzZXJ2ZWQgZm9yLgCMRW1pdHMgYERlcG9zaXRQb2tlZGAgaWYgc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu4QEEGE9wdGlvbgQEVAHlAQEIEE5vbmUAAAAQU29tZQQA5QEAAAEAAOUBCDxwYWxsZXRfbXVsdGlzaWckVGltZXBvaW50BCxCbG9ja051bWJlcgEoAAgBGGhlaWdodCgBLEJsb2NrTnVtYmVyAAEUaW5kZXgoAQx1MzIAAOkBDDhwYWxsZXRfdW5pcXVlcxhwYWxsZXQQQ2FsbAgEVAAESQABaBhjcmVhdGUIAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEUYWRtaW4AAVBBY2NvdW50SWRMb29rdXBPZjxUPgAAQAkBSXNzdWUgYSBuZXcgY29sbGVjdGlvbiBvZiBub24tZnVuZ2libGUgaXRlbXMgZnJvbSBhIHB1YmxpYyBvcmlnaW4uAB0BVGhpcyBuZXcgY29sbGVjdGlvbiBoYXMgbm8gaXRlbXMgaW5pdGlhbGx5IGFuZCBpdHMgb3duZXIgaXMgdGhlIG9yaWdpbi4AYQFUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byB0aGUgY29uZmlndXJlZCBgQ3JlYXRlT3JpZ2luYCBhbmQgaGF2ZSBzdWZmaWNpZW50IGZ1bmRzIGZyZWUuAKxgSXRlbURlcG9zaXRgIGZ1bmRzIG9mIHNlbmRlciBhcmUgcmVzZXJ2ZWQuACxQYXJhbWV0ZXJzOmEBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBuZXcgY29sbGVjdGlvbi4gVGhpcyBtdXN0IG5vdCBiZSBjdXJyZW50bHkgaW4gdXNlLkUBLSBgYWRtaW5gOiBUaGUgYWRtaW4gb2YgdGhpcyBjb2xsZWN0aW9uLiBUaGUgYWRtaW4gaXMgdGhlIGluaXRpYWwgYWRkcmVzcyBvZiBlYWNomG1lbWJlciBvZiB0aGUgY29sbGVjdGlvbidzIGFkbWluIHRlYW0uAJhFbWl0cyBgQ3JlYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4V2VpZ2h0OiBgTygxKWAwZm9yY2VfY3JlYXRlDAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AATBmcmVlX2hvbGRpbmdEARBib29sAAFEGQFJc3N1ZSBhIG5ldyBjb2xsZWN0aW9uIG9mIG5vbi1mdW5naWJsZSBpdGVtcyBmcm9tIGEgcHJpdmlsZWdlZCBvcmlnaW4uAKxUaGlzIG5ldyBjb2xsZWN0aW9uIGhhcyBubyBpdGVtcyBpbml0aWFsbHkuAKRUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byBgRm9yY2VPcmlnaW5gLgCcVW5saWtlIGBjcmVhdGVgLCBubyBmdW5kcyBhcmUgcmVzZXJ2ZWQuAEkBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBuZXcgaXRlbS4gVGhpcyBtdXN0IG5vdCBiZSBjdXJyZW50bHkgaW4gdXNlLjkBLSBgb3duZXJgOiBUaGUgb3duZXIgb2YgdGhpcyBjb2xsZWN0aW9uIG9mIGl0ZW1zLiBUaGUgb3duZXIgaGFzIGZ1bGwgc3VwZXJ1c2VyNCAgcGVybWlzc2lvbnMhAW92ZXIgdGhpcyBpdGVtLCBidXQgbWF5IGxhdGVyIGNoYW5nZSBhbmQgY29uZmlndXJlIHRoZSBwZXJtaXNzaW9ucyB1c2luZ5BgdHJhbnNmZXJfb3duZXJzaGlwYCBhbmQgYHNldF90ZWFtYC4ArEVtaXRzIGBGb3JjZUNyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgHGRlc3Ryb3kIAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEcd2l0bmVzc+0BAThEZXN0cm95V2l0bmVzcwACPJxEZXN0cm95IGEgY29sbGVjdGlvbiBvZiBmdW5naWJsZSBpdGVtcy4AXQFUaGUgb3JpZ2luIG11c3QgY29uZm9ybSB0byBgRm9yY2VPcmlnaW5gIG9yIG11c3QgYmUgYFNpZ25lZGAgYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGVob3duZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4ABQEtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gdG8gYmUgZGVzdHJveWVkLjEBLSBgd2l0bmVzc2A6IEluZm9ybWF0aW9uIG9uIHRoZSBpdGVtcyBtaW50ZWQgaW4gdGhlIGNvbGxlY3Rpb24uIFRoaXMgbXVzdCBiZSBjb3JyZWN0LgCgRW1pdHMgYERlc3Ryb3llZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBkV2VpZ2h0OiBgTyhuICsgbSlgIHdoZXJlOlQtIGBuID0gd2l0bmVzcy5pdGVtc2B4LSBgbSA9IHdpdG5lc3MuaXRlbV9tZXRhZGF0YXNgaC0gYGEgPSB3aXRuZXNzLmF0dHJpYnV0ZXNgEG1pbnQMAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAABFG93bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAyygTWludCBhbiBpdGVtIG9mIGEgcGFydGljdWxhciBjb2xsZWN0aW9uLgBBAVRoZSBvcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGUgSXNzdWVyIG9mIHRoZSBgY29sbGVjdGlvbmAuAOAtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gdG8gYmUgbWludGVkLsgtIGBpdGVtYDogVGhlIGl0ZW0gdmFsdWUgb2YgdGhlIGl0ZW0gdG8gYmUgbWludGVkLtgtIGBiZW5lZmljaWFyeWA6IFRoZSBpbml0aWFsIG93bmVyIG9mIHRoZSBtaW50ZWQgaXRlbS4AlEVtaXRzIGBJc3N1ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOFdlaWdodDogYE8oMSlgEGJ1cm4MAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAABLGNoZWNrX293bmVyzQEBcE9wdGlvbjxBY2NvdW50SWRMb29rdXBPZjxUPj4ABDxYRGVzdHJveSBhIHNpbmdsZSBpdGVtLgD0T3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2lnbmluZyBhY2NvdW50IG11c3QgYmUgZWl0aGVyOoAtIHRoZSBBZG1pbiBvZiB0aGUgYGNvbGxlY3Rpb25gO2gtIHRoZSBPd25lciBvZiB0aGUgYGl0ZW1gOwDgLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIHRvIGJlIGJ1cm5lZC6wLSBgaXRlbWA6IFRoZSBpdGVtIG9mIHRoZSBpdGVtIHRvIGJlIGJ1cm5lZC5RAS0gYGNoZWNrX293bmVyYDogSWYgYFNvbWVgIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBgV3JvbmdPd25lcmAgdW5sZXNzIHRoZXggIGl0ZW0gaXMgb3duZWQgYnkgdGhpcyB2YWx1ZS4AtEVtaXRzIGBCdXJuZWRgIHdpdGggdGhlIGFjdHVhbCBhbW91bnQgYnVybmVkLgA4V2VpZ2h0OiBgTygxKWB8TW9kZXM6IGBjaGVja19vd25lci5pc19zb21lKClgLiB0cmFuc2ZlcgwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAVEwE1vdmUgYW4gaXRlbSBmcm9tIHRoZSBzZW5kZXIgYWNjb3VudCB0byBhbm90aGVyLgC0VGhpcyByZXNldHMgdGhlIGFwcHJvdmVkIGFjY291bnQgb2YgdGhlIGl0ZW0uAPRPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzaWduaW5nIGFjY291bnQgbXVzdCBiZSBlaXRoZXI6gC0gdGhlIEFkbWluIG9mIHRoZSBgY29sbGVjdGlvbmA7aC0gdGhlIE93bmVyIG9mIHRoZSBgaXRlbWA7NQEtIHRoZSBhcHByb3ZlZCBkZWxlZ2F0ZSBmb3IgdGhlIGBpdGVtYCAoaW4gdGhpcyBjYXNlLCB0aGUgYXBwcm92YWwgaXMgcmVzZXQpLgAoQXJndW1lbnRzOvQtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gdG8gYmUgdHJhbnNmZXJyZWQuxC0gYGl0ZW1gOiBUaGUgaXRlbSBvZiB0aGUgaXRlbSB0byBiZSB0cmFuc2ZlcnJlZC7cLSBgZGVzdGA6IFRoZSBhY2NvdW50IHRvIHJlY2VpdmUgb3duZXJzaGlwIG9mIHRoZSBpdGVtLgBQRW1pdHMgYFRyYW5zZmVycmVkYC4AOFdlaWdodDogYE8oMSlgJHJlZGVwb3NpdAgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARRpdGVtc/EBAThWZWM8VDo6SXRlbUlkPgAGRJhSZWV2YWx1YXRlIHRoZSBkZXBvc2l0cyBvbiBzb21lIGl0ZW1zLgA1AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mIHRoZSBgY29sbGVjdGlvbmAuALAtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gdG8gYmUgZnJvemVuLikBLSBgaXRlbXNgOiBUaGUgaXRlbXMgb2YgdGhlIGNvbGxlY3Rpb24gd2hvc2UgZGVwb3NpdHMgd2lsbCBiZSByZWV2YWx1YXRlZC4ALQFOT1RFOiBUaGlzIGV4aXN0cyBhcyBhIGJlc3QtZWZmb3J0IGZ1bmN0aW9uLiBBbnkgaXRlbXMgd2hpY2ggYXJlIHVua25vd24gb3I5AWluIHRoZSBjYXNlIHRoYXQgdGhlIG93bmVyIGFjY291bnQgZG9lcyBub3QgaGF2ZSByZXNlcnZhYmxlIGZ1bmRzIHRvIHBheSBmb3IgYU0BZGVwb3NpdCBpbmNyZWFzZSBhcmUgaWdub3JlZC4gR2VuZXJhbGx5IHRoZSBvd25lciBpc24ndCBnb2luZyB0byBjYWxsIHRoaXMgb24gaXRlbXNVAXdob3NlIGV4aXN0aW5nIGRlcG9zaXQgaXMgbGVzcyB0aGFuIHRoZSByZWZyZXNoZWQgZGVwb3NpdCBhcyBpdCB3b3VsZCBvbmx5IGNvc3QgdGhlbSx4c28gaXQncyBvZiBsaXR0bGUgY29uc2VxdWVuY2UuAFkBSXQgd2lsbCBzdGlsbCByZXR1cm4gYW4gZXJyb3IgaW4gdGhlIGNhc2UgdGhhdCB0aGUgY29sbGVjdGlvbiBpcyB1bmtub3duIG9mIHRoZSBzaWduZXJwaXMgbm90IHBlcm1pdHRlZCB0byBjYWxsIGl0LgBgV2VpZ2h0OiBgTyhpdGVtcy5sZW4oKSlgGGZyZWV6ZQgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAcoyERpc2FsbG93IGZ1cnRoZXIgdW5wcml2aWxlZ2VkIHRyYW5zZmVyIG9mIGFuIGl0ZW0uAD0BT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgRnJlZXplciBvZiB0aGUgYGNvbGxlY3Rpb25gLgDgLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIHRvIGJlIGZyb3plbi6wLSBgaXRlbWA6IFRoZSBpdGVtIG9mIHRoZSBpdGVtIHRvIGJlIGZyb3plbi4APEVtaXRzIGBGcm96ZW5gLgA4V2VpZ2h0OiBgTygxKWAQdGhhdwgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAgoqFJlLWFsbG93IHVucHJpdmlsZWdlZCB0cmFuc2ZlciBvZiBhbiBpdGVtLgA9AU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIEZyZWV6ZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4A4C0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbSB0byBiZSB0aGF3ZWQusC0gYGl0ZW1gOiBUaGUgaXRlbSBvZiB0aGUgaXRlbSB0byBiZSB0aGF3ZWQuADxFbWl0cyBgVGhhd2VkYC4AOFdlaWdodDogYE8oMSlgRGZyZWV6ZV9jb2xsZWN0aW9uBAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAAJJPxEaXNhbGxvdyBmdXJ0aGVyIHVucHJpdmlsZWdlZCB0cmFuc2ZlcnMgZm9yIGEgd2hvbGUgY29sbGVjdGlvbi4APQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBGcmVlemVyIG9mIHRoZSBgY29sbGVjdGlvbmAuALAtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gdG8gYmUgZnJvemVuLgBkRW1pdHMgYENvbGxlY3Rpb25Gcm96ZW5gLgA4V2VpZ2h0OiBgTygxKWA8dGhhd19jb2xsZWN0aW9uBAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAAKJNxSZS1hbGxvdyB1bnByaXZpbGVnZWQgdHJhbnNmZXJzIGZvciBhIHdob2xlIGNvbGxlY3Rpb24uADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgQWRtaW4gb2YgdGhlIGBjb2xsZWN0aW9uYC4AsC0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiB0byBiZSB0aGF3ZWQuAGRFbWl0cyBgQ29sbGVjdGlvblRoYXdlZGAuADhXZWlnaHQ6IGBPKDEpYEh0cmFuc2Zlcl9vd25lcnNoaXAIAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEkbmV3X293bmVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ACyyEQ2hhbmdlIHRoZSBPd25lciBvZiBhIGNvbGxlY3Rpb24uADUBT3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlIGBjb2xsZWN0aW9uYC4A9C0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiB3aG9zZSBvd25lciBzaG91bGQgYmUgY2hhbmdlZC4JAS0gYG93bmVyYDogVGhlIG5ldyBPd25lciBvZiB0aGlzIGNvbGxlY3Rpb24uIFRoZXkgbXVzdCBoYXZlIGNhbGxlZEkBICBgc2V0X2FjY2VwdF9vd25lcnNoaXBgIHdpdGggYGNvbGxlY3Rpb25gIGluIG9yZGVyIGZvciB0aGlzIG9wZXJhdGlvbiB0byBzdWNjZWVkLgBURW1pdHMgYE93bmVyQ2hhbmdlZGAuADhXZWlnaHQ6IGBPKDEpYCBzZXRfdGVhbRABKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARhpc3N1ZXIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFGFkbWluAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARxmcmVlemVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4ADDDUQ2hhbmdlIHRoZSBJc3N1ZXIsIEFkbWluIGFuZCBGcmVlemVyIG9mIGEgY29sbGVjdGlvbi4ANQFPcmlnaW4gbXVzdCBiZSBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUgYGNvbGxlY3Rpb25gLgDwLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIHdob3NlIHRlYW0gc2hvdWxkIGJlIGNoYW5nZWQuuC0gYGlzc3VlcmA6IFRoZSBuZXcgSXNzdWVyIG9mIHRoaXMgY29sbGVjdGlvbi6wLSBgYWRtaW5gOiBUaGUgbmV3IEFkbWluIG9mIHRoaXMgY29sbGVjdGlvbi7ALSBgZnJlZXplcmA6IFRoZSBuZXcgRnJlZXplciBvZiB0aGlzIGNvbGxlY3Rpb24uAFBFbWl0cyBgVGVhbUNoYW5nZWRgLgA4V2VpZ2h0OiBgTygxKWBAYXBwcm92ZV90cmFuc2ZlcgwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAEgZGVsZWdhdGUAAVBBY2NvdW50SWRMb29rdXBPZjxUPgANOBUBQXBwcm92ZSBhbiBpdGVtIHRvIGJlIHRyYW5zZmVycmVkIGJ5IGEgZGVsZWdhdGVkIHRoaXJkLXBhcnR5IGFjY291bnQuAE0BVGhlIG9yaWdpbiBtdXN0IGNvbmZvcm0gdG8gYEZvcmNlT3JpZ2luYCBvciBtdXN0IGJlIGBTaWduZWRgIGFuZCB0aGUgc2VuZGVyIG11c3QgYmX4ZWl0aGVyIHRoZSBvd25lciBvZiB0aGUgYGl0ZW1gIG9yIHRoZSBhZG1pbiBvZiB0aGUgY29sbGVjdGlvbi4ARQEtIGBjb2xsZWN0aW9uYDogVGhlIGNvbGxlY3Rpb24gb2YgdGhlIGl0ZW0gdG8gYmUgYXBwcm92ZWQgZm9yIGRlbGVnYXRlZCB0cmFuc2Zlci4VAS0gYGl0ZW1gOiBUaGUgaXRlbSBvZiB0aGUgaXRlbSB0byBiZSBhcHByb3ZlZCBmb3IgZGVsZWdhdGVkIHRyYW5zZmVyLhkBLSBgZGVsZWdhdGVgOiBUaGUgYWNjb3VudCB0byBkZWxlZ2F0ZSBwZXJtaXNzaW9uIHRvIHRyYW5zZmVyIHRoZSBpdGVtLgAZAUltcG9ydGFudCBOT1RFOiBUaGUgYGFwcHJvdmVkYCBhY2NvdW50IGdldHMgcmVzZXQgYWZ0ZXIgZWFjaCB0cmFuc2Zlci4AkEVtaXRzIGBBcHByb3ZlZFRyYW5zZmVyYCBvbiBzdWNjZXNzLgA4V2VpZ2h0OiBgTygxKWA8Y2FuY2VsX2FwcHJvdmFsDAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAAVBtYXliZV9jaGVja19kZWxlZ2F0Zc0BAXBPcHRpb248QWNjb3VudElkTG9va3VwT2Y8VD4+AA5AEQFDYW5jZWwgdGhlIHByaW9yIGFwcHJvdmFsIGZvciB0aGUgdHJhbnNmZXIgb2YgYW4gaXRlbSBieSBhIGRlbGVnYXRlLgBYT3JpZ2luIG11c3QgYmUgZWl0aGVyOlQtIHRoZSBgRm9yY2VgIG9yaWdpbjv8LSBgU2lnbmVkYCB3aXRoIHRoZSBzaWduZXIgYmVpbmcgdGhlIEFkbWluIG9mIHRoZSBgY29sbGVjdGlvbmA75C0gYFNpZ25lZGAgd2l0aCB0aGUgc2lnbmVyIGJlaW5nIHRoZSBPd25lciBvZiB0aGUgYGl0ZW1gOwAoQXJndW1lbnRzOj0BLSBgY29sbGVjdGlvbmA6IFRoZSBjb2xsZWN0aW9uIG9mIHRoZSBpdGVtIG9mIHdob3NlIGFwcHJvdmFsIHdpbGwgYmUgY2FuY2VsbGVkLg0BLSBgaXRlbWA6IFRoZSBpdGVtIG9mIHRoZSBpdGVtIG9mIHdob3NlIGFwcHJvdmFsIHdpbGwgYmUgY2FuY2VsbGVkLlEBLSBgbWF5YmVfY2hlY2tfZGVsZWdhdGVgOiBJZiBgU29tZWAgd2lsbCBlbnN1cmUgdGhhdCB0aGUgZ2l2ZW4gYWNjb3VudCBpcyB0aGUgb25lIHRvsCAgd2hpY2ggcGVybWlzc2lvbiBvZiB0cmFuc2ZlciBpcyBkZWxlZ2F0ZWQuAJRFbWl0cyBgQXBwcm92YWxDYW5jZWxsZWRgIG9uIHN1Y2Nlc3MuADhXZWlnaHQ6IGBPKDEpYERmb3JjZV9pdGVtX3N0YXR1cxwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARRvd25lcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYaXNzdWVyAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRhZG1pbgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEcZnJlZXplcgABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEwZnJlZV9ob2xkaW5nRAEQYm9vbAABJGlzX2Zyb3plbkQBEGJvb2wAD0CUQWx0ZXIgdGhlIGF0dHJpYnV0ZXMgb2YgYSBnaXZlbiBpdGVtLgB0T3JpZ2luIG11c3QgYmUgYEZvcmNlT3JpZ2luYC4ArC0gYGNvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgaXRlbS6YLSBgb3duZXJgOiBUaGUgbmV3IE93bmVyIG9mIHRoaXMgaXRlbS6gLSBgaXNzdWVyYDogVGhlIG5ldyBJc3N1ZXIgb2YgdGhpcyBpdGVtLpgtIGBhZG1pbmA6IFRoZSBuZXcgQWRtaW4gb2YgdGhpcyBpdGVtLqgtIGBmcmVlemVyYDogVGhlIG5ldyBGcmVlemVyIG9mIHRoaXMgaXRlbS5RAS0gYGZyZWVfaG9sZGluZ2A6IFdoZXRoZXIgYSBkZXBvc2l0IGlzIHRha2VuIGZvciBob2xkaW5nIGFuIGl0ZW0gb2YgdGhpcyBjb2xsZWN0aW9uLjkBLSBgaXNfZnJvemVuYDogV2hldGhlciB0aGlzIGNvbGxlY3Rpb24gaXMgZnJvemVuIGV4Y2VwdCBmb3IgcGVybWlzc2lvbmVkL2FkbWluNGluc3RydWN0aW9ucy4A4EVtaXRzIGBJdGVtU3RhdHVzQ2hhbmdlZGAgd2l0aCB0aGUgaWRlbnRpdHkgb2YgdGhlIGl0ZW0uADhXZWlnaHQ6IGBPKDEpYDRzZXRfYXR0cmlidXRlEAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABKG1heWJlX2l0ZW31AQFET3B0aW9uPFQ6Okl0ZW1JZD4AAQxrZXn5AQFsQm91bmRlZFZlYzx1OCwgVDo6S2V5TGltaXQ+AAEUdmFsdWX9AQF0Qm91bmRlZFZlYzx1OCwgVDo6VmFsdWVMaW1pdD4AEESoU2V0IGFuIGF0dHJpYnV0ZSBmb3IgYSBjb2xsZWN0aW9uIG9yIGl0ZW0uAF0BT3JpZ2luIG11c3QgYmUgZWl0aGVyIGBGb3JjZU9yaWdpbmAgb3IgU2lnbmVkIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2YgdGhlNGBjb2xsZWN0aW9uYC4AUQFJZiB0aGUgb3JpZ2luIGlzIFNpZ25lZCwgdGhlbiBmdW5kcyBvZiBzaWduZXIgYXJlIHJlc2VydmVkIGFjY29yZGluZyB0byB0aGUgZm9ybXVsYTopAWBNZXRhZGF0YURlcG9zaXRCYXNlICsgRGVwb3NpdFBlckJ5dGUgKiAoa2V5LmxlbiArIHZhbHVlLmxlbilgIHRha2luZyBpbnRvjGFjY291bnQgYW55IGFscmVhZHkgcmVzZXJ2ZWQgZnVuZHMuADkBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIGl0ZW0ncyBtZXRhZGF0YSB0byBzZXQuBQEtIGBtYXliZV9pdGVtYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGl0ZW0gd2hvc2UgbWV0YWRhdGEgdG8gc2V0LogtIGBrZXlgOiBUaGUga2V5IG9mIHRoZSBhdHRyaWJ1dGUuzC0gYHZhbHVlYDogVGhlIHZhbHVlIHRvIHdoaWNoIHRvIHNldCB0aGUgYXR0cmlidXRlLgBURW1pdHMgYEF0dHJpYnV0ZVNldGAuADhXZWlnaHQ6IGBPKDEpYDxjbGVhcl9hdHRyaWJ1dGUMAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEobWF5YmVfaXRlbfUBAURPcHRpb248VDo6SXRlbUlkPgABDGtlefkBAWxCb3VuZGVkVmVjPHU4LCBUOjpLZXlMaW1pdD4AETiwQ2xlYXIgYW4gYXR0cmlidXRlIGZvciBhIGNvbGxlY3Rpb24gb3IgaXRlbS4AXQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGU0YGNvbGxlY3Rpb25gLgDAQW55IGRlcG9zaXQgaXMgZnJlZWQgZm9yIHRoZSBjb2xsZWN0aW9uJ3Mgb3duZXIuAEEBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIGl0ZW0ncyBtZXRhZGF0YSB0byBjbGVhci4NAS0gYG1heWJlX2l0ZW1gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgaXRlbSB3aG9zZSBtZXRhZGF0YSB0byBjbGVhci6ILSBga2V5YDogVGhlIGtleSBvZiB0aGUgYXR0cmlidXRlLgBkRW1pdHMgYEF0dHJpYnV0ZUNsZWFyZWRgLgA4V2VpZ2h0OiBgTygxKWAwc2V0X21ldGFkYXRhEAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAARBkYXRhAQIBeEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0PgABJGlzX2Zyb3plbkQBEGJvb2wAEkR0U2V0IHRoZSBtZXRhZGF0YSBmb3IgYW4gaXRlbS4AXQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGU0YGNvbGxlY3Rpb25gLgBRAUlmIHRoZSBvcmlnaW4gaXMgU2lnbmVkLCB0aGVuIGZ1bmRzIG9mIHNpZ25lciBhcmUgcmVzZXJ2ZWQgYWNjb3JkaW5nIHRvIHRoZSBmb3JtdWxhOvRgTWV0YWRhdGFEZXBvc2l0QmFzZSArIERlcG9zaXRQZXJCeXRlICogZGF0YS5sZW5gIHRha2luZyBpbnRvjGFjY291bnQgYW55IGFscmVhZHkgcmVzZXJ2ZWQgZnVuZHMuADkBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIGl0ZW0ncyBtZXRhZGF0YSB0byBzZXQu7C0gYGl0ZW1gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgaXRlbSB3aG9zZSBtZXRhZGF0YSB0byBzZXQuTQEtIGBkYXRhYDogVGhlIGdlbmVyYWwgaW5mb3JtYXRpb24gb2YgdGhpcyBpdGVtLiBMaW1pdGVkIGluIGxlbmd0aCBieSBgU3RyaW5nTGltaXRgLjUBLSBgaXNfZnJvemVuYDogV2hldGhlciB0aGUgbWV0YWRhdGEgc2hvdWxkIGJlIGZyb3plbiBhZ2FpbnN0IGZ1cnRoZXIgY2hhbmdlcy4AUEVtaXRzIGBNZXRhZGF0YVNldGAuADhXZWlnaHQ6IGBPKDEpYDhjbGVhcl9tZXRhZGF0YQgBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkABM0fENsZWFyIHRoZSBtZXRhZGF0YSBmb3IgYW4gaXRlbS4AXQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBTaWduZWQgYW5kIHRoZSBzZW5kZXIgc2hvdWxkIGJlIHRoZSBPd25lciBvZiB0aGUcYGl0ZW1gLgDAQW55IGRlcG9zaXQgaXMgZnJlZWQgZm9yIHRoZSBjb2xsZWN0aW9uJ3Mgb3duZXIuAEEBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIGl0ZW0ncyBtZXRhZGF0YSB0byBjbGVhci70LSBgaXRlbWA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBpdGVtIHdob3NlIG1ldGFkYXRhIHRvIGNsZWFyLgBgRW1pdHMgYE1ldGFkYXRhQ2xlYXJlZGAuADhXZWlnaHQ6IGBPKDEpYFxzZXRfY29sbGVjdGlvbl9tZXRhZGF0YQwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBkYXRhAQIBeEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0PgABJGlzX2Zyb3plbkQBEGJvb2wAFECIU2V0IHRoZSBtZXRhZGF0YSBmb3IgYSBjb2xsZWN0aW9uLgBVAU9yaWdpbiBtdXN0IGJlIGVpdGhlciBgRm9yY2VPcmlnaW5gIG9yIGBTaWduZWRgIGFuZCB0aGUgc2VuZGVyIHNob3VsZCBiZSB0aGUgT3duZXIgb2ZEdGhlIGBjb2xsZWN0aW9uYC4AWQFJZiB0aGUgb3JpZ2luIGlzIGBTaWduZWRgLCB0aGVuIGZ1bmRzIG9mIHNpZ25lciBhcmUgcmVzZXJ2ZWQgYWNjb3JkaW5nIHRvIHRoZSBmb3JtdWxhOvRgTWV0YWRhdGFEZXBvc2l0QmFzZSArIERlcG9zaXRQZXJCeXRlICogZGF0YS5sZW5gIHRha2luZyBpbnRvjGFjY291bnQgYW55IGFscmVhZHkgcmVzZXJ2ZWQgZnVuZHMuABEBLSBgY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBpdGVtIHdob3NlIG1ldGFkYXRhIHRvIHVwZGF0ZS5NAS0gYGRhdGFgOiBUaGUgZ2VuZXJhbCBpbmZvcm1hdGlvbiBvZiB0aGlzIGl0ZW0uIExpbWl0ZWQgaW4gbGVuZ3RoIGJ5IGBTdHJpbmdMaW1pdGAuNQEtIGBpc19mcm96ZW5gOiBXaGV0aGVyIHRoZSBtZXRhZGF0YSBzaG91bGQgYmUgZnJvemVuIGFnYWluc3QgZnVydGhlciBjaGFuZ2VzLgB4RW1pdHMgYENvbGxlY3Rpb25NZXRhZGF0YVNldGAuADhXZWlnaHQ6IGBPKDEpYGRjbGVhcl9jb2xsZWN0aW9uX21ldGFkYXRhBAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAAVMJBDbGVhciB0aGUgbWV0YWRhdGEgZm9yIGEgY29sbGVjdGlvbi4AVQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBgU2lnbmVkYCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mRHRoZSBgY29sbGVjdGlvbmAuAMBBbnkgZGVwb3NpdCBpcyBmcmVlZCBmb3IgdGhlIGNvbGxlY3Rpb24ncyBvd25lci4AJQEtIGBjb2xsZWN0aW9uYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbGxlY3Rpb24gd2hvc2UgbWV0YWRhdGEgdG8gY2xlYXIuAIhFbWl0cyBgQ29sbGVjdGlvbk1ldGFkYXRhQ2xlYXJlZGAuADhXZWlnaHQ6IGBPKDEpYFBzZXRfYWNjZXB0X293bmVyc2hpcAQBQG1heWJlX2NvbGxlY3Rpb271AQFcT3B0aW9uPFQ6OkNvbGxlY3Rpb25JZD4AFigRAVNldCAob3IgcmVzZXQpIHRoZSBhY2NlcHRhbmNlIG9mIG93bmVyc2hpcCBmb3IgYSBwYXJ0aWN1bGFyIGFjY291bnQuAGEBT3JpZ2luIG11c3QgYmUgYFNpZ25lZGAgYW5kIGlmIGBtYXliZV9jb2xsZWN0aW9uYCBpcyBgU29tZWAsIHRoZW4gdGhlIHNpZ25lciBtdXN0IGhhdmUgYUxwcm92aWRlciByZWZlcmVuY2UuAFEBLSBgbWF5YmVfY29sbGVjdGlvbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBjb2xsZWN0aW9uIHdob3NlIG93bmVyc2hpcCB0aGUgc2lnbmVyIGlzYQEgIHdpbGxpbmcgdG8gYWNjZXB0LCBvciBpZiBgTm9uZWAsIGFuIGluZGljYXRpb24gdGhhdCB0aGUgc2lnbmVyIGlzIHdpbGxpbmcgdG8gYWNjZXB0IG5vXCAgb3duZXJzaGlwIHRyYW5zZmVyYWwuAIxFbWl0cyBgT3duZXJzaGlwQWNjZXB0YW5jZUNoYW5nZWRgLmRzZXRfY29sbGVjdGlvbl9tYXhfc3VwcGx5CAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABKG1heF9zdXBwbHkoAQx1MzIAFyzgU2V0IHRoZSBtYXhpbXVtIGFtb3VudCBvZiBpdGVtcyBhIGNvbGxlY3Rpb24gY291bGQgaGF2ZS4AVQFPcmlnaW4gbXVzdCBiZSBlaXRoZXIgYEZvcmNlT3JpZ2luYCBvciBgU2lnbmVkYCBhbmQgdGhlIHNlbmRlciBzaG91bGQgYmUgdGhlIE93bmVyIG9mRHRoZSBgY29sbGVjdGlvbmAuAOROb3RlOiBUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5IHN1Y2NlZWQgb25jZSBwZXIgY29sbGVjdGlvbi4A7C0gYGNvbGxlY3Rpb25gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgY29sbGVjdGlvbiB0byBjaGFuZ2UuEQEtIGBtYXhfc3VwcGx5YDogVGhlIG1heGltdW0gYW1vdW50IG9mIGl0ZW1zIGEgY29sbGVjdGlvbiBjb3VsZCBoYXZlLgDURW1pdHMgYENvbGxlY3Rpb25NYXhTdXBwbHlTZXRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4kc2V0X3ByaWNlEAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAARRwcmljZfUBAVxPcHRpb248SXRlbVByaWNlPFQsIEk+PgABRHdoaXRlbGlzdGVkX2J1eWVyzQEBcE9wdGlvbjxBY2NvdW50SWRMb29rdXBPZjxUPj4AGCyUU2V0IChvciByZXNldCkgdGhlIHByaWNlIGZvciBhbiBpdGVtLgABAU9yaWdpbiBtdXN0IGJlIFNpZ25lZCBhbmQgbXVzdCBiZSB0aGUgb3duZXIgb2YgdGhlIGFzc2V0IGBpdGVtYC4ArC0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbS6gLSBgaXRlbWA6IFRoZSBpdGVtIHRvIHNldCB0aGUgcHJpY2UgZm9yLg0BLSBgcHJpY2VgOiBUaGUgcHJpY2UgZm9yIHRoZSBpdGVtLiBQYXNzIGBOb25lYCwgdG8gcmVzZXQgdGhlIHByaWNlLvQtIGBidXllcmA6IFJlc3RyaWN0cyB0aGUgYnV5IG9wZXJhdGlvbiB0byBhIHNwZWNpZmljIGFjY291bnQuAOxFbWl0cyBgSXRlbVByaWNlU2V0YCBvbiBzdWNjZXNzIGlmIHRoZSBwcmljZSBpcyBub3QgYE5vbmVgLuxFbWl0cyBgSXRlbVByaWNlUmVtb3ZlZGAgb24gc3VjY2VzcyBpZiB0aGUgcHJpY2UgaXMgYE5vbmVgLiBidXlfaXRlbQwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAEkYmlkX3ByaWNlQAE8SXRlbVByaWNlPFQsIEk+ABkkqEFsbG93cyB0byBidXkgYW4gaXRlbSBpZiBpdCdzIHVwIGZvciBzYWxlLgD4T3JpZ2luIG11c3QgYmUgU2lnbmVkIGFuZCBtdXN0IG5vdCBiZSB0aGUgb3duZXIgb2YgdGhlIGBpdGVtYC4ArC0gYGNvbGxlY3Rpb25gOiBUaGUgY29sbGVjdGlvbiBvZiB0aGUgaXRlbS6sLSBgaXRlbWA6IFRoZSBpdGVtIHRoZSBzZW5kZXIgd2FudHMgdG8gYnV5LtgtIGBiaWRfcHJpY2VgOiBUaGUgcHJpY2UgdGhlIHNlbmRlciBpcyB3aWxsaW5nIHRvIHBheS4AeEVtaXRzIGBJdGVtQm91Z2h0YCBvbiBzdWNjZXNzLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7tAQw4cGFsbGV0X3VuaXF1ZXMUdHlwZXM4RGVzdHJveVdpdG5lc3MAAAwBFGl0ZW1zbAEMdTMyAAE4aXRlbV9tZXRhZGF0YXNsAQx1MzIAAShhdHRyaWJ1dGVzbAEMdTMyAADxAQAAAkAA9QEEGE9wdGlvbgQEVAFAAQgQTm9uZQAAABBTb21lBABAAAABAAD5AQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAP0BDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAAQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AAAFAgxscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uGHBhbGxldBBDYWxsBARUAAEYWGNvbnRyb2xfYXV0b19taWdyYXRpb24EATBtYXliZV9jb25maWcJAgFcT3B0aW9uPE1pZ3JhdGlvbkxpbWl0cz4AAAyAQ29udHJvbCB0aGUgYXV0b21hdGljIG1pZ3JhdGlvbi4ADQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIFtgQ29uZmlnOjpDb250cm9sT3JpZ2luYF0uQGNvbnRpbnVlX21pZ3JhdGUMARhsaW1pdHMNAgE8TWlncmF0aW9uTGltaXRzAAE8cmVhbF9zaXplX3VwcGVyKAEMdTMyAAEwd2l0bmVzc190YXNrEQIBQE1pZ3JhdGlvblRhc2s8VD4AAVS4Q29udGludWUgdGhlIG1pZ3JhdGlvbiBmb3IgdGhlIGdpdmVuIGBsaW1pdHNgLgDsVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgY2FuIGJlIGFueSBzaWduZWQgYWNjb3VudC4AXQFUaGlzIHRyYW5zYWN0aW9uIGhhcyBOTyBNT05FVEFSWSBJTkNFTlRJVkVTLiBjYWxsaW5nIGl0IHdpbGwgbm90IHJld2FyZCBhbnlvbmUuIEFsYmVpdCzsVXBvbiBzdWNjZXNzZnVsIGV4ZWN1dGlvbiwgdGhlIHRyYW5zYWN0aW9uIGZlZSBpcyByZXR1cm5lZC4AQQFUaGUgKHBvdGVudGlhbGx5IG92ZXItZXN0aW1hdGVkKSBvZiB0aGUgYnl0ZSBsZW5ndGggb2YgYWxsIHRoZSBkYXRhIHJlYWQgbXVzdCBiZVkBcHJvdmlkZWQgZm9yIHVwLWZyb250IGZlZS1wYXltZW50IGFuZCB3ZWlnaGluZy4gSW4gZXNzZW5jZSwgdGhlIGNhbGxlciBpcyBndWFyYW50ZWVpbmdJAXRoYXQgZXhlY3V0aW5nIHRoZSBjdXJyZW50IGBNaWdyYXRpb25UYXNrYCB3aXRoIHRoZSBnaXZlbiBgbGltaXRzYCB3aWxsIG5vdCBleGNlZWSUYHJlYWxfc2l6ZV91cHBlcmAgYnl0ZXMgb2YgcmVhZCBkYXRhLgBFAVRoZSBgd2l0bmVzc190YXNrYCBpcyBtZXJlbHkgYSBoZWxwZXIgdG8gcHJldmVudCB0aGUgY2FsbGVyIGZyb20gYmVpbmcgc2xhc2hlZCBvcl0BZ2VuZXJhbGx5IHRyaWdnZXIgYSBtaWdyYXRpb24gdGhhdCB0aGV5IGRvIG5vdCBpbnRlbmQuIFRoaXMgcGFyYW1ldGVyIGlzIGp1c3QgYSBtZXNzYWdlPQFmcm9tIGNhbGxlciwgc2F5aW5nIHRoYXQgdGhleSBiZWxpZXZlZCBgd2l0bmVzc190YXNrYCB3YXMgdGhlIGxhc3Qgc3RhdGUgb2YgdGhlWQFtaWdyYXRpb24sIGFuZCB0aGV5IG9ubHkgd2lzaCBmb3IgdGhlaXIgdHJhbnNhY3Rpb24gdG8gZG8gYW55dGhpbmcsIGlmIHRoaXMgYXNzdW1wdGlvbhEBaG9sZHMuIEluIGNhc2UgYHdpdG5lc3NfdGFza2AgZG9lcyBub3QgbWF0Y2gsIHRoZSB0cmFuc2FjdGlvbiBmYWlscy4AOQFCYXNlZCBvbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiBbYE1pZ3JhdGlvblRhc2s6Om1pZ3JhdGVfdW50aWxfZXhoYXVzdGlvbmBdLCB0aGVNAXJlY29tbWVuZGVkIHdheSBvZiBkb2luZyB0aGlzIGlzIHRvIHBhc3MgYSBgbGltaXRgIHRoYXQgb25seSBib3VuZHMgYGNvdW50YCwgYXMgdGhlnGBzaXplYCBsaW1pdCBjYW4gYWx3YXlzIGJlIG92ZXJ3cml0dGVuLkhtaWdyYXRlX2N1c3RvbV90b3AIARBrZXlzJAEwVmVjPFZlYzx1OD4+AAEwd2l0bmVzc19zaXplKAEMdTMyAAIQCQFNaWdyYXRlIHRoZSBsaXN0IG9mIHRvcCBrZXlzIGJ5IGl0ZXJhdGluZyBlYWNoIG9mIHRoZW0gb25lIGJ5IG9uZS4AVQFUaGlzIGRvZXMgbm90IGFmZmVjdCB0aGUgZ2xvYmFsIG1pZ3JhdGlvbiBwcm9jZXNzIHRyYWNrZXIgKFtgTWlncmF0aW9uUHJvY2Vzc2BdKSwgYW5k/HNob3VsZCBvbmx5IGJlIHVzZWQgaW4gY2FzZSBhbnkga2V5cyBhcmUgbGVmdG92ZXIgZHVlIHRvIGEgYnVnLlBtaWdyYXRlX2N1c3RvbV9jaGlsZAwBEHJvb3QUARxWZWM8dTg+AAEoY2hpbGRfa2V5cyQBMFZlYzxWZWM8dTg+PgABKHRvdGFsX3NpemUoAQx1MzIAAxgRAU1pZ3JhdGUgdGhlIGxpc3Qgb2YgY2hpbGQga2V5cyBieSBpdGVyYXRpbmcgZWFjaCBvZiB0aGVtIG9uZSBieSBvbmUuAA0BQWxsIG9mIHRoZSBnaXZlbiBjaGlsZCBrZXlzIG11c3QgYmUgcHJlc2VudCB1bmRlciBvbmUgYGNoaWxkX3Jvb3RgLgBVAVRoaXMgZG9lcyBub3QgYWZmZWN0IHRoZSBnbG9iYWwgbWlncmF0aW9uIHByb2Nlc3MgdHJhY2tlciAoW2BNaWdyYXRpb25Qcm9jZXNzYF0pLCBhbmT8c2hvdWxkIG9ubHkgYmUgdXNlZCBpbiBjYXNlIGFueSBrZXlzIGFyZSBsZWZ0b3ZlciBkdWUgdG8gYSBidWcuVHNldF9zaWduZWRfbWF4X2xpbWl0cwQBGGxpbWl0cw0CATxNaWdyYXRpb25MaW1pdHMABAS4U2V0IHRoZSBtYXhpbXVtIGxpbWl0IG9mIHRoZSBzaWduZWQgbWlncmF0aW9uLkhmb3JjZV9zZXRfcHJvZ3Jlc3MIATBwcm9ncmVzc190b3AVAgE0UHJvZ3Jlc3NPZjxUPgABOHByb2dyZXNzX2NoaWxkFQIBNFByb2dyZXNzT2Y8VD4ABSTIRm9yY2VmdWxseSBzZXQgdGhlIHByb2dyZXNzIHRoZSBydW5uaW5nIG1pZ3JhdGlvbi4AXQFUaGlzIGlzIG9ubHkgdXNlZnVsIGluIG9uZSBjYXNlOiB0aGUgbmV4dCBrZXkgdG8gbWlncmF0ZSBpcyB0b28gYmlnIHRvIGJlIG1pZ3JhdGVkIHdpdGhVAWEgc2lnbmVkIGFjY291bnQsIGluIGEgcGFyYWNoYWluIGNvbnRleHQsIGFuZCB3ZSBzaW1wbHkgd2FudCB0byBza2lwIGl0LiBBIHJlYXNvbmFibGVhAWV4YW1wbGUgb2YgdGhpcyB3b3VsZCBiZSBgOmNvZGU6YCwgd2hpY2ggaXMgYm90aCB2ZXJ5IGV4cGVuc2l2ZSB0byBtaWdyYXRlLCBhbmQgY29tbW9ubHmkdXNlZCwgc28gcHJvYmFibHkgaXQgaXMgYWxyZWFkeSBtaWdyYXRlZC4AXQFJbiBjYXNlIHlvdSBtZXNzIHRoaW5ncyB1cCwgeW91IGNhbiBhbHNvLCBpbiBwcmluY2lwbGUsIHVzZSB0aGlzIHRvIHJlc2V0IHRoZSBtaWdyYXRpb24gcHJvY2Vzcy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuCQIEGE9wdGlvbgQEVAENAgEIEE5vbmUAAAAQU29tZQQADQIAAAEAAA0CDGxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb24YcGFsbGV0PE1pZ3JhdGlvbkxpbWl0cwAACAEQc2l6ZSgBDHUzMgABEGl0ZW0oAQx1MzIAABECDGxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb24YcGFsbGV0NE1pZ3JhdGlvblRhc2sEBFQAABQBMHByb2dyZXNzX3RvcBUCATRQcm9ncmVzc09mPFQ+AAE4cHJvZ3Jlc3NfY2hpbGQVAgE0UHJvZ3Jlc3NPZjxUPgABEHNpemUoAQx1MzIAASR0b3BfaXRlbXMoAQx1MzIAASxjaGlsZF9pdGVtcygBDHUzMgAAFQIMbHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbhhwYWxsZXQgUHJvZ3Jlc3MEJE1heEtleUxlbgABDBxUb1N0YXJ0AAAAHExhc3RLZXkEABkCAWRCb3VuZGVkVmVjPHU4LCBNYXhLZXlMZW4+AAEAIENvbXBsZXRlAAIAABkCDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAHQIMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxhwYWxsZXQQQ2FsbAgEVAAESQABHBB2b3RlCAEocG9sbF9pbmRleGwBRFBvbGxJbmRleE9mPFQsIEk+AAEQdm90ZSECAXBBY2NvdW50Vm90ZTxCYWxhbmNlT2Y8VCwgST4+AAAkGQFWb3RlIGluIGEgcG9sbC4gSWYgYHZvdGUuaXNfYXllKClgLCB0aGUgdm90ZSBpcyB0byBlbmFjdCB0aGUgcHJvcG9zYWw7uG90aGVyd2lzZSBpdCBpcyBhIHZvdGUgdG8ga2VlcCB0aGUgc3RhdHVzIHF1by4AyFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAMgtIGBwb2xsX2luZGV4YDogVGhlIGluZGV4IG9mIHRoZSBwb2xsIHRvIHZvdGUgZm9yLoQtIGB2b3RlYDogVGhlIHZvdGUgY29uZmlndXJhdGlvbi4AFQFXZWlnaHQ6IGBPKFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcG9sbHMgdGhlIHZvdGVyIGhhcyB2b3RlZCBvbi4gZGVsZWdhdGUQARRjbGFzc4ABNENsYXNzT2Y8VCwgST4AAQh0bwABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoY29udmljdGlvbikCAShDb252aWN0aW9uAAEcYmFsYW5jZUABPEJhbGFuY2VPZjxULCBJPgABXE0BRGVsZWdhdGUgdGhlIHZvdGluZyBwb3dlciAod2l0aCBzb21lIGdpdmVuIGNvbnZpY3Rpb24pIG9mIHRoZSBzZW5kaW5nIGFjY291bnQgZm9yIGFocGFydGljdWxhciBjbGFzcyBvZiBwb2xscy4AVQFUaGUgYmFsYW5jZSBkZWxlZ2F0ZWQgaXMgbG9ja2VkIGZvciBhcyBsb25nIGFzIGl0J3MgZGVsZWdhdGVkLCBhbmQgdGhlcmVhZnRlciBmb3IgdGhlyHRpbWUgYXBwcm9wcmlhdGUgZm9yIHRoZSBjb252aWN0aW9uJ3MgbG9jayBwZXJpb2QuAF0BVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXywgYW5kIHRoZSBzaWduaW5nIGFjY291bnQgbXVzdCBlaXRoZXI6dCAgLSBiZSBkZWxlZ2F0aW5nIGFscmVhZHk7IG9yRQEgIC0gaGF2ZSBubyB2b3RpbmcgYWN0aXZpdHkgKGlmIHRoZXJlIGlzLCB0aGVuIGl0IHdpbGwgbmVlZCB0byBiZSByZW1vdmVkIHRocm91Z2hMICAgIGByZW1vdmVfdm90ZWApLgBFAS0gYHRvYDogVGhlIGFjY291bnQgd2hvc2Ugdm90aW5nIHRoZSBgdGFyZ2V0YCBhY2NvdW50J3Mgdm90aW5nIHBvd2VyIHdpbGwgZm9sbG93Ll0BLSBgY2xhc3NgOiBUaGUgY2xhc3Mgb2YgcG9sbHMgdG8gZGVsZWdhdGUuIFRvIGRlbGVnYXRlIG11bHRpcGxlIGNsYXNzZXMsIG11bHRpcGxlIGNhbGxzgCAgdG8gdGhpcyBmdW5jdGlvbiBhcmUgcmVxdWlyZWQuVQEtIGBjb252aWN0aW9uYDogVGhlIGNvbnZpY3Rpb24gdGhhdCB3aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBkZWxlZ2F0ZWQgdm90ZXMuIFdoZW4gdGhlQQEgIGFjY291bnQgaXMgdW5kZWxlZ2F0ZWQsIHRoZSBmdW5kcyB3aWxsIGJlIGxvY2tlZCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgcGVyaW9kLmEBLSBgYmFsYW5jZWA6IFRoZSBhbW91bnQgb2YgdGhlIGFjY291bnQncyBiYWxhbmNlIHRvIGJlIHVzZWQgaW4gZGVsZWdhdGluZy4gVGhpcyBtdXN0IG5vdLQgIGJlIG1vcmUgdGhhbiB0aGUgYWNjb3VudCdzIGN1cnJlbnQgYmFsYW5jZS4ASEVtaXRzIGBEZWxlZ2F0ZWRgLgAlAVdlaWdodDogYE8oUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiBwb2xscyB0aGUgdm90ZXIgZGVsZWdhdGluZyB0byBoYXNNASAgdm90ZWQgb24uIFdlaWdodCBpcyBpbml0aWFsbHkgY2hhcmdlZCBhcyBpZiBtYXhpbXVtIHZvdGVzLCBidXQgaXMgcmVmdW5kZWQgbGF0ZXIuKHVuZGVsZWdhdGUEARRjbGFzc4ABNENsYXNzT2Y8VCwgST4AAjhNAVVuZGVsZWdhdGUgdGhlIHZvdGluZyBwb3dlciBvZiB0aGUgc2VuZGluZyBhY2NvdW50IGZvciBhIHBhcnRpY3VsYXIgY2xhc3Mgb2YgcG9sbHMuAF0BVG9rZW5zIG1heSBiZSB1bmxvY2tlZCBmb2xsb3dpbmcgb25jZSBhbiBhbW91bnQgb2YgdGltZSBjb25zaXN0ZW50IHdpdGggdGhlIGxvY2sgcGVyaW9kCQFvZiB0aGUgY29udmljdGlvbiB3aXRoIHdoaWNoIHRoZSBkZWxlZ2F0aW9uIHdhcyBpc3N1ZWQgaGFzIHBhc3NlZC4ARQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2lnbmluZyBhY2NvdW50IG11c3QgYmVUY3VycmVudGx5IGRlbGVnYXRpbmcuAPAtIGBjbGFzc2A6IFRoZSBjbGFzcyBvZiBwb2xscyB0byByZW1vdmUgdGhlIGRlbGVnYXRpb24gZnJvbS4AUEVtaXRzIGBVbmRlbGVnYXRlZGAuACUBV2VpZ2h0OiBgTyhSKWAgd2hlcmUgUiBpcyB0aGUgbnVtYmVyIG9mIHBvbGxzIHRoZSB2b3RlciBkZWxlZ2F0aW5nIHRvIGhhc00BICB2b3RlZCBvbi4gV2VpZ2h0IGlzIGluaXRpYWxseSBjaGFyZ2VkIGFzIGlmIG1heGltdW0gdm90ZXMsIGJ1dCBpcyByZWZ1bmRlZCBsYXRlci4YdW5sb2NrCAEUY2xhc3OAATRDbGFzc09mPFQsIEk+AAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AAyRdAVJlbW92ZSB0aGUgbG9jayBjYXVzZWQgYnkgcHJpb3Igdm90aW5nL2RlbGVnYXRpbmcgd2hpY2ggaGFzIGV4cGlyZWQgd2l0aGluIGEgcGFydGljdWxhchhjbGFzcy4AyFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAKAtIGBjbGFzc2A6IFRoZSBjbGFzcyBvZiBwb2xscyB0byB1bmxvY2suuC0gYHRhcmdldGA6IFRoZSBhY2NvdW50IHRvIHJlbW92ZSB0aGUgbG9jayBvbi4AvFdlaWdodDogYE8oUilgIHdpdGggUiBudW1iZXIgb2Ygdm90ZSBvZiB0YXJnZXQuLHJlbW92ZV92b3RlCAEUY2xhc3MtAgFUT3B0aW9uPENsYXNzT2Y8VCwgST4+AAEUaW5kZXgoAURQb2xsSW5kZXhPZjxULCBJPgAEdGRSZW1vdmUgYSB2b3RlIGZvciBhIHBvbGwuAAxJZjpwLSB0aGUgcG9sbCB3YXMgY2FuY2VsbGVkLCBvcmQtIHRoZSBwb2xsIGlzIG9uZ29pbmcsIG9yeC0gdGhlIHBvbGwgaGFzIGVuZGVkIHN1Y2ggdGhhdPwgIC0gdGhlIHZvdGUgb2YgdGhlIGFjY291bnQgd2FzIGluIG9wcG9zaXRpb24gdG8gdGhlIHJlc3VsdDsgb3LUICAtIHRoZXJlIHdhcyBubyBjb252aWN0aW9uIHRvIHRoZSBhY2NvdW50J3Mgdm90ZTsgb3KEICAtIHRoZSBhY2NvdW50IG1hZGUgYSBzcGxpdCB2b3RlXQEuLi50aGVuIHRoZSB2b3RlIGlzIHJlbW92ZWQgY2xlYW5seSBhbmQgYSBmb2xsb3dpbmcgY2FsbCB0byBgdW5sb2NrYCBtYXkgcmVzdWx0IGluIG1vcmVYZnVuZHMgYmVpbmcgYXZhaWxhYmxlLgCQSWYsIGhvd2V2ZXIsIHRoZSBwb2xsIGhhcyBlbmRlZCBhbmQ67C0gaXQgZmluaXNoZWQgY29ycmVzcG9uZGluZyB0byB0aGUgdm90ZSBvZiB0aGUgYWNjb3VudCwgYW5k3C0gdGhlIGFjY291bnQgbWFkZSBhIHN0YW5kYXJkIHZvdGUgd2l0aCBjb252aWN0aW9uLCBhbmS8LSB0aGUgbG9jayBwZXJpb2Qgb2YgdGhlIGNvbnZpY3Rpb24gaXMgbm90IG92ZXJZAS4uLnRoZW4gdGhlIGxvY2sgd2lsbCBiZSBhZ2dyZWdhdGVkIGludG8gdGhlIG92ZXJhbGwgYWNjb3VudCdzIGxvY2ssIHdoaWNoIG1heSBpbnZvbHZlWQEqb3ZlcmxvY2tpbmcqICh3aGVyZSB0aGUgdHdvIGxvY2tzIGFyZSBjb21iaW5lZCBpbnRvIGEgc2luZ2xlIGxvY2sgdGhhdCBpcyB0aGUgbWF4aW11beRvZiBib3RoIHRoZSBhbW91bnQgbG9ja2VkIGFuZCB0aGUgdGltZSBpcyBpdCBsb2NrZWQgZm9yKS4ASQFUaGUgZGlzcGF0Y2ggb3JpZ2luIG9mIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfLCBhbmQgdGhlIHNpZ25lciBtdXN0IGhhdmUgYSB2b3RlcHJlZ2lzdGVyZWQgZm9yIHBvbGwgYGluZGV4YC4A3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHBvbGwgb2YgdGhlIHZvdGUgdG8gYmUgcmVtb3ZlZC5VAS0gYGNsYXNzYDogT3B0aW9uYWwgcGFyYW1ldGVyLCBpZiBnaXZlbiBpdCBpbmRpY2F0ZXMgdGhlIGNsYXNzIG9mIHRoZSBwb2xsLiBGb3IgcG9sbHPwICB3aGljaCBoYXZlIGZpbmlzaGVkIG9yIGFyZSBjYW5jZWxsZWQsIHRoaXMgbXVzdCBiZSBgU29tZWAuAEUBV2VpZ2h0OiBgTyhSICsgbG9nIFIpYCB3aGVyZSBSIGlzIHRoZSBudW1iZXIgb2YgcG9sbHMgdGhhdCBgdGFyZ2V0YCBoYXMgdm90ZWQgb24u2CAgV2VpZ2h0IGlzIGNhbGN1bGF0ZWQgZm9yIHRoZSBtYXhpbXVtIG51bWJlciBvZiB2b3RlLkRyZW1vdmVfb3RoZXJfdm90ZQwBGHRhcmdldAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUY2xhc3OAATRDbGFzc09mPFQsIEk+AAEUaW5kZXgoAURQb2xsSW5kZXhPZjxULCBJPgAFQGRSZW1vdmUgYSB2b3RlIGZvciBhIHBvbGwuAE0BSWYgdGhlIGB0YXJnZXRgIGlzIGVxdWFsIHRvIHRoZSBzaWduZXIsIHRoZW4gdGhpcyBmdW5jdGlvbiBpcyBleGFjdGx5IGVxdWl2YWxlbnQgdG8tAWByZW1vdmVfdm90ZWAuIElmIG5vdCBlcXVhbCB0byB0aGUgc2lnbmVyLCB0aGVuIHRoZSB2b3RlIG11c3QgaGF2ZSBleHBpcmVkLCUBZWl0aGVyIGJlY2F1c2UgdGhlIHBvbGwgd2FzIGNhbmNlbGxlZCwgYmVjYXVzZSB0aGUgdm90ZXIgbG9zdCB0aGUgcG9sbCBvcphiZWNhdXNlIHRoZSBjb252aWN0aW9uIHBlcmlvZCBpcyBvdmVyLgDIVGhlIGRpc3BhdGNoIG9yaWdpbiBvZiB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXy4AYQEtIGB0YXJnZXRgOiBUaGUgYWNjb3VudCBvZiB0aGUgdm90ZSB0byBiZSByZW1vdmVkOyB0aGlzIGFjY291bnQgbXVzdCBoYXZlIHZvdGVkIGZvciBwb2xsKCAgYGluZGV4YC7cLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgcG9sbCBvZiB0aGUgdm90ZSB0byBiZSByZW1vdmVkLoQtIGBjbGFzc2A6IFRoZSBjbGFzcyBvZiB0aGUgcG9sbC4ARQFXZWlnaHQ6IGBPKFIgKyBsb2cgUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiBwb2xscyB0aGF0IGB0YXJnZXRgIGhhcyB2b3RlZCBvbi7YICBXZWlnaHQgaXMgY2FsY3VsYXRlZCBmb3IgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZvdGUuRGZvcmNlX3JlbW92ZV92b3RlDAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARRjbGFzc4ABNENsYXNzT2Y8VCwgST4AARRpbmRleCgBRFBvbGxJbmRleE9mPFQsIEk+ABM4uEFsbG93IHRvIGZvcmNlIHJlbW92ZSBhIHZvdGUgZm9yIGEgcmVmZXJlbmR1bS4A9FRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgYFZvdGVSZW1vdmFsT3JpZ2luYC4ArE9ubHkgYWxsb3dlZCBpZiB0aGUgcmVmZXJlbmR1bSBpcyBmaW5pc2hlZC4AyFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAE0BLSBgdGFyZ2V0YDogVGhlIGFjY291bnQgb2YgdGhlIHZvdGUgdG8gYmUgcmVtb3ZlZDsgdGhpcyBhY2NvdW50IG11c3QgaGF2ZSB2b3RlZCBmb3JUICByZWZlcmVuZHVtIGBpbmRleGAu9C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHJlZmVyZW5kdW0gb2YgdGhlIHZvdGUgdG8gYmUgcmVtb3ZlZC4AVQFXZWlnaHQ6IGBPKFIgKyBsb2cgUilgIHdoZXJlIFIgaXMgdGhlIG51bWJlciBvZiByZWZlcmVuZGEgdGhhdCBgdGFyZ2V0YCBoYXMgdm90ZWQgb24u2CAgV2VpZ2h0IGlzIGNhbGN1bGF0ZWQgZm9yIHRoZSBtYXhpbXVtIG51bWJlciBvZiB2b3RlLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4hAgxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUsQWNjb3VudFZvdGUEHEJhbGFuY2UBQAEMIFN0YW5kYXJkCAEQdm90ZSUCARBWb3RlAAEcYmFsYW5jZUABHEJhbGFuY2UAAAAUU3BsaXQIAQxheWVAARxCYWxhbmNlAAEMbmF5QAEcQmFsYW5jZQABADBTcGxpdEFic3RhaW4MAQxheWVAARxCYWxhbmNlAAEMbmF5QAEcQmFsYW5jZQABHGFic3RhaW5AARxCYWxhbmNlAAIAACUCDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcQdm90ZRBWb3RlAAAEAAgAAAApAgxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nKGNvbnZpY3Rpb24oQ29udmljdGlvbgABHBBOb25lAAAAIExvY2tlZDF4AAEAIExvY2tlZDJ4AAIAIExvY2tlZDN4AAMAIExvY2tlZDR4AAQAIExvY2tlZDV4AAUAIExvY2tlZDZ4AAYAAC0CBBhPcHRpb24EBFQBgAEIEE5vbmUAAAAQU29tZQQAgAAAAQAAMQIMQHBhbGxldF9yZWZlcmVuZGEYcGFsbGV0EENhbGwIBFQABEkAASQYc3VibWl0DAE8cHJvcG9zYWxfb3JpZ2luhAFcQm94PFBhbGxldHNPcmlnaW5PZjxUPj4AASBwcm9wb3NhbKkBAUxCb3VuZGVkQ2FsbE9mPFQsIEk+AAFAZW5hY3RtZW50X21vbWVudDUCAYhEaXNwYXRjaFRpbWU8QmxvY2tOdW1iZXJGb3I8VCwgST4+AAAksFByb3Bvc2UgYSByZWZlcmVuZHVtIG9uIGEgcHJpdmlsZWdlZCBhY3Rpb24uAFkBLSBgb3JpZ2luYDogbXVzdCBiZSBgU3VibWl0T3JpZ2luYCBhbmQgdGhlIGFjY291bnQgbXVzdCBoYXZlIGBTdWJtaXNzaW9uRGVwb3NpdGAgZnVuZHMwICBhdmFpbGFibGUuLQEtIGBwcm9wb3NhbF9vcmlnaW5gOiBUaGUgb3JpZ2luIGZyb20gd2hpY2ggdGhlIHByb3Bvc2FsIHNob3VsZCBiZSBleGVjdXRlZC5sLSBgcHJvcG9zYWxgOiBUaGUgcHJvcG9zYWwuFQEtIGBlbmFjdG1lbnRfbW9tZW50YDogVGhlIG1vbWVudCB0aGF0IHRoZSBwcm9wb3NhbCBzaG91bGQgYmUgZW5hY3RlZC4ASEVtaXRzIGBTdWJtaXR0ZWRgLlhwbGFjZV9kZWNpc2lvbl9kZXBvc2l0BAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgAASCsUG9zdCB0aGUgRGVjaXNpb24gRGVwb3NpdCBmb3IgYSByZWZlcmVuZHVtLgA5AS0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgYW5kIHRoZSBhY2NvdW50IG11c3QgaGF2ZSBmdW5kcyBhdmFpbGFibGUgZm9yIHRoZaAgIHJlZmVyZW5kdW0ncyB0cmFjaydzIERlY2lzaW9uIERlcG9zaXQuUQEtIGBpbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgc3VibWl0dGVkIHJlZmVyZW5kdW0gd2hvc2UgRGVjaXNpb24gRGVwb3NpdCBpcyB5ZXQgdG8gYmUkICBwb3N0ZWQuAHhFbWl0cyBgRGVjaXNpb25EZXBvc2l0UGxhY2VkYC5ccmVmdW5kX2RlY2lzaW9uX2RlcG9zaXQEARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleAACHCkBUmVmdW5kIHRoZSBEZWNpc2lvbiBEZXBvc2l0IGZvciBhIGNsb3NlZCByZWZlcmVuZHVtIGJhY2sgdG8gdGhlIGRlcG9zaXRvci4AnC0gYG9yaWdpbmA6IG11c3QgYmUgYFNpZ25lZGAgb3IgYFJvb3RgLk0BLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgYSBjbG9zZWQgcmVmZXJlbmR1bSB3aG9zZSBEZWNpc2lvbiBEZXBvc2l0IGhhcyBub3QgeWV0IGJlZW4sICByZWZ1bmRlZC4AgEVtaXRzIGBEZWNpc2lvbkRlcG9zaXRSZWZ1bmRlZGAuGGNhbmNlbAQBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4AAMYdENhbmNlbCBhbiBvbmdvaW5nIHJlZmVyZW5kdW0uAJwtIGBvcmlnaW5gOiBtdXN0IGJlIHRoZSBgQ2FuY2VsT3JpZ2luYC7cLSBgaW5kZXhgOiBUaGUgaW5kZXggb2YgdGhlIHJlZmVyZW5kdW0gdG8gYmUgY2FuY2VsbGVkLgBIRW1pdHMgYENhbmNlbGxlZGAuEGtpbGwEARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleAAEGNBDYW5jZWwgYW4gb25nb2luZyByZWZlcmVuZHVtIGFuZCBzbGFzaCB0aGUgZGVwb3NpdHMuAJQtIGBvcmlnaW5gOiBtdXN0IGJlIHRoZSBgS2lsbE9yaWdpbmAu3C0gYGluZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWZlcmVuZHVtIHRvIGJlIGNhbmNlbGxlZC4AkEVtaXRzIGBLaWxsZWRgIGFuZCBgRGVwb3NpdFNsYXNoZWRgLkBudWRnZV9yZWZlcmVuZHVtBAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgABRAdAUFkdmFuY2UgYSByZWZlcmVuZHVtIG9udG8gaXRzIG5leHQgbG9naWNhbCBzdGF0ZS4gT25seSB1c2VkIGludGVybmFsbHkuAGwtIGBvcmlnaW5gOiBtdXN0IGJlIGBSb290YC6kLSBgaW5kZXhgOiB0aGUgcmVmZXJlbmR1bSB0byBiZSBhZHZhbmNlZC5Ib25lX2Zld2VyX2RlY2lkaW5nBAEUdHJhY2uAATxUcmFja0lkT2Y8VCwgST4ABiQJAUFkdmFuY2UgYSB0cmFjayBvbnRvIGl0cyBuZXh0IGxvZ2ljYWwgc3RhdGUuIE9ubHkgdXNlZCBpbnRlcm5hbGx5LgBsLSBgb3JpZ2luYDogbXVzdCBiZSBgUm9vdGAukC0gYHRyYWNrYDogdGhlIHRyYWNrIHRvIGJlIGFkdmFuY2VkLgBRAUFjdGlvbiBpdGVtIGZvciB3aGVuIHRoZXJlIGlzIG5vdyBvbmUgZmV3ZXIgcmVmZXJlbmR1bSBpbiB0aGUgZGVjaWRpbmcgcGhhc2UgYW5kIHRoZRUBYERlY2lkaW5nQ291bnRgIGlzIG5vdCB5ZXQgdXBkYXRlZC4gVGhpcyBtZWFucyB0aGF0IHdlIHNob3VsZCBlaXRoZXI6JQEtIGJlZ2luIGRlY2lkaW5nIGFub3RoZXIgcmVmZXJlbmR1bSAoYW5kIGxlYXZlIGBEZWNpZGluZ0NvdW50YCBhbG9uZSk7IG9ycC0gZGVjcmVtZW50IGBEZWNpZGluZ0NvdW50YC5kcmVmdW5kX3N1Ym1pc3Npb25fZGVwb3NpdAQBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4AAccMQFSZWZ1bmQgdGhlIFN1Ym1pc3Npb24gRGVwb3NpdCBmb3IgYSBjbG9zZWQgcmVmZXJlbmR1bSBiYWNrIHRvIHRoZSBkZXBvc2l0b3IuAJwtIGBvcmlnaW5gOiBtdXN0IGJlIGBTaWduZWRgIG9yIGBSb290YC5VAS0gYGluZGV4YDogVGhlIGluZGV4IG9mIGEgY2xvc2VkIHJlZmVyZW5kdW0gd2hvc2UgU3VibWlzc2lvbiBEZXBvc2l0IGhhcyBub3QgeWV0IGJlZW4sICByZWZ1bmRlZC4AiEVtaXRzIGBTdWJtaXNzaW9uRGVwb3NpdFJlZnVuZGVkYC4wc2V0X21ldGFkYXRhCAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgAAShtYXliZV9oYXNoxQEBPE9wdGlvbjxUOjpIYXNoPgAIHJhTZXQgb3IgY2xlYXIgbWV0YWRhdGEgb2YgYSByZWZlcmVuZHVtLgAsUGFyYW1ldGVyczpFAS0gYG9yaWdpbmA6IE11c3QgYmUgYFNpZ25lZGAgYnkgYSBjcmVhdG9yIG9mIGEgcmVmZXJlbmR1bSBvciBieSBhbnlvbmUgdG8gY2xlYXIgYZAgIG1ldGFkYXRhIG9mIGEgZmluaXNoZWQgcmVmZXJlbmR1bS4NAS0gYGluZGV4YDogIFRoZSBpbmRleCBvZiBhIHJlZmVyZW5kdW0gdG8gc2V0IG9yIGNsZWFyIG1ldGFkYXRhIGZvci5RAS0gYG1heWJlX2hhc2hgOiBUaGUgaGFzaCBvZiBhbiBvbi1jaGFpbiBzdG9yZWQgcHJlaW1hZ2UuIGBOb25lYCB0byBjbGVhciBhIG1ldGFkYXRhLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy41AhA0ZnJhbWVfc3VwcG9ydBh0cmFpdHMgc2NoZWR1bGUwRGlzcGF0Y2hUaW1lBCxCbG9ja051bWJlcgEoAQgIQXQEACgBLEJsb2NrTnVtYmVyAAAAFEFmdGVyBAAoASxCbG9ja051bWJlcgABAAA5AgxAcGFsbGV0X3doaXRlbGlzdBhwYWxsZXQQQ2FsbAQEVAABEDh3aGl0ZWxpc3RfY2FsbAQBJGNhbGxfaGFzaCwBHFQ6Okhhc2gAAABccmVtb3ZlX3doaXRlbGlzdGVkX2NhbGwEASRjYWxsX2hhc2gsARxUOjpIYXNoAAEAZGRpc3BhdGNoX3doaXRlbGlzdGVkX2NhbGwMASRjYWxsX2hhc2gsARxUOjpIYXNoAAFAY2FsbF9lbmNvZGVkX2xlbigBDHUzMgABTGNhbGxfd2VpZ2h0X3dpdG5lc3PkARhXZWlnaHQAAgCcZGlzcGF0Y2hfd2hpdGVsaXN0ZWRfY2FsbF93aXRoX3ByZWltYWdlBAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAwAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuPQIMRHBhbGxldF9kaXNwYXRjaGVyGHBhbGxldBBDYWxsBARUAAEcUGRpc3BhdGNoX2FzX3RyZWFzdXJ5BAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAABgZGlzcGF0Y2hfYXNfYWF2ZV9tYW5hZ2VyBAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAQBEbm90ZV9hYXZlX21hbmFnZXIEARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAIYJQFTZXRzIHRoZSBBYXZlIG1hbmFnZXIgYWNjb3VudCB0byBiZSB1c2VkIGFzIG9yaWdpbiBmb3IgZGlzcGF0Y2hpbmcgY2FsbHMuAMhUaGlzIGRvZXNuJ3QgYWN0dWFsbHkgY2hhbmdlcyBhbnkgQUNMIGluIHRoZSBwb29sLgBVAVRoaXMgaXMgaW50ZW50ZWQgdG8gYmUgbWFpbmx5IHVzZWQgaW4gdGVzdG5ldCBlbnZpcm9ubWVudHMsIHdoZXJlIHRoZSBtYW5hZ2VyIGFjY291bnREY2FuIGJlIGRpZmZlcmVudC5cZGlzcGF0Y2hfd2l0aF9leHRyYV9nYXMIARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgABJGV4dHJhX2dhcxgBDHU2NAADEHxEaXNwYXRjaCBhIGNhbGwgd2l0aCBleHRyYSBnYXMuAPxUaGlzIGFsbG93cyBleGVjdXRpbmcgY2FsbHMgd2l0aCBhZGRpdGlvbmFsIHdlaWdodCAoZ2FzKSBsaW1pdC7AVGhlIGV4dHJhIGdhcyBpcyBub3QgcmVmdW5kZWQsIGV2ZW4gaWYgbm90IHVzZWQuRGRpc3BhdGNoX2V2bV9jYWxsBAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABCRoRXhlY3V0ZSBhIHNpbmdsZSBFVk0gY2FsbC71AVRoaXMgZXh0cmluc2ljIHdpbGwgZmFpbCBpZiB0aGUgRVZNIGNhbGwgcmV0dXJucyBhbnkgb3RoZXIgRXhpdFJlYXNvbiB0aGFuIGBFeGl0U3VjY2VlZChSZXR1cm5lZClgIG9yIGBFeGl0U3VjY2VlZChTdG9wcGVkKWAuPQFMb29rIHRoZSBbaHlkcmFkeF9ydW50aW1lOjpldm06OnJ1bm5lcjo6V3JhcFJ1bm5lcl0gaW1wbGVtZW50YXRpb24gZm9yIGRldGFpbHMuACxQYXJhbWV0ZXJzOmgtIGBvcmlnaW5gOiBTaWduZWQgb3JpZ2luLhUBLSBgY2FsbGA6IHByZXN1bWFibHkgYHBhbGxldF9ldm06OkNhbGw6OmNhbGxgIGFzIGJveGVkIGBSdW50aW1lQ2FsbGAuAKBFbWl0cyBgRXZtQ2FsbEZhaWxlZGAgZXZlbnQgd2hlbiBmYWlsZWQubGRpc3BhdGNoX2FzX2VtZXJnZW5jeV9hZG1pbgQBEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAUwvERpc3BhdGNoIGEgY2FsbCBhcyB0aGUgZW1lcmdlbmN5IGFkbWluIGFjY291bnQuAB0BVGhpcyBpcyBhIGZhc3QgcGF0aCBmb3IgdGhlIFRlY2huaWNhbCBDb21taXR0ZWUgdG8gcmVhY3QgdG8gZW1lcmdlbmNpZXMhAShlLmcuLCBwYXVzaW5nIGV4cGxvaXRlZCBtYXJrZXRzKSB3aXRob3V0IHdhaXRpbmcgZm9yIGEgZnVsbCByZWZlcmVuZHVtLg0BVGhlIGlubmVyIGNhbGwgaXMgZGlzcGF0Y2hlZCBhcyBhIFNpZ25lZCBvcmlnaW4gZnJvbSB0aGUgY29uZmlndXJlZGBlbWVyZ2VuY3kgYWRtaW4gYWNjb3VudC4ALFBhcmFtZXRlcnM6GQEtIGBvcmlnaW5gOiBNdXN0IHNhdGlzZnkgYEVtZXJnZW5jeUFkbWluT3JpZ2luYCAoVEMgbWFqb3JpdHkgb3IgUm9vdCku+C0gYGNhbGxgOiBUaGUgcnVudGltZSBjYWxsIHRvIGRpc3BhdGNoIGFzIHRoZSBlbWVyZ2VuY3kgYWRtaW4uADEBRW1pdHMgYEVtZXJnZW5jeUFkbWluQ2FsbERpc3BhdGNoZWRgIHdpdGggdGhlIGNhbGwgaGFzaCBhbmQgZGlzcGF0Y2ggcmVzdWx0LlxkaXNwYXRjaF93aXRoX2ZlZV9wYXllcgQBEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAcABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLkECDFRwYWxsZXRfYXNzZXRfcmVnaXN0cnkYcGFsbGV0EENhbGwEBFQAARQgcmVnaXN0ZXIkASBhc3NldF9pZHQBSE9wdGlvbjxUOjpBc3NldElkPgABEG5hbWVFAgFwT3B0aW9uPE5hbWU8VDo6U3RyaW5nTGltaXQ+PgABKGFzc2V0X3R5cGVNAgEkQXNzZXRUeXBlAAFMZXhpc3RlbnRpYWxfZGVwb3NpdPUBATxPcHRpb248QmFsYW5jZT4AARhzeW1ib2xFAgF4T3B0aW9uPFN5bWJvbDxUOjpTdHJpbmdMaW1pdD4+AAEgZGVjaW1hbHNRAgEoT3B0aW9uPHU4PgABIGxvY2F0aW9uVQIBeE9wdGlvbjxUOjpBc3NldE5hdGl2ZUxvY2F0aW9uPgABOHhjbV9yYXRlX2xpbWl09QEBPE9wdGlvbjxCYWxhbmNlPgABNGlzX3N1ZmZpY2llbnREARBib29sAAAwVFJlZ2lzdGVyIGEgbmV3IGFzc2V0LgDYTmV3IGFzc2V0IGlzIGdpdmVuIGBOZXh0QXNzZXRJZGAgLSBzZXF1ZW50aWFsIGFzc2V0IGlkADkBQXNzZXQncyBpZCBpcyBvcHRpb25hbCBhbmQgaXQgY2FuJ3QgYmUgdXNlZCBieSBhbm90aGVyIGFzc2V0IGlmIGl0J3MgcHJvdmlkZWQu3FByb3ZpZGVkIGBhc3NldF9pZGAgbXVzdCBiZSBmcm9tIHdpdGhpbiByZXNlcnZlZCByYW5nZS4JAUlmIGBhc3NldF9pZGAgaXMgYE5vbmVgLCBuZXcgYXNzZXQgaXMgZ2l2ZW4gaWQgZm9yIHNlcXVlbnRpYWwgaWRzLgBBAUFzc2V0J3MgbmFtZSBpcyBvcHRpb25hbCBhbmQgaXQgY2FuJ3QgYmUgdXNlZCBieSBhbm90aGVyIGFzc2V0IGlmIGl0J3MgcHJvdmlkZWQuWQJBZGRzIG1hcHBpbmcgYmV0d2VlbiBgbmFtZWAgYW5kIGFzc2lnbmVkIGBhc3NldF9pZGAgc28gYXNzZXQgaWQgY2FuIGJlIHJldHJpZXZlZCBieSBuYW1lIHRvbyAoTm90ZTogdGhpcyBhcHByb2FjaCBpcyB1c2VkIGluIEFNTSBpbXBsZW1lbnRhdGlvbiAoeHlrKSkApEVtaXRzICdSZWdpc3RlcmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuGHVwZGF0ZSQBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABEG5hbWVFAgFwT3B0aW9uPE5hbWU8VDo6U3RyaW5nTGltaXQ+PgABKGFzc2V0X3R5cGVdAgFET3B0aW9uPEFzc2V0VHlwZT4AAUxleGlzdGVudGlhbF9kZXBvc2l09QEBPE9wdGlvbjxCYWxhbmNlPgABOHhjbV9yYXRlX2xpbWl09QEBPE9wdGlvbjxCYWxhbmNlPgABNGlzX3N1ZmZpY2llbnRhAgEwT3B0aW9uPGJvb2w+AAEYc3ltYm9sRQIBeE9wdGlvbjxTeW1ib2w8VDo6U3RyaW5nTGltaXQ+PgABIGRlY2ltYWxzUQIBKE9wdGlvbjx1OD4AASBsb2NhdGlvblUCAXhPcHRpb248VDo6QXNzZXROYXRpdmVMb2NhdGlvbj4AAShgVXBkYXRlIHJlZ2lzdGVyZWQgYXNzZXQuACUBQWxsIHBhcmFtZXRlcmVzIGFyZSBvcHRpb25hbCBhbmQgdmFsdWUgaXMgbm90IHVwZGF0ZWQgaWYgcGFyYW0gaXMgYE5vbmVgLgAxAWBkZWNpbWFsc2AgLSBjYW4gYmUgdXBkYXRlIGJ5IGBVcGRhdGVPcmlnaW5gIG9ubHkgaWYgaXQgd2Fzbid0IHNldCB5ZXQuIE9ubHkBAWBSZWdpc3RyeU9yaWdpbmAgY2FuIHVwZGF0ZSBgZGVjaW1hbHNgIGlmIGl0IHdhcyBwcmV2aW91c2x5IHNldC4A1GBsb2NhdGlvbmAgLSBjYW4gYmUgdXBkYXRlZCBvbmx5IGJ5IGBSZWdpc3RyeU9yaWdpbmAuAJhFbWl0cyBgVXBkYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLkRyZWdpc3Rlcl9leHRlcm5hbAQBIGxvY2F0aW9uWQIBWFQ6OkFzc2V0TmF0aXZlTG9jYXRpb24ABAAkYmFuX2Fzc2V0BAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAUALHVuYmFuX2Fzc2V0BAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAYABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLkUCBBhPcHRpb24EBFQBSQIBCBBOb25lAAAAEFNvbWUEAEkCAAABAABJAgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAE0CDFRwYWxsZXRfYXNzZXRfcmVnaXN0cnkUdHlwZXMkQXNzZXRUeXBlAAEYFFRva2VuAAAADFhZSwABAChTdGFibGVTd2FwAAIAEEJvbmQAAwAgRXh0ZXJuYWwABAAURXJjMjAABQAAUQIEGE9wdGlvbgQEVAEIAQgQTm9uZQAAABBTb21lBAAIAAABAABVAgQYT3B0aW9uBARUAVkCAQgQTm9uZQAAABBTb21lBABZAgAAAQAAWQIMPGh5ZHJhZHhfcnVudGltZQx4Y200QXNzZXRMb2NhdGlvbgAABACcASBMb2NhdGlvbgAAXQIEGE9wdGlvbgQEVAFNAgEIEE5vbmUAAAAQU29tZQQATQIAAAEAAGECBBhPcHRpb24EBFQBRAEIEE5vbmUAAAAQU29tZQQARAAAAQAAZQIMNHBhbGxldF9jbGFpbXMYcGFsbGV0EENhbGwEBFQAAQQUY2xhaW0EAUhldGhlcmV1bV9zaWduYXR1cmVpAgE4RWNkc2FTaWduYXR1cmUAAAT0Q2xhaW0geEhEWCBieSBwcm92aWRpbmcgc2lnbmVkIG1lc3NhZ2Ugd2l0aCBFdGhlcmV1bSBhZGRyZXNzLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5pAgw0cGFsbGV0X2NsYWltcxh0cmFpdHM4RWNkc2FTaWduYXR1cmUAAAQAnQEBIFt1ODsgNjVdAABtAgxYcGFsbGV0X2dlbmVzaXNfaGlzdG9yeRhwYWxsZXQQQ2FsbAQEVAABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5xAgw8cGFsbGV0X29tbmlwb29sGHBhbGxldBBDYWxsBARUAAFAJGFkZF90b2tlbhABFGFzc2V0KAEoVDo6QXNzZXRJZAABNGluaXRpYWxfcHJpY2VUARRQcmljZQABKHdlaWdodF9jYXB1AgEcUGVybWlsbAABOHBvc2l0aW9uX293bmVyAAEwVDo6QWNjb3VudElkAAFAHQFBZGQgbmV3IHRva2VuIHRvIG9tbmlwb29sIGluIHF1YW50aXR5IGBhbW91bnRgIGF0IHByaWNlIGBpbml0aWFsX3ByaWNlYADFAUluaXRpYWwgbGlxdWlkaXR5IG11c3QgYmUgdHJhbnNmZXJyZWQgdG8gcG9vbCdzIGFjY291bnQgZm9yIHRoaXMgbmV3IHRva2VuIG1hbnVhbGx5IHByaW9yIHRvIGNhbGxpbmcgYGFkZF90b2tlbmAuAORJbml0aWFsIGxpcXVpZGl0eSBpcyBwb29sJ3MgYWNjb3VudCBiYWxhbmNlIG9mIHRoZSB0b2tlbi4AyFBvc2l0aW9uIE5GVCB0b2tlbiBpcyBtaW50ZWQgZm9yIGBwb3NpdGlvbl9vd25lcmAuACxQYXJhbWV0ZXJzOokBLSBgYXNzZXRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbmV3IGFzc2V0IGFkZGVkIHRvIHRoZSBwb29sLiBNdXN0IGJlIHJlZ2lzdGVyZWQgaW4gQXNzZXQgcmVnaXN0cnmALSBgaW5pdGlhbF9wcmljZWA6IEluaXRpYWwgcHJpY2U1AS0gYHBvc2l0aW9uX293bmVyYDogYWNjb3VudCBpZCBmb3Igd2hpY2ggc2hhcmUgYXJlIGRpc3RyaWJ1dGVkIGluIGZvcm0gb24gTkZUgC0gYHdlaWdodF9jYXBgOiBhc3NldCB3ZWlnaHQgY2FwAKRFbWl0cyBgVG9rZW5BZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA0YWRkX2xpcXVpZGl0eQgBFGFzc2V0KAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAlD8QWRkIGxpcXVpZGl0eSBvZiBhc3NldCBgYXNzZXRgIGluIHF1YW50aXR5IGBhbW91bnRgIHRvIE9tbmlwb29sAGEBYGFkZF9saXF1aWRpdHlgIGFkZHMgc3BlY2lmaWVkIGFzc2V0IGFtb3VudCB0byBPbW5pcG9vbCBhbmQgaW4gZXhjaGFuZ2UgZ2l2ZXMgdGhlIG9yaWdpbvBjb3JyZXNwb25kaW5nIHNoYXJlcyBhbW91bnQgaW4gZm9ybSBvZiBORlQgYXQgY3VycmVudCBwcmljZS4AhQFBc3NldCdzIHRyYWRhYmxlIHN0YXRlIG11c3QgY29udGFpbiBBRERfTElRVUlESVRZIGZsYWcsIG90aGVyd2lzZSBgTm90QWxsb3dlZGAgZXJyb3IgaXMgcmV0dXJuZWQuAGEBTkZUIGlzIG1pbnRlZCB1c2luZyBOVEZIYW5kbGVyIHdoaWNoIGltcGxlbWVudHMgbm9uLWZ1bmdpYmxlcyB0cmFpdHMgZnJvbSBmcmFtZV9zdXBwb3J0LgBZAUFzc2V0IHdlaWdodCBjYXAgbXVzdCBiZSByZXNwZWN0ZWQsIG90aGVyd2lzZSBgQXNzZXRXZWlnaHRFeGNlZWRlZGAgZXJyb3IgaXMgcmV0dXJuZWQueQFBc3NldCB3ZWlnaHQgaXMgcmF0aW8gYmV0d2VlbiBuZXcgSHViQXNzZXQgcmVzZXJ2ZSBhbmQgdG90YWwgcmVzZXJ2ZSBvZiBIdWIgYXNzZXQgaW4gT21uaXBvb2wuANUBQWRkIGxpcXVpZGl0eSBmYWlscyBpZiBwcmljZSBkaWZmZXJlbmNlIGJldHdlZW4gc3BvdCBwcmljZSBhbmQgb3JhY2xlIHByaWNlIGlzIGhpZ2hlciB0aGFuIGFsbG93ZWQgYnkgYFByaWNlQmFycmllcmAuACxQYXJhbWV0ZXJzOmUBLSBgYXNzZXRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgbmV3IGFzc2V0IGFkZGVkIHRvIHRoZSBwb29sLiBNdXN0IGJlIGFscmVhZHkgaW4gdGhlIHBvb2y0LSBgYW1vdW50YDogQW1vdW50IG9mIGFzc2V0IGFkZGVkIHRvIG9tbmlwb29sALRFbWl0cyBgTGlxdWlkaXR5QWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AYGFkZF9saXF1aWRpdHlfd2l0aF9saW1pdAwBFGFzc2V0KAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAUBtaW5fc2hhcmVzX2xpbWl0QAEcQmFsYW5jZQANXAEBQWRkIGxpcXVpZGl0eSBvZiBhc3NldCBgYXNzZXRgIGluIHF1YW50aXR5IGBhbW91bnRgIHRvIE9tbmlwb29sLgBwTGltaXQgcHJvdGVjdGlvbiBpcyBhcHBsaWVkLgBhAWBhZGRfbGlxdWlkaXR5YCBhZGRzIHNwZWNpZmllZCBhc3NldCBhbW91bnQgdG8gT21uaXBvb2wgYW5kIGluIGV4Y2hhbmdlIGdpdmVzIHRoZSBvcmlnaW7wY29ycmVzcG9uZGluZyBzaGFyZXMgYW1vdW50IGluIGZvcm0gb2YgTkZUIGF0IGN1cnJlbnQgcHJpY2UuAIUBQXNzZXQncyB0cmFkYWJsZSBzdGF0ZSBtdXN0IGNvbnRhaW4gQUREX0xJUVVJRElUWSBmbGFnLCBvdGhlcndpc2UgYE5vdEFsbG93ZWRgIGVycm9yIGlzIHJldHVybmVkLgBhAU5GVCBpcyBtaW50ZWQgdXNpbmcgTlRGSGFuZGxlciB3aGljaCBpbXBsZW1lbnRzIG5vbi1mdW5naWJsZXMgdHJhaXRzIGZyb20gZnJhbWVfc3VwcG9ydC4AWQFBc3NldCB3ZWlnaHQgY2FwIG11c3QgYmUgcmVzcGVjdGVkLCBvdGhlcndpc2UgYEFzc2V0V2VpZ2h0RXhjZWVkZWRgIGVycm9yIGlzIHJldHVybmVkLnkBQXNzZXQgd2VpZ2h0IGlzIHJhdGlvIGJldHdlZW4gbmV3IEh1YkFzc2V0IHJlc2VydmUgYW5kIHRvdGFsIHJlc2VydmUgb2YgSHViIGFzc2V0IGluIE9tbmlwb29sLgDVAUFkZCBsaXF1aWRpdHkgZmFpbHMgaWYgcHJpY2UgZGlmZmVyZW5jZSBiZXR3ZWVuIHNwb3QgcHJpY2UgYW5kIG9yYWNsZSBwcmljZSBpcyBoaWdoZXIgdGhhbiBhbGxvd2VkIGJ5IGBQcmljZUJhcnJpZXJgLgAsUGFyYW1ldGVyczplAS0gYGFzc2V0YDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIG5ldyBhc3NldCBhZGRlZCB0byB0aGUgcG9vbC4gTXVzdCBiZSBhbHJlYWR5IGluIHRoZSBwb29stC0gYGFtb3VudGA6IEFtb3VudCBvZiBhc3NldCBhZGRlZCB0byBvbW5pcG9vbIUBLSBgbWluX3NoYXJlc19saW1pdGA6IFRoZSBtaW4gYW1vdW50IG9mIGRlbHRhIHNoYXJlIGFzc2V0IHRoZSB1c2VyIHNob3VsZCByZWNlaXZlIGluIHRoZSBwb3NpdGlvbgC0RW1pdHMgYExpcXVpZGl0eUFkZGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAERhZGRfYWxsX2xpcXVpZGl0eQgBFGFzc2V0KAEoVDo6QXNzZXRJZAABQG1pbl9zaGFyZXNfbGltaXRAARxCYWxhbmNlABFQ5EFkZCBhbGwgYXZhaWxhYmxlIGxpcXVpZGl0eSBvZiBhc3NldCBgYXNzZXRgIHRvIE9tbmlwb29sLgAtAURlcG9zaXRzIHRoZSBjYWxsZXIncyBlbnRpcmUgZnJlZSBiYWxhbmNlIG9mIGBhc3NldGAuIEVxdWl2YWxlbnQgdG8gY2FsbGluZ9xgZG9fYWRkX2xpcXVpZGl0eWAgd2l0aCBgYW1vdW50ID0gZnJlZV9iYWxhbmNlKGFzc2V0KWAuAIUBQXNzZXQncyB0cmFkYWJsZSBzdGF0ZSBtdXN0IGNvbnRhaW4gQUREX0xJUVVJRElUWSBmbGFnLCBvdGhlcndpc2UgYE5vdEFsbG93ZWRgIGVycm9yIGlzIHJldHVybmVkLgBhAU5GVCBpcyBtaW50ZWQgdXNpbmcgTlRGSGFuZGxlciB3aGljaCBpbXBsZW1lbnRzIG5vbi1mdW5naWJsZXMgdHJhaXRzIGZyb20gZnJhbWVfc3VwcG9ydC4AWQFBc3NldCB3ZWlnaHQgY2FwIG11c3QgYmUgcmVzcGVjdGVkLCBvdGhlcndpc2UgYEFzc2V0V2VpZ2h0RXhjZWVkZWRgIGVycm9yIGlzIHJldHVybmVkLnkBQXNzZXQgd2VpZ2h0IGlzIHJhdGlvIGJldHdlZW4gbmV3IEh1YkFzc2V0IHJlc2VydmUgYW5kIHRvdGFsIHJlc2VydmUgb2YgSHViIGFzc2V0IGluIE9tbmlwb29sLgCdAUZhaWxzIGlmIHByaWNlIGRpZmZlcmVuY2UgYmV0d2VlbiBzcG90IHByaWNlIGFuZCBvcmFjbGUgcHJpY2UgaXMgaGlnaGVyIHRoYW4gYWxsb3dlZCBieSBgUHJpY2VCYXJyaWVyYC4ALFBhcmFtZXRlcnM6LQEtIGBhc3NldGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBhZGQuIE11c3QgYWxyZWFkeSBiZSBpbiB0aGUgcG9vbC6FAS0gYG1pbl9zaGFyZXNfbGltaXRgOiBUaGUgbWluaW11bSBhbW91bnQgb2Ygc2hhcmVzIHRoZSBjYWxsZXIgZXhwZWN0cyB0byByZWNlaXZlIGluIHRoZSBwb3NpdGlvbi4AtEVtaXRzIGBMaXF1aWRpdHlBZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBAcmVtb3ZlX2xpcXVpZGl0eQgBLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQAARhhbW91bnRAARxCYWxhbmNlAANMEQFSZW1vdmUgbGlxdWlkaXR5IG9mIGFzc2V0IGBhc3NldGAgaW4gcXVhbnRpdHkgYGFtb3VudGAgZnJvbSBPbW5pcG9vbABhAWByZW1vdmVfbGlxdWlkaXR5YCByZW1vdmVzIHNwZWNpZmllZCBzaGFyZXMgYW1vdW50IGZyb20gZ2l2ZW4gUG9zaXRpb25JZCAoTkZUIGluc3RhbmNlKS4AkQFBc3NldCdzIHRyYWRhYmxlIHN0YXRlIG11c3QgY29udGFpbiBSRU1PVkVfTElRVUlESVRZIGZsYWcsIG90aGVyd2lzZSBgTm90QWxsb3dlZGAgZXJyb3IgaXMgcmV0dXJuZWQuAF0BaWYgYWxsIHNoYXJlcyBmcm9tIGdpdmVuIHBvc2l0aW9uIGFyZSByZW1vdmVkLCBwb3NpdGlvbiBpcyBkZXN0cm95ZWQgYW5kIE5GVCBpcyBidXJuZWQuAOEBUmVtb3ZlIGxpcXVpZGl0eSBmYWlscyBpZiBwcmljZSBkaWZmZXJlbmNlIGJldHdlZW4gc3BvdCBwcmljZSBhbmQgb3JhY2xlIHByaWNlIGlzIGhpZ2hlciB0aGFuIGFsbG93ZWQgYnkgYFByaWNlQmFycmllcmAuAOUBRHluYW1pYyB3aXRoZHJhd2FsIGZlZSBpcyBhcHBsaWVkIGlmIHdpdGhkcmF3YWwgaXMgbm90IHNhZmUuIEl0IGlzIGNhbGN1bGF0ZWQgdXNpbmcgc3BvdCBwcmljZSBhbmQgZXh0ZXJuYWwgcHJpY2Ugb3JhY2xlLtxXaXRoZHJhd2FsIGlzIGNvbnNpZGVyZWQgc2FmZSB3aGVuIHRyYWRpbmcgaXMgZGlzYWJsZWQuACxQYXJhbWV0ZXJzOjEBLSBgcG9zaXRpb25faWRgOiBUaGUgaWRlbnRpZmllciBvZiBwb3NpdGlvbiB3aGljaCBsaXF1aWRpdHkgaXMgcmVtb3ZlZCBmcm9tLsgtIGBhbW91bnRgOiBBbW91bnQgb2Ygc2hhcmVzIHJlbW92ZWQgZnJvbSBvbW5pcG9vbAC8RW1pdHMgYExpcXVpZGl0eVJlbW92ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AbHJlbW92ZV9saXF1aWRpdHlfd2l0aF9saW1pdAwBLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQAARhhbW91bnRAARxCYWxhbmNlAAEkbWluX2xpbWl0QAEcQmFsYW5jZQAOWBEBUmVtb3ZlIGxpcXVpZGl0eSBvZiBhc3NldCBgYXNzZXRgIGluIHF1YW50aXR5IGBhbW91bnRgIGZyb20gT21uaXBvb2wAcExpbWl0IHByb3RlY3Rpb24gaXMgYXBwbGllZC4AYQFgcmVtb3ZlX2xpcXVpZGl0eWAgcmVtb3ZlcyBzcGVjaWZpZWQgc2hhcmVzIGFtb3VudCBmcm9tIGdpdmVuIFBvc2l0aW9uSWQgKE5GVCBpbnN0YW5jZSkuAJEBQXNzZXQncyB0cmFkYWJsZSBzdGF0ZSBtdXN0IGNvbnRhaW4gUkVNT1ZFX0xJUVVJRElUWSBmbGFnLCBvdGhlcndpc2UgYE5vdEFsbG93ZWRgIGVycm9yIGlzIHJldHVybmVkLgBdAWlmIGFsbCBzaGFyZXMgZnJvbSBnaXZlbiBwb3NpdGlvbiBhcmUgcmVtb3ZlZCwgcG9zaXRpb24gaXMgZGVzdHJveWVkIGFuZCBORlQgaXMgYnVybmVkLgDhAVJlbW92ZSBsaXF1aWRpdHkgZmFpbHMgaWYgcHJpY2UgZGlmZmVyZW5jZSBiZXR3ZWVuIHNwb3QgcHJpY2UgYW5kIG9yYWNsZSBwcmljZSBpcyBoaWdoZXIgdGhhbiBhbGxvd2VkIGJ5IGBQcmljZUJhcnJpZXJgLgDlAUR5bmFtaWMgd2l0aGRyYXdhbCBmZWUgaXMgYXBwbGllZCBpZiB3aXRoZHJhd2FsIGlzIG5vdCBzYWZlLiBJdCBpcyBjYWxjdWxhdGVkIHVzaW5nIHNwb3QgcHJpY2UgYW5kIGV4dGVybmFsIHByaWNlIG9yYWNsZS7cV2l0aGRyYXdhbCBpcyBjb25zaWRlcmVkIHNhZmUgd2hlbiB0cmFkaW5nIGlzIGRpc2FibGVkLgAsUGFyYW1ldGVyczoxAS0gYHBvc2l0aW9uX2lkYDogVGhlIGlkZW50aWZpZXIgb2YgcG9zaXRpb24gd2hpY2ggbGlxdWlkaXR5IGlzIHJlbW92ZWQgZnJvbS7ILSBgYW1vdW50YDogQW1vdW50IG9mIHNoYXJlcyByZW1vdmVkIGZyb20gb21uaXBvb2wFAS0gYG1pbl9saW1pdGA6IFRoZSBtaW4gYW1vdW50IG9mIGFzc2V0IHRvIGJlIHJlbW92ZWQgZm9yIHRoZSB1c2VyALxFbWl0cyBgTGlxdWlkaXR5UmVtb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBQcmVtb3ZlX2FsbF9saXF1aWRpdHkIASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAEkbWluX2xpbWl0QAEcQmFsYW5jZQAPUIhSZW1vdmUgYWxsIGxpcXVpZGl0eSBmcm9tIHBvc2l0aW9uAHBMaW1pdCBwcm90ZWN0aW9uIGlzIGFwcGxpZWQuAFkBYHJlbW92ZV9hbGxfbGlxdWlkaXR5YCByZW1vdmVzIGFsbCBzaGFyZXMgYW1vdW50IGZyb20gZ2l2ZW4gUG9zaXRpb25JZCAoTkZUIGluc3RhbmNlKS4AkQFBc3NldCdzIHRyYWRhYmxlIHN0YXRlIG11c3QgY29udGFpbiBSRU1PVkVfTElRVUlESVRZIGZsYWcsIG90aGVyd2lzZSBgTm90QWxsb3dlZGAgZXJyb3IgaXMgcmV0dXJuZWQuAF0BaWYgYWxsIHNoYXJlcyBmcm9tIGdpdmVuIHBvc2l0aW9uIGFyZSByZW1vdmVkLCBwb3NpdGlvbiBpcyBkZXN0cm95ZWQgYW5kIE5GVCBpcyBidXJuZWQuAPEBUmVtb3ZlIGFsbCBsaXF1aWRpdHkgZmFpbHMgaWYgcHJpY2UgZGlmZmVyZW5jZSBiZXR3ZWVuIHNwb3QgcHJpY2UgYW5kIG9yYWNsZSBwcmljZSBpcyBoaWdoZXIgdGhhbiBhbGxvd2VkIGJ5IGBQcmljZUJhcnJpZXJgLgDlAUR5bmFtaWMgd2l0aGRyYXdhbCBmZWUgaXMgYXBwbGllZCBpZiB3aXRoZHJhd2FsIGlzIG5vdCBzYWZlLiBJdCBpcyBjYWxjdWxhdGVkIHVzaW5nIHNwb3QgcHJpY2UgYW5kIGV4dGVybmFsIHByaWNlIG9yYWNsZS7cV2l0aGRyYXdhbCBpcyBjb25zaWRlcmVkIHNhZmUgd2hlbiB0cmFkaW5nIGlzIGRpc2FibGVkLgAsUGFyYW1ldGVyczpVAS0gYHBvc2l0aW9uX2lkYDogVGhlIGlkZW50aWZpZXIgb2YgcG9zaXRpb24gd2hpY2ggbGlxdWlkaXR5IGlzIGVudGlyZWx5IHJlbW92ZWQgZnJvbS4AvEVtaXRzIGBMaXF1aWRpdHlSZW1vdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAEhzYWNyaWZpY2VfcG9zaXRpb24EASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAQcnFNhY3JpZmljZSBMUCBwb3NpdGlvbiBpbiBmYXZvciBvZiBwb29sLgA9AUEgcG9zaXRpb24gaXMgZGVzdHJveWVkIGFuZCBsaXF1aWRpdHkgb3duZWQgYnkgTFAgYmVjb21lcyBwb29sIG93bmVkIGxpcXVpZGl0eS4AvE9ubHkgb3duZXIgb2YgcG9zaXRpb24gY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uAGhFbWl0cyBgUG9zaXRpb25EZXN0cm95ZWRgLhBzZWxsEAEgYXNzZXRfaW4oAShUOjpBc3NldElkAAEkYXNzZXRfb3V0KAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAThtaW5fYnV5X2Ftb3VudEABHEJhbGFuY2UABUS0RXhlY3V0ZSBhIHN3YXAgb2YgYGFzc2V0X2luYCBmb3IgYGFzc2V0X291dGAuAJBQcmljZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBPbW5pcG9vbC4AfEh1YiBhc3NldCBpcyB0cmFkZWQgc2VwYXJhdGVseS4ABQJBc3NldCdzIHRyYWRhYmxlIHN0YXRlcyBtdXN0IGNvbnRhaW4gU0VMTCBmbGFnIGZvciBhc3NldF9pbiBhbmQgQlVZIGZsYWcgZm9yIGFzc2V0X291dCwgb3RoZXJ3aXNlIGBOb3RBbGxvd2VkYCBlcnJvciBpcyByZXR1cm5lZC4ALFBhcmFtZXRlcnM6qC0gYGFzc2V0X2luYDogSUQgb2YgYXNzZXQgc29sZCB0byB0aGUgcG9vbLwtIGBhc3NldF9vdXRgOiBJRCBvZiBhc3NldCBib3VnaHQgZnJvbSB0aGUgcG9vbIAtIGBhbW91bnRgOiBBbW91bnQgb2YgYXNzZXQgc29sZNgtIGBtaW5fYnV5X2Ftb3VudGA6IE1pbmltdW0gYW1vdW50IHJlcXVpcmVkIHRvIHJlY2VpdmUA3EVtaXRzIGBTZWxsRXhlY3V0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4gRGVwcmVjYXRlZC7gRW1pdHMgYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4ADGJ1eRABJGFzc2V0X291dCgBKFQ6OkFzc2V0SWQAASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAE8bWF4X3NlbGxfYW1vdW50QAEcQmFsYW5jZQAGRLRFeGVjdXRlIGEgc3dhcCBvZiBgYXNzZXRfb3V0YCBmb3IgYGFzc2V0X2luYC4AkFByaWNlIGlzIGRldGVybWluZWQgYnkgdGhlIE9tbmlwb29sLgB8SHViIGFzc2V0IGlzIHRyYWRlZCBzZXBhcmF0ZWx5LgAFAkFzc2V0J3MgdHJhZGFibGUgc3RhdGVzIG11c3QgY29udGFpbiBTRUxMIGZsYWcgZm9yIGFzc2V0X2luIGFuZCBCVVkgZmxhZyBmb3IgYXNzZXRfb3V0LCBvdGhlcndpc2UgYE5vdEFsbG93ZWRgIGVycm9yIGlzIHJldHVybmVkLgAsUGFyYW1ldGVyczqoLSBgYXNzZXRfaW5gOiBJRCBvZiBhc3NldCBzb2xkIHRvIHRoZSBwb29svC0gYGFzc2V0X291dGA6IElEIG9mIGFzc2V0IGJvdWdodCBmcm9tIHRoZSBwb29sgC0gYGFtb3VudGA6IEFtb3VudCBvZiBhc3NldCBzb2xkvC0gYG1heF9zZWxsX2Ftb3VudGA6IE1heGltdW0gYW1vdW50IHRvIGJlIHNvbGQuANhFbWl0cyBgQnV5RXhlY3V0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4gRGVwcmVjYXRlZC7gRW1pdHMgYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AYHNldF9hc3NldF90cmFkYWJsZV9zdGF0ZQgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABFHN0YXRleQIBLFRyYWRhYmlsaXR5AAcgeFVwZGF0ZSBhc3NldCdzIHRyYWRhYmxlIHN0YXRlLgAsUGFyYW1ldGVyczpYLSBgYXNzZXRfaWRgOiBhc3NldCBpZFAtIGBzdGF0ZWA6IG5ldyBzdGF0ZQDMRW1pdHMgYFRyYWRhYmxlU3RhdGVVcGRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAFByZWZ1bmRfcmVmdXNlZF9hc3NldAwBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAASRyZWNpcGllbnQAATBUOjpBY2NvdW50SWQACCSwUmVmdW5kIGdpdmVuIGFtb3VudCBvZiBhc3NldCB0byBhIHJlY2lwaWVudC4AWQJBIHJlZnVuZCBpcyBuZWVkZWQgd2hlbiBhIHRva2VuIGlzIHJlZnVzZWQgdG8gYmUgYWRkZWQgdG8gT21uaXBvb2wsIGFuZCBpbml0aWFsIGxpcXVpZGl0eSBvZiB0aGUgYXNzZXQgaGFzIGJlZW4gYWxyZWFkeSB0cmFuc2ZlcnJlZCB0byBwb29sJ3MgYWNjb3VudC4AjQFUcmFuc2ZlciBjYW4gYmUgZXhlY3V0ZWQgb25seSBpZiBhc3NldCBpcyBub3QgaW4gT21uaXBvb2wgYW5kIHBvb2wncyBiYWxhbmNlIGhhcyBzdWZmaWNpZW50IGFtb3VudC4AyE9ubHkgYEF1dGhvcml0eU9yaWdpbmAgY2FuIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24uAFRFbWl0cyBgQXNzZXRSZWZ1bmRlZGBQc2V0X2Fzc2V0X3dlaWdodF9jYXAIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAQxjYXB1AgEcUGVybWlsbAAJIGRVcGRhdGUgYXNzZXQncyB3ZWlnaHQgY2FwACxQYXJhbWV0ZXJzOlgtIGBhc3NldF9pZGA6IGFzc2V0IGlkXC0gYGNhcGA6IG5ldyB3ZWlnaHQgY2FwANBFbWl0cyBgQXNzZXRXZWlnaHRDYXBVcGRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAGx3aXRoZHJhd19wcm90b2NvbF9saXF1aWRpdHkQASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEUcHJpY2V9AgFIKEJhbGFuY2UsIEJhbGFuY2UpAAEQZGVzdAABMFQ6OkFjY291bnRJZAALLGxSZW1vdmVzIHByb3RvY29sIGxpcXVpZGl0eS4AhQFQcm90b2NvbCBsaXF1aWRpdHkgaXMgbGlxdWlkaXR5IGZyb20gc2FjcmlmaWNlZCBwb3NpdGlvbnMuIEluIG9yZGVyIHRvIHJlbW92ZSBwcm90b2NvbCBsaXF1aWRpdHkseQF3ZSBuZWVkIHRoZSBrbm93IHRoZSBwcmljZSBvZiB0aGUgcG9zaXRpb24gYXQgdGhlIHRpbWUgb2Ygc2FjcmlmaWNlLiBIZW5jZSB0aGlzIHNwZWNpZmljIGNhbGwuALRPbmx5IGBBdXRob3JpdHlPcmlnaW5gIGNhbiBwZXJmb3JtIHRoaXMgY2FsbC4AeQFOb3RlIHRoYXQgc2FjcmlmaWNlIHBvc2l0aW9uIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUuIFRoZXJlIGlzIG5vIGxvbmdlciBhIG5lZWQgZm9yIHRoYXQuAGEBSXQgd29ya3MgdGhlIHNhbWUgd2F5IGFzIHJlbW92ZSBsaXF1aWRpdHkgY2FsbCwgYnV0IHBvc2l0aW9uIGlzIHRlbXBvcmFyeSByZWNvbnN0cnVjdGVkLgAwcmVtb3ZlX3Rva2VuCAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEsYmVuZWZpY2lhcnkAATBUOjpBY2NvdW50SWQADCxwUmVtb3ZlcyB0b2tlbiBmcm9tIE9tbmlwb29sLgBFAUFzc2V0J3MgdHJhZGFiaWxpdHkgbXVzdCBiZSBGUk9aRU4sIG90aGVyd2lzZSBgQXNzZXROb3RGcm96ZW5gIGVycm9yIGlzIHJldHVybmVkLgBhAVJlbWFpbmluZyBzaGFyZXMgbXVzdCBiZWxvbmcgdG8gcHJvdG9jb2wsIG90aGVyd2lzZSBgU2hhcmVzUmVtYWluaW5nYCBlcnJvciBpcyByZXR1cm5lZC4AeQFQcm90b2NvbCdzIGxpcXVpZGl0eSBpcyB0cmFuc2ZlcnJlZCB0byB0aGUgYmVuZWZpY2lhcnkgYWNjb3VudCBhbmQgaHViIGFzc2V0IGFtb3VudCBpcyBidXJuZWQuALRPbmx5IGBBdXRob3JpdHlPcmlnaW5gIGNhbiBwZXJmb3JtIHRoaXMgY2FsbC4ArEVtaXRzIGBUb2tlblJlbW92ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4wc2V0X3NsaXBfZmVlBAEgc2xpcF9mZWWBAgFUT3B0aW9uPFNsaXBGZWVDb25maWc+ABAgkFNldCBvciBjbGVhciBzbGlwIGZlZSBjb25maWd1cmF0aW9uLgAxAVdoZW4gc2V0IHRvIGBTb21lKGNvbmZpZylgLCBzbGlwIGZlZXMgYXJlIGVuYWJsZWQgd2l0aCB0aGUgZ2l2ZW4gcGFyYW1ldGVycy6sV2hlbiBzZXQgdG8gYE5vbmVgLCBzbGlwIGZlZXMgYXJlIGRpc2FibGVkLgDAQ2FuIG9ubHkgYmUgY2FsbGVkIGJ5IGBVcGRhdGVUcmFkYWJpbGl0eU9yaWdpbmAuAGRFbWl0cyBgU2xpcEZlZVNldGAgZXZlbnQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLnUCDDRzcF9hcml0aG1ldGljKHBlcl90aGluZ3McUGVybWlsbAAABAAoAQx1MzIAAHkCDDxwYWxsZXRfb21uaXBvb2wUdHlwZXMsVHJhZGFiaWxpdHkAAAQBEGJpdHMIAQh1OAAAfQIAAAQIQEAAgQIEGE9wdGlvbgQEVAGFAgEIEE5vbmUAAAAQU29tZQQAhQIAAAEAAIUCDDxwYWxsZXRfb21uaXBvb2wUdHlwZXM0U2xpcEZlZUNvbmZpZwAABAEwbWF4X3NsaXBfZmVldQIBHFBlcm1pbGwAAIkCDGBwYWxsZXRfdHJhbnNhY3Rpb25fcGF1c2UYcGFsbGV0EENhbGwEBFQAAQhEcGF1c2VfdHJhbnNhY3Rpb24IASxwYWxsZXRfbmFtZRQBHFZlYzx1OD4AATRmdW5jdGlvbl9uYW1lFAEcVmVjPHU4PgAAAEx1bnBhdXNlX3RyYW5zYWN0aW9uCAEscGFsbGV0X25hbWUUARxWZWM8dTg+AAE0ZnVuY3Rpb25fbmFtZRQBHFZlYzx1OD4AAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMujQIMNHBhbGxldF9kdXN0ZXIYcGFsbGV0EENhbGwEBFQAAQwwZHVzdF9hY2NvdW50CAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABLGN1cnJlbmN5X2lkKAEoVDo6QXNzZXRJZAAAMFxEdXN0IHNwZWNpZmllZCBhY2NvdW50LnUBSUYgYWNjb3VudCBiYWxhbmNlIGlzIDwgbWluLiBleGlzdGVudGlhbCBkZXBvc2l0IG9mIGdpdmVuIGN1cnJlbmN5LCBhbmQgYWNjb3VudCBpcyBhbGxvd2VkIHRvEQFiZSBkdXN0ZWQsIHRoZSByZW1haW5pbmcgYmFsYW5jZSBpcyB0cmFuc2ZlcnJlZCB0byB0cmVhc3VyeSBhY2NvdW50LgB5AUluIGNhc2Ugb2YgQVRva2VuLCB3ZSBwZXJmb3JtIGFuIGVyYzIwIGR1c3QsIHdoaWNoIGRvZXMgYSB3aWh0ZHJhdyBhbGwgdG8gdGhlIHRyZWFzdXJ5IGFjY291bnSRAU5vdGUgdGhhdCBpbiB0aGlzIGNhc2UsIHRoZSB0cmVhc3VyeSB3aWxsIGp1c3QgcmVjZWl2ZSB0aGUgdW5kZXJseWluZyB0b2tlbiwgbm90IHRoZSBhdG9rZW4gdmFyaWFudC4ADQFUaGUgdHJhbnNhY3Rpb24gZmVlIGlzIHJldHVybmVkIGJhY2sgaW4gY2FzZSBvZiBzdWNjZXNzZnVsIGR1c3RpbmcuAJRUcmVhc3VyeSBhY2NvdW50IGNhbiBuZXZlciBiZSBkdXN0ZWQuAJRFbWl0cyBgRHVzdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuRHdoaXRlbGlzdF9hY2NvdW50BAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABGE0BQWRkIGFjY291bnQgdG8gbGlzdCBvZiB3aGl0ZWxpc3QgYWNjb3VudHMuIEFjY291bnQgd2hpY2ggYXJlIGV4Y2x1ZGVkIGZyb20gZHVzdGluZy4pAUlmIHN1Y2ggYWNjb3VudCBzaG91bGQgYmUgZHVzdGVkIC0gYEFjY291bnRXaGl0ZWxpc3RlZGAgZXJyb3IgaXMgcmV0dXJuZWQuiE9ubHkgcm9vdCBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4AkEVtaXRzIGBBZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBUcmVtb3ZlX2Zyb21fd2hpdGVsaXN0BAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAACEF0BUmVtb3ZlIGFjY291bnQgZnJvbSBsaXN0IG9mIHdoaXRlbGlzdCBhY2NvdW50cy4gVGhhdCBtZWFucyBhY2NvdW50IGNhbiBiZSBkdXN0ZWQgYWdhaW4uAJhFbWl0cyBgUmVtb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMukQIMXHBhbGxldF9saXF1aWRpdHlfbWluaW5nGHBhbGxldBBDYWxsCARUAARJAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLpUCDIBwYWxsZXRfb21uaXBvb2xfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQQQ2FsbAQEVAABREhjcmVhdGVfZ2xvYmFsX2Zhcm0gATR0b3RhbF9yZXdhcmRzQAEcQmFsYW5jZQABYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kcygBLFBlcmlvZE9mPFQ+AAFEYmxvY2tzX3Blcl9wZXJpb2QoAURCbG9ja051bWJlckZvcjxUPgABPHJld2FyZF9jdXJyZW5jeSgBKFQ6OkFzc2V0SWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABQHlpZWxkX3Blcl9wZXJpb2SZAgEsUGVycXVpbnRpbGwAASxtaW5fZGVwb3NpdEABHEJhbGFuY2UAAVRscm5hX3ByaWNlX2FkanVzdG1lbnRUASRGaXhlZFUxMjgAAHD8Q3JlYXRlIGEgbmV3IGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbSB3aXRoIHByb3ZpZGVkIHBhcmFtZXRlcnMuAEUBYG93bmVyYCBhY2NvdW50IGhhcyB0byBoYXZlIGF0IGxlYXN0IGB0b3RhbF9yZXdhcmRzYCBiYWxhbmNlLiBUaGVzZSBmdW5kcyB3aWxsIGJlpHRyYW5zZmVycmVkIGZyb20gYG93bmVyYCB0byBmYXJtIGFjY291bnQuAPBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgVDo6Q3JlYXRlT3JpZ2luYC5VASEhIVdBUk46IGBUOjpDcmVhdGVPcmlnaW5gIGhhcyBwb3dlciBvdmVyIGZ1bmRzIG9mIGBvd25lcmAncyBhY2NvdW50IGFuZCBpdCBzaG91bGQgYmXQY29uZmlndXJlZCB0byB0cnVzdGVkIG9yaWdpbiBlLmcgU3VkbyBvciBHb3Zlcm5hbmNlLgAsUGFyYW1ldGVyczpVAS0gYG9yaWdpbmA6IGFjY291bnQgYWxsb3dlZCB0byBjcmVhdGUgbmV3IGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbShyb290LCBnb3Zlcm5hbmNlKS41AS0gYHRvdGFsX3Jld2FyZHNgOiB0b3RhbCByZXdhcmRzIHBsYW5uZWQgdG8gZGlzdHJpYnV0ZS4gVGhlc2UgcmV3YXJkcyB3aWxsIGJl3GRpc3RyaWJ1dGVkIGJldHdlZW4gYWxsIHlpZWxkIGZhcm1zIGluIHRoZSBnbG9iYWwgZmFybS5ZAS0gYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kc2A6IHBsYW5uZWQgbnVtYmVyIG9mIHBlcmlvZHMgdG8gZGlzdHJpYnV0ZSBgdG90YWxfcmV3YXJkc2AuKQFXQVJOOiBUSElTIElTIE5PVCBIQVJEIERFQURMSU5FLiBOb3QgYWxsIHJld2FyZHMgaGF2ZSB0byBiZSBkaXN0cmlidXRlZCBpbl0BYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kc2AuIFJld2FyZHMgYXJlIGRpc3RyaWJ1dGVkIGJhc2VkIG9uIHRoZSBzaXR1YXRpb24gaW4gdGhlIHlpZWxkQQFmYXJtcyBhbmQgY2FuIGJlIGRpc3RyaWJ1dGVkIGluIGEgbG9uZ2VyLCB0aG91Z2ggbmV2ZXIgaW4gYSBzaG9ydGVyLCB0aW1lIGZyYW1lLlkBLSBgYmxvY2tzX3Blcl9wZXJpb2RgOiAgbnVtYmVyIG9mIGJsb2NrcyBpbiBhIHNpbmdsZSBwZXJpb2QuIE1pbi4gbnVtYmVyIG9mIGJsb2NrcyBwZXIwcGVyaW9kIGlzIDEuwC0gYHJld2FyZF9jdXJyZW5jeWA6IHBheW9mZiBjdXJyZW5jeSBvZiByZXdhcmRzLjkBLSBgb3duZXJgOiBsaXEuIG1pbmluZyBmYXJtIG93bmVyLiBUaGlzIGFjY291bnQgd2lsbCBiZSBhYmxlIHRvIG1hbmFnZSBjcmVhdGVkZGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbS4pAS0gYHlpZWxkX3Blcl9wZXJpb2RgOiBwZXJjZW50YWdlIHJldHVybiBvbiBgcmV3YXJkX2N1cnJlbmN5YCBvZiBhbGwgZmFybXMukQEtIGBtaW5fZGVwb3NpdGA6IG1pbmltdW0gYW1vdW50IG9mIExQIHNoYXJlcyB0byBiZSBkZXBvc2l0ZWQgaW50byB0aGUgbGlxdWlkaXR5IG1pbmluZyBieSBlYWNoIHVzZXIuTQEtIGBscm5hX3ByaWNlX2FkanVzdG1lbnRgOiBwcmljZSBhZGp1c3RtZW50IGJldHdlZW4gYFtMUk5BXWAgYW5kIGByZXdhcmRfY3VycmVuY3lgLgCoRW1pdHMgYEdsb2JhbEZhcm1DcmVhdGVkYCB3aGVuIHN1Y2Nlc3NmdWwuAFR0ZXJtaW5hdGVfZ2xvYmFsX2Zhcm0EAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAACNJxUZXJtaW5hdGUgZXhpc3RpbmcgbGlxLiBtaW5pbmcgcHJvZ3JhbS4AoE9ubHkgZmFybSBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4AEQFXQVJOOiBUbyBzdWNjZXNzZnVsbHkgdGVybWluYXRlIGEgZ2xvYmFsIGZhcm0sIGZhcm0gaGF2ZSB0byBiZSBlbXB0eeAoYWxsIHlpZWxkIGZhcm1zIGluIHRoZSBnbG9iYWwgZmFybSBtdXN0IGJlIHRlcm1pbmF0ZWQpLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci7cLSBgZ2xvYmFsX2Zhcm1faWRgOiBpZCBvZiBnbG9iYWwgZmFybSB0byBiZSB0ZXJtaW5hdGVkLgDMRW1pdHMgYEdsb2JhbEZhcm1UZXJtaW5hdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAERjcmVhdGVfeWllbGRfZmFybRABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAE0bG95YWx0eV9jdXJ2ZZ0CAVBPcHRpb248TG95YWx0eUN1cnZlPgADSNxDcmVhdGUgeWllbGQgZmFybSBmb3IgZ2l2ZW4gYGFzc2V0X2lkYCBpbiB0aGUgb21uaXBvb2wuBCCgT25seSBmYXJtIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgDsQXNzZXQgd2l0aCBgYXNzZXRfaWRgIGhhcyB0byBiZSByZWdpc3RlcmVkIGluIHRoZSBvbW5pcG9vbC5VAUF0IG1vc3Qgb25lIGBhY3RpdmVgIHlpZWxkIGZhcm0gY2FuIGV4aXN0IGluIG9uZSBnbG9iYWwgZmFybSBmb3IgdGhlIHNhbWUgYGFzc2V0X2lkYC4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuHQEtIGBnbG9iYWxfZmFybV9pZGA6IGdsb2JhbCBmYXJtIGlkIHRvIHdoaWNoIGEgeWllbGQgZmFybSB3aWxsIGJlIGFkZGVkLh0BLSBgYXNzZXRfaWRgOiBpZCBvZiBhIGFzc2V0IGluIHRoZSBvbW5pcG9vbC4gWWllbGQgZmFybSB3aWxsIGJlIGNyZWF0ZWRhAWZvciB0aGlzIGFzc2V0IGFuZCB1c2VyIHdpbGwgYmUgYWJsZSB0byBsb2NrIExQIHNoYXJlcyBpbnRvIHRoaXMgeWllbGQgZmFybSBpbW1lZGlhdGVseS6gLSBgbXVsdGlwbGllcmA6IHlpZWxkIGZhcm0ncyBtdWx0aXBsaWVyLl0BLSBgbG95YWx0eV9jdXJ2ZWA6IGN1cnZlIHRvIGNhbGN1bGF0ZSBsb3lhbHR5IG11bHRpcGxpZXIgdG8gZGlzdHJpYnV0ZSByZXdhcmRzIHRvIHVzZXJz4HdpdGggdGltZSBpbmNlbnRpdmUuIGBOb25lYCBtZWFucyBubyBsb3lhbHR5IG11bHRpcGxpZXIuALxFbWl0cyBgWWllbGRGYXJtQ3JlYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBEdXBkYXRlX3lpZWxkX2Zhcm0MAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABKG11bHRpcGxpZXJUAThGYXJtTXVsdGlwbGllcgAEMHxVcGRhdGUgeWllbGQgZmFybSdzIG11bHRpcGxpZXIuBCCgT25seSBmYXJtIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4dAS0gYGdsb2JhbF9mYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSB3aWxsIGJlIHVwZGF0ZWQuIQEtIGBhc3NldF9pZGA6IGlkIG9mIHRoZSBhc3NldCBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIHRoZSBnbG9iYWwgZmFybS6wLSBgbXVsdGlwbGllcmA6IG5ldyB5aWVsZCBmYXJtJ3MgbXVsdGlwbGllci4AvEVtaXRzIGBZaWVsZEZhcm1VcGRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADxzdG9wX3lpZWxkX2Zhcm0IAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAFQLhTdG9wIGxpcXVpZGl0eSBtaW1pbmcgZm9yIHNwZWNpZmljIHlpZWxkIGZhcm0uADEBVGhpcyBmdW5jdGlvbiBjbGFpbXMgcmV3YXJkcyBmcm9tIGBHbG9iYWxGYXJtYCBsYXN0IHRpbWUgYW5kIHN0b3AgeWllbGQgZmFybSEBaW5jZW50aXZpemF0aW9uIGZyb20gYSBgR2xvYmFsRmFybWAuIFVzZXJzIHdpbGwgYmUgYWJsZSB0byBvbmx5IHdpdGhkcmF3yHNoYXJlcyh3aXRoIGNsYWltaW5nKSBhZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24u4GBkZXBvc2l0X3NoYXJlcygpYCBpcyBub3QgYWxsb3dlZCBvbiBzdG9wcGVkIHlpZWxkIGZhcm0uBCCgT25seSBmYXJtIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4FAS0gYGdsb2JhbF9mYXJtX2lkYDogZmFybSBpZCBpbiB3aGljaCB5aWVsZCBmYXJtIHdpbGwgYmUgY2FuY2VsZWQuIQEtIGBhc3NldF9pZGA6IGlkIG9mIHRoZSBhc3NldCBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIHRoZSBnbG9iYWwgZmFybS4AvEVtaXRzIGBZaWVsZEZhcm1TdG9wcGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAERyZXN1bWVfeWllbGRfZmFybRABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAZM+FJlc3VtZSBpbmNlbnRpdml6YXRpb24gb2YgdGhlIGFzc2V0IHJlcHJlc2VudGVkIGJ5IHlpZWxkIGZhcm0uAC0BVGhpcyBmdW5jdGlvbiByZXN1bWUgaW5jZW50aXZpemF0aW9uIG9mIHRoZSBhc3NldCBmcm9tIHRoZSBgR2xvYmFsRmFybWAgYW5kMQFyZXN0b3JlIGZ1bGwgZnVuY3Rpb25hbGl0eSBvciB0aGUgeWllbGQgZmFybS4gVXNlcnMgd2lsbCBiZSBhYmxlIHRvIGRlcG9zaXQsZGNsYWltIGFuZCB3aXRoZHJhdyBhZ2Fpbi4AEQFXQVJOOiBZaWVsZCBmYXJtKGFuZCB1c2VycykgaXMgTk9UIHJld2FyZGVkIGZvciB0aW1lIGl0IHdhcyBzdG9wcGVkLgCgT25seSBmYXJtIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4dAS0gYGdsb2JhbF9mYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSB3aWxsIGJlIHJlc3VtZWQu2C0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB0aGUgeWllbGQgZmFybSB0byBiZSByZXN1bWVkLiEBLSBgYXNzZXRfaWRgOiBpZCBvZiB0aGUgYXNzZXQgaWRlbnRpZnlpbmcgeWllbGQgZmFybSBpbiB0aGUgZ2xvYmFsIGZhcm0umC0gYG11bHRpcGxpZXJgOiB5aWVsZCBmYXJtIG11bHRpcGxpZXIuALxFbWl0cyBgWWllbGRGYXJtUmVzdW1lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBQdGVybWluYXRlX3lpZWxkX2Zhcm0MAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAHUFRUZXJtaW5hdGUgeWllbGQgZmFybS4AgQFUaGlzIGZ1bmN0aW9uIG1hcmtzIGEgeWllbGQgZmFybSBhcyByZWFkeSB0byBiZSByZW1vdmVkIGZyb20gc3RvcmFnZSB3aGVuIGl0J3MgZW1wdHkuIFVzZXJzIHdpbGxlAWJlIGFibGUgdG8gb25seSB3aXRoZHJhdyBzaGFyZXMod2l0aG91dCBjbGFpbWluZyByZXdhcmRzIGZyb20geWllbGQgZmFybSkuIFVucGFpZCByZXdhcmRzfQF3aWxsIGJlIHRyYW5zZmVycmVkIGJhY2sgdG8gZ2xvYmFsIGZhcm0gYW5kIGl0IHdpbGwgYmUgdXNlZCB0byBkaXN0cmlidXRlIHRvIG90aGVyIHlpZWxkIGZhcm1zLgDcWWllbGQgZmFybSBtdXN0IGJlIHN0b3BwZWQgYmVmb3JlIGl0IGNhbiBiZSB0ZXJtaW5hdGVkLgBxAU9ubHkgZ2xvYmFsIGZhcm0ncyBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4gWWllbGQgZmFybSBzdGF5cyBpbiB0aGUgc3RvcmFnZSB1bnRpbCBpdCdzbQFlbXB0eShhbGwgZmFybSBlbnRyaWVzIGFyZSB3aXRoZHJhd24pLiBMYXN0IHdpdGhkcmF3biBmcm9tIHlpZWxkIGZhcm0gdHJpZ2dlciByZW1vdmluZyBmcm9tMHRoZSBzdG9yYWdlLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4xAS0gYGdsb2JhbF9mYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSBzaG91bGQgYmUgdGVybWluYXRlZC7ULSBgeWllbGRfZmFybV9pZGA6IGlkIG9mIHlpZWxkIGZhcm0gdG8gYmUgdGVybWluYXRlZC7ULSBgYXNzZXRfaWRgOiBpZCBvZiB0aGUgYXNzZXQgaWRlbnRpZnlpbmcgeWllbGQgZmFybS4AyEVtaXRzIGBZaWVsZEZhcm1UZXJtaW5hdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADhkZXBvc2l0X3NoYXJlcwwBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAAIOOxEZXBvc2l0IG9tbmlwb29sIHBvc2l0aW9uKExQIHNoYXJlcykgdG8gYSBsaXF1aWRpdHkgbWluaW5nLgBxAVRoaXMgZnVuY3Rpb24gdHJhbnNmZXJzIG9tbmlwb29sIHBvc2l0aW9uIGZyb20gYG9yaWdpbmAgdG8gcGFsbGV0J3MgYWNjb3VudCBhbmQgbWludCBORlQgZm9yRQFgb3JpZ2luYCBhY2NvdW50LiBNaW50ZWQgTkZUIHJlcHJlc2VudHMgZGVwb3NpdCBpbiB0aGUgbGlxdWlkaXR5IG1pbmluZy4gVXNlciBjYW4hAWRlcG9zaXQgb21uaXBvb2wgcG9zaXRpb24gYXMgYSB3aG9sZShhbGwgdGhlIExQIHNoYXJlcyBpbiB0aGUgcG9zaXRpb24pLgAsUGFyYW1ldGVyczpBAS0gYG9yaWdpbmA6IG93bmVyIG9mIHRoZSBvbW5pcG9vbCBwb3NpdGlvbiB0byBkZXBvc2l0IGludG8gdGhlIGxpcXVpZGl0eSBtaW5pbmcuPQEtIGBnbG9iYWxfZmFybV9pZGA6IGlkIG9mIGdsb2JhbCBmYXJtIHRvIHdoaWNoIHVzZXIgd2FudHMgdG8gZGVwb3NpdCBMUCBzaGFyZXMuyC0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB5aWVsZCBmYXJtIHRvIGRlcG9zaXQgdG8uXQEtIGBwb3NpdGlvbl9pZGA6IGlkIG9mIHRoZSBvbW5pcG9vbCBwb3NpdGlvbiB0byBiZSBkZXBvc2l0ZWQgaW50byB0aGUgbGlxdWlkaXR5IG1pbmluZy4AuEVtaXRzIGBTaGFyZXNEZXBvc2l0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AQHJlZGVwb3NpdF9zaGFyZXMMAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABKGRlcG9zaXRfaWRAASREZXBvc2l0SWQACTzwUmVkZXBvc2l0IExQIHNoYXJlcyBpbiB0aGUgYWxyZWFkeSBsb2NrZWQgb21uaXBvb2wgcG9zaXRpb24uAFEBVGhpcyBmdW5jdGlvbiBjcmVhdGUgeWllbGQgZmFybSBlbnRyeSBmb3IgZXhpc3RpbmcgZGVwb3NpdC4gQW1vdW50IG9mIHJlZGVwb3NpdGVkIExQLQFzaGFyZXMgaXMgc2FtZSBhcyBhbW91bnQgc2hhcmVzIHdoaWNoIGFyZSBhbHJlYWR5IGRlcG9zaXRlZCBpbiB0aGUgZGVwb3NpdC4AuFRoaXMgZnVuY3Rpb24gRE9FU04nVCBjcmVhdGUgbmV3IGRlcG9zaXQoTkZUKS4ALFBhcmFtZXRlcnM6uC0gYG9yaWdpbmA6IG93bmVyIG9mIHRoZSBkZXBvc2l0IHRvIHJlZGVwb3NpdC5VAS0gYGdsb2JhbF9mYXJtX2lkYDogaWQgb2YgdGhlIGdsb2JhbCBmYXJtIHRvIHdoaWNoIHVzZXIgd2FudHMgdG8gcmVkZXBvc2l0IExQIHNoYXJlcy7gLSBgeWllbGRfZmFybV9pZGA6IGlkIG9mIHRoZSB5aWVsZCBmYXJtIHRvIHJlZGVwb3NpdCB0by7cLSBgZGVwb3NpdF9pZGA6IGlkZW50aWZpZXIgb2YgdGhlIGRlcG9zaXQgdG8gcmVkZXBvc2l0LgDARW1pdHMgYFNoYXJlc1JlZGVwb3NpdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuADRjbGFpbV9yZXdhcmRzCAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAAKMGEBQ2xhaW0gcmV3YXJkcyBmcm9tIGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbSBmb3IgZGVwb3NpdCByZXByZXNlbnRlZCBieSB0aGUgYGRlcG9zaXRfaWRgLgBtAVRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlIHVzZXIgcmV3YXJkcyBmcm9tIGxpcXVpZGl0eSBtaW5pbmcgYW5kIHRyYW5zZmVyIHJld2FyZHMgdG8gYG9yaWdpbmD8YWNjb3VudC4gQ2xhaW1pbmcgbXVsdGlwbGUgdGltZSB0aGUgc2FtZSBwZXJpb2QgaXMgbm90IGFsbG93ZWQuACxQYXJhbWV0ZXJzOnQtIGBvcmlnaW5gOiBvd25lciBvZiBkZXBvc2l0LtwtIGBkZXBvc2l0X2lkYDogaWQgb2YgdGhlIGRlcG9zaXQgdG8gY2xhaW0gcmV3YXJkcyBmb3Iu+C0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB0aGUgeWllbGQgZmFybSB0byBjbGFpbSByZXdhcmRzIGZyb20uALBFbWl0cyBgUmV3YXJkQ2xhaW1lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA8d2l0aGRyYXdfc2hhcmVzCAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAALUFUBVGhpcyBmdW5jdGlvbiBjbGFpbSByZXdhcmRzIGFuZCB3aXRoZHJhdyBMUCBzaGFyZXMgZnJvbSB5aWVsZCBmYXJtLiBPbW5pcG9vbCBwb3NpdGlvblEBaXMgdHJhbnNmZXJyZWQgdG8gb3JpZ2luIG9ubHkgaWYgdGhpcyBpcyBsYXN0IHdpdGhkcmF3IGluIHRoZSBkZXBvc2l0IGFuZCBkZXBvc2l0IGlzUQFkZXN0cm95ZWQuIFRoaXMgZnVuY3Rpb24gY2xhaW0gcmV3YXJkcyBvbmx5IGlmIHlpZWxkIGZhcm0gaXMgbm90IHRlcm1pbmF0ZWQgYW5kIHVzZXK8ZGlkbid0IGFscmVhZHkgY2xhaW0gcmV3YXJkcyBpbiBjdXJyZW50IHBlcmlvZC4ATQFVbmNsYWltYWJsZSByZXdhcmRzIHJlcHJlc2VudHMgcmV3YXJkcyB3aGljaCB1c2VyIHdvbid0IGJlIGFibGUgdG8gY2xhaW0gYmVjYXVzZSBvZkkBZXhpdGluZyBlYXJseSBhbmQgdGhlc2UgcmV3YXJkcyB3aWxsIGJlIHRyYW5zZmVycmVkIGJhY2sgdG8gZ2xvYmFsIGZhcm0gZm9yIGZ1dHVyZTxyZWRpc3RyaWJ1dGlvbi4ALFBhcmFtZXRlcnM6dC0gYG9yaWdpbmA6IG93bmVyIG9mIGRlcG9zaXQu3C0gYGRlcG9zaXRfaWRgOiBpZCBvZiB0aGUgZGVwb3NpdCB0byBjbGFpbSByZXdhcmRzIGZvci74LSBgeWllbGRfZmFybV9pZGA6IGlkIG9mIHRoZSB5aWVsZCBmYXJtIHRvIGNsYWltIHJld2FyZHMgZnJvbS4AGEVtaXRzOsQqIGBSZXdhcmRDbGFpbWVkYCBldmVudCBpZiBjbGFpbWVkIHJld2FyZHMgaXMgPiAwpCogYFNoYXJlc1dpdGhkcmF3bmAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsXQEqIGBEZXBvc2l0RGVzdHJveWVkYCBldmVudCB3aGVuIHRoaXMgd2FzIGxhc3Qgd2l0aGRyYXcgZnJvbSB0aGUgZGVwb3NpdCBhbmQgZGVwb3NpdCB3YXMoZGVzdHJveWVkLgBIdXBkYXRlX2dsb2JhbF9mYXJtEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAAWBwbGFubmVkX3lpZWxkaW5nX3BlcmlvZHMoAUhjcmF0ZTo6UGVyaW9kT2Y8VD4AAUB5aWVsZF9wZXJfcGVyaW9kmQIBLFBlcnF1aW50aWxsAAEsbWluX2RlcG9zaXRAARxCYWxhbmNlAAw41FRoaXMgZXh0cmluc2ljIHVwZGF0ZXMgZ2xvYmFsIGZhcm0ncyBtYWluIHBhcmFtZXRlcnMuAPBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgVDo6Q3JlYXRlT3JpZ2luYC5VASEhIVdBUk46IGBUOjpDcmVhdGVPcmlnaW5gIGhhcyBwb3dlciBvdmVyIGZ1bmRzIG9mIGBvd25lcmAncyBhY2NvdW50IGFuZCBpdCBzaG91bGQgYmXQY29uZmlndXJlZCB0byB0cnVzdGVkIG9yaWdpbiBlLmcgU3VkbyBvciBHb3Zlcm5hbmNlLgAsUGFyYW1ldGVyczpVAS0gYG9yaWdpbmA6IGFjY291bnQgYWxsb3dlZCB0byBjcmVhdGUgbmV3IGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbShyb290LCBnb3Zlcm5hbmNlKS7QLSBgZ2xvYmFsX2Zhcm1faWRgOiBpZCBvZiB0aGUgZ2xvYmFsIGZhcm0gdG8gdXBkYXRlLlkBLSBgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzYDogcGxhbm5lZCBudW1iZXIgb2YgcGVyaW9kcyB0byBkaXN0cmlidXRlIGB0b3RhbF9yZXdhcmRzYC4pAS0gYHlpZWxkX3Blcl9wZXJpb2RgOiBwZXJjZW50YWdlIHJldHVybiBvbiBgcmV3YXJkX2N1cnJlbmN5YCBvZiBhbGwgZmFybXMukQEtIGBtaW5fZGVwb3NpdGA6IG1pbmltdW0gYW1vdW50IG9mIExQIHNoYXJlcyB0byBiZSBkZXBvc2l0ZWQgaW50byB0aGUgbGlxdWlkaXR5IG1pbmluZyBieSBlYWNoIHVzZXIuAMBFbWl0cyBgR2xvYmFsRmFybVVwZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4oam9pbl9mYXJtcwgBMGZhcm1fZW50cmllc6UCAREBQm91bmRlZFZlYzwoR2xvYmFsRmFybUlkLCBZaWVsZEZhcm1JZCksIFQ6Ok1heEZhcm1FbnRyaWVzUGVyRGVwb3NpdD4AASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAA0kRQFUaGlzIGZ1bmN0aW9uIGFsbG93cyB1c2VyIHRvIGpvaW4gbXVsdGlwbGUgZmFybXMgd2l0aCBhIHNpbmdsZSBvbW5pcG9vbCBwb3NpdGlvbi4ALFBhcmFtZXRlcnM6QQEtIGBvcmlnaW5gOiBvd25lciBvZiB0aGUgb21uaXBvb2wgcG9zaXRpb24gdG8gZGVwb3NpdCBpbnRvIHRoZSBsaXF1aWRpdHkgbWluaW5nLqAtIGBmYXJtX2VudHJpZXNgOiBsaXN0IG9mIGZhcm1zIHRvIGpvaW4uXQEtIGBwb3NpdGlvbl9pZGA6IGlkIG9mIHRoZSBvbW5pcG9vbCBwb3NpdGlvbiB0byBiZSBkZXBvc2l0ZWQgaW50byB0aGUgbGlxdWlkaXR5IG1pbmluZy4A2EVtaXRzIGBTaGFyZXNEZXBvc2l0ZWRgIGV2ZW50IGZvciB0aGUgZmlyc3QgZmFybSBlbnRyeR0BRW1pdHMgYFNoYXJlc1JlZGVwb3NpdGVkYCBldmVudCBmb3IgZWFjaCBmYXJtIGVudHJ5IGFmdGVyIHRoZSBmaXJzdCBvbmVwYWRkX2xpcXVpZGl0eV9hbmRfam9pbl9mYXJtcxABMGZhcm1fZW50cmllc6UCAREBQm91bmRlZFZlYzwoR2xvYmFsRmFybUlkLCBZaWVsZEZhcm1JZCksIFQ6Ok1heEZhcm1FbnRyaWVzUGVyRGVwb3NpdD4AARRhc3NldCgBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAFAbWluX3NoYXJlc19saW1pdPUBATxPcHRpb248QmFsYW5jZT4ADixdAVRoaXMgZnVuY3Rpb24gYWxsb3dzIHVzZXIgdG8gYWRkIGxpcXVpZGl0eSB0aGVuIHVzZSB0aGF0IHNoYXJlcyB0byBqb2luIG11bHRpcGxlIGZhcm1zLgAsUGFyYW1ldGVyczpBAS0gYG9yaWdpbmA6IG93bmVyIG9mIHRoZSBvbW5pcG9vbCBwb3NpdGlvbiB0byBkZXBvc2l0IGludG8gdGhlIGxpcXVpZGl0eSBtaW5pbmcuoC0gYGZhcm1fZW50cmllc2A6IGxpc3Qgb2YgZmFybXMgdG8gam9pbi4VAS0gYGFzc2V0YDogaWQgb2YgdGhlIGFzc2V0IHRvIGJlIGRlcG9zaXRlZCBpbnRvIHRoZSBsaXF1aWRpdHkgbWluaW5nLikBLSBgYW1vdW50YDogYW1vdW50IG9mIHRoZSBhc3NldCB0byBiZSBkZXBvc2l0ZWQgaW50byB0aGUgbGlxdWlkaXR5IG1pbmluZy6FAS0gYG1pbl9zaGFyZXNfbGltaXRgOiBUaGUgbWluIGFtb3VudCBvZiBkZWx0YSBzaGFyZSBhc3NldCB0aGUgdXNlciBzaG91bGQgcmVjZWl2ZSBpbiB0aGUgcG9zaXRpb24A2EVtaXRzIGBTaGFyZXNEZXBvc2l0ZWRgIGV2ZW50IGZvciB0aGUgZmlyc3QgZmFybSBlbnRyeR0BRW1pdHMgYFNoYXJlc1JlZGVwb3NpdGVkYCBldmVudCBmb3IgZWFjaCBmYXJtIGVudHJ5IGFmdGVyIHRoZSBmaXJzdCBvbmUoZXhpdF9mYXJtcwgBKGRlcG9zaXRfaWRAASREZXBvc2l0SWQAATh5aWVsZF9mYXJtX2lkc7ECAdBCb3VuZGVkVmVjPFlpZWxkRmFybUlkLCBUOjpNYXhGYXJtRW50cmllc1BlckRlcG9zaXQ+AA88jEV4aXQgZnJvbSBhbGwgc3BlY2lmaWVkIHlpZWxkIGZhcm1zAF0BVGhpcyBmdW5jdGlvbiB3aWxsIGF0dGVtcHQgdG8gd2l0aGRyYXcgc2hhcmVzIGFuZCBjbGFpbSByZXdhcmRzIChpZiBhdmFpbGFibGUpIGZyb20gYWxsqHNwZWNpZmllZCB5aWVsZCBmYXJtcyBmb3IgYSBnaXZlbiBkZXBvc2l0LgAsUGFyYW1ldGVyczqoLSBgb3JpZ2luYDogYWNjb3VudCBvd25lciBvZiBkZXBvc2l0KG5mdCku3C0gYGRlcG9zaXRfaWRgOiBpZCBvZiB0aGUgZGVwb3NpdCB0byBjbGFpbSByZXdhcmRzIGZvci7gLSBgeWllbGRfZmFybV9pZHNgOiBpZChzKSBvZiB5aWVsZCBmYXJtKHMpIHRvIGV4aXQgZnJvbS4AGEVtaXRzOqwqIGBSZXdhcmRDbGFpbWVkYCBmb3IgZWFjaCBzdWNjZXNzZnVsIGNsYWltyCogYFNoYXJlc1dpdGhkcmF3bmAgZm9yIGVhY2ggc3VjY2Vzc2Z1bCB3aXRoZHJhd2Fs2CogYERlcG9zaXREZXN0cm95ZWRgIGlmIHRoZSBkZXBvc2l0IGlzIGZ1bGx5IHdpdGhkcmF3bgDAYWRkX2xpcXVpZGl0eV9zdGFibGVzd2FwX29tbmlwb29sX2FuZF9qb2luX2Zhcm1zEAE4c3RhYmxlX3Bvb2xfaWQoAShUOjpBc3NldElkAAFQc3RhYmxlX2Fzc2V0X2Ftb3VudHO5AgEFAUJvdW5kZWRWZWM8QXNzZXRBbW91bnQ8VDo6QXNzZXRJZD4sIENvbnN0VTMyPE1BWF9BU1NFVFNfSU5fUE9PTD4+AAEwZmFybV9lbnRyaWVzxQIBNQFPcHRpb248Qm91bmRlZFZlYzwoR2xvYmFsRmFybUlkLCBZaWVsZEZhcm1JZCksIFQ6OgpNYXhGYXJtRW50cmllc1BlckRlcG9zaXQ+PgABQG1pbl9zaGFyZXNfbGltaXT1AQE8T3B0aW9uPEJhbGFuY2U+ABBI+FRoaXMgZnVuY3Rpb24gYWxsb3dzIHVzZXIgdG8gYWRkIGxpcXVpZGl0eSB0byBzdGFibGVzd2FwIHBvb2ws2HRoZW4gYWRkaW5nIHRoZSBzdGFibGUgc2hhcmVzIGFzIGxpcXVpZGl0eSB0byBvbW5pcG9vbNR0aGVuIHVzZSB0aGF0IG9tbmlwb29sIHNoYXJlcyB0byBqb2luIG11bHRpcGxlIGZhcm1zLgCNAUlmIGZhcm0gZW50cmllcyBhcmUgbm90IHNwZWNpZmllZCAoZW1wdHkgdmVjdG9vKSwgdGhlbiB0aGUgbGlxdWlkaXRpZXMgYXJlIHN0aWxsIGFkZGVkIHRvIHRoZSBwb29scwAsUGFyYW1ldGVyczpBAS0gYG9yaWdpbmA6IG93bmVyIG9mIHRoZSBvbW5pcG9vbCBwb3NpdGlvbiB0byBkZXBvc2l0IGludG8gdGhlIGxpcXVpZGl0eSBtaW5pbmcuCQEtIGBzdGFibGVfcG9vbF9pZGA6IGlkIG9mIHRoZSBzdGFibGVzd2FwIHBvb2wgdG8gYWRkIGxpcXVpZGl0eSB0by5hAS0gYHN0YWJsZV9hc3NldF9hbW91bnRzYDogYW1vdW50IG9mIGVhY2ggYXNzZXQgdG8gYmUgZGVwb3NpdGVkIGludG8gdGhlIHN0YWJsZXN3YXAgcG9vbC6gLSBgZmFybV9lbnRyaWVzYDogbGlzdCBvZiBmYXJtcyB0byBqb2luLmEBLSBgbWluX3NoYXJlc19saW1pdGA6IG9wdGlvbmFsIG1pbmltdW0gT21uaXBvb2wgc2hhcmVzIHRvIHJlY2VpdmUgKHNsaXBwYWdlIHByb3RlY3Rpb24pLlEBICAgICAgICAgICAgICAgICAgICAgIEFwcGxpZXMgdG8gT21uaXBvb2wgc3RlcCBvbmx5LiBOb25lIGRlZmF1bHRzIHRvIG5vIHByb3RlY3Rpb24uALBFbWl0cyBgTGlxdWlkaXR5QWRkZWRgIGV2ZW50cyBmcm9tIGJvdGggcG9vbNhFbWl0cyBgU2hhcmVzRGVwb3NpdGVkYCBldmVudCBmb3IgdGhlIGZpcnN0IGZhcm0gZW50cnkdAUVtaXRzIGBTaGFyZXNSZWRlcG9zaXRlZGAgZXZlbnQgZm9yIGVhY2ggZmFybSBlbnRyeSBhZnRlciB0aGUgZmlyc3Qgb25lAMxyZW1vdmVfbGlxdWlkaXR5X3N0YWJsZXN3YXBfb21uaXBvb2xfYW5kX2V4aXRfZmFybXMQASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAFIb21uaXBvb2xfbWluX2xpbWl0QAEcQmFsYW5jZQABaHN0YWJsZXN3YXBfbWluX2Ftb3VudHNfb3V0uQIBBQFCb3VuZGVkVmVjPEFzc2V0QW1vdW50PFQ6OkFzc2V0SWQ+LCBDb25zdFUzMjxNQVhfQVNTRVRTX0lOX1BPT0w+PgABKGRlcG9zaXRfaWT1AQFET3B0aW9uPERlcG9zaXRJZD4AEWRlAVJlbW92ZSBsaXF1aWRpdHkgZnJvbSBzdGFibGVzd2FwIGFuZCBvbW5pcG9vbCwgb3B0aW9uYWxseSBleGl0aW5nIGFzc29jaWF0ZWQgeWllbGQgZmFybXMuAJkBVGhpcyBleHRyaW5zaWMgcmV2ZXJzZXMgdGhlIG9wZXJhdGlvbiBwZXJmb3JtZWQgYnkgYGFkZF9saXF1aWRpdHlfc3RhYmxlc3dhcF9vbW5pcG9vbF9hbmRfam9pbl9mYXJtc2AsMQF3aXRoIG9wdGlvbmFsIGZhcm0gZXhpdCB0byBtYXRjaCB0aGUgb3B0aW9uYWwgZmFybSBqb2luIGluIHRoZSBhZGQgZnVuY3Rpb24uAKRJdCBwZXJmb3JtcyB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIG9yZGVyOskBMS4gW09QVElPTkFMXSBJZiBkZXBvc2l0X2lkIGlzIHByb3ZpZGVkOiBFeGl0cyBmcm9tIEFMTCB5aWVsZCBmYXJtcyBhc3NvY2lhdGVkIHdpdGggdGhlIGRlcG9zaXQgKGNsYWltaW5nIHJld2FyZHMpmQEyLiBSZW1vdmVzIGxpcXVpZGl0eSBmcm9tIHRoZSBvbW5pcG9vbCB0byByZXRyaWV2ZSBzdGFibGVzd2FwIHNoYXJlcyAocHJvdGVjdGVkIGJ5IG9tbmlwb29sX21pbl9saW1pdCnVATMuIFJlbW92ZXMgbGlxdWlkaXR5IGZyb20gdGhlIHN0YWJsZXN3YXAgcG9vbCB0byByZXRyaWV2ZSB1bmRlcmx5aW5nIGFzc2V0cyAocHJvdGVjdGVkIGJ5IHN0YWJsZXN3YXBfbWluX2Ftb3VudHNfb3V0KQChAVRoZSBzdGFiZWxzd2FwIGxpcXVpZGl0eSBhc3NldCByZW1vdmFsIHN0cmF0ZWd5IGlzIGRldGVybWluZWQgYnkgdGhlIGBtaW5fYW1vdW50c19vdXRgIHBhcmFtZXRlciBsZW5ndGg6SQEtIElmIDEgYXNzZXQgaXMgc3BlY2lmaWVkOiBVc2VzIGByZW1vdmVfbGlxdWlkaXR5X29uZV9hc3NldGAgKHRyYWRpbmcgZmVlIGFwcGxpZXMpMQEtIElmIG11bHRpcGxlIGFzc2V0czogVXNlcyBgcmVtb3ZlX2xpcXVpZGl0eWAgKHByb3BvcnRpb25hbCwgbm8gdHJhZGluZyBmZWUpACxQYXJhbWV0ZXJzOqgtIGBvcmlnaW5gOiBPd25lciBvZiB0aGUgb21uaXBvb2wgcG9zaXRpb24ZAS0gYHBvc2l0aW9uX2lkYDogVGhlIG9tbmlwb29sIHBvc2l0aW9uIE5GVCBJRCB0byByZW1vdmUgbGlxdWlkaXR5IGZyb22FAS0gYG9tbmlwb29sX21pbl9saW1pdGA6IFRoZSBtaW4gYW1vdW50IG9mIGFzc2V0IHRvIGJlIHJlbW92ZWQgZnJvbSBvbW5pcG9vbCAoc2xpcHBhZ2UgcHJvdGVjdGlvbinVAS0gYHN0YWJsZXN3YXBfbWluX2Ftb3VudHNfb3V0YDogQXNzZXQgSURzIGFuZCBtaW5pbXVtIGFtb3VudHMgbWluaW11bSBhbW91bnRzIG9mIGVhY2ggYXNzZXQgdG8gcmVjZWl2ZSBmcm9tIG9tbmlwb29sLnUBLSBgZGVwb3NpdF9pZGA6IE9wdGlvbmFsIGxpcXVpZGl0eSBtaW5pbmcgZGVwb3NpdCBORlQgSUQuIElmIHByb3ZpZGVkLCBleGl0cyBhbGwgZmFybXMgZmlyc3QuADRFbWl0cyBldmVudHM6QQEtIElmIGRlcG9zaXRfaWQgcHJvdmlkZWQ6IGBSZXdhcmRDbGFpbWVkYCwgYFNoYXJlc1dpdGhkcmF3bmAsIGBEZXBvc2l0RGVzdHJveWVkYCEBLSBBbHdheXM6IE9tbmlwb29sJ3MgYExpcXVpZGl0eVJlbW92ZWRgLCBTdGFibGVzd2FwJ3MgYExpcXVpZGl0eVJlbW92ZWRgAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6ZAgw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzLFBlcnF1aW50aWxsAAAEABgBDHU2NAAAnQIEGE9wdGlvbgQEVAGhAgEIEE5vbmUAAAAQU29tZQQAoQIAAAEAAKECDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlczBMb3lhbHR5Q3VydmUAAAgBZGluaXRpYWxfcmV3YXJkX3BlcmNlbnRhZ2VUASRGaXhlZFUxMjgAAShzY2FsZV9jb2VmKAEMdTMyAAClAgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAakCBFMAAAQArQIBGFZlYzxUPgAAqQIAAAQIKCgArQIAAAKpAgCxAgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASgEUwAABAC1AgEYVmVjPFQ+AAC1AgAAAigAuQIMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAG9AgRTAAAEAMECARhWZWM8VD4AAL0CDDhoeWRyYWR4X3RyYWl0cyhzdGFibGVzd2FwLEFzc2V0QW1vdW50BBxBc3NldElkASgACAEgYXNzZXRfaWQoARxBc3NldElkAAEYYW1vdW50QAEQdTEyOAAAwQIAAAK9AgDFAgQYT3B0aW9uBARUAaUCAQgQTm9uZQAAABBTb21lBAClAgAAAQAAyQIMKHBhbGxldF9vdGMYcGFsbGV0EENhbGwEBFQAARAscGxhY2Vfb3JkZXIUASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABKGFtb3VudF9vdXRAARxCYWxhbmNlAAFIcGFydGlhbGx5X2ZpbGxhYmxlRAEQYm9vbAAASFhDcmVhdGUgYSBuZXcgT1RDIG9yZGVyBCAsUGFyYW1ldGVyczqkLSBgYXNzZXRfaW5gOiBBc3NldCB3aGljaCBpcyBiZWluZyBib3VnaHSgLSBgYXNzZXRfb3V0YDogQXNzZXQgd2hpY2ggaXMgYmVpbmcgc29sZNgtIGBhbW91bnRfaW5gOiBBbW91bnQgdGhhdCB0aGUgb3JkZXIgaXMgc2Vla2luZyB0byBidXnALSBgYW1vdW50X291dGA6IEFtb3VudCB0aGF0IHRoZSBvcmRlciBpcyBzZWxsaW5nSQEtIGBwYXJ0aWFsbHlfZmlsbGFibGVgOiBGbGFnIGluZGljYXRpbmcgd2hldGhlciB1c2VycyBjYW4gZmlsbCB0aGUgb3JkZXIgcGFydGlhbGx5ADBWYWxpZGF0aW9uczp0LSBhc3NldF9pbiBtdXN0IGJlIHJlZ2lzdGVyZWRFAS0gYW1vdW50X2luIG11c3QgYmUgaGlnaGVyIHRoYW4gdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQgb2YgYXNzZXRfaW4gbXVsdGlwbGllZCBieXggIEV4aXN0ZW50aWFsRGVwb3NpdE11bHRpcGxpZXJNAS0gYW1vdW50X291dCBtdXN0IGJlIGhpZ2hlciB0aGFuIHRoZSBleGlzdGVudGlhbCBkZXBvc2l0IG9mIGFzc2V0X291dCBtdWx0aXBsaWVkIGJ5eCAgRXhpc3RlbnRpYWxEZXBvc2l0TXVsdGlwbGllcgAcRXZlbnRzOoQtIGBQbGFjZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5IcGFydGlhbF9maWxsX29yZGVyCAEgb3JkZXJfaWQoARxPcmRlcklkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABQHRGaWxsIGFuIE9UQyBvcmRlciAocGFydGlhbGx5KQQgLFBhcmFtZXRlcnM6dC0gYG9yZGVyX2lkYDogSUQgb2YgdGhlIG9yZGVy6C0gYGFtb3VudF9pbmA6IEFtb3VudCB3aXRoIHdoaWNoIHRoZSBvcmRlciBpcyBiZWluZyBmaWxsZWQAMFZhbGlkYXRpb25zOogtIG9yZGVyIG11c3QgYmUgcGFydGlhbGx5X2ZpbGxhYmxljQEtIGFmdGVyIHRoZSBwYXJ0aWFsX2ZpbGwsIHRoZSByZW1haW5pbmcgb3JkZXIuYW1vdW50X2luIG11c3QgYmUgaGlnaGVyIHRoYW4gdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXTgICBvZiBhc3NldF9pbiBtdWx0aXBsaWVkIGJ5IEV4aXN0ZW50aWFsRGVwb3NpdE11bHRpcGxpZXKRAS0gYWZ0ZXIgdGhlIHBhcnRpYWxfZmlsbCwgdGhlIHJlbWFpbmluZyBvcmRlci5hbW91bnRfb3V0IG11c3QgYmUgaGlnaGVyIHRoYW4gdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXTkICBvZiBhc3NldF9vdXQgbXVsdGlwbGllZCBieSBFeGlzdGVudGlhbERlcG9zaXRNdWx0aXBsaWVyABxFdmVudHM60GBQYXJ0aWFsbHlGaWxsZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4gRGVwcmVjYXRlZC7IYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4oZmlsbF9vcmRlcgQBIG9yZGVyX2lkKAEcT3JkZXJJZAACIHhGaWxsIGFuIE9UQyBvcmRlciAoY29tcGxldGVseSkEICxQYXJhbWV0ZXJzOnQtIGBvcmRlcl9pZGA6IElEIG9mIHRoZSBvcmRlcgAcRXZlbnRzOqxgRmlsbGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuIERlcHJlY2F0ZWQuyGBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuMGNhbmNlbF9vcmRlcgQBIG9yZGVyX2lkKAEcT3JkZXJJZAADLGBDYW5jZWwgYW4gb3BlbiBPVEMgb3JkZXIEICxQYXJhbWV0ZXJzOnQtIGBvcmRlcl9pZGA6IElEIG9mIHRoZSBvcmRlcpgtIGBhc3NldGA6IEFzc2V0IHdoaWNoIGlzIGJlaW5nIGZpbGxlZKAtIGBhbW91bnRgOiBBbW91bnQgd2hpY2ggaXMgYmVpbmcgZmlsbGVkADBWYWxpZGF0aW9uczpcLSBjYWxsZXIgaXMgb3JkZXIgb3duZXIAoEVtaXRzIGBDYW5jZWxsZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuzQIMWHBhbGxldF9jaXJjdWl0X2JyZWFrZXIYcGFsbGV0EENhbGwEBFQAATBYc2V0X3RyYWRlX3ZvbHVtZV9saW1pdAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABSHRyYWRlX3ZvbHVtZV9saW1pdKkCASgodTMyLCB1MzIpAAAkkFNldCB0cmFkZSB2b2x1bWUgbGltaXQgZm9yIGFuIGFzc2V0LgAsUGFyYW1ldGVyczotAS0gYG9yaWdpbmA6IFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbC4gTXVzdCBiZSBgVXBkYXRlTGltaXRzT3JpZ2luYKAtIGBhc3NldF9pZGA6IFRoZSBpZGVudGlmaWVyIG9mIGFuIGFzc2V0KQEtIGB0cmFkZV92b2x1bWVfbGltaXRgOiBOZXcgdHJhZGUgdm9sdW1lIGxpbWl0IHJlcHJlc2VudGVkIGFzIGEgcGVyY2VudGFnZQDYRW1pdHMgYFRyYWRlVm9sdW1lTGltaXRDaGFuZ2VkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAFxzZXRfYWRkX2xpcXVpZGl0eV9saW1pdAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABPGxpcXVpZGl0eV9saW1pdNECAUhPcHRpb248KHUzMiwgdTMyKT4AASSUU2V0IGFkZCBsaXF1aWRpdHkgbGltaXQgZm9yIGFuIGFzc2V0LgAsUGFyYW1ldGVyczotAS0gYG9yaWdpbmA6IFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbC4gTXVzdCBiZSBgVXBkYXRlTGltaXRzT3JpZ2luYKAtIGBhc3NldF9pZGA6IFRoZSBpZGVudGlmaWVyIG9mIGFuIGFzc2V0NQEtIGBsaXF1aWRpdHlfbGltaXRgOiBPcHRpb25hbCBhZGQgbGlxdWlkaXR5IGxpbWl0IHJlcHJlc2VudGVkIGFzIGEgcGVyY2VudGFnZQDcRW1pdHMgYEFkZExpcXVpZGl0eUxpbWl0Q2hhbmdlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBoc2V0X3JlbW92ZV9saXF1aWRpdHlfbGltaXQIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAATxsaXF1aWRpdHlfbGltaXTRAgFIT3B0aW9uPCh1MzIsIHUzMik+AAIkoFNldCByZW1vdmUgbGlxdWlkaXR5IGxpbWl0IGZvciBhbiBhc3NldC4ALFBhcmFtZXRlcnM6LQEtIGBvcmlnaW5gOiBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwuIE11c3QgYmUgYFVwZGF0ZUxpbWl0c09yaWdpbmCgLSBgYXNzZXRfaWRgOiBUaGUgaWRlbnRpZmllciBvZiBhbiBhc3NldEEBLSBgbGlxdWlkaXR5X2xpbWl0YDogT3B0aW9uYWwgcmVtb3ZlIGxpcXVpZGl0eSBsaW1pdCByZXByZXNlbnRlZCBhcyBhIHBlcmNlbnRhZ2UA6EVtaXRzIGBSZW1vdmVMaXF1aWRpdHlMaW1pdENoYW5nZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOGxvY2tkb3duX2Fzc2V0CAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEUdW50aWwoAURCbG9ja051bWJlckZvcjxUPgADKHRMb2NrZG93biBhbiBhc3NldCBmb3IgbWludGluZwCkQ2FuIGJlIGNhbGxlZCBvbmx5IGJ5IGFuIGF1dGhvcml0eSBvcmlnaW4ALFBhcmFtZXRlcnM6IQEtIGBvcmlnaW5gOiBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwuIE11c3QgYmUgYEF1dGhvcml0eU9yaWdpbmCgLSBgYXNzZXRfaWRgOiBUaGUgaWRlbnRpZmllciBvZiBhbiBhc3NldOwtIGB1bnRpbGA6IFRoZSBibG9jayBudW1iZXIgdW50aWwgd2hpY2ggdGhlIGFzc2V0IGlzIGxvY2tlZADILy8vIEVtaXRzIGBBc3NldExvY2tkb3duZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5MZm9yY2VfbGlmdF9sb2NrZG93bgQBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAEKLhSZW1vdmUgYXNzZXQgbG9ja2Rvd24gcmVnYXJkbGVzcyBvZiB0aGUgc3RhdGUuAKRDYW4gYmUgY2FsbGVkIG9ubHkgYnkgYW4gYXV0aG9yaXR5IG9yaWdpbgAsUGFyYW1ldGVyczoAIQEtIGBvcmlnaW5gOiBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwuIE11c3QgYmUgYEF1dGhvcml0eU9yaWdpbmCgLSBgYXNzZXRfaWRgOiBUaGUgaWRlbnRpZmllciBvZiBhbiBhc3NldADMRW1pdHMgYEFzc2V0TG9ja2Rvd25SZW1vdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuPHJlbGVhc2VfZGVwb3NpdAgBDHdobwABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAFOHBSZWxlYXNlIGRlcG9zaXQgb2YgYW4gYXNzZXQuADkBSXQgcmVsZWFzZXMgYWxsIHRoZSBwYWxsZXQgcmVzZXJ2ZWQgYmFsYW5jZSBvZiB0aGUgYXNzZXQgZm9yIHRoZSBnaXZlbiBhY2NvdW50ADUBQ2FuIGJlIGNhbGxlZCBieSBhbnkgb3JpZ2luLCBidXQgb25seSBpZiB0aGUgYXNzZXQgaXMgbm90IGluIGFjdGl2ZSBsb2NrZG93bi4A0FRoZSBjYWxsZXIgZG9lcyBub3QgcGF5IGZvciB0aGlzIGNhbGwgaWYgc3VjY2Vzc2Z1bC4ALFBhcmFtZXRlcnM6FQEtIGBvcmlnaW5gOiBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwuIENhbiBiZSBzaWduZWQgb3Igcm9vdC7ALSBgd2hvYDogVGhlIGFjY291bnQgdGhhdCBpcyBzYXZpbmcgdGhlIGRlcG9zaXQuqC0gYGFzc2V0X2lkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LgC4RW1pdHMgYERlcG9zaXRSZWxlYXNlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLoBzZXRfZ2xvYmFsX3dpdGhkcmF3X2xpbWl0X3BhcmFtcwQBKHBhcmFtZXRlcnPVAgH0R2xvYmFsV2l0aGRyYXdMaW1pdFBhcmFtZXRlcnM8VDo6QmFsYW5jZSwgcHJpbWl0aXZlczo6TW9tZW50PgAGCOBTZXQgdGhlIGdsb2JhbCB3aXRoZHJhdyBsaW1pdCAocmVmZXJlbmNlIGN1cnJlbmN5IHVuaXRzKZxDYW4gYmUgY2FsbGVkIG9ubHkgYnkgYXV0aG9yaXR5IG9yaWdpbi5ccmVzZXRfd2l0aGRyYXdfbG9ja2Rvd24ABwgNAVJlc2V0IHRoZSBnbG9iYWwgbG9ja2Rvd24gYW5kIGFjY3VtdWxhdG9yIHRvIHplcm8gYXQgY3VycmVudCBibG9jay6cQ2FuIGJlIGNhbGxlZCBvbmx5IGJ5IGF1dGhvcml0eSBvcmlnaW4uTGFkZF9lZ3Jlc3NfYWNjb3VudHMEASBhY2NvdW50c0gBRFZlYzxUOjpBY2NvdW50SWQ+AAgAWHJlbW92ZV9lZ3Jlc3NfYWNjb3VudHMEASBhY2NvdW50c0gBRFZlYzxUOjpBY2NvdW50SWQ+AAkAcHNldF9nbG9iYWxfd2l0aGRyYXdfbG9ja2Rvd24EARR1bnRpbBgBSHByaW1pdGl2ZXM6Ok1vbWVudAAKAEhzZXRfYXNzZXRfY2F0ZWdvcnkIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAASBjYXRlZ29yedkCAWxPcHRpb248R2xvYmFsQXNzZXRDYXRlZ29yeT4ACwAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMu0QIEGE9wdGlvbgQEVAGpAgEIEE5vbmUAAAAQU29tZQQAqQIAAAEAANUCDFhwYWxsZXRfY2lyY3VpdF9icmVha2VyFHR5cGVzdEdsb2JhbFdpdGhkcmF3TGltaXRQYXJhbWV0ZXJzCBxCYWxhbmNlAUAYTW9tZW50ARgACAEUbGltaXRAARxCYWxhbmNlAAEYd2luZG93GAEYTW9tZW50AADZAgQYT3B0aW9uBARUAd0CAQgQTm9uZQAAABBTb21lBADdAgAAAQAA3QIMWHBhbGxldF9jaXJjdWl0X2JyZWFrZXIYcGFsbGV0TEdsb2JhbEFzc2V0Q2F0ZWdvcnkAAQggRXh0ZXJuYWwAAAAUTG9jYWwAAQAA4QIMVHBhbGxldF9yb3V0ZV9leGVjdXRvchhwYWxsZXQQQ2FsbAQEVAABFBBzZWxsFAEgYXNzZXRfaW4oAShUOjpBc3NldElkAAEkYXNzZXRfb3V0KAEoVDo6QXNzZXRJZAABJGFtb3VudF9pbkABKFQ6OkJhbGFuY2UAAThtaW5fYW1vdW50X291dEABKFQ6OkJhbGFuY2UAARRyb3V0ZeUCAURSb3V0ZTxUOjpBc3NldElkPgAANPxFeGVjdXRlcyBhIHNlbGwgd2l0aCBhIHNlcmllcyBvZiB0cmFkZXMgc3BlY2lmaWVkIGluIHRoZSByb3V0ZS4BAVRoZSBwcmljZSBmb3IgZWFjaCB0cmFkZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nIEFNTS4AlC0gYG9yaWdpbmA6IFRoZSBleGVjdXRvciBvZiB0aGUgdHJhZGXELSBgYXNzZXRfaW5gOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gc2VsbNQtIGBhc3NldF9vdXRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gcmVjZWl2ZbwtIGBhbW91bnRfaW5gOiBUaGUgYW1vdW50IG9mIGBhc3NldF9pbmAgdG8gc2VsbAUBLSBgbWluX2Ftb3VudF9vdXRgOiBUaGUgbWluaW11bSBhbW91bnQgb2YgYGFzc2V0X291dGAgdG8gcmVjZWl2ZS7RAi0gYHJvdXRlYDogU2VyaWVzIG9mIFtgVHJhZGU8QXNzZXRJZD5gXSB0byBiZSBleGVjdXRlZC4gQSBbYFRyYWRlPEFzc2V0SWQ+YF0gc3BlY2lmaWVzIHRoZSBhc3NldCBwYWlyIChgYXNzZXRfaW5gLCBgYXNzZXRfb3V0YCkgYW5kIHRoZSBBTU0gKGBwb29sYCkgaW4gd2hpY2ggdGhlIHRyYWRlIGlzIGV4ZWN1dGVkLtwJCSAgIElmIG5vdCBzcGVjaWZpZWQsIHRoYW4gdGhlIG9uLWNoYWluIHJvdXRlIGlzIHVzZWQuGQEJCSAgIElmIG5vIG9uLWNoYWluIGlzIHByZXNlbnQsIHRoZW4gb21uaXBvb2wgcm91dGUgaXMgdXNlZCBhcyBkZWZhdWx0AJhFbWl0cyBgUm91dGVFeGVjdXRlZGAgd2hlbiBzdWNjZXNzZnVsLgxidXkUASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEoYW1vdW50X291dEABKFQ6OkJhbGFuY2UAATRtYXhfYW1vdW50X2luQAEoVDo6QmFsYW5jZQABFHJvdXRl5QIBRFJvdXRlPFQ6OkFzc2V0SWQ+AAE0+EV4ZWN1dGVzIGEgYnV5IHdpdGggYSBzZXJpZXMgb2YgdHJhZGVzIHNwZWNpZmllZCBpbiB0aGUgcm91dGUuAQFUaGUgcHJpY2UgZm9yIGVhY2ggdHJhZGUgaXMgZGV0ZXJtaW5lZCBieSB0aGUgY29ycmVzcG9uZGluZyBBTU0uAJQtIGBvcmlnaW5gOiBUaGUgZXhlY3V0b3Igb2YgdGhlIHRyYWRlKQEtIGBhc3NldF9pbmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldCB0byBiZSBzd2FwcGVkIHRvIGJ1eSBgYXNzZXRfb3V0YMQtIGBhc3NldF9vdXRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgdG8gYnV5wC0gYGFtb3VudF9vdXRgOiBUaGUgYW1vdW50IG9mIGBhc3NldF9vdXRgIHRvIGJ1eREBLSBgbWF4X2Ftb3VudF9pbmA6IFRoZSBtYXggYW1vdW50IG9mIGBhc3NldF9pbmAgdG8gc3BlbmQgb24gdGhlIGJ1eS7RAi0gYHJvdXRlYDogU2VyaWVzIG9mIFtgVHJhZGU8QXNzZXRJZD5gXSB0byBiZSBleGVjdXRlZC4gQSBbYFRyYWRlPEFzc2V0SWQ+YF0gc3BlY2lmaWVzIHRoZSBhc3NldCBwYWlyIChgYXNzZXRfaW5gLCBgYXNzZXRfb3V0YCkgYW5kIHRoZSBBTU0gKGBwb29sYCkgaW4gd2hpY2ggdGhlIHRyYWRlIGlzIGV4ZWN1dGVkLtwJCSAgIElmIG5vdCBzcGVjaWZpZWQsIHRoYW4gdGhlIG9uLWNoYWluIHJvdXRlIGlzIHVzZWQuGQEJCSAgIElmIG5vIG9uLWNoYWluIGlzIHByZXNlbnQsIHRoZW4gb21uaXBvb2wgcm91dGUgaXMgdXNlZCBhcyBkZWZhdWx0AJhFbWl0cyBgUm91dGVFeGVjdXRlZGAgd2hlbiBzdWNjZXNzZnVsLiRzZXRfcm91dGUIAShhc3NldF9wYWly9QIBVEFzc2V0UGFpcjxUOjpBc3NldElkPgABJG5ld19yb3V0ZeUCAURSb3V0ZTxUOjpBc3NldElkPgACVLxTZXRzIHRoZSBvbi1jaGFpbiByb3V0ZSBmb3IgYSBnaXZlbiBhc3NldCBwYWlyLgD4VGhlIG5ldyByb3V0ZSBpcyB2YWxpZGF0ZWQgYnkgYmVpbmcgZXhlY3V0ZWQgaW4gYSBkcnktcnVuIG1vZGUAhQFJZiB0aGVyZSBpcyBubyByb3V0ZSBleHBsaWNpdGx5IHNldCBmb3IgYW4gYXNzZXQgcGFpciwgdGhlbiB3ZSB1c2UgdGhlIG9tbmlwb29sIHJvdXRlIGFzIGRlZmF1bHQuACkBV2hlbiBhIG5ldyByb3V0ZSBpcyBzZXQsIHdlIGNvbXBhcmUgaXQgdG8gdGhlIGV4aXN0aW5nIChvciBkZWZhdWx0KSByb3V0ZS6hAVRoZSBjb21wYXJpc29uIGhhcHBlbnMgYnkgY2FsY3VsYXRpbmcgc2VsbCBhbW91bnRfb3V0cyBmb3IgdGhlIHJvdXRlcywgYnV0IGFsc28gZm9yIHRoZSBpbnZlcnNlZCByb3V0ZXMuAGUBVGhlIHJvdXRlIGlzIHN0b3JlZCBpbiBhbiBvcmRlcmVkIG1hbm5lciwgYmFzZWQgb24gdGhlIG9kZXIgb2YgdGhlIGlkcyBpbiB0aGUgYXNzZXQgcGFpci4A9ElmIHRoZSByb3V0ZSBpcyBzZXQgc3VjY2Vzc2Z1bGx5LCB0aGVuIHRoZSBmZWUgaXMgcGF5ZWQgYmFjay4AqC0gYG9yaWdpbmA6IFRoZSBvcmlnaW4gb2YgdGhlIHJvdXRlIHNldHRlci0BLSBgYXNzZXRfcGFpcmA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhc3NldC1wYWlyIGZvciB3aGljaCB0aGUgcm91dGUgaXMgc2V04QItIGBuZXdfcm91dGVgOiBTZXJpZXMgb2YgW2BUcmFkZTxBc3NldElkPmBdIHRvIGJlIGV4ZWN1dGVkLiBBIFtgVHJhZGU8QXNzZXRJZD5gXSBzcGVjaWZpZXMgdGhlIGFzc2V0IHBhaXIgKGBhc3NldF9pbmAsIGBhc3NldF9vdXRgKSBhbmQgdGhlIEFNTSAoYHBvb2xgKSBpbiB3aGljaCB0aGUgdHJhZGUgaXMgZXhlY3V0ZWQuAJRFbWl0cyBgUm91dGVVcGRhdGVkYCB3aGVuIHN1Y2Nlc3NmdWwuACkBRmFpbHMgd2l0aCBgUm91dGVVcGRhdGVJc05vdFN1Y2Nlc3NmdWxgIGVycm9yIHdoZW4gZmFpbGVkIHRvIHNldCB0aGUgcm91dGUASGZvcmNlX2luc2VydF9yb3V0ZQgBKGFzc2V0X3BhaXL1AgFUQXNzZXRQYWlyPFQ6OkFzc2V0SWQ+AAEkbmV3X3JvdXRl5QIBRFJvdXRlPFQ6OkFzc2V0SWQ+AAM4kQFGb3JjZSBpbnNlcnRzIHRoZSBvbi1jaGFpbiByb3V0ZSBmb3IgYSBnaXZlbiBhc3NldCBwYWlyLCBzbyB0aGVyZSBpcyBubyBhbnkgdmFsaWRhdGlvbiBmb3IgdGhlIHJvdXRlAKhDYW4gb25seSBiZSBjYWxsZWQgYnkgVDo6Rm9yY2VJbnNlcnRPcmlnaW4AZQFUaGUgcm91dGUgaXMgc3RvcmVkIGluIGFuIG9yZGVyZWQgbWFubmVyLCBiYXNlZCBvbiB0aGUgb2RlciBvZiB0aGUgaWRzIGluIHRoZSBhc3NldCBwYWlyLgD0SWYgdGhlIHJvdXRlIGlzIHNldCBzdWNjZXNzZnVsbHksIHRoZW4gdGhlIGZlZSBpcyBwYXllZCBiYWNrLgCoLSBgb3JpZ2luYDogVGhlIG9yaWdpbiBvZiB0aGUgcm91dGUgc2V0dGVyLQEtIGBhc3NldF9wYWlyYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LXBhaXIgZm9yIHdoaWNoIHRoZSByb3V0ZSBpcyBzZXThAi0gYG5ld19yb3V0ZWA6IFNlcmllcyBvZiBbYFRyYWRlPEFzc2V0SWQ+YF0gdG8gYmUgZXhlY3V0ZWQuIEEgW2BUcmFkZTxBc3NldElkPmBdIHNwZWNpZmllcyB0aGUgYXNzZXQgcGFpciAoYGFzc2V0X2luYCwgYGFzc2V0X291dGApIGFuZCB0aGUgQU1NIChgcG9vbGApIGluIHdoaWNoIHRoZSB0cmFkZSBpcyBleGVjdXRlZC4AlEVtaXRzIGBSb3V0ZVVwZGF0ZWRgIHdoZW4gc3VjY2Vzc2Z1bC4AIHNlbGxfYWxsEAEgYXNzZXRfaW4oAShUOjpBc3NldElkAAEkYXNzZXRfb3V0KAEoVDo6QXNzZXRJZAABOG1pbl9hbW91bnRfb3V0QAEoVDo6QmFsYW5jZQABFHJvdXRl5QIBRFJvdXRlPFQ6OkFzc2V0SWQ+AAQ4/EV4ZWN1dGVzIGEgc2VsbCB3aXRoIGEgc2VyaWVzIG9mIHRyYWRlcyBzcGVjaWZpZWQgaW4gdGhlIHJvdXRlLsRJdCBzZWxscyBhbGwgcmVkdWNpYmxlIHVzZXIgYmFsYW5jZSBvZiBgYXNzZXRfaW5gAQFUaGUgcHJpY2UgZm9yIGVhY2ggdHJhZGUgaXMgZGV0ZXJtaW5lZCBieSB0aGUgY29ycmVzcG9uZGluZyBBTU0uAJQtIGBvcmlnaW5gOiBUaGUgZXhlY3V0b3Igb2YgdGhlIHRyYWRlxC0gYGFzc2V0X2luYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIHNlbGzULSBgYXNzZXRfb3V0YDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IHRvIHJlY2VpdmUFAS0gYG1pbl9hbW91bnRfb3V0YDogVGhlIG1pbmltdW0gYW1vdW50IG9mIGBhc3NldF9vdXRgIHRvIHJlY2VpdmUu0QItIGByb3V0ZWA6IFNlcmllcyBvZiBbYFRyYWRlPEFzc2V0SWQ+YF0gdG8gYmUgZXhlY3V0ZWQuIEEgW2BUcmFkZTxBc3NldElkPmBdIHNwZWNpZmllcyB0aGUgYXNzZXQgcGFpciAoYGFzc2V0X2luYCwgYGFzc2V0X291dGApIGFuZCB0aGUgQU1NIChgcG9vbGApIGluIHdoaWNoIHRoZSB0cmFkZSBpcyBleGVjdXRlZC7cCQkgICBJZiBub3Qgc3BlY2lmaWVkLCB0aGFuIHRoZSBvbi1jaGFpbiByb3V0ZSBpcyB1c2VkLhkBCQkgICBJZiBubyBvbi1jaGFpbiBpcyBwcmVzZW50LCB0aGVuIG9tbmlwb29sIHJvdXRlIGlzIHVzZWQgYXMgZGVmYXVsdACYRW1pdHMgYFJvdXRlRXhlY3V0ZWRgIHdoZW4gc3VjY2Vzc2Z1bC4ABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLuUCDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB6QIEUwAABADxAgEYVmVjPFQ+AADpAgw4aHlkcmFkeF90cmFpdHMYcm91dGVyFFRyYWRlBBxBc3NldElkASgADAEQcG9vbO0CAURQb29sVHlwZTxBc3NldElkPgABIGFzc2V0X2luKAEcQXNzZXRJZAABJGFzc2V0X291dCgBHEFzc2V0SWQAAO0CDDhoeWRyYWR4X3RyYWl0cxhyb3V0ZXIgUG9vbFR5cGUEHEFzc2V0SWQBKAEYDFhZSwAAAAxMQlAAAQAoU3RhYmxlc3dhcAQAKAEcQXNzZXRJZAACACBPbW5pcG9vbAADABBBYXZlAAQADEhTTQAFAADxAgAAAukCAPUCDDhoeWRyYWR4X3RyYWl0cxhyb3V0ZXIkQXNzZXRQYWlyBBxBc3NldElkASgACAEgYXNzZXRfaW4oARxBc3NldElkAAEkYXNzZXRfb3V0KAEcQXNzZXRJZAAA+QIMTHBhbGxldF9keW5hbWljX2ZlZXMYcGFsbGV0EENhbGwEBFQAAQg0c2V0X2Fzc2V0X2ZlZQgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABGGNvbmZpZ/0CAVhBc3NldEZlZUNvbmZpZzxUOjpGZWU+AAAgiFNldCBmZWUgY29uZmlndXJhdGlvbiBmb3IgYW4gYXNzZXQAcQFUaGlzIGZ1bmN0aW9uIGFsbG93cyBzZXR0aW5nIGVpdGhlciBmaXhlZCBvciBkeW5hbWljIGZlZSBjb25maWd1cmF0aW9uIGZvciBhIHNwZWNpZmljIGFzc2V0LgAsIyBBcmd1bWVudHOYKiBgb3JpZ2luYCAtIEF1dGhvcml0eSBvcmlnaW4gcmVxdWlyZWSgKiBgYXNzZXRfaWRgIC0gVGhlIGFzc2V0IElEIHRvIGNvbmZpZ3VyZcQqIGBjb25maWdgIC0gRmVlIGNvbmZpZ3VyYXRpb24gKEZpeGVkIG9yIER5bmFtaWMpQHJlbW92ZV9hc3NldF9mZWUEASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAASANAVJlbW92ZSBmZWUgY29uZmlndXJhdGlvbiBmb3IgYW4gYXNzZXQgKHdpbGwgdXNlIGRlZmF1bHQgcGFyYW1ldGVycykALQFUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgYW55IGN1c3RvbSBmZWUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBhc3NldC59AUFmdGVyIHJlbW92YWwsIHRoZSBhc3NldCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBkeW5hbWljIGZlZSBwYXJhbWV0ZXJzIGNvbmZpZ3VyZWQgaW4gdGhlIHJ1bnRpbWUuACwjIEFyZ3VtZW50c5gqIGBvcmlnaW5gIC0gQXV0aG9yaXR5IG9yaWdpbiByZXF1aXJlZNwqIGBhc3NldF9pZGAgLSBUaGUgYXNzZXQgSUQgdG8gcmVtb3ZlIGNvbmZpZ3VyYXRpb24gZm9yBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLv0CDExwYWxsZXRfZHluYW1pY19mZWVzFHR5cGVzOEFzc2V0RmVlQ29uZmlnBAxGZWUBdQIBCBRGaXhlZAgBJGFzc2V0X2ZlZXUCAQxGZWUAATBwcm90b2NvbF9mZWV1AgEMRmVlAAAAHER5bmFtaWMIAUBhc3NldF9mZWVfcGFyYW1zAQMBOEZlZVBhcmFtczxGZWU+AAFMcHJvdG9jb2xfZmVlX3BhcmFtcwEDAThGZWVQYXJhbXM8RmVlPgABAAABAwxMcGFsbGV0X2R5bmFtaWNfZmVlcxR0eXBlcyRGZWVQYXJhbXMEDEZlZQF1AgAQARxtaW5fZmVldQIBDEZlZQABHG1heF9mZWV1AgEMRmVlAAEUZGVjYXlUASRGaXhlZFUxMjgAATRhbXBsaWZpY2F0aW9uVAEkRml4ZWRVMTI4AAAFAww4cGFsbGV0X3N0YWtpbmcYcGFsbGV0EENhbGwEBFQAARRIaW5pdGlhbGl6ZV9zdGFraW5nAAAcRQFTdGFraW5nIHBhbGxldCBpbml0aWFsaXphdGlvbi4gVGhpcyBjYWxsIHdpbGwgcmVzZXJ2ZWQgYHBvdGAncyBiYWxhbmNlIHRvIHByZXZlbnQFAWFjY291bnQgZHVzdGluZyBhbmQgc3RhcnQgY29sbGVjdGluZyBmZWVzIGZyb20gdHJhZGVzIGFzIHJld2FyZHMuAGkBYHBvdGDigJlzIGFjY291bnQgaGFzIHRvIGhhdmUgYSBiYWxhbmNlIHdoaWNoIHdpbGwgYmUgcmVzZXJ2ZWQgdG8gcHJldmVudCBhY2NvdW50IGR1c3RpbmcuAMRFbWl0cyBgU3Rha2luZ0luaXRpYWxpemVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuABRzdGFrZQQBGGFtb3VudEABHEJhbGFuY2UAATisU3Rha2UgYGFtb3VudGAgaW50byBhIG5ldyBzdGFraW5nIHBvc2l0aW9uLgBZAWBzdGFrZWAgbG9ja3Mgc3BlY2lmaWVkIGBhbW91bnRgIGludG8gc3Rha2luZyBhbmQgY3JlYXRlcyBuZXcgTkZUIHJlcHJlc2VudGluZyBzdGFraW5nJHBvc2l0aW9uLjkBVXNlcnMgY2FuIHN0YWtlIGBOYXRpdmVBc3NldElkYCBiYWxhbmNlIHdoaWNoIGlzIG5vdCB2ZXN0ZWQgb3IgYWxyZWFkeSBzdGFrZWQuADEBU3Rha2luZyBwYWxsZXQgbXVzdCBiZSBpbml0aWFsaXplZCBvdGhlcndpc2UgZXh0cmluc2ljIHdpbGwgZmFpbCB3aXRoIGVycm9yLgAsUGFyYW1ldGVyczpRAS0gYGFtb3VudGA6IEFtb3VudCBvZiBuYXRpdmUgYXNzZXQgdG8gYmUgc3Rha2VkLiBgYW1vdW50YCBjYW4ndCBiZSB2ZXN0ZWQgb3IgYWxyZWFkeRhzdGFrZWQAuEVtaXRzIGBQb3NpdGlvbkNyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AOGluY3JlYXNlX3N0YWtlCAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAABGGFtb3VudEABHEJhbGFuY2UAAkBdAUV4dHJpbnNpYyB0byBpbmNyZWFzZSBzdGFrZWQgYW1vdW50IG9mIGV4aXN0aW5nIHN0YWtpbmcgcG9zaXRpb24gYnkgc3BlY2lmaWVkIGBhbW91bnRgLgBVAWBpbmNyZWFzZV9zdGFrZWAgaW5jcmVhc2VzIHN0YWtlZCBhbW91bnQgb2YgcG9zaXRpb24gc3BlY2lmaWVkIGJ5IGBwb3N0aW9uX2lkYCBieSB0aGV8YGFtb3VudGAgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLjUBU3Rha2luZyBwb3NpdGlvbiBtdXN0IGV4aXN0IGFuZCBgb3JpZ2luYCBoYXMgdG8gYmUgdGhlIG93bmVyIG9mIHRoZSBwb3NpdGlvbi74VXNlcnMgY2FuIHN0YWtlIHRva2VucyB3aGljaCBhcmUgbm90IHZlc3RlZCBvciBhbHJlYWR5IHN0YWtlZC41AVBvc2l0aW9uJ3MgcGFyYW1zIGUuZyBwb2ludHMgYXJlIHVwZGF0ZWQgdG8gb2Zmc2V0IHN0YWtlIGluY3JlYXNlIGFuZCByZXdhcmRz9GFjY3VtdWxhdGVkIHVudGlsIHRoaXMgcG9pbnQgYXJlIHBhaWQgYW5kIGxvY2tlZCB0byB0aGUgdXNlci4ALFBhcmFtZXRlcnM6OQEtIGBwb3NpdGlvbl9pZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBwb3NpdGlvbiB3aGljaCBzdGFrZSB3aWxsIGJlIGluY3JlYXNlZC5xAS0gYGFtb3VudGA6IEFtb3VudCBvZiBuYXRpdmUgYXNzZXQgdG8gYmUgYWRkZWQgdG8gc3Rha2VkIGFtb3VudC4gYGFtb3VudGAgY2FuJ3QgYmUgdmVzdGVkIG9yOGFscmVhZHkgc3Rha2VkAKRFbWl0cyBgU3Rha2VBZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAUY2xhaW0EASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAM44ENsYWltIHJld2FyZHMgYWNjdW11bGF0ZWQgZm9yIHNwZWNpZmljIHN0YWtpbmcgcG9zaXRpb24uAFEBRnVuY3Rpb24gY2FsY3VsYXRlcyBhbW91bnQgb2YgcmV3YXJkcyB0byBwYXkgZm9yIHNwZWNpZmllZCBzdGFraW5nIHBvc2l0aW9uIGJhc2VkIG9uXQF0aGUgYW1vdW50IG9mIHBvaW50cyBwb3NpdGlvbiBhY2N1bXVsYXRlZC4gRnVuY3Rpb24gYWxzbyB1bmxvY2tzIGFsbCB0aGUgcmV3YXJkcyBsb2NrZWTgZnJvbSBgaW5jcmVhc2Vfc3Rha2VgIGJhc2VkIG9uIHRoZSBhbW91bnQgb2YgdGhlIHBvaW50cy4AaQFUaGlzIGFjdGlvbiBpcyBwZW5hbGl6ZWQgYnkgcmVtb3ZpbmcgYWxsIHRoZSBwb2ludHMgYW5kIHJldHVybmluZyBhbGxvY2F0ZWQgdW5wYWlkIHJld2FyZHNMZm9yIHJlZGlzdHJpYnV0aW9uLgAsUGFyYW1ldGVyczoVAS0gYHBvc2l0aW9uX2lkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHBvc2l0aW9uIHRvIGNsYWltIHJld2FyZHMgZm9yLgC0RW1pdHMgYFJld2FyZHNDbGFpbWVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuABx1bnN0YWtlBAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAAEMEkBRnVuY3Rpb24gcGF5cyByZXdhcmRzLCB1bmxvY2tzIGFsbCB0aGUgc3Rha2VkIGFzc2V0cyBhbmQgZGVzdHJveXMgc3Rha2luZyBwb3NpdGlvbmxzcGVjaWZpZWQgYnkgYHBvc2l0aW9uX2lkYC4AWQFGdW5jdGlvbiBjYWxjdWxhdGVzIGFuZCBwYXlzIGxhdGVzdCByZXdhcmRzLCB1bmxvY2tzIGFsbCB0aGUgbG9ja2VkIHJld2FyZHMgYW5kIHN0YWtlZCEBdG9rZW5zIGZvciBzdGFraW5nIHBvc2l0aW9uIGFuZCBidXJucyBORlQgcmVwcmVzZW50aW5nIHN0YWtpbmcgcG9zaXRpb24uIQFVbnBhaWQgYWxsb2NhdGVkIHJld2FyZHMgYXJlIHJldHVybmVkIHRvIHRoZSBTdGFraW5nIGZvciByZWRpc3RyaWJ1dGlvbi4ALFBhcmFtZXRlcnM6AQEtIGBwb3NpdGlvbl9pZGA6IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBwb3NpdGlvbiB0byBiZSBkZXN0cm95ZWQuAPRFbWl0cyBgUmV3YXJkc0NsYWltZWRgIGFuZCBgVW5zdGFrZWRgIGV2ZW50cyB3aGVuIHN1Y2Nlc3NmdWwuAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4JAwxEcGFsbGV0X3N0YWJsZXN3YXAYcGFsbGV0EENhbGwEBFQAATgsY3JlYXRlX3Bvb2wQASxzaGFyZV9hc3NldCgBKFQ6OkFzc2V0SWQAARhhc3NldHMNAwHQQm91bmRlZFZlYzxUOjpBc3NldElkLCBDb25zdFUzMjxNQVhfQVNTRVRTX0lOX1BPT0w+PgABNGFtcGxpZmljYXRpb26AAQx1MTYAAQxmZWV1AgEcUGVybWlsbAAAOLxDcmVhdGUgYSBzdGFibGUgcG9vbCB3aXRoIGdpdmVuIGxpc3Qgb2YgYXNzZXRzLgD4QWxsIGFzc2V0cyBtdXN0IGJlIGNvcnJlY3RseSByZWdpc3RlcmVkIGluIGBUOjpBc3NldFJlZ2lzdHJ5YC5tAU5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IHNlZWQgdGhlIHBvb2wgd2l0aCBsaXF1aWRpdHkuIFVzZSBgYWRkX2Fzc2V0c19saXF1aWRpdHlgIHRvIHByb3ZpZGVIaW5pdGlhbCBsaXF1aWRpdHkuACxQYXJhbWV0ZXJzOpgtIGBvcmlnaW5gOiBNdXN0IGJlIFQ6OkF1dGhvcml0eU9yaWdpbtQtIGBzaGFyZV9hc3NldGA6IFByZXJlZ2lzdGVyZWQgc2hhcmUgYXNzZXQgaWRlbnRpZmllcnQtIGBhc3NldHNgOiBMaXN0IG9mIEFzc2V0IGlkc5QtIGBhbXBsaWZpY2F0aW9uYDogUG9vbCBhbXBsaWZpY2F0aW9u8C0gYGZlZWA6IGZlZSB0byBiZSBhcHBsaWVkIG9uIHRyYWRlIGFuZCBsaXF1aWRpdHkgb3BlcmF0aW9ucwCgRW1pdHMgYFBvb2xDcmVhdGVkYCBldmVudCBpZiBzdWNjZXNzZnVsLjx1cGRhdGVfcG9vbF9mZWUIARxwb29sX2lkKAEoVDo6QXNzZXRJZAABDGZlZXUCARxQZXJtaWxsAAEoSFVwZGF0ZSBwb29sJ3MgZmVlLgDMaWYgcG9vbCBkb2VzIG5vdCBleGlzdCwgYFBvb2xOb3RGb3VuZGAgaXMgcmV0dXJuZWQuACxQYXJhbWV0ZXJzOpgtIGBvcmlnaW5gOiBNdXN0IGJlIFQ6OkF1dGhvcml0eU9yaWdpbmwtIGBwb29sX2lkYDogcG9vbCB0byB1cGRhdGVULSBgZmVlYDogbmV3IHBvb2wgZmVlAJxFbWl0cyBgRmVlVXBkYXRlZGAgZXZlbnQgaWYgc3VjY2Vzc2Z1bC5QdXBkYXRlX2FtcGxpZmljYXRpb24QARxwb29sX2lkKAEoVDo6QXNzZXRJZAABTGZpbmFsX2FtcGxpZmljYXRpb26AAQx1MTYAASxzdGFydF9ibG9jaygBREJsb2NrTnVtYmVyRm9yPFQ+AAEkZW5kX2Jsb2NrKAFEQmxvY2tOdW1iZXJGb3I8VD4AAihwVXBkYXRlIHBvb2wncyBhbXBsaWZpY2F0aW9uLgAsUGFyYW1ldGVyczqYLSBgb3JpZ2luYDogTXVzdCBiZSBUOjpBdXRob3JpdHlPcmlnaW5sLSBgcG9vbF9pZGA6IHBvb2wgdG8gdXBkYXRl3C0gYGZpbmFsX2FtcGxpZmljYXRpb25gOiBuZXcgZGVzaXJlZCBwb29sIGFtcGxpZmljYXRpb251AS0gYHN0YXJ0X2Jsb2NrYDogYmxvY2sgbnVtYmVyIHdoZW4gdGhlIGFtcGxpZmljYXRpb24gc3RhcnRzIHRvIG1vdmUgdG93YXJkcyBmaW5hbF9hbXBsaWNhdGlvbjkBLSBgZW5kX2Jsb2NrYDogYmxvY2sgbnVtYmVyIHdoZW4gdGhlIGFtcGxpZmljYXRpb24gcmVhY2hlcyBmaW5hbF9hbXBsaWZpY2F0aW9uAMRFbWl0cyBgQW1wbGlmaWNhdGlvblVwZGF0ZWRgIGV2ZW50IGlmIHN1Y2Nlc3NmdWwuUGFkZF9saXF1aWRpdHlfc2hhcmVzEAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAARhzaGFyZXNAARxCYWxhbmNlAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAFAbWF4X2Fzc2V0X2Ftb3VudEABHEJhbGFuY2UABDwdAUFkZCBsaXF1aWRpdHkgdG8gc2VsZWN0ZWQgcG9vbCBnaXZlbiBleGFjdCBhbW91bnQgb2Ygc2hhcmVzIHRvIHJlY2VpdmUuADkBU2ltaWxhciB0byBgYWRkX2xpcXVpZGl0eWAgYnV0IExQIHNwZWNpZmllcyBleGFjdCBhbW91bnQgb2Ygc2hhcmVzIHRvIHJlY2VpdmUuAN0BVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHVzZWQgbWFpbmx5IGJ5IG9uLWNoYWluIHJvdXRpbmcgd2hlbiBhIHN3YXAgYmV0d2VlbiBPbW5pcG9vbCBhc3NldCBhbmQgc3RhYmxlIGFzc2V0IGlzIHBlcmZvcm1lZC4ALFBhcmFtZXRlcnM6eC0gYG9yaWdpbmA6IGxpcXVpZGl0eSBwcm92aWRlclAtIGBwb29sX2lkYDogUG9vbCBJZJwtIGBzaGFyZXNgOiBhbW91bnQgb2Ygc2hhcmVzIHRvIHJlY2VpdmXoLSBgYXNzZXRfaWRgOiBhc3NldCBpZCBvZiBhbiBhc3NldCB0byBwcm92aWRlIGFzIGxpcXVpZGl0eegtIGBtYXhfYXNzZXRfYW1vdW50YDogc2xpcHBhZ2UgbGltaXQuIE1heCBhbW91bnQgb2YgYXNzZXQuALRFbWl0cyBgTGlxdWlkaXR5QWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC7gRW1pdHMgYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5ocmVtb3ZlX2xpcXVpZGl0eV9vbmVfYXNzZXQQARxwb29sX2lkKAEoVDo6QXNzZXRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABMHNoYXJlX2Ftb3VudEABHEJhbGFuY2UAAThtaW5fYW1vdW50X291dEABHEJhbGFuY2UABUSQUmVtb3ZlIGxpcXVpZGl0eSBmcm9tIHNlbGVjdGVkIHBvb2wuAMhXaXRoZHJhd3MgbGlxdWlkaXR5IG9mIHNlbGVjdGVkIGFzc2V0IGZyb20gYSBwb29sLgAxAVNoYXJlIGFtb3VudCBpcyBidXJuZWQgYW5kIExQIHJlY2VpdmVzIGNvcnJlc3BvbmRpbmcgYW1vdW50IG9mIGNob3NlbiBhc3NldC4AsFdpdGhkcmF3IGZlZSBpcyBhcHBsaWVkIHRvIHRoZSBhc3NldCBhbW91bnQuACxQYXJhbWV0ZXJzOngtIGBvcmlnaW5gOiBsaXF1aWRpdHkgcHJvdmlkZXJQLSBgcG9vbF9pZGA6IFBvb2wgSWSQLSBgYXNzZXRfaWRgOiBpZCBvZiBhc3NldCB0byByZWNlaXZluC0gJ3NoYXJlX2Ftb3VudCc6IGFtb3VudCBvZiBzaGFyZXMgdG8gd2l0aGRyYXe0LSAnbWluX2Ftb3VudF9vdXQnOiBtaW5pbXVtIGFtb3VudCB0byByZWNlaXZlALxFbWl0cyBgTGlxdWlkaXR5UmVtb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLuBFbWl0cyBgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLlR3aXRoZHJhd19hc3NldF9hbW91bnQQARxwb29sX2lkKAEoVDo6QXNzZXRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAAUBtYXhfc2hhcmVfYW1vdW50QAEcQmFsYW5jZQAGNE0BUmVtb3ZlIGxpcXVpZGl0eSBmcm9tIHNlbGVjdGVkIHBvb2wgYnkgc3BlY2lmeWluZyBleGFjdCBhbW91bnQgb2YgYXNzZXQgdG8gcmVjZWl2ZS4AyQFTaW1pbGFyIHRvIGByZW1vdmVfbGlxdWlkaXR5X29uZV9hc3NldGAgYnV0IExQIHNwZWNpZmllcyBleGFjdCBhbW91bnQgb2YgYXNzZXQgdG8gcmVjZWl2ZSBpbnN0ZWFkIG9mIHNoYXJlIGFtb3VudC4ALFBhcmFtZXRlcnM6eC0gYG9yaWdpbmA6IGxpcXVpZGl0eSBwcm92aWRlclAtIGBwb29sX2lkYDogUG9vbCBJZJAtIGBhc3NldF9pZGA6IGlkIG9mIGFzc2V0IHRvIHJlY2VpdmWYLSAnYW1vdW50JzogYW1vdW50IG9mIGFzc2V0IHRvIHJlY2VpdmUNAS0gJ21heF9zaGFyZV9hbW91bnQnOiBTbGlwcGFnZSBsaW1pdC4gTWF4IGFtb3VudCBvZiBzaGFyZXMgdG8gYnVybi4AvEVtaXRzIGBMaXF1aWRpdHlSZW1vdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwu4EVtaXRzIGBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuEHNlbGwUARxwb29sX2lkKAEoVDo6QXNzZXRJZAABIGFzc2V0X2luKAEoVDo6QXNzZXRJZAABJGFzc2V0X291dCgBKFQ6OkFzc2V0SWQAASRhbW91bnRfaW5AARxCYWxhbmNlAAE4bWluX2J1eV9hbW91bnRAARxCYWxhbmNlAAc0tEV4ZWN1dGUgYSBzd2FwIG9mIGBhc3NldF9pbmAgZm9yIGBhc3NldF9vdXRgLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogb3JpZ2luIG9mIHRoZSBjYWxsZXJkLSBgcG9vbF9pZGA6IElkIG9mIGEgcG9vbKgtIGBhc3NldF9pbmA6IElEIG9mIGFzc2V0IHNvbGQgdG8gdGhlIHBvb2y8LSBgYXNzZXRfb3V0YDogSUQgb2YgYXNzZXQgYm91Z2h0IGZyb20gdGhlIHBvb2zULSBgYW1vdW50X2luYDogQW1vdW50IG9mIGFzc2V0IHRvIGJlIHNvbGQgdG8gdGhlIHBvb2zYLSBgbWluX2J1eV9hbW91bnRgOiBNaW5pbXVtIGFtb3VudCByZXF1aXJlZCB0byByZWNlaXZlANxFbWl0cyBgU2VsbEV4ZWN1dGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuIERlcHJlY2F0ZWQu4EVtaXRzIGBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAAxidXkUARxwb29sX2lkKAEoVDo6QXNzZXRJZAABJGFzc2V0X291dCgBKFQ6OkFzc2V0SWQAASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAAShhbW91bnRfb3V0QAEcQmFsYW5jZQABPG1heF9zZWxsX2Ftb3VudEABHEJhbGFuY2UACDS0RXhlY3V0ZSBhIHN3YXAgb2YgYGFzc2V0X291dGAgZm9yIGBhc3NldF9pbmAuACxQYXJhbWV0ZXJzOiwtIGBvcmlnaW5gOmQtIGBwb29sX2lkYDogSWQgb2YgYSBwb29svC0gYGFzc2V0X291dGA6IElEIG9mIGFzc2V0IGJvdWdodCBmcm9tIHRoZSBwb29sqC0gYGFzc2V0X2luYDogSUQgb2YgYXNzZXQgc29sZCB0byB0aGUgcG9vbOAtIGBhbW91bnRfb3V0YDogQW1vdW50IG9mIGFzc2V0IHRvIHJlY2VpdmUgZnJvbSB0aGUgcG9vbNgtIGBtYXhfc2VsbF9hbW91bnRgOiBNYXhpbXVtIGFtb3VudCBhbGxvd2VkIHRvIGJlIHNvbGQA2EVtaXRzIGBCdXlFeGVjdXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLiBEZXByZWNhdGVkLuBFbWl0cyBgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgBgc2V0X2Fzc2V0X3RyYWRhYmxlX3N0YXRlDAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARRzdGF0ZREDASxUcmFkYWJpbGl0eQAJQOBVcGRhdGUgdGhlIHRyYWRhYmxlIHN0YXRlIG9mIGEgc3BlY2lmaWMgYXNzZXQgaW4gYSBwb29sLgCdA1RoaXMgZnVuY3Rpb24gYWxsb3dzIHVwZGF0aW5nIHRoZSB0cmFkYWJpbGl0eSBzdGF0ZSBvZiBhbiBhc3NldCB3aXRoaW4gYSBwb29sLiBUaGUgdHJhZGFiaWxpdHkgc3RhdGUgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBhc3NldCBjYW4gYmUgdXNlZCBmb3Igc3BlY2lmaWMgb3BlcmF0aW9ucyBzdWNoIGFzIGFkZGluZyBsaXF1aWRpdHksIHJlbW92aW5nIGxpcXVpZGl0eSwgYnV5aW5nLCBvciBzZWxsaW5nLgAsUGFyYW1ldGVyczrELSBgb3JpZ2luYDogTXVzdCBiZSBgVDo6VXBkYXRlVHJhZGFiaWxpdHlPcmlnaW5gLtQtIGBwb29sX2lkYDogVGhlIElEIG9mIHRoZSBwb29sIGNvbnRhaW5pbmcgdGhlIGFzc2V0Li0BLSBgYXNzZXRfaWRgOiBUaGUgSUQgb2YgdGhlIGFzc2V0IHdob3NlIHRyYWRhYmlsaXR5IHN0YXRlIGlzIHRvIGJlIHVwZGF0ZWQuyC0gYHN0YXRlYDogVGhlIG5ldyB0cmFkYWJpbGl0eSBzdGF0ZSBvZiB0aGUgYXNzZXQuAMxFbWl0cyBgVHJhZGFibGVTdGF0ZVVwZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AICMgRXJyb3Jz3C0gYFBvb2xOb3RGb3VuZGA6IElmIHRoZSBzcGVjaWZpZWQgcG9vbCBkb2VzIG5vdCBleGlzdC4NAS0gYEFzc2V0Tm90SW5Qb29sYDogSWYgdGhlIHNwZWNpZmllZCBhc3NldCBpcyBub3QgcGFydCBvZiB0aGUgcG9vbC4AQHJlbW92ZV9saXF1aWRpdHkMARxwb29sX2lkKAEoVDo6QXNzZXRJZAABMHNoYXJlX2Ftb3VudEABHEJhbGFuY2UAATxtaW5fYW1vdW50c19vdXS5AgEFAUJvdW5kZWRWZWM8QXNzZXRBbW91bnQ8VDo6QXNzZXRJZD4sIENvbnN0VTMyPE1BWF9BU1NFVFNfSU5fUE9PTD4+AApswFJlbW92ZSBsaXF1aWRpdHkgZnJvbSBhIHNlbGVjdGVkIHBvb2wgdW5pZm9ybWx5LgAxAVRoaXMgZnVuY3Rpb24gYWxsb3dzIGEgbGlxdWlkaXR5IHByb3ZpZGVyIHRvIHdpdGhkcmF3IGxpcXVpZGl0eSBmcm9tIGEgcG9vbC6VAVRoZSBwcm92aWRlciBzcGVjaWZpZXMgdGhlIGFtb3VudCBvZiBzaGFyZXMgdG8gYnVybiBhbmQgdGhlIG1pbmltdW0gYW1vdW50cyBvZiBlYWNoIGFzc2V0IHRvIHJlY2VpdmUuACxQYXJhbWV0ZXJzOowtIGBvcmlnaW5gOiBUaGUgbGlxdWlkaXR5IHByb3ZpZGVyLvwtIGBwb29sX2lkYDogVGhlIElEIG9mIHRoZSBwb29sIGZyb20gd2hpY2ggdG8gcmVtb3ZlIGxpcXVpZGl0eS68LSBgc2hhcmVfYW1vdW50YDogVGhlIGFtb3VudCBvZiBzaGFyZXMgdG8gYnVybi55AS0gYG1pbl9hbW91bnRzX291dGA6IEEgYm91bmRlZCB2ZWN0b3Igc3BlY2lmeWluZyB0aGUgbWluaW11bSBhbW91bnRzIG9mIGVhY2ggYXNzZXQgdG8gcmVjZWl2ZS4AvEVtaXRzIGBMaXF1aWRpdHlSZW1vdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwu4EVtaXRzIGBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuACAjIEVycm9yc9gtIGBJbnZhbGlkQXNzZXRBbW91bnRgOiBJZiB0aGUgYHNoYXJlX2Ftb3VudGAgaXMgemVyby4RAS0gYEluc3VmZmljaWVudFNoYXJlc2A6IElmIHRoZSBwcm92aWRlciBkb2VzIG5vdCBoYXZlIGVub3VnaCBzaGFyZXMu3C0gYFBvb2xOb3RGb3VuZGA6IElmIHRoZSBzcGVjaWZpZWQgcG9vbCBkb2VzIG5vdCBleGlzdC78LSBgVW5rbm93bkRlY2ltYWxzYDogSWYgdGhlIGFzc2V0IGRlY2ltYWxzIGNhbm5vdCBiZSByZXRyaWV2ZWQuWQEtIGBJbmNvcnJlY3RBc3NldHNgOiBJZiB0aGUgcHJvdmlkZWQgYG1pbl9hbW91bnRzX291dGAgZG9lcyBub3QgbWF0Y2ggdGhlIHBvb2wgYXNzZXRzLvgtIGBOb3RBbGxvd2VkYDogSWYgdGhlIGFzc2V0IGlzIG5vdCBhbGxvd2VkIGZvciB0aGUgb3BlcmF0aW9uLlEBLSBgU2xpcHBhZ2VMaW1pdGA6IElmIHRoZSBhbW91bnQgcmVjZWl2ZWQgaXMgbGVzcyB0aGFuIHRoZSBzcGVjaWZpZWQgbWluaW11bSBhbW91bnQupQEtIGBJbnN1ZmZpY2llbnRMaXF1aWRpdHlSZW1haW5pbmdgOiBJZiB0aGUgcmVtYWluaW5nIGxpcXVpZGl0eSBpbiB0aGUgcG9vbCBpcyBiZWxvdyB0aGUgbWluaW11bSByZXF1aXJlZC4AMCMgSW52YXJpYW50c0UBLSBFbnN1cmVzIHRoYXQgdGhlIHBvb2wncyByZXNlcnZlcyBhcmUgdXBkYXRlZCBjb3JyZWN0bHkgYWZ0ZXIgbGlxdWlkaXR5IHJlbW92YWwuyC0gRW5zdXJlcyB0aGF0IHRoZSBwb29sJ3MgaW52YXJpYW50IGlzIG1haW50YWluZWQuVGNyZWF0ZV9wb29sX3dpdGhfcGVncxgBLHNoYXJlX2Fzc2V0KAEoVDo6QXNzZXRJZAABGGFzc2V0cw0DAdBCb3VuZGVkVmVjPFQ6OkFzc2V0SWQsIENvbnN0VTMyPE1BWF9BU1NFVFNfSU5fUE9PTD4+AAE0YW1wbGlmaWNhdGlvboABDHUxNgABDGZlZXUCARxQZXJtaWxsAAEocGVnX3NvdXJjZRUDAXRCb3VuZGVkUGVnU291cmNlczxUOjpBc3NldElkPgABOG1heF9wZWdfdXBkYXRlKQMBHFBlcmJpbGwAC3ToQ3JlYXRlIGEgc3RhYmxlIHBvb2wgd2l0aCBhIGdpdmVuIGxpc3Qgb2YgYXNzZXRzIGFuZCBwZWdzLgBtAlRoaXMgZnVuY3Rpb24gYWxsb3dzIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBzdGFibGUgcG9vbCB3aXRoIHNwZWNpZmllZCBhc3NldHMsIGFtcGxpZmljYXRpb24sIGZlZSwgYW5kIHBlZyBzb3VyY2VzLiBUaGUgcG9vbCBpcyBpZGVudGlmaWVkIGJ5IGEgc2hhcmUgYXNzZXQuAI0CUGVnIHRhcmdldCBwcmljZSBpcyBkZXRlcm1pbmVkIGJ5IHJldHJpZXZpbmcgdGhlIHRhcmdldCBwZWcgZnJvbSB0aGUgb3JhY2xlIC0gaXQgaXMgdGhlIHByaWNlIG9mIHRoZSBhc3NldCBmcm9tIHRoZSBwZWcgc291cmNlZGVub21pbmF0ZWQgaW4gdGhlIG90aGVyIHBvb2wgYXNzZXRzLgAsUGFyYW1ldGVyczqkLSBgb3JpZ2luYDogTXVzdCBiZSBgVDo6QXV0aG9yaXR5T3JpZ2luYC7YLSBgc2hhcmVfYXNzZXRgOiBQcmVyZWdpc3RlcmVkIHNoYXJlIGFzc2V0IGlkZW50aWZpZXIu5C0gYGFzc2V0c2A6IExpc3Qgb2YgYXNzZXQgSURzIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBwb29sLsAtIGBhbXBsaWZpY2F0aW9uYDogUG9vbCBhbXBsaWZpY2F0aW9uIHBhcmFtZXRlci70LSBgZmVlYDogRmVlIHRvIGJlIGFwcGxpZWQgb24gdHJhZGUgYW5kIGxpcXVpZGl0eSBvcGVyYXRpb25zLj0BLSBgcGVnX3NvdXJjZWA6IEJvdW5kZWQgdmVjdG9yIHNwZWNpZnlpbmcgdGhlIHNvdXJjZSBvZiB0aGUgcGVnIGZvciBlYWNoIGFzc2V0LuQtIGBtYXhfcGVnX3VwZGF0ZWA6IE1heGltdW0gYWxsb3dlZCBwZWcgdXBkYXRlIHBlciBibG9jay4AoEVtaXRzIGBQb29sQ3JlYXRlZGAgZXZlbnQgaWYgc3VjY2Vzc2Z1bC7IRW1pdHMgYEFtcGxpZmljYXRpb25DaGFuZ2luZ2AgZXZlbnQgaWYgc3VjY2Vzc2Z1bC4AICMgRXJyb3JzTQEtIGBJbmNvcnJlY3RBc3NldHNgOiBJZiB0aGUgYXNzZXRzIGFyZSB0aGUgc2FtZSBvciBsZXNzIHRoYW4gMiBhc3NldHMgYXJlIHByb3ZpZGVkLg0BLSBgTWF4QXNzZXRzRXhjZWVkZWRgOiBJZiB0aGUgbWF4aW11bSBudW1iZXIgb2YgYXNzZXRzIGlzIGV4Y2VlZGVkLvwtIGBQb29sRXhpc3RzYDogSWYgYSBwb29sIHdpdGggdGhlIGdpdmVuIGFzc2V0cyBhbHJlYWR5IGV4aXN0cy4hAS0gYFNoYXJlQXNzZXRJblBvb2xBc3NldHNgOiBJZiB0aGUgc2hhcmUgYXNzZXQgaXMgYW1vbmcgdGhlIHBvb2wgYXNzZXRzLlkBLSBgQXNzZXROb3RSZWdpc3RlcmVkYDogSWYgb25lIG9yIG1vcmUgYXNzZXRzIGFyZSBub3QgcmVnaXN0ZXJlZCBpbiB0aGUgQXNzZXRSZWdpc3RyeS4RAS0gYEludmFsaWRBbXBsaWZpY2F0aW9uYDogSWYgdGhlIGFtcGxpZmljYXRpb24gcGFyYW1ldGVyIGlzIGludmFsaWQu8C0gYEluY29ycmVjdEluaXRpYWxQZWdzYDogSWYgdGhlIGluaXRpYWwgcGVncyBhcmUgaW5jb3JyZWN0LhkBLSBgTWlzc2luZ1RhcmdldFBlZ09yYWNsZWA6IElmIHRoZSB0YXJnZXQgcGVnIG9yYWNsZSBlbnRyeSBpcyBtaXNzaW5nLgkBLSBgSW5jb3JyZWN0QXNzZXREZWNpbWFsc2A6IElmIHRoZSBhc3NldHMgaGF2ZSBkaWZmZXJlbnQgZGVjaW1hbHMuAFBhZGRfYXNzZXRzX2xpcXVpZGl0eQwBHHBvb2xfaWQoAShUOjpBc3NldElkAAEYYXNzZXRzuQIBBQFCb3VuZGVkVmVjPEFzc2V0QW1vdW50PFQ6OkFzc2V0SWQ+LCBDb25zdFUzMjxNQVhfQVNTRVRTX0lOX1BPT0w+PgABKG1pbl9zaGFyZXNAARxCYWxhbmNlAAxIfEFkZCBsaXF1aWRpdHkgdG8gc2VsZWN0ZWQgcG9vbC4AUQFGaXJzdCBjYWxsIG9mIGBhZGRfYXNzZXRzX2xpcXVpZGl0eWAgbXVzdCBwcm92aWRlICJpbml0aWFsIGxpcXVpZGl0eSIgb2YgYWxsIGFzc2V0cy4AhQFJZiB0aGVyZSBpcyBsaXF1aWRpdHkgYWxyZWFkeSBpbiB0aGUgcG9vbCwgTFAgY2FuIHByb3ZpZGUgbGlxdWlkaXR5IG9mIGFueSBudW1iZXIgb2YgcG9vbCBhc3NldHMuALRMUCBtdXN0IGhhdmUgc3VmZmljaWVudCBhbW91bnQgb2YgZWFjaCBhc3NldC4AvE9yaWdpbiBpcyBnaXZlbiBjb3JyZXNwb25kaW5nIGFtb3VudCBvZiBzaGFyZXMuACxQYXJhbWV0ZXJzOngtIGBvcmlnaW5gOiBsaXF1aWRpdHkgcHJvdmlkZXJQLSBgcG9vbF9pZGA6IFBvb2wgSWTILSBgYXNzZXRzYDogYXNzZXQgaWQgYW5kIGxpcXVpZGl0eSBhbW91bnQgcHJvdmlkZWTMLSBgbWluX3NoYXJlc2A6IG1pbmltdW0gYW1vdW50IG9mIHNoYXJlcyB0byByZWNlaXZlALRFbWl0cyBgTGlxdWlkaXR5QWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC7gRW1pdHMgYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5cdXBkYXRlX2Fzc2V0X3BlZ19zb3VyY2UMARxwb29sX2lkKAEoVDo6QXNzZXRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABKHBlZ19zb3VyY2UZAwFUUGVnU291cmNlPFQ6OkFzc2V0SWQ+AA1M1FVwZGF0ZSB0aGUgcGVnIHNvdXJjZSBmb3IgYSBzcGVjaWZpYyBhc3NldCBpbiBhIHBvb2wuACEBVGhpcyBmdW5jdGlvbiBhbGxvd3MgdXBkYXRpbmcgdGhlIHBlZyBzb3VyY2UgZm9yIGFuIGFzc2V0IHdpdGhpbiBhIHBvb2wuRQFUaGUgcG9vbCBtdXN0IGV4aXN0IGFuZCBoYXZlIHBlZ3MgY29uZmlndXJlZC4gVGhlIGFzc2V0IG11c3QgYmUgcGFydCBvZiB0aGUgcG9vbC4NAVRoZSBjdXJyZW50IHByaWNlIGlzIGFsd2F5cyBwcmVzZXJ2ZWQgd2hlbiB1cGRhdGluZyB0aGUgcGVnIHNvdXJjZS4ALFBhcmFtZXRlcnM6pC0gYG9yaWdpbmA6IE11c3QgYmUgYFQ6OkF1dGhvcml0eU9yaWdpbmAu1C0gYHBvb2xfaWRgOiBUaGUgSUQgb2YgdGhlIHBvb2wgY29udGFpbmluZyB0aGUgYXNzZXQuEQEtIGBhc3NldF9pZGA6IFRoZSBJRCBvZiB0aGUgYXNzZXQgd2hvc2UgcGVnIHNvdXJjZSBpcyB0byBiZSB1cGRhdGVkLsQtIGBwZWdfc291cmNlYDogVGhlIG5ldyBwZWcgc291cmNlIGZvciB0aGUgYXNzZXQuAMxFbWl0cyBgUG9vbFBlZ1NvdXJjZVVwZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AICMgRXJyb3Jz3C0gYFBvb2xOb3RGb3VuZGA6IElmIHRoZSBzcGVjaWZpZWQgcG9vbCBkb2VzIG5vdCBleGlzdC7sLSBgTm9QZWdTb3VyY2VgOiBJZiB0aGUgcG9vbCBkb2VzIG5vdCBoYXZlIHBlZ3MgY29uZmlndXJlZC4NAS0gYEFzc2V0Tm90SW5Qb29sYDogSWYgdGhlIHNwZWNpZmllZCBhc3NldCBpcyBub3QgcGFydCBvZiB0aGUgcG9vbC4AaHVwZGF0ZV9wb29sX21heF9wZWdfdXBkYXRlCAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAAThtYXhfcGVnX3VwZGF0ZSkDARxQZXJiaWxsAA5A0FVwZGF0ZSB0aGUgbWF4aW11bSBwZWcgdXBkYXRlIHBlcmNlbnRhZ2UgZm9yIGEgcG9vbC4AIQFUaGlzIGZ1bmN0aW9uIGFsbG93cyB1cGRhdGluZyB0aGUgbWF4aW11bSBwZXJjZW50YWdlIGJ5IHdoaWNoIHBlZyB2YWx1ZXOoY2FuIGNoYW5nZSBpbiBhIHBvb2wgd2l0aCBwZWdzIGNvbmZpZ3VyZWQuACxQYXJhbWV0ZXJzOqQtIGBvcmlnaW5gOiBNdXN0IGJlIGBUOjpBdXRob3JpdHlPcmlnaW5gLqgtIGBwb29sX2lkYDogVGhlIElEIG9mIHRoZSBwb29sIHRvIHVwZGF0ZS7oLSBgbWF4X3BlZ191cGRhdGVgOiBUaGUgbmV3IG1heGltdW0gcGVnIHVwZGF0ZSBwZXJjZW50YWdlLgDYRW1pdHMgYFBvb2xNYXhQZWdVcGRhdGVVcGRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuACAjIEVycm9yc9wtIGBQb29sTm90Rm91bmRgOiBJZiB0aGUgc3BlY2lmaWVkIHBvb2wgZG9lcyBub3QgZXhpc3Qu7C0gYE5vUGVnU291cmNlYDogSWYgdGhlIHBvb2wgZG9lcyBub3QgaGF2ZSBwZWdzIGNvbmZpZ3VyZWQuAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy4NAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASgEUwAABAC1AgEYVmVjPFQ+AAARAwxEcGFsbGV0X3N0YWJsZXN3YXAUdHlwZXMsVHJhZGFiaWxpdHkAAAQBEGJpdHMIAQh1OAAAFQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEZAwRTAAAEACUDARhWZWM8VD4AABkDDERwYWxsZXRfc3RhYmxlc3dhcBR0eXBlcyRQZWdTb3VyY2UEHEFzc2V0SWQBKAEMFFZhbHVlBAB9AgEcUGVnVHlwZQAAABhPcmFjbGUEAB0DAXwoU291cmNlLCBPcmFjbGVQZXJpb2QsIEFzc2V0SWQpAAEAIE1NT3JhY2xlBABYAShFdm1BZGRyZXNzAAIAAB0DAAAEDCEBIQMoACEDDDhoeWRyYWR4X3RyYWl0cxhvcmFjbGUwT3JhY2xlUGVyaW9kAAEYJExhc3RCbG9jawAAABRTaG9ydAABAChUZW5NaW51dGVzAAIAEEhvdXIAAwAMRGF5AAQAEFdlZWsABQAAJQMAAAIZAwApAww0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzHFBlcmJpbGwAAAQAKAEMdTMyAAAtAwwwcGFsbGV0X2JvbmRzGHBhbGxldBBDYWxsBARUAAEIFGlzc3VlDAEgYXNzZXRfaWQoARxBc3NldElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQABIG1hdHVyaXR5GAEYTW9tZW50AABUZElzc3VlIG5ldyBmdW5naWJsZSBib25kcy7UTmV3IGFzc2V0IGlkIGlzIHJlZ2lzdGVyZWQgYW5kIGFzc2lnbmVkIHRvIHRoZSBib25kcy4pAVRoZSBudW1iZXIgb2YgYm9uZHMgaXNzdWVkIGlzIDE6MSB0byB0aGUgYGFtb3VudGAgb2YgdGhlIHVuZGVybHlpbmcgYXNzZXQuGQFUaGUgYm9uZCBhc3NldCBpcyByZWdpc3RlcmVkIHdpdGggdGhlIGVtcHR5IHN0cmluZyBmb3IgdGhlIGFzc2V0IG5hbWUsBQFhbmQgd2l0aCB0aGUgc2FtZSBleGlzdGVudGlhbCBkZXBvc2l0IGFzIG9mIHRoZSB1bmRlcmx5aW5nIGFzc2V0LuxCb25kcyBjYW4gYmUgcmVkZWVtZWQgZm9yIHRoZSB1bmRlcmx5aW5nIGFzc2V0IG9uY2UgbWF0dXJlLlkBVGhlIHVuZGVybHlpbmcgYXNzZXQgaXMgZGViaXRlZCBmcm9tIGBUOjpJc3N1ZXJBY2NvdW50YCwgYW5kIHRoZSBib25kcyBhcmUgY3JlZGl0ZWQgdG9EdGhlIHNhbWUgYWNjb3VudC5pAVdoZW4gaXNzdWluZyBuZXcgYm9uZHMgd2l0aCB0aGUgdW5kZXJseWluZyBhc3NldCBhbmQgbWF0dXJpdHkgdGhhdCBtYXRjaGVzIGV4aXN0aW5nIGJvbmRzLD0BbmV3IGFtb3VudCBvZiB0aGVzZSBleGlzdGluZyBib25kcyBpcyBpc3N1ZWQsIGluc3RlYWQgb2YgcmVnaXN0ZXJpbmcgbmV3IGJvbmRzLg0BSXQncyBwb3NzaWJsZSB0byBpc3N1ZSBuZXcgYm9uZHMgZm9yIGJvbmRzIHRoYXQgYXJlIGFscmVhZHkgbWF0dXJlLgAsUGFyYW1ldGVyczqULSBgb3JpZ2luYDogbXVzdCBiZSBgVDo6SXNzdWVPcmlnaW5gLoQtIGBhc3NldF9pZGA6IHVuZGVybHlpbmcgYXNzZXQgaWS4LSBgYW1vdW50YDogdGhlIGFtb3VudCBvZiB0aGUgdW5kZXJseWluZyBhc3NldB0BLSBgbWF0dXJpdHlgOiBVbml4IHRpbWUgaW4gbWlsbGlzZWNvbmRzLCB3aGVuIHRoZSBib25kcyB3aWxsIGJlIG1hdHVyZS4ANQFFbWl0cyBgQm9uZFRva2VuQ3JlYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsIGFuZCBuZXcgYm9uZHMgd2VyZSByZWdpc3RlcmVkLqhFbWl0cyBgQm9uZHNJc3N1ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AGHJlZGVlbQgBHGJvbmRfaWQoARxBc3NldElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQABMJhSZWRlZW0gYm9uZHMgZm9yIHRoZSB1bmRlcmx5aW5nIGFzc2V0LnUBVGhlIGFtb3VudCBvZiB0aGUgdW5kZXJseWluZyBhc3NldCB0aGUgYG9yaWdpbmAgcmVjZWl2ZXMgaXMgMToxIHRvIHRoZSBgYW1vdW50YCBvZiB0aGUgYm9uZHMuyEFueW9uZSB3aG8gaG9sZHMgdGhlIGJvbmRzIGlzIGFibGUgdG8gcmVkZWVtIHRoZW0uuEJvbmRzIGNhbiBiZSBib3RoIHBhcnRpYWxseSBvciBmdWxseSByZWRlZW1lZC4ALFBhcmFtZXRlcnM6WC0gYG9yaWdpbmA6IGFjY291bnQgaWRsLSBgYXNzZXRfaWRgOiBib25kIGFzc2V0IGlkGQEtIGBhbW91bnRgOiB0aGUgYW1vdW50IG9mIHRoZSBib25kcyB0byByZWRlZW0gZm9yIHRoZSB1bmRlcmx5aW5nIGFzc2V0ALBFbWl0cyBgQm9uZHNSZWRlZW1lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuMQMMWHBhbGxldF9vdGNfc2V0dGxlbWVudHMYcGFsbGV0EENhbGwEBFQAAQRAc2V0dGxlX290Y19vcmRlcgwBGG90Y19pZCgBHE9yZGVySWQAARhhbW91bnRAARxCYWxhbmNlAAEUcm91dGXlAgFMUm91dGU8QXNzZXRJZE9mPFQ+PgAAULBDbG9zZSBhbiBleGlzdGluZyBPVEMgYXJiaXRyYWdlIG9wcG9ydHVuaXR5LgDURXhlY3V0ZXMgYSB0cmFkZSBiZXR3ZWVuIGFuIE9UQyBvcmRlciBhbmQgc29tZSByb3V0ZS5VAUlmIHRoZSBPVEMgb3JkZXIgaXMgcGFydGlhbGx5IGZpbGxhYmxlLCB0aGUgZXh0cmluc2ljIGZhaWxzIGlmIHRoZSBleGlzdGluZyBhcmJpdHJhZ2XUb3Bwb3J0dW5pdHkgaXMgbm90IGNsb3NlZCBvciByZWR1Y2VkIGFmdGVyIHRoZSB0cmFkZS5hAUlmIHRoZSBPVEMgb3JkZXIgaXMgbm90IHBhcnRpYWxseSBmaWxsYWJsZSwgZmFpbHMgaWYgdGhlcmUgaXMgbm8gcHJvZml0IGFmdGVyIHRoZSB0cmFkZS4AEQFgT3JpZ2luYCBjYWxsaW5nIHRoaXMgZXh0cmluc2ljIGlzIG5vdCBwYXlpbmcgb3IgcmVjZWl2aW5nIGFueXRoaW5nLgAlAVRoZSBwcm9maXQgbWFkZSBieSBjbG9zaW5nIHRoZSBhcmJpdHJhZ2UgaXMgdHJhbnNmZXJyZWQgdG8gYEZlZVJlY2VpdmVyYC4ALFBhcmFtZXRlcnM6OQEtIGBvcmlnaW5gOiBTaWduZWQgb3IgdW5zaWduZWQgb3JpZ2luLiBVbnNpZ25lZCBvcmlnaW4gZG9lc24ndCBwYXkgdGhlIFRYIGZlZSysCQkJYnV0IGNhbiBiZSBzdWJtaXR0ZWQgb25seSBieSBhIGNvbGxhdG9yLhEBLSBgb3RjX2lkYDogSUQgb2YgdGhlIE9UQyBvcmRlciB3aXRoIGV4aXN0aW5nIGFyYml0cmFnZSBvcHBvcnR1bml0eS64LSBgYW1vdW50YDogQW1vdW50IG5lY2Vzc2FyeSB0byBjbG9zZSB0aGUgYXJiLiEBLSBgcm91dGVgOiBUaGUgcm91dGUgd2UgdHJhZGUgYWdhaW5zdC4gUmVxdWlyZWQgZm9yIHRoZSBmZWUgY2FsY3VsYXRpb24uAJxFbWl0cyBgRXhlY3V0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4ABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLjUDDChwYWxsZXRfbGJwGHBhbGxldBBDYWxsBARUAAEYLGNyZWF0ZV9wb29sLAEocG9vbF9vd25lcgABMFQ6OkFjY291bnRJZAABHGFzc2V0X2EoARxBc3NldElkAAE4YXNzZXRfYV9hbW91bnRAARxCYWxhbmNlAAEcYXNzZXRfYigBHEFzc2V0SWQAAThhc3NldF9iX2Ftb3VudEABHEJhbGFuY2UAAThpbml0aWFsX3dlaWdodCgBJExCUFdlaWdodAABMGZpbmFsX3dlaWdodCgBJExCUFdlaWdodAABMHdlaWdodF9jdXJ2ZTkDATxXZWlnaHRDdXJ2ZVR5cGUAAQxmZWWpAgEoKHUzMiwgdTMyKQABNGZlZV9jb2xsZWN0b3IAATBUOjpBY2NvdW50SWQAATByZXBheV90YXJnZXRAARxCYWxhbmNlAACE/ENyZWF0ZSBhIG5ldyBsaXF1aWRpdHkgYm9vdHN0cmFwcGluZyBwb29sIGZvciBnaXZlbiBhc3NldCBwYWlyLgDYRm9yIGFueSBhc3NldCBwYWlyLCBvbmx5IG9uZSBwb29sIGNhbiBleGlzdCBhdCBhIHRpbWUuAAEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFQ6OkNyZWF0ZVBvb2xPcmlnaW5gLlUBVGhlIHBvb2wgaXMgY3JlYXRlZCB3aXRoIGluaXRpYWwgbGlxdWlkaXR5IHByb3ZpZGVkIGJ5IHRoZSBgcG9vbF9vd25lcmAgd2hvIG11c3QgaGF2ZVhzdWZmaWNpZW50IGZ1bmRzIGZyZWUuAKEBVGhlIHBvb2wgc3RhcnRzIHVuaW5pdGlhbGl6ZWQgYW5kIHVwZGF0ZV9wb29sIGNhbGwgc2hvdWxkIGJlIGNhbGxlZCBvbmNlIGNyZWF0ZWQgdG8gc2V0IHRoZSBzdGFydCBibG9jay4AOQFUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBkaXNwYXRjaGVkIGZyb20gZ292ZXJuaW5nIGVudGl0eSBgVDo6Q3JlYXRlUG9vbE9yaWdpbmAALFBhcmFtZXRlcnM6xC0gYHBvb2xfb3duZXJgOiB0aGUgZnV0dXJlIG93bmVyIG9mIHRoZSBuZXcgcG9vbC4hAS0gYGFzc2V0X2FgOiB7IGFzc2V0X2lkLCBhbW91bnQgfSBBc3NldCBJRCBhbmQgaW5pdGlhbCBsaXF1aWRpdHkgYW1vdW50LiEBLSBgYXNzZXRfYmA6IHsgYXNzZXRfaWQsIGFtb3VudCB9IEFzc2V0IElEIGFuZCBpbml0aWFsIGxpcXVpZGl0eSBhbW91bnQuoQEtIGBpbml0aWFsX3dlaWdodGA6IEluaXRpYWwgd2VpZ2h0IG9mIHRoZSBhc3NldF9hLiAxXzAwMF8wMDAgY29ycmVzcG9uZGluZyB0byAxJSBhbmQgMTAwXzAwMF8wMDAgdG8gMTAwJZx0aGlzIHNob3VsZCBiZSBoaWdoZXIgdGhhbiBmaW5hbCB3ZWlnaHSRAS0gYGZpbmFsX3dlaWdodGA6IEZpbmFsIHdlaWdodCBvZiB0aGUgYXNzZXRfYS4gMV8wMDBfMDAwIGNvcnJlc3BvbmRpbmcgdG8gMSUgYW5kIDEwMF8wMDBfMDAwIHRvIDEwMCWgdGhpcyBzaG91bGQgYmUgbG93ZXIgdGhhbiBpbml0aWFsIHdlaWdodEEBLSBgd2VpZ2h0X2N1cnZlYDogVGhlIHdlaWdodCBmdW5jdGlvbiB1c2VkIHRvIHVwZGF0ZSB0aGUgTEJQIHdlaWdodHMuIEN1cnJlbnRseSwNAXRoZXJlIGlzIG9ubHkgb25lIHdlaWdodCBmdW5jdGlvbiBpbXBsZW1lbnRlZCwgdGhlIGxpbmVhciBmdW5jdGlvbi49AS0gYGZlZWA6IFRoZSB0cmFkaW5nIGZlZSBjaGFyZ2VkIG9uIGV2ZXJ5IHRyYWRlIGRpc3RyaWJ1dGVkIHRvIGBmZWVfY29sbGVjdG9yYC4lAS0gYGZlZV9jb2xsZWN0b3JgOiBUaGUgYWNjb3VudCB0byB3aGljaCB0cmFkaW5nIGZlZXMgd2lsbCBiZSB0cmFuc2ZlcnJlZC6dAS0gYHJlcGF5X3RhcmdldGA6IFRoZSBhbW91bnQgb2YgdG9rZW5zIHRvIHJlcGF5IHRvIHNlcGFyYXRlIGZlZV9jb2xsZWN0b3IgYWNjb3VudC4gVW50aWwgdGhpcyBhbW91bnQgaXP0cmVhY2hlZCwgZmVlIHdpbGwgYmUgaW5jcmVhc2VkIHRvIDIwJSBhbmQgdGFrZW4gZnJvbSB0aGUgcG9vbACoRW1pdHMgYFBvb2xDcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAJ0BQkVXQVJFOiBXZSBhcmUgdGFraW5nIHRoZSBmZWUgZnJvbSB0aGUgYWNjdW11bGF0ZWQgYXNzZXQuIElmIHRoZSBhY2N1bXVsYXRlZCBhc3NldCBpcyBzb2xkIHRvIHRoZSBwb29sLHkBdGhlIGZlZSBjb3N0IGlzIHRyYW5zZmVycmVkIHRvIHRoZSBwb29sLiBJZiBpdHMgYm91Z2h0IGZyb20gdGhlIHBvb2wgdGhlIGJ1eWVyIGJlYXJzIHRoZSBjb3N0LmkBVGhpcyBpbmNyZWFzZXMgdGhlIHByaWNlIG9mIHRoZSBzb2xkIGFzc2V0IG9uIGV2ZXJ5IHRyYWRlLiBNYWtlIHN1cmUgdG8gb25seSBydW4gdGhpcyB3aXRobHByZXZpb3VzbHkgaWxsaXF1aWQgYXNzZXRzLkB1cGRhdGVfcG9vbF9kYXRhJAEccG9vbF9pZAABJFBvb2xJZDxUPgABKHBvb2xfb3duZXLNAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AARRzdGFydHQBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4AAQxlbmR0AWRPcHRpb248QmxvY2tOdW1iZXJGb3I8VD4+AAE4aW5pdGlhbF93ZWlnaHR0AURPcHRpb248TEJQV2VpZ2h0PgABMGZpbmFsX3dlaWdodHQBRE9wdGlvbjxMQlBXZWlnaHQ+AAEMZmVl0QIBSE9wdGlvbjwodTMyLCB1MzIpPgABNGZlZV9jb2xsZWN0b3LNAQFQT3B0aW9uPFQ6OkFjY291bnRJZD4AATByZXBheV90YXJnZXT1AQE8T3B0aW9uPEJhbGFuY2U+AAFIbFVwZGF0ZSBwb29sIGRhdGEgb2YgYSBwb29sLgANAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHNpZ25lZCBieSB0aGUgcG9vbCBvd25lci4ABQFUaGUgcG9vbCBjYW4gYmUgdXBkYXRlZCBvbmx5IGlmIHRoZSBzYWxlIGhhcyBub3QgYWxyZWFkeSBzdGFydGVkLgAZAUF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbmFsIHBhcmFtZXRlcnMgaGFzIHRvIGJlIHNwZWNpZmllZC4ALFBhcmFtZXRlcnM62C0gYHBvb2xfaWRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgcG9vbCB0byBiZSB1cGRhdGVkLiUBLSBgc3RhcnRgOiBUaGUgbmV3IHN0YXJ0aW5nIHRpbWUgb2YgdGhlIHNhbGUuIFRoaXMgcGFyYW1ldGVyIGlzIG9wdGlvbmFsLhUBLSBgZW5kYDogVGhlIG5ldyBlbmRpbmcgdGltZSBvZiB0aGUgc2FsZS4gVGhpcyBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwuHQEtIGBpbml0aWFsX3dlaWdodGA6IFRoZSBuZXcgaW5pdGlhbCB3ZWlnaHQuIFRoaXMgcGFyYW1ldGVyIGlzIG9wdGlvbmFsLg0BLSBgZmluYWxfd2VpZ2h0YDogVGhlIG5ldyBmaW5hbCB3ZWlnaHQuIFRoaXMgcGFyYW1ldGVyIGlzIG9wdGlvbmFsLkEBLSBgZmVlYDogVGhlIG5ldyB0cmFkaW5nIGZlZSBjaGFyZ2VkIG9uIGV2ZXJ5IHRyYWRlLiBUaGlzIHBhcmFtZXRlciBpcyBvcHRpb25hbC5BAS0gYGZlZV9jb2xsZWN0b3JgOiBUaGUgbmV3IHJlY2VpdmVyIG9mIHRyYWRpbmcgZmVlcy4gVGhpcyBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwuAKhFbWl0cyBgUG9vbFVwZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC40YWRkX2xpcXVpZGl0eQgBIGFtb3VudF9hPQMBXChBc3NldElkLCBCYWxhbmNlT2Y8VD4pAAEgYW1vdW50X2I9AwFcKEFzc2V0SWQsIEJhbGFuY2VPZjxUPikAAjBgQWRkIGxpcXVpZGl0eSB0byBhIHBvb2wuAE0BQXNzZXRzIHRvIGFkZCBoYXMgdG8gbWF0Y2ggdGhlIHBvb2wgYXNzZXRzLiBBdCBsZWFzdCBvbmUgYW1vdW50IGhhcyB0byBiZSBub24temVyby4ADQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBzaWduZWQgYnkgdGhlIHBvb2wgb3duZXIuACxQYXJhbWV0ZXJzOpwtIGBwb29sX2lkYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHBvb2wBAS0gYGFtb3VudF9hYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGFuZCB0aGUgYW1vdW50IHRvIGFkZC4dAS0gYGFtb3VudF9iYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHNlY29uZCBhc3NldCBhbmQgdGhlIGFtb3VudCB0byBhZGQuALRFbWl0cyBgTGlxdWlkaXR5QWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5AcmVtb3ZlX2xpcXVpZGl0eQQBHHBvb2xfaWQAASRQb29sSWQ8VD4AAyxNAVRyYW5zZmVyIGFsbCB0aGUgbGlxdWlkaXR5IGZyb20gYSBwb29sIGJhY2sgdG8gdGhlIHBvb2wgb3duZXIgYW5kIGRlc3Ryb3kgdGhlIHBvb2wuwFRoZSBwb29sIGRhdGEgYXJlIGFsc28gcmVtb3ZlZCBmcm9tIHRoZSBzdG9yYWdlLgCwVGhlIHBvb2wgY2FuJ3QgYmUgZGVzdHJveWVkIGR1cmluZyB0aGUgc2FsZS4ADQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBzaWduZWQgYnkgdGhlIHBvb2wgb3duZXIuACxQYXJhbWV0ZXJzOgEBLSBgYW1vdW50X2FgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgYW5kIHRoZSBhbW91bnQgdG8gYWRkLgCkRW1pdHMgJ0xpcXVpZGl0eVJlbW92ZWQnIHdoZW4gc3VjY2Vzc2Z1bC4Qc2VsbBABIGFzc2V0X2luKAEcQXNzZXRJZAABJGFzc2V0X291dCgBHEFzc2V0SWQAARhhbW91bnRAATBCYWxhbmNlT2Y8VD4AASRtYXhfbGltaXRAATBCYWxhbmNlT2Y8VD4ABDyEVHJhZGUgYGFzc2V0X2luYCBmb3IgYGFzc2V0X291dGAuAFUBRXhlY3V0ZXMgYSBzd2FwIG9mIGBhc3NldF9pbmAgZm9yIGBhc3NldF9vdXRgLiBQcmljZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBwb29sIGFuZCBpcyUBYWZmZWN0ZWQgYnkgdGhlIGFtb3VudCBhbmQgcHJvcG9ydGlvbiBvZiB0aGUgcG9vbCBhc3NldHMgYW5kIHRoZSB3ZWlnaHRzLgDQVHJhZGluZyBgZmVlYCBpcyBkaXN0cmlidXRlZCB0byB0aGUgYGZlZV9jb2xsZWN0b3JgLgAsUGFyYW1ldGVyczplAS0gYGFzc2V0X2luYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGJlaW5nIHRyYW5zZmVycmVkIGZyb20gdGhlIGFjY291bnQgdG8gdGhlIHBvb2wuaQEtIGBhc3NldF9vdXRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgYmVpbmcgdHJhbnNmZXJyZWQgZnJvbSB0aGUgcG9vbCB0byB0aGUgYWNjb3VudC6QLSBgYW1vdW50YDogVGhlIGFtb3VudCBvZiBgYXNzZXRfaW5g7QEtIGBtYXhfbGltaXRgOiBtaW5pbXVtIGFtb3VudCBvZiBgYXNzZXRfb3V0YCAvIGFtb3VudCBvZiBhc3NldF9vdXQgdG8gYmUgb2J0YWluZWQgZnJvbSB0aGUgcG9vbCBpbiBleGNoYW5nZSBmb3IgYGFzc2V0X2luYC4AxEVtaXRzIGBTZWxsRXhlY3V0ZWRgIHdoZW4gc3VjY2Vzc2Z1bC4gRGVwcmVjYXRlZC7IRW1pdHMgYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIHdoZW4gc3VjY2Vzc2Z1bC4MYnV5EAEkYXNzZXRfb3V0KAEcQXNzZXRJZAABIGFzc2V0X2luKAEcQXNzZXRJZAABGGFtb3VudEABMEJhbGFuY2VPZjxUPgABJG1heF9saW1pdEABMEJhbGFuY2VPZjxUPgAFPIRUcmFkZSBgYXNzZXRfaW5gIGZvciBgYXNzZXRfb3V0YC4AVQFFeGVjdXRlcyBhIHN3YXAgb2YgYGFzc2V0X2luYCBmb3IgYGFzc2V0X291dGAuIFByaWNlIGlzIGRldGVybWluZWQgYnkgdGhlIHBvb2wgYW5kIGlzNQFhZmZlY3RlZCBieSB0aGUgYW1vdW50IGFuZCB0aGUgcHJvcG9ydGlvbiBvZiB0aGUgcG9vbCBhc3NldHMgYW5kIHRoZSB3ZWlnaHRzLgDQVHJhZGluZyBgZmVlYCBpcyBkaXN0cmlidXRlZCB0byB0aGUgYGZlZV9jb2xsZWN0b3JgLgAsUGFyYW1ldGVyczplAS0gYGFzc2V0X2luYDogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0IGJlaW5nIHRyYW5zZmVycmVkIGZyb20gdGhlIGFjY291bnQgdG8gdGhlIHBvb2wuaQEtIGBhc3NldF9vdXRgOiBUaGUgaWRlbnRpZmllciBvZiB0aGUgYXNzZXQgYmVpbmcgdHJhbnNmZXJyZWQgZnJvbSB0aGUgcG9vbCB0byB0aGUgYWNjb3VudC6YLSBgYW1vdW50YDogVGhlIGFtb3VudCBvZiBgYXNzZXRfb3V0YC5NAS0gYG1heF9saW1pdGA6IG1heGltdW0gYW1vdW50IG9mIGBhc3NldF9pbmAgdG8gYmUgc29sZCBpbiBleGNoYW5nZSBmb3IgYGFzc2V0X291dGAuAMBFbWl0cyBgQnV5RXhlY3V0ZWRgIHdoZW4gc3VjY2Vzc2Z1bC4gRGVwcmVjYXRlZC7IRW1pdHMgYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuOQMIKHBhbGxldF9sYnA8V2VpZ2h0Q3VydmVUeXBlAAEEGExpbmVhcgAAAAA9AwAABAgoQABBAwwocGFsbGV0X3h5axhwYWxsZXQQQ2FsbAQEVAABHCxjcmVhdGVfcG9vbBABHGFzc2V0X2EoARxBc3NldElkAAEgYW1vdW50X2FAARxCYWxhbmNlAAEcYXNzZXRfYigBHEFzc2V0SWQAASBhbW91bnRfYkABHEJhbGFuY2UAACSUQ3JlYXRlIG5ldyBwb29sIGZvciBnaXZlbiBhc3NldCBwYWlyLgBRAVJlZ2lzdGVycyBuZXcgcG9vbCBmb3IgZ2l2ZW4gYXNzZXQgcGFpciAoYGFzc2V0IGFgIGFuZCBgYXNzZXQgYmApIGluIGFzc2V0IHJlZ2lzdHJ5LnEBQXNzZXQgcmVnaXN0cnkgY3JlYXRlcyBuZXcgaWQgb3IgcmV0dXJucyBwcmV2aW91c2x5IGNyZWF0ZWQgb25lIGlmIHN1Y2ggcG9vbCBleGlzdGVkIGJlZm9yZS4A8FBvb2wgaXMgY3JlYXRlZCB3aXRoIGluaXRpYWwgbGlxdWlkaXR5IHByb3ZpZGVkIGJ5IGBvcmlnaW5gLnkBU2hhcmVzIGFyZSBpc3N1ZWQgd2l0aCBzcGVjaWZpZWQgaW5pdGlhbCBwcmljZSBhbmQgcmVwcmVzZW50cyBwcm9wb3J0aW9uIG9mIGFzc2V0IGluIHRoZSBwb29sLgCoRW1pdHMgYFBvb2xDcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuNGFkZF9saXF1aWRpdHkQARxhc3NldF9hKAEcQXNzZXRJZAABHGFzc2V0X2IoARxBc3NldElkAAEgYW1vdW50X2FAARxCYWxhbmNlAAFIYW1vdW50X2JfbWF4X2xpbWl0QAEcQmFsYW5jZQABFNBBZGQgbGlxdWlkaXR5IHRvIHByZXZpb3VzbHkgY3JlYXRlZCBhc3NldCBwYWlyIHBvb2wuAJRTaGFyZXMgYXJlIGlzc3VlZCB3aXRoIGN1cnJlbnQgcHJpY2UuALRFbWl0cyBgTGlxdWlkaXR5QWRkZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5kYWRkX2xpcXVpZGl0eV93aXRoX2xpbWl0cxQBHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAASBhbW91bnRfYUABHEJhbGFuY2UAAUhhbW91bnRfYl9tYXhfbGltaXRAARxCYWxhbmNlAAEobWluX3NoYXJlc0ABHEJhbGFuY2UABQBAcmVtb3ZlX2xpcXVpZGl0eQwBHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAATBzaGFyZV9hbW91bnRAARxCYWxhbmNlAAIYMQFSZW1vdmUgbGlxdWlkaXR5IGZyb20gc3BlY2lmaWMgbGlxdWlkaXR5IHBvb2wgaW4gdGhlIGZvcm0gb2YgYnVybmluZyBzaGFyZXMuANBJZiBsaXF1aWRpdHkgaW4gdGhlIHBvb2wgcmVhY2hlcyAwLCBpdCBpcyBkZXN0cm95ZWQuAKRFbWl0cyAnTGlxdWlkaXR5UmVtb3ZlZCcgd2hlbiBzdWNjZXNzZnVsLrRFbWl0cyAnUG9vbERlc3Ryb3llZCcgd2hlbiBwb29sIGlzIGRlc3Ryb3llZC5wcmVtb3ZlX2xpcXVpZGl0eV93aXRoX2xpbWl0cxQBHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAATBzaGFyZV9hbW91bnRAARxCYWxhbmNlAAEwbWluX2Ftb3VudF9hQAEcQmFsYW5jZQABMG1pbl9hbW91bnRfYkABHEJhbGFuY2UABgAQc2VsbBQBIGFzc2V0X2luKAEcQXNzZXRJZAABJGFzc2V0X291dCgBHEFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEkbWF4X2xpbWl0QAEcQmFsYW5jZQABIGRpc2NvdW50RAEQYm9vbAADIHRUcmFkZSBhc3NldCBpbiBmb3IgYXNzZXQgb3V0LgBlAUV4ZWN1dGVzIGEgc3dhcCBvZiBgYXNzZXRfaW5gIGZvciBgYXNzZXRfb3V0YC4gUHJpY2UgaXMgZGV0ZXJtaW5lZCBieSB0aGUgbGlxdWlkaXR5IHBvb2wuAOkBYG1heF9saW1pdGAgLSBtaW5pbXVtIGFtb3VudCBvZiBgYXNzZXRfb3V0YCAvIGFtb3VudCBvZiBhc3NldF9vdXQgdG8gYmUgb2J0YWluZWQgZnJvbSB0aGUgcG9vbCBpbiBleGNoYW5nZSBmb3IgYGFzc2V0X2luYC4AxEVtaXRzIGBTZWxsRXhlY3V0ZWRgIHdoZW4gc3VjY2Vzc2Z1bC4gRGVwcmVjYXRlZC7IRW1pdHMgYHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWRgIHdoZW4gc3VjY2Vzc2Z1bC4MYnV5FAEkYXNzZXRfb3V0KAEcQXNzZXRJZAABIGFzc2V0X2luKAEcQXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAASRtYXhfbGltaXRAARxCYWxhbmNlAAEgZGlzY291bnREARBib29sAAQcdFRyYWRlIGFzc2V0IGluIGZvciBhc3NldCBvdXQuAGUBRXhlY3V0ZXMgYSBzd2FwIG9mIGBhc3NldF9pbmAgZm9yIGBhc3NldF9vdXRgLiBQcmljZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBsaXF1aWRpdHkgcG9vbC4ASQFgbWF4X2xpbWl0YCAtIG1heGltdW0gYW1vdW50IG9mIGBhc3NldF9pbmAgdG8gYmUgc29sZCBpbiBleGNoYW5nZSBmb3IgYGFzc2V0X291dGAuwEVtaXRzIGBCdXlFeGVjdXRlZGAgd2hlbiBzdWNjZXNzZnVsLiBEZXByZWNhdGVkLshFbWl0cyBgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZGAgd2hlbiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5FAwxAcGFsbGV0X3JlZmVycmFscxhwYWxsZXQQQ2FsbAQEVAABFDRyZWdpc3Rlcl9jb2RlBAEQY29kZUkDAWxSZWZlcnJhbENvZGU8VDo6Q29kZUxlbmd0aD4AADRsUmVnaXN0ZXIgbmV3IHJlZmVycmFsIGNvZGUuAIxgb3JpZ2luYCBwYXlzIHRoZSByZWdpc3RyYXRpb24gZmVlLqhgY29kZWAgaXMgYXNzaWduZWQgdG8gdGhlIGdpdmVuIGBhY2NvdW50YC4A5Exlbmd0aCBvZiB0aGUgYGNvZGVgIG11c3QgYmUgYXQgbGVhc3QgYFQ6Ok1pbkNvZGVMZW5ndGhgLrRNYXhpbXVtIGxlbmd0aCBpcyBsaW1pdGVkIHRvIGBUOjpDb2RlTGVuZ3RoYC6RAWBjb2RlYCBtdXN0IGNvbnRhaW4gb25seSBhbGZhLW51bWVyaWMgY2hhcmFjdGVycyBhbmQgYWxsIGNoYXJhY3RlcnMgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdXBwZXIgY2FzZS4ALFBhcmFtZXRlcnM65C0gYGNvZGVgOiBDb2RlIHRvIHJlZ2lzdGVyLiBNdXN0IGZvbGxvdyB0aGUgcmVzdHJpY3Rpb25zLgC0RW1pdHMgYENvZGVSZWdpc3RlcmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuJGxpbmtfY29kZQQBEGNvZGVJAwFsUmVmZXJyYWxDb2RlPFQ6OkNvZGVMZW5ndGg+AAEoaExpbmsgYSBjb2RlIHRvIGFuIGFjY291bnQuACkBYENvZGVgIG11c3QgYmUgdmFsaWQgcmVnaXN0ZXJlZCBjb2RlLiBPdGhlcndpc2UgYEludmFsaWRDb2RlYCBpcyByZXR1cm5lZC4A9FNpZ25lciBhY2NvdW50IGlzIGxpbmtlZCB0byB0aGUgcmVmZXJyYWwgYWNjb3VudCBvZiB0aGUgY29kZS4ALFBhcmFtZXRlcnM60C0gYGNvZGVgOiBDb2RlIHRvIHVzZSB0byBsaW5rIHRoZSBzaWduZXIgYWNjb3VudCB0by4ApEVtaXRzIGBDb2RlTGlua2VkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuHGNvbnZlcnQEASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAhjAQ29udmVydCBhY2NydWVkIGFzc2V0IGFtb3VudCB0byByZXdhcmQgY3VycmVuY3kuACxQYXJhbWV0ZXJzOtwtIGBhc3NldF9pZGA6IElkIG9mIGFuIGFzc2V0IHRvIGNvbnZlcnQgdG8gUmV3YXJkQXNzZXQuAKBFbWl0cyBgQ29udmVydGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuNGNsYWltX3Jld2FyZHMAAyRkQ2xhaW0gYWNjdW11bGF0ZWQgcmV3YXJkcwBJAUlGIHRoZXJlIGlzIGFueSBhc3NldCBpbiB0aGUgcmV3YXJkIHBvdCwgYWxsIGlzIGNvbnZlcnRlZCB0byBSZXdhcmRDdXJyZW5jeSBmaXJzdC4AGQFSZXdhcmQgYW1vdW50IGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHNoYXJlcyBvZiB0aGUgc2lnbmVyIGFjY291bnQuANUBaWYgdGhlIHNpZ25lciBhY2NvdW50IGlzIHJlZmVycmVyIGFjY291bnQsIHRvdGFsIGFjY3VtdWxhdGVkIHJld2FyZHMgaXMgdXBkYXRlZCBhcyB3ZWxsIGFzIHJlZmVycmVyIGxldmVsIGlmIHJlYWNoZWQuAJhFbWl0cyBgQ2xhaW1lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLlRzZXRfcmV3YXJkX3BlcmNlbnRhZ2UMASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARRsZXZlbE0DARRMZXZlbAABHHJld2FyZHNRAwE8RmVlRGlzdHJpYnV0aW9uAAQgcFNldCBhc3NldCByZXdhcmQgcGVyY2VudGFnZXMALFBhcmFtZXRlcnM6WC0gYGFzc2V0X2lkYDogYXNzZXQgaWRALSBgbGV2ZWxgOiBsZXZlbIwtIGByZXdhcmRzYDogcmV3YXJkIGZlZSBwZXJjZW50YWdlcwDIRW1pdHMgYEFzc2V0UmV3YXJkc1VwZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuSQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AABNAwhAcGFsbGV0X3JlZmVycmFscxRMZXZlbAABGBBOb25lAAAAFFRpZXIwAAEAFFRpZXIxAAIAFFRpZXIyAAMAFFRpZXIzAAQAFFRpZXI0AAUAAFEDCEBwYWxsZXRfcmVmZXJyYWxzPEZlZURpc3RyaWJ1dGlvbgAACAEgcmVmZXJyZXJ1AgEcUGVybWlsbAABGHRyYWRlcnUCARxQZXJtaWxsAABVAwxIcGFsbGV0X2xpcXVpZGF0aW9uGHBhbGxldBBDYWxsBARUAAEMJGxpcXVpZGF0ZRQBQGNvbGxhdGVyYWxfYXNzZXQoARxBc3NldElkAAEoZGVidF9hc3NldCgBHEFzc2V0SWQAARB1c2VyWAEoRXZtQWRkcmVzcwABNGRlYnRfdG9fY292ZXJAARxCYWxhbmNlAAEUcm91dGXlAgE4Um91dGU8QXNzZXRJZD4AAGy0TGlxdWlkYXRlcyBhbiBleGlzdGluZyBtb25leSBtYXJrZXQgcG9zaXRpb24ugENhbiBiZSBib3RoIHNpZ25lZCBhbmQgdW5zaWduZWQuANxQZXJmb3JtcyBhIGZsYXNoIGxvYW4gdG8gZ2V0IGZ1bmRzIHRvIHBheSBmb3IgdGhlIGRlYnQuOQFSZWNlaXZlZCBjb2xsYXRlcmFsIGlzIHN3YXBwZWQgYW5kIHRoZSBwcm9maXQgaXMgdHJhbnNmZXJyZWQgdG8gYEZlZVJlY2VpdmVyYC4AMQFQZXJtaXNzaW9ubGVzcyBhbmQgY2FsbGVyLXN1cHBsaWVkIGByb3V0ZWAgYXJlIGludGVudGlvbmFsLiBUaGlzIGNhbGwgZXhpc3RzHQFvbmx5IHRvIGtlZXAgdGhlIG1vbmV5IG1hcmtldCBzb2x2ZW50OiB0aGUgZ29hbCBpcyB0aGF0IHRoZSBwb3NpdGlvbiBpcy0BbGlxdWlkYXRlZCwgbm90IHRoYXQgdGhlIHByb3RvY29sIGNhcHR1cmVzIHRoZSBzdXJwbHVzLiBBIGNhbGxlciBjYW4gcGljayBhGQFgcm91dGVgIHRoYXQgcHJpY2VzIHRoZSBjb2xsYXRlcmFsIHNvIHRoYXQgbGl0dGxlIG9yIG5vIHByb2ZpdCByZWFjaGVzOQFgRmVlUmVjZWl2ZXJgIOKAlCB0aGF0IGlzIGFjY2VwdGFibGUuIEl0IGlzIG5vdCBhbiBleHBsb2l0OiBhbnlvbmUgY2FuIGFscmVhZHkxAWxpcXVpZGF0ZSB0aGUgc2FtZSBwb3NpdGlvbiBieSBjYWxsaW5nIEFhdmUncyBgbGlxdWlkYXRpb25DYWxsYCBkaXJlY3RseSBhbmQtAWtlZXAgdGhlIGVudGlyZSBib251cyB0aGVtc2VsdmVzLiBTbyByZXBvcnRzIGZyYW1pbmcgdGhlIG9wZW4gb3JpZ2luIG9yIHRoZTUBYXR0YWNrZXItY2hvc2VuIHJvdXRlIGFzIGEgZnVuZC1yZWRpcmVjdGlvbiB2dWxuZXJhYmlsaXR5IGFyZSBvdXQgb2Ygc2NvcGUgYnkxAWRlc2lnbjsgdGhlIG9ubHkgaW52YXJpYW50IHRoYXQgbWF0dGVycyBoZXJlIGlzIHRoYXQgdW5oZWFsdGh5IHBvc2l0aW9ucyBjYW5EYWx3YXlzIGJlIGNsb3NlZC4ALFBhcmFtZXRlcnM6aC0gYG9yaWdpbmA6IFNpZ25lZCBvcmlnaW4uFQEtIGBjb2xsYXRlcmFsX2Fzc2V0YDogQXNzZXQgSUQgdXNlZCBhcyBjb2xsYXRlcmFsIGluIHRoZSBNTSBwb3NpdGlvbi7kLSBgZGVidF9hc3NldGA6IEFzc2V0IElEIHVzZWQgYXMgZGVidCBpbiB0aGUgTU0gcG9zaXRpb24uDQEtIGB1c2VyYDogRVZNIGFkZHJlc3Mgb2YgdGhlIE1NIHBvc2l0aW9uIHRoYXQgd2Ugd2FudCB0byBsaXF1aWRhdGUu3C0gYGRlYnRfdG9fY292ZXJgOiBBbW91bnQgb2YgZGVidCB3ZSB3YW50IHRvIGxpcXVpZGF0ZS4hAS0gYHJvdXRlYDogVGhlIHJvdXRlIHdlIHRyYWRlIGFnYWluc3QuIFJlcXVpcmVkIGZvciB0aGUgZmVlIGNhbGN1bGF0aW9uLgCkRW1pdHMgYExpcXVpZGF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AWHNldF9ib3Jyb3dpbmdfY29udHJhY3QEASBjb250cmFjdFgBKEV2bUFkZHJlc3MAAQSoU2V0IHRoZSBib3Jyb3dpbmcgbWFya2V0IGNvbnRyYWN0IGFkZHJlc3MuTGxpcXVpZGF0ZV93aXRoX3Bvb2wcARBwb29sWAEoRXZtQWRkcmVzcwABQGNvbGxhdGVyYWxfYXNzZXQoARxBc3NldElkAAEoZGVidF9hc3NldCgBHEFzc2V0SWQAARB1c2VyWAEoRXZtQWRkcmVzcwABNGRlYnRfdG9fY292ZXJAARxCYWxhbmNlAAEUcm91dGXlAgE4Um91dGU8QXNzZXRJZD4AAUR1bnNpZ25lZF9wcmlvcml0eVkDAUBPcHRpb248UHJpb3JpdHk+AAJsWQFMaXF1aWRhdGVzIGFuIGV4aXN0aW5nIG1vbmV5IG1hcmtldCBwb3NpdGlvbiwgYWRkcmVzc2luZyB0aGUgbWFya2V0J3MgcG9vbCBleHBsaWNpdGx5LgA1AUJlaGF2ZXMgZXhhY3RseSBsaWtlIGBsaXF1aWRhdGVgOyB0aGUgZXh0cmEgYHBvb2xgIHBhcmFtZXRlciBpcyBhIGNvbnNpc3RlbmN5NQFhc3NlcnRpb24sIG5vdCBhIHJvdXRlcjogaXQgbXVzdCBlcXVhbCB0aGUgcG9vbCBjb250cmFjdCB0aGUgbGlxdWlkYXRpb24gcGF0aC0BcmVzb2x2ZXMgb24gaXRzIG93biAodGhlIGdpZ2FoZHggcG9vbCBmb3IgR0lHQUhEWC1jb2xsYXRlcmFsIHBvc2l0aW9ucywgdGhlMQFib3Jyb3dpbmcgY29udHJhY3Qgb3RoZXJ3aXNlKSwgb3IgdGhlIGNhbGwgZmFpbHMgd2l0aCBgUG9vbEFkZHJlc3NNaXNtYXRjaGAuMQFUaGlzIGxldHMgYSBtdWx0aS1tb25leS1tYXJrZXQgd29ya2VyIHN0YXRlIHdoaWNoIG1hcmtldCBhIGRlY2lzaW9uIHdhcyBtYWRlRQFhZ2FpbnN0IGFuZCBndWFyYW50ZWVzIHRoZSBsaXF1aWRhdGlvbiBjYW4gbmV2ZXIgZXhlY3V0ZSBhZ2FpbnN0IGEgZGlmZmVyZW50IG9uZS4AOQFVbmxpa2UgYGxpcXVpZGF0ZWAsIHRoaXMgY2FsbCBpcyBub3QgcHVibGljbHkgZGlzcGF0Y2hhYmxlOiB0aGUgb3JpZ2luIG11c3QgYmU5AW5vbmUsIGFuZCBgVmFsaWRhdGVVbnNpZ25lZGAgcmVqZWN0cyBleHRlcm5hbGx5IHJlY2VpdmVkIHRyYW5zYWN0aW9ucywgc28gb25seTEBYSBjb2xsYXRvcidzIG93biBsaXF1aWRhdGlvbiB3b3JrZXIgY2FuIHN1Ym1pdCBpdC4gVGhlIHB1YmxpYyBwZXJtaXNzaW9ubGVzc2RwYXRoIHJlbWFpbnMgYGxpcXVpZGF0ZWAuACxQYXJhbWV0ZXJzOsAtIGBvcmlnaW5gOiBNdXN0IGJlIG5vbmUgKHVuc2lnbmVkIHRyYW5zYWN0aW9uKS4hAS0gYHBvb2xgOiBFVk0gYWRkcmVzcyBvZiB0aGUgbW9uZXktbWFya2V0IHBvb2wgdGhpcyBsaXF1aWRhdGlvbiB0YXJnZXRzLhUBLSBgY29sbGF0ZXJhbF9hc3NldGA6IEFzc2V0IElEIHVzZWQgYXMgY29sbGF0ZXJhbCBpbiB0aGUgTU0gcG9zaXRpb24u5C0gYGRlYnRfYXNzZXRgOiBBc3NldCBJRCB1c2VkIGFzIGRlYnQgaW4gdGhlIE1NIHBvc2l0aW9uLg0BLSBgdXNlcmA6IEVWTSBhZGRyZXNzIG9mIHRoZSBNTSBwb3NpdGlvbiB0aGF0IHdlIHdhbnQgdG8gbGlxdWlkYXRlLtwtIGBkZWJ0X3RvX2NvdmVyYDogQW1vdW50IG9mIGRlYnQgd2Ugd2FudCB0byBsaXF1aWRhdGUuIQEtIGByb3V0ZWA6IFRoZSByb3V0ZSB3ZSB0cmFkZSBhZ2FpbnN0LiBSZXF1aXJlZCBmb3IgdGhlIGZlZSBjYWxjdWxhdGlvbi6FAS0gYHVuc2lnbmVkX3ByaW9yaXR5YDogT3B0aW9uYWwgcHJpb3JpdHkgYWRkZWQgb24gdG9wIG9mIGBCQVNFX1VOU0lHTkVEX0xJUVVJREFUSU9OX1BSSU9SSVRZYCBmb3KAdW5zaWduZWQgbGlxdWlkYXRpb24gZXh0cmluc2ljcy4ApEVtaXRzIGBMaXF1aWRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5ZAwQYT3B0aW9uBARUARgBCBBOb25lAAAAEFNvbWUEABgAAAEAAF0DDChwYWxsZXRfaHNtGHBhbGxldBBDYWxsBARUAAEcUGFkZF9jb2xsYXRlcmFsX2Fzc2V0HAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAATBwdXJjaGFzZV9mZWV1AgEcUGVybWlsbAABZG1heF9idXlfcHJpY2VfY29lZmZpY2llbnRUAUBDb2VmZmljaWVudFJhdGlvAAEwYnV5X2JhY2tfZmVldQIBHFBlcm1pbGwAATBidXliYWNrX3JhdGUpAwEcUGVyYmlsbAABOG1heF9pbl9ob2xkaW5n9QEBPE9wdGlvbjxCYWxhbmNlPgAAYGhBZGQgYSBuZXcgY29sbGF0ZXJhbCBhc3NldABVAVRoaXMgZnVuY3Rpb24gYWRkcyBhIG5ldyBhc3NldCBhcyBhbiBhcHByb3ZlZCBjb2xsYXRlcmFsIGZvciBIb2xsYXIuIE9ubHkgY2FsbGFibGUgYnl0dGhlIGdvdmVybmFuY2UgKHJvb3Qgb3JpZ2luKS4ALFBhcmFtZXRlcnM6YC0gYG9yaWdpbmA6IE11c3QgYmUgUm9vdMAtIGBhc3NldF9pZGA6IEFzc2V0IElEIHRvIGJlIGFkZGVkIGFzIGNvbGxhdGVyYWwZAS0gYHBvb2xfaWRgOiBTdGFibGVTd2FwIHBvb2wgSUQgd2hlcmUgdGhpcyBhc3NldCBhbmQgSG9sbGFyIGFyZSBwYWlyZWRpAS0gYHB1cmNoYXNlX2ZlZWA6IEZlZSBhcHBsaWVkIHdoZW4gYnV5aW5nIEhvbGxhciB3aXRoIHRoaXMgYXNzZXQgKGFkZGVkIHRvIHB1cmNoYXNlIHByaWNlKV0BLSBgbWF4X2J1eV9wcmljZV9jb2VmZmljaWVudGA6IE1heGltdW0gYnV5IHByaWNlIGNvZWZmaWNpZW50IGZvciBIU00gdG8gYnV5IGJhY2sgSG9sbGFyRQEtIGBidXlfYmFja19mZWVgOiBGZWUgYXBwbGllZCB3aGVuIGJ1eWluZyBiYWNrIEhvbGxhciAoc3VidHJhY3RlZCBmcm9tIGJ1eSBwcmljZSlhAS0gYGJ1eWJhY2tfcmF0ZWA6IFBhcmFtZXRlciB0aGF0IGNvbnRyb2xzIGhvdyBxdWlja2x5IEhTTSBjYW4gYnV5IEhvbGxhciB3aXRoIHRoaXMgYXNzZXQZAS0gYG1heF9pbl9ob2xkaW5nYDogT3B0aW9uYWwgbWF4aW11bSBhbW91bnQgb2YgY29sbGF0ZXJhbCBIU00gY2FuIGhvbGQAGEVtaXRzOvQtIGBDb2xsYXRlcmFsQWRkZWRgIHdoZW4gdGhlIGNvbGxhdGVyYWwgaXMgc3VjY2Vzc2Z1bGx5IGFkZGVkABxFcnJvcnM6LQEtIGBBc3NldEFscmVhZHlBcHByb3ZlZGAgaWYgdGhlIGFzc2V0IGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBhcyBhIGNvbGxhdGVyYWxRAS0gYFBvb2xBbHJlYWR5SGFzQ29sbGF0ZXJhbGAgaWYgYW5vdGhlciBhc3NldCBmcm9tIHRoZSBzYW1lIHBvb2wgaXMgYWxyZWFkeSBhcHByb3ZlZAEBLSBgSG9sbGFyTm90SW5Qb29sYCBpZiBIb2xsYXIgaXMgbm90IGZvdW5kIGluIHRoZSBzcGVjaWZpZWQgcG9vbDUBLSBgQXNzZXROb3RJblBvb2xgIGlmIHRoZSBjb2xsYXRlcmFsIGFzc2V0IGlzIG5vdCBmb3VuZCBpbiB0aGUgc3BlY2lmaWVkIHBvb2yQLSBPdGhlciBlcnJvcnMgZnJvbSB1bmRlcmx5aW5nIGNhbGxzXHJlbW92ZV9jb2xsYXRlcmFsX2Fzc2V0BAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAE8ZFJlbW92ZSBhIGNvbGxhdGVyYWwgYXNzZXQAjQFSZW1vdmVzIGFuIGFzc2V0IGZyb20gdGhlIGFwcHJvdmVkIGNvbGxhdGVyYWxzIGxpc3QuIE9ubHkgY2FsbGFibGUgYnkgdGhlIGdvdmVybmFuY2UgKHJvb3Qgb3JpZ2luKS5RAVRoZSBjb2xsYXRlcmFsIG11c3QgaGF2ZSBhIHplcm8gYmFsYW5jZSBpbiB0aGUgSFNNIGFjY291bnQgYmVmb3JlIGl0IGNhbiBiZSByZW1vdmVkLgAsUGFyYW1ldGVyczpgLSBgb3JpZ2luYDogTXVzdCBiZSBSb290xC0gYGFzc2V0X2lkYDogQXNzZXQgSUQgdG8gcmVtb3ZlIGZyb20gY29sbGF0ZXJhbHMAGEVtaXRzOgUBLSBgQ29sbGF0ZXJhbFJlbW92ZWRgIHdoZW4gdGhlIGNvbGxhdGVyYWwgaXMgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQAHEVycm9yczoBAS0gYEFzc2V0Tm90QXBwcm92ZWRgIGlmIHRoZSBhc3NldCBpcyBub3QgYSByZWdpc3RlcmVkIGNvbGxhdGVyYWwhAS0gYENvbGxhdGVyYWxOb3RFbXB0eWAgaWYgdGhlIEhTTSBhY2NvdW50IHN0aWxsIGhvbGRzIHNvbWUgb2YgdGhpcyBhc3NldFx1cGRhdGVfY29sbGF0ZXJhbF9hc3NldBgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABMHB1cmNoYXNlX2ZlZWEDATxPcHRpb248UGVybWlsbD4AAWRtYXhfYnV5X3ByaWNlX2NvZWZmaWNpZW50ZQMBYE9wdGlvbjxDb2VmZmljaWVudFJhdGlvPgABMGJ1eV9iYWNrX2ZlZWEDATxPcHRpb248UGVybWlsbD4AATBidXliYWNrX3JhdGVpAwE8T3B0aW9uPFBlcmJpbGw+AAE4bWF4X2luX2hvbGRpbmdtAwFcT3B0aW9uPE9wdGlvbjxCYWxhbmNlPj4AAkyIVXBkYXRlIGNvbGxhdGVyYWwgYXNzZXQgcGFyYW1ldGVycwCdAVVwZGF0ZXMgdGhlIHBhcmFtZXRlcnMgZm9yIGFuIGV4aXN0aW5nIGNvbGxhdGVyYWwgYXNzZXQuIE9ubHkgY2FsbGFibGUgYnkgdGhlIGdvdmVybmFuY2UgKHJvb3Qgb3JpZ2luKS4hAUVhY2ggcGFyYW1ldGVyIGlzIG9wdGlvbmFsIGFuZCBvbmx5IHByb3ZpZGVkIHBhcmFtZXRlcnMgd2lsbCBiZSB1cGRhdGVkLgAsUGFyYW1ldGVyczpgLSBgb3JpZ2luYDogTXVzdCBiZSBSb290gC0gYGFzc2V0X2lkYDogQXNzZXQgSUQgdG8gdXBkYXRltC0gYHB1cmNoYXNlX2ZlZWA6IE5ldyBwdXJjaGFzZSBmZWUgKG9wdGlvbmFsKR0BLSBgbWF4X2J1eV9wcmljZV9jb2VmZmljaWVudGA6IE5ldyBtYXggYnV5IHByaWNlIGNvZWZmaWNpZW50IChvcHRpb25hbCm0LSBgYnV5X2JhY2tfZmVlYDogTmV3IGJ1eSBiYWNrIGZlZSAob3B0aW9uYWwp3C0gYGJ1eWJhY2tfcmF0ZWA6IE5ldyBidXliYWNrIHJhdGUgcGFyYW1ldGVyIChvcHRpb25hbCnkLSBgbWF4X2luX2hvbGRpbmdgOiBOZXcgbWF4aW11bSBob2xkaW5nIGFtb3VudCAob3B0aW9uYWwpABhFbWl0czoFAS0gYENvbGxhdGVyYWxVcGRhdGVkYCB3aGVuIHRoZSBjb2xsYXRlcmFsIGlzIHN1Y2Nlc3NmdWxseSB1cGRhdGVkABxFcnJvcnM6AQEtIGBBc3NldE5vdEFwcHJvdmVkYCBpZiB0aGUgYXNzZXQgaXMgbm90IGEgcmVnaXN0ZXJlZCBjb2xsYXRlcmFsEHNlbGwQASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABOHNsaXBwYWdlX2xpbWl0QAEcQmFsYW5jZQADbERTZWxsIGFzc2V0IHRvIEhTTQB4VGhpcyBmdW5jdGlvbiBhbGxvd3MgdXNlcnMgdG868DEuIFNlbGwgSG9sbGFyIGJhY2sgdG8gSFNNIGluIGV4Y2hhbmdlIGZvciBjb2xsYXRlcmFsIGFzc2V0cxEBMi4gU2VsbCBjb2xsYXRlcmFsIGFzc2V0cyB0byBIU00gaW4gZXhjaGFuZ2UgZm9yIG5ld2x5IG1pbnRlZCBIb2xsYXIAdQFUaGUgdmFsaWQgcGFpcnMgbXVzdCBpbmNsdWRlIEhvbGxhciBhcyBvbmUgc2lkZSBhbmQgYW4gYXBwcm92ZWQgY29sbGF0ZXJhbCBhcyB0aGUgb3RoZXIgc2lkZS4ALFBhcmFtZXRlcnM6lC0gYG9yaWdpbmA6IEFjY291bnQgc2VsbGluZyB0aGUgYXNzZXSELSBgYXNzZXRfaW5gOiBBc3NldCBJRCBiZWluZyBzb2xkkC0gYGFzc2V0X291dGA6IEFzc2V0IElEIGJlaW5nIGJvdWdodKQtIGBhbW91bnRfaW5gOiBBbW91bnQgb2YgYXNzZXRfaW4gdG8gc2VsbPgtIGBzbGlwcGFnZV9saW1pdGA6IE1pbmltdW0gYW1vdW50IG91dCBmb3Igc2xpcHBhZ2UgcHJvdGVjdGlvbgAYRW1pdHM6oC0gYFN3YXBwZWQzYCB3aGVuIHRoZSBzZWxsIGlzIHN1Y2Nlc3NmdWwAHEVycm9yczolAS0gYEludmFsaWRBc3NldFBhaXJgIGlmIHRoZSBwYWlyIGlzIG5vdCBIb2xsYXIgYW5kIGFuIGFwcHJvdmVkIGNvbGxhdGVyYWz0LSBgQXNzZXROb3RBcHByb3ZlZGAgaWYgdGhlIGNvbGxhdGVyYWwgYXNzZXQgaXNuJ3QgcmVnaXN0ZXJlZEEBLSBgU2xpcHBhZ2VMaW1pdEV4Y2VlZGVkYCBpZiB0aGUgYW1vdW50IHJlY2VpdmVkIGlzIGxlc3MgdGhhbiB0aGUgc2xpcHBhZ2UgbGltaXQlAS0gYE1heEJ1eUJhY2tFeGNlZWRlZGAgaWYgdGhlIHNlbGwgd291bGQgZXhjZWVkIHRoZSBtYXhpbXVtIGJ1eSBiYWNrIHJhdGUZAS0gYE1heEJ1eVByaWNlRXhjZWVkZWRgIGlmIHRoZSBzZWxsIHdvdWxkIGV4Y2VlZCB0aGUgbWF4aW11bSBidXkgcHJpY2UdAS0gYEluc3VmZmljaWVudENvbGxhdGVyYWxCYWxhbmNlYCBpZiBIU00gZG9lc24ndCBoYXZlIGVub3VnaCBjb2xsYXRlcmFsYQEtIGBJbnZhbGlkRVZNSW50ZXJhY3Rpb25gIGlmIHRoZXJlJ3MgYW4gZXJyb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgSG9sbGFyIEVSQzIwIGNvbnRyYWN0kC0gT3RoZXIgZXJyb3JzIGZyb20gdW5kZXJseWluZyBjYWxscwxidXkQASBhc3NldF9pbigBKFQ6OkFzc2V0SWQAASRhc3NldF9vdXQoAShUOjpBc3NldElkAAEoYW1vdW50X291dEABHEJhbGFuY2UAAThzbGlwcGFnZV9saW1pdEABHEJhbGFuY2UABGRIQnV5IGFzc2V0IGZyb20gSFNNAHhUaGlzIGZ1bmN0aW9uIGFsbG93cyB1c2VycyB0bzq4MS4gQnV5IEhvbGxhciBmcm9tIEhTTSB1c2luZyBjb2xsYXRlcmFsIGFzc2V0c7gyLiBCdXkgY29sbGF0ZXJhbCBhc3NldHMgZnJvbSBIU00gdXNpbmcgSG9sbGFyAHUBVGhlIHZhbGlkIHBhaXJzIG11c3QgaW5jbHVkZSBIb2xsYXIgYXMgb25lIHNpZGUgYW5kIGFuIGFwcHJvdmVkIGNvbGxhdGVyYWwgYXMgdGhlIG90aGVyIHNpZGUuACxQYXJhbWV0ZXJzOpAtIGBvcmlnaW5gOiBBY2NvdW50IGJ1eWluZyB0aGUgYXNzZXS0LSBgYXNzZXRfaW5gOiBBc3NldCBJRCBiZWluZyBzb2xkIGJ5IHRoZSB1c2VywC0gYGFzc2V0X291dGA6IEFzc2V0IElEIGJlaW5nIGJvdWdodCBieSB0aGUgdXNlcqgtIGBhbW91bnRfb3V0YDogQW1vdW50IG9mIGFzc2V0X291dCB0byBidXn0LSBgc2xpcHBhZ2VfbGltaXRgOiBNYXhpbXVtIGFtb3VudCBpbiBmb3Igc2xpcHBhZ2UgcHJvdGVjdGlvbgAYRW1pdHM6nC0gYFN3YXBwZWQzYCB3aGVuIHRoZSBidXkgaXMgc3VjY2Vzc2Z1bAAcRXJyb3JzOiUBLSBgSW52YWxpZEFzc2V0UGFpcmAgaWYgdGhlIHBhaXIgaXMgbm90IEhvbGxhciBhbmQgYW4gYXBwcm92ZWQgY29sbGF0ZXJhbPQtIGBBc3NldE5vdEFwcHJvdmVkYCBpZiB0aGUgY29sbGF0ZXJhbCBhc3NldCBpc24ndCByZWdpc3RlcmVkIQEtIGBTbGlwcGFnZUxpbWl0RXhjZWVkZWRgIGlmIHRoZSBhbW91bnQgaW5wdXQgZXhjZWVkcyB0aGUgc2xpcHBhZ2UgbGltaXQ9AS0gYE1heEhvbGRpbmdFeGNlZWRlZGAgaWYgdGhlIGJ1eSB3b3VsZCBjYXVzZSBIU00gdG8gZXhjZWVkIGl0cyBtYXhpbXVtIGhvbGRpbmdhAS0gYEludmFsaWRFVk1JbnRlcmFjdGlvbmAgaWYgdGhlcmUncyBhbiBlcnJvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBIb2xsYXIgRVJDMjAgY29udHJhY3SQLSBPdGhlciBlcnJvcnMgZnJvbSB1bmRlcmx5aW5nIGNhbGxzRGV4ZWN1dGVfYXJiaXRyYWdlCAFMY29sbGF0ZXJhbF9hc3NldF9pZCgBKFQ6OkFzc2V0SWQAASRhcmJpdHJhZ2VxAwFET3B0aW9uPEFyYml0cmFnZT4ABYhZAUV4ZWN1dGUgYXJiaXRyYWdlIG9wcG9ydHVuaXR5IGJldHdlZW4gSFNNIGFuZCBjb2xsYXRlcmFsIHN0YWJsZSBwb29sIHVzaW5nIGZsYXNoIGxvYW5zAFEBVGhpcyBjYWxsIGlzIGRlc2lnbmVkIHRvIGJlIHRyaWdnZXJlZCBhdXRvbWF0aWNhbGx5IGJ5IG9mZmNoYWluIHdvcmtlcnMuIEl0IGV4ZWN1dGVzWQFhcmJpdHJhZ2UgYnkgdGFraW5nIGEgZmxhc2ggbG9hbiBmcm9tIHRoZSBHSE8gY29udHJhY3QgYW5kIHBlcmZvcm1pbmcgdHJhZGVzIHRvIHByb2ZpdOhmcm9tIHByaWNlIGltYmFsYW5jZXMgYmV0d2VlbiBIU00gYW5kIHRoZSBTdGFibGVTd2FwIHBvb2wuAHRUaGUgYXJiaXRyYWdlIGV4ZWN1dGlvbiBmbG93OtQxLiBUYWtlcyBhIGZsYXNoIGxvYW4gb2YgSG9sbGFyIGZyb20gdGhlIEdITyBjb250cmFjdEEBMi4gRXhlY3V0ZXMgdHJhZGVzIGJldHdlZW4gSFNNIGFuZCBTdGFibGVTd2FwIHBvb2wgYmFzZWQgb24gYXJiaXRyYWdlIGRpcmVjdGlvbjrJASAgIC0gRm9yIEhvbGxhckluIChidXkgZGlyZWN0aW9uKTogU2VsbCBIb2xsYXIgdG8gSFNNIGZvciBjb2xsYXRlcmFsLCB0aGVuIHNlbGwgY29sbGF0ZXJhbCBiYWNrIGZvciBIb2xsYXIgaW4gcG9vbJkBICAgLSBGb3IgSG9sbGFyT3V0IChzZWxsIGRpcmVjdGlvbik6IFNlbGwgSG9sbGFyIGZvciBjb2xsYXRlcmFsIGluIHBvb2wsIHRoZW4gYnV5IEhvbGxhciBiYWNrIGZyb20gSFNNYDMuIFJlcGF5cyB0aGUgZmxhc2ggbG9hblUBNC4gQW55IHJlbWFpbmluZyBwcm9maXQgKGluIGNvbGxhdGVyYWwpIGlzIHRyYW5zZmVycmVkIHRvIHRoZSBBcmJpdHJhZ2VQcm9maXRSZWNlaXZlcgBhAVRoaXMgaGVscHMgbWFpbnRhaW4gdGhlIHBlZyBvZiBIb2xsYXIgYnkgcHJvZml0aW5nIGZyb20gYW5kIGNvcnJlY3RpbmcgcHJpY2UgaW1iYWxhbmNlcy4VAVRoZSBjYWxsIGlzIHVuc2lnbmVkIGFuZCBzaG91bGQgb25seSBiZSBleGVjdXRlZCBieSBvZmZjaGFpbiB3b3JrZXJzLgAsUGFyYW1ldGVyczqMLSBgb3JpZ2luYDogTXVzdCBiZSBOb25lICh1bnNpZ25lZCkxAS0gYGNvbGxhdGVyYWxfYXNzZXRfaWRgOiBUaGUgSUQgb2YgdGhlIGNvbGxhdGVyYWwgYXNzZXQgdG8gdXNlIGZvciBhcmJpdHJhZ2VpAS0gYGFyYml0cmFnZWA6IE9wdGlvbmFsIGFyYml0cmFnZSBwYXJhbWV0ZXJzIChkaXJlY3Rpb24gYW5kIGFtb3VudCkuIElmIE5vbmUsIHRoZSBmdW5jdGlvbikBICB3aWxsIGF1dG9tYXRpY2FsbHkgZmluZCBhbmQgY2FsY3VsYXRlIHRoZSBvcHRpbWFsIGFyYml0cmFnZSBvcHBvcnR1bml0eS4AGEVtaXRzOtgtIGBBcmJpdHJhZ2VFeGVjdXRlZGAgd2hlbiB0aGUgYXJiaXRyYWdlIGlzIHN1Y2Nlc3NmdWwAHEVycm9yczpJAS0gYEZsYXNoTWludGVyTm90U2V0YCBpZiB0aGUgZmxhc2ggbWludGVyIGNvbnRyYWN0IGFkZHJlc3MgaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWQBAS0gYEFzc2V0Tm90QXBwcm92ZWRgIGlmIHRoZSBhc3NldCBpcyBub3QgYSByZWdpc3RlcmVkIGNvbGxhdGVyYWwlAS0gYE5vQXJiaXRyYWdlT3Bwb3J0dW5pdHlgIGlmIHRoZXJlJ3Mgbm8gcHJvZml0YWJsZSBhcmJpdHJhZ2Ugb3Bwb3J0dW5pdHktAS0gYE1heEJ1eVByaWNlRXhjZWVkZWRgIGlmIHRoZSBhcmJpdHJhZ2Ugd291bGQgZXhjZWVkIHRoZSBtYXhpbXVtIGJ1eSBwcmljZRkBLSBgTWF4QnV5QmFja0V4Y2VlZGVkYCBpZiB0aGUgYXJiaXRyYWdlIHdvdWxkIGV4Y2VlZCB0aGUgYnV5YmFjayBsaW1pdGEBLSBgSW52YWxpZEVWTUludGVyYWN0aW9uYCBpZiB0aGVyZSdzIGFuIGVycm9yIGludGVyYWN0aW5nIHdpdGggdGhlIEhvbGxhciBFUkMyMCBjb250cmFjdJAtIE90aGVyIGVycm9ycyBmcm9tIHVuZGVybHlpbmcgY2FsbHNAc2V0X2ZsYXNoX21pbnRlcgQBRGZsYXNoX21pbnRlcl9hZGRyWAEoRXZtQWRkcmVzcwAGPJRTZXQgdGhlIGZsYXNoIG1pbnRlciBjb250cmFjdCBhZGRyZXNzAFUBQ29uZmlndXJlcyB0aGUgRVZNIGFkZHJlc3Mgb2YgdGhlIGZsYXNoIGxvYW4gY29udHJhY3QgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFyYml0cmFnZVkBb3BlcmF0aW9ucy4gVGhpcyBjb250cmFjdCBtdXN0IHN1cHBvcnQgdGhlIEVSQy0zMTU2IGZsYXNoIGxvYW4gc3RhbmRhcmQgYW5kIGJlIHRydXN0ZWScdG8gaGFuZGxlIGZsYXNoIGxvYW5zIG9mIEhvbGxhciB0b2tlbnMuACxQYXJhbWV0ZXJzOsAtIGBvcmlnaW5gOiBNdXN0IGJlIGF1dGhvcml6ZWQgKGdvdmVybmFuY2Uvcm9vdCkNAS0gYGZsYXNoX21pbnRlcl9hZGRyYDogVGhlIEVWTSBhZGRyZXNzIG9mIHRoZSBmbGFzaCBtaW50ZXIgY29udHJhY3QAGEVtaXRzOvgtIGBGbGFzaE1pbnRlclNldGAgd2hlbiB0aGUgYWRkcmVzcyBpcyBzdWNjZXNzZnVsbHkgY29uZmlndXJlZAAcRXJyb3JzOsgtIEF1dGhvcml6YXRpb24gZXJyb3JzIGlmIG9yaWdpbiBpcyBub3QgYXV0aG9yaXplZAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5hAwQYT3B0aW9uBARUAXUCAQgQTm9uZQAAABBTb21lBAB1AgAAAQAAZQMEGE9wdGlvbgQEVAFUAQgQTm9uZQAAABBTb21lBABUAAABAABpAwQYT3B0aW9uBARUASkDAQgQTm9uZQAAABBTb21lBAApAwAAAQAAbQMEGE9wdGlvbgQEVAH1AQEIEE5vbmUAAAAQU29tZQQA9QEAAAEAAHEDBBhPcHRpb24EBFQBdQMBCBBOb25lAAAAEFNvbWUEAHUDAAABAAB1AwwocGFsbGV0X2hzbRR0eXBlcyRBcmJpdHJhZ2UAAQgkSG9sbGFyT3V0BABAARxCYWxhbmNlAAAAIEhvbGxhckluBABAARxCYWxhbmNlAAEAAHkDDDRwYWxsZXRfc2lnbmV0GHBhbGxldBBDYWxsBARUAAEkKHNldF9jb25maWcQAURzaWduYXR1cmVfZGVwb3NpdEABMEJhbGFuY2VPZjxUPgABTG1heF9jaGFpbl9pZF9sZW5ndGgoAQx1MzIAAUxtYXhfZXZtX2RhdGFfbGVuZ3RoKAEMdTMyAAEgY2hhaW5faWSxAQG0Qm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0NIQUlOX0lEX0xFTkdUSD4+AAAonFNldCBvciB1cGRhdGUgdGhlIHNpZ25ldCBjb25maWd1cmF0aW9uLgDkQ2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB0byB1cGRhdGUgdGhlIGNvbmZpZ3VyYXRpb24uACxQYXJhbWV0ZXJzOqAtIGBvcmlnaW5gOiBNdXN0IHNhdGlzZnkgYFVwZGF0ZU9yaWdpbmAu9C0gYHNpZ25hdHVyZV9kZXBvc2l0YDogRGVwb3NpdCBhbW91bnQgZm9yIHNpZ25hdHVyZSByZXF1ZXN0cy7ELSBgbWF4X2NoYWluX2lkX2xlbmd0aGA6IE1heGltdW0gY2hhaW4gSUQgbGVuZ3RoLvQtIGBtYXhfZXZtX2RhdGFfbGVuZ3RoYDogTWF4aW11bSBFVk0gdHJhbnNhY3Rpb24gZGF0YSBsZW5ndGguqC0gYGNoYWluX2lkYDogVGhlIENBSVAtMiBjaGFpbiBpZGVudGlmaWVyLjh3aXRoZHJhd19mdW5kcwgBJHJlY2lwaWVudAABMFQ6OkFjY291bnRJZAABGGFtb3VudEABMEJhbGFuY2VPZjxUPgABGJxXaXRoZHJhdyBmdW5kcyBmcm9tIHRoZSBwYWxsZXQgYWNjb3VudC4ALFBhcmFtZXRlcnM6oC0gYG9yaWdpbmA6IE11c3Qgc2F0aXNmeSBgVXBkYXRlT3JpZ2luYC7YLSBgcmVjaXBpZW50YDogQWNjb3VudCB0byByZWNlaXZlIHRoZSB3aXRoZHJhd24gZnVuZHMufC0gYGFtb3VudGA6IEFtb3VudCB0byB3aXRoZHJhdy4Qc2lnbhgBHHBheWxvYWQEASBbdTg7IDMyXQABLGtleV92ZXJzaW9uKAEMdTMyAAEQcGF0aH0DAaRCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjxNQVhfUEFUSF9MRU5HVEg+PgABEGFsZ2+BAwGkQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0FMR09fTEVOR1RIPj4AARBkZXN0hQMBpEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9ERVNUX0xFTkdUSD4+AAEYcGFyYW1ziQMBrEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9QQVJBTVNfTEVOR1RIPj4AAgSEUmVxdWVzdCBhIHNpZ25hdHVyZSBmb3IgYSBwYXlsb2FkSHNpZ25fYmlkaXJlY3Rpb25hbCQBWHNlcmlhbGl6ZWRfdHJhbnNhY3Rpb26NAwHAQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX1RSQU5TQUNUSU9OX0xFTkdUSD4+AAEgY2FpcDJfaWSFAwFwQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8NjQ+PgABLGtleV92ZXJzaW9uKAEMdTMyAAEQcGF0aH0DAaRCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjxNQVhfUEFUSF9MRU5HVEg+PgABEGFsZ2+BAwGkQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0FMR09fTEVOR1RIPj4AARBkZXN0hQMBpEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9ERVNUX0xFTkdUSD4+AAEYcGFyYW1ziQMBrEJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9QQVJBTVNfTEVOR1RIPj4AAXRvdXRwdXRfZGVzZXJpYWxpemF0aW9uX3NjaGVtYZEDAaxCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjxNQVhfU0NIRU1BX0xFTkdUSD4+AAFwcmVzcG9uZF9zZXJpYWxpemF0aW9uX3NjaGVtYZEDAaxCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjxNQVhfU0NIRU1BX0xFTkdUSD4+AAMEwFJlcXVlc3QgYSBzaWduYXR1cmUgZm9yIGEgc2VyaWFsaXplZCB0cmFuc2FjdGlvbhxyZXNwb25kCAEscmVxdWVzdF9pZHOVAwG4Qm91bmRlZFZlYzxbdTg7IDMyXSwgQ29uc3RVMzI8TUFYX0JBVENIX1NJWkU+PgABKHNpZ25hdHVyZXOdAwG8Qm91bmRlZFZlYzxTaWduYXR1cmUsIENvbnN0VTMyPE1BWF9CQVRDSF9TSVpFPj4ABAS0UmVzcG9uZCB0byBzaWduYXR1cmUgcmVxdWVzdHMgKGJhdGNoIHN1cHBvcnQpNHJlc3BvbmRfZXJyb3IEARhlcnJvcnOtAwHMQm91bmRlZFZlYzxFcnJvclJlc3BvbnNlLCBDb25zdFUzMjxNQVhfQkFUQ0hfU0laRT4+AAUEyFJlcG9ydCBzaWduYXR1cmUgZ2VuZXJhdGlvbiBlcnJvcnMgKGJhdGNoIHN1cHBvcnQpVHJlc3BvbmRfYmlkaXJlY3Rpb25hbAwBKHJlcXVlc3RfaWQEASBbdTg7IDMyXQABRHNlcmlhbGl6ZWRfb3V0cHV0jQMB2EJvdW5kZWRWZWM8dTgsIENvbnN0VTMyPE1BWF9TRVJJQUxJWkVEX09VVFBVVF9MRU5HVEg+PgABJHNpZ25hdHVyZaEDASRTaWduYXR1cmUABgSYUHJvdmlkZSBhIHJlYWQgcmVzcG9uc2Ugd2l0aCBzaWduYXR1cmUUcGF1c2UABxD0UGF1c2UgdGhlIHNpZ25ldCBzbyB0aGF0IG5vIG5ldyBzaWduaW5nIHJlcXVlc3RzIGNhbiBiZSBtYWRlLgAsUGFyYW1ldGVyczqgLSBgb3JpZ2luYDogTXVzdCBzYXRpc2Z5IGBVcGRhdGVPcmlnaW5gLhx1bnBhdXNlAAgQ+FVucGF1c2UgdGhlIHNpZ25ldCBzbyB0aGF0IHNpZ25pbmcgcmVxdWVzdHMgYXJlIGFsbG93ZWQgYWdhaW4uACxQYXJhbWV0ZXJzOqAtIGBvcmlnaW5gOiBNdXN0IHNhdGlzZnkgYFVwZGF0ZU9yaWdpbmAuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLn0DDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAgQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AACFAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAIkDDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAjQMMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AACRAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAJUDDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBBARTAAAEAJkDARhWZWM8VD4AAJkDAAACBACdAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAaEDBFMAAAQAqQMBGFZlYzxUPgAAoQMMNHBhbGxldF9zaWduZXQYcGFsbGV0JFNpZ25hdHVyZQAADAEUYmlnX3KlAwEsQWZmaW5lUG9pbnQAAQRzBAEgW3U4OyAzMl0AASxyZWNvdmVyeV9pZAgBCHU4AAClAww0cGFsbGV0X3NpZ25ldBhwYWxsZXQsQWZmaW5lUG9pbnQAAAgBBHgEASBbdTg7IDMyXQABBHkEASBbdTg7IDMyXQAAqQMAAAKhAwCtAwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAbEDBFMAAAQAtQMBGFZlYzxUPgAAsQMMNHBhbGxldF9zaWduZXQYcGFsbGV0NEVycm9yUmVzcG9uc2UAAAgBKHJlcXVlc3RfaWQEASBbdTg7IDMyXQABNGVycm9yX21lc3NhZ2WJAwHIQm91bmRlZFZlYzx1OCwgQ29uc3RVMzI8TUFYX0VSUk9SX01FU1NBR0VfTEVOR1RIPj4AALUDAAACsQMAuQMMQHBhbGxldF9kaXNwZW5zZXIYcGFsbGV0EENhbGwEBFQAARAwcmVxdWVzdF9mdW5kEAEIdG9YAShFdm1BZGRyZXNzAAEYYW1vdW50QAEcQmFsYW5jZQABKHJlcXVlc3RfaWQEARxCeXRlczMyAAEIdHi9AwFQRXZtVHJhbnNhY3Rpb25QYXJhbXMAABz0UmVxdWVzdCBFVEggZnJvbSB0aGUgZXh0ZXJuYWwgZmF1Y2V0IGZvciBhIGdpdmVuIEVWTSBhZGRyZXNzLgAsUGFyYW1ldGVyczqoLSBgdG9gOiBUYXJnZXQgRVZNIGFkZHJlc3MgdG8gcmVjZWl2ZSBFVEguuC0gYGFtb3VudGA6IEFtb3VudCBvZiBFVEggKGluIHdlaSkgdG8gcmVxdWVzdC4JAS0gYHJlcXVlc3RfaWRgOiBDbGllbnQtc3VwcGxpZWQgcmVxdWVzdCBJRDsgbXVzdCBtYXRjaCBkZXJpdmVkIElELg0BLSBgdHhgOiBQYXJhbWV0ZXJzIGZvciB0aGUgRVZNIHRyYW5zYWN0aW9uIHN1Ym1pdHRlZCB0byB0aGUgZmF1Y2V0LihzZXRfY29uZmlnGAE4ZmF1Y2V0X2FkZHJlc3NYAShFdm1BZGRyZXNzAAFQbWluX2ZhdWNldF90aHJlc2hvbGRAARxCYWxhbmNlAAEsbWluX3JlcXVlc3RAARxCYWxhbmNlAAEwbWF4X2Rpc3BlbnNlQAEcQmFsYW5jZQABNGRpc3BlbnNlcl9mZWVAARxCYWxhbmNlAAFIZmF1Y2V0X2JhbGFuY2Vfd2VpQAEcQmFsYW5jZQABNKhTZXQgb3IgdXBkYXRlIHRoZSBkaXNwZW5zZXIgY29uZmlndXJhdGlvbi4A/E9uIGZpcnN0IGNhbGwsIHRoZSBwYWxsZXQgc3RhcnRzIHVucGF1c2VkLiBPbiBzdWJzZXF1ZW50IGNhbGxzLHBgcGF1c2VkYCBzdGF0ZSBpcyBwcmVzZXJ2ZWQuACxQYXJhbWV0ZXJzOqAtIGBvcmlnaW5gOiBNdXN0IHNhdGlzZnkgYFVwZGF0ZU9yaWdpbmAuEQEtIGBmYXVjZXRfYWRkcmVzc2A6IEVWTSBhZGRyZXNzIG9mIHRoZSBleHRlcm5hbCBnYXMgZmF1Y2V0IGNvbnRyYWN0LhkBLSBgbWluX2ZhdWNldF90aHJlc2hvbGRgOiBNaW5pbXVtIHJlbWFpbmluZyBFVEggKHdlaSkgYWZ0ZXIgYSByZXF1ZXN0LqAtIGBtaW5fcmVxdWVzdGA6IE1pbmltdW0gcmVxdWVzdCBhbW91bnQupC0gYG1heF9kaXNwZW5zZWA6IE1heGltdW0gcmVxdWVzdCBhbW91bnQu2C0gYGRpc3BlbnNlcl9mZWVgOiBGbGF0IGZlZSBpbiBgRmVlQXNzZXRgIHBlciByZXF1ZXN0LvAtIGBmYXVjZXRfYmFsYW5jZV93ZWlgOiBUcmFja2VkIGZhdWNldCBFVEggYmFsYW5jZSAoaW4gd2VpKS4UcGF1c2UAAhABAVBhdXNlIHRoZSBkaXNwZW5zZXIgc28gdGhhdCBubyBuZXcgZnVuZGluZyByZXF1ZXN0cyBjYW4gYmUgbWFkZS4ALFBhcmFtZXRlcnM6oC0gYG9yaWdpbmA6IE11c3Qgc2F0aXNmeSBgVXBkYXRlT3JpZ2luYC4cdW5wYXVzZQADEAUBVW5wYXVzZSB0aGUgZGlzcGVuc2VyIHNvIHRoYXQgZnVuZGluZyByZXF1ZXN0cyBhcmUgYWxsb3dlZCBhZ2Fpbi4ALFBhcmFtZXRlcnM6nC0gYG9yaWdpbmA6IE11c3Qgc2F0aXNmeSBgVXBkYXRlT3JpZ2luYARcRGlzcGF0Y2hhYmxlIGZ1bmN0aW9ucy69AwhAcGFsbGV0X2Rpc3BlbnNlclBFdm1UcmFuc2FjdGlvblBhcmFtcwAAGAEUdmFsdWVAARB1MTI4AAEkZ2FzX2xpbWl0GAEMdTY0AAE8bWF4X2ZlZV9wZXJfZ2FzQAEQdTEyOAABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc0ABEHUxMjgAARRub25jZRgBDHU2NAABIGNoYWluX2lkGAEMdTY0AADBAww4cGFsbGV0X2dpZ2FoZHgYcGFsbGV0EENhbGwEBFQAARwoZ2lnYV9zdGFrZQQBGGFtb3VudEABHEJhbGFuY2UAAFxBAUxvY2sgSERYIGluIHRoZSBjYWxsZXIncyBhY2NvdW50LCBtaW50IHN0SERYLCBhbmQgc3VwcGx5IGl0IHRvIHRoZSBtb25leSBtYXJrZXQuADEBVGhlIHBhbGxldCBsb2NrcyBgYW1vdW50YCBIRFggaW4gdGhlIGNhbGxlcidzIGFjY291bnQgdW5kZXIgYENvbmZpZzo6TG9ja0lkYDUBKHNvIGl0IHJlbWFpbnMgdm90ZWFibGUgdmlhIGBMb2NrYWJsZUN1cnJlbmN5YCBzZW1hbnRpY3MpLCBtaW50cyBzdEhEWCBhdCB0aGUxAWN1cnJlbnQgZXhjaGFuZ2UgcmF0ZSwgYW5kIHN1cHBsaWVzIHRoZSBzdEhEWCB0byB0aGUgbW9uZXkgbWFya2V0LiBUaGUgbW9uZXkFAW1hcmtldCBtaW50cyBHSUdBSERYIChhVG9rZW4pIHRvIHRoZSBjYWxsZXIncyBFVk0tbWFwcGVkIGFkZHJlc3MuADUBYFN0YWtlc1tjYWxsZXJdLmdpZ2FoZHhgIHJlY29yZHMgdGhlICoqYWN0dWFsKiogYVRva2VuIGFtb3VudCByZXR1cm5lZCBieSB0aGUVAW1vbmV5IG1hcmtldCAobWF5IGRpZmZlciBmcm9tIHRoZSByZXF1ZXN0ZWQgbWludCBhbW91bnQgYnkgcm91bmRpbmcpLgD8RmFpbHMgd2l0aCBgQmVsb3dNaW5TdGFrZWAgaWYgYGFtb3VudCA8IENvbmZpZzo6TWluU3Rha2VgLCB3aXRoDQFgQmxvY2tlZEJ5RXh0ZXJuYWxMb2NrYCBpZiBgQ29uZmlnOjpFeHRlcm5hbENsYWltczo6b24oY2FsbGVyKSA+IDBg+Ch0aGUgY2FsbGVyIGhvbGRzIGEgbm9uLWFsbG93ZWQgbG9jayDigJQgc3RyaWN0IHBvbGljeSByZWplY3Rz8HN0YWtlIGFkbWlzc2lvbiBlbnRpcmVseSksIHdpdGggYEluc3VmZmljaWVudEZyZWVCYWxhbmNlYCBpZuBgZnJlZV9iYWxhbmNlIOKIkiBvd25fZ2lnYWhkeF9jb21taXRtZW50IDwgYW1vdW50YCwgd2l0aMRgU3RIZHhNaW50RmFpbGVkYCBpZiBzdEhEWCBtaW50aW5nIGZhaWxzLCBvciB3aXRoBQFgTW9uZXlNYXJrZXRTdXBwbHlGYWlsZWRgIGlmIHRoZSBBQVZFIGBQb29sLnN1cHBseWAgY2FsbCByZXZlcnRzLgAsUGFyYW1ldGVyczoVAS0gYGFtb3VudGA6IEhEWCBhbW91bnQgdG8gc3Rha2UuIE11c3QgYmUgYXQgbGVhc3QgYENvbmZpZzo6TWluU3Rha2VgLgCURW1pdHMgYFN0YWtlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAwZ2lnYV91bnN0YWtlBAE4Z2lnYWhkeF9hbW91bnRAARxCYWxhbmNlAAF8BQFVbnN0YWtlIHRoZSBjYWxsZXIncyBHSUdBSERYIGFuZCBvcGVuIGEgcGVuZGluZy11bnN0YWtlIHBvc2l0aW9uLgA5AUJ1cm5zIGBnaWdhaGR4X2Ftb3VudGAgb2YgdGhlIGNhbGxlcidzIEdJR0FIRFggdGhyb3VnaCB0aGUgbW9uZXkgbWFya2V0LCB3aGljaDEBcmV0dXJucyBzdEhEWCB0byB0aGUgY2FsbGVyOyB0aGUgcGFsbGV0IHRoZW4gYnVybnMgdGhhdCBzdEhEWC4gVGhlIEhEWCB2YWx1ZSUBKGN1cnJlbnQgcmF0ZSDDlyBgZ2lnYWhkeF9hbW91bnRgKSBpcyBtb3ZlZCBpbnRvIGEgc2luZ2xlIHBlbmRpbmctdW5zdGFrZT0BcG9zaXRpb24gd2l0aCBhIGNvb2xkb3duIG9mIGBDb25maWc6OkNvb2xkb3duUGVyaW9kYC4gQW55IHBvcnRpb24gb2YgdGhlIHBheW91dCEBdGhhdCBleGNlZWRzIHRoZSB1c2VyJ3MgYWN0aXZlIHN0YWtlIHByaW5jaXBhbCBpcyBwYWlkIGFzIHlpZWxkIGZyb20gdGhlQGdpZ2Fwb3QgYWNjb3VudC4ARQFBdCBtb3N0IG9uZSBwZW5kaW5nIHBvc2l0aW9uIHBlciBhY2NvdW50IOKAlCB0aGUgY2FsbGVyIG11c3QgYHVubG9ja2AgYW4gZXhpc3RpbmclAXBvc2l0aW9uIGJlZm9yZSBjYWxsaW5nIGFnYWluLCBvdGhlcndpc2UgYFBlbmRpbmdVbnN0YWtlQWxyZWFkeUV4aXN0c2AgaXMkcmV0dXJuZWQuACUBSW1wbGVtZW50YXRpb24gZGV0YWlsIChtdXN0IG1hdGNoIGBMb2NrYWJsZUFUb2tlbi5zb2xgKTogdGhlIGxvY2stbWFuYWdlcjUBcHJlY29tcGlsZSAoYDB4MDgwNmApIHJlYWRzIGBTdGFrZXNbd2hvXS5naWdhaGR4YCBhbmQgdHJlYXRzIGl0IGFzIHRoZSB1c2VyJ3PcbG9ja2VkIEdJR0FIRFguIFRoZSBhVG9rZW4gY29udHJhY3QgcmVqZWN0cyBidXJucyB3aGVyZSEBYGFtb3VudCA+IGJhbGFuY2UgLSBsb2NrZWRgLCBzbyB0aGUgcGFsbGV0ICoqcHJlLWRlY3JlbWVudHMgYGdpZ2FoZHhgIGJ5LQFgZ2lnYWhkeF9hbW91bnRgIGJlZm9yZSB0aGUgbW9uZXktbWFya2V0IGNhbGwqKi4gVGhlIGRpc3BhdGNoYWJsZSBydW5zIGluIGEVAXN0b3JhZ2UgbGF5ZXIgc28gYW55IGZhaWx1cmUgcm9sbHMgYmFjayB0aGUgcHJlLWRlY3JlbWVudCBhdG9taWNhbGx5LgAdAUZhaWxzIHdpdGggYE5vU3Rha2VgIGlmIHRoZSBjYWxsZXIgaGFzIG5vIGFjdGl2ZSBzdGFrZSwgYFplcm9BbW91bnRgIGlmKQFgZ2lnYWhkeF9hbW91bnQgPT0gMGAsIGBJbnN1ZmZpY2llbnRTdGFrZWAgaWYgYGdpZ2FoZHhfYW1vdW50YCBleGNlZWRzIHRoZRUBY2FsbGVyJ3MgYFN0YWtlcy5naWdhaGR4YCwgb3IgYE1vbmV5TWFya2V0V2l0aGRyYXdGYWlsZWRgIGlmIHRoZSBBQVZFdGBQb29sLndpdGhkcmF3YCBjYWxsIHJldmVydHMuACxQYXJhbWV0ZXJzOjEBLSBgZ2lnYWhkeF9hbW91bnRgOiBHSUdBSERYIChhVG9rZW4pIGFtb3VudCB0byB1bnN0YWtlLiBNdXN0IGJlIGdyZWF0ZXIgdGhhbtAgIHplcm8gYW5kIG5vdCBleGNlZWQgdGhlIGNhbGxlcidzIGBTdGFrZXMuZ2lnYWhkeGAuAJxFbWl0cyBgVW5zdGFrZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4ARHNldF9wb29sX2NvbnRyYWN0BAEgY29udHJhY3RYAShFdm1BZGRyZXNzAAJQHQFTZXQgdGhlIEFBVkUgVjMgUG9vbCBjb250cmFjdCBhZGRyZXNzIHVzZWQgYnkgdGhlIG1vbmV5LW1hcmtldCBhZGFwdGVyLgANAVJlZnVzZXMgdG8gc3dhcCB0aGUgcG9vbCB3aGlsZSBnaWdhaGR4IChhVG9rZW4gLyBzdEhEWCkgaXMgc3RpbGwgaW4dAWNpcmN1bGF0aW9uIOKAlCBhIHN3YXAgbWlkLWZsaWdodCB3b3VsZCByb3V0ZSBzdWJzZXF1ZW50IGBnaWdhX3Vuc3Rha2VgDQFjYWxscyB0byBhIHBvb2wgdGhhdCBkb2Vzbid0IGhvbGQgdGhlIHVzZXIncyBhdG9rZW5zLCByZXZlcnRpbmcgdGhlDQFidXJuIGFuZCBsZWF2aW5nIEhEWCBwZXJtYW5lbnRseSBsb2NrZWQuIFJldHVybnMgYE91dHN0YW5kaW5nU3Rha2VgkHdoZW4gdG90YWwgc3RIRFggc3VwcGx5IGlzIG5vbi16ZXJvLgD4Tm90ZTogaXQgaXMgbm90IGVub3VnaCB0byBjaGVjayBgVG90YWxMb2NrZWQgPT0gMGAgKHRoZSBzdW0gb2b8YFN0YWtlcy5oZHhgKS4gV2hlbiBhbiB1bnN0YWtlIHBheW91dCBleGNlZWRzIHRoZSB1c2VyJ3MgYWN0aXZlAQFzdGFrZSwgdGhlIGFjdGl2ZSBzdGFrZSBpcyBkcmFpbmVkIGJ1dCBgU3Rha2VzLmdpZ2FoZHhgIChhbmQgdGhlAQFjb3JyZXNwb25kaW5nIGFUb2tlbiBiYWxhbmNlKSBjYW4gc3RheSBub24temVybyDigJQgdGhvc2UgdG9rZW5zhHJlbWFpbiBib3VuZCB0byB0aGUgY3VycmVudCBwb29sLgAsUGFyYW1ldGVyczqkLSBgb3JpZ2luYDogTXVzdCBiZSBgVDo6QXV0aG9yaXR5T3JpZ2luYC7wLSBgY29udHJhY3RgOiBIMTYwIGFkZHJlc3Mgb2YgdGhlIG5ldyBBQVZFIFYzIFBvb2wgY29udHJhY3QuAMhFbWl0cyBgUG9vbENvbnRyYWN0VXBkYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAYdW5sb2NrBAEscG9zaXRpb25faWQoAURCbG9ja051bWJlckZvcjxUPgADLBUBUmVsZWFzZSBhIHNpbmdsZSBwZW5kaW5nLXVuc3Rha2UgcG9zaXRpb24gd2hvc2UgY29vbGRvd24gaGFzIGVsYXBzZWQuABUBRmFpbHMgd2l0aCBgUGVuZGluZ1Vuc3Rha2VOb3RGb3VuZGAgaWYgbm8gcG9zaXRpb24gd2l0aCBgcG9zaXRpb25faWRgKQFleGlzdHMsIG9yIGBDb29sZG93bk5vdEVsYXBzZWRgIGlmIHRoZSB0YXJnZXRlZCBwb3NpdGlvbiBpcyBzdGlsbCBjb29saW5nLgAsUGFyYW1ldGVyczoJAS0gYHBvc2l0aW9uX2lkYDogaWQgb2YgdGhlIHBvc2l0aW9uIHRvIHJlbGVhc2UgKGFzIHJlY29yZGVkIGluIHRoZcAgIGBVbnN0YWtlZGAgZXZlbnQgZm9yIHRoZSBvcmlnaW5hdGluZyB1bnN0YWtlKS4AnEVtaXRzIGBVbmxvY2tlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgA4Y2FuY2VsX3Vuc3Rha2UEASxwb3NpdGlvbl9pZCgBREJsb2NrTnVtYmVyRm9yPFQ+AARICQFDYW5jZWwgYSBzaW5nbGUgcGVuZGluZy11bnN0YWtlIHBvc2l0aW9uLCBmb2xkaW5nIGl0cyBgYW1vdW50YCBIRFjgYmFjayBpbnRvIHRoZSBhY3RpdmUgc3Rha2UgYXQgdGhlIGN1cnJlbnQgZXhjaGFuZ2UgcmF0ZS4A/FRoZSBwZW5kaW5nIEhEWCBpcyBhbHJlYWR5IGxvY2tlZCBpbiB0aGUgY2FsbGVyJ3MgYWNjb3VudDsgdGhpcwEBZXh0cmluc2ljIHJlbGFiZWxzIGl0IGFzIGFjdGl2ZSBzdGFrZSBhbmQgbWludHMgZnJlc2ggYVRva2VucyBhdPh0b2RheSdzIHJhdGUuIFRoZSBudW1iZXIgb2YgYVRva2VucyBtaW50ZWQgbWF5IGRpZmZlciBmcm9tIHRoZeRhbW91bnQgYnVybmVkIGF0IHVuc3Rha2UgdGltZSBpZiB0aGUgZXhjaGFuZ2UgcmF0ZSBtb3ZlZC4A/ENvb2xkb3duIGlzIG5vdCBhIGdhdGUg4oCUIGNhbmNlbGxhdGlvbiBpcyB2YWxpZCB0aHJvdWdob3V0IHRoZchwZW5kaW5nIHdpbmRvdywgdW50aWwgdGhlIGNhbGxlciBpbnZva2VzIGB1bmxvY2tgLgARAUZhaWxzIHdpdGggYFBlbmRpbmdVbnN0YWtlTm90Rm91bmRgIGlmIGBwb3NpdGlvbl9pZGAgaXMgbm90IHByZXNlbnQuACxQYXJhbWV0ZXJzOrgtIGBwb3NpdGlvbl9pZGA6IGlkIG9mIHRoZSBwb3NpdGlvbiB0byBjYW5jZWwuALxFbWl0cyBgVW5zdGFrZUNhbmNlbGxlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAcbWlncmF0ZQAFTPhNaWdyYXRlIHRoZSBjYWxsZXIncyBsZWdhY3kgTkZUIHN0YWtpbmcgcG9zaXRpb24gaW50byBnaWdhaGR4LgD0QXRvbWljYWxseTogZGVzdHJveXMgdGhlIGxlZ2FjeSBwb3NpdGlvbiB2aWEgYExlZ2FjeVN0YWtpbmc6Og0BZm9yY2VfdW5zdGFrZWAgKHBheWluZyBvdXQgMTAwJSBvZiByZXdhcmRzIOKAlCBubyBzaWdtb2lkIHNsYXNoLCBub/x1bmNsYWltYWJsZS1wZXJpb2QgcGVuYWx0eSksIHRoZW4gcmUtc3Rha2VzIHRoZSBmcmVlZCBIRFggdW5kZXIJAXRoZSBzYW1lIGFkbWlzc2lvbiBnYXRlIGFzIGBnaWdhX3N0YWtlYC4gUmVmdXNlcyBwYXJ0aWFsIG1pZ3JhdGlvbuDigJQgdGhlIGxlZ2FjeSBwb3NpdGlvbiBpcyBjb25zdW1lZCB3aG9sZSBvciBub3QgYXQgYWxsLgD8QWRtaXNzaW9uIHJ1bnMgKmFmdGVyKiBgZm9yY2VfdW5zdGFrZWAgc28gdGhlIGxlZ2FjeSBsb2NrIGlzIG5voGxvbmdlciBjb3VudGVkIGFnYWluc3QgYEV4dGVybmFsQ2xhaW1zYC4A+EZhaWxzIHdpdGggYEJlbG93TWluU3Rha2VgIGlmIHRoZSBsZWdhY3kgcG9zaXRpb24gdW5sb2NrcyBsZXNz8HRoYW4gYENvbmZpZzo6TWluU3Rha2VgLCB3aXRoIGBCbG9ja2VkQnlFeHRlcm5hbExvY2tgIGlmIHRoZfxjYWxsZXIgc3RpbGwgY2FycmllcyBhbm90aGVyIG5vbi1vdmVybGFwLXdoaXRlbGlzdGVkIGxvY2ssIHdpdGgFAWBJbnN1ZmZpY2llbnRGcmVlQmFsYW5jZWAgaWYgdGhlIHBvc3QtdW5zdGFrZSBiYWxhbmNlIGNhbid0IGNvdmVy9HRoZSBuZXcgZ2lnYWhkeCBjbGFpbSwgb3Igd2l0aCB3aGF0ZXZlciBlcnJvciBgZm9yY2VfdW5zdGFrZWDocmFpc2VzIChlLmcuIG9uZ29pbmcgcmVmZXJlbmR1bSB2b3RlLCBubyBsZWdhY3kgcG9zaXRpb24pLgDERW1pdHMgYE1pZ3JhdGVkRnJvbUxlZ2FjeWAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjRyZWFsaXplX3lpZWxkAAYoFQFSZWFsaXplIHRoZSBjYWxsZXIncyBhY2NydWVkIHlpZWxkIGludG8gdGhlaXIgbG9ja2VkIHN0YWtlIHByaW5jaXBhbC4AFQFNb3ZlcyB0aGUgSERYIHZhbHVlIHRoZSBjYWxsZXIncyBHSUdBSERYIGhhcyBnYWluZWQgc2luY2UgaXQgd2FzIGxhc3QhAXJlY29uY2lsZWQgKGByYXRlIMOXIGdpZ2FoZHgg4oiSIFN0YWtlc1t3aG9dLmhkeGApIGZyb20gdGhlIGdpZ2Fwb3QgaW50bxEBdGhlIGNhbGxlcidzIGFjY291bnQsIGZvbGRzIGl0IGludG8gYFN0YWtlc1t3aG9dLmhkeGAsIGFuZCByZWZyZXNoZXMBAXRoZSBsb2NrLiBHSUdBSERYIGJhbGFuY2UgYW5kIHRoZSBleGNoYW5nZSByYXRlIGFyZSB1bmNoYW5nZWQuIEEFAWNhbGxlciB3aXRoIG5vIGFjY3J1ZWQgeWllbGQgKG9yIG5vIHN0YWtlKSBpcyBhIHN1Y2Nlc3NmdWwgbm8tb3AuAPBFbWl0cyBgWWllbGRSZWFsaXplZGAgZXZlbnQgd2hlbiB0aGVyZSB3YXMgeWllbGQgdG8gcmVhbGl6ZS4ABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLsUDDFhwYWxsZXRfZ2lnYWhkeF9yZXdhcmRzGHBhbGxldBBDYWxsBARUAAEENGNsYWltX3Jld2FyZHMAADARAUNvbnZlcnQgdGhlIGNhbGxlcidzIGFjY3VtdWxhdGVkIEhEWCByZXdhcmRzIGludG8gR0lHQUhEWCBieSBzdGFraW5ncHRoZW0gb24gdGhlIGNhbGxlcidzIGJlaGFsZi4ACQFUaGUgZnVsbCBgUGVuZGluZ1Jld2FyZHNbd2hvXWAgc3VtIGlzIHRha2VuIGF0b21pY2FsbHkuIFRoZSBIRFggaXP8dHJhbnNmZXJyZWQgZnJvbSB0aGUgYWxsb2NhdGVkLXJld2FyZHMgcG90IHRvIHRoZSBjYWxsZXIncyBmcmVlCQFiYWxhbmNlLCB0aGVuIGBwYWxsZXRfZ2lnYWhkeDo6ZG9fc3Rha2VgIGlzIGNhbGxlZCB0byBtaW50IEdJR0FIRFiEaW50byB0aGUgY2FsbGVyJ3Mgc3Rha2UgcG9zaXRpb24uACxQYXJhbWV0ZXJzOqAtIGBvcmlnaW5gOiBzaWduZWQgYnkgdGhlIHVzZXIgY2xhaW1pbmcuALRFbWl0cyBgUmV3YXJkc0NsYWltZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuyQMMLG9ybWxfdG9rZW5zGG1vZHVsZRBDYWxsBARUAAEUIHRyYW5zZmVyDAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50PAEoVDo6QmFsYW5jZQAANNRUcmFuc2ZlciBzb21lIGxpcXVpZCBmcmVlIGJhbGFuY2UgdG8gYW5vdGhlciBhY2NvdW50LgAFAWB0cmFuc2ZlcmAgd2lsbCBzZXQgdGhlIGBGcmVlQmFsYW5jZWAgb2YgdGhlIHNlbmRlciBhbmQgcmVjZWl2ZXIu4El0IHdpbGwgZGVjcmVhc2UgdGhlIHRvdGFsIGlzc3VhbmNlIG9mIHRoZSBzeXN0ZW0gYnkgdGhl/GBUcmFuc2ZlckZlZWAuIElmIHRoZSBzZW5kZXIncyBhY2NvdW50IGlzIGJlbG93IHRoZSBleGlzdGVudGlhbAEBZGVwb3NpdCBhcyBhIHJlc3VsdCBvZiB0aGUgdHJhbnNmZXIsIHRoZSBhY2NvdW50IHdpbGwgYmUgcmVhcGVkLgDkVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlLHRyYW5zYWN0b3IuAKAtIGBkZXN0YDogVGhlIHJlY2lwaWVudCBvZiB0aGUgdHJhbnNmZXIufC0gYGN1cnJlbmN5X2lkYDogY3VycmVuY3kgdHlwZS6wLSBgYW1vdW50YDogZnJlZSBiYWxhbmNlIGFtb3VudCB0byB0cmFuc2Zlci4wdHJhbnNmZXJfYWxsDAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEoa2VlcF9hbGl2ZUQBEGJvb2wAAUzQVHJhbnNmZXIgYWxsIHJlbWFpbmluZyBiYWxhbmNlIHRvIHRoZSBnaXZlbiBhY2NvdW50LgDwTk9URTogVGhpcyBmdW5jdGlvbiBvbmx5IGF0dGVtcHRzIHRvIHRyYW5zZmVyIF90cmFuc2ZlcmFibGVf+GJhbGFuY2VzLiBUaGlzIG1lYW5zIHRoYXQgYW55IGxvY2tlZCwgcmVzZXJ2ZWQsIG9yIGV4aXN0ZW50aWFsCQFkZXBvc2l0cyAod2hlbiBga2VlcF9hbGl2ZWAgaXMgYHRydWVgKSwgd2lsbCBub3QgYmUgdHJhbnNmZXJyZWQgYnn8dGhpcyBmdW5jdGlvbi4gVG8gZW5zdXJlIHRoYXQgdGhpcyBmdW5jdGlvbiByZXN1bHRzIGluIGEga2lsbGVk+GFjY291bnQsIHlvdSBtaWdodCBuZWVkIHRvIHByZXBhcmUgdGhlIGFjY291bnQgYnkgcmVtb3ZpbmcgYW55sHJlZmVyZW5jZSBjb3VudGVycywgc3RvcmFnZSBkZXBvc2l0cywgZXRjLi4uAORUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUsdHJhbnNhY3Rvci4AoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci58LSBgY3VycmVuY3lfaWRgOiBjdXJyZW5jeSB0eXBlLvAtIGBrZWVwX2FsaXZlYDogQSBib29sZWFuIHRvIGRldGVybWluZSBpZiB0aGUgYHRyYW5zZmVyX2FsbGAFASAgb3BlcmF0aW9uIHNob3VsZCBzZW5kIGFsbCBvZiB0aGUgZnVuZHMgdGhlIGFjY291bnQgaGFzLCBjYXVzaW5nBQEgIHRoZSBzZW5kZXIgYWNjb3VudCB0byBiZSBraWxsZWQgKGZhbHNlKSwgb3IgdHJhbnNmZXIgZXZlcnl0aGluZwkBICBleGNlcHQgYXQgbGVhc3QgdGhlIGV4aXN0ZW50aWFsIGRlcG9zaXQsIHdoaWNoIHdpbGwgZ3VhcmFudGVlIHRvnCAga2VlcCB0aGUgc2VuZGVyIGFjY291bnQgYWxpdmUgKHRydWUpLkx0cmFuc2Zlcl9rZWVwX2FsaXZlDAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50PAEoVDo6QmFsYW5jZQACLAUBU2FtZSBhcyB0aGUgW2B0cmFuc2ZlcmBdIGNhbGwsIGJ1dCB3aXRoIGEgY2hlY2sgdGhhdCB0aGUgdHJhbnNmZXKEd2lsbCBub3Qga2lsbCB0aGUgb3JpZ2luIGFjY291bnQuALg5OSUgb2YgdGhlIHRpbWUgeW91IHdhbnQgW2B0cmFuc2ZlcmBdIGluc3RlYWQuAORUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgU2lnbmVkYCBieSB0aGUsdHJhbnNhY3Rvci4AoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci58LSBgY3VycmVuY3lfaWRgOiBjdXJyZW5jeSB0eXBlLrAtIGBhbW91bnRgOiBmcmVlIGJhbGFuY2UgYW1vdW50IHRvIHRyYW5zZmVyLjhmb3JjZV90cmFuc2ZlchABGHNvdXJjZQABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50PAEoVDo6QmFsYW5jZQADJBEBRXhhY3RseSBhcyBgdHJhbnNmZXJgLCBleGNlcHQgdGhlIG9yaWdpbiBtdXN0IGJlIHJvb3QgYW5kIHRoZSBzb3VyY2VkYWNjb3VudCBtYXkgYmUgc3BlY2lmaWVkLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgCcLSBgc291cmNlYDogVGhlIHNlbmRlciBvZiB0aGUgdHJhbnNmZXIuoC0gYGRlc3RgOiBUaGUgcmVjaXBpZW50IG9mIHRoZSB0cmFuc2Zlci58LSBgY3VycmVuY3lfaWRgOiBjdXJyZW5jeSB0eXBlLrAtIGBhbW91bnRgOiBmcmVlIGJhbGFuY2UgYW1vdW50IHRvIHRyYW5zZmVyLixzZXRfYmFsYW5jZRABDHdobwABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEgbmV3X2ZyZWU8AShUOjpCYWxhbmNlAAEwbmV3X3Jlc2VydmVkPAEoVDo6QmFsYW5jZQAEIJBTZXQgdGhlIGJhbGFuY2VzIG9mIGEgZ2l2ZW4gYWNjb3VudC4ACQFUaGlzIHdpbGwgYWx0ZXIgYEZyZWVCYWxhbmNlYCBhbmQgYFJlc2VydmVkQmFsYW5jZWAgaW4gc3RvcmFnZS4gaXTMd2lsbCBhbHNvIGRlY3JlYXNlIHRoZSB0b3RhbCBpc3N1YW5jZSBvZiB0aGUgc3lzdGVtDQEoYFRvdGFsSXNzdWFuY2VgKS4gSWYgdGhlIG5ldyBmcmVlIG9yIHJlc2VydmVkIGJhbGFuY2UgaXMgYmVsb3cgdGhl0GV4aXN0ZW50aWFsIGRlcG9zaXQsIGl0IHdpbGwgcmVhcCB0aGUgYEFjY291bnRJbmZvYC4AsFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBpcyBgcm9vdGAuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLs0DDERwYWxsZXRfY3VycmVuY2llcxhtb2R1bGUQQ2FsbAQEVAABDCB0cmFuc2ZlcgwBEGRlc3QAAYw8VDo6TG9va3VwIGFzIFN0YXRpY0xvb2t1cD46OlNvdXJjZQABLGN1cnJlbmN5X2lkKAE8Q3VycmVuY3lJZE9mPFQ+AAEYYW1vdW50PAEwQmFsYW5jZU9mPFQ+AAAQ9FRyYW5zZmVyIHNvbWUgYmFsYW5jZSB0byBhbm90aGVyIGFjY291bnQgdW5kZXIgYGN1cnJlbmN5X2lkYC4A5FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBTaWduZWRgIGJ5IHRoZSx0cmFuc2FjdG9yLmB0cmFuc2Zlcl9uYXRpdmVfY3VycmVuY3kIARBkZXN0AAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAARhhbW91bnQ8ATBCYWxhbmNlT2Y8VD4AARDEVHJhbnNmZXIgc29tZSBuYXRpdmUgY3VycmVuY3kgdG8gYW5vdGhlciBhY2NvdW50LgDkVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlLHRyYW5zYWN0b3IuOHVwZGF0ZV9iYWxhbmNlDAEMd2hvAAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAASxjdXJyZW5jeV9pZCgBPEN1cnJlbmN5SWRPZjxUPgABGGFtb3VudNEDASxBbW91bnRPZjxUPgACDMx1cGRhdGUgYW1vdW50IG9mIGFjY291bnQgYHdob2AgdW5kZXIgYGN1cnJlbmN5X2lkYC4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7RAwAABQ0A1QMMMG9ybWxfdmVzdGluZxhtb2R1bGUQQ2FsbAQEVAABEBRjbGFpbQAAADx2ZXN0ZWRfdHJhbnNmZXIIARBkZXN0AAGMPFQ6Okxvb2t1cCBhcyBTdGF0aWNMb29rdXA+OjpTb3VyY2UAASBzY2hlZHVsZdkDAVBWZXN0aW5nU2NoZWR1bGVPZjxUPgABAGB1cGRhdGVfdmVzdGluZ19zY2hlZHVsZXMIAQx3aG8AAYw8VDo6TG9va3VwIGFzIFN0YXRpY0xvb2t1cD46OlNvdXJjZQABRHZlc3Rpbmdfc2NoZWR1bGVz3QMBZFZlYzxWZXN0aW5nU2NoZWR1bGVPZjxUPj4AAgAkY2xhaW1fZm9yBAEQZGVzdAABjDxUOjpMb29rdXAgYXMgU3RhdGljTG9va3VwPjo6U291cmNlAAMABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLtkDCDBvcm1sX3Zlc3Rpbmc8VmVzdGluZ1NjaGVkdWxlCCxCbG9ja051bWJlcgEoHEJhbGFuY2UBQAAQARRzdGFydCgBLEJsb2NrTnVtYmVyAAEYcGVyaW9kKAEsQmxvY2tOdW1iZXIAATBwZXJpb2RfY291bnQoAQx1MzIAAShwZXJfcGVyaW9kPAEcQmFsYW5jZQAA3QMAAALZAwDhAwwocGFsbGV0X2V2bRhwYWxsZXQQQ2FsbAQEVAABECB3aXRoZHJhdwgBHGFkZHJlc3NYARBIMTYwAAEUdmFsdWVAATBCYWxhbmNlT2Y8VD4AAATgV2l0aGRyYXcgYmFsYW5jZSBmcm9tIEVWTSBpbnRvIGN1cnJlbmN5L2JhbGFuY2VzIHBhbGxldC4QY2FsbCgBGHNvdXJjZVgBEEgxNjAAARh0YXJnZXRYARBIMTYwAAEUaW5wdXQUARxWZWM8dTg+AAEUdmFsdWVgARBVMjU2AAEkZ2FzX2xpbWl0GAEMdTY0AAE8bWF4X2ZlZV9wZXJfZ2FzYAEQVTI1NgABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc+UDATBPcHRpb248VTI1Nj4AARRub25jZeUDATBPcHRpb248VTI1Nj4AASxhY2Nlc3NfbGlzdOkDAVhWZWM8KEgxNjAsIFZlYzxIMjU2Pik+AAFIYXV0aG9yaXphdGlvbl9saXN08QMBREF1dGhvcml6YXRpb25MaXN0AAEEXQFJc3N1ZSBhbiBFVk0gY2FsbCBvcGVyYXRpb24uIFRoaXMgaXMgc2ltaWxhciB0byBhIG1lc3NhZ2UgY2FsbCB0cmFuc2FjdGlvbiBpbiBFdGhlcmV1bS4YY3JlYXRlJAEYc291cmNlWAEQSDE2MAABEGluaXQUARxWZWM8dTg+AAEUdmFsdWVgARBVMjU2AAEkZ2FzX2xpbWl0GAEMdTY0AAE8bWF4X2ZlZV9wZXJfZ2FzYAEQVTI1NgABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc+UDATBPcHRpb248VTI1Nj4AARRub25jZeUDATBPcHRpb248VTI1Nj4AASxhY2Nlc3NfbGlzdOkDAVhWZWM8KEgxNjAsIFZlYzxIMjU2Pik+AAFIYXV0aG9yaXphdGlvbl9saXN08QMBREF1dGhvcml6YXRpb25MaXN0AAIIUQFJc3N1ZSBhbiBFVk0gY3JlYXRlIG9wZXJhdGlvbi4gVGhpcyBpcyBzaW1pbGFyIHRvIGEgY29udHJhY3QgY3JlYXRpb24gdHJhbnNhY3Rpb24gaW4kRXRoZXJldW0uHGNyZWF0ZTIoARhzb3VyY2VYARBIMTYwAAEQaW5pdBQBHFZlYzx1OD4AARBzYWx0LAEQSDI1NgABFHZhbHVlYAEQVTI1NgABJGdhc19saW1pdBgBDHU2NAABPG1heF9mZWVfcGVyX2dhc2ABEFUyNTYAAWBtYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXPlAwEwT3B0aW9uPFUyNTY+AAEUbm9uY2XlAwEwT3B0aW9uPFUyNTY+AAEsYWNjZXNzX2xpc3TpAwFYVmVjPChIMTYwLCBWZWM8SDI1Nj4pPgABSGF1dGhvcml6YXRpb25fbGlzdPEDAURBdXRob3JpemF0aW9uTGlzdAADBHxJc3N1ZSBhbiBFVk0gY3JlYXRlMiBvcGVyYXRpb24uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLuUDBBhPcHRpb24EBFQBYAEIEE5vbmUAAAAQU29tZQQAYAAAAQAA6QMAAALtAwDtAwAABAhY7ADxAwAAAvUDAPUDECBldGhlcmV1bSx0cmFuc2FjdGlvbhxlaXA3NzAyVEF1dGhvcml6YXRpb25MaXN0SXRlbQAAEAEgY2hhaW5faWQYAQx1NjQAARxhZGRyZXNzWAEcQWRkcmVzcwABFG5vbmNlYAEQVTI1NgABJHNpZ25hdHVyZfkDAXRNYWxsZWFibGVUcmFuc2FjdGlvblNpZ25hdHVyZQAA+QMQIGV0aGVyZXVtLHRyYW5zYWN0aW9uHGVpcDI5MzB0TWFsbGVhYmxlVHJhbnNhY3Rpb25TaWduYXR1cmUAAAwBMG9kZF95X3Bhcml0eUQBEGJvb2wAAQRyLAEQSDI1NgABBHMsARBIMjU2AAD9Aww8cGFsbGV0X2V0aGVyZXVtGHBhbGxldBBDYWxsBARUAAEEIHRyYW5zYWN0BAEsdHJhbnNhY3Rpb24BBAEsVHJhbnNhY3Rpb24AAASEVHJhbnNhY3QgYW4gRXRoZXJldW0gdHJhbnNhY3Rpb24uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLgEEDCBldGhlcmV1bSx0cmFuc2FjdGlvbjRUcmFuc2FjdGlvblYzAAEQGExlZ2FjeQQABQQBRExlZ2FjeVRyYW5zYWN0aW9uAAAAHEVJUDI5MzAEABUEAUhFSVAyOTMwVHJhbnNhY3Rpb24AAQAcRUlQMTU1OQQAJQQBSEVJUDE1NTlUcmFuc2FjdGlvbgACABxFSVA3NzAyBAApBAFIRUlQNzcwMlRyYW5zYWN0aW9uAAMAAAUEECBldGhlcmV1bSx0cmFuc2FjdGlvbhhsZWdhY3lETGVnYWN5VHJhbnNhY3Rpb24AABwBFG5vbmNlYAEQVTI1NgABJGdhc19wcmljZWABEFUyNTYAASRnYXNfbGltaXRgARBVMjU2AAEYYWN0aW9uCQQBRFRyYW5zYWN0aW9uQWN0aW9uAAEUdmFsdWVgARBVMjU2AAEUaW5wdXQUARRCeXRlcwABJHNpZ25hdHVyZQ0EAVBUcmFuc2FjdGlvblNpZ25hdHVyZQAACQQQIGV0aGVyZXVtLHRyYW5zYWN0aW9uGGxlZ2FjeURUcmFuc2FjdGlvbkFjdGlvbgABCBBDYWxsBABYARBIMTYwAAAAGENyZWF0ZQABAAANBBAgZXRoZXJldW0sdHJhbnNhY3Rpb24YbGVnYWN5UFRyYW5zYWN0aW9uU2lnbmF0dXJlAAAMAQR2EQQBVFRyYW5zYWN0aW9uUmVjb3ZlcnlJZAABBHIsARBIMjU2AAEEcywBEEgyNTYAABEEECBldGhlcmV1bSx0cmFuc2FjdGlvbhhsZWdhY3lUVHJhbnNhY3Rpb25SZWNvdmVyeUlkAAAEABgBDHU2NAAAFQQQIGV0aGVyZXVtLHRyYW5zYWN0aW9uHGVpcDI5MzBIRUlQMjkzMFRyYW5zYWN0aW9uAAAkASBjaGFpbl9pZBgBDHU2NAABFG5vbmNlYAEQVTI1NgABJGdhc19wcmljZWABEFUyNTYAASRnYXNfbGltaXRgARBVMjU2AAEYYWN0aW9uCQQBRFRyYW5zYWN0aW9uQWN0aW9uAAEUdmFsdWVgARBVMjU2AAEUaW5wdXQUARRCeXRlcwABLGFjY2Vzc19saXN0GQQBKEFjY2Vzc0xpc3QAASRzaWduYXR1cmUhBAFQVHJhbnNhY3Rpb25TaWduYXR1cmUAABkEAAACHQQAHQQQIGV0aGVyZXVtLHRyYW5zYWN0aW9uHGVpcDI5MzA4QWNjZXNzTGlzdEl0ZW0AAAgBHGFkZHJlc3NYARxBZGRyZXNzAAEwc3RvcmFnZV9rZXlz7AEkVmVjPEgyNTY+AAAhBBAgZXRoZXJldW0sdHJhbnNhY3Rpb24cZWlwMjkzMFBUcmFuc2FjdGlvblNpZ25hdHVyZQAADAEwb2RkX3lfcGFyaXR5RAEQYm9vbAABBHIsARBIMjU2AAEEcywBEEgyNTYAACUEECBldGhlcmV1bSx0cmFuc2FjdGlvbhxlaXAxNTU5SEVJUDE1NTlUcmFuc2FjdGlvbgAAKAEgY2hhaW5faWQYAQx1NjQAARRub25jZWABEFUyNTYAAWBtYXhfcHJpb3JpdHlfZmVlX3Blcl9nYXNgARBVMjU2AAE8bWF4X2ZlZV9wZXJfZ2FzYAEQVTI1NgABJGdhc19saW1pdGABEFUyNTYAARhhY3Rpb24JBAFEVHJhbnNhY3Rpb25BY3Rpb24AARR2YWx1ZWABEFUyNTYAARRpbnB1dBQBFEJ5dGVzAAEsYWNjZXNzX2xpc3QZBAEoQWNjZXNzTGlzdAABJHNpZ25hdHVyZSEEAVBUcmFuc2FjdGlvblNpZ25hdHVyZQAAKQQQIGV0aGVyZXVtLHRyYW5zYWN0aW9uHGVpcDc3MDJIRUlQNzcwMlRyYW5zYWN0aW9uAAAsASBjaGFpbl9pZBgBDHU2NAABFG5vbmNlYAEQVTI1NgABYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc2ABEFUyNTYAATxtYXhfZmVlX3Blcl9nYXNgARBVMjU2AAEkZ2FzX2xpbWl0YAEQVTI1NgABLGRlc3RpbmF0aW9uCQQBRFRyYW5zYWN0aW9uQWN0aW9uAAEUdmFsdWVgARBVMjU2AAEQZGF0YRQBFEJ5dGVzAAEsYWNjZXNzX2xpc3QZBAEoQWNjZXNzTGlzdAABSGF1dGhvcml6YXRpb25fbGlzdPEDAURBdXRob3JpemF0aW9uTGlzdAABJHNpZ25hdHVyZSEEAVBUcmFuc2FjdGlvblNpZ25hdHVyZQAALQQMTHBhbGxldF9ldm1fYWNjb3VudHMYcGFsbGV0EENhbGwEBFQAASRAYmluZF9ldm1fYWRkcmVzcwAAMKRCaW5kcyBhIFN1YnN0cmF0ZSBhZGRyZXNzIHRvIEVWTSBhZGRyZXNzLm0BQWZ0ZXIgYmluZGluZywgdGhlIEVWTSBpcyBhYmxlIHRvIGNvbnZlcnQgYW4gRVZNIGFkZHJlc3MgdG8gdGhlIG9yaWdpbmFsIFN1YnN0cmF0ZSBhZGRyZXNzLq0BV2l0aG91dCBiaW5kaW5nLCB0aGUgRVZNIGNvbnZlcnRzIGFuIEVWTSBhZGRyZXNzIHRvIGEgdHJ1bmNhdGVkIFN1YnN0cmF0ZSBhZGRyZXNzLCB3aGljaCBkb2Vzbid0IGNvcnJlc3BvbmRYdG8gdGhlIG9yaWdpbiBhZGRyZXNzLgAFAUJpbmRpbmcgYW4gYWRkcmVzcyBpcyBub3QgbmVjZXNzYXJ5IGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBFVk0uoEluY3JlYXNlcyBgc3VmZmljaWVudHNgIGZvciB0aGUgYWNjb3VudC4ALFBhcmFtZXRlcnM6wC0gYG9yaWdpbmA6IFN1YnN0cmF0ZSBhY2NvdW50IGJpbmRpbmcgYW4gYWRkcmVzcwC4RW1pdHMgYEV2bUFjY291bnRCb3VuZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLlRhZGRfY29udHJhY3RfZGVwbG95ZXIEARxhZGRyZXNzWAEoRXZtQWRkcmVzcwABHGEBQWRkcyBhbiBFVk0gYWRkcmVzcyB0byB0aGUgbGlzdCBvZiBhZGRyZXNzZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBkZXBsb3kgc21hcnQgY29udHJhY3RzLgAsUGFyYW1ldGVyczpJAS0gYG9yaWdpbmA6IFN1YnN0cmF0ZSBhY2NvdW50IHdoaXRlbGlzdGluZyBhbiBhZGRyZXNzLiBNdXN0IGJlIGBDb250cm9sbGVyT3JpZ2luYC6wLSBgYWRkcmVzc2A6IEVWTSBhZGRyZXNzIHRoYXQgaXMgd2hpdGVsaXN0ZWQAsEVtaXRzIGBEZXBsb3llckFkZGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuYHJlbW92ZV9jb250cmFjdF9kZXBsb3llcgQBHGFkZHJlc3NYAShFdm1BZGRyZXNzAAIcdQFSZW1vdmVzIGFuIEVWTSBhZGRyZXNzIGZyb20gdGhlIGxpc3Qgb2YgYWRkcmVzc2VzIHRoYXQgYXJlIGFsbG93ZWQgdG8gZGVwbG95IHNtYXJ0IGNvbnRyYWN0cy4ALFBhcmFtZXRlcnM6mQEtIGBvcmlnaW5gOiBTdWJzdHJhdGUgYWNjb3VudCByZW1vdmluZyB0aGUgRVZNIGFkZHJlc3MgZnJvbSB0aGUgd2hpdGVsaXN0LiBNdXN0IGJlIGBDb250cm9sbGVyT3JpZ2luYC7sLSBgYWRkcmVzc2A6IEVWTSBhZGRyZXNzIHRoYXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSB3aGl0ZWxpc3QAuEVtaXRzIGBEZXBsb3llclJlbW92ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5ocmVub3VuY2VfY29udHJhY3RfZGVwbG95ZXIAAxyhAVJlbW92ZXMgdGhlIGFjY291bnQncyBFVk0gYWRkcmVzcyBmcm9tIHRoZSBsaXN0IG9mIGFkZHJlc3NlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGRlcGxveSBzbWFydCBjb250cmFjdHMu2QFCYXNlZCBvbiB0aGUgYmVzdCBwcmFjdGljZXMsIHRoaXMgZXh0cmluc2ljIGNhbiBiZSBjYWxsZWQgYnkgYW55IHdoaXRlbGlzdGVkIGFjY291bnQgdG8gcmVub3VuY2UgdGhlaXIgb3duIHBlcm1pc3Npb24uACxQYXJhbWV0ZXJzOjEBLSBgb3JpZ2luYDogU3Vic3RyYXRlIGFjY291bnQgcmVtb3ZpbmcgdGhlaXIgRVZNIGFkZHJlc3MgZnJvbSB0aGUgd2hpdGVsaXN0LgC4RW1pdHMgYERlcGxveWVyUmVtb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLkBhcHByb3ZlX2NvbnRyYWN0BAEcYWRkcmVzc1gBKEV2bUFkZHJlc3MABCRJAUFkZHMgYWRkcmVzcyBvZiB0aGUgY29udHJhY3QgdG8gdGhlIGxpc3Qgb2YgYXBwcm92ZWQgY29udHJhY3RzIHRvIG1hbmFnZSBiYWxhbmNlcy4A/EVmZmVjdGl2ZWx5IGdpdmluZyBpdCBhbGxvd2FuY2UgdG8gZm9yIGFueSBiYWxhbmNlcyBhbmQgdG9rZW5zLgAsUGFyYW1ldGVyczqgLSBgb3JpZ2luYDogIE11c3QgYmUgYENvbnRyb2xsZXJPcmlnaW5gLswtIGBhZGRyZXNzYDogQ29udHJhY3QgYWRkcmVzcyB0aGF0IHdpbGwgYmUgYXBwcm92ZWQAvEVtaXRzIGBDb250cmFjdEFwcHJvdmVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuTGRpc2FwcHJvdmVfY29udHJhY3QEARxhZGRyZXNzWAEoRXZtQWRkcmVzcwAFHF0BUmVtb3ZlcyBhZGRyZXNzIG9mIHRoZSBjb250cmFjdCBmcm9tIHRoZSBsaXN0IG9mIGFwcHJvdmVkIGNvbnRyYWN0cyB0byBtYW5hZ2UgYmFsYW5jZXMuACxQYXJhbWV0ZXJzOpwtIGBvcmlnaW5gOiBNdXN0IGJlIGBDb250cm9sbGVyT3JpZ2luYC7YLSBgYWRkcmVzc2A6IENvbnRyYWN0IGFkZHJlc3MgdGhhdCB3aWxsIGJlIGRpc2FwcHJvdmVkAMhFbWl0cyBgQ29udHJhY3REaXNhcHByb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjRjbGFpbV9hY2NvdW50DAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABJHNpZ25hdHVyZZUBASRTaWduYXR1cmUABiz8UHJvdmVzIG93bmVyc2hpcCBvZiBhbiBhY2NvdW50IGFuZCBiaW5kcyBpdCB0byB0aGUgRVZNIGFkZHJlc3MuUQFUaGlzIGlzIHVzZWZ1bCBmb3IgYWNjb3VudHMgdGhhdCB3YW50IHRvIHN1Ym1pdCBzb21lIHN1YnN0cmF0ZSB0cmFuc2FjdGlvbiwgYnV0IG9ubHl1AXJlY2VpdmVkIHNvbWUgRVJDMjAgYmFsYW5jZSBhbmQgYFN5c3RlbWAgcGFsbGV0IGRvZXNuJ3QgcmVnaXN0ZXIgdGhlbSBhcyBhIHN1YnN0cmF0ZSBhY2NvdW50LgAsUGFyYW1ldGVyczpwLSBgb3JpZ2luYDogVW5zaWduZWQgb3JpZ2luLtgtIGBhY2NvdW50YDogQWNjb3VudCBwcm92aW5nIG93bmVyc2hpcCBvZiB0aGUgYWRkcmVzcy4FAS0gYGFzc2V0X2lkYDogQXNzZXQgSUQgdG8gYmUgc2V0IGFzIGZlZSBjdXJyZW5jeSBmb3IgdGhlIGFjY291bnQuSQEtIGBzaWduYXR1cmVgOiBTaWduZWQgbWVzc2FnZSBieSB0aGUgYWNjb3VudCB0aGF0IHByb3ZlcyBvd25lcnNoaXAgb2YgdGhlIGFjY291bnQuALRFbWl0cyBgQWNjb3VudENsYWltZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC44c2V0X250dF9taW50ZXIIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARhtaW50ZXJYAShFdm1BZGRyZXNzAAckPQFTZXRzIHRoZSBOVFQgbWludGVyIGZvciBhbiBhc3NldC4gVGhlIG1pbnRlciBpcyB0aGUgb25seSBFVk0gYWRkcmVzcyBhbGxvd2VkIHRv1G1pbnQvYnVybiB0aGUgYXNzZXQgdmlhIHRoZSBNdWx0aUN1cnJlbmN5IHByZWNvbXBpbGUuACxQYXJhbWV0ZXJzOpwtIGBvcmlnaW5gOiBNdXN0IGJlIGBDb250cm9sbGVyT3JpZ2luYC6gLSBgYXNzZXRfaWRgOiBBc3NldCB3aG9zZSBtaW50ZXIgaXMgc2V0LsQtIGBtaW50ZXJgOiBFVk0gYWRkcmVzcyBvZiB0aGUgTlRUIHNwb2tlIG1hbmFnZXIuAKxFbWl0cyBgTnR0TWludGVyU2V0YCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuQGNsZWFyX250dF9taW50ZXIEASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQACCA5AUNsZWFycyB0aGUgTlRUIG1pbnRlciBmb3IgYW4gYXNzZXQsIHN0b3BwaW5nIGFsbCBtaW50L2J1cm4gdmlhIHRoZSBwcmVjb21waWxlLlEBQWN0cyBhcyBhbiBlbWVyZ2VuY3kgc3RvcCwgdGhlcmVmb3JlIGl0IGlzIGdhdGVkIGJ5IHRoZSBmYXN0ZXIgYE50dEVtZXJnZW5jeU9yaWdpbmAuACxQYXJhbWV0ZXJzOqQtIGBvcmlnaW5gOiBNdXN0IGJlIGBOdHRFbWVyZ2VuY3lPcmlnaW5gLrAtIGBhc3NldF9pZGA6IEFzc2V0IHdob3NlIG1pbnRlciBpcyBjbGVhcmVkLgC8RW1pdHMgYE50dE1pbnRlckNsZWFyZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuMQQMbHBhbGxldF94eWtfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQQQ2FsbAQEVAABPEhjcmVhdGVfZ2xvYmFsX2Zhcm0kATR0b3RhbF9yZXdhcmRzQAEcQmFsYW5jZQABYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kcygBLFBlcmlvZE9mPFQ+AAFEYmxvY2tzX3Blcl9wZXJpb2QoAURCbG9ja051bWJlckZvcjxUPgABSGluY2VudGl2aXplZF9hc3NldCgBHEFzc2V0SWQAATxyZXdhcmRfY3VycmVuY3koARxBc3NldElkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAAUB5aWVsZF9wZXJfcGVyaW9kmQIBLFBlcnF1aW50aWxsAAEsbWluX2RlcG9zaXRAARxCYWxhbmNlAAFAcHJpY2VfYWRqdXN0bWVudFQBJEZpeGVkVTEyOAAAdPRDcmVhdGUgbmV3IGxpcXVpZGl0eSBtaW5pbmcgcHJvZ3JhbSB3aXRoIHByb3ZpZGVkIHBhcmFtZXRlcnMuAD0BYG93bmVyYCBhY2NvdW50IGhhcyB0byBoYXZlIGF0IGxlYXN0IGB0b3RhbF9yZXdhcmRzYCBiYWxhbmNlLiBUaGlzIGZ1bmQgd2lsbCBiZaR0cmFuc2ZlcnJlZCBmcm9tIGBvd25lcmAgdG8gZmFybSBhY2NvdW50LmUBSW4gY2FzZSBvZiBgcmV3YXJkX2N1cnJlbmN5YCBpcyBpbnN1ZmZpY2llbnQgYXNzZXQsIGZhcm0ncyBgb3duZXJgIGhhcyB0byBwYXkgZXhpc3RlbnRpYWwdAWRlcG9zaXQgZm9yIGdsb2JhbCBmYXJtIGFjY291bnQgYW5kIGZvciBsaXF1aWRpdHkgbWluaW5nIGBwb3RgIGFjY291bnQuAPBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBgVDo6Q3JlYXRlT3JpZ2luYC5VASEhIVdBUk46IGBUOjpDcmVhdGVPcmlnaW5gIGhhcyBwb3dlciBvdmVyIGZ1bmRzIG9mIGBvd25lcmAncyBhY2NvdW50IGFuZCBpdCBzaG91bGQgYmXQY29uZmlndXJlZCB0byB0cnVzdGVkIG9yaWdpbiBlLmcgU3VkbyBvciBHb3Zlcm5hbmNlLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4xAS0gYHRvdGFsX3Jld2FyZHNgOiB0b3RhbCByZXdhcmRzIHBsYW5uZWQgdG8gZGlzdHJpYnV0ZS4gVGhpcyByZXdhcmRzIHdpbGwgYmXcZGlzdHJpYnV0ZWQgYmV0d2VlbiBhbGwgeWllbGQgZmFybXMgaW4gdGhlIGdsb2JhbCBmYXJtLlkBLSBgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzYDogcGxhbm5lZCBudW1iZXIgb2YgcGVyaW9kcyB0byBkaXN0cmlidXRlIGB0b3RhbF9yZXdhcmRzYC4pAVdBUk46IFRISVMgSVMgTk9UIEhBUkQgREVBRExJTkUuIE5vdCBhbGwgcmV3YXJkcyBoYXZlIHRvIGJlIGRpc3RyaWJ1dGVkIGluXQFgcGxhbm5lZF95aWVsZGluZ19wZXJpb2RzYC4gUmV3YXJkcyBhcmUgZGlzdHJpYnV0ZWQgYmFzZWQgb24gdGhlIHNpdHVhdGlvbiBpbiB0aGUgeWllbGRhAWZhcm1zIGFuZCBjYW4gYmUgZGlzdHJpYnV0ZWQgaW4gYSBsb25nZXIgdGltZSBmcmFtZSBidXQgbmV2ZXIgaW4gdGhlIHNob3J0ZXIgdGltZSBmcmFtZS5ZAS0gYGJsb2Nrc19wZXJfcGVyaW9kYDogIG51bWJlciBvZiBibG9ja3MgaW4gYSBzaW5nbGUgcGVyaW9kLiBNaW4uIG51bWJlciBvZiBibG9ja3MgcGVyMHBlcmlvZCBpcyAxLmUBLSBgaW5jZW50aXZpemVkX2Fzc2V0YDogYXNzZXQgdG8gYmUgaW5jZW50aXZpemVkIGluIFhZSyBwb29scy4gQWxsIHlpZWxkIGZhcm1zIGFkZGVkIGludG8RAWxpcS4gbWluaW5nIHByb2dyYW0gaGF2ZSB0byBoYXZlIGBpbmNlbnRpdml6ZWRfYXNzZXRgIGluIHRoZWlyIHBhaXIuwC0gYHJld2FyZF9jdXJyZW5jeWA6IHBheW9mZiBjdXJyZW5jeSBvZiByZXdhcmRzLpQtIGBvd25lcmA6IGxpcS4gbWluaW5nIHByb2dyYW0gb3duZXIuOQEtIGB5aWVsZF9wZXJfcGVyaW9kYDogcGVyY2VudGFnZSByZXR1cm4gb24gYHJld2FyZF9jdXJyZW5jeWAgb2YgYWxsIGZhcm1zIHAuYS4JAS0gYG1pbl9kZXBvc2l0YDogbWluaW11bSBhbW91bnQgd2hpY2ggY2FuIGJlIGRlcG9zaXRlZCB0byB0aGUgZmFybVQtIGBwcmljZV9hZGp1c3RtZW50YDrARW1pdHMgYEdsb2JhbEZhcm1DcmVhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuSHVwZGF0ZV9nbG9iYWxfZmFybQgBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAFAcHJpY2VfYWRqdXN0bWVudFQBJEZpeGVkVTEyOAABKJxVcGRhdGUgZ2xvYmFsIGZhcm0ncyBwcmljZXMgYWRqdXN0bWVudC4AqE9ubHkgZmFybSdzIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci7MLSBgZ2xvYmFsX2Zhcm1faWRgOiBpZCBvZiB0aGUgZ2xvYmFsIGZhcm0gdG8gdXBkYXRl0C0gYHByaWNlX2FkanVzdG1lbnRgOiBuZXcgdmFsdWUgZm9yIHByaWNlIGFkanVzdG1lbnQAwEVtaXRzIGBHbG9iYWxGYXJtVXBkYXRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLlR0ZXJtaW5hdGVfZ2xvYmFsX2Zhcm0EAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAACLJxUZXJtaW5hdGUgZXhpc3RpbmcgbGlxLiBtaW5pbmcgcHJvZ3JhbS4AoE9ubHkgZmFybSBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4A0QFXQVJOOiBUbyBzdWNjZXNzZnVsbHkgdGVybWluYXRlIGEgZmFybSwgZmFybSBoYXZlIHRvIGJlIGVtcHR5KGFsbCB5aWVsZCBmYXJtcyBpbiBoZSBnbG9iYWwgZmFybSBtdXN0IGJlIHRlcm1pbmF0ZWQpLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci7cLSBgZ2xvYmFsX2Zhcm1faWRgOiBpZCBvZiBnbG9iYWwgZmFybSB0byBiZSB0ZXJtaW5hdGVkLgDMRW1pdHMgYEdsb2JhbEZhcm1UZXJtaW5hdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuRGNyZWF0ZV95aWVsZF9mYXJtEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAAShhc3NldF9wYWlyNQQBJEFzc2V0UGFpcgABKG11bHRpcGxpZXJUAThGYXJtTXVsdGlwbGllcgABNGxveWFsdHlfY3VydmWdAgFQT3B0aW9uPExveWFsdHlDdXJ2ZT4AA0i8QWRkIHlpZWxkIGZhcm0gZm9yIGdpdmVuIGBhc3NldF9wYWlyYCBYWUsgcG9vbC4EIKBPbmx5IGZhcm0gb3duZXIgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24uAFUBT25seSBYWUtzIHdpdGggYGFzc2V0X3BhaXJgIHdpdGggYGluY2VudGl2aXplZF9hc3NldGAgY2FuIGJlIGFkZGVkIGludG8gdGhlIGZhcm0uIFhZSxUBcG9vbCBmb3IgYGFzc2V0X3BhaXJgIGhhcyB0byBleGlzdCB0byBzdWNjZXNzZnVsbHkgY3JlYXRlIHlpZWxkIGZhcm0uIQFZaWVsZCBmYXJtIGZvciBzYW1lIGBhc3NldF9wYWlyYCBjYW4gZXhpc3Qgb25seSBvbmNlIGluIHRoZSBnbG9iYWwgZmFybS4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuAQEtIGBmYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgdG8gd2hpY2ggYSB5aWVsZCBmYXJtIHdpbGwgYmUgYWRkZWQuXQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtLiBMaXEuIG1pbmluZyB3aWxsIGJlIGFsbG93ZWQgZm9yIHRoaXMxAWBhc3NldF9wYWlyYCBhbmQgb25lIG9mIHRoZSBhc3NldHMgaW4gdGhlIHBhaXIgbXVzdCBiZSBgaW5jZW50aXZpemVkX2Fzc2V0YC6YLSBgbXVsdGlwbGllcmA6IHlpZWxkIGZhcm0gbXVsdGlwbGllci5dAS0gYGxveWFsdHlfY3VydmVgOiBjdXJ2ZSB0byBjYWxjdWxhdGUgbG95YWx0eSBtdWx0aXBsaWVyIHRvIGRpc3RyaWJ1dGUgcmV3YXJkcyB0byB1c2Vyc+B3aXRoIHRpbWUgaW5jZW50aXZlLiBgTm9uZWAgbWVhbnMgbm8gbG95YWx0eSBtdWx0aXBsaWVyLgC8RW1pdHMgYFlpZWxkRmFybUNyZWF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5EdXBkYXRlX3lpZWxkX2Zhcm0MAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABKGFzc2V0X3BhaXI1BAEkQXNzZXRQYWlyAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAQsdFVwZGF0ZSB5aWVsZCBmYXJtIG11bHRpcGxpZXIuBCCgT25seSBmYXJtIG93bmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4dAS0gYGdsb2JhbF9mYXJtX2lkYDogZ2xvYmFsIGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSB3aWxsIGJlIHVwZGF0ZWQuBQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIGdsb2JhbCBmYXJtLqgtIGBtdWx0aXBsaWVyYDogbmV3IHlpZWxkIGZhcm0gbXVsdGlwbGllci4AvEVtaXRzIGBZaWVsZEZhcm1VcGRhdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuPHN0b3BfeWllbGRfZmFybQgBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAEoYXNzZXRfcGFpcjUEASRBc3NldFBhaXIABTykU3RvcCBsaXEuIG1pbWluZyBmb3Igc3BlY2lmaWMgeWllbGQgZmFybS4ANQFUaGlzIGZ1bmN0aW9uIGNsYWltcyByZXdhcmRzIGZyb20gYEdsb2JhbEZhcm1gIGxhc3QgdGltZSBhbmQgc3RvcHMgeWllbGQgZmFybSEBaW5jZW50aXZpemF0aW9uIGZyb20gYSBgR2xvYmFsRmFybWAuIFVzZXJzIHdpbGwgYmUgYWJsZSB0byBvbmx5IHdpdGhkcmF3yHNoYXJlcyh3aXRoIGNsYWltaW5nKSBhZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uQQFgZGVwb3NpdF9zaGFyZXMoKWAgYW5kIGBjbGFpbV9yZXdhcmRzKClgIGFyZSBub3QgYWxsb3dlZCBvbiBjYW5jZWxlZCB5aWVsZCBmYXJtLgQgoE9ubHkgZmFybSBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuBQEtIGBnbG9iYWxfZmFybV9pZGA6IGZhcm0gaWQgaW4gd2hpY2ggeWllbGQgZmFybSB3aWxsIGJlIGNhbmNlbGVkLvgtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIHRoZSBmYXJtLgC8RW1pdHMgYFlpZWxkRmFybVN0b3BwZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC5EcmVzdW1lX3lpZWxkX2Zhcm0QAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABKGFzc2V0X3BhaXI1BAEkQXNzZXRQYWlyAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAZEpFJlc3VtZSB5aWVsZCBmYXJtIGZvciBzdG9wcGVkIHlpZWxkIGZhcm0uAFUBVGhpcyBmdW5jdGlvbiByZXN1bWUgaW5jZW50aXZpemF0aW9uIGZyb20gYEdsb2JhbEZhcm1gIGFuZCByZXN0b3JlIGZ1bGwgZnVuY3Rpb25hbGl0eSEBZm9yIHlpZWxkIGZhcm0uIFVzZXJzIHdpbGwgYmUgYWJsZSB0byBkZXBvc2l0LCBjbGFpbSBhbmQgd2l0aGRyYXcgYWdhaW4uAORXQVJOOiBZaWVsZCBmYXJtIGlzIE5PVCByZXdhcmRlZCBmb3IgdGltZSBpdCB3YXMgc3RvcHBlZC4AoE9ubHkgZmFybSBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4ALFBhcmFtZXRlcnM6gC0gYG9yaWdpbmA6IGdsb2JhbCBmYXJtJ3Mgb3duZXIuHQEtIGBnbG9iYWxfZmFybV9pZGA6IGdsb2JhbCBmYXJtIGlkIGluIHdoaWNoIHlpZWxkIGZhcm0gd2lsbCBiZSByZXN1bWVkLsgtIGB5aWVsZF9mYXJtX2lkYDogaWQgb2YgeWllbGQgZmFybSB0byBiZSByZXN1bWVkLgUBLSBgYXNzZXRfcGFpcmA6IGFzc2V0IHBhaXIgaWRlbnRpZnlpbmcgeWllbGQgZmFybSBpbiBnbG9iYWwgZmFybS7ILSBgbXVsdGlwbGllcmA6IHlpZWxkIGZhcm0gbXVsdGlwbGllciBpbiB0aGUgZmFybS4AvEVtaXRzIGBZaWVsZEZhcm1SZXN1bWVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuUHRlcm1pbmF0ZV95aWVsZF9mYXJtDAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAShhc3NldF9wYWlyNQQBJEFzc2V0UGFpcgAHTERSZW1vdmUgeWllbGQgZmFybQCBAVRoaXMgZnVuY3Rpb24gbWFya3MgYSB5aWVsZCBmYXJtIGFzIHJlYWR5IHRvIGJlIHJlbW92ZWQgZnJvbSBzdG9yYWdlIHdoZW4gaXQncyBlbXB0eS4gVXNlcnMgd2lsbGUBYmUgYWJsZSB0byBvbmx5IHdpdGhkcmF3IHNoYXJlcyh3aXRob3V0IGNsYWltaW5nIHJld2FyZHMgZnJvbSB5aWVsZCBmYXJtKS4gVW5wYWlkIHJld2FyZHNxAXdpbGwgYmUgdHJhbnNmZXJyZWQgYmFjayB0byBnbG9iYWwgZmFybSBhbmQgd2lsbCBiZSB1c2VkIHRvIGRpc3RyaWJ1dGUgdG8gb3RoZXIgeWllbGQgZmFybXMuAOBZaWVsZCBmYXJtIG11c3QgYmUgc3RvcHBlZCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgBxAU9ubHkgZ2xvYmFsIGZhcm0ncyBvd25lciBjYW4gcGVyZm9ybSB0aGlzIGFjdGlvbi4gWWllbGQgZmFybSBzdGF5cyBpbiB0aGUgc3RvcmFnZSB1bnRpbCBpdCdzbQFlbXB0eShhbGwgZmFybSBlbnRyaWVzIGFyZSB3aXRoZHJhd24pLiBMYXN0IHdpdGhkcmF3biBmcm9tIHlpZWxkIGZhcm0gdHJpZ2dlciByZW1vdmluZyBmcm9tMHRoZSBzdG9yYWdlLgAsUGFyYW1ldGVyczqALSBgb3JpZ2luYDogZ2xvYmFsIGZhcm0ncyBvd25lci4dAS0gYGdsb2JhbF9mYXJtX2lkYDogZmFybSBpZCBmcm9tIHdoaWNoIHlpZWxkIGZhcm0gc2hvdWxkIGJlIHRlcm1pbmF0ZWQu1C0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB5aWVsZCBmYXJtIHRvIGJlIHRlcm1pbmF0ZWQuFQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIHRoZSBnbG9iYWwgZmFybS4AyEVtaXRzIGBZaWVsZEZhcm1UZXJtaW5hdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuOGRlcG9zaXRfc2hhcmVzEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAShhc3NldF9wYWlyNQQBJEFzc2V0UGFpcgABNHNoYXJlc19hbW91bnRAARxCYWxhbmNlAAg4jERlcG9zaXQgTFAgc2hhcmVzIHRvIGEgbGlxLiBtaW5pbmcuAFEBVGhpcyBmdW5jdGlvbiB0cmFuc2ZlcnMgTFAgc2hhcmVzIGZyb20gYG9yaWdpbmAgdG8gcGFsbGV0J3MgYWNjb3VudCBhbmQgbWludCBuZnQgZm9yDQFgb3JpZ2luYCBhY2NvdW50LiBNaW50ZWQgbmZ0IHJlcHJlc2VudHMgZGVwb3NpdCBpbiB0aGUgbGlxLiBtaW5pbmcuACxQYXJhbWV0ZXJzOi0BLSBgb3JpZ2luYDogYWNjb3VudCBkZXBvc2l0aW5nIExQIHNoYXJlcy4gVGhpcyBhY2NvdW50IGhhcyB0byBoYXZlIGF0IGxlYXN0dGBzaGFyZXNfYW1vdW50YCBvZiBMUCBzaGFyZXMuPQEtIGBnbG9iYWxfZmFybV9pZGA6IGlkIG9mIGdsb2JhbCBmYXJtIHRvIHdoaWNoIHVzZXIgd2FudHMgdG8gZGVwb3NpdCBMUCBzaGFyZXMuyC0gYHlpZWxkX2Zhcm1faWRgOiBpZCBvZiB5aWVsZCBmYXJtIHRvIGRlcG9zaXQgdG8uHQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyBMUCBzaGFyZXMgdXNlciB3YW50cyB0byBkZXBvc2l0LvQtIGBzaGFyZXNfYW1vdW50YDogYW1vdW50IG9mIExQIHNoYXJlcyB1c2VyIHdhbnRzIHRvIGRlcG9zaXQuALhFbWl0cyBgU2hhcmVzRGVwb3NpdGVkYCBldmVudCB3aGVuIHN1Y2Nlc3NmdWwuKGpvaW5fZmFybXMMATBmYXJtX2VudHJpZXM5BAERAUJvdW5kZWRWZWM8KEdsb2JhbEZhcm1JZCwgWWllbGRGYXJtSWQpLCBUOjpNYXhGYXJtRW50cmllc1BlckRlcG9zaXQ+AAEoYXNzZXRfcGFpcjUEASRBc3NldFBhaXIAATRzaGFyZXNfYW1vdW50QAEcQmFsYW5jZQAMNLRKb2luIG11bHRpcGxlIGZhcm1zIHdpdGggYSBnaXZlbiBzaGFyZSBhbW91bnQA/FRoZSBzaGFyZSBpcyBkZXBvc2l0ZWQgdG8gdGhlIGZpcnN0IGZhcm0gb2YgdGhlIHNwZWNpZmllZCBmYW1zLNBhbmQgdGhlbiByZWRlcG9zaXQgdGhlIHNoYXJlcyB0byB0aGUgcmVtYWluaW5nIGZhcm1zACxQYXJhbWV0ZXJzOi0BLSBgb3JpZ2luYDogYWNjb3VudCBkZXBvc2l0aW5nIExQIHNoYXJlcy4gVGhpcyBhY2NvdW50IGhhcyB0byBoYXZlIGF0IGxlYXN0IQEtIGBmYXJtX2VudHJpZXNgOiBsaXN0IG9mIGdsb2JhbCBmYXJtIGlkIGFuZCB5aWVsZCBmYXJtIGlkIHBhaXJzIHRvIGpvaW4dAS0gYGFzc2V0X3BhaXJgOiBhc3NldCBwYWlyIGlkZW50aWZ5aW5nIExQIHNoYXJlcyB1c2VyIHdhbnRzIHRvIGRlcG9zaXQu9C0gYHNoYXJlc19hbW91bnRgOiBhbW91bnQgb2YgTFAgc2hhcmVzIHVzZXIgd2FudHMgdG8gZGVwb3NpdC4A2EVtaXRzIGBTaGFyZXNEZXBvc2l0ZWRgIGV2ZW50IGZvciB0aGUgZmlyc3QgZmFybSBlbnRyeR0BRW1pdHMgYFNoYXJlc1JlZGVwb3NpdGVkYCBldmVudCBmb3IgZWFjaCBmYXJtIGVudHJ5IGFmdGVyIHRoZSBmaXJzdCBvbmVwYWRkX2xpcXVpZGl0eV9hbmRfam9pbl9mYXJtcxQBHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAASBhbW91bnRfYUABHEJhbGFuY2UAAUhhbW91bnRfYl9tYXhfbGltaXRAARxCYWxhbmNlAAEwZmFybV9lbnRyaWVzOQQBEQFCb3VuZGVkVmVjPChHbG9iYWxGYXJtSWQsIFlpZWxkRmFybUlkKSwgVDo6TWF4RmFybUVudHJpZXNQZXJEZXBvc2l0PgANPC0BQWRkIGxpcXVpZGl0eSB0byBYWUsgcG9vbCBhbmQgam9pbiBtdWx0aXBsZSBmYXJtcyB3aXRoIGEgZ2l2ZW4gc2hhcmUgYW1vdW50AAkBVGhlIHNoYXJlIGlzIGRlcG9zaXRlZCB0byB0aGUgZmlyc3QgZmFybSBvZiB0aGUgc3BlY2lmaWVkIGVudHJpZXMs0GFuZCB0aGVuIHJlZGVwb3NpdCB0aGUgc2hhcmVzIHRvIHRoZSByZW1haW5pbmcgZmFybXMALFBhcmFtZXRlcnM6LQEtIGBvcmlnaW5gOiBhY2NvdW50IGRlcG9zaXRpbmcgTFAgc2hhcmVzLiBUaGlzIGFjY291bnQgaGFzIHRvIGhhdmUgYXQgbGVhc3TQLSBgYXNzZXRfYWA6IGFzc2V0IGlkIG9mIHRoZSBmaXJzdCBhc3NldCBpbiB0aGUgcGFpctQtIGBhc3NldF9iYDogYXNzZXQgaWQgb2YgdGhlIHNlY29uZCBhc3NldCBpbiB0aGUgcGFpcsgtIGBhbW91bnRfYWA6IGFtb3VudCBvZiB0aGUgZmlyc3QgYXNzZXQgdG8gZGVwb3NpdBUBLSBgYW1vdW50X2JfbWF4X2xpbWl0YDogbWF4aW11bSBhbW91bnQgb2YgdGhlIHNlY29uZCBhc3NldCB0byBkZXBvc2l0IQEtIGBmYXJtX2VudHJpZXNgOiBsaXN0IG9mIGdsb2JhbCBmYXJtIGlkIGFuZCB5aWVsZCBmYXJtIGlkIHBhaXJzIHRvIGpvaW4A2EVtaXRzIGBTaGFyZXNEZXBvc2l0ZWRgIGV2ZW50IGZvciB0aGUgZmlyc3QgZmFybSBlbnRyeR0BRW1pdHMgYFNoYXJlc1JlZGVwb3NpdGVkYCBldmVudCBmb3IgZWFjaCBmYXJtIGVudHJ5IGFmdGVyIHRoZSBmaXJzdCBvbmVAcmVkZXBvc2l0X3NoYXJlcxABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEoYXNzZXRfcGFpcjUEASRBc3NldFBhaXIAAShkZXBvc2l0X2lkQAEkRGVwb3NpdElkAAk85FJlZGVwb3NpdCBhbHJlYWR5IGxvY2tlZCBMUCBzaGFyZXMgdG8gYW5vdGhlciB5aWVsZCBmYXJtLgBlAVRoaXMgZnVuY3Rpb24gY3JlYXRlIHlpZWxkIGZhcm0gZW50cnkgZm9yIGV4aXN0aW5nIGRlcG9zaXQuIExQIHNoYXJlcyBhcmUgbm90IHRyYW5zZmVycmVk1GFuZCBhbW91bnQgb2YgTFAgc2hhcmVzIGlzIGJhc2VkIG9uIGV4aXN0aW5nIGRlcG9zaXQuAKRUaGlzIGZ1bmN0aW9uIERPRVNOJ1QgY3JlYXRlIG5ldyBkZXBvc2l0LgAsUGFyYW1ldGVyczoxAS0gYG9yaWdpbmA6IGFjY291bnQgZGVwb3NpdGluZyBMUCBzaGFyZXMuIFRoaXMgYWNjb3VudCBoYXZlIHRvIGhhdmUgYXQgbGVhc3SsLSBgZ2xvYmFsX2Zhcm1faWRgOiBnbG9iYWwgZmFybSBpZGVudGlmaWVyLuQtIGB5aWVsZF9mYXJtX2lkYDogeWllbGQgZmFybSBpZGVudGlmaWVyIHJlZGVwb3NpdGluZyB0by4ZAS0gYGFzc2V0X3BhaXJgOiBhc3NldCBwYWlyIGlkZW50aWZ5aW5nIExQIHNoYXJlcyB1c2VyIHdhbnQgdG8gZGVwb3NpdC6oLSBgZGVwb3NpdF9pZGA6IGlkZW50aWZpZXIgb2YgdGhlIGRlcG9zaXQuAMBFbWl0cyBgU2hhcmVzUmVkZXBvc2l0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC40Y2xhaW1fcmV3YXJkcwgBKGRlcG9zaXRfaWRAASREZXBvc2l0SWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQACiwNAUNsYWltIHJld2FyZHMgZnJvbSBsaXEuIG1pbmluZyBmb3IgZGVwb3NpdCByZXByZXNlbnRlZCBieSBgbmZ0X2lkYC4AWQFUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZSB1c2VyIHJld2FyZHMgZnJvbSBsaXEuIG1pbmluZyBhbmQgdHJhbnNmZXIgcmV3YXJkcyB0byBgb3JpZ2luYOhhY2NvdW50LiBDbGFpbWluZyBpbiB0aGUgc2FtZSBwZXJpb2QgaXMgYWxsb3dlZCBvbmx5IG9uY2UuACxQYXJhbWV0ZXJzOqgtIGBvcmlnaW5gOiBhY2NvdW50IG93bmVyIG9mIGRlcG9zaXQobmZ0KS74LSBgZGVwb3NpdF9pZGA6IG5mdCBpZCByZXByZXNlbnRpbmcgZGVwb3NpdCBpbiB0aGUgeWllbGQgZmFybS78LSBgeWllbGRfZmFybV9pZGA6IHlpZWxkIGZhcm0gaWRlbnRpZmllciB0byBjbGFpbSByZXdhcmRzIGZyb20uALBFbWl0cyBgUmV3YXJkQ2xhaW1lZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjx3aXRoZHJhd19zaGFyZXMMAShkZXBvc2l0X2lkQAEkRGVwb3NpdElkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEoYXNzZXRfcGFpcjUEASRBc3NldFBhaXIAC1gVAVdpdGhkcmF3IExQIHNoYXJlcyBmcm9tIGxpcS4gbWluaW5nIHdpdGggcmV3YXJkIGNsYWltaW5nIGlmIHBvc3NpYmxlLgAVAUxpc3Qgb2YgcG9zc2libGUgY2FzZXMgb2YgdHJhbnNmZXJzIG9mIExQIHNoYXJlcyBhbmQgY2xhaW1lZCByZXdhcmRzOgBRASogeWllbGQgZmFybSBpcyBhY3RpdmUoeWllbGQgZmFybSBpcyBub3Qgc3RvcHBlZCkgLSBjbGFpbSBhbmQgdHJhbnNmZXIgcmV3YXJkcyhpZiBpdNh3YXNuJ3QgY2xhaW1lZCBpbiB0aGlzIHBlcmlvZCkgYW5kIHRyYW5zZmVyIExQIHNoYXJlcy7sKiBsaXEuIG1pbmluZyBpcyBzdG9wcGVkIC0gY2xhaW0gYW5kIHRyYW5zZmVyIHJld2FyZHMoaWYgaXTYd2Fzbid0IGNsYWltZWQgaW4gdGhpcyBwZXJpb2QpIGFuZCB0cmFuc2ZlciBMUCBzaGFyZXMuBQEqIHlpZWxkIGZhcm0gd2FzIHRlcm1pbmF0ZWQgLSBvbmx5IExQIHNoYXJlcyB3aWxsIGJlIHRyYW5zZmVycmVkLuwqIGZhcm0gd2FzIHRlcm1pbmF0ZWQgLSBvbmx5IExQIHNoYXJlcyB3aWxsIGJlIHRyYW5zZmVycmVkLgA1AVVzZXIncyB1bmNsYWltYWJsZSByZXdhcmRzIHdpbGwgYmUgdHJhbnNmZXJyZWQgYmFjayB0byBnbG9iYWwgZmFybSdzIGFjY291bnQuACxQYXJhbWV0ZXJzOqgtIGBvcmlnaW5gOiBhY2NvdW50IG93bmVyIG9mIGRlcG9zaXQobmZ0KS74LSBgZGVwb3NpdF9pZGA6IG5mdCBpZCByZXByZXNlbnRpbmcgZGVwb3NpdCBpbiB0aGUgeWllbGQgZmFybS4FAS0gYHlpZWxkX2Zhcm1faWRgOiB5aWVsZCBmYXJtIGlkZW50aWZpZXIgdG8gZGl0aGRyYXcgc2hhcmVzIGZyb20uBQEtIGBhc3NldF9wYWlyYDogYXNzZXQgcGFpciBpZGVudGlmeWluZyB5aWVsZCBmYXJtIGluIGdsb2JhbCBmYXJtLgAYRW1pdHM6hCogYFJld2FyZENsYWltZWRgIGlmIGNsYWltIGhhcHBlbqQqIGBTaGFyZXNXaXRoZHJhd25gIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bChleGl0X2Zhcm1zDAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAABKGFzc2V0X3BhaXI1BAEkQXNzZXRQYWlyAAEwZmFybV9lbnRyaWVzPQQB0EJvdW5kZWRWZWM8WWllbGRGYXJtSWQsIFQ6Ok1heEZhcm1FbnRyaWVzUGVyRGVwb3NpdD4ADkCMRXhpdCBmcm9tIGFsbCBzcGVjaWZpZWQgeWllbGQgZmFybXMAXQFUaGlzIGZ1bmN0aW9uIHdpbGwgYXR0ZW1wdCB0byB3aXRoZHJhdyBzaGFyZXMgYW5kIGNsYWltIHJld2FyZHMgKGlmIGF2YWlsYWJsZSkgZnJvbSBhbGyoc3BlY2lmaWVkIHlpZWxkIGZhcm1zIGZvciBhIGdpdmVuIGRlcG9zaXQuACxQYXJhbWV0ZXJzOqgtIGBvcmlnaW5gOiBhY2NvdW50IG93bmVyIG9mIGRlcG9zaXQobmZ0KS74LSBgZGVwb3NpdF9pZGA6IG5mdCBpZCByZXByZXNlbnRpbmcgZGVwb3NpdCBpbiB0aGUgeWllbGQgZmFybS4dAS0gYGFzc2V0X3BhaXJgOiBhc3NldCBwYWlyIGlkZW50aWZ5aW5nIHlpZWxkIGZhcm0ocykgaW4gZ2xvYmFsIGZhcm0ocyku2C0gYGZhcm1fZW50cmllc2A6IGlkKHMpIG9mIHlpZWxkIGZhcm0ocykgdG8gZXhpdCBmcm9tLgAYRW1pdHM6rCogYFJld2FyZENsYWltZWRgIGZvciBlYWNoIHN1Y2Nlc3NmdWwgY2xhaW3IKiBgU2hhcmVzV2l0aGRyYXduYCBmb3IgZWFjaCBzdWNjZXNzZnVsIHdpdGhkcmF3YWzYKiBgRGVwb3NpdERlc3Ryb3llZGAgaWYgdGhlIGRlcG9zaXQgaXMgZnVsbHkgd2l0aGRyYXduAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy41BAwocGFsbGV0X3h5axR0eXBlcyRBc3NldFBhaXIAAAgBIGFzc2V0X2luKAEcQXNzZXRJZAABJGFzc2V0X291dCgBHEFzc2V0SWQAADkEDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBqQIEUwAABACtAgEYVmVjPFQ+AAA9BAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASgEUwAABAC1AgEYVmVjPFQ+AABBBAxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcYcGFsbGV0EENhbGwIBFQABEkAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuRQQMWHBhbGxldF9yZWxheWNoYWluX2luZm8YcGFsbGV0EENhbGwEBFQAAQAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuSQQMKHBhbGxldF9kY2EYcGFsbGV0EENhbGwEBFQAAQwgc2NoZWR1bGUIASBzY2hlZHVsZU0EAdRTY2hlZHVsZTxUOjpBY2NvdW50SWQsIFQ6OkFzc2V0SWQsIEJsb2NrTnVtYmVyRm9yPFQ+PgABVHN0YXJ0X2V4ZWN1dGlvbl9ibG9ja3QBZE9wdGlvbjxCbG9ja051bWJlckZvcjxUPj4AAHQ9AUNyZWF0ZXMgYSBuZXcgRENBIChEb2xsYXItQ29zdCBBdmVyYWdpbmcpIHNjaGVkdWxlIGFuZCBwbGFucyB0aGUgbmV4dCBleGVjdXRpb25gZm9yIHRoZSBzcGVjaWZpZWQgYmxvY2suACUBT25seSBgT3JkZXI6OlNlbGxgIHNjaGVkdWxlcyBjYW4gYmUgY3JlYXRlZC4gQnV5IG9yZGVycyBhcmUgcmVqZWN0ZWQgd2l0aFEBYE5vTG9uZ2VyU3VwcG9ydGVkYDsgYnV5IHNjaGVkdWxlcyBhbHJlYWR5IHN0b3JlZCBrZWVwIGV4ZWN1dGluZyB1bnRpbCB0aGV5IGNvbXBsZXRlSG9yIGFyZSB0ZXJtaW5hdGVkLgAtAUlmIHRoZSBibG9jayBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZXhlY3V0aW9uIGlzIHBsYW5uZWQgZm9yIHRoZSBuZXh0IGJsb2NrLkkBSWYgdGhlIGdpdmVuIGJsb2NrIGlzIGZ1bGwsIHRoZSBleGVjdXRpb24gd2lsbCBiZSBwbGFubmVkIGluIHRoZSBzdWJzZXF1ZW50IGJsb2NrLgBRAU9uY2UgdGhlIHNjaGVkdWxlIGlzIGNyZWF0ZWQsIHRoZSBzcGVjaWZpZWQgYHRvdGFsX2Ftb3VudGAgd2lsbCBiZSByZXNlcnZlZCBmb3IgRENBLh0BVGhlIHJlc2VydmF0aW9uIGN1cnJlbmN5IHdpbGwgYmUgdGhlIGBhbW91bnRfaW5gIGN1cnJlbmN5IG9mIHRoZSBvcmRlci4A4FRyYWRlcyBhcmUgZXhlY3V0ZWQgYXMgbG9uZyBhcyB0aGVyZSBpcyBidWRnZXQgcmVtYWluaW5nTQFmcm9tIHRoZSBpbml0aWFsIGB0b3RhbF9hbW91bnRgIGFsbG9jYXRpb24sIHVubGVzcyBgdG90YWxfYW1vdW50YCBpcyAwLCB0aGVuIHRyYWRlc6hhcmUgZXhlY3V0ZWQgdW50aWwgc2NoZWR1bGUgaXMgdGVybWluYXRlZC4AVQFJZiBhIHRyYWRlIGZhaWxzIGR1ZSB0byBzbGlwcGFnZSBsaW1pdCBvciBwcmljZSBzdGFiaWxpdHkgZXJyb3JzLCBpdCB3aWxsIGJlIHJldHJpZWQu1ElmIHRoZSBudW1iZXIgb2YgcmV0cmllcyByZWFjaGVzIHRoZSBtYXhpbXVtIGFsbG93ZWQssHRoZSBzY2hlZHVsZSB3aWxsIGJlIHRlcm1pbmF0ZWQgcGVybWFuZW50bHku+EluIHRoZSBjYXNlIG9mIGEgc3VjY2Vzc2Z1bCB0cmFkZSwgdGhlIHJldHJ5IGNvdW50ZXIgaXMgcmVzZXQuACxQYXJhbWV0ZXJzOmgtIGBvcmlnaW5gOiBzY2hlZHVsZSBvd25lcngtIGBzY2hlZHVsZWA6IHNjaGVkdWxlIGRldGFpbHMpAS0gYHN0YXJ0X2V4ZWN1dGlvbl9ibG9ja2A6IGZpcnN0IHBvc3NpYmxlIGV4ZWN1dGlvbiBibG9jayBmb3IgdGhlIHNjaGVkdWxlAPxFbWl0cyBgU2NoZWR1bGVkYCBhbmQgYEV4ZWN1dGlvblBsYW5uZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4AJHRlcm1pbmF0ZQgBLHNjaGVkdWxlX2lkKAEoU2NoZWR1bGVJZAABUG5leHRfZXhlY3V0aW9uX2Jsb2NrdAFkT3B0aW9uPEJsb2NrTnVtYmVyRm9yPFQ+PgABLAkBVGVybWluYXRlcyBhIERDQSBzY2hlZHVsZSBhbmQgcmVtb3ZlIGl0IGNvbXBsZXRlbHkgZnJvbSB0aGUgY2hhaW4uAEEBVGhpcyBjYW4gYmUgY2FsbGVkIGJ5IGJvdGggc2NoZWR1bGUgb3duZXIgb3IgdGhlIGNvbmZpZ3VyZWQgYFQ6OlRlcm1pbmF0ZU9yaWdpbmAALFBhcmFtZXRlcnM6aC0gYG9yaWdpbmA6IHNjaGVkdWxlIG93bmVycC0gYHNjaGVkdWxlX2lkYDogc2NoZWR1bGUgaWQVAS0gYG5leHRfZXhlY3V0aW9uX2Jsb2NrYDogYmxvY2sgbnVtYmVyIHdoZXJlIHRoZSBzY2hlZHVsZSBpcyBwbGFubmVkLgCkRW1pdHMgYFRlcm1pbmF0ZWRgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC4APHVubG9ja19yZXNlcnZlcwgBDHdobwABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAACNF0BVW5sb2NrcyBEQ0EgcmVzZXJ2ZXMgb2YgcHJvdmlkZWQgYXNzZXQgZm9yIHRoZSBjYWxsZXIgaWYgdGhleSBoYXZlIG5vIGFjdGl2ZSBzY2hlZHVsZXMuADUBVGhpcyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gdG8gaGVscCB1c2VycyByZWNvdmVyIHRoZWlyIHJlc2VydmVkIGZ1bmRzIGluIGNhc2X0YSBEQ0Egc2NoZWR1bGUgd2FzIHRlcm1pbmF0ZWQgYnV0IGxlZnQgc29tZSByZXNlcnZlZCBhbW91bnRzLgAJAVRoaXMgY2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIHVzZXIgaGFzIG5vIGFjdGl2ZSBEQ0Egc2NoZWR1bGVzLgAsUGFyYW1ldGVyczr8LSBgb3JpZ2luYDogVGhlIGFjY291bnQgdG8gdW5sb2NrIHJlc2VydmVzIGZvciAobXVzdCBiZSBzaWduZWQpBQEtIGBhc3NldF9pZGA6IFRoZSBhc3NldCBJRCBmb3Igd2hpY2ggcmVzZXJ2ZXMgc2hvdWxkIGJlIHVubG9ja2VkLgC4RW1pdHMgYFJlc2VydmVVbmxvY2tlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgAEDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuTQQMKHBhbGxldF9kY2EUdHlwZXMgU2NoZWR1bGUMJEFjY291bnRJZAEAHEFzc2V0SWQBKCxCbG9ja051bWJlcgEoABwBFG93bmVyAAEkQWNjb3VudElkAAEYcGVyaW9kKAEsQmxvY2tOdW1iZXIAATB0b3RhbF9hbW91bnRAARxCYWxhbmNlAAEsbWF4X3JldHJpZXNRAgEoT3B0aW9uPHU4PgABTHN0YWJpbGl0eV90aHJlc2hvbGRhAwE8T3B0aW9uPFBlcm1pbGw+AAEgc2xpcHBhZ2VhAwE8T3B0aW9uPFBlcm1pbGw+AAEUb3JkZXJRBAE4T3JkZXI8QXNzZXRJZD4AAFEEDChwYWxsZXRfZGNhFHR5cGVzFE9yZGVyBBxBc3NldElkASgBCBBTZWxsFAEgYXNzZXRfaW4oARxBc3NldElkAAEkYXNzZXRfb3V0KAEcQXNzZXRJZAABJGFtb3VudF9pbkABHEJhbGFuY2UAAThtaW5fYW1vdW50X291dEABHEJhbGFuY2UAARRyb3V0ZeUCAehCb3VuZGVkVmVjPFRyYWRlPEFzc2V0SWQ+LCBDb25zdFUzMjxNQVhfTlVNQkVSX09GX1RSQURFUz4+AAAADEJ1eRQBIGFzc2V0X2luKAEcQXNzZXRJZAABJGFzc2V0X291dCgBHEFzc2V0SWQAAShhbW91bnRfb3V0QAEcQmFsYW5jZQABNG1heF9hbW91bnRfaW5AARxCYWxhbmNlAAEUcm91dGXlAgHoQm91bmRlZFZlYzxUcmFkZTxBc3NldElkPiwgQ29uc3RVMzI8TUFYX05VTUJFUl9PRl9UUkFERVM+PgABAABVBAxAcGFsbGV0X3NjaGVkdWxlchhwYWxsZXQQQ2FsbAQEVAABKCBzY2hlZHVsZRABEHdoZW4oAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGlj0QIBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAAEcEFub255bW91c2x5IHNjaGVkdWxlIGEgdGFzay4YY2FuY2VsCAEQd2hlbigBREJsb2NrTnVtYmVyRm9yPFQ+AAEUaW5kZXgoAQx1MzIAAQSUQ2FuY2VsIGFuIGFub255bW91c2x5IHNjaGVkdWxlZCB0YXNrLjhzY2hlZHVsZV9uYW1lZBQBCGlkBAEgVGFza05hbWUAARB3aGVuKAFEQmxvY2tOdW1iZXJGb3I8VD4AAThtYXliZV9wZXJpb2RpY9ECAaxPcHRpb248c2NoZWR1bGU6OlBlcmlvZDxCbG9ja051bWJlckZvcjxUPj4+AAEgcHJpb3JpdHkIAUhzY2hlZHVsZTo6UHJpb3JpdHkAARBjYWxsDAF8Qm94PDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgACBFhTY2hlZHVsZSBhIG5hbWVkIHRhc2suMGNhbmNlbF9uYW1lZAQBCGlkBAEgVGFza05hbWUAAwR4Q2FuY2VsIGEgbmFtZWQgc2NoZWR1bGVkIHRhc2suOHNjaGVkdWxlX2FmdGVyEAEUYWZ0ZXIoAURCbG9ja051bWJlckZvcjxUPgABOG1heWJlX3BlcmlvZGlj0QIBrE9wdGlvbjxzY2hlZHVsZTo6UGVyaW9kPEJsb2NrTnVtYmVyRm9yPFQ+Pj4AASBwcmlvcml0eQgBSHNjaGVkdWxlOjpQcmlvcml0eQABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAQEqEFub255bW91c2x5IHNjaGVkdWxlIGEgdGFzayBhZnRlciBhIGRlbGF5LlBzY2hlZHVsZV9uYW1lZF9hZnRlchQBCGlkBAEgVGFza05hbWUAARRhZnRlcigBREJsb2NrTnVtYmVyRm9yPFQ+AAE4bWF5YmVfcGVyaW9kaWPRAgGsT3B0aW9uPHNjaGVkdWxlOjpQZXJpb2Q8QmxvY2tOdW1iZXJGb3I8VD4+PgABIHByaW9yaXR5CAFIc2NoZWR1bGU6OlByaW9yaXR5AAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABQSQU2NoZWR1bGUgYSBuYW1lZCB0YXNrIGFmdGVyIGEgZGVsYXkuJHNldF9yZXRyeQwBEHRhc2upAgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEccmV0cmllcwgBCHU4AAEYcGVyaW9kKAFEQmxvY2tOdW1iZXJGb3I8VD4ABjBZAVNldCBhIHJldHJ5IGNvbmZpZ3VyYXRpb24gZm9yIGEgdGFzayBzbyB0aGF0LCBpbiBjYXNlIGl0cyBzY2hlZHVsZWQgcnVuIGZhaWxzLCBpdCB3aWxsVQFiZSByZXRyaWVkIGFmdGVyIGBwZXJpb2RgIGJsb2NrcywgZm9yIGEgdG90YWwgYW1vdW50IG9mIGByZXRyaWVzYCByZXRyaWVzIG9yIHVudGlsIGl0JHN1Y2NlZWRzLgBVAVRhc2tzIHdoaWNoIG5lZWQgdG8gYmUgc2NoZWR1bGVkIGZvciBhIHJldHJ5IGFyZSBzdGlsbCBzdWJqZWN0IHRvIHdlaWdodCBtZXRlcmluZyBhbmRRAWFnZW5kYSBzcGFjZSwgc2FtZSBhcyBhIHJlZ3VsYXIgdGFzay4gSWYgYSBwZXJpb2RpYyB0YXNrIGZhaWxzLCBpdCB3aWxsIGJlIHNjaGVkdWxlZJBub3JtYWxseSB3aGlsZSB0aGUgdGFzayBpcyByZXRyeWluZy4AUQFUYXNrcyBzY2hlZHVsZWQgYXMgYSByZXN1bHQgb2YgYSByZXRyeSBmb3IgYSBwZXJpb2RpYyB0YXNrIGFyZSB1bm5hbWVkLCBub24tcGVyaW9kaWM9AWNsb25lcyBvZiB0aGUgb3JpZ2luYWwgdGFzay4gVGhlaXIgcmV0cnkgY29uZmlndXJhdGlvbiB3aWxsIGJlIGRlcml2ZWQgZnJvbSB0aGVNAW9yaWdpbmFsIHRhc2sncyBjb25maWd1cmF0aW9uLCBidXQgd2lsbCBoYXZlIGEgbG93ZXIgdmFsdWUgZm9yIGByZW1haW5pbmdgIHRoYW4gdGhlZG9yaWdpbmFsIGB0b3RhbF9yZXRyaWVzYC48c2V0X3JldHJ5X25hbWVkDAEIaWQEASBUYXNrTmFtZQABHHJldHJpZXMIAQh1OAABGHBlcmlvZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAcwXQFTZXQgYSByZXRyeSBjb25maWd1cmF0aW9uIGZvciBhIG5hbWVkIHRhc2sgc28gdGhhdCwgaW4gY2FzZSBpdHMgc2NoZWR1bGVkIHJ1biBmYWlscywgaXRdAXdpbGwgYmUgcmV0cmllZCBhZnRlciBgcGVyaW9kYCBibG9ja3MsIGZvciBhIHRvdGFsIGFtb3VudCBvZiBgcmV0cmllc2AgcmV0cmllcyBvciB1bnRpbDBpdCBzdWNjZWVkcy4AVQFUYXNrcyB3aGljaCBuZWVkIHRvIGJlIHNjaGVkdWxlZCBmb3IgYSByZXRyeSBhcmUgc3RpbGwgc3ViamVjdCB0byB3ZWlnaHQgbWV0ZXJpbmcgYW5kUQFhZ2VuZGEgc3BhY2UsIHNhbWUgYXMgYSByZWd1bGFyIHRhc2suIElmIGEgcGVyaW9kaWMgdGFzayBmYWlscywgaXQgd2lsbCBiZSBzY2hlZHVsZWSQbm9ybWFsbHkgd2hpbGUgdGhlIHRhc2sgaXMgcmV0cnlpbmcuAFEBVGFza3Mgc2NoZWR1bGVkIGFzIGEgcmVzdWx0IG9mIGEgcmV0cnkgZm9yIGEgcGVyaW9kaWMgdGFzayBhcmUgdW5uYW1lZCwgbm9uLXBlcmlvZGljPQFjbG9uZXMgb2YgdGhlIG9yaWdpbmFsIHRhc2suIFRoZWlyIHJldHJ5IGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBkZXJpdmVkIGZyb20gdGhlTQFvcmlnaW5hbCB0YXNrJ3MgY29uZmlndXJhdGlvbiwgYnV0IHdpbGwgaGF2ZSBhIGxvd2VyIHZhbHVlIGZvciBgcmVtYWluaW5nYCB0aGFuIHRoZWRvcmlnaW5hbCBgdG90YWxfcmV0cmllc2AuMGNhbmNlbF9yZXRyeQQBEHRhc2upAgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAgEqFJlbW92ZXMgdGhlIHJldHJ5IGNvbmZpZ3VyYXRpb24gb2YgYSB0YXNrLkhjYW5jZWxfcmV0cnlfbmFtZWQEAQhpZAQBIFRhc2tOYW1lAAkEvENhbmNlbCB0aGUgcmV0cnkgY29uZmlndXJhdGlvbiBvZiBhIG5hbWVkIHRhc2suBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLlkEDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtGHBhbGxldBBDYWxsBARUAAEITHNldF92YWxpZGF0aW9uX2RhdGEEARBkYXRhXQQBVFBhcmFjaGFpbkluaGVyZW50RGF0YQAAJIBTZXQgdGhlIGN1cnJlbnQgdmFsaWRhdGlvbiBkYXRhLgBBAVRoaXMgc2hvdWxkIGJlIGludm9rZWQgZXhhY3RseSBvbmNlIHBlciBibG9jay4gSXQgd2lsbCBwYW5pYyBhdCB0aGUgZmluYWxpemF0aW9uiHBoYXNlIGlmIHRoZSBjYWxsIHdhcyBub3QgaW52b2tlZC4A0FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBJbmhlcmVudGAAIQFBcyBhIHNpZGUgZWZmZWN0LCB0aGlzIGZ1bmN0aW9uIHVwZ3JhZGVzIHRoZSBjdXJyZW50IHZhbGlkYXRpb24gZnVuY3Rpb26EaWYgdGhlIGFwcHJvcHJpYXRlIHRpbWUgaGFzIGNvbWUuYHN1ZG9fc2VuZF91cHdhcmRfbWVzc2FnZQQBHG1lc3NhZ2UUATRVcHdhcmRNZXNzYWdlAAEABA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLl0ECJRjdW11bHVzX3ByaW1pdGl2ZXNfcGFyYWNoYWluX2luaGVyZW50VFBhcmFjaGFpbkluaGVyZW50RGF0YQAAGAE8dmFsaWRhdGlvbl9kYXRhYQQBXFBlcnNpc3RlZFZhbGlkYXRpb25EYXRhAAFEcmVsYXlfY2hhaW5fc3RhdGVpBAFUc3BfdHJpZTo6U3RvcmFnZVByb29mAAFEZG93bndhcmRfbWVzc2FnZXNxBAFsVmVjPEluYm91bmREb3dud2FyZE1lc3NhZ2U+AAFMaG9yaXpvbnRhbF9tZXNzYWdlc3kEAaRCVHJlZU1hcDxQYXJhSWQsIFZlYzxJbmJvdW5kSHJtcE1lc3NhZ2U+PgABYHJlbGF5X3BhcmVudF9kZXNjZW5kYW50c40EAUBWZWM8UmVsYXlIZWFkZXI+AAFAY29sbGF0b3JfcGVlcl9pZKEEAVhPcHRpb248QXBwcm92ZWRQZWVySWQ+AABhBAxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OFxQZXJzaXN0ZWRWYWxpZGF0aW9uRGF0YQgESAEsBE4BKAAQASxwYXJlbnRfaGVhZGUEASBIZWFkRGF0YQABTHJlbGF5X3BhcmVudF9udW1iZXIoAQROAAFkcmVsYXlfcGFyZW50X3N0b3JhZ2Vfcm9vdCwBBEgAATBtYXhfcG92X3NpemUoAQx1MzIAAGUEDHRwb2xrYWRvdF9wYXJhY2hhaW5fcHJpbWl0aXZlcyhwcmltaXRpdmVzIEhlYWREYXRhAAAEABQBHFZlYzx1OD4AAGkEDBxzcF90cmllNHN0b3JhZ2VfcHJvb2YwU3RvcmFnZVByb29mAAAEASh0cmllX25vZGVzbQQBREJUcmVlU2V0PFZlYzx1OD4+AABtBAQgQlRyZWVTZXQEBFQBFAAEACQAAABxBAAAAnUEAHUECGBwb2xrYWRvdF9jb3JlX3ByaW1pdGl2ZXNYSW5ib3VuZERvd253YXJkTWVzc2FnZQQsQmxvY2tOdW1iZXIBKAAIARxzZW50X2F0KAEsQmxvY2tOdW1iZXIAAQxtc2cUATxEb3dud2FyZE1lc3NhZ2UAAHkEBCBCVHJlZU1hcAgESwHgBFYBfQQABACFBAAAAH0EAAACgQQAgQQIYHBvbGthZG90X2NvcmVfcHJpbWl0aXZlc0hJbmJvdW5kSHJtcE1lc3NhZ2UELEJsb2NrTnVtYmVyASgACAEcc2VudF9hdCgBLEJsb2NrTnVtYmVyAAEQZGF0YRQBTGFsbG9jOjp2ZWM6OlZlYzx1OD4AAIUEAAACiQQAiQQAAAQI4H0EAI0EAAACkQQAkQQQKHNwX3J1bnRpbWUcZ2VuZXJpYxhoZWFkZXIYSGVhZGVyCBhOdW1iZXIBKBBIYXNoAAAUASxwYXJlbnRfaGFzaCwBMEhhc2g6Ok91dHB1dAABGG51bWJlcmwBGE51bWJlcgABKHN0YXRlX3Jvb3QsATBIYXNoOjpPdXRwdXQAATxleHRyaW5zaWNzX3Jvb3QsATBIYXNoOjpPdXRwdXQAARhkaWdlc3SVBAEYRGlnZXN0AACVBBAoc3BfcnVudGltZRxnZW5lcmljGGRpZ2VzdBhEaWdlc3QAAAQBEGxvZ3OZBAE8VmVjPERpZ2VzdEl0ZW0+AACZBAAAAp0EAJ0EEChzcF9ydW50aW1lHGdlbmVyaWMYZGlnZXN0KERpZ2VzdEl0ZW0AARQoUHJlUnVudGltZQgAuAFEQ29uc2Vuc3VzRW5naW5lSWQAABQBHFZlYzx1OD4ABgAkQ29uc2Vuc3VzCAC4AURDb25zZW5zdXNFbmdpbmVJZAAAFAEcVmVjPHU4PgAEABBTZWFsCAC4AURDb25zZW5zdXNFbmdpbmVJZAAAFAEcVmVjPHU4PgAFABRPdGhlcgQAFAEcVmVjPHU4PgAAAGRSdW50aW1lRW52aXJvbm1lbnRVcGRhdGVkAAgAAKEEBBhPcHRpb24EBFQBhQMBCBBOb25lAAAAEFNvbWUEAIUDAAABAAClBAxYc3RhZ2luZ19wYXJhY2hhaW5faW5mbxhwYWxsZXQQQ2FsbAQEVAABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6pBAwocGFsbGV0X3hjbRhwYWxsZXQQQ2FsbAQEVAABRBBzZW5kCAEQZGVzdK0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEcbWVzc2FnZfkEAVRCb3g8VmVyc2lvbmVkWGNtPCgpPj4AAAA8dGVsZXBvcnRfYXNzZXRzEAEQZGVzdK0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnmtBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0czEGAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtKAEMdTMyAAFIEQFUZWxlcG9ydCBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byBzb21lIGRlc3RpbmF0aW9uIGNoYWluLgAdASoqVGhpcyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkOiBVc2UgYGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzYCBpbnN0ZWFkLioqAFEBRmVlIHBheW1lbnQgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgbWFkZSBmcm9tIHRoZSBhc3NldCBpbiB0aGUgYGFzc2V0c2AgdmVjdG9yIG9mYQFpbmRleCBgZmVlX2Fzc2V0X2l0ZW1gLiBUaGUgd2VpZ2h0IGxpbWl0IGZvciBmZWVzIGlzIG5vdCBwcm92aWRlZCBhbmQgdGh1cyBpcyB1bmxpbWl0ZWQstHdpdGggYWxsIGZlZXMgdGFrZW4gYXMgbmVlZGVkIGZyb20gdGhlIGFzc2V0LgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tVCAgcmVsYXkgdG8gcGFyYWNoYWluLlUBLSBgYmVuZWZpY2lhcnlgOiBBIGJlbmVmaWNpYXJ5IGxvY2F0aW9uIGZvciB0aGUgYXNzZXRzIGluIHRoZSBjb250ZXh0IG9mIGBkZXN0YC4gV2lsbJggIGdlbmVyYWxseSBiZSBhbiBgQWNjb3VudElkMzJgIHZhbHVlLlkBLSBgYXNzZXRzYDogVGhlIGFzc2V0cyB0byBiZSB3aXRoZHJhd24uIFRoaXMgc2hvdWxkIGluY2x1ZGUgdGhlIGFzc2V0cyB1c2VkIHRvIHBheSB0aGVoICBmZWUgb24gdGhlIGBkZXN0YCBjaGFpbi5NAS0gYGZlZV9hc3NldF9pdGVtYDogVGhlIGluZGV4IGludG8gYGFzc2V0c2Agb2YgdGhlIGl0ZW0gd2hpY2ggc2hvdWxkIGJlIHVzZWQgdG8gcGF5HCAgZmVlcy5ccmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHMQARBkZXN0rQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AASxiZW5lZmljaWFyea0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEYYXNzZXRzMQYBUEJveDxWZXJzaW9uZWRBc3NldHM+AAE4ZmVlX2Fzc2V0X2l0ZW0oAQx1MzIAAnhdAVRyYW5zZmVyIHNvbWUgYXNzZXRzIGZyb20gdGhlIGxvY2FsIGNoYWluIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiB0aHJvdWdoIHRoZWlyIGxvY2FsLHhkZXN0aW5hdGlvbiBvciByZW1vdGUgcmVzZXJ2ZS4APQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIGFuZCBtYXkgbm90IGJlIHRlbGVwb3J0YWJsZSB0byBgZGVzdGAuTQEgLSBgYXNzZXRzYCBoYXZlIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbk0BICAgY2hhaW4gYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWRsICAgYXNzZXRzIHRvIGBiZW5lZmljaWFyeWAuVQEgLSBgYXNzZXRzYCBoYXZlIGRlc3RpbmF0aW9uIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5hASAtIGBhc3NldHNgIGhhdmUgcmVtb3RlIHJlc2VydmU6IGJ1cm4gbG9jYWwgYXNzZXRzLCBmb3J3YXJkIFhDTSB0byByZXNlcnZlIGNoYWluIHRvIG1vdmVhASAgIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyIFhDTSB0byBgZGVzdGD0ICAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLgA9ASoqVGhpcyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkOiBVc2UgYGxpbWl0ZWRfcmVzZXJ2ZV90cmFuc2Zlcl9hc3NldHNgIGluc3RlYWQuKioAUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAuIFRoZSB3ZWlnaHQgbGltaXQgZm9yIGZlZXMgaXMgbm90IHByb3ZpZGVkIGFuZCB0aHVzIGlzIHVubGltaXRlZCy0d2l0aCBhbGwgZmVlcyB0YWtlbiBhcyBuZWVkZWQgZnJvbSB0aGUgYXNzZXQuACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZcggIGZlZSBvbiB0aGUgYGRlc3RgIChhbmQgcG9zc2libHkgcmVzZXJ2ZSkgY2hhaW5zLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLhxleGVjdXRlCAEcbWVzc2FnZTUGAbRCb3g8VmVyc2lvbmVkWGNtPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPj4AAShtYXhfd2VpZ2h05AEYV2VpZ2h0AAMg0EV4ZWN1dGUgYW4gWENNIG1lc3NhZ2UgZnJvbSBhIGxvY2FsLCBzaWduZWQsIG9yaWdpbi4ATQFBbiBldmVudCBpcyBkZXBvc2l0ZWQgaW5kaWNhdGluZyB3aGV0aGVyIGBtc2dgIGNvdWxkIGJlIGV4ZWN1dGVkIGNvbXBsZXRlbHkgb3Igb25seShwYXJ0aWFsbHkuAF0BTm8gbW9yZSB0aGFuIGBtYXhfd2VpZ2h0YCB3aWxsIGJlIHVzZWQgaW4gaXRzIGF0dGVtcHRlZCBleGVjdXRpb24uIElmIHRoaXMgaXMgbGVzcyB0aGFuQQF0aGUgbWF4aW11bSBhbW91bnQgb2Ygd2VpZ2h0IHRoYXQgdGhlIG1lc3NhZ2UgY291bGQgdGFrZSB0byBiZSBleGVjdXRlZCwgdGhlbiBub3xleGVjdXRpb24gYXR0ZW1wdCB3aWxsIGJlIG1hZGUuRGZvcmNlX3hjbV92ZXJzaW9uCAEgbG9jYXRpb26cATRCb3g8TG9jYXRpb24+AAEcdmVyc2lvbigBKFhjbVZlcnNpb24ABBhJAUV4dG9sbCB0aGF0IGEgcGFydGljdWxhciBkZXN0aW5hdGlvbiBjYW4gYmUgY29tbXVuaWNhdGVkIHdpdGggdGhyb3VnaCBhIHBhcnRpY3VsYXI8dmVyc2lvbiBvZiBYQ00uANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4u2C0gYGxvY2F0aW9uYDogVGhlIGRlc3RpbmF0aW9uIHRoYXQgaXMgYmVpbmcgZGVzY3JpYmVkLhEBLSBgeGNtX3ZlcnNpb25gOiBUaGUgbGF0ZXN0IHZlcnNpb24gb2YgWENNIHRoYXQgYGxvY2F0aW9uYCBzdXBwb3J0cy5kZm9yY2VfZGVmYXVsdF94Y21fdmVyc2lvbgQBRG1heWJlX3hjbV92ZXJzaW9udAFIT3B0aW9uPFhjbVZlcnNpb24+AAUUWQFTZXQgYSBzYWZlIFhDTSB2ZXJzaW9uICh0aGUgdmVyc2lvbiB0aGF0IFhDTSBzaG91bGQgYmUgZW5jb2RlZCB3aXRoIGlmIHRoZSBtb3N0IHJlY2VudLR2ZXJzaW9uIGEgZGVzdGluYXRpb24gY2FuIGFjY2VwdCBpcyB1bmtub3duKS4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi45AS0gYG1heWJlX3hjbV92ZXJzaW9uYDogVGhlIGRlZmF1bHQgWENNIGVuY29kaW5nIHZlcnNpb24sIG9yIGBOb25lYCB0byBkaXNhYmxlLnhmb3JjZV9zdWJzY3JpYmVfdmVyc2lvbl9ub3RpZnkEASBsb2NhdGlvbq0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAYQOQFBc2sgYSBsb2NhdGlvbiB0byBub3RpZnkgdXMgcmVnYXJkaW5nIHRoZWlyIFhDTSB2ZXJzaW9uIGFuZCBhbnkgY2hhbmdlcyB0byBpdC4A3C0gYG9yaWdpbmA6IE11c3QgYmUgYW4gb3JpZ2luIHNwZWNpZmllZCBieSBBZG1pbk9yaWdpbi5ZAS0gYGxvY2F0aW9uYDogVGhlIGxvY2F0aW9uIHRvIHdoaWNoIHdlIHNob3VsZCBzdWJzY3JpYmUgZm9yIFhDTSB2ZXJzaW9uIG5vdGlmaWNhdGlvbnMugGZvcmNlX3Vuc3Vic2NyaWJlX3ZlcnNpb25fbm90aWZ5BAEgbG9jYXRpb26tBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAHGEkBUmVxdWlyZSB0aGF0IGEgcGFydGljdWxhciBkZXN0aW5hdGlvbiBzaG91bGQgbm8gbG9uZ2VyIG5vdGlmeSB1cyByZWdhcmRpbmcgYW55IFhDTUB2ZXJzaW9uIGNoYW5nZXMuANwtIGBvcmlnaW5gOiBNdXN0IGJlIGFuIG9yaWdpbiBzcGVjaWZpZWQgYnkgQWRtaW5PcmlnaW4uPQEtIGBsb2NhdGlvbmA6IFRoZSBsb2NhdGlvbiB0byB3aGljaCB3ZSBhcmUgY3VycmVudGx5IHN1YnNjcmliZWQgZm9yIFhDTSB2ZXJzaW9uqCAgbm90aWZpY2F0aW9ucyB3aGljaCB3ZSBubyBsb25nZXIgZGVzaXJlLnxsaW1pdGVkX3Jlc2VydmVfdHJhbnNmZXJfYXNzZXRzFAEQZGVzdK0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnmtBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0czEGAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtKAEMdTMyAAEwd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0AAh4XQFUcmFuc2ZlciBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdGhyb3VnaCB0aGVpciBsb2NhbCx4ZGVzdGluYXRpb24gb3IgcmVtb3RlIHJlc2VydmUuAD0BYGFzc2V0c2AgbXVzdCBoYXZlIHNhbWUgcmVzZXJ2ZSBsb2NhdGlvbiBhbmQgbWF5IG5vdCBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLk0BIC0gYGFzc2V0c2AgaGF2ZSBsb2NhbCByZXNlcnZlOiB0cmFuc2ZlciBhc3NldHMgdG8gc292ZXJlaWduIGFjY291bnQgb2YgZGVzdGluYXRpb25NASAgIGNoYWluIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIFhDTSB0byBgZGVzdGAgdG8gbWludCBhbmQgZGVwb3NpdCByZXNlcnZlLWJhc2VkbCAgIGFzc2V0cyB0byBgYmVuZWZpY2lhcnlgLlUBIC0gYGFzc2V0c2AgaGF2ZSBkZXN0aW5hdGlvbiByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cyBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiB0b1kBICAgYGRlc3RgIGNoYWluIHRvIHdpdGhkcmF3IHRoZSByZXNlcnZlIGFzc2V0cyBmcm9tIHRoaXMgY2hhaW4ncyBzb3ZlcmVpZ24gYWNjb3VudCBhbmSEICAgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuYQEgLSBgYXNzZXRzYCBoYXZlIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlYQEgICByZXNlcnZlcyBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3Rg9CAgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2ZhAWluZGV4IGBmZWVfYXNzZXRfaXRlbWAsIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgIG9mIHdlaWdodC4gSWYgbW9yZSB3ZWlnaHRZAWlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suACkBLSBgb3JpZ2luYDogTXVzdCBiZSBjYXBhYmxlIG9mIHdpdGhkcmF3aW5nIHRoZSBgYXNzZXRzYCBhbmQgZXhlY3V0aW5nIFhDTS4lAS0gYGRlc3RgOiBEZXN0aW5hdGlvbiBjb250ZXh0IGZvciB0aGUgYXNzZXRzLiBXaWxsIHR5cGljYWxseSBiZSBgW1BhcmVudCxhASAgUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgW1BhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb21UICByZWxheSB0byBwYXJhY2hhaW4uVQEtIGBiZW5lZmljaWFyeWA6IEEgYmVuZWZpY2lhcnkgbG9jYXRpb24gZm9yIHRoZSBhc3NldHMgaW4gdGhlIGNvbnRleHQgb2YgYGRlc3RgLiBXaWxsmCAgZ2VuZXJhbGx5IGJlIGFuIGBBY2NvdW50SWQzMmAgdmFsdWUuWQEtIGBhc3NldHNgOiBUaGUgYXNzZXRzIHRvIGJlIHdpdGhkcmF3bi4gVGhpcyBzaG91bGQgaW5jbHVkZSB0aGUgYXNzZXRzIHVzZWQgdG8gcGF5IHRoZcggIGZlZSBvbiB0aGUgYGRlc3RgIChhbmQgcG9zc2libHkgcmVzZXJ2ZSkgY2hhaW5zLk0BLSBgZmVlX2Fzc2V0X2l0ZW1gOiBUaGUgaW5kZXggaW50byBgYXNzZXRzYCBvZiB0aGUgaXRlbSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBwYXkcICBmZWVzLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuXGxpbWl0ZWRfdGVsZXBvcnRfYXNzZXRzFAEQZGVzdK0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEsYmVuZWZpY2lhcnmtBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABGGFzc2V0czEGAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABOGZlZV9hc3NldF9pdGVtKAEMdTMyAAEwd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0AAlIEQFUZWxlcG9ydCBzb21lIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byBzb21lIGRlc3RpbmF0aW9uIGNoYWluLgBRAUZlZSBwYXltZW50IG9uIHRoZSBkZXN0aW5hdGlvbiBzaWRlIGlzIG1hZGUgZnJvbSB0aGUgYXNzZXQgaW4gdGhlIGBhc3NldHNgIHZlY3RvciBvZmEBaW5kZXggYGZlZV9hc3NldF9pdGVtYCwgdXAgdG8gZW5vdWdoIHRvIHBheSBmb3IgYHdlaWdodF9saW1pdGAgb2Ygd2VpZ2h0LiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4AKQEtIGBvcmlnaW5gOiBNdXN0IGJlIGNhcGFibGUgb2Ygd2l0aGRyYXdpbmcgdGhlIGBhc3NldHNgIGFuZCBleGVjdXRpbmcgWENNLiUBLSBgZGVzdGA6IERlc3RpbmF0aW9uIGNvbnRleHQgZm9yIHRoZSBhc3NldHMuIFdpbGwgdHlwaWNhbGx5IGJlIGBbUGFyZW50LGEBICBQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tIHBhcmFjaGFpbiB0byBwYXJhY2hhaW4sIG9yIGBbUGFyYWNoYWluKC4uKV1gIHRvIHNlbmQgZnJvbVQgIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlaCAgZmVlIG9uIHRoZSBgZGVzdGAgY2hhaW4uTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS5AZm9yY2Vfc3VzcGVuc2lvbgQBJHN1c3BlbmRlZEQBEGJvb2wAChD0U2V0IG9yIHVuc2V0IHRoZSBnbG9iYWwgc3VzcGVuc2lvbiBzdGF0ZSBvZiB0aGUgWENNIGV4ZWN1dG9yLgDcLSBgb3JpZ2luYDogTXVzdCBiZSBhbiBvcmlnaW4gc3BlY2lmaWVkIGJ5IEFkbWluT3JpZ2luLtAtIGBzdXNwZW5kZWRgOiBgdHJ1ZWAgdG8gc3VzcGVuZCwgYGZhbHNlYCB0byByZXN1bWUuPHRyYW5zZmVyX2Fzc2V0cxQBEGRlc3StBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABLGJlbmVmaWNpYXJ5rQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHMxBgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAThmZWVfYXNzZXRfaXRlbSgBDHUzMgABMHdlaWdodF9saW1pdGUFASxXZWlnaHRMaW1pdAALhF0BVHJhbnNmZXIgc29tZSBhc3NldHMgZnJvbSB0aGUgbG9jYWwgY2hhaW4gdG8gdGhlIGRlc3RpbmF0aW9uIGNoYWluIHRocm91Z2ggdGhlaXIgbG9jYWws0GRlc3RpbmF0aW9uIG9yIHJlbW90ZSByZXNlcnZlLCBvciB0aHJvdWdoIHRlbGVwb3J0cy4AUQFGZWUgcGF5bWVudCBvbiB0aGUgZGVzdGluYXRpb24gc2lkZSBpcyBtYWRlIGZyb20gdGhlIGFzc2V0IGluIHRoZSBgYXNzZXRzYCB2ZWN0b3Igb2Y1AWluZGV4IGBmZWVfYXNzZXRfaXRlbWAgKGhlbmNlIHJlZmVycmVkIHRvIGFzIGBmZWVzYCksIHVwIHRvIGVub3VnaCB0byBwYXkgZm9yQQFgd2VpZ2h0X2xpbWl0YCBvZiB3ZWlnaHQuIElmIG1vcmUgd2VpZ2h0IGlzIG5lZWRlZCB0aGFuIGB3ZWlnaHRfbGltaXRgLCB0aGVuIHRoZdxvcGVyYXRpb24gd2lsbCBmYWlsIGFuZCB0aGUgc2VudCBhc3NldHMgbWF5IGJlIGF0IHJpc2suAGEBYGFzc2V0c2AgKGV4Y2x1ZGluZyBgZmVlc2ApIG11c3QgaGF2ZSBzYW1lIHJlc2VydmUgbG9jYXRpb24gb3Igb3RoZXJ3aXNlIGJlIHRlbGVwb3J0YWJsZbB0byBgZGVzdGAsIG5vIGxpbWl0YXRpb25zIGltcG9zZWQgb24gYGZlZXNgLk0BIC0gZm9yIGxvY2FsIHJlc2VydmU6IHRyYW5zZmVyIGFzc2V0cyB0byBzb3ZlcmVpZ24gYWNjb3VudCBvZiBkZXN0aW5hdGlvbiBjaGFpbiBhbmRNASAgIGZvcndhcmQgYSBub3RpZmljYXRpb24gWENNIHRvIGBkZXN0YCB0byBtaW50IGFuZCBkZXBvc2l0IHJlc2VydmUtYmFzZWQgYXNzZXRzIHRvRCAgIGBiZW5lZmljaWFyeWAuYQEgLSBmb3IgZGVzdGluYXRpb24gcmVzZXJ2ZTogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgYSBub3RpZmljYXRpb24gdG8gYGRlc3RgIGNoYWluWQEgICB0byB3aXRoZHJhdyB0aGUgcmVzZXJ2ZSBhc3NldHMgZnJvbSB0aGlzIGNoYWluJ3Mgc292ZXJlaWduIGFjY291bnQgYW5kIGRlcG9zaXQgdGhlbVAgICB0byBgYmVuZWZpY2lhcnlgLl0BIC0gZm9yIHJlbW90ZSByZXNlcnZlOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gcmVzZXJ2ZSBjaGFpbiB0byBtb3ZlIHJlc2VydmVzXQEgICBmcm9tIHRoaXMgY2hhaW4ncyBTQSB0byBgZGVzdGAgY2hhaW4ncyBTQSwgYW5kIGZvcndhcmQgYW5vdGhlciBYQ00gdG8gYGRlc3RgIHRvIG1pbnTUICAgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5RASAtIGZvciB0ZWxlcG9ydHM6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIFhDTSB0byBgZGVzdGAgY2hhaW4gdG8gbWludC90ZWxlcG9ydLAgICBhc3NldHMgYW5kIGRlcG9zaXQgdGhlbSB0byBgYmVuZWZpY2lhcnlgLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uLQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFgyKFBhcmVudCxVASAgUGFyYWNoYWluKC4uKSlgIHRvIHNlbmQgZnJvbSBwYXJhY2hhaW4gdG8gcGFyYWNoYWluLCBvciBgWDEoUGFyYWNoYWluKC4uKSlgIHRvIHNlbmRoICBmcm9tIHJlbGF5IHRvIHBhcmFjaGFpbi5VAS0gYGJlbmVmaWNpYXJ5YDogQSBiZW5lZmljaWFyeSBsb2NhdGlvbiBmb3IgdGhlIGFzc2V0cyBpbiB0aGUgY29udGV4dCBvZiBgZGVzdGAuIFdpbGyYICBnZW5lcmFsbHkgYmUgYW4gYEFjY291bnRJZDMyYCB2YWx1ZS5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuTQEtIGBmZWVfYXNzZXRfaXRlbWA6IFRoZSBpbmRleCBpbnRvIGBhc3NldHNgIG9mIHRoZSBpdGVtIHdoaWNoIHNob3VsZCBiZSB1c2VkIHRvIHBheRwgIGZlZXMuRQEtIGB3ZWlnaHRfbGltaXRgOiBUaGUgcmVtb3RlLXNpZGUgd2VpZ2h0IGxpbWl0LCBpZiBhbnksIGZvciB0aGUgWENNIGZlZSBwdXJjaGFzZS4wY2xhaW1fYXNzZXRzCAEYYXNzZXRzMQYBUEJveDxWZXJzaW9uZWRBc3NldHM+AAEsYmVuZWZpY2lhcnmtBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgAMGFUBQ2xhaW1zIGFzc2V0cyB0cmFwcGVkIG9uIHRoaXMgcGFsbGV0IGJlY2F1c2Ugb2YgbGVmdG92ZXIgYXNzZXRzIGR1cmluZyBYQ00gZXhlY3V0aW9uLgCsLSBgb3JpZ2luYDogQW55b25lIGNhbiBjYWxsIHRoaXMgZXh0cmluc2ljLl0BLSBgYXNzZXRzYDogVGhlIGV4YWN0IGFzc2V0cyB0aGF0IHdlcmUgdHJhcHBlZC4gVXNlIHRoZSB2ZXJzaW9uIHRvIHNwZWNpZnkgd2hhdCB2ZXJzaW9umHdhcyB0aGUgbGF0ZXN0IHdoZW4gdGhleSB3ZXJlIHRyYXBwZWQuRQEtIGBiZW5lZmljaWFyeWA6IFRoZSBsb2NhdGlvbi9hY2NvdW50IHdoZXJlIHRoZSBjbGFpbWVkIGFzc2V0cyB3aWxsIGJlIGRlcG9zaXRlZC6MdHJhbnNmZXJfYXNzZXRzX3VzaW5nX3R5cGVfYW5kX3RoZW4cARBkZXN0rQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AARhhc3NldHMxBgFQQm94PFZlcnNpb25lZEFzc2V0cz4AAVBhc3NldHNfdHJhbnNmZXJfdHlwZWEGAURCb3g8VHJhbnNmZXJUeXBlPgABOHJlbW90ZV9mZWVzX2lkZQYBVEJveDxWZXJzaW9uZWRBc3NldElkPgABSGZlZXNfdHJhbnNmZXJfdHlwZWEGAURCb3g8VHJhbnNmZXJUeXBlPgABSGN1c3RvbV94Y21fb25fZGVzdPkEAVRCb3g8VmVyc2lvbmVkWGNtPCgpPj4AATB3ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQADcBVAVRyYW5zZmVyIGFzc2V0cyBmcm9tIHRoZSBsb2NhbCBjaGFpbiB0byB0aGUgZGVzdGluYXRpb24gY2hhaW4gdXNpbmcgZXhwbGljaXQgdHJhbnNmZXJodHlwZXMgZm9yIGFzc2V0cyBhbmQgZmVlcy4AWQFgYXNzZXRzYCBtdXN0IGhhdmUgc2FtZSByZXNlcnZlIGxvY2F0aW9uIG9yIG1heSBiZSB0ZWxlcG9ydGFibGUgdG8gYGRlc3RgLiBDYWxsZXIgbXVzdOxwcm92aWRlIHRoZSBgYXNzZXRzX3RyYW5zZmVyX3R5cGVgIHRvIGJlIHVzZWQgZm9yIGBhc3NldHNgOlEBIC0gYFRyYW5zZmVyVHlwZTo6TG9jYWxSZXNlcnZlYDogdHJhbnNmZXIgYXNzZXRzIHRvIHNvdmVyZWlnbiBhY2NvdW50IG9mIGRlc3RpbmF0aW9uTQEgICBjaGFpbiBhbmQgZm9yd2FyZCBhIG5vdGlmaWNhdGlvbiBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZGwgICBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC5ZASAtIGBUcmFuc2ZlclR5cGU6OkRlc3RpbmF0aW9uUmVzZXJ2ZWA6IGJ1cm4gbG9jYWwgYXNzZXRzIGFuZCBmb3J3YXJkIGEgbm90aWZpY2F0aW9uIHRvWQEgICBgZGVzdGAgY2hhaW4gdG8gd2l0aGRyYXcgdGhlIHJlc2VydmUgYXNzZXRzIGZyb20gdGhpcyBjaGFpbidzIHNvdmVyZWlnbiBhY2NvdW50IGFuZIQgICBkZXBvc2l0IHRoZW0gdG8gYGJlbmVmaWNpYXJ5YC5ZASAtIGBUcmFuc2ZlclR5cGU6OlJlbW90ZVJlc2VydmUocmVzZXJ2ZSlgOiBidXJuIGxvY2FsIGFzc2V0cywgZm9yd2FyZCBYQ00gdG8gYHJlc2VydmVgYQEgICBjaGFpbiB0byBtb3ZlIHJlc2VydmVzIGZyb20gdGhpcyBjaGFpbidzIFNBIHRvIGBkZXN0YCBjaGFpbidzIFNBLCBhbmQgZm9yd2FyZCBhbm90aGVyVQEgICBYQ00gdG8gYGRlc3RgIHRvIG1pbnQgYW5kIGRlcG9zaXQgcmVzZXJ2ZS1iYXNlZCBhc3NldHMgdG8gYGJlbmVmaWNpYXJ5YC4gVHlwaWNhbGx5lCAgIHRoZSByZW1vdGUgYHJlc2VydmVgIGlzIEFzc2V0IEh1Yi5FASAtIGBUcmFuc2ZlclR5cGU6OlRlbGVwb3J0YDogYnVybiBsb2NhbCBhc3NldHMgYW5kIGZvcndhcmQgWENNIHRvIGBkZXN0YCBjaGFpbiB0b+ggICBtaW50L3RlbGVwb3J0IGFzc2V0cyBhbmQgZGVwb3NpdCB0aGVtIHRvIGBiZW5lZmljaWFyeWAuAFUBT24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLCBhcyB3ZWxsIGFzIGFueSBpbnRlcm1lZGlhcnkgaG9wcywgYEJ1eUV4ZWN1dGlvbmAgaXMgdXNlZCB0byEBYnV5IGV4ZWN1dGlvbiB1c2luZyB0cmFuc2ZlcnJlZCBgYXNzZXRzYCBpZGVudGlmaWVkIGJ5IGByZW1vdGVfZmVlc19pZGAuWQFNYWtlIHN1cmUgZW5vdWdoIG9mIHRoZSBzcGVjaWZpZWQgYHJlbW90ZV9mZWVzX2lkYCBhc3NldCBpcyBpbmNsdWRlZCBpbiB0aGUgZ2l2ZW4gbGlzdGEBb2YgYGFzc2V0c2AuIGByZW1vdGVfZmVlc19pZGAgc2hvdWxkIGJlIGVub3VnaCB0byBwYXkgZm9yIGB3ZWlnaHRfbGltaXRgLiBJZiBtb3JlIHdlaWdodFkBaXMgbmVlZGVkIHRoYW4gYHdlaWdodF9saW1pdGAsIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgYW5kIHRoZSBzZW50IGFzc2V0cyBtYXkgYmUgYXQgcmlzay4ARQFgcmVtb3RlX2ZlZXNfaWRgIG1heSB1c2UgZGlmZmVyZW50IHRyYW5zZmVyIHR5cGUgdGhhbiByZXN0IG9mIGBhc3NldHNgIGFuZCBjYW4gYmWcc3BlY2lmaWVkIHRocm91Z2ggYGZlZXNfdHJhbnNmZXJfdHlwZWAuAGEBVGhlIGNhbGxlciBuZWVkcyB0byBzcGVjaWZ5IHdoYXQgc2hvdWxkIGhhcHBlbiB0byB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzIG9uY2UgdGhleSByZWFjaEEBdGhlIGBkZXN0YCBjaGFpbi4gVGhpcyBpcyBkb25lIHRocm91Z2ggdGhlIGBjdXN0b21feGNtX29uX2Rlc3RgIHBhcmFtZXRlciwgd2hpY2j8Y29udGFpbnMgdGhlIGluc3RydWN0aW9ucyB0byBleGVjdXRlIG9uIGBkZXN0YCBhcyBhIGZpbmFsIHN0ZXAufCAgVGhpcyBpcyB1c3VhbGx5IGFzIHNpbXBsZSBhczpRASAgYFhjbSh2ZWMhW0RlcG9zaXRBc3NldCB7IGFzc2V0czogV2lsZChBbGxDb3VudGVkKGFzc2V0cy5sZW4oKSkpLCBiZW5lZmljaWFyeSB9XSlgLDEBICBidXQgY291bGQgYmUgc29tZXRoaW5nIG1vcmUgZXhvdGljIGxpa2Ugc2VuZGluZyB0aGUgYGFzc2V0c2AgZXZlbiBmdXJ0aGVyLgApAS0gYG9yaWdpbmA6IE11c3QgYmUgY2FwYWJsZSBvZiB3aXRoZHJhd2luZyB0aGUgYGFzc2V0c2AgYW5kIGV4ZWN1dGluZyBYQ00uJQEtIGBkZXN0YDogRGVzdGluYXRpb24gY29udGV4dCBmb3IgdGhlIGFzc2V0cy4gV2lsbCB0eXBpY2FsbHkgYmUgYFtQYXJlbnQsYQEgIFBhcmFjaGFpbiguLildYCB0byBzZW5kIGZyb20gcGFyYWNoYWluIHRvIHBhcmFjaGFpbiwgb3IgYFtQYXJhY2hhaW4oLi4pXWAgdG8gc2VuZCBmcm9tPQEgIHJlbGF5IHRvIHBhcmFjaGFpbiwgb3IgYChwYXJlbnRzOiAyLCAoR2xvYmFsQ29uc2Vuc3VzKC4uKSwgLi4pKWAgdG8gc2VuZCBmcm9t9CAgcGFyYWNoYWluIGFjcm9zcyBhIGJyaWRnZSB0byBhbm90aGVyIGVjb3N5c3RlbSBkZXN0aW5hdGlvbi5ZAS0gYGFzc2V0c2A6IFRoZSBhc3NldHMgdG8gYmUgd2l0aGRyYXduLiBUaGlzIHNob3VsZCBpbmNsdWRlIHRoZSBhc3NldHMgdXNlZCB0byBwYXkgdGhlyCAgZmVlIG9uIHRoZSBgZGVzdGAgKGFuZCBwb3NzaWJseSByZXNlcnZlKSBjaGFpbnMuPQEtIGBhc3NldHNfdHJhbnNmZXJfdHlwZWA6IFRoZSBYQ00gYFRyYW5zZmVyVHlwZWAgdXNlZCB0byB0cmFuc2ZlciB0aGUgYGFzc2V0c2AuIQEtIGByZW1vdGVfZmVlc19pZGA6IE9uZSBvZiB0aGUgaW5jbHVkZWQgYGFzc2V0c2AgdG8gYmUgdXNlZCB0byBwYXkgZmVlcy5JAS0gYGZlZXNfdHJhbnNmZXJfdHlwZWA6IFRoZSBYQ00gYFRyYW5zZmVyVHlwZWAgdXNlZCB0byB0cmFuc2ZlciB0aGUgYGZlZXNgIGFzc2V0cy5ZAS0gYGN1c3RvbV94Y21fb25fZGVzdGA6IFRoZSBYQ00gdG8gYmUgZXhlY3V0ZWQgb24gYGRlc3RgIGNoYWluIGFzIHRoZSBsYXN0IHN0ZXAgb2YgdGhlWQEgIHRyYW5zZmVyLCB3aGljaCBhbHNvIGRldGVybWluZXMgd2hhdCBoYXBwZW5zIHRvIHRoZSBhc3NldHMgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLkUBLSBgd2VpZ2h0X2xpbWl0YDogVGhlIHJlbW90ZS1zaWRlIHdlaWdodCBsaW1pdCwgaWYgYW55LCBmb3IgdGhlIFhDTSBmZWUgcHVyY2hhc2UuUGFkZF9hdXRob3JpemVkX2FsaWFzCAEcYWxpYXNlcq0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEcZXhwaXJlc1kDASxPcHRpb248dTY0PgAOLF0BQXV0aG9yaXplIGFub3RoZXIgYGFsaWFzZXJgIGxvY2F0aW9uIHRvIGFsaWFzIGludG8gdGhlIGxvY2FsIGBvcmlnaW5gIG1ha2luZyB0aGlzIGNhbGwuKQFUaGUgYGFsaWFzZXJgIGlzIG9ubHkgYXV0aG9yaXplZCB1bnRpbCB0aGUgcHJvdmlkZWQgYGV4cGlyeWAgYmxvY2sgbnVtYmVyLkkBVGhlIGNhbGwgY2FuIGFsc28gYmUgdXNlZCBmb3IgYSBwcmV2aW91c2x5IGF1dGhvcml6ZWQgYWxpYXMgaW4gb3JkZXIgdG8gdXBkYXRlIGl0c1hgZXhwaXJ5YCBibG9jayBudW1iZXIuAFEBVXN1YWxseSB1c2VmdWwgdG8gYWxsb3cgeW91ciBsb2NhbCBhY2NvdW50IHRvIGJlIGFsaWFzZWQgaW50byBmcm9tIGEgcmVtb3RlIGxvY2F0aW9u9GFsc28gdW5kZXIgeW91ciBjb250cm9sIChsaWtlIHlvdXIgYWNjb3VudCBvbiBhbm90aGVyIGNoYWluKS4AUQFXQVJOSU5HOiBtYWtlIHN1cmUgdGhlIGNhbGxlciBgb3JpZ2luYCAoeW91KSB0cnVzdHMgdGhlIGBhbGlhc2VyYCBsb2NhdGlvbiB0byBhY3QgaW5ZAXRoZWlyL3lvdXIgbmFtZS4gT25jZSBhdXRob3JpemVkIHVzaW5nIHRoaXMgY2FsbCwgdGhlIGBhbGlhc2VyYCBjYW4gZnJlZWx5IGltcGVyc29uYXRl1GBvcmlnaW5gIGluIFhDTSBwcm9ncmFtcyBleGVjdXRlZCBvbiB0aGUgbG9jYWwgY2hhaW4uXHJlbW92ZV9hdXRob3JpemVkX2FsaWFzBAEcYWxpYXNlcq0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AA8IXQFSZW1vdmUgYSBwcmV2aW91c2x5IGF1dGhvcml6ZWQgYGFsaWFzZXJgIGZyb20gdGhlIGxpc3Qgb2YgbG9jYXRpb25zIHRoYXQgY2FuIGFsaWFzIGludG+QdGhlIGxvY2FsIGBvcmlnaW5gIG1ha2luZyB0aGlzIGNhbGwudHJlbW92ZV9hbGxfYXV0aG9yaXplZF9hbGlhc2VzABAISQFSZW1vdmUgYWxsIHByZXZpb3VzbHkgYXV0aG9yaXplZCBgYWxpYXNlcmBzIHRoYXQgY2FuIGFsaWFzIGludG8gdGhlIGxvY2FsIGBvcmlnaW5gRG1ha2luZyB0aGlzIGNhbGwuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLq0ECAx4Y21EVmVyc2lvbmVkTG9jYXRpb24AAQwIVjMEALEEAUR2Mzo6TXVsdGlMb2NhdGlvbgADAAhWNAQAxQQBMHY0OjpMb2NhdGlvbgAEAAhWNQQAnAEwdjU6OkxvY2F0aW9uAAUAALEEECxzdGFnaW5nX3hjbQh2MzRtdWx0aWxvY2F0aW9uNE11bHRpTG9jYXRpb24AAAgBHHBhcmVudHMIAQh1OAABIGludGVyaW9ytQQBJEp1bmN0aW9ucwAAtQQQDHhjbQh2MyRqdW5jdGlvbnMkSnVuY3Rpb25zAAEkEEhlcmUAAAAIWDEEALkEASBKdW5jdGlvbgABAAhYMggAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AAgAIWDMMALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AAwAIWDQQALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAEAAhYNRQAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24ABQAIWDYYALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24ABgAIWDccALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAHAAhYOCAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24AALkEASBKdW5jdGlvbgAAuQQBIEp1bmN0aW9uAAC5BAEgSnVuY3Rpb24ACAAAuQQQDHhjbQh2MyBqdW5jdGlvbiBKdW5jdGlvbgABKCRQYXJhY2hhaW4EAGwBDHUzMgAAACxBY2NvdW50SWQzMggBHG5ldHdvcmu9BAFET3B0aW9uPE5ldHdvcmtJZD4AAQhpZAQBIFt1ODsgMzJdAAEAOEFjY291bnRJbmRleDY0CAEcbmV0d29ya70EAURPcHRpb248TmV0d29ya0lkPgABFGluZGV4NAEMdTY0AAIAMEFjY291bnRLZXkyMAgBHG5ldHdvcmu9BAFET3B0aW9uPE5ldHdvcmtJZD4AAQxrZXlcASBbdTg7IDIwXQADADhQYWxsZXRJbnN0YW5jZQQACAEIdTgABAAwR2VuZXJhbEluZGV4BAA8ARB1MTI4AAUAKEdlbmVyYWxLZXkIARhsZW5ndGgIAQh1OAABEGRhdGEEASBbdTg7IDMyXQAGACRPbmx5Q2hpbGQABwAkUGx1cmFsaXR5CAEIaWS0ARhCb2R5SWQAARBwYXJ0vAEgQm9keVBhcnQACAA8R2xvYmFsQ29uc2Vuc3VzBADBBAEkTmV0d29ya0lkAAkAAL0EBBhPcHRpb24EBFQBwQQBCBBOb25lAAAAEFNvbWUEAMEEAAABAADBBBAMeGNtCHYzIGp1bmN0aW9uJE5ldHdvcmtJZAABLCRCeUdlbmVzaXMEAAQBIFt1ODsgMzJdAAAAGEJ5Rm9yawgBMGJsb2NrX251bWJlchgBDHU2NAABKGJsb2NrX2hhc2gEASBbdTg7IDMyXQABACBQb2xrYWRvdAACABhLdXNhbWEAAwAcV2VzdGVuZAAEABhSb2NvY28ABQAYV29jb2NvAAYAIEV0aGVyZXVtBAEgY2hhaW5faWQ0AQx1NjQABwAsQml0Y29pbkNvcmUACAAsQml0Y29pbkNhc2gACQBAUG9sa2Fkb3RCdWxsZXRpbgAKAADFBBAsc3RhZ2luZ194Y20IdjQgbG9jYXRpb24gTG9jYXRpb24AAAgBHHBhcmVudHMIAQh1OAABIGludGVyaW9yyQQBJEp1bmN0aW9ucwAAyQQQLHN0YWdpbmdfeGNtCHY0JGp1bmN0aW9ucyRKdW5jdGlvbnMAASQQSGVyZQAAAAhYMQQAzQQBSEFyYzxbSnVuY3Rpb247IDFdPgABAAhYMgQA3QQBSEFyYzxbSnVuY3Rpb247IDJdPgACAAhYMwQA4QQBSEFyYzxbSnVuY3Rpb247IDNdPgADAAhYNAQA5QQBSEFyYzxbSnVuY3Rpb247IDRdPgAEAAhYNQQA6QQBSEFyYzxbSnVuY3Rpb247IDVdPgAFAAhYNgQA7QQBSEFyYzxbSnVuY3Rpb247IDZdPgAGAAhYNwQA8QQBSEFyYzxbSnVuY3Rpb247IDddPgAHAAhYOAQA9QQBSEFyYzxbSnVuY3Rpb247IDhdPgAIAADNBAAAAwEAAADRBADRBBAsc3RhZ2luZ194Y20IdjQganVuY3Rpb24gSnVuY3Rpb24AASgkUGFyYWNoYWluBABsAQx1MzIAAAAsQWNjb3VudElkMzIIARxuZXR3b3Jr1QQBRE9wdGlvbjxOZXR3b3JrSWQ+AAEIaWQEASBbdTg7IDMyXQABADhBY2NvdW50SW5kZXg2NAgBHG5ldHdvcmvVBAFET3B0aW9uPE5ldHdvcmtJZD4AARRpbmRleDQBDHU2NAACADBBY2NvdW50S2V5MjAIARxuZXR3b3Jr1QQBRE9wdGlvbjxOZXR3b3JrSWQ+AAEMa2V5XAEgW3U4OyAyMF0AAwA4UGFsbGV0SW5zdGFuY2UEAAgBCHU4AAQAMEdlbmVyYWxJbmRleAQAPAEQdTEyOAAFAChHZW5lcmFsS2V5CAEYbGVuZ3RoCAEIdTgAARBkYXRhBAEgW3U4OyAzMl0ABgAkT25seUNoaWxkAAcAJFBsdXJhbGl0eQgBCGlktAEYQm9keUlkAAEQcGFydLwBIEJvZHlQYXJ0AAgAPEdsb2JhbENvbnNlbnN1cwQA2QQBJE5ldHdvcmtJZAAJAADVBAQYT3B0aW9uBARUAdkEAQgQTm9uZQAAABBTb21lBADZBAAAAQAA2QQQLHN0YWdpbmdfeGNtCHY0IGp1bmN0aW9uJE5ldHdvcmtJZAABLCRCeUdlbmVzaXMEAAQBIFt1ODsgMzJdAAAAGEJ5Rm9yawgBMGJsb2NrX251bWJlchgBDHU2NAABKGJsb2NrX2hhc2gEASBbdTg7IDMyXQABACBQb2xrYWRvdAACABhLdXNhbWEAAwAcV2VzdGVuZAAEABhSb2NvY28ABQAYV29jb2NvAAYAIEV0aGVyZXVtBAEgY2hhaW5faWQ0AQx1NjQABwAsQml0Y29pbkNvcmUACAAsQml0Y29pbkNhc2gACQBAUG9sa2Fkb3RCdWxsZXRpbgAKAADdBAAAAwIAAADRBADhBAAAAwMAAADRBADlBAAAAwQAAADRBADpBAAAAwUAAADRBADtBAAAAwYAAADRBADxBAAAAwcAAADRBAD1BAAAAwgAAADRBAD5BAgMeGNtMFZlcnNpb25lZFhjbQQsUnVudGltZUNhbGwAAQwIVjMEAP0EAVB2Mzo6WGNtPFJ1bnRpbWVDYWxsPgADAAhWNAQAaQUBUHY0OjpYY208UnVudGltZUNhbGw+AAQACFY1BAC1BQFQdjU6OlhjbTxSdW50aW1lQ2FsbD4ABQAA/QQMDHhjbQh2MwxYY20EEENhbGwAAAQAAQUBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAAEFAAACBQUABQUMDHhjbQh2MyxJbnN0cnVjdGlvbgQQQ2FsbAABwDRXaXRoZHJhd0Fzc2V0BAAJBQEsTXVsdGlBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAAJBQEsTXVsdGlBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQACQUBLE11bHRpQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZDQBHFF1ZXJ5SWQAASByZXNwb25zZSEFASBSZXNwb25zZQABKG1heF93ZWlnaHTkARhXZWlnaHQAARxxdWVyaWVySQUBVE9wdGlvbjxNdWx0aUxvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzCQUBLE11bHRpQXNzZXRzAAEsYmVuZWZpY2lhcnmxBAE0TXVsdGlMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0cwkFASxNdWx0aUFzc2V0cwABEGRlc3SxBAE0TXVsdGlMb2NhdGlvbgABDHhjbf0EARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmRNBQEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3TkARhXZWlnaHQAARBjYWxsUQUBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmwBDHUzMgABQG1heF9tZXNzYWdlX3NpemVsAQx1MzIAATBtYXhfY2FwYWNpdHlsAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGwBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JsAQx1MzIAARhzZW5kZXJsAQx1MzIAASRyZWNpcGllbnRsAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAtQQBVEludGVyaW9yTXVsdGlMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQAVQUBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0c1kFAUBNdWx0aUFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnmxBAE0TXVsdGlMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzWQUBQE11bHRpQXNzZXRGaWx0ZXIAARBkZXN0sQQBNE11bHRpTG9jYXRpb24AAQx4Y239BAEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZVkFAUBNdWx0aUFzc2V0RmlsdGVyAAEQd2FudAkFASxNdWx0aUFzc2V0cwABHG1heGltYWxEARBib29sAA8AXEluaXRpYXRlUmVzZXJ2ZVdpdGhkcmF3DAEYYXNzZXRzWQUBQE11bHRpQXNzZXRGaWx0ZXIAARxyZXNlcnZlsQQBNE11bHRpTG9jYXRpb24AAQx4Y239BAEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzWQUBQE11bHRpQXNzZXRGaWx0ZXIAARBkZXN0sQQBNE11bHRpTG9jYXRpb24AAQx4Y239BAEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb1UFAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c1kFAUBNdWx0aUFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXMRBQEoTXVsdGlBc3NldAABMHdlaWdodF9saW1pdGUFASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQA/QQBJFhjbTxDYWxsPgAVACxTZXRBcHBlbmRpeAQA/QQBJFhjbTxDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHMJBQEsTXVsdGlBc3NldHMAARh0aWNrZXSxBAE0TXVsdGlMb2NhdGlvbgAYABBUcmFwBAA0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkNAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTkARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQACQUBLE11bHRpQXNzZXRzABwALEV4cGVjdEFzc2V0BAAJBQEsTXVsdGlBc3NldHMAHQAwRXhwZWN0T3JpZ2luBABJBQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBAAlBQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAEEFAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm9VBQFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhsAQx1MzIAARBuYW1lFAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABLGNyYXRlX21ham9ybAEMdTMyAAE8bWluX2NyYXRlX21pbm9ybAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBABVBQFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EALkEASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya8EEASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbrUEAVRJbnRlcmlvck11bHRpTG9jYXRpb24AAQx4Y239BAEcWGNtPCgpPgAmACRMb2NrQXNzZXQIARRhc3NldBEFAShNdWx0aUFzc2V0AAEgdW5sb2NrZXKxBAE0TXVsdGlMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0EQUBKE11bHRpQXNzZXQAARh0YXJnZXSxBAE0TXVsdGlMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0EQUBKE11bHRpQXNzZXQAARRvd25lcrEEATRNdWx0aUxvY2F0aW9uACkANFJlcXVlc3RVbmxvY2sIARRhc3NldBEFAShNdWx0aUFzc2V0AAEYbG9ja2VysQQBNE11bHRpTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXdEARBib29sACsAIFNldFRvcGljBAAEASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBACxBAE0TXVsdGlMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW5JBQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AC8AAAkFEAx4Y20IdjMobXVsdGlhc3NldCxNdWx0aUFzc2V0cwAABAANBQE8VmVjPE11bHRpQXNzZXQ+AAANBQAAAhEFABEFEAx4Y20IdjMobXVsdGlhc3NldChNdWx0aUFzc2V0AAAIAQhpZBUFARxBc3NldElkAAEMZnVuGQUBLEZ1bmdpYmlsaXR5AAAVBRAMeGNtCHYzKG11bHRpYXNzZXQcQXNzZXRJZAABCCBDb25jcmV0ZQQAsQQBNE11bHRpTG9jYXRpb24AAAAgQWJzdHJhY3QEAAQBIFt1ODsgMzJdAAEAABkFEAx4Y20IdjMobXVsdGlhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQAPAEQdTEyOAAAACxOb25GdW5naWJsZQQAHQUBNEFzc2V0SW5zdGFuY2UAAQAAHQUQDHhjbQh2MyhtdWx0aWFzc2V0NEFzc2V0SW5zdGFuY2UAARgkVW5kZWZpbmVkAAAAFEluZGV4BAA8ARB1MTI4AAEAGEFycmF5NAQAuAEcW3U4OyA0XQACABhBcnJheTgEACEBARxbdTg7IDhdAAMAHEFycmF5MTYEAEEBASBbdTg7IDE2XQAEABxBcnJheTMyBAAEASBbdTg7IDMyXQAFAAAhBQwMeGNtCHYzIFJlc3BvbnNlAAEYEE51bGwAAAAYQXNzZXRzBAAJBQEsTXVsdGlBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BAAlBQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAKAE4c3VwZXI6OlZlcnNpb24AAwAsUGFsbGV0c0luZm8EADEFAZhCb3VuZGVkVmVjPFBhbGxldEluZm8sIE1heFBhbGxldHNJbmZvPgAEADhEaXNwYXRjaFJlc3VsdAQAQQUBOE1heWJlRXJyb3JDb2RlAAUAACUFBBhPcHRpb24EBFQBKQUBCBBOb25lAAAAEFNvbWUEACkFAAABAAApBQAABAgoLQUALQUQDHhjbQh2Mxh0cmFpdHMURXJyb3IAAaAgT3ZlcmZsb3cAAAA0VW5pbXBsZW1lbnRlZAABAGBVbnRydXN0ZWRSZXNlcnZlTG9jYXRpb24AAgBkVW50cnVzdGVkVGVsZXBvcnRMb2NhdGlvbgADADBMb2NhdGlvbkZ1bGwABABUTG9jYXRpb25Ob3RJbnZlcnRpYmxlAAUAJEJhZE9yaWdpbgAGADxJbnZhbGlkTG9jYXRpb24ABwA0QXNzZXROb3RGb3VuZAAIAFRGYWlsZWRUb1RyYW5zYWN0QXNzZXQACQA8Tm90V2l0aGRyYXdhYmxlAAoASExvY2F0aW9uQ2Fubm90SG9sZAALAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUADABYRGVzdGluYXRpb25VbnN1cHBvcnRlZAANACRUcmFuc3BvcnQADgAoVW5yb3V0YWJsZQAPADBVbmtub3duQ2xhaW0AEAA4RmFpbGVkVG9EZWNvZGUAEQBATWF4V2VpZ2h0SW52YWxpZAASADhOb3RIb2xkaW5nRmVlcwATADBUb29FeHBlbnNpdmUAFAAQVHJhcAQAGAEMdTY0ABUAQEV4cGVjdGF0aW9uRmFsc2UAFgA4UGFsbGV0Tm90Rm91bmQAFwAwTmFtZU1pc21hdGNoABgATFZlcnNpb25JbmNvbXBhdGlibGUAGQBQSG9sZGluZ1dvdWxkT3ZlcmZsb3cAGgAsRXhwb3J0RXJyb3IAGwA4UmVhbmNob3JGYWlsZWQAHAAYTm9EZWFsAB0AKEZlZXNOb3RNZXQAHgAkTG9ja0Vycm9yAB8AME5vUGVybWlzc2lvbgAgAChVbmFuY2hvcmVkACEAOE5vdERlcG9zaXRhYmxlACIATFVuaGFuZGxlZFhjbVZlcnNpb24AIwBIV2VpZ2h0TGltaXRSZWFjaGVkBADkARhXZWlnaHQAJAAcQmFycmllcgAlAExXZWlnaHROb3RDb21wdXRhYmxlACYAREV4Y2VlZHNTdGFja0xpbWl0ACcAADEFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBNQUEUwAABAA9BQEYVmVjPFQ+AAA1BQwMeGNtCHYzKFBhbGxldEluZm8AABgBFGluZGV4bAEMdTMyAAEQbmFtZTkFAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABLG1vZHVsZV9uYW1lOQUBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEUbWFqb3JsAQx1MzIAARRtaW5vcmwBDHUzMgABFHBhdGNobAEMdTMyAAA5BQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAD0FAAACNQUAQQUMDHhjbQh2MzhNYXliZUVycm9yQ29kZQABDBxTdWNjZXNzAAAAFEVycm9yBABFBQGMQm91bmRlZFZlYzx1OCwgTWF4RGlzcGF0Y2hFcnJvckxlbj4AAQA4VHJ1bmNhdGVkRXJyb3IEAEUFAYxCb3VuZGVkVmVjPHU4LCBNYXhEaXNwYXRjaEVycm9yTGVuPgACAABFBQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAEkFBBhPcHRpb24EBFQBsQQBCBBOb25lAAAAEFNvbWUEALEEAAABAABNBQwMeGNtCHYzKE9yaWdpbktpbmQAARAYTmF0aXZlAAAAQFNvdmVyZWlnbkFjY291bnQAAQAkU3VwZXJ1c2VyAAIADFhjbQADAABRBQwMeGNtOGRvdWJsZV9lbmNvZGVkNERvdWJsZUVuY29kZWQEBFQAAAQBHGVuY29kZWQUARxWZWM8dTg+AABVBQwMeGNtCHYzRFF1ZXJ5UmVzcG9uc2VJbmZvAAAMASxkZXN0aW5hdGlvbrEEATRNdWx0aUxvY2F0aW9uAAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAEobWF4X3dlaWdodOQBGFdlaWdodAAAWQUQDHhjbQh2MyhtdWx0aWFzc2V0QE11bHRpQXNzZXRGaWx0ZXIAAQggRGVmaW5pdGUEAAkFASxNdWx0aUFzc2V0cwAAABBXaWxkBABdBQE4V2lsZE11bHRpQXNzZXQAAQAAXQUQDHhjbQh2MyhtdWx0aWFzc2V0OFdpbGRNdWx0aUFzc2V0AAEQDEFsbAAAABRBbGxPZggBCGlkFQUBHEFzc2V0SWQAAQxmdW5hBQE8V2lsZEZ1bmdpYmlsaXR5AAEAKEFsbENvdW50ZWQEAGwBDHUzMgACADBBbGxPZkNvdW50ZWQMAQhpZBUFARxBc3NldElkAAEMZnVuYQUBPFdpbGRGdW5naWJpbGl0eQABFGNvdW50bAEMdTMyAAMAAGEFEAx4Y20IdjMobXVsdGlhc3NldDxXaWxkRnVuZ2liaWxpdHkAAQggRnVuZ2libGUAAAAsTm9uRnVuZ2libGUAAQAAZQUMDHhjbQh2MyxXZWlnaHRMaW1pdAABCCRVbmxpbWl0ZWQAAAAcTGltaXRlZAQA5AEYV2VpZ2h0AAEAAGkFDCxzdGFnaW5nX3hjbQh2NAxYY20EEENhbGwAAAQAbQUBWFZlYzxJbnN0cnVjdGlvbjxDYWxsPj4AAG0FAAACcQUAcQUMLHN0YWdpbmdfeGNtCHY0LEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEAHUFARhBc3NldHMAAABUUmVzZXJ2ZUFzc2V0RGVwb3NpdGVkBAB1BQEYQXNzZXRzAAEAWFJlY2VpdmVUZWxlcG9ydGVkQXNzZXQEAHUFARhBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkNAEcUXVlcnlJZAABIHJlc3BvbnNljQUBIFJlc3BvbnNlAAEobWF4X3dlaWdodOQBGFdlaWdodAABHHF1ZXJpZXKhBQFAT3B0aW9uPExvY2F0aW9uPgADADRUcmFuc2ZlckFzc2V0CAEYYXNzZXRzdQUBGEFzc2V0cwABLGJlbmVmaWNpYXJ5xQQBIExvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzdQUBGEFzc2V0cwABEGRlc3TFBAEgTG9jYXRpb24AAQx4Y21pBQEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5kTQUBKE9yaWdpbktpbmQAAVhyZXF1aXJlX3dlaWdodF9hdF9tb3N05AEYV2VpZ2h0AAEQY2FsbFEFAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXJsAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplbAEMdTMyAAEwbWF4X2NhcGFjaXR5bAEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnRsAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9ybAEMdTMyAAEYc2VuZGVybAEMdTMyAAEkcmVjaXBpZW50bAEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EAMkEAUBJbnRlcmlvckxvY2F0aW9uAAsALFJlcG9ydEVycm9yBAClBQFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzqQUBLEFzc2V0RmlsdGVyAAEsYmVuZWZpY2lhcnnFBAEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0c6kFASxBc3NldEZpbHRlcgABEGRlc3TFBAEgTG9jYXRpb24AAQx4Y21pBQEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZakFASxBc3NldEZpbHRlcgABEHdhbnR1BQEYQXNzZXRzAAEcbWF4aW1hbEQBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHOpBQEsQXNzZXRGaWx0ZXIAARxyZXNlcnZlxQQBIExvY2F0aW9uAAEMeGNtaQUBHFhjbTwoKT4AEABASW5pdGlhdGVUZWxlcG9ydAwBGGFzc2V0c6kFASxBc3NldEZpbHRlcgABEGRlc3TFBAEgTG9jYXRpb24AAQx4Y21pBQEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mb6UFAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0c6kFASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzfQUBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBABpBQEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BABpBQEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c3UFARhBc3NldHMAARh0aWNrZXTFBAEgTG9jYXRpb24AGAAQVHJhcAQANAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZDQBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h05AEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAHUFARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAHUFARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBAChBQFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQAJQUBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBABBBQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRQBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvpQUBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4bAEMdTMyAAEQbmFtZRQBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRQBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmwBDHUzMgABPG1pbl9jcmF0ZV9taW5vcmwBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQApQUBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBADRBAEgSnVuY3Rpb24AJQA0RXhwb3J0TWVzc2FnZQwBHG5ldHdvcmvZBAEkTmV0d29ya0lkAAEsZGVzdGluYXRpb27JBAFASW50ZXJpb3JMb2NhdGlvbgABDHhjbWkFARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0fQUBFEFzc2V0AAEgdW5sb2NrZXLFBAEgTG9jYXRpb24AJwAsVW5sb2NrQXNzZXQIARRhc3NldH0FARRBc3NldAABGHRhcmdldMUEASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0fQUBFEFzc2V0AAEUb3duZXLFBAEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0fQUBFEFzc2V0AAEYbG9ja2VyxQQBIExvY2F0aW9uACoALFNldEZlZXNNb2RlBAEwaml0X3dpdGhkcmF3RAEQYm9vbAArACBTZXRUb3BpYwQABAEgW3U4OyAzMl0ALAAoQ2xlYXJUb3BpYwAtACxBbGlhc09yaWdpbgQAxQQBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdGUFASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbqEFAUBPcHRpb248TG9jYXRpb24+AC8AAHUFECxzdGFnaW5nX3hjbQh2NBRhc3NldBhBc3NldHMAAAQAeQUBKFZlYzxBc3NldD4AAHkFAAACfQUAfQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0FEFzc2V0AAAIAQhpZIEFARxBc3NldElkAAEMZnVuhQUBLEZ1bmdpYmlsaXR5AACBBRAsc3RhZ2luZ194Y20IdjQUYXNzZXQcQXNzZXRJZAAABADFBAEgTG9jYXRpb24AAIUFECxzdGFnaW5nX3hjbQh2NBRhc3NldCxGdW5naWJpbGl0eQABCCBGdW5naWJsZQQAPAEQdTEyOAAAACxOb25GdW5naWJsZQQAiQUBNEFzc2V0SW5zdGFuY2UAAQAAiQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0NEFzc2V0SW5zdGFuY2UAARgkVW5kZWZpbmVkAAAAFEluZGV4BAA8ARB1MTI4AAEAGEFycmF5NAQAuAEcW3U4OyA0XQACABhBcnJheTgEACEBARxbdTg7IDhdAAMAHEFycmF5MTYEAEEBASBbdTg7IDE2XQAEABxBcnJheTMyBAAEASBbdTg7IDMyXQAFAACNBQwsc3RhZ2luZ194Y20IdjQgUmVzcG9uc2UAARgQTnVsbAAAABhBc3NldHMEAHUFARhBc3NldHMAAQA8RXhlY3V0aW9uUmVzdWx0BAAlBQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AAgAcVmVyc2lvbgQAKAE4c3VwZXI6OlZlcnNpb24AAwAsUGFsbGV0c0luZm8EAJEFAZhCb3VuZGVkVmVjPFBhbGxldEluZm8sIE1heFBhbGxldHNJbmZvPgAEADhEaXNwYXRjaFJlc3VsdAQAQQUBOE1heWJlRXJyb3JDb2RlAAUAAJEFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBlQUEUwAABACdBQEYVmVjPFQ+AACVBQwsc3RhZ2luZ194Y20IdjQoUGFsbGV0SW5mbwAAGAEUaW5kZXhsAQx1MzIAARBuYW1lmQUBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEsbW9kdWxlX25hbWWZBQGAQm91bmRlZFZlYzx1OCwgTWF4UGFsbGV0TmFtZUxlbj4AARRtYWpvcmwBDHUzMgABFG1pbm9ybAEMdTMyAAEUcGF0Y2hsAQx1MzIAAJkFDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBCARTAAAEABQBGFZlYzxUPgAAnQUAAAKVBQChBQQYT3B0aW9uBARUAcUEAQgQTm9uZQAAABBTb21lBADFBAAAAQAApQUMLHN0YWdpbmdfeGNtCHY0RFF1ZXJ5UmVzcG9uc2VJbmZvAAAMASxkZXN0aW5hdGlvbsUEASBMb2NhdGlvbgABIHF1ZXJ5X2lkNAEcUXVlcnlJZAABKG1heF93ZWlnaHTkARhXZWlnaHQAAKkFECxzdGFnaW5nX3hjbQh2NBRhc3NldCxBc3NldEZpbHRlcgABCCBEZWZpbml0ZQQAdQUBGEFzc2V0cwAAABBXaWxkBACtBQEkV2lsZEFzc2V0AAEAAK0FECxzdGFnaW5nX3hjbQh2NBRhc3NldCRXaWxkQXNzZXQAARAMQWxsAAAAFEFsbE9mCAEIaWSBBQEcQXNzZXRJZAABDGZ1brEFATxXaWxkRnVuZ2liaWxpdHkAAQAoQWxsQ291bnRlZAQAbAEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlkgQUBHEFzc2V0SWQAAQxmdW6xBQE8V2lsZEZ1bmdpYmlsaXR5AAEUY291bnRsAQx1MzIAAwAAsQUQLHN0YWdpbmdfeGNtCHY0FGFzc2V0PFdpbGRGdW5naWJpbGl0eQABCCBGdW5naWJsZQAAACxOb25GdW5naWJsZQABAAC1BQwsc3RhZ2luZ194Y20IdjUMWGNtBBBDYWxsAAAEALkFAVhWZWM8SW5zdHJ1Y3Rpb248Q2FsbD4+AAC5BQAAAr0FAL0FDCxzdGFnaW5nX3hjbQh2NSxJbnN0cnVjdGlvbgQQQ2FsbAAB0DRXaXRoZHJhd0Fzc2V0BADBBQEYQXNzZXRzAAAAVFJlc2VydmVBc3NldERlcG9zaXRlZAQAwQUBGEFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BADBBQEYQXNzZXRzAAIANFF1ZXJ5UmVzcG9uc2UQASBxdWVyeV9pZDQBHFF1ZXJ5SWQAASByZXNwb25zZdkFASBSZXNwb25zZQABKG1heF93ZWlnaHTkARhXZWlnaHQAARxxdWVyaWVy+QUBQE9wdGlvbjxMb2NhdGlvbj4AAwA0VHJhbnNmZXJBc3NldAgBGGFzc2V0c8EFARhBc3NldHMAASxiZW5lZmljaWFyeZwBIExvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzwQUBGEFzc2V0cwABEGRlc3ScASBMb2NhdGlvbgABDHhjbbUFARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmRNBQEoT3JpZ2luS2luZAABTGZhbGxiYWNrX21heF93ZWlnaHT9BQE4T3B0aW9uPFdlaWdodD4AARBjYWxsUQUBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmwBDHUzMgABQG1heF9tZXNzYWdlX3NpemVsAQx1MzIAATBtYXhfY2FwYWNpdHlsAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGwBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JsAQx1MzIAARhzZW5kZXJsAQx1MzIAASRyZWNpcGllbnRsAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAoAFASW50ZXJpb3JMb2NhdGlvbgALACxSZXBvcnRFcnJvcgQAAQYBRFF1ZXJ5UmVzcG9uc2VJbmZvAAwAMERlcG9zaXRBc3NldAgBGGFzc2V0cwUGASxBc3NldEZpbHRlcgABLGJlbmVmaWNpYXJ5nAEgTG9jYXRpb24ADQBMRGVwb3NpdFJlc2VydmVBc3NldAwBGGFzc2V0cwUGASxBc3NldEZpbHRlcgABEGRlc3ScASBMb2NhdGlvbgABDHhjbbUFARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlBQYBLEFzc2V0RmlsdGVyAAEQd2FudMEFARhBc3NldHMAARxtYXhpbWFsRAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0cwUGASxBc3NldEZpbHRlcgABHHJlc2VydmWcASBMb2NhdGlvbgABDHhjbbUFARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHMFBgEsQXNzZXRGaWx0ZXIAARBkZXN0nAEgTG9jYXRpb24AAQx4Y221BQEcWGNtPCgpPgARADRSZXBvcnRIb2xkaW5nCAE0cmVzcG9uc2VfaW5mbwEGAURRdWVyeVJlc3BvbnNlSW5mbwABGGFzc2V0cwUGASxBc3NldEZpbHRlcgASADBCdXlFeGVjdXRpb24IARBmZWVzyQUBFEFzc2V0AAEwd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBAC1BQEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BAC1BQEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0c8EFARhBc3NldHMAARh0aWNrZXScASBMb2NhdGlvbgAYABBUcmFwBAA0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkNAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTkARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAwQUBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQAwQUBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAPkFAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBADdBQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAEEFAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm8BBgFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhsAQx1MzIAARBuYW1lFAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABLGNyYXRlX21ham9ybAEMdTMyAAE8bWluX2NyYXRlX21pbm9ybAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAABBgFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EAKgBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrsAEkTmV0d29ya0lkAAEsZGVzdGluYXRpb26gAUBJbnRlcmlvckxvY2F0aW9uAAEMeGNttQUBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXTJBQEUQXNzZXQAASB1bmxvY2tlcpwBIExvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXTJBQEUQXNzZXQAARh0YXJnZXScASBMb2NhdGlvbgAoADhOb3RlVW5sb2NrYWJsZQgBFGFzc2V0yQUBFEFzc2V0AAEUb3duZXKcASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXTJBQEUQXNzZXQAARhsb2NrZXKcASBMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd0QBEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EAJwBIExvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdGUFASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbvkFAUBPcHRpb248TG9jYXRpb24+AC8AHFBheUZlZXMEARRhc3NldMkFARRBc3NldAAwAEBJbml0aWF0ZVRyYW5zZmVyFAEsZGVzdGluYXRpb26cASBMb2NhdGlvbgABLHJlbW90ZV9mZWVzEQYBbE9wdGlvbjxBc3NldFRyYW5zZmVyRmlsdGVyPgABPHByZXNlcnZlX29yaWdpbkQBEGJvb2wAARhhc3NldHMZBgHgQm91bmRlZFZlYzxBc3NldFRyYW5zZmVyRmlsdGVyLCBNYXhBc3NldFRyYW5zZmVyRmlsdGVycz4AAShyZW1vdGVfeGNttQUBHFhjbTwoKT4AMQBERXhlY3V0ZVdpdGhPcmlnaW4IAURkZXNjZW5kYW50X29yaWdpbiEGAWBPcHRpb248SW50ZXJpb3JMb2NhdGlvbj4AAQx4Y221BQEkWGNtPENhbGw+ADIAIFNldEhpbnRzBAEUaGludHMlBgGEQm91bmRlZFZlYzxIaW50LCBIaW50TnVtVmFyaWFudHM+ADMAAMEFECxzdGFnaW5nX3hjbQh2NRRhc3NldBhBc3NldHMAAAQAxQUBKFZlYzxBc3NldD4AAMUFAAACyQUAyQUQLHN0YWdpbmdfeGNtCHY1FGFzc2V0FEFzc2V0AAAIAQhpZM0FARxBc3NldElkAAEMZnVu0QUBLEZ1bmdpYmlsaXR5AADNBRAsc3RhZ2luZ194Y20IdjUUYXNzZXQcQXNzZXRJZAAABACcASBMb2NhdGlvbgAA0QUQLHN0YWdpbmdfeGNtCHY1FGFzc2V0LEZ1bmdpYmlsaXR5AAEIIEZ1bmdpYmxlBAA8ARB1MTI4AAAALE5vbkZ1bmdpYmxlBADVBQE0QXNzZXRJbnN0YW5jZQABAADVBRAsc3RhZ2luZ194Y20IdjUUYXNzZXQ0QXNzZXRJbnN0YW5jZQABGCRVbmRlZmluZWQAAAAUSW5kZXgEADwBEHUxMjgAAQAYQXJyYXk0BAC4ARxbdTg7IDRdAAIAGEFycmF5OAQAIQEBHFt1ODsgOF0AAwAcQXJyYXkxNgQAQQEBIFt1ODsgMTZdAAQAHEFycmF5MzIEAAQBIFt1ODsgMzJdAAUAANkFDCxzdGFnaW5nX3hjbQh2NSBSZXNwb25zZQABGBBOdWxsAAAAGEFzc2V0cwQAwQUBGEFzc2V0cwABADxFeGVjdXRpb25SZXN1bHQEAN0FAVBPcHRpb248KHUzMiwgRXJyb3IpPgACABxWZXJzaW9uBAAoAThzdXBlcjo6VmVyc2lvbgADACxQYWxsZXRzSW5mbwQA6QUBmEJvdW5kZWRWZWM8UGFsbGV0SW5mbywgTWF4UGFsbGV0c0luZm8+AAQAOERpc3BhdGNoUmVzdWx0BABBBQE4TWF5YmVFcnJvckNvZGUABQAA3QUEGE9wdGlvbgQEVAHhBQEIEE5vbmUAAAAQU29tZQQA4QUAAAEAAOEFAAAECCjlBQDlBRAMeGNtCHY1GHRyYWl0cxRFcnJvcgABpCBPdmVyZmxvdwAAADRVbmltcGxlbWVudGVkAAEAYFVudHJ1c3RlZFJlc2VydmVMb2NhdGlvbgACAGRVbnRydXN0ZWRUZWxlcG9ydExvY2F0aW9uAAMAMExvY2F0aW9uRnVsbAAEAFRMb2NhdGlvbk5vdEludmVydGlibGUABQAkQmFkT3JpZ2luAAYAPEludmFsaWRMb2NhdGlvbgAHADRBc3NldE5vdEZvdW5kAAgAVEZhaWxlZFRvVHJhbnNhY3RBc3NldAAJADxOb3RXaXRoZHJhd2FibGUACgBITG9jYXRpb25DYW5ub3RIb2xkAAsAVEV4Y2VlZHNNYXhNZXNzYWdlU2l6ZQAMAFhEZXN0aW5hdGlvblVuc3VwcG9ydGVkAA0AJFRyYW5zcG9ydAAOAChVbnJvdXRhYmxlAA8AMFVua25vd25DbGFpbQAQADhGYWlsZWRUb0RlY29kZQARAEBNYXhXZWlnaHRJbnZhbGlkABIAOE5vdEhvbGRpbmdGZWVzABMAMFRvb0V4cGVuc2l2ZQAUABBUcmFwBAAYAQx1NjQAFQBARXhwZWN0YXRpb25GYWxzZQAWADhQYWxsZXROb3RGb3VuZAAXADBOYW1lTWlzbWF0Y2gAGABMVmVyc2lvbkluY29tcGF0aWJsZQAZAFBIb2xkaW5nV291bGRPdmVyZmxvdwAaACxFeHBvcnRFcnJvcgAbADhSZWFuY2hvckZhaWxlZAAcABhOb0RlYWwAHQAoRmVlc05vdE1ldAAeACRMb2NrRXJyb3IAHwAwTm9QZXJtaXNzaW9uACAAKFVuYW5jaG9yZWQAIQA4Tm90RGVwb3NpdGFibGUAIgA0VG9vTWFueUFzc2V0cwAjAExVbmhhbmRsZWRYY21WZXJzaW9uACQASFdlaWdodExpbWl0UmVhY2hlZAQA5AEYV2VpZ2h0ACUAHEJhcnJpZXIAJgBMV2VpZ2h0Tm90Q29tcHV0YWJsZQAnAERFeGNlZWRzU3RhY2tMaW1pdAAoAADpBQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAe0FBFMAAAQA9QUBGFZlYzxUPgAA7QUMLHN0YWdpbmdfeGNtCHY1KFBhbGxldEluZm8AABgBFGluZGV4bAEMdTMyAAEQbmFtZfEFAYBCb3VuZGVkVmVjPHU4LCBNYXhQYWxsZXROYW1lTGVuPgABLG1vZHVsZV9uYW1l8QUBgEJvdW5kZWRWZWM8dTgsIE1heFBhbGxldE5hbWVMZW4+AAEUbWFqb3JsAQx1MzIAARRtaW5vcmwBDHUzMgABFHBhdGNobAEMdTMyAADxBQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAPUFAAAC7QUA+QUEGE9wdGlvbgQEVAGcAQgQTm9uZQAAABBTb21lBACcAAABAAD9BQQYT3B0aW9uBARUAeQBCBBOb25lAAAAEFNvbWUEAOQAAAEAAAEGDCxzdGFnaW5nX3hjbQh2NURRdWVyeVJlc3BvbnNlSW5mbwAADAEsZGVzdGluYXRpb26cASBMb2NhdGlvbgABIHF1ZXJ5X2lkNAEcUXVlcnlJZAABKG1heF93ZWlnaHTkARhXZWlnaHQAAAUGECxzdGFnaW5nX3hjbQh2NRRhc3NldCxBc3NldEZpbHRlcgABCCBEZWZpbml0ZQQAwQUBGEFzc2V0cwAAABBXaWxkBAAJBgEkV2lsZEFzc2V0AAEAAAkGECxzdGFnaW5nX3hjbQh2NRRhc3NldCRXaWxkQXNzZXQAARAMQWxsAAAAFEFsbE9mCAEIaWTNBQEcQXNzZXRJZAABDGZ1bg0GATxXaWxkRnVuZ2liaWxpdHkAAQAoQWxsQ291bnRlZAQAbAEMdTMyAAIAMEFsbE9mQ291bnRlZAwBCGlkzQUBHEFzc2V0SWQAAQxmdW4NBgE8V2lsZEZ1bmdpYmlsaXR5AAEUY291bnRsAQx1MzIAAwAADQYQLHN0YWdpbmdfeGNtCHY1FGFzc2V0PFdpbGRGdW5naWJpbGl0eQABCCBGdW5naWJsZQAAACxOb25GdW5naWJsZQABAAARBgQYT3B0aW9uBARUARUGAQgQTm9uZQAAABBTb21lBAAVBgAAAQAAFQYQLHN0YWdpbmdfeGNtCHY1FGFzc2V0TEFzc2V0VHJhbnNmZXJGaWx0ZXIAAQwgVGVsZXBvcnQEAAUGASxBc3NldEZpbHRlcgAAADhSZXNlcnZlRGVwb3NpdAQABQYBLEFzc2V0RmlsdGVyAAEAPFJlc2VydmVXaXRoZHJhdwQABQYBLEFzc2V0RmlsdGVyAAIAABkGDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBFQYEUwAABAAdBgEYVmVjPFQ+AAAdBgAAAhUGACEGBBhPcHRpb24EBFQBoAEIEE5vbmUAAAAQU29tZQQAoAAAAQAAJQYMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEpBgRTAAAEAC0GARhWZWM8VD4AACkGDCxzdGFnaW5nX3hjbQh2NRBIaW50AAEEMEFzc2V0Q2xhaW1lcgQBIGxvY2F0aW9unAEgTG9jYXRpb24AAAAALQYAAAIpBgAxBggMeGNtPFZlcnNpb25lZEFzc2V0cwABDAhWMwQACQUBPHYzOjpNdWx0aUFzc2V0cwADAAhWNAQAdQUBKHY0OjpBc3NldHMABAAIVjUEAMEFASh2NTo6QXNzZXRzAAUAADUGCAx4Y20wVmVyc2lvbmVkWGNtBCxSdW50aW1lQ2FsbAABDAhWMwQAOQYBUHYzOjpYY208UnVudGltZUNhbGw+AAMACFY0BABJBgFQdjQ6OlhjbTxSdW50aW1lQ2FsbD4ABAAIVjUEAFUGAVB2NTo6WGNtPFJ1bnRpbWVDYWxsPgAFAAA5BgwMeGNtCHYzDFhjbQQQQ2FsbAAABAA9BgFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAAPQYAAAJBBgBBBgwMeGNtCHYzLEluc3RydWN0aW9uBBBDYWxsAAHANFdpdGhkcmF3QXNzZXQEAAkFASxNdWx0aUFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAAkFASxNdWx0aUFzc2V0cwABAFhSZWNlaXZlVGVsZXBvcnRlZEFzc2V0BAAJBQEsTXVsdGlBc3NldHMAAgA0UXVlcnlSZXNwb25zZRABIHF1ZXJ5X2lkNAEcUXVlcnlJZAABIHJlc3BvbnNlIQUBIFJlc3BvbnNlAAEobWF4X3dlaWdodOQBGFdlaWdodAABHHF1ZXJpZXJJBQFUT3B0aW9uPE11bHRpTG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHMJBQEsTXVsdGlBc3NldHMAASxiZW5lZmljaWFyebEEATRNdWx0aUxvY2F0aW9uAAQAUFRyYW5zZmVyUmVzZXJ2ZUFzc2V0DAEYYXNzZXRzCQUBLE11bHRpQXNzZXRzAAEQZGVzdLEEATRNdWx0aUxvY2F0aW9uAAEMeGNt/QQBHFhjbTwoKT4ABQAgVHJhbnNhY3QMASxvcmlnaW5fa2luZE0FAShPcmlnaW5LaW5kAAFYcmVxdWlyZV93ZWlnaHRfYXRfbW9zdOQBGFdlaWdodAABEGNhbGxFBgFMRG91YmxlRW5jb2RlZDxDYWxsPgAGAGRIcm1wTmV3Q2hhbm5lbE9wZW5SZXF1ZXN0DAEYc2VuZGVybAEMdTMyAAFAbWF4X21lc3NhZ2Vfc2l6ZWwBDHUzMgABMG1heF9jYXBhY2l0eWwBDHUzMgAHAExIcm1wQ2hhbm5lbEFjY2VwdGVkBAEkcmVjaXBpZW50bAEMdTMyAAgASEhybXBDaGFubmVsQ2xvc2luZwwBJGluaXRpYXRvcmwBDHUzMgABGHNlbmRlcmwBDHUzMgABJHJlY2lwaWVudGwBDHUzMgAJACxDbGVhck9yaWdpbgAKADREZXNjZW5kT3JpZ2luBAC1BAFUSW50ZXJpb3JNdWx0aUxvY2F0aW9uAAsALFJlcG9ydEVycm9yBABVBQFEUXVlcnlSZXNwb25zZUluZm8ADAAwRGVwb3NpdEFzc2V0CAEYYXNzZXRzWQUBQE11bHRpQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyebEEATRNdWx0aUxvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHNZBQFATXVsdGlBc3NldEZpbHRlcgABEGRlc3SxBAE0TXVsdGlMb2NhdGlvbgABDHhjbf0EARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlWQUBQE11bHRpQXNzZXRGaWx0ZXIAARB3YW50CQUBLE11bHRpQXNzZXRzAAEcbWF4aW1hbEQBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHNZBQFATXVsdGlBc3NldEZpbHRlcgABHHJlc2VydmWxBAE0TXVsdGlMb2NhdGlvbgABDHhjbf0EARxYY208KCk+ABAAQEluaXRpYXRlVGVsZXBvcnQMARhhc3NldHNZBQFATXVsdGlBc3NldEZpbHRlcgABEGRlc3SxBAE0TXVsdGlMb2NhdGlvbgABDHhjbf0EARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvVQUBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzWQUBQE11bHRpQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlcxEFAShNdWx0aUFzc2V0AAEwd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0ABMANFJlZnVuZFN1cnBsdXMAFAA8U2V0RXJyb3JIYW5kbGVyBAA5BgEkWGNtPENhbGw+ABUALFNldEFwcGVuZGl4BAA5BgEkWGNtPENhbGw+ABYAKENsZWFyRXJyb3IAFwAoQ2xhaW1Bc3NldAgBGGFzc2V0cwkFASxNdWx0aUFzc2V0cwABGHRpY2tldLEEATRNdWx0aUxvY2F0aW9uABgAEFRyYXAEADQBDHU2NAAZAEBTdWJzY3JpYmVWZXJzaW9uCAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAFMbWF4X3Jlc3BvbnNlX3dlaWdodOQBGFdlaWdodAAaAEhVbnN1YnNjcmliZVZlcnNpb24AGwAkQnVybkFzc2V0BAAJBQEsTXVsdGlBc3NldHMAHAAsRXhwZWN0QXNzZXQEAAkFASxNdWx0aUFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAEkFAVRPcHRpb248TXVsdGlMb2NhdGlvbj4AHgAsRXhwZWN0RXJyb3IEACUFAVBPcHRpb248KHUzMiwgRXJyb3IpPgAfAFBFeHBlY3RUcmFuc2FjdFN0YXR1cwQAQQUBOE1heWJlRXJyb3JDb2RlACAALFF1ZXJ5UGFsbGV0CAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAE0cmVzcG9uc2VfaW5mb1UFAURRdWVyeVJlc3BvbnNlSW5mbwAhADBFeHBlY3RQYWxsZXQUARRpbmRleGwBDHUzMgABEG5hbWUUARxWZWM8dTg+AAEsbW9kdWxlX25hbWUUARxWZWM8dTg+AAEsY3JhdGVfbWFqb3JsAQx1MzIAATxtaW5fY3JhdGVfbWlub3JsAQx1MzIAIgBQUmVwb3J0VHJhbnNhY3RTdGF0dXMEAFUFAURRdWVyeVJlc3BvbnNlSW5mbwAjAExDbGVhclRyYW5zYWN0U3RhdHVzACQAPFVuaXZlcnNhbE9yaWdpbgQAuQQBIEp1bmN0aW9uACUANEV4cG9ydE1lc3NhZ2UMARxuZXR3b3JrwQQBJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9utQQBVEludGVyaW9yTXVsdGlMb2NhdGlvbgABDHhjbf0EARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0EQUBKE11bHRpQXNzZXQAASB1bmxvY2tlcrEEATRNdWx0aUxvY2F0aW9uACcALFVubG9ja0Fzc2V0CAEUYXNzZXQRBQEoTXVsdGlBc3NldAABGHRhcmdldLEEATRNdWx0aUxvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXQRBQEoTXVsdGlBc3NldAABFG93bmVysQQBNE11bHRpTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0EQUBKE11bHRpQXNzZXQAARhsb2NrZXKxBAE0TXVsdGlMb2NhdGlvbgAqACxTZXRGZWVzTW9kZQQBMGppdF93aXRoZHJhd0QBEGJvb2wAKwAgU2V0VG9waWMEAAQBIFt1ODsgMzJdACwAKENsZWFyVG9waWMALQAsQWxpYXNPcmlnaW4EALEEATRNdWx0aUxvY2F0aW9uAC4APFVucGFpZEV4ZWN1dGlvbggBMHdlaWdodF9saW1pdGUFASxXZWlnaHRMaW1pdAABMGNoZWNrX29yaWdpbkkFAVRPcHRpb248TXVsdGlMb2NhdGlvbj4ALwAARQYMDHhjbThkb3VibGVfZW5jb2RlZDREb3VibGVFbmNvZGVkBARUAAAEARxlbmNvZGVkFAEcVmVjPHU4PgAASQYMLHN0YWdpbmdfeGNtCHY0DFhjbQQQQ2FsbAAABABNBgFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAATQYAAAJRBgBRBgwsc3RhZ2luZ194Y20IdjQsSW5zdHJ1Y3Rpb24EEENhbGwAAcA0V2l0aGRyYXdBc3NldAQAdQUBGEFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAHUFARhBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAdQUBGEFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAEgcmVzcG9uc2WNBQEgUmVzcG9uc2UAAShtYXhfd2VpZ2h05AEYV2VpZ2h0AAEccXVlcmllcqEFAUBPcHRpb248TG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHN1BQEYQXNzZXRzAAEsYmVuZWZpY2lhcnnFBAEgTG9jYXRpb24ABABQVHJhbnNmZXJSZXNlcnZlQXNzZXQMARhhc3NldHN1BQEYQXNzZXRzAAEQZGVzdMUEASBMb2NhdGlvbgABDHhjbWkFARxYY208KCk+AAUAIFRyYW5zYWN0DAEsb3JpZ2luX2tpbmRNBQEoT3JpZ2luS2luZAABWHJlcXVpcmVfd2VpZ2h0X2F0X21vc3TkARhXZWlnaHQAARBjYWxsRQYBTERvdWJsZUVuY29kZWQ8Q2FsbD4ABgBkSHJtcE5ld0NoYW5uZWxPcGVuUmVxdWVzdAwBGHNlbmRlcmwBDHUzMgABQG1heF9tZXNzYWdlX3NpemVsAQx1MzIAATBtYXhfY2FwYWNpdHlsAQx1MzIABwBMSHJtcENoYW5uZWxBY2NlcHRlZAQBJHJlY2lwaWVudGwBDHUzMgAIAEhIcm1wQ2hhbm5lbENsb3NpbmcMASRpbml0aWF0b3JsAQx1MzIAARhzZW5kZXJsAQx1MzIAASRyZWNpcGllbnRsAQx1MzIACQAsQ2xlYXJPcmlnaW4ACgA0RGVzY2VuZE9yaWdpbgQAyQQBQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAKUFAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHOpBQEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyecUEASBMb2NhdGlvbgANAExEZXBvc2l0UmVzZXJ2ZUFzc2V0DAEYYXNzZXRzqQUBLEFzc2V0RmlsdGVyAAEQZGVzdMUEASBMb2NhdGlvbgABDHhjbWkFARxYY208KCk+AA4ANEV4Y2hhbmdlQXNzZXQMARBnaXZlqQUBLEFzc2V0RmlsdGVyAAEQd2FudHUFARhBc3NldHMAARxtYXhpbWFsRAEQYm9vbAAPAFxJbml0aWF0ZVJlc2VydmVXaXRoZHJhdwwBGGFzc2V0c6kFASxBc3NldEZpbHRlcgABHHJlc2VydmXFBAEgTG9jYXRpb24AAQx4Y21pBQEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzqQUBLEFzc2V0RmlsdGVyAAEQZGVzdMUEASBMb2NhdGlvbgABDHhjbWkFARxYY208KCk+ABEANFJlcG9ydEhvbGRpbmcIATRyZXNwb25zZV9pbmZvpQUBRFF1ZXJ5UmVzcG9uc2VJbmZvAAEYYXNzZXRzqQUBLEFzc2V0RmlsdGVyABIAMEJ1eUV4ZWN1dGlvbggBEGZlZXN9BQEUQXNzZXQAATB3ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQAEwA0UmVmdW5kU3VycGx1cwAUADxTZXRFcnJvckhhbmRsZXIEAEkGASRYY208Q2FsbD4AFQAsU2V0QXBwZW5kaXgEAEkGASRYY208Q2FsbD4AFgAoQ2xlYXJFcnJvcgAXAChDbGFpbUFzc2V0CAEYYXNzZXRzdQUBGEFzc2V0cwABGHRpY2tldMUEASBMb2NhdGlvbgAYABBUcmFwBAA0AQx1NjQAGQBAU3Vic2NyaWJlVmVyc2lvbggBIHF1ZXJ5X2lkNAEcUXVlcnlJZAABTG1heF9yZXNwb25zZV93ZWlnaHTkARhXZWlnaHQAGgBIVW5zdWJzY3JpYmVWZXJzaW9uABsAJEJ1cm5Bc3NldAQAdQUBGEFzc2V0cwAcACxFeHBlY3RBc3NldAQAdQUBGEFzc2V0cwAdADBFeHBlY3RPcmlnaW4EAKEFAUBPcHRpb248TG9jYXRpb24+AB4ALEV4cGVjdEVycm9yBAAlBQFQT3B0aW9uPCh1MzIsIEVycm9yKT4AHwBQRXhwZWN0VHJhbnNhY3RTdGF0dXMEAEEFAThNYXliZUVycm9yQ29kZQAgACxRdWVyeVBhbGxldAgBLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABNHJlc3BvbnNlX2luZm+lBQFEUXVlcnlSZXNwb25zZUluZm8AIQAwRXhwZWN0UGFsbGV0FAEUaW5kZXhsAQx1MzIAARBuYW1lFAEcVmVjPHU4PgABLG1vZHVsZV9uYW1lFAEcVmVjPHU4PgABLGNyYXRlX21ham9ybAEMdTMyAAE8bWluX2NyYXRlX21pbm9ybAEMdTMyACIAUFJlcG9ydFRyYW5zYWN0U3RhdHVzBAClBQFEUXVlcnlSZXNwb25zZUluZm8AIwBMQ2xlYXJUcmFuc2FjdFN0YXR1cwAkADxVbml2ZXJzYWxPcmlnaW4EANEEASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya9kEASROZXR3b3JrSWQAASxkZXN0aW5hdGlvbskEAUBJbnRlcmlvckxvY2F0aW9uAAEMeGNtaQUBHFhjbTwoKT4AJgAkTG9ja0Fzc2V0CAEUYXNzZXR9BQEUQXNzZXQAASB1bmxvY2tlcsUEASBMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0fQUBFEFzc2V0AAEYdGFyZ2V0xQQBIExvY2F0aW9uACgAOE5vdGVVbmxvY2thYmxlCAEUYXNzZXR9BQEUQXNzZXQAARRvd25lcsUEASBMb2NhdGlvbgApADRSZXF1ZXN0VW5sb2NrCAEUYXNzZXR9BQEUQXNzZXQAARhsb2NrZXLFBAEgTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXdEARBib29sACsAIFNldFRvcGljBAAEASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBADFBAEgTG9jYXRpb24ALgA8VW5wYWlkRXhlY3V0aW9uCAEwd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0AAEwY2hlY2tfb3JpZ2luoQUBQE9wdGlvbjxMb2NhdGlvbj4ALwAAVQYMLHN0YWdpbmdfeGNtCHY1DFhjbQQQQ2FsbAAABABZBgFYVmVjPEluc3RydWN0aW9uPENhbGw+PgAAWQYAAAJdBgBdBgwsc3RhZ2luZ194Y20IdjUsSW5zdHJ1Y3Rpb24EEENhbGwAAdA0V2l0aGRyYXdBc3NldAQAwQUBGEFzc2V0cwAAAFRSZXNlcnZlQXNzZXREZXBvc2l0ZWQEAMEFARhBc3NldHMAAQBYUmVjZWl2ZVRlbGVwb3J0ZWRBc3NldAQAwQUBGEFzc2V0cwACADRRdWVyeVJlc3BvbnNlEAEgcXVlcnlfaWQ0ARxRdWVyeUlkAAEgcmVzcG9uc2XZBQEgUmVzcG9uc2UAAShtYXhfd2VpZ2h05AEYV2VpZ2h0AAEccXVlcmllcvkFAUBPcHRpb248TG9jYXRpb24+AAMANFRyYW5zZmVyQXNzZXQIARhhc3NldHPBBQEYQXNzZXRzAAEsYmVuZWZpY2lhcnmcASBMb2NhdGlvbgAEAFBUcmFuc2ZlclJlc2VydmVBc3NldAwBGGFzc2V0c8EFARhBc3NldHMAARBkZXN0nAEgTG9jYXRpb24AAQx4Y221BQEcWGNtPCgpPgAFACBUcmFuc2FjdAwBLG9yaWdpbl9raW5kTQUBKE9yaWdpbktpbmQAAUxmYWxsYmFja19tYXhfd2VpZ2h0/QUBOE9wdGlvbjxXZWlnaHQ+AAEQY2FsbEUGAUxEb3VibGVFbmNvZGVkPENhbGw+AAYAZEhybXBOZXdDaGFubmVsT3BlblJlcXVlc3QMARhzZW5kZXJsAQx1MzIAAUBtYXhfbWVzc2FnZV9zaXplbAEMdTMyAAEwbWF4X2NhcGFjaXR5bAEMdTMyAAcATEhybXBDaGFubmVsQWNjZXB0ZWQEASRyZWNpcGllbnRsAQx1MzIACABISHJtcENoYW5uZWxDbG9zaW5nDAEkaW5pdGlhdG9ybAEMdTMyAAEYc2VuZGVybAEMdTMyAAEkcmVjaXBpZW50bAEMdTMyAAkALENsZWFyT3JpZ2luAAoANERlc2NlbmRPcmlnaW4EAKABQEludGVyaW9yTG9jYXRpb24ACwAsUmVwb3J0RXJyb3IEAAEGAURRdWVyeVJlc3BvbnNlSW5mbwAMADBEZXBvc2l0QXNzZXQIARhhc3NldHMFBgEsQXNzZXRGaWx0ZXIAASxiZW5lZmljaWFyeZwBIExvY2F0aW9uAA0ATERlcG9zaXRSZXNlcnZlQXNzZXQMARhhc3NldHMFBgEsQXNzZXRGaWx0ZXIAARBkZXN0nAEgTG9jYXRpb24AAQx4Y221BQEcWGNtPCgpPgAOADRFeGNoYW5nZUFzc2V0DAEQZ2l2ZQUGASxBc3NldEZpbHRlcgABEHdhbnTBBQEYQXNzZXRzAAEcbWF4aW1hbEQBEGJvb2wADwBcSW5pdGlhdGVSZXNlcnZlV2l0aGRyYXcMARhhc3NldHMFBgEsQXNzZXRGaWx0ZXIAARxyZXNlcnZlnAEgTG9jYXRpb24AAQx4Y221BQEcWGNtPCgpPgAQAEBJbml0aWF0ZVRlbGVwb3J0DAEYYXNzZXRzBQYBLEFzc2V0RmlsdGVyAAEQZGVzdJwBIExvY2F0aW9uAAEMeGNttQUBHFhjbTwoKT4AEQA0UmVwb3J0SG9sZGluZwgBNHJlc3BvbnNlX2luZm8BBgFEUXVlcnlSZXNwb25zZUluZm8AARhhc3NldHMFBgEsQXNzZXRGaWx0ZXIAEgAwQnV5RXhlY3V0aW9uCAEQZmVlc8kFARRBc3NldAABMHdlaWdodF9saW1pdGUFASxXZWlnaHRMaW1pdAATADRSZWZ1bmRTdXJwbHVzABQAPFNldEVycm9ySGFuZGxlcgQAVQYBJFhjbTxDYWxsPgAVACxTZXRBcHBlbmRpeAQAVQYBJFhjbTxDYWxsPgAWAChDbGVhckVycm9yABcAKENsYWltQXNzZXQIARhhc3NldHPBBQEYQXNzZXRzAAEYdGlja2V0nAEgTG9jYXRpb24AGAAQVHJhcAQANAEMdTY0ABkAQFN1YnNjcmliZVZlcnNpb24IASBxdWVyeV9pZDQBHFF1ZXJ5SWQAAUxtYXhfcmVzcG9uc2Vfd2VpZ2h05AEYV2VpZ2h0ABoASFVuc3Vic2NyaWJlVmVyc2lvbgAbACRCdXJuQXNzZXQEAMEFARhBc3NldHMAHAAsRXhwZWN0QXNzZXQEAMEFARhBc3NldHMAHQAwRXhwZWN0T3JpZ2luBAD5BQFAT3B0aW9uPExvY2F0aW9uPgAeACxFeHBlY3RFcnJvcgQA3QUBUE9wdGlvbjwodTMyLCBFcnJvcik+AB8AUEV4cGVjdFRyYW5zYWN0U3RhdHVzBABBBQE4TWF5YmVFcnJvckNvZGUAIAAsUXVlcnlQYWxsZXQIASxtb2R1bGVfbmFtZRQBHFZlYzx1OD4AATRyZXNwb25zZV9pbmZvAQYBRFF1ZXJ5UmVzcG9uc2VJbmZvACEAMEV4cGVjdFBhbGxldBQBFGluZGV4bAEMdTMyAAEQbmFtZRQBHFZlYzx1OD4AASxtb2R1bGVfbmFtZRQBHFZlYzx1OD4AASxjcmF0ZV9tYWpvcmwBDHUzMgABPG1pbl9jcmF0ZV9taW5vcmwBDHUzMgAiAFBSZXBvcnRUcmFuc2FjdFN0YXR1cwQAAQYBRFF1ZXJ5UmVzcG9uc2VJbmZvACMATENsZWFyVHJhbnNhY3RTdGF0dXMAJAA8VW5pdmVyc2FsT3JpZ2luBACoASBKdW5jdGlvbgAlADRFeHBvcnRNZXNzYWdlDAEcbmV0d29ya7ABJE5ldHdvcmtJZAABLGRlc3RpbmF0aW9uoAFASW50ZXJpb3JMb2NhdGlvbgABDHhjbbUFARxYY208KCk+ACYAJExvY2tBc3NldAgBFGFzc2V0yQUBFEFzc2V0AAEgdW5sb2NrZXKcASBMb2NhdGlvbgAnACxVbmxvY2tBc3NldAgBFGFzc2V0yQUBFEFzc2V0AAEYdGFyZ2V0nAEgTG9jYXRpb24AKAA4Tm90ZVVubG9ja2FibGUIARRhc3NldMkFARRBc3NldAABFG93bmVynAEgTG9jYXRpb24AKQA0UmVxdWVzdFVubG9jawgBFGFzc2V0yQUBFEFzc2V0AAEYbG9ja2VynAEgTG9jYXRpb24AKgAsU2V0RmVlc01vZGUEATBqaXRfd2l0aGRyYXdEARBib29sACsAIFNldFRvcGljBAAEASBbdTg7IDMyXQAsAChDbGVhclRvcGljAC0ALEFsaWFzT3JpZ2luBACcASBMb2NhdGlvbgAuADxVbnBhaWRFeGVjdXRpb24IATB3ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQAATBjaGVja19vcmlnaW75BQFAT3B0aW9uPExvY2F0aW9uPgAvABxQYXlGZWVzBAEUYXNzZXTJBQEUQXNzZXQAMABASW5pdGlhdGVUcmFuc2ZlchQBLGRlc3RpbmF0aW9unAEgTG9jYXRpb24AASxyZW1vdGVfZmVlcxEGAWxPcHRpb248QXNzZXRUcmFuc2ZlckZpbHRlcj4AATxwcmVzZXJ2ZV9vcmlnaW5EARBib29sAAEYYXNzZXRzGQYB4EJvdW5kZWRWZWM8QXNzZXRUcmFuc2ZlckZpbHRlciwgTWF4QXNzZXRUcmFuc2ZlckZpbHRlcnM+AAEocmVtb3RlX3hjbbUFARxYY208KCk+ADEAREV4ZWN1dGVXaXRoT3JpZ2luCAFEZGVzY2VuZGFudF9vcmlnaW4hBgFgT3B0aW9uPEludGVyaW9yTG9jYXRpb24+AAEMeGNtVQYBJFhjbTxDYWxsPgAyACBTZXRIaW50cwQBFGhpbnRzJQYBhEJvdW5kZWRWZWM8SGludCwgSGludE51bVZhcmlhbnRzPgAzAABhBhBQc3RhZ2luZ194Y21fZXhlY3V0b3IYdHJhaXRzOGFzc2V0X3RyYW5zZmVyMFRyYW5zZmVyVHlwZQABECBUZWxlcG9ydAAAADBMb2NhbFJlc2VydmUAAQBIRGVzdGluYXRpb25SZXNlcnZlAAIANFJlbW90ZVJlc2VydmUEAK0EAURWZXJzaW9uZWRMb2NhdGlvbgADAABlBggMeGNtQFZlcnNpb25lZEFzc2V0SWQAAQwIVjMEABUFASx2Mzo6QXNzZXRJZAADAAhWNAQAgQUBLHY0OjpBc3NldElkAAQACFY1BADNBQEsdjU6OkFzc2V0SWQABQAAaQYMSGN1bXVsdXNfcGFsbGV0X3hjbRhwYWxsZXQQQ2FsbAQEVAABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy5tBgxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0EENhbGwEBFQAAQgkcmVhcF9wYWdlCAE4bWVzc2FnZV9vcmlnaW5xBgFITWVzc2FnZU9yaWdpbk9mPFQ+AAEocGFnZV9pbmRleCgBJFBhZ2VJbmRleAAABD0BUmVtb3ZlIGEgcGFnZSB3aGljaCBoYXMgbm8gbW9yZSBtZXNzYWdlcyByZW1haW5pbmcgdG8gYmUgcHJvY2Vzc2VkIG9yIGlzIHN0YWxlLkhleGVjdXRlX292ZXJ3ZWlnaHQQAThtZXNzYWdlX29yaWdpbnEGAUhNZXNzYWdlT3JpZ2luT2Y8VD4AARBwYWdlKAEkUGFnZUluZGV4AAEUaW5kZXgoARxUOjpTaXplAAEwd2VpZ2h0X2xpbWl05AEYV2VpZ2h0AAE0eEV4ZWN1dGUgYW4gb3ZlcndlaWdodCBtZXNzYWdlLgBNAVRlbXBvcmFyeSBwcm9jZXNzaW5nIGVycm9ycyB3aWxsIGJlIHByb3BhZ2F0ZWQgd2hlcmVhcyBwZXJtYW5lbnQgZXJyb3JzIGFyZSB0cmVhdGVkVGFzIHN1Y2Nlc3MgY29uZGl0aW9uLgB0LSBgb3JpZ2luYDogTXVzdCBiZSBgU2lnbmVkYC41AS0gYG1lc3NhZ2Vfb3JpZ2luYDogVGhlIG9yaWdpbiBmcm9tIHdoaWNoIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkIGFycml2ZWQuPQEtIGBwYWdlYDogVGhlIHBhZ2UgaW4gdGhlIHF1ZXVlIGluIHdoaWNoIHRoZSBtZXNzYWdlIHRvIGJlIGV4ZWN1dGVkIGlzIHNpdHRpbmcuCQEtIGBpbmRleGA6IFRoZSBpbmRleCBpbnRvIHRoZSBxdWV1ZSBvZiB0aGUgbWVzc2FnZSB0byBiZSBleGVjdXRlZC5ZAS0gYHdlaWdodF9saW1pdGA6IFRoZSBtYXhpbXVtIGFtb3VudCBvZiB3ZWlnaHQgYWxsb3dlZCB0byBiZSBjb25zdW1lZCBpbiB0aGUgZXhlY3V0aW9uRCAgb2YgdGhlIG1lc3NhZ2UuAPRCZW5jaG1hcmsgY29tcGxleGl0eSBjb25zaWRlcmF0aW9uczogTyhpbmRleCArIHdlaWdodF9saW1pdCkuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLnEGCFxjdW11bHVzX3ByaW1pdGl2ZXNfY29yZVhBZ2dyZWdhdGVNZXNzYWdlT3JpZ2luAAEMEEhlcmUAAAAYUGFyZW50AAEAHFNpYmxpbmcEAOABGFBhcmFJZAACAAB1BgxEcGFsbGV0X21pZ3JhdGlvbnMYcGFsbGV0EENhbGwEBFQAARBAZm9yY2Vfc2V0X2N1cnNvcgQBGGN1cnNvcnkGAUxPcHRpb248Q3Vyc29yT2Y8VD4+AAAUXQFBbGxvd3Mgcm9vdCB0byBzZXQgYSBjdXJzb3IgdG8gZm9yY2VmdWxseSBzdGFydCwgc3RvcCBvciBmb3J3YXJkIHRoZSBtaWdyYXRpb24gcHJvY2Vzcy4ASQFTaG91bGQgbm9ybWFsbHkgbm90IGJlIG5lZWRlZCBhbmQgaXMgb25seSBpbiBwbGFjZSBhcyBlbWVyZ2VuY3kgbWVhc3VyZS4gTm90ZSB0aGF0BQFyZXN0YXJ0aW5nIHRoZSBtaWdyYXRpb24gcHJvY2VzcyBpbiB0aGlzIG1hbm5lciB3aWxsIG5vdCBjYWxsIHRoZS0BW2BNaWdyYXRpb25TdGF0dXNIYW5kbGVyOjpzdGFydGVkYF0gaG9vayBvciBlbWl0IGFuIGBVcGdyYWRlU3RhcnRlZGAgZXZlbnQuXGZvcmNlX3NldF9hY3RpdmVfY3Vyc29yDAEUaW5kZXgoAQx1MzIAATBpbm5lcl9jdXJzb3KFBgFYT3B0aW9uPFJhd0N1cnNvck9mPFQ+PgABKHN0YXJ0ZWRfYXR0AWRPcHRpb248QmxvY2tOdW1iZXJGb3I8VD4+AAEYWQFBbGxvd3Mgcm9vdCB0byBzZXQgYW4gYWN0aXZlIGN1cnNvciB0byBmb3JjZWZ1bGx5IHN0YXJ0L2ZvcndhcmQgdGhlIG1pZ3JhdGlvbiBwcm9jZXNzLgBFAVRoaXMgaXMgYW4gZWRnZS1jYXNlIHZlcnNpb24gb2YgW2BTZWxmOjpmb3JjZV9zZXRfY3Vyc29yYF0gdGhhdCBhbGxvd3MgdG8gc2V0IHRoZWEBYHN0YXJ0ZWRfYXRgIHZhbHVlIHRvIHRoZSBuZXh0IGJsb2NrIG51bWJlci4gT3RoZXJ3aXNlIHRoaXMgd291bGQgbm90IGJlIHBvc3NpYmxlLCBzaW5jZUUBYGZvcmNlX3NldF9jdXJzb3JgIHRha2VzIGFuIGFic29sdXRlIGJsb2NrIG51bWJlci4gU2V0dGluZyBgc3RhcnRlZF9hdGAgdG8gYE5vbmVgAQFpbmRpY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBibG9jayBudW1iZXIgcGx1cyBvbmUgc2hvdWxkIGJlIHVzZWQuSGZvcmNlX29uYm9hcmRfbWJtcwACEKBGb3JjZXMgdGhlIG9uYm9hcmRpbmcgb2YgdGhlIG1pZ3JhdGlvbnMuAF0BVGhpcyBwcm9jZXNzIGhhcHBlbnMgYXV0b21hdGljYWxseSBvbiBhIHJ1bnRpbWUgdXBncmFkZS4gSXQgaXMgaW4gcGxhY2UgYXMgYW4gZW1lcmdlbmN5/G1lYXN1cmVtZW50LiBUaGUgY3Vyc29yIG5lZWRzIHRvIGJlIGBOb25lYCBmb3IgdGhpcyB0byBzdWNjZWVkLjhjbGVhcl9oaXN0b3JpYwQBIHNlbGVjdG9yiQYBoEhpc3RvcmljQ2xlYW51cFNlbGVjdG9yPElkZW50aWZpZXJPZjxUPj4AAxRoQ2xlYXJzIHRoZSBgSGlzdG9yaWNgIHNldC4ADQFgbWFwX2N1cnNvcmAgbXVzdCBiZSBzZXQgdG8gdGhlIGxhc3QgdmFsdWUgdGhhdCB3YXMgcmV0dXJuZWQgYnkgdGhlXQFgSGlzdG9yaWNDbGVhcmVkYCBldmVudC4gVGhlIGZpcnN0IHRpbWUgYE5vbmVgIGNhbiBiZSB1c2VkLiBgbGltaXRgIG11c3QgYmUgY2hvc2VuIGluIGGod2F5IHRoYXQgd2lsbCByZXN1bHQgaW4gYSBzZW5zaWJsZSB3ZWlnaHQuBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLnkGBBhPcHRpb24EBFQBfQYBCBBOb25lAAAAEFNvbWUEAH0GAAABAAB9BghEcGFsbGV0X21pZ3JhdGlvbnM8TWlncmF0aW9uQ3Vyc29yCBhDdXJzb3IBjQMsQmxvY2tOdW1iZXIBKAEIGEFjdGl2ZQQAgQYBhEFjdGl2ZUN1cnNvcjxDdXJzb3IsIEJsb2NrTnVtYmVyPgAAABRTdHVjawABAACBBghEcGFsbGV0X21pZ3JhdGlvbnMwQWN0aXZlQ3Vyc29yCBhDdXJzb3IBjQMsQmxvY2tOdW1iZXIBKAAMARRpbmRleCgBDHUzMgABMGlubmVyX2N1cnNvcoUGAThPcHRpb248Q3Vyc29yPgABKHN0YXJ0ZWRfYXQoASxCbG9ja051bWJlcgAAhQYEGE9wdGlvbgQEVAGNAwEIEE5vbmUAAAAQU29tZQQAjQMAAAEAAIkGCERwYWxsZXRfbWlncmF0aW9uc1xIaXN0b3JpY0NsZWFudXBTZWxlY3RvcgQISWQBfQMBCCBTcGVjaWZpYwQAjQYBHFZlYzxJZD4AAAAgV2lsZGNhcmQIARRsaW1pdHQBLE9wdGlvbjx1MzI+AAE8cHJldmlvdXNfY3Vyc29ykQYBPE9wdGlvbjxWZWM8dTg+PgABAACNBgAAAn0DAJEGBBhPcHRpb24EBFQBFAEIEE5vbmUAAAAQU29tZQQAFAAAAQAAlQYMIG9ybWxfeGNtGG1vZHVsZRBDYWxsBARUAAEERHNlbmRfYXNfc292ZXJlaWduCAEQZGVzdK0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAEcbWVzc2FnZfkEAVRCb3g8VmVyc2lvbmVkWGNtPCgpPj4AAASsU2VuZCBhbiBYQ00gbWVzc2FnZSBhcyBwYXJhY2hhaW4gc292ZXJlaWduLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6ZBgwwb3JtbF94dG9rZW5zGG1vZHVsZRBDYWxsBARUAAEYIHRyYW5zZmVyEAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQABEGRlc3StBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABRGRlc3Rfd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0AAAwbFRyYW5zZmVyIG5hdGl2ZSBjdXJyZW5jaWVzLgD8YGRlc3Rfd2VpZ2h0X2xpbWl0YCBpcyB0aGUgd2VpZ2h0IGZvciBYQ00gZXhlY3V0aW9uIG9uIHRoZSBkZXN0CQFjaGFpbiwgYW5kIGl0IHdvdWxkIGJlIGNoYXJnZWQgZnJvbSB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzLiBJZiBzZXQFAWJlbG93IHJlcXVpcmVtZW50cywgdGhlIGV4ZWN1dGlvbiBtYXkgZmFpbCBhbmQgYXNzZXRzIHdvdWxkbid0IGJlJHJlY2VpdmVkLgARAUl0J3MgYSBuby1vcCBpZiBhbnkgZXJyb3Igb24gbG9jYWwgWENNIGV4ZWN1dGlvbiBvciBtZXNzYWdlIHNlbmRpbmcu+E5vdGUgc2VuZGluZyBhc3NldHMgb3V0IHBlciBzZSBkb2Vzbid0IGd1YXJhbnRlZSB0aGV5IHdvdWxkIGJlEQFyZWNlaXZlZC4gUmVjZWl2aW5nIGRlcGVuZHMgb24gaWYgdGhlIFhDTSBtZXNzYWdlIGNvdWxkIGJlIGRlbGl2ZXJlZNxieSB0aGUgbmV0d29yaywgYW5kIGlmIHRoZSByZWNlaXZpbmcgY2hhaW4gd291bGQgaGFuZGxlTG1lc3NhZ2VzIGNvcnJlY3RseS5MdHJhbnNmZXJfbXVsdGlhc3NldAwBFGFzc2V0nQYBTEJveDxWZXJzaW9uZWRBc3NldD4AARBkZXN0rQQBWEJveDxWZXJzaW9uZWRMb2NhdGlvbj4AAURkZXN0X3dlaWdodF9saW1pdGUFASxXZWlnaHRMaW1pdAABMERUcmFuc2ZlciBgQXNzZXRgLgD8YGRlc3Rfd2VpZ2h0X2xpbWl0YCBpcyB0aGUgd2VpZ2h0IGZvciBYQ00gZXhlY3V0aW9uIG9uIHRoZSBkZXN0CQFjaGFpbiwgYW5kIGl0IHdvdWxkIGJlIGNoYXJnZWQgZnJvbSB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzLiBJZiBzZXQFAWJlbG93IHJlcXVpcmVtZW50cywgdGhlIGV4ZWN1dGlvbiBtYXkgZmFpbCBhbmQgYXNzZXRzIHdvdWxkbid0IGJlJHJlY2VpdmVkLgARAUl0J3MgYSBuby1vcCBpZiBhbnkgZXJyb3Igb24gbG9jYWwgWENNIGV4ZWN1dGlvbiBvciBtZXNzYWdlIHNlbmRpbmcu+E5vdGUgc2VuZGluZyBhc3NldHMgb3V0IHBlciBzZSBkb2Vzbid0IGd1YXJhbnRlZSB0aGV5IHdvdWxkIGJlEQFyZWNlaXZlZC4gUmVjZWl2aW5nIGRlcGVuZHMgb24gaWYgdGhlIFhDTSBtZXNzYWdlIGNvdWxkIGJlIGRlbGl2ZXJlZNxieSB0aGUgbmV0d29yaywgYW5kIGlmIHRoZSByZWNlaXZpbmcgY2hhaW4gd291bGQgaGFuZGxlTG1lc3NhZ2VzIGNvcnJlY3RseS5EdHJhbnNmZXJfd2l0aF9mZWUUASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAEMZmVlQAEoVDo6QmFsYW5jZQABEGRlc3StBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABRGRlc3Rfd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0AAJU7FRyYW5zZmVyIG5hdGl2ZSBjdXJyZW5jaWVzIHNwZWNpZnlpbmcgdGhlIGZlZSBhbmQgYW1vdW50IGFzJHNlcGFyYXRlLgD8YGRlc3Rfd2VpZ2h0X2xpbWl0YCBpcyB0aGUgd2VpZ2h0IGZvciBYQ00gZXhlY3V0aW9uIG9uIHRoZSBkZXN0CQFjaGFpbiwgYW5kIGl0IHdvdWxkIGJlIGNoYXJnZWQgZnJvbSB0aGUgdHJhbnNmZXJyZWQgYXNzZXRzLiBJZiBzZXQFAWJlbG93IHJlcXVpcmVtZW50cywgdGhlIGV4ZWN1dGlvbiBtYXkgZmFpbCBhbmQgYXNzZXRzIHdvdWxkbid0IGJlJHJlY2VpdmVkLgANAWBmZWVgIGlzIHRoZSBhbW91bnQgdG8gYmUgc3BlbnQgdG8gcGF5IGZvciBleGVjdXRpb24gaW4gZGVzdGluYXRpb274Y2hhaW4uIEJvdGggZmVlIGFuZCBhbW91bnQgd2lsbCBiZSBzdWJ0cmFjdGVkIGZvcm0gdGhlIGNhbGxlcnMgYmFsYW5jZS4ADQFJZiBgZmVlYCBpcyBub3QgaGlnaCBlbm91Z2ggdG8gY292ZXIgZm9yIHRoZSBleGVjdXRpb24gY29zdHMgaW4gdGhl5GRlc3RpbmF0aW9uIGNoYWluLCB0aGVuIHRoZSBhc3NldHMgd2lsbCBiZSB0cmFwcGVkIGluIHRoZURkZXN0aW5hdGlvbiBjaGFpbgARAUl0J3MgYSBuby1vcCBpZiBhbnkgZXJyb3Igb24gbG9jYWwgWENNIGV4ZWN1dGlvbiBvciBtZXNzYWdlIHNlbmRpbmcu+E5vdGUgc2VuZGluZyBhc3NldHMgb3V0IHBlciBzZSBkb2Vzbid0IGd1YXJhbnRlZSB0aGV5IHdvdWxkIGJlEQFyZWNlaXZlZC4gUmVjZWl2aW5nIGRlcGVuZHMgb24gaWYgdGhlIFhDTSBtZXNzYWdlIGNvdWxkIGJlIGRlbGl2ZXJlZNxieSB0aGUgbmV0d29yaywgYW5kIGlmIHRoZSByZWNlaXZpbmcgY2hhaW4gd291bGQgaGFuZGxlTG1lc3NhZ2VzIGNvcnJlY3RseS5wdHJhbnNmZXJfbXVsdGlhc3NldF93aXRoX2ZlZRABFGFzc2V0nQYBTEJveDxWZXJzaW9uZWRBc3NldD4AAQxmZWWdBgFMQm94PFZlcnNpb25lZEFzc2V0PgABEGRlc3StBAFYQm94PFZlcnNpb25lZExvY2F0aW9uPgABRGRlc3Rfd2VpZ2h0X2xpbWl0ZQUBLFdlaWdodExpbWl0AANU7FRyYW5zZmVyIGBBc3NldGAgc3BlY2lmeWluZyB0aGUgZmVlIGFuZCBhbW91bnQgYXMgc2VwYXJhdGUuAPxgZGVzdF93ZWlnaHRfbGltaXRgIGlzIHRoZSB3ZWlnaHQgZm9yIFhDTSBleGVjdXRpb24gb24gdGhlIGRlc3QJAWNoYWluLCBhbmQgaXQgd291bGQgYmUgY2hhcmdlZCBmcm9tIHRoZSB0cmFuc2ZlcnJlZCBhc3NldHMuIElmIHNldAUBYmVsb3cgcmVxdWlyZW1lbnRzLCB0aGUgZXhlY3V0aW9uIG1heSBmYWlsIGFuZCBhc3NldHMgd291bGRuJ3QgYmUkcmVjZWl2ZWQuANhgZmVlYCBpcyB0aGUgQXNzZXQgdG8gYmUgc3BlbnQgdG8gcGF5IGZvciBleGVjdXRpb24gaW4JAWRlc3RpbmF0aW9uIGNoYWluLiBCb3RoIGZlZSBhbmQgYW1vdW50IHdpbGwgYmUgc3VidHJhY3RlZCBmb3JtIHRoZREBY2FsbGVycyBiYWxhbmNlIEZvciBub3cgd2Ugb25seSBhY2NlcHQgZmVlIGFuZCBhc3NldCBoYXZpbmcgdGhlIHNhbWU4YExvY2F0aW9uYCBpZC4ADQFJZiBgZmVlYCBpcyBub3QgaGlnaCBlbm91Z2ggdG8gY292ZXIgZm9yIHRoZSBleGVjdXRpb24gY29zdHMgaW4gdGhl5GRlc3RpbmF0aW9uIGNoYWluLCB0aGVuIHRoZSBhc3NldHMgd2lsbCBiZSB0cmFwcGVkIGluIHRoZURkZXN0aW5hdGlvbiBjaGFpbgARAUl0J3MgYSBuby1vcCBpZiBhbnkgZXJyb3Igb24gbG9jYWwgWENNIGV4ZWN1dGlvbiBvciBtZXNzYWdlIHNlbmRpbmcu+E5vdGUgc2VuZGluZyBhc3NldHMgb3V0IHBlciBzZSBkb2Vzbid0IGd1YXJhbnRlZSB0aGV5IHdvdWxkIGJlEQFyZWNlaXZlZC4gUmVjZWl2aW5nIGRlcGVuZHMgb24gaWYgdGhlIFhDTSBtZXNzYWdlIGNvdWxkIGJlIGRlbGl2ZXJlZNxieSB0aGUgbmV0d29yaywgYW5kIGlmIHRoZSByZWNlaXZpbmcgY2hhaW4gd291bGQgaGFuZGxlTG1lc3NhZ2VzIGNvcnJlY3RseS5gdHJhbnNmZXJfbXVsdGljdXJyZW5jaWVzEAEoY3VycmVuY2llc6EGAYBWZWM8KFQ6OkN1cnJlbmN5SWQsIFQ6OkJhbGFuY2UpPgABIGZlZV9pdGVtKAEMdTMyAAEQZGVzdK0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAFEZGVzdF93ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQABDwFAVRyYW5zZmVyIHNldmVyYWwgY3VycmVuY2llcyBzcGVjaWZ5aW5nIHRoZSBpdGVtIHRvIGJlIHVzZWQgYXMgZmVlAPxgZGVzdF93ZWlnaHRfbGltaXRgIGlzIHRoZSB3ZWlnaHQgZm9yIFhDTSBleGVjdXRpb24gb24gdGhlIGRlc3QJAWNoYWluLCBhbmQgaXQgd291bGQgYmUgY2hhcmdlZCBmcm9tIHRoZSB0cmFuc2ZlcnJlZCBhc3NldHMuIElmIHNldAUBYmVsb3cgcmVxdWlyZW1lbnRzLCB0aGUgZXhlY3V0aW9uIG1heSBmYWlsIGFuZCBhc3NldHMgd291bGRuJ3QgYmUkcmVjZWl2ZWQuAA0BYGZlZV9pdGVtYCBpcyBpbmRleCBvZiB0aGUgY3VycmVuY2llcyB0dXBsZSB0aGF0IHdlIHdhbnQgdG8gdXNlIGZvchxwYXltZW50ABEBSXQncyBhIG5vLW9wIGlmIGFueSBlcnJvciBvbiBsb2NhbCBYQ00gZXhlY3V0aW9uIG9yIG1lc3NhZ2Ugc2VuZGluZy74Tm90ZSBzZW5kaW5nIGFzc2V0cyBvdXQgcGVyIHNlIGRvZXNuJ3QgZ3VhcmFudGVlIHRoZXkgd291bGQgYmURAXJlY2VpdmVkLiBSZWNlaXZpbmcgZGVwZW5kcyBvbiBpZiB0aGUgWENNIG1lc3NhZ2UgY291bGQgYmUgZGVsaXZlcmVk3GJ5IHRoZSBuZXR3b3JrLCBhbmQgaWYgdGhlIHJlY2VpdmluZyBjaGFpbiB3b3VsZCBoYW5kbGVMbWVzc2FnZXMgY29ycmVjdGx5LlB0cmFuc2Zlcl9tdWx0aWFzc2V0cxABGGFzc2V0czEGAVBCb3g8VmVyc2lvbmVkQXNzZXRzPgABIGZlZV9pdGVtKAEMdTMyAAEQZGVzdK0EAVhCb3g8VmVyc2lvbmVkTG9jYXRpb24+AAFEZGVzdF93ZWlnaHRfbGltaXRlBQEsV2VpZ2h0TGltaXQABTz4VHJhbnNmZXIgc2V2ZXJhbCBgQXNzZXRgIHNwZWNpZnlpbmcgdGhlIGl0ZW0gdG8gYmUgdXNlZCBhcyBmZWUA/GBkZXN0X3dlaWdodF9saW1pdGAgaXMgdGhlIHdlaWdodCBmb3IgWENNIGV4ZWN1dGlvbiBvbiB0aGUgZGVzdAkBY2hhaW4sIGFuZCBpdCB3b3VsZCBiZSBjaGFyZ2VkIGZyb20gdGhlIHRyYW5zZmVycmVkIGFzc2V0cy4gSWYgc2V0BQFiZWxvdyByZXF1aXJlbWVudHMsIHRoZSBleGVjdXRpb24gbWF5IGZhaWwgYW5kIGFzc2V0cyB3b3VsZG4ndCBiZSRyZWNlaXZlZC4A5GBmZWVfaXRlbWAgaXMgaW5kZXggb2YgdGhlIEFzc2V0cyB0aGF0IHdlIHdhbnQgdG8gdXNlIGZvchxwYXltZW50ABEBSXQncyBhIG5vLW9wIGlmIGFueSBlcnJvciBvbiBsb2NhbCBYQ00gZXhlY3V0aW9uIG9yIG1lc3NhZ2Ugc2VuZGluZy74Tm90ZSBzZW5kaW5nIGFzc2V0cyBvdXQgcGVyIHNlIGRvZXNuJ3QgZ3VhcmFudGVlIHRoZXkgd291bGQgYmURAXJlY2VpdmVkLiBSZWNlaXZpbmcgZGVwZW5kcyBvbiBpZiB0aGUgWENNIG1lc3NhZ2UgY291bGQgYmUgZGVsaXZlcmVk3GJ5IHRoZSBuZXR3b3JrLCBhbmQgaWYgdGhlIHJlY2VpdmluZyBjaGFpbiB3b3VsZCBoYW5kbGVMbWVzc2FnZXMgY29ycmVjdGx5LgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6dBggMeGNtOFZlcnNpb25lZEFzc2V0AAEMCFYzBAARBQE4djM6Ok11bHRpQXNzZXQAAwAIVjQEAH0FASR2NDo6QXNzZXQABAAIVjUEAMkFASR2NTo6QXNzZXQABQAAoQYAAAI9AwClBgxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQQQ2FsbAQEVAABJERzZXRfaW52dWxuZXJhYmxlcwQBDG5ld0gBRFZlYzxUOjpBY2NvdW50SWQ+AAA0MQFTZXQgdGhlIGxpc3Qgb2YgaW52dWxuZXJhYmxlIChmaXhlZCkgY29sbGF0b3JzLiBUaGVzZSBjb2xsYXRvcnMgbXVzdCBkbyBzb21l0HByZXBhcmF0aW9uLCBuYW1lbHkgdG8gaGF2ZSByZWdpc3RlcmVkIHNlc3Npb24ga2V5cy4AWQFUaGUgY2FsbCB3aWxsIHJlbW92ZSBhbnkgYWNjb3VudHMgdGhhdCBoYXZlIG5vdCByZWdpc3RlcmVkIGtleXMgZnJvbSB0aGUgc2V0LiBUaGF0IGlzLF0BaXQgaXMgbm9uLWF0b21pYzsgdGhlIGNhbGxlciBhY2NlcHRzIGFsbCBgQWNjb3VudElkYHMgcGFzc2VkIGluIGBuZXdgIF9pbmRpdmlkdWFsbHlfIGFzMQFhY2NlcHRhYmxlIEludnVsbmVyYWJsZXMsIGFuZCBpcyBub3QgcHJvcG9zaW5nIGEgX3NldF8gb2YgbmV3IEludnVsbmVyYWJsZXMuAFkBVGhpcyBjYWxsIGRvZXMgbm90IG1haW50YWluIG11dHVhbCBleGNsdXNpdml0eSBvZiBgSW52dWxuZXJhYmxlc2AgYW5kIGBDYW5kaWRhdGVzYC4gSXRhAWlzIHJlY29tbWVuZGVkIHRvIHVzZSBhIGJhdGNoIG9mIGBhZGRfaW52dWxuZXJhYmxlYCBhbmQgYHJlbW92ZV9pbnZ1bG5lcmFibGVgIGluc3RlYWQuIEFRAWBiYXRjaF9hbGxgIGNhbiBhbHNvIGJlIHVzZWQgdG8gZW5mb3JjZSBhdG9taWNpdHkuIElmIGFueSBjYW5kaWRhdGVzIGFyZSBpbmNsdWRlZCBpbk0BYG5ld2AsIHRoZXkgc2hvdWxkIGJlIHJlbW92ZWQgd2l0aCBgcmVtb3ZlX2ludnVsbmVyYWJsZV9jYW5kaWRhdGVgIGFmdGVyIGV4ZWN1dGlvbi4AlE11c3QgYmUgY2FsbGVkIGJ5IHRoZSBgVXBkYXRlT3JpZ2luYC5Yc2V0X2Rlc2lyZWRfY2FuZGlkYXRlcwQBDG1heCgBDHUzMgABFFUBU2V0IHRoZSBpZGVhbCBudW1iZXIgb2Ygbm9uLWludnVsbmVyYWJsZSBjb2xsYXRvcnMuIElmIGxvd2VyaW5nIHRoaXMgbnVtYmVyLCB0aGVuIHRoZWEBbnVtYmVyIG9mIHJ1bm5pbmcgY29sbGF0b3JzIGNvdWxkIGJlIGhpZ2hlciB0aGFuIHRoaXMgZmlndXJlLiBBc2lkZSBmcm9tIHRoYXQgZWRnZSBjYXNlLDUBdGhlcmUgc2hvdWxkIGJlIG5vIG90aGVyIHdheSB0byBoYXZlIG1vcmUgY2FuZGlkYXRlcyB0aGFuIHRoZSBkZXNpcmVkIG51bWJlci4A0FRoZSBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBgVXBkYXRlT3JpZ2luYC5Ic2V0X2NhbmRpZGFjeV9ib25kBAEQYm9uZEABMEJhbGFuY2VPZjxUPgACHHhTZXQgdGhlIGNhbmRpZGFjeSBib25kIGFtb3VudC4AUQFJZiB0aGUgY2FuZGlkYWN5IGJvbmQgaXMgaW5jcmVhc2VkIGJ5IHRoaXMgY2FsbCwgYWxsIGN1cnJlbnQgY2FuZGlkYXRlcyB3aGljaCBoYXZlIGFNAWRlcG9zaXQgbG93ZXIgdGhhbiB0aGUgbmV3IGJvbmQgd2lsbCBiZSBraWNrZWQgZnJvbSB0aGUgbGlzdCBhbmQgZ2V0IHRoZWlyIGRlcG9zaXRzFGJhY2suANBUaGUgb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSB0aGUgYFVwZGF0ZU9yaWdpbmAuVHJlZ2lzdGVyX2FzX2NhbmRpZGF0ZQADEEEBUmVnaXN0ZXIgdGhpcyBhY2NvdW50IGFzIGEgY29sbGF0b3IgY2FuZGlkYXRlLiBUaGUgYWNjb3VudCBtdXN0IChhKSBhbHJlYWR5IGhhdmUdAXJlZ2lzdGVyZWQgc2Vzc2lvbiBrZXlzIGFuZCAoYikgYmUgYWJsZSB0byByZXNlcnZlIHRoZSBgQ2FuZGlkYWN5Qm9uZGAuANxUaGlzIGNhbGwgaXMgbm90IGF2YWlsYWJsZSB0byBgSW52dWxuZXJhYmxlYCBjb2xsYXRvcnMuMGxlYXZlX2ludGVudAAEFFUBRGVyZWdpc3RlciBgb3JpZ2luYCBhcyBhIGNvbGxhdG9yIGNhbmRpZGF0ZS4gTm90ZSB0aGF0IHRoZSBjb2xsYXRvciBjYW4gb25seSBsZWF2ZSBvbg0Bc2Vzc2lvbiBjaGFuZ2UuIFRoZSBgQ2FuZGlkYWN5Qm9uZGAgd2lsbCBiZSB1bnJlc2VydmVkIGltbWVkaWF0ZWx5LgAZAVRoaXMgY2FsbCB3aWxsIGZhaWwgaWYgdGhlIHRvdGFsIG51bWJlciBvZiBjYW5kaWRhdGVzIHdvdWxkIGRyb3AgYmVsb3dcYE1pbkVsaWdpYmxlQ29sbGF0b3JzYC5AYWRkX2ludnVsbmVyYWJsZQQBDHdobwABMFQ6OkFjY291bnRJZAAFEEUBQWRkIGEgbmV3IGFjY291bnQgYHdob2AgdG8gdGhlIGxpc3Qgb2YgYEludnVsbmVyYWJsZXNgIGNvbGxhdG9ycy4gYHdob2AgbXVzdCBoYXZlHQFyZWdpc3RlcmVkIHNlc3Npb24ga2V5cy4gSWYgYHdob2AgaXMgYSBjYW5kaWRhdGUsIHRoZXkgd2lsbCBiZSByZW1vdmVkLgDQVGhlIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgdGhlIGBVcGRhdGVPcmlnaW5gLkxyZW1vdmVfaW52dWxuZXJhYmxlBAEMd2hvAAEwVDo6QWNjb3VudElkAAYQYQFSZW1vdmUgYW4gYWNjb3VudCBgd2hvYCBmcm9tIHRoZSBsaXN0IG9mIGBJbnZ1bG5lcmFibGVzYCBjb2xsYXRvcnMuIGBJbnZ1bG5lcmFibGVzYCBtdXN0KGJlIHNvcnRlZC4A0FRoZSBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIHRoZSBgVXBkYXRlT3JpZ2luYC4sdXBkYXRlX2JvbmQEASxuZXdfZGVwb3NpdEABMEJhbGFuY2VPZjxUPgAHHF0BVXBkYXRlIHRoZSBjYW5kaWRhY3kgYm9uZCBvZiBjb2xsYXRvciBjYW5kaWRhdGUgYG9yaWdpbmAgdG8gYSBuZXcgYW1vdW50IGBuZXdfZGVwb3NpdGAuAEEBU2V0dGluZyBhIGBuZXdfZGVwb3NpdGAgdGhhdCBpcyBsb3dlciB0aGFuIHRoZSBjdXJyZW50IGRlcG9zaXQgd2hpbGUgYG9yaWdpbmAgaXPgb2NjdXB5aW5nIGEgdG9wLWBEZXNpcmVkQ2FuZGlkYXRlc2Agc2xvdCBpcyBub3QgYWxsb3dlZC4AWQFUaGlzIGNhbGwgd2lsbCBmYWlsIGlmIGBvcmlnaW5gIGlzIG5vdCBhIGNvbGxhdG9yIGNhbmRpZGF0ZSwgdGhlIHVwZGF0ZWQgYm9uZCBpcyBsb3dlchkBdGhhbiB0aGUgbWluaW11bSBjYW5kaWRhY3kgYm9uZCwgYW5kL29yIHRoZSBhbW91bnQgY2Fubm90IGJlIHJlc2VydmVkLkx0YWtlX2NhbmRpZGF0ZV9zbG90CAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgABGHRhcmdldAABMFQ6OkFjY291bnRJZAAIHE0BVGhlIGNhbGxlciBgb3JpZ2luYCByZXBsYWNlcyBhIGNhbmRpZGF0ZSBgdGFyZ2V0YCBpbiB0aGUgY29sbGF0b3IgY2FuZGlkYXRlIGxpc3QgYnlVAXJlc2VydmluZyBgZGVwb3NpdGAuIFRoZSBhbW91bnQgYGRlcG9zaXRgIHJlc2VydmVkIGJ5IHRoZSBjYWxsZXIgbXVzdCBiZSBncmVhdGVyIHRoYW7gdGhlIGV4aXN0aW5nIGJvbmQgb2YgdGhlIHRhcmdldCBpdCBpcyB0cnlpbmcgdG8gcmVwbGFjZS4AWQFUaGlzIGNhbGwgd2lsbCBmYWlsIGlmIHRoZSBjYWxsZXIgaXMgYWxyZWFkeSBhIGNvbGxhdG9yIGNhbmRpZGF0ZSBvciBpbnZ1bG5lcmFibGUsIHRoZVUBY2FsbGVyIGRvZXMgbm90IGhhdmUgcmVnaXN0ZXJlZCBzZXNzaW9uIGtleXMsIHRoZSB0YXJnZXQgaXMgbm90IGEgY29sbGF0b3IgY2FuZGlkYXRlLLxhbmQvb3IgdGhlIGBkZXBvc2l0YCBhbW91bnQgY2Fubm90IGJlIHJlc2VydmVkLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy6pBgw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0EENhbGwEBFQAAQggc2V0X2tleXMIARBrZXlzrQYBHFQ6OktleXMAARRwcm9vZhQBHFZlYzx1OD4AACTkU2V0cyB0aGUgc2Vzc2lvbiBrZXkocykgb2YgdGhlIGZ1bmN0aW9uIGNhbGxlciB0byBga2V5c2AuHQFBbGxvd3MgYW4gYWNjb3VudCB0byBzZXQgaXRzIHNlc3Npb24ga2V5IHByaW9yIHRvIGJlY29taW5nIGEgdmFsaWRhdG9yLsBUaGlzIGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIG5leHQgc2Vzc2lvbi4A0FRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBmdW5jdGlvbiBtdXN0IGJlIHNpZ25lZC4ANCMjIENvbXBsZXhpdHlZAS0gYE8oMSlgLiBBY3R1YWwgY29zdCBkZXBlbmRzIG9uIHRoZSBudW1iZXIgb2YgbGVuZ3RoIG9mIGBUOjpLZXlzOjprZXlfaWRzKClgIHdoaWNoIGlzICAgZml4ZWQuKHB1cmdlX2tleXMAATDIUmVtb3ZlcyBhbnkgc2Vzc2lvbiBrZXkocykgb2YgdGhlIGZ1bmN0aW9uIGNhbGxlci4AwFRoaXMgZG9lc24ndCB0YWtlIGVmZmVjdCB1bnRpbCB0aGUgbmV4dCBzZXNzaW9uLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBmdW5jdGlvbiBtdXN0IGJlIFNpZ25lZCBhbmQgdGhlIGFjY291bnQgbXVzdCBiZSBlaXRoZXIgYmVdAWNvbnZlcnRpYmxlIHRvIGEgdmFsaWRhdG9yIElEIHVzaW5nIHRoZSBjaGFpbidzIHR5cGljYWwgYWRkcmVzc2luZyBzeXN0ZW0gKHRoaXMgdXN1YWxseVEBbWVhbnMgYmVpbmcgYSBjb250cm9sbGVyIGFjY291bnQpIG9yIGRpcmVjdGx5IGNvbnZlcnRpYmxlIGludG8gYSB2YWxpZGF0b3IgSUQgKHdoaWNolHVzdWFsbHkgbWVhbnMgYmVpbmcgYSBzdGFzaCBhY2NvdW50KS4ANCMjIENvbXBsZXhpdHk9AS0gYE8oMSlgIGluIG51bWJlciBvZiBrZXkgdHlwZXMuIEFjdHVhbCBjb3N0IGRlcGVuZHMgb24gdGhlIG51bWJlciBvZiBsZW5ndGggb2aYICBgVDo6S2V5czo6a2V5X2lkcygpYCB3aGljaCBpcyBmaXhlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMurQYMPGh5ZHJhZHhfcnVudGltZRhvcGFxdWUsU2Vzc2lvbktleXMAAAQBEGF1cmGxBgHEPEF1cmEgYXMgJGNyYXRlOjpCb3VuZFRvUnVudGltZUFwcFB1YmxpYz46OlB1YmxpYwAAsQYQRHNwX2NvbnNlbnN1c19hdXJhHHNyMjU1MTksYXBwX3NyMjU1MTkYUHVibGljAAAEAAQBPHNyMjU1MTk6OlB1YmxpYwAAtQYMRHBhbGxldF9lbWFfb3JhY2xlGHBhbGxldBBDYWxsBARUAAEkKGFkZF9vcmFjbGUIARhzb3VyY2UhAQEYU291cmNlAAEYYXNzZXRzqQIBSChBc3NldElkLCBBc3NldElkKQAAIPhBZGQgYW4gb3JhY2xlIHRvIHRoZSB3aGl0ZWxpc3Qgc28gaXQgaXMgdHJhY2tlZCBieSB0aGUgcGFsbGV0LgAsUGFyYW1ldGVyczp0LSBgb3JpZ2luYDogYEF1dGhvcml0eU9yaWdpbmCILSBgc291cmNlYDogZGF0YSBzb3VyY2UgaWRlbnRpZmllcowtIGBhc3NldHNgOiB0aGUgYXNzZXQgcGFpciB0byB0cmFjawC8RW1pdHMgYEFkZGVkVG9XaGl0ZWxpc3RgIGV2ZW50IHdoZW4gc3VjY2Vzc2Z1bC40cmVtb3ZlX29yYWNsZQgBGHNvdXJjZSEBARhTb3VyY2UAARhhc3NldHOpAgFIKEFzc2V0SWQsIEFzc2V0SWQpAAEgGQFSZW1vdmUgYW4gb3JhY2xlIGZyb20gdGhlIHdoaXRlbGlzdCBhbmQgZGVsZXRlIGFsbCBpdHMgc3RvcmVkIGVudHJpZXMuACxQYXJhbWV0ZXJzOnQtIGBvcmlnaW5gOiBgQXV0aG9yaXR5T3JpZ2luYIgtIGBzb3VyY2VgOiBkYXRhIHNvdXJjZSBpZGVudGlmaWVyrC0gYGFzc2V0c2A6IHRoZSBhc3NldCBwYWlyIHRvIHN0b3AgdHJhY2tpbmcAzEVtaXRzIGBSZW1vdmVkRnJvbVdoaXRlbGlzdGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLlR1cGRhdGVfYmlmcm9zdF9vcmFjbGUMARxhc3NldF9hrQQBkEJveDxwb2xrYWRvdF94Y206OlZlcnNpb25lZExvY2F0aW9uPgABHGFzc2V0X2KtBAGQQm94PHBvbGthZG90X3hjbTo6VmVyc2lvbmVkTG9jYXRpb24+AAEUcHJpY2V9AgFIKEJhbGFuY2UsIEJhbGFuY2UpAAIkVQFVcGRhdGUgYW4gb3JhY2xlIGVudHJ5IGZvciBCSUZST1NUX1NPVVJDRS4gVGhpbiB3cmFwcGVyIGFyb3VuZCBgc2V0X2V4dGVybmFsX29yYWNsZWAuACxQYXJhbWV0ZXJzOmkBLSBgb3JpZ2luYDogc2lnbmVkIG9yaWdpbiDigJQgbXVzdCBiZSBhdXRob3JpemVkIGZvciB0aGUgc3BlY2lmaWMgYChCSUZST1NUX1NPVVJDRSwgcGFpcilgsC0gYGFzc2V0X2FgOiBYQ00gbG9jYXRpb24gb2YgdGhlIGZpcnN0IGFzc2V0tC0gYGFzc2V0X2JgOiBYQ00gbG9jYXRpb24gb2YgdGhlIHNlY29uZCBhc3NldLgtIGBwcmljZWA6IHByaWNlIGFzIGAobnVtZXJhdG9yLCBkZW5vbWluYXRvcilgANhFbWl0cyBgT3JhY2xlVXBkYXRlZGAgZXZlbnQgb24gdGhlIG5leHQgYG9uX2ZpbmFsaXplYC5Mc2V0X2V4dGVybmFsX29yYWNsZRABGHNvdXJjZSEBARhTb3VyY2UAARxhc3NldF9hrQQBkEJveDxwb2xrYWRvdF94Y206OlZlcnNpb25lZExvY2F0aW9uPgABHGFzc2V0X2KtBAGQQm94PHBvbGthZG90X3hjbTo6VmVyc2lvbmVkTG9jYXRpb24+AAEUcHJpY2V9AgFIKEJhbGFuY2UsIEJhbGFuY2UpAAY01FN1Ym1pdCBhbiBvcmFjbGUgcHJpY2UgdXBkYXRlIGZvciBhbiBleHRlcm5hbCBzb3VyY2UuALBUaGUgY2FsbCBpcyBmZWVsZXNzIG9uIHN1Y2Nlc3MgKGBQYXlzOjpOb2ApLgAsUGFyYW1ldGVyczpZAS0gYG9yaWdpbmA6IHNpZ25lZCBvcmlnaW4g4oCUIG11c3QgYmUgYXV0aG9yaXplZCBmb3IgdGhlIHNwZWNpZmljIGAoc291cmNlLCBwYWlyKWAgdmlhaCAgYGFkZF9hdXRob3JpemVkX2FjY291bnRgaQEtIGBzb3VyY2VgOiBleHRlcm5hbCBzb3VyY2UgaWRlbnRpZmllciAobXVzdCBiZSByZWdpc3RlcmVkIHZpYSBgcmVnaXN0ZXJfZXh0ZXJuYWxfc291cmNlYCmwLSBgYXNzZXRfYWA6IFhDTSBsb2NhdGlvbiBvZiB0aGUgZmlyc3QgYXNzZXS0LSBgYXNzZXRfYmA6IFhDTSBsb2NhdGlvbiBvZiB0aGUgc2Vjb25kIGFzc2V0IQEtIGBwcmljZWA6IHByaWNlIGFzIGAobnVtZXJhdG9yLCBkZW5vbWluYXRvcilgIOKAlCBib3RoIG11c3QgYmUgbm9uLXplcm8A2EVtaXRzIGBPcmFjbGVVcGRhdGVkYCBldmVudCBvbiB0aGUgbmV4dCBgb25fZmluYWxpemVgLmhzZXRfZXh0ZXJuYWxfb3JhY2xlX2J5X2lkcxABGHNvdXJjZSEBARhTb3VyY2UAARxhc3NldF9hKAEcQXNzZXRJZAABHGFzc2V0X2IoARxBc3NldElkAAEUcHJpY2V9AgFIKEJhbGFuY2UsIEJhbGFuY2UpAAhIAQFVcGRhdGUgYW4gZXh0ZXJuYWwgb3JhY2xlIGVudHJ5IHVzaW5nIGxvY2FsIGBBc3NldElkYHMgZGlyZWN0bHkuAEEBQ2hlYXBlciB2YXJpYW50IG9mIGBzZXRfZXh0ZXJuYWxfb3JhY2xlYCBmb3IgY2FsbGVycyB0aGF0IGFscmVhZHkga25vdyB0aGUgbG9jYWwtAUFzc2V0SWRzIOKAlCBza2lwcyB0aGUgYFZlcnNpb25lZExvY2F0aW9uYCDihpIgYEFzc2V0SWRgIGNvbnZlcnNpb24gYW5kIHRoZS0BYEFzc2V0UmVnaXN0cnk6OkxvY2F0aW9uQXNzZXRzYCBzdG9yYWdlIHJlYWQuIEF1dGhvcml6YXRpb24gc2hhcmVzIHRoZSBzYW1l1GBBdXRob3JpemVkQWNjb3VudHNgIHN0b3JhZ2UgYXMgdGhlIGxvY2F0aW9uIHZhcmlhbnQuACxQYXJhbWV0ZXJzOlkBLSBgb3JpZ2luYDogc2lnbmVkIG9yaWdpbiDigJQgbXVzdCBiZSBhdXRob3JpemVkIGZvciB0aGUgc3BlY2lmaWMgYChzb3VyY2UsIHBhaXIpYCB2aWFoICBgYWRkX2F1dGhvcml6ZWRfYWNjb3VudGBpAS0gYHNvdXJjZWA6IGV4dGVybmFsIHNvdXJjZSBpZGVudGlmaWVyIChtdXN0IGJlIHJlZ2lzdGVyZWQgdmlhIGByZWdpc3Rlcl9leHRlcm5hbF9zb3VyY2VgKbQtIGBhc3NldF9hYDogbG9jYWwgQXNzZXRJZCBvZiB0aGUgZmlyc3QgYXNzZXS4LSBgYXNzZXRfYmA6IGxvY2FsIEFzc2V0SWQgb2YgdGhlIHNlY29uZCBhc3NldCEBLSBgcHJpY2VgOiBwcmljZSBhcyBgKG51bWVyYXRvciwgZGVub21pbmF0b3IpYCDigJQgYm90aCBtdXN0IGJlIG5vbi16ZXJvALBUaGUgY2FsbCBpcyBmZWVsZXNzIG9uIHN1Y2Nlc3MgKGBQYXlzOjpOb2ApLgDYRW1pdHMgYE9yYWNsZVVwZGF0ZWRgIGV2ZW50IG9uIHRoZSBuZXh0IGBvbl9maW5hbGl6ZWAuYHJlZ2lzdGVyX2V4dGVybmFsX3NvdXJjZQQBGHNvdXJjZSEBARhTb3VyY2UAAxyYUmVnaXN0ZXIgYSBuZXcgZXh0ZXJuYWwgb3JhY2xlIHNvdXJjZS4ALFBhcmFtZXRlcnM6dC0gYG9yaWdpbmA6IGBBdXRob3JpdHlPcmlnaW5gwC0gYHNvdXJjZWA6IDgtYnl0ZSBzb3VyY2UgaWRlbnRpZmllciB0byByZWdpc3RlcgDcRW1pdHMgYEV4dGVybmFsU291cmNlUmVnaXN0ZXJlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLlhyZW1vdmVfZXh0ZXJuYWxfc291cmNlBAEYc291cmNlIQEBGFNvdXJjZQAFIFUBUmVtb3ZlIGFuIGV4dGVybmFsIG9yYWNsZSBzb3VyY2UsIGl0cyBwZXItcGFpciBhdXRob3JpemF0aW9ucywgYW5kIEFMTCBvcmFjbGUgZGF0YSBpdE0BZXZlciB3cm90ZSAoYm90aCBjb21taXR0ZWQgYE9yYWNsZXNgIHJvd3MgYW5kIGFueSBpbi1mbGlnaHQgYEFjY3VtdWxhdG9yYCBlbnRyaWVzKS4ALFBhcmFtZXRlcnM6dC0gYG9yaWdpbmA6IGBBdXRob3JpdHlPcmlnaW5gnC0gYHNvdXJjZWA6IHNvdXJjZSBpZGVudGlmaWVyIHRvIHJlbW92ZQDQRW1pdHMgYEV4dGVybmFsU291cmNlUmVtb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLlhhZGRfYXV0aG9yaXplZF9hY2NvdW50DAEYc291cmNlIQEBGFNvdXJjZQABGGFzc2V0c6kCAUgoQXNzZXRJZCwgQXNzZXRJZCkAARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAQwNQFBdXRob3JpemUgYGFjY291bnRgIHRvIHN1Ym1pdCBvcmFjbGUgdXBkYXRlcyBmb3IgYSBzcGVjaWZpYyBgKHNvdXJjZSwgcGFpcilgLgA1AUF1dGhvcml6YXRpb24gaXMgc2NvcGVkIHBlci1wYWlyIHNvIGEgY29tcHJvbWlzZWQgYWNjb3VudCBjYW4gb25seSB1cGRhdGUgdGhl8HBhaXJzIGl0IHdhcyBleHBsaWNpdGx5IGdyYW50ZWQsIGxpbWl0aW5nIEREb1MgYmxhc3QgcmFkaXVzLgAsUGFyYW1ldGVyczp0LSBgb3JpZ2luYDogYEF1dGhvcml0eU9yaWdpbmANAS0gYHNvdXJjZWA6IGV4dGVybmFsIHNvdXJjZSBpZGVudGlmaWVyIChtdXN0IGFscmVhZHkgYmUgcmVnaXN0ZXJlZCkJAS0gYGFzc2V0c2A6IHRoZSBhc3NldCBwYWlyIHRvIGF1dGhvcml6ZSDigJQgc3RvcmVkIGluIG9yZGVyZWQgZm9ybZQtIGBhY2NvdW50YDogdGhlIGFjY291bnQgdG8gYXV0aG9yaXplANRFbWl0cyBgQXV0aG9yaXplZEFjY291bnRBZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLmRyZW1vdmVfYXV0aG9yaXplZF9hY2NvdW50DAEYc291cmNlIQEBGFNvdXJjZQABGGFzc2V0c6kCAUgoQXNzZXRJZCwgQXNzZXRJZCkAARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAckQQFSZXZva2Ugb3JhY2xlLXVwZGF0ZSBhdXRob3JpemF0aW9uIGZvciBgYWNjb3VudGAgb24gYSBzcGVjaWZpYyBgKHNvdXJjZSwgcGFpcilgLgAsUGFyYW1ldGVyczp0LSBgb3JpZ2luYDogYEF1dGhvcml0eU9yaWdpbmANAS0gYHNvdXJjZWA6IGV4dGVybmFsIHNvdXJjZSBpZGVudGlmaWVyIChtdXN0IGFscmVhZHkgYmUgcmVnaXN0ZXJlZCkBAS0gYGFzc2V0c2A6IHRoZSBhc3NldCBwYWlyIHRvIHJldm9rZSDigJQgbWF0Y2hlZCBpbiBvcmRlcmVkIGZvcm2ILSBgYWNjb3VudGA6IHRoZSBhY2NvdW50IHRvIHJldm9rZQDcRW1pdHMgYEF1dGhvcml6ZWRBY2NvdW50UmVtb3ZlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy65BgxAcGFsbGV0X2Jyb2FkY2FzdBhwYWxsZXQQQ2FsbAQEVAABAAQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy69BgxQcGFsbGV0X2ZlZV9wcm9jZXNzb3IYcGFsbGV0EENhbGwEBFQAAQQcY29udmVydAQBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAABKhNYW51YWwgY29udmVyc2lvbiB0cmlnZ2VyLiBQZXJtaXNzaW9ubGVzcy4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuwQYQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zVGNoZWNrX25vbl96ZXJvX3NlbmRlckhDaGVja05vblplcm9TZW5kZXIEBFQAAAAAxQYQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zSGNoZWNrX3NwZWNfdmVyc2lvbkBDaGVja1NwZWNWZXJzaW9uBARUAAAAAMkGEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uc0BjaGVja190eF92ZXJzaW9uOENoZWNrVHhWZXJzaW9uBARUAAAAAM0GEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczRjaGVja19nZW5lc2lzMENoZWNrR2VuZXNpcwQEVAAAAADRBhAwZnJhbWVfc3lzdGVtKGV4dGVuc2lvbnM8Y2hlY2tfbW9ydGFsaXR5OENoZWNrTW9ydGFsaXR5BARUAAAEANUGAQxFcmEAANUGEChzcF9ydW50aW1lHGdlbmVyaWMMZXJhDEVyYQABAQQgSW1tb3J0YWwAAAAcTW9ydGFsMQQACAAAAQAcTW9ydGFsMgQACAAAAgAcTW9ydGFsMwQACAAAAwAcTW9ydGFsNAQACAAABAAcTW9ydGFsNQQACAAABQAcTW9ydGFsNgQACAAABgAcTW9ydGFsNwQACAAABwAcTW9ydGFsOAQACAAACAAcTW9ydGFsOQQACAAACQAgTW9ydGFsMTAEAAgAAAoAIE1vcnRhbDExBAAIAAALACBNb3J0YWwxMgQACAAADAAgTW9ydGFsMTMEAAgAAA0AIE1vcnRhbDE0BAAIAAAOACBNb3J0YWwxNQQACAAADwAgTW9ydGFsMTYEAAgAABAAIE1vcnRhbDE3BAAIAAARACBNb3J0YWwxOAQACAAAEgAgTW9ydGFsMTkEAAgAABMAIE1vcnRhbDIwBAAIAAAUACBNb3J0YWwyMQQACAAAFQAgTW9ydGFsMjIEAAgAABYAIE1vcnRhbDIzBAAIAAAXACBNb3J0YWwyNAQACAAAGAAgTW9ydGFsMjUEAAgAABkAIE1vcnRhbDI2BAAIAAAaACBNb3J0YWwyNwQACAAAGwAgTW9ydGFsMjgEAAgAABwAIE1vcnRhbDI5BAAIAAAdACBNb3J0YWwzMAQACAAAHgAgTW9ydGFsMzEEAAgAAB8AIE1vcnRhbDMyBAAIAAAgACBNb3J0YWwzMwQACAAAIQAgTW9ydGFsMzQEAAgAACIAIE1vcnRhbDM1BAAIAAAjACBNb3J0YWwzNgQACAAAJAAgTW9ydGFsMzcEAAgAACUAIE1vcnRhbDM4BAAIAAAmACBNb3J0YWwzOQQACAAAJwAgTW9ydGFsNDAEAAgAACgAIE1vcnRhbDQxBAAIAAApACBNb3J0YWw0MgQACAAAKgAgTW9ydGFsNDMEAAgAACsAIE1vcnRhbDQ0BAAIAAAsACBNb3J0YWw0NQQACAAALQAgTW9ydGFsNDYEAAgAAC4AIE1vcnRhbDQ3BAAIAAAvACBNb3J0YWw0OAQACAAAMAAgTW9ydGFsNDkEAAgAADEAIE1vcnRhbDUwBAAIAAAyACBNb3J0YWw1MQQACAAAMwAgTW9ydGFsNTIEAAgAADQAIE1vcnRhbDUzBAAIAAA1ACBNb3J0YWw1NAQACAAANgAgTW9ydGFsNTUEAAgAADcAIE1vcnRhbDU2BAAIAAA4ACBNb3J0YWw1NwQACAAAOQAgTW9ydGFsNTgEAAgAADoAIE1vcnRhbDU5BAAIAAA7ACBNb3J0YWw2MAQACAAAPAAgTW9ydGFsNjEEAAgAAD0AIE1vcnRhbDYyBAAIAAA+ACBNb3J0YWw2MwQACAAAPwAgTW9ydGFsNjQEAAgAAEAAIE1vcnRhbDY1BAAIAABBACBNb3J0YWw2NgQACAAAQgAgTW9ydGFsNjcEAAgAAEMAIE1vcnRhbDY4BAAIAABEACBNb3J0YWw2OQQACAAARQAgTW9ydGFsNzAEAAgAAEYAIE1vcnRhbDcxBAAIAABHACBNb3J0YWw3MgQACAAASAAgTW9ydGFsNzMEAAgAAEkAIE1vcnRhbDc0BAAIAABKACBNb3J0YWw3NQQACAAASwAgTW9ydGFsNzYEAAgAAEwAIE1vcnRhbDc3BAAIAABNACBNb3J0YWw3OAQACAAATgAgTW9ydGFsNzkEAAgAAE8AIE1vcnRhbDgwBAAIAABQACBNb3J0YWw4MQQACAAAUQAgTW9ydGFsODIEAAgAAFIAIE1vcnRhbDgzBAAIAABTACBNb3J0YWw4NAQACAAAVAAgTW9ydGFsODUEAAgAAFUAIE1vcnRhbDg2BAAIAABWACBNb3J0YWw4NwQACAAAVwAgTW9ydGFsODgEAAgAAFgAIE1vcnRhbDg5BAAIAABZACBNb3J0YWw5MAQACAAAWgAgTW9ydGFsOTEEAAgAAFsAIE1vcnRhbDkyBAAIAABcACBNb3J0YWw5MwQACAAAXQAgTW9ydGFsOTQEAAgAAF4AIE1vcnRhbDk1BAAIAABfACBNb3J0YWw5NgQACAAAYAAgTW9ydGFsOTcEAAgAAGEAIE1vcnRhbDk4BAAIAABiACBNb3J0YWw5OQQACAAAYwAkTW9ydGFsMTAwBAAIAABkACRNb3J0YWwxMDEEAAgAAGUAJE1vcnRhbDEwMgQACAAAZgAkTW9ydGFsMTAzBAAIAABnACRNb3J0YWwxMDQEAAgAAGgAJE1vcnRhbDEwNQQACAAAaQAkTW9ydGFsMTA2BAAIAABqACRNb3J0YWwxMDcEAAgAAGsAJE1vcnRhbDEwOAQACAAAbAAkTW9ydGFsMTA5BAAIAABtACRNb3J0YWwxMTAEAAgAAG4AJE1vcnRhbDExMQQACAAAbwAkTW9ydGFsMTEyBAAIAABwACRNb3J0YWwxMTMEAAgAAHEAJE1vcnRhbDExNAQACAAAcgAkTW9ydGFsMTE1BAAIAABzACRNb3J0YWwxMTYEAAgAAHQAJE1vcnRhbDExNwQACAAAdQAkTW9ydGFsMTE4BAAIAAB2ACRNb3J0YWwxMTkEAAgAAHcAJE1vcnRhbDEyMAQACAAAeAAkTW9ydGFsMTIxBAAIAAB5ACRNb3J0YWwxMjIEAAgAAHoAJE1vcnRhbDEyMwQACAAAewAkTW9ydGFsMTI0BAAIAAB8ACRNb3J0YWwxMjUEAAgAAH0AJE1vcnRhbDEyNgQACAAAfgAkTW9ydGFsMTI3BAAIAAB/ACRNb3J0YWwxMjgEAAgAAIAAJE1vcnRhbDEyOQQACAAAgQAkTW9ydGFsMTMwBAAIAACCACRNb3J0YWwxMzEEAAgAAIMAJE1vcnRhbDEzMgQACAAAhAAkTW9ydGFsMTMzBAAIAACFACRNb3J0YWwxMzQEAAgAAIYAJE1vcnRhbDEzNQQACAAAhwAkTW9ydGFsMTM2BAAIAACIACRNb3J0YWwxMzcEAAgAAIkAJE1vcnRhbDEzOAQACAAAigAkTW9ydGFsMTM5BAAIAACLACRNb3J0YWwxNDAEAAgAAIwAJE1vcnRhbDE0MQQACAAAjQAkTW9ydGFsMTQyBAAIAACOACRNb3J0YWwxNDMEAAgAAI8AJE1vcnRhbDE0NAQACAAAkAAkTW9ydGFsMTQ1BAAIAACRACRNb3J0YWwxNDYEAAgAAJIAJE1vcnRhbDE0NwQACAAAkwAkTW9ydGFsMTQ4BAAIAACUACRNb3J0YWwxNDkEAAgAAJUAJE1vcnRhbDE1MAQACAAAlgAkTW9ydGFsMTUxBAAIAACXACRNb3J0YWwxNTIEAAgAAJgAJE1vcnRhbDE1MwQACAAAmQAkTW9ydGFsMTU0BAAIAACaACRNb3J0YWwxNTUEAAgAAJsAJE1vcnRhbDE1NgQACAAAnAAkTW9ydGFsMTU3BAAIAACdACRNb3J0YWwxNTgEAAgAAJ4AJE1vcnRhbDE1OQQACAAAnwAkTW9ydGFsMTYwBAAIAACgACRNb3J0YWwxNjEEAAgAAKEAJE1vcnRhbDE2MgQACAAAogAkTW9ydGFsMTYzBAAIAACjACRNb3J0YWwxNjQEAAgAAKQAJE1vcnRhbDE2NQQACAAApQAkTW9ydGFsMTY2BAAIAACmACRNb3J0YWwxNjcEAAgAAKcAJE1vcnRhbDE2OAQACAAAqAAkTW9ydGFsMTY5BAAIAACpACRNb3J0YWwxNzAEAAgAAKoAJE1vcnRhbDE3MQQACAAAqwAkTW9ydGFsMTcyBAAIAACsACRNb3J0YWwxNzMEAAgAAK0AJE1vcnRhbDE3NAQACAAArgAkTW9ydGFsMTc1BAAIAACvACRNb3J0YWwxNzYEAAgAALAAJE1vcnRhbDE3NwQACAAAsQAkTW9ydGFsMTc4BAAIAACyACRNb3J0YWwxNzkEAAgAALMAJE1vcnRhbDE4MAQACAAAtAAkTW9ydGFsMTgxBAAIAAC1ACRNb3J0YWwxODIEAAgAALYAJE1vcnRhbDE4MwQACAAAtwAkTW9ydGFsMTg0BAAIAAC4ACRNb3J0YWwxODUEAAgAALkAJE1vcnRhbDE4NgQACAAAugAkTW9ydGFsMTg3BAAIAAC7ACRNb3J0YWwxODgEAAgAALwAJE1vcnRhbDE4OQQACAAAvQAkTW9ydGFsMTkwBAAIAAC+ACRNb3J0YWwxOTEEAAgAAL8AJE1vcnRhbDE5MgQACAAAwAAkTW9ydGFsMTkzBAAIAADBACRNb3J0YWwxOTQEAAgAAMIAJE1vcnRhbDE5NQQACAAAwwAkTW9ydGFsMTk2BAAIAADEACRNb3J0YWwxOTcEAAgAAMUAJE1vcnRhbDE5OAQACAAAxgAkTW9ydGFsMTk5BAAIAADHACRNb3J0YWwyMDAEAAgAAMgAJE1vcnRhbDIwMQQACAAAyQAkTW9ydGFsMjAyBAAIAADKACRNb3J0YWwyMDMEAAgAAMsAJE1vcnRhbDIwNAQACAAAzAAkTW9ydGFsMjA1BAAIAADNACRNb3J0YWwyMDYEAAgAAM4AJE1vcnRhbDIwNwQACAAAzwAkTW9ydGFsMjA4BAAIAADQACRNb3J0YWwyMDkEAAgAANEAJE1vcnRhbDIxMAQACAAA0gAkTW9ydGFsMjExBAAIAADTACRNb3J0YWwyMTIEAAgAANQAJE1vcnRhbDIxMwQACAAA1QAkTW9ydGFsMjE0BAAIAADWACRNb3J0YWwyMTUEAAgAANcAJE1vcnRhbDIxNgQACAAA2AAkTW9ydGFsMjE3BAAIAADZACRNb3J0YWwyMTgEAAgAANoAJE1vcnRhbDIxOQQACAAA2wAkTW9ydGFsMjIwBAAIAADcACRNb3J0YWwyMjEEAAgAAN0AJE1vcnRhbDIyMgQACAAA3gAkTW9ydGFsMjIzBAAIAADfACRNb3J0YWwyMjQEAAgAAOAAJE1vcnRhbDIyNQQACAAA4QAkTW9ydGFsMjI2BAAIAADiACRNb3J0YWwyMjcEAAgAAOMAJE1vcnRhbDIyOAQACAAA5AAkTW9ydGFsMjI5BAAIAADlACRNb3J0YWwyMzAEAAgAAOYAJE1vcnRhbDIzMQQACAAA5wAkTW9ydGFsMjMyBAAIAADoACRNb3J0YWwyMzMEAAgAAOkAJE1vcnRhbDIzNAQACAAA6gAkTW9ydGFsMjM1BAAIAADrACRNb3J0YWwyMzYEAAgAAOwAJE1vcnRhbDIzNwQACAAA7QAkTW9ydGFsMjM4BAAIAADuACRNb3J0YWwyMzkEAAgAAO8AJE1vcnRhbDI0MAQACAAA8AAkTW9ydGFsMjQxBAAIAADxACRNb3J0YWwyNDIEAAgAAPIAJE1vcnRhbDI0MwQACAAA8wAkTW9ydGFsMjQ0BAAIAAD0ACRNb3J0YWwyNDUEAAgAAPUAJE1vcnRhbDI0NgQACAAA9gAkTW9ydGFsMjQ3BAAIAAD3ACRNb3J0YWwyNDgEAAgAAPgAJE1vcnRhbDI0OQQACAAA+QAkTW9ydGFsMjUwBAAIAAD6ACRNb3J0YWwyNTEEAAgAAPsAJE1vcnRhbDI1MgQACAAA/AAkTW9ydGFsMjUzBAAIAAD9ACRNb3J0YWwyNTQEAAgAAP4AJE1vcnRhbDI1NQQACAAA/wAA2QYQMGZyYW1lX3N5c3RlbShleHRlbnNpb25zLGNoZWNrX25vbmNlKENoZWNrTm9uY2UEBFQAAAQAbAEgVDo6Tm9uY2UAAN0GEDBmcmFtZV9zeXN0ZW0oZXh0ZW5zaW9uczBjaGVja193ZWlnaHQsQ2hlY2tXZWlnaHQEBFQAAAAA4QYIaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50YENoYXJnZVRyYW5zYWN0aW9uUGF5bWVudAQEVAAABAA8ATBCYWxhbmNlT2Y8VD4AAOUGCDRwYWxsZXRfY2xhaW1zNFZhbGlkYXRlQ2xhaW0EBFQAAAAA6QYIdGZyYW1lX21ldGFkYXRhX2hhc2hfZXh0ZW5zaW9uRENoZWNrTWV0YWRhdGFIYXNoBARUAAAEARBtb2Rl7QYBEE1vZGUAAO0GCHRmcmFtZV9tZXRhZGF0YV9oYXNoX2V4dGVuc2lvbhBNb2RlAAEIIERpc2FibGVkAAAAHEVuYWJsZWQAAQAA8QYEGE9wdGlvbgQEVAEEAQgQTm9uZQAAABBTb21lBAAEAAABAAD1BggwZnJhbWVfc3lzdGVtLEFjY291bnRJbmZvCBROb25jZQEoLEFjY291bnREYXRhAfkGABQBFG5vbmNlKAEUTm9uY2UAASRjb25zdW1lcnMoASBSZWZDb3VudAABJHByb3ZpZGVycygBIFJlZkNvdW50AAEsc3VmZmljaWVudHMoASBSZWZDb3VudAABEGRhdGH5BgEsQWNjb3VudERhdGEAAPkGDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXMsQWNjb3VudERhdGEEHEJhbGFuY2UBQAAQARBmcmVlQAEcQmFsYW5jZQABIHJlc2VydmVkQAEcQmFsYW5jZQABGGZyb3plbkABHEJhbGFuY2UAARRmbGFnc/0GAShFeHRyYUZsYWdzAAD9Bgw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzKEV4dHJhRmxhZ3MAAAQAQAEQdTEyOAAAAQcMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAHkAAwBGG5vcm1hbOQBBFQAASxvcGVyYXRpb25hbOQBBFQAASRtYW5kYXRvcnnkAQRUAAAFBwAAAgkHAAkHCDBmcmFtZV9zeXN0ZW0sRXZlbnRSZWNvcmQIBEUBDQcEVAEsAAwBFHBoYXNl+QgBFFBoYXNlAAEUZXZlbnQNBwEERQABGHRvcGljc+wBGFZlYzxUPgAADQcIPGh5ZHJhZHhfcnVudGltZTBSdW50aW1lRXZlbnQAARUBGFN5c3RlbQQAEQcBcGZyYW1lX3N5c3RlbTo6RXZlbnQ8UnVudGltZT4AAQAgQmFsYW5jZXMEADkHAXxwYWxsZXRfYmFsYW5jZXM6OkV2ZW50PFJ1bnRpbWU+AAcASFRyYW5zYWN0aW9uUGF5bWVudAQAQQcBqHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50OjpFdmVudDxSdW50aW1lPgAJAFxNdWx0aVRyYW5zYWN0aW9uUGF5bWVudAQARQcBwHBhbGxldF90cmFuc2FjdGlvbl9tdWx0aV9wYXltZW50OjpFdmVudDxSdW50aW1lPgDLACBUcmVhc3VyeQQASQcBfHBhbGxldF90cmVhc3VyeTo6RXZlbnQ8UnVudGltZT4ACwAcVXRpbGl0eQQATQcBVHBhbGxldF91dGlsaXR5OjpFdmVudAANACBQcmVpbWFnZQQAVQcBfHBhbGxldF9wcmVpbWFnZTo6RXZlbnQ8UnVudGltZT4ADwAgSWRlbnRpdHkEAFkHAXxwYWxsZXRfaWRlbnRpdHk6OkV2ZW50PFJ1bnRpbWU+ABEAJERlbW9jcmFjeQQAXQcBgHBhbGxldF9kZW1vY3JhY3k6OkV2ZW50PFJ1bnRpbWU+ABMASFRlY2huaWNhbENvbW1pdHRlZQQAZQcB/HBhbGxldF9jb2xsZWN0aXZlOjpFdmVudDxSdW50aW1lLCBwYWxsZXRfY29sbGVjdGl2ZTo6SW5zdGFuY2UyPgAZABRQcm94eQQAaQcBcHBhbGxldF9wcm94eTo6RXZlbnQ8UnVudGltZT4AHQAgTXVsdGlzaWcEAHEHAXxwYWxsZXRfbXVsdGlzaWc6OkV2ZW50PFJ1bnRpbWU+AB8AHFVuaXF1ZXMEAHUHAXhwYWxsZXRfdW5pcXVlczo6RXZlbnQ8UnVudGltZT4AIABIU3RhdGVUcmllTWlncmF0aW9uBAB5BwGscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uOjpFdmVudDxSdW50aW1lPgAjAEBDb252aWN0aW9uVm90aW5nBACFBwGgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nOjpFdmVudDxSdW50aW1lPgAkACRSZWZlcmVuZGEEAIkHAYBwYWxsZXRfcmVmZXJlbmRhOjpFdmVudDxSdW50aW1lPgAlACRXaGl0ZWxpc3QEAJEHAYBwYWxsZXRfd2hpdGVsaXN0OjpFdmVudDxSdW50aW1lPgAnAChEaXNwYXRjaGVyBAChBwGEcGFsbGV0X2Rpc3BhdGNoZXI6OkV2ZW50PFJ1bnRpbWU+ACgANEFzc2V0UmVnaXN0cnkEAKUHAZRwYWxsZXRfYXNzZXRfcmVnaXN0cnk6OkV2ZW50PFJ1bnRpbWU+ADMAGENsYWltcwQAqQcBdHBhbGxldF9jbGFpbXM6OkV2ZW50PFJ1bnRpbWU+ADUAPENvbGxhdG9yUmV3YXJkcwQAsQcBnHBhbGxldF9jb2xsYXRvcl9yZXdhcmRzOjpFdmVudDxSdW50aW1lPgA5AEBDb2xsYXRvclJvdGF0aW9uBAC1BwGgcGFsbGV0X2NvbGxhdG9yX3JvdGF0aW9uOjpFdmVudDxSdW50aW1lPgA6ACBPbW5pcG9vbAQAuQcBfHBhbGxldF9vbW5pcG9vbDo6RXZlbnQ8UnVudGltZT4AOwBAVHJhbnNhY3Rpb25QYXVzZQQAvQcBoHBhbGxldF90cmFuc2FjdGlvbl9wYXVzZTo6RXZlbnQ8UnVudGltZT4APAAYRHVzdGVyBADBBwF0cGFsbGV0X2R1c3Rlcjo6RXZlbnQ8UnVudGltZT4APQBMT21uaXBvb2xXYXJlaG91c2VMTQQAxQcBSQF3YXJlaG91c2VfbGlxdWlkaXR5X21pbmluZzo6RXZlbnQ8UnVudGltZSwgd2FyZWhvdXNlX2xpcXVpZGl0eV9taW5pbmc6OgpJbnN0YW5jZTE+AD4AXE9tbmlwb29sTGlxdWlkaXR5TWluaW5nBADJBwHAcGFsbGV0X29tbmlwb29sX2xpcXVpZGl0eV9taW5pbmc6OkV2ZW50PFJ1bnRpbWU+AD8ADE9UQwQAzQcBaHBhbGxldF9vdGM6OkV2ZW50PFJ1bnRpbWU+AEAAOENpcmN1aXRCcmVha2VyBADRBwGYcGFsbGV0X2NpcmN1aXRfYnJlYWtlcjo6RXZlbnQ8UnVudGltZT4AQQAYUm91dGVyBADVBwGUcGFsbGV0X3JvdXRlX2V4ZWN1dG9yOjpFdmVudDxSdW50aW1lPgBDACxEeW5hbWljRmVlcwQA2QcBjHBhbGxldF9keW5hbWljX2ZlZXM6OkV2ZW50PFJ1bnRpbWU+AEQAHFN0YWtpbmcEAN0HAXhwYWxsZXRfc3Rha2luZzo6RXZlbnQ8UnVudGltZT4ARQAoU3RhYmxlc3dhcAQA4QcBhHBhbGxldF9zdGFibGVzd2FwOjpFdmVudDxSdW50aW1lPgBGABRCb25kcwQA+QcBcHBhbGxldF9ib25kczo6RXZlbnQ8UnVudGltZT4ARwA4T3RjU2V0dGxlbWVudHMEAP0HAZhwYWxsZXRfb3RjX3NldHRsZW1lbnRzOjpFdmVudDxSdW50aW1lPgBIAAxMQlAEAAEIAWhwYWxsZXRfbGJwOjpFdmVudDxSdW50aW1lPgBJAAxYWUsEAAkIAWhwYWxsZXRfeHlrOjpFdmVudDxSdW50aW1lPgBKACRSZWZlcnJhbHMEAA0IAYBwYWxsZXRfcmVmZXJyYWxzOjpFdmVudDxSdW50aW1lPgBLACxMaXF1aWRhdGlvbgQAFQgBiHBhbGxldF9saXF1aWRhdGlvbjo6RXZlbnQ8UnVudGltZT4ATAAMSFNNBAAZCAFocGFsbGV0X2hzbTo6RXZlbnQ8UnVudGltZT4AUgAYU2lnbmV0BAAdCAF0cGFsbGV0X3NpZ25ldDo6RXZlbnQ8UnVudGltZT4AVAAwRXRoRGlzcGVuc2VyBAAhCAGAcGFsbGV0X2Rpc3BlbnNlcjo6RXZlbnQ8UnVudGltZT4AVQAcR2lnYUhkeAQAJQgBeHBhbGxldF9naWdhaGR4OjpFdmVudDxSdW50aW1lPgBWADhHaWdhSGR4UmV3YXJkcwQAKQgBmHBhbGxldF9naWdhaGR4X3Jld2FyZHM6OkV2ZW50PFJ1bnRpbWU+AFcAGFRva2VucwQALQgBbG9ybWxfdG9rZW5zOjpFdmVudDxSdW50aW1lPgBNAChDdXJyZW5jaWVzBAAxCAGEcGFsbGV0X2N1cnJlbmNpZXM6OkV2ZW50PFJ1bnRpbWU+AE8AHFZlc3RpbmcEADUIAXBvcm1sX3Zlc3Rpbmc6OkV2ZW50PFJ1bnRpbWU+AFEADEVWTQQAOQgBaHBhbGxldF9ldm06OkV2ZW50PFJ1bnRpbWU+AFoAIEV0aGVyZXVtBABBCAFYcGFsbGV0X2V0aGVyZXVtOjpFdmVudABcACxFVk1BY2NvdW50cwQAZQgBjHBhbGxldF9ldm1fYWNjb3VudHM6OkV2ZW50PFJ1bnRpbWU+AF0ASFhZS0xpcXVpZGl0eU1pbmluZwQAaQgBrHBhbGxldF94eWtfbGlxdWlkaXR5X21pbmluZzo6RXZlbnQ8UnVudGltZT4AXwA4WFlLV2FyZWhvdXNlTE0EAG0IAUkBd2FyZWhvdXNlX2xpcXVpZGl0eV9taW5pbmc6OkV2ZW50PFJ1bnRpbWUsIHdhcmVob3VzZV9saXF1aWRpdHlfbWluaW5nOjoKSW5zdGFuY2UyPgBgADhSZWxheUNoYWluSW5mbwQAcQgBmHBhbGxldF9yZWxheWNoYWluX2luZm86OkV2ZW50PFJ1bnRpbWU+AMkADERDQQQAdQgBaHBhbGxldF9kY2E6OkV2ZW50PFJ1bnRpbWU+AEIAJFNjaGVkdWxlcgQAeQgBgHBhbGxldF9zY2hlZHVsZXI6OkV2ZW50PFJ1bnRpbWU+AAUAPFBhcmFjaGFpblN5c3RlbQQAfQgBvGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW06OkV2ZW50PFJ1bnRpbWU+AGcALFBvbGthZG90WGNtBACBCAFocGFsbGV0X3hjbTo6RXZlbnQ8UnVudGltZT4AawAoQ3VtdWx1c1hjbQQAkQgBiGN1bXVsdXNfcGFsbGV0X3hjbTo6RXZlbnQ8UnVudGltZT4AbQAkWGNtcFF1ZXVlBACVCAGkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZTo6RXZlbnQ8UnVudGltZT4AbwAwTWVzc2FnZVF1ZXVlBACZCAGQcGFsbGV0X21lc3NhZ2VfcXVldWU6OkV2ZW50PFJ1bnRpbWU+AHIAUE11bHRpQmxvY2tNaWdyYXRpb25zBAChCAGEcGFsbGV0X21pZ3JhdGlvbnM6OkV2ZW50PFJ1bnRpbWU+AHQAHE9ybWxYY20EAKUIAWBvcm1sX3hjbTo6RXZlbnQ8UnVudGltZT4AhwAcWFRva2VucwQAqQgBcG9ybWxfeHRva2Vuczo6RXZlbnQ8UnVudGltZT4AiQA0VW5rbm93blRva2VucwQArQgBaG9ybWxfdW5rbm93bl90b2tlbnM6OkV2ZW50AIsARENvbGxhdG9yU2VsZWN0aW9uBACxCAGkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbjo6RXZlbnQ8UnVudGltZT4AowAcU2Vzc2lvbgQAtQgBeHBhbGxldF9zZXNzaW9uOjpFdmVudDxSdW50aW1lPgClACRFbWFPcmFjbGUEALkIAYRwYWxsZXRfZW1hX29yYWNsZTo6RXZlbnQ8UnVudGltZT4AygAkQnJvYWRjYXN0BADNCAGAcGFsbGV0X2Jyb2FkY2FzdDo6RXZlbnQ8UnVudGltZT4AzAAwRmVlUHJvY2Vzc29yBAD1CAGQcGFsbGV0X2ZlZV9wcm9jZXNzb3I6OkV2ZW50PFJ1bnRpbWU+AM8AABEHDDBmcmFtZV9zeXN0ZW0YcGFsbGV0FEV2ZW50BARUAAEgQEV4dHJpbnNpY1N1Y2Nlc3MEATRkaXNwYXRjaF9pbmZvFQcBRERpc3BhdGNoRXZlbnRJbmZvAAAEkEFuIGV4dHJpbnNpYyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LjxFeHRyaW5zaWNGYWlsZWQIAThkaXNwYXRjaF9lcnJvciEHATREaXNwYXRjaEVycm9yAAE0ZGlzcGF0Y2hfaW5mbxUHAUREaXNwYXRjaEV2ZW50SW5mbwABBFBBbiBleHRyaW5zaWMgZmFpbGVkLixDb2RlVXBkYXRlZAACBFBgOmNvZGVgIHdhcyB1cGRhdGVkLihOZXdBY2NvdW50BAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAADBGhBIG5ldyBhY2NvdW50IHdhcyBjcmVhdGVkLjRLaWxsZWRBY2NvdW50BAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAAEBFhBbiBhY2NvdW50IHdhcyByZWFwZWQuIFJlbWFya2VkCAEYc2VuZGVyAAEwVDo6QWNjb3VudElkAAEQaGFzaCwBHFQ6Okhhc2gABQRwT24gb24tY2hhaW4gcmVtYXJrIGhhcHBlbmVkLkRVcGdyYWRlQXV0aG9yaXplZAgBJGNvZGVfaGFzaCwBHFQ6Okhhc2gAATRjaGVja192ZXJzaW9uRAEQYm9vbAAGBGhBbiB1cGdyYWRlIHdhcyBhdXRob3JpemVkLoBSZWplY3RlZEludmFsaWRBdXRob3JpemVkVXBncmFkZQgBJGNvZGVfaGFzaCwBHFQ6Okhhc2gAARRlcnJvciEHATREaXNwYXRjaEVycm9yAAcEEQFBbiBpbnZhbGlkIGF1dGhvcml6ZWQgdXBncmFkZSB3YXMgcmVqZWN0ZWQgd2hpbGUgdHJ5aW5nIHRvIGFwcGx5IGl0LgRwRXZlbnQgZm9yIHRoZSBTeXN0ZW0gcGFsbGV0LhUHCDBmcmFtZV9zeXN0ZW1ERGlzcGF0Y2hFdmVudEluZm8AAAwBGHdlaWdodOQBGFdlaWdodAABFGNsYXNzGQcBNERpc3BhdGNoQ2xhc3MAASBwYXlzX2ZlZR0HARBQYXlzAAAZBww0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaDREaXNwYXRjaENsYXNzAAEMGE5vcm1hbAAAACxPcGVyYXRpb25hbAABACRNYW5kYXRvcnkAAgAAHQcMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2gQUGF5cwABCAxZZXMAAAAITm8AAQAAIQcIKHNwX3J1bnRpbWU0RGlzcGF0Y2hFcnJvcgABPBRPdGhlcgAAADBDYW5ub3RMb29rdXAAAQAkQmFkT3JpZ2luAAIAGE1vZHVsZQQAJQcBLE1vZHVsZUVycm9yAAMARENvbnN1bWVyUmVtYWluaW5nAAQALE5vUHJvdmlkZXJzAAUAQFRvb01hbnlDb25zdW1lcnMABgAUVG9rZW4EACkHAShUb2tlbkVycm9yAAcAKEFyaXRobWV0aWMEAC0HATxBcml0aG1ldGljRXJyb3IACAA0VHJhbnNhY3Rpb25hbAQAMQcBSFRyYW5zYWN0aW9uYWxFcnJvcgAJACRFeGhhdXN0ZWQACgAoQ29ycnVwdGlvbgALACxVbmF2YWlsYWJsZQAMADhSb290Tm90QWxsb3dlZAANABBUcmllBAA1BwEkVHJpZUVycm9yAA4AACUHCChzcF9ydW50aW1lLE1vZHVsZUVycm9yAAAIARRpbmRleAgBCHU4AAEUZXJyb3K4AYxbdTg7IE1BWF9NT0RVTEVfRVJST1JfRU5DT0RFRF9TSVpFXQAAKQcIKHNwX3J1bnRpbWUoVG9rZW5FcnJvcgABKEBGdW5kc1VuYXZhaWxhYmxlAAAAME9ubHlQcm92aWRlcgABADBCZWxvd01pbmltdW0AAgAwQ2Fubm90Q3JlYXRlAAMAMFVua25vd25Bc3NldAAEABhGcm96ZW4ABQAsVW5zdXBwb3J0ZWQABgBAQ2Fubm90Q3JlYXRlSG9sZAAHADROb3RFeHBlbmRhYmxlAAgAHEJsb2NrZWQACQAALQcINHNwX2FyaXRobWV0aWM8QXJpdGhtZXRpY0Vycm9yAAEMJFVuZGVyZmxvdwAAACBPdmVyZmxvdwABADhEaXZpc2lvbkJ5WmVybwACAAAxBwgoc3BfcnVudGltZUhUcmFuc2FjdGlvbmFsRXJyb3IAAQgwTGltaXRSZWFjaGVkAAAAHE5vTGF5ZXIAAQAANQcMKHNwX3J1bnRpbWUwcHJvdmluZ190cmllJFRyaWVFcnJvcgABOEBJbnZhbGlkU3RhdGVSb290AAAASEluY29tcGxldGVEYXRhYmFzZQABAFBWYWx1ZUF0SW5jb21wbGV0ZUtleQACADBEZWNvZGVyRXJyb3IAAwAsSW52YWxpZEhhc2gABAAwRHVwbGljYXRlS2V5AAUAOEV4dHJhbmVvdXNOb2RlAAYAPEV4dHJhbmVvdXNWYWx1ZQAHAFxFeHRyYW5lb3VzSGFzaFJlZmVyZW5jZQAIAFRJbnZhbGlkQ2hpbGRSZWZlcmVuY2UACQA0VmFsdWVNaXNtYXRjaAAKADxJbmNvbXBsZXRlUHJvb2YACwAwUm9vdE1pc21hdGNoAAwALERlY29kZUVycm9yAA0AADkHDDxwYWxsZXRfYmFsYW5jZXMYcGFsbGV0FEV2ZW50CARUAARJAAFYHEVuZG93ZWQIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEwZnJlZV9iYWxhbmNlQAEoVDo6QmFsYW5jZQAABLhBbiBhY2NvdW50IHdhcyBjcmVhdGVkIHdpdGggc29tZSBmcmVlIGJhbGFuY2UuIER1c3RMb3N0CAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAAQg9AUFuIGFjY291bnQgd2FzIHJlbW92ZWQgd2hvc2UgYmFsYW5jZSB3YXMgbm9uLXplcm8gYnV0IGJlbG93IEV4aXN0ZW50aWFsRGVwb3NpdCx4cmVzdWx0aW5nIGluIGFuIG91dHJpZ2h0IGxvc3MuIFRyYW5zZmVyDAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQACBExUcmFuc2ZlciBzdWNjZWVkZWQuKEJhbGFuY2VTZXQIAQx3aG8AATBUOjpBY2NvdW50SWQAARBmcmVlQAEoVDo6QmFsYW5jZQADBGhBIGJhbGFuY2Ugd2FzIHNldCBieSByb290LiBSZXNlcnZlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UABATgU29tZSBiYWxhbmNlIHdhcyByZXNlcnZlZCAobW92ZWQgZnJvbSBmcmVlIHRvIHJlc2VydmVkKS4oVW5yZXNlcnZlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UABQToU29tZSBiYWxhbmNlIHdhcyB1bnJlc2VydmVkIChtb3ZlZCBmcm9tIHJlc2VydmVkIHRvIGZyZWUpLkhSZXNlcnZlUmVwYXRyaWF0ZWQQARBmcm9tAAEwVDo6QWNjb3VudElkAAEIdG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAFIZGVzdGluYXRpb25fc3RhdHVzPQcBGFN0YXR1cwAGCE0BU29tZSBiYWxhbmNlIHdhcyBtb3ZlZCBmcm9tIHRoZSByZXNlcnZlIG9mIHRoZSBmaXJzdCBhY2NvdW50IHRvIHRoZSBzZWNvbmQgYWNjb3VudC7YRmluYWwgYXJndW1lbnQgaW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBiYWxhbmNlIHR5cGUuHERlcG9zaXQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAcE2FNvbWUgYW1vdW50IHdhcyBkZXBvc2l0ZWQgKGUuZy4gZm9yIHRyYW5zYWN0aW9uIGZlZXMpLiBXaXRoZHJhdwgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UACAQdAVNvbWUgYW1vdW50IHdhcyB3aXRoZHJhd24gZnJvbSB0aGUgYWNjb3VudCAoZS5nLiBmb3IgdHJhbnNhY3Rpb24gZmVlcykuHFNsYXNoZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAkEAQFTb21lIGFtb3VudCB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBhY2NvdW50IChlLmcuIGZvciBtaXNiZWhhdmlvcikuGE1pbnRlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UACgScU29tZSBhbW91bnQgd2FzIG1pbnRlZCBpbnRvIGFuIGFjY291bnQuGEJ1cm5lZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UACwScU29tZSBhbW91bnQgd2FzIGJ1cm5lZCBmcm9tIGFuIGFjY291bnQuJFN1c3BlbmRlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UADAQVAVNvbWUgYW1vdW50IHdhcyBzdXNwZW5kZWQgZnJvbSBhbiBhY2NvdW50IChpdCBjYW4gYmUgcmVzdG9yZWQgbGF0ZXIpLiBSZXN0b3JlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UADQSkU29tZSBhbW91bnQgd2FzIHJlc3RvcmVkIGludG8gYW4gYWNjb3VudC4gVXBncmFkZWQEAQx3aG8AATBUOjpBY2NvdW50SWQADgRgQW4gYWNjb3VudCB3YXMgdXBncmFkZWQuGElzc3VlZAQBGGFtb3VudEABKFQ6OkJhbGFuY2UADwQtAVRvdGFsIGlzc3VhbmNlIHdhcyBpbmNyZWFzZWQgYnkgYGFtb3VudGAsIGNyZWF0aW5nIGEgY3JlZGl0IHRvIGJlIGJhbGFuY2VkLiRSZXNjaW5kZWQEARhhbW91bnRAAShUOjpCYWxhbmNlABAEJQFUb3RhbCBpc3N1YW5jZSB3YXMgZGVjcmVhc2VkIGJ5IGBhbW91bnRgLCBjcmVhdGluZyBhIGRlYnQgdG8gYmUgYmFsYW5jZWQuGExvY2tlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAEQRgU29tZSBiYWxhbmNlIHdhcyBsb2NrZWQuIFVubG9ja2VkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQASBGhTb21lIGJhbGFuY2Ugd2FzIHVubG9ja2VkLhhGcm96ZW4IAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlABMEYFNvbWUgYmFsYW5jZSB3YXMgZnJvemVuLhhUaGF3ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlABQEYFNvbWUgYmFsYW5jZSB3YXMgdGhhd2VkLkxUb3RhbElzc3VhbmNlRm9yY2VkCAEMb2xkQAEoVDo6QmFsYW5jZQABDG5ld0ABKFQ6OkJhbGFuY2UAFQSsVGhlIGBUb3RhbElzc3VhbmNlYCB3YXMgZm9yY2VmdWxseSBjaGFuZ2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldD0HFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMQbWlzYzRCYWxhbmNlU3RhdHVzAAEIEEZyZWUAAAAgUmVzZXJ2ZWQAAQAAQQcMaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50GHBhbGxldBRFdmVudAQEVAABBEhUcmFuc2FjdGlvbkZlZVBhaWQMAQx3aG8AATBUOjpBY2NvdW50SWQAAShhY3R1YWxfZmVlQAEwQmFsYW5jZU9mPFQ+AAEMdGlwQAEwQmFsYW5jZU9mPFQ+AAAIWQFBIHRyYW5zYWN0aW9uIGZlZSBgYWN0dWFsX2ZlZWAsIG9mIHdoaWNoIGB0aXBgIHdhcyBhZGRlZCB0byB0aGUgbWluaW11bSBpbmNsdXNpb24gZmVlLFxoYXMgYmVlbiBwYWlkIGJ5IGB3aG9gLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldEUHDIBwYWxsZXRfdHJhbnNhY3Rpb25fbXVsdGlfcGF5bWVudBhwYWxsZXQURXZlbnQEBFQAARQsQ3VycmVuY3lTZXQIAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAEgYXNzZXRfaWQoATBBc3NldElkT2Y8VD4AAAgsQ3VycmVuY3lTZXQ8W3dobywgY3VycmVuY3ldNEN1cnJlbmN5QWRkZWQEASBhc3NldF9pZCgBMEFzc2V0SWRPZjxUPgABCGxOZXcgYWNjZXB0ZWQgY3VycmVuY3kgYWRkZWQoW2N1cnJlbmN5XTxDdXJyZW5jeVJlbW92ZWQEASBhc3NldF9pZCgBMEFzc2V0SWRPZjxUPgACCGRBY2NlcHRlZCBjdXJyZW5jeSByZW1vdmVkKFtjdXJyZW5jeV0wRmVlV2l0aGRyYXduFAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEwQXNzZXRJZE9mPFQ+AAFEbmF0aXZlX2ZlZV9hbW91bnRAATBCYWxhbmNlT2Y8VD4AAVRub25fbmF0aXZlX2ZlZV9hbW91bnRAATBCYWxhbmNlT2Y8VD4AAVhkZXN0aW5hdGlvbl9hY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAMIrFRyYW5zYWN0aW9uIGZlZSBwYWlkIGluIG5vbi1uYXRpdmUgY3VycmVuY3lJAVtBY2NvdW50LCBDdXJyZW5jeSwgTmF0aXZlIGZlZSBhbW91bnQsIE5vbi1uYXRpdmUgZmVlIGFtb3VudCwgRGVzdGluYXRpb24gYWNjb3VudF0wRmVlU3BvbnNvcmVkCAEQZnJvbVgBEEgxNjAAASRmZWVfcGF5ZXIAATBUOjpBY2NvdW50SWQABAScU2lnbmVkLWJyYW5jaCBkaXNwYXRjaCBwZXJtaXQgZmVlIHBheWVyBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0SQcMPHBhbGxldF90cmVhc3VyeRhwYWxsZXQURXZlbnQIBFQABEkAATAgU3BlbmRpbmcEAUBidWRnZXRfcmVtYWluaW5nQAE8QmFsYW5jZU9mPFQsIEk+AAAE5FdlIGhhdmUgZW5kZWQgYSBzcGVuZCBwZXJpb2QgYW5kIHdpbGwgbm93IGFsbG9jYXRlIGZ1bmRzLhxBd2FyZGVkDAE4cHJvcG9zYWxfaW5kZXgoATRQcm9wb3NhbEluZGV4AAEUYXdhcmRAATxCYWxhbmNlT2Y8VCwgST4AARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEEfFNvbWUgZnVuZHMgaGF2ZSBiZWVuIGFsbG9jYXRlZC4UQnVybnQEASxidXJudF9mdW5kc0ABPEJhbGFuY2VPZjxULCBJPgACBIhTb21lIG9mIG91ciBmdW5kcyBoYXZlIGJlZW4gYnVybnQuIFJvbGxvdmVyBAFAcm9sbG92ZXJfYmFsYW5jZUABPEJhbGFuY2VPZjxULCBJPgADBC0BU3BlbmRpbmcgaGFzIGZpbmlzaGVkOyB0aGlzIGlzIHRoZSBhbW91bnQgdGhhdCByb2xscyBvdmVyIHVudGlsIG5leHQgc3BlbmQuHERlcG9zaXQEARR2YWx1ZUABPEJhbGFuY2VPZjxULCBJPgAEBHxTb21lIGZ1bmRzIGhhdmUgYmVlbiBkZXBvc2l0ZWQuNFNwZW5kQXBwcm92ZWQMAThwcm9wb3NhbF9pbmRleCgBNFByb3Bvc2FsSW5kZXgAARhhbW91bnRAATxCYWxhbmNlT2Y8VCwgST4AASxiZW5lZmljaWFyeQABMFQ6OkFjY291bnRJZAAFBJxBIG5ldyBzcGVuZCBwcm9wb3NhbCBoYXMgYmVlbiBhcHByb3ZlZC48VXBkYXRlZEluYWN0aXZlCAEscmVhY3RpdmF0ZWRAATxCYWxhbmNlT2Y8VCwgST4AASxkZWFjdGl2YXRlZEABPEJhbGFuY2VPZjxULCBJPgAGBMxUaGUgaW5hY3RpdmUgZnVuZHMgb2YgdGhlIHBhbGxldCBoYXZlIGJlZW4gdXBkYXRlZC5IQXNzZXRTcGVuZEFwcHJvdmVkGAEUaW5kZXgoAShTcGVuZEluZGV4AAEoYXNzZXRfa2luZHABMFQ6OkFzc2V0S2luZAABGGFtb3VudEABUEFzc2V0QmFsYW5jZU9mPFQsIEk+AAEsYmVuZWZpY2lhcnkAAThUOjpCZW5lZmljaWFyeQABKHZhbGlkX2Zyb20oAVBCbG9ja051bWJlckZvcjxULCBJPgABJGV4cGlyZV9hdCgBUEJsb2NrTnVtYmVyRm9yPFQsIEk+AAcEtEEgbmV3IGFzc2V0IHNwZW5kIHByb3Bvc2FsIGhhcyBiZWVuIGFwcHJvdmVkLkBBc3NldFNwZW5kVm9pZGVkBAEUaW5kZXgoAShTcGVuZEluZGV4AAgEdEFuIGFwcHJvdmVkIHNwZW5kIHdhcyB2b2lkZWQuEFBhaWQIARRpbmRleCgBKFNwZW5kSW5kZXgAAShwYXltZW50X2lkcAFkPFQ6OlBheW1hc3RlciBhcyBQYXk+OjpJZAAJBExBIHBheW1lbnQgaGFwcGVuZWQuNFBheW1lbnRGYWlsZWQIARRpbmRleCgBKFNwZW5kSW5kZXgAAShwYXltZW50X2lkcAFkPFQ6OlBheW1hc3RlciBhcyBQYXk+OjpJZAAKBJBBIHBheW1lbnQgZmFpbGVkIGFuZCBjYW4gYmUgcmV0cmllZC44U3BlbmRQcm9jZXNzZWQEARRpbmRleCgBKFNwZW5kSW5kZXgACwhNAUEgc3BlbmQgd2FzIHByb2Nlc3NlZCBhbmQgcmVtb3ZlZCBmcm9tIHRoZSBzdG9yYWdlLiBJdCBtaWdodCBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5cHBhaWQgb3IgaXQgbWF5IGhhdmUgZXhwaXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRNBww4cGFsbGV0X3V0aWxpdHkYcGFsbGV0FEV2ZW50AAEgQEJhdGNoSW50ZXJydXB0ZWQIARRpbmRleCgBDHUzMgABFGVycm9yIQcBNERpc3BhdGNoRXJyb3IAAAhVAUJhdGNoIG9mIGRpc3BhdGNoZXMgZGlkIG5vdCBjb21wbGV0ZSBmdWxseS4gSW5kZXggb2YgZmlyc3QgZmFpbGluZyBkaXNwYXRjaCBnaXZlbiwgYXNId2VsbCBhcyB0aGUgZXJyb3IuOEJhdGNoQ29tcGxldGVkAAEEyEJhdGNoIG9mIGRpc3BhdGNoZXMgY29tcGxldGVkIGZ1bGx5IHdpdGggbm8gZXJyb3IuYEJhdGNoQ29tcGxldGVkV2l0aEVycm9ycwACBLRCYXRjaCBvZiBkaXNwYXRjaGVzIGNvbXBsZXRlZCBidXQgaGFzIGVycm9ycy40SXRlbUNvbXBsZXRlZAADBB0BQSBzaW5nbGUgaXRlbSB3aXRoaW4gYSBCYXRjaCBvZiBkaXNwYXRjaGVzIGhhcyBjb21wbGV0ZWQgd2l0aCBubyBlcnJvci4oSXRlbUZhaWxlZAQBFGVycm9yIQcBNERpc3BhdGNoRXJyb3IABAQRAUEgc2luZ2xlIGl0ZW0gd2l0aGluIGEgQmF0Y2ggb2YgZGlzcGF0Y2hlcyBoYXMgY29tcGxldGVkIHdpdGggZXJyb3IuMERpc3BhdGNoZWRBcwQBGHJlc3VsdFEHAThEaXNwYXRjaFJlc3VsdAAFBFhBIGNhbGwgd2FzIGRpc3BhdGNoZWQuRElmRWxzZU1haW5TdWNjZXNzAAYEZE1haW4gY2FsbCB3YXMgZGlzcGF0Y2hlZC5QSWZFbHNlRmFsbGJhY2tDYWxsZWQEAShtYWluX2Vycm9yIQcBNERpc3BhdGNoRXJyb3IABwSEVGhlIGZhbGxiYWNrIGNhbGwgd2FzIGRpc3BhdGNoZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0UQcEGFJlc3VsdAgEVAFwBEUBIQcBCAhPawQAcAAAAAAMRXJyBAAhBwAAAQAAVQcMPHBhbGxldF9wcmVpbWFnZRhwYWxsZXQURXZlbnQEBFQAAQwUTm90ZWQEARBoYXNoLAEcVDo6SGFzaAAABGhBIHByZWltYWdlIGhhcyBiZWVuIG5vdGVkLiRSZXF1ZXN0ZWQEARBoYXNoLAEcVDo6SGFzaAABBHhBIHByZWltYWdlIGhhcyBiZWVuIHJlcXVlc3RlZC4cQ2xlYXJlZAQBEGhhc2gsARxUOjpIYXNoAAIEbEEgcHJlaW1hZ2UgaGFzIGJlbiBjbGVhcmVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldFkHDDxwYWxsZXRfaWRlbnRpdHkYcGFsbGV0FEV2ZW50BARUAAFYLElkZW50aXR5U2V0BAEMd2hvAAEwVDo6QWNjb3VudElkAAAE7EEgbmFtZSB3YXMgc2V0IG9yIHJlc2V0ICh3aGljaCB3aWxsIHJlbW92ZSBhbGwganVkZ2VtZW50cykuPElkZW50aXR5Q2xlYXJlZAgBDHdobwABMFQ6OkFjY291bnRJZAABHGRlcG9zaXRAATBCYWxhbmNlT2Y8VD4AAQTMQSBuYW1lIHdhcyBjbGVhcmVkLCBhbmQgdGhlIGdpdmVuIGJhbGFuY2UgcmV0dXJuZWQuOElkZW50aXR5S2lsbGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgACBMRBIG5hbWUgd2FzIHJlbW92ZWQgYW5kIHRoZSBnaXZlbiBiYWxhbmNlIHNsYXNoZWQuSEp1ZGdlbWVudFJlcXVlc3RlZAgBDHdobwABMFQ6OkFjY291bnRJZAABPHJlZ2lzdHJhcl9pbmRleCgBOFJlZ2lzdHJhckluZGV4AAMEnEEganVkZ2VtZW50IHdhcyBhc2tlZCBmcm9tIGEgcmVnaXN0cmFyLlBKdWRnZW1lbnRVbnJlcXVlc3RlZAgBDHdobwABMFQ6OkFjY291bnRJZAABPHJlZ2lzdHJhcl9pbmRleCgBOFJlZ2lzdHJhckluZGV4AAQEiEEganVkZ2VtZW50IHJlcXVlc3Qgd2FzIHJldHJhY3RlZC44SnVkZ2VtZW50R2l2ZW4IARh0YXJnZXQAATBUOjpBY2NvdW50SWQAATxyZWdpc3RyYXJfaW5kZXgoAThSZWdpc3RyYXJJbmRleAAFBJRBIGp1ZGdlbWVudCB3YXMgZ2l2ZW4gYnkgYSByZWdpc3RyYXIuOFJlZ2lzdHJhckFkZGVkBAE8cmVnaXN0cmFyX2luZGV4KAE4UmVnaXN0cmFySW5kZXgABgRYQSByZWdpc3RyYXIgd2FzIGFkZGVkLkBTdWJJZGVudGl0eUFkZGVkDAEMc3ViAAEwVDo6QWNjb3VudElkAAEQbWFpbgABMFQ6OkFjY291bnRJZAABHGRlcG9zaXRAATBCYWxhbmNlT2Y8VD4ABwT0QSBzdWItaWRlbnRpdHkgd2FzIGFkZGVkIHRvIGFuIGlkZW50aXR5IGFuZCB0aGUgZGVwb3NpdCBwYWlkLkBTdWJJZGVudGl0aWVzU2V0DAEQbWFpbgABMFQ6OkFjY291bnRJZAABOG51bWJlcl9vZl9zdWJzKAEMdTMyAAEsbmV3X2RlcG9zaXRAATBCYWxhbmNlT2Y8VD4ACAS8QW4gYWNjb3VudCdzIHN1Yi1pZGVudGl0aWVzIHdlcmUgc2V0IChpbiBidWxrKS5IU3ViSWRlbnRpdHlSZW5hbWVkCAEMc3ViAAEwVDo6QWNjb3VudElkAAEQbWFpbgABMFQ6OkFjY291bnRJZAAJBCEBQSBnaXZlbiBzdWItYWNjb3VudCdzIGFzc29jaWF0ZWQgbmFtZSB3YXMgY2hhbmdlZCBieSBpdHMgc3VwZXItaWRlbnRpdHkuSFN1YklkZW50aXR5UmVtb3ZlZAwBDHN1YgABMFQ6OkFjY291bnRJZAABEG1haW4AATBUOjpBY2NvdW50SWQAARxkZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAoECQFBIHN1Yi1pZGVudGl0eSB3YXMgcmVtb3ZlZCBmcm9tIGFuIGlkZW50aXR5IGFuZCB0aGUgZGVwb3NpdCBmcmVlZC5IU3ViSWRlbnRpdHlSZXZva2VkDAEMc3ViAAEwVDo6QWNjb3VudElkAAEQbWFpbgABMFQ6OkFjY291bnRJZAABHGRlcG9zaXRAATBCYWxhbmNlT2Y8VD4ACwgZAUEgc3ViLWlkZW50aXR5IHdhcyBjbGVhcmVkLCBhbmQgdGhlIGdpdmVuIGRlcG9zaXQgcmVwYXRyaWF0ZWQgZnJvbSB0aGXIbWFpbiBpZGVudGl0eSBhY2NvdW50IHRvIHRoZSBzdWItaWRlbnRpdHkgYWNjb3VudC44QXV0aG9yaXR5QWRkZWQEASRhdXRob3JpdHkAATBUOjpBY2NvdW50SWQADAR8QSB1c2VybmFtZSBhdXRob3JpdHkgd2FzIGFkZGVkLkBBdXRob3JpdHlSZW1vdmVkBAEkYXV0aG9yaXR5AAEwVDo6QWNjb3VudElkAA0EhEEgdXNlcm5hbWUgYXV0aG9yaXR5IHdhcyByZW1vdmVkLixVc2VybmFtZVNldAgBDHdobwABMFQ6OkFjY291bnRJZAABIHVzZXJuYW1loQEBLFVzZXJuYW1lPFQ+AA4EdEEgdXNlcm5hbWUgd2FzIHNldCBmb3IgYHdob2AuOFVzZXJuYW1lUXVldWVkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEgdXNlcm5hbWWhAQEsVXNlcm5hbWU8VD4AAShleHBpcmF0aW9uKAFEQmxvY2tOdW1iZXJGb3I8VD4ADwQZAUEgdXNlcm5hbWUgd2FzIHF1ZXVlZCwgYnV0IGB3aG9gIG11c3QgYWNjZXB0IGl0IHByaW9yIHRvIGBleHBpcmF0aW9uYC5IUHJlYXBwcm92YWxFeHBpcmVkBAEUd2hvc2UAATBUOjpBY2NvdW50SWQAEAQ5AUEgcXVldWVkIHVzZXJuYW1lIHBhc3NlZCBpdHMgZXhwaXJhdGlvbiB3aXRob3V0IGJlaW5nIGNsYWltZWQgYW5kIHdhcyByZW1vdmVkLkhQcmltYXJ5VXNlcm5hbWVTZXQIAQx3aG8AATBUOjpBY2NvdW50SWQAASB1c2VybmFtZaEBASxVc2VybmFtZTxUPgARBAEBQSB1c2VybmFtZSB3YXMgc2V0IGFzIGEgcHJpbWFyeSBhbmQgY2FuIGJlIGxvb2tlZCB1cCBmcm9tIGB3aG9gLlxEYW5nbGluZ1VzZXJuYW1lUmVtb3ZlZAgBDHdobwABMFQ6OkFjY291bnRJZAABIHVzZXJuYW1loQEBLFVzZXJuYW1lPFQ+ABIIXQFBIGRhbmdsaW5nIHVzZXJuYW1lIChhcyBpbiwgYSB1c2VybmFtZSBjb3JyZXNwb25kaW5nIHRvIGFuIGFjY291bnQgdGhhdCBoYXMgcmVtb3ZlZCBpdHNsaWRlbnRpdHkpIGhhcyBiZWVuIHJlbW92ZWQuPFVzZXJuYW1lVW5ib3VuZAQBIHVzZXJuYW1loQEBLFVzZXJuYW1lPFQ+ABMEcEEgdXNlcm5hbWUgaGFzIGJlZW4gdW5ib3VuZC48VXNlcm5hbWVSZW1vdmVkBAEgdXNlcm5hbWWhAQEsVXNlcm5hbWU8VD4AFARwQSB1c2VybmFtZSBoYXMgYmVlbiByZW1vdmVkLjhVc2VybmFtZUtpbGxlZAQBIHVzZXJuYW1loQEBLFVzZXJuYW1lPFQ+ABUEbEEgdXNlcm5hbWUgaGFzIGJlZW4ga2lsbGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldF0HDEBwYWxsZXRfZGVtb2NyYWN5GHBhbGxldBRFdmVudAQEVAABRCBQcm9wb3NlZAgBOHByb3Bvc2FsX2luZGV4KAEkUHJvcEluZGV4AAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgAABLxBIG1vdGlvbiBoYXMgYmVlbiBwcm9wb3NlZCBieSBhIHB1YmxpYyBhY2NvdW50LhhUYWJsZWQIAThwcm9wb3NhbF9pbmRleCgBJFByb3BJbmRleAABHGRlcG9zaXRAATBCYWxhbmNlT2Y8VD4AAQTYQSBwdWJsaWMgcHJvcG9zYWwgaGFzIGJlZW4gdGFibGVkIGZvciByZWZlcmVuZHVtIHZvdGUuOEV4dGVybmFsVGFibGVkAAIElEFuIGV4dGVybmFsIHByb3Bvc2FsIGhhcyBiZWVuIHRhYmxlZC4cU3RhcnRlZAgBJHJlZl9pbmRleCgBPFJlZmVyZW5kdW1JbmRleAABJHRocmVzaG9sZGEHATRWb3RlVGhyZXNob2xkAAMEXEEgcmVmZXJlbmR1bSBoYXMgYmVndW4uGFBhc3NlZAQBJHJlZl9pbmRleCgBPFJlZmVyZW5kdW1JbmRleAAEBKxBIHByb3Bvc2FsIGhhcyBiZWVuIGFwcHJvdmVkIGJ5IHJlZmVyZW5kdW0uJE5vdFBhc3NlZAQBJHJlZl9pbmRleCgBPFJlZmVyZW5kdW1JbmRleAAFBKxBIHByb3Bvc2FsIGhhcyBiZWVuIHJlamVjdGVkIGJ5IHJlZmVyZW5kdW0uJENhbmNlbGxlZAQBJHJlZl9pbmRleCgBPFJlZmVyZW5kdW1JbmRleAAGBIBBIHJlZmVyZW5kdW0gaGFzIGJlZW4gY2FuY2VsbGVkLiREZWxlZ2F0ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARh0YXJnZXQAATBUOjpBY2NvdW50SWQABwTcQW4gYWNjb3VudCBoYXMgZGVsZWdhdGVkIHRoZWlyIHZvdGUgdG8gYW5vdGhlciBhY2NvdW50LixVbmRlbGVnYXRlZAQBHGFjY291bnQAATBUOjpBY2NvdW50SWQACATkQW4gYWNjb3VudCBoYXMgY2FuY2VsbGVkIGEgcHJldmlvdXMgZGVsZWdhdGlvbiBvcGVyYXRpb24uGFZldG9lZAwBDHdobwABMFQ6OkFjY291bnRJZAABNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAEUdW50aWwoAURCbG9ja051bWJlckZvcjxUPgAJBJRBbiBleHRlcm5hbCBwcm9wb3NhbCBoYXMgYmVlbiB2ZXRvZWQuLEJsYWNrbGlzdGVkBAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gACgTEQSBwcm9wb3NhbF9oYXNoIGhhcyBiZWVuIGJsYWNrbGlzdGVkIHBlcm1hbmVudGx5LhRWb3RlZAwBFHZvdGVyAAEwVDo6QWNjb3VudElkAAEkcmVmX2luZGV4KAE8UmVmZXJlbmR1bUluZGV4AAEQdm90ZbUBAWRBY2NvdW50Vm90ZTxCYWxhbmNlT2Y8VD4+AAsEkEFuIGFjY291bnQgaGFzIHZvdGVkIGluIGEgcmVmZXJlbmR1bSBTZWNvbmRlZAgBIHNlY29uZGVyAAEwVDo6QWNjb3VudElkAAEocHJvcF9pbmRleCgBJFByb3BJbmRleAAMBIxBbiBhY2NvdW50IGhhcyBzZWNjb25kZWQgYSBwcm9wb3NhbEBQcm9wb3NhbENhbmNlbGVkBAEocHJvcF9pbmRleCgBJFByb3BJbmRleAANBGBBIHByb3Bvc2FsIGdvdCBjYW5jZWxlZC4sTWV0YWRhdGFTZXQIARRvd25lcsEBATRNZXRhZGF0YU93bmVyBDxNZXRhZGF0YSBvd25lci4BEGhhc2gsARxUOjpIYXNoBDhQcmVpbWFnZSBoYXNoLg4E1E1ldGFkYXRhIGZvciBhIHByb3Bvc2FsIG9yIGEgcmVmZXJlbmR1bSBoYXMgYmVlbiBzZXQuPE1ldGFkYXRhQ2xlYXJlZAgBFG93bmVywQEBNE1ldGFkYXRhT3duZXIEPE1ldGFkYXRhIG93bmVyLgEQaGFzaCwBHFQ6Okhhc2gEOFByZWltYWdlIGhhc2guDwTkTWV0YWRhdGEgZm9yIGEgcHJvcG9zYWwgb3IgYSByZWZlcmVuZHVtIGhhcyBiZWVuIGNsZWFyZWQuTE1ldGFkYXRhVHJhbnNmZXJyZWQMAShwcmV2X293bmVywQEBNE1ldGFkYXRhT3duZXIEYFByZXZpb3VzIG1ldGFkYXRhIG93bmVyLgEUb3duZXLBAQE0TWV0YWRhdGFPd25lcgRMTmV3IG1ldGFkYXRhIG93bmVyLgEQaGFzaCwBHFQ6Okhhc2gEOFByZWltYWdlIGhhc2guEASsTWV0YWRhdGEgaGFzIGJlZW4gdHJhbnNmZXJyZWQgdG8gbmV3IG93bmVyLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldGEHDEBwYWxsZXRfZGVtb2NyYWN5OHZvdGVfdGhyZXNob2xkNFZvdGVUaHJlc2hvbGQAAQxQU3VwZXJNYWpvcml0eUFwcHJvdmUAAABQU3VwZXJNYWpvcml0eUFnYWluc3QAAQA4U2ltcGxlTWFqb3JpdHkAAgAAZQcMRHBhbGxldF9jb2xsZWN0aXZlGHBhbGxldBRFdmVudAgEVAAESQABKCBQcm9wb3NlZBABHGFjY291bnQAATBUOjpBY2NvdW50SWQAAThwcm9wb3NhbF9pbmRleCgBNFByb3Bvc2FsSW5kZXgAATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAABJHRocmVzaG9sZCgBLE1lbWJlckNvdW50AAAISQFBIG1vdGlvbiAoZ2l2ZW4gaGFzaCkgaGFzIGJlZW4gcHJvcG9zZWQgKGJ5IGdpdmVuIGFjY291bnQpIHdpdGggYSB0aHJlc2hvbGQgKGdpdmVuPGBNZW1iZXJDb3VudGApLhRWb3RlZBQBHGFjY291bnQAATBUOjpBY2NvdW50SWQAATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAABFHZvdGVkRAEQYm9vbAABDHllcygBLE1lbWJlckNvdW50AAEIbm8oASxNZW1iZXJDb3VudAABCAUBQSBtb3Rpb24gKGdpdmVuIGhhc2gpIGhhcyBiZWVuIHZvdGVkIG9uIGJ5IGdpdmVuIGFjY291bnQsIGxlYXZpbmcVAWEgdGFsbHkgKHllcyB2b3RlcyBhbmQgbm8gdm90ZXMgZ2l2ZW4gcmVzcGVjdGl2ZWx5IGFzIGBNZW1iZXJDb3VudGApLiBBcHByb3ZlZAQBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAIEwEEgbW90aW9uIHdhcyBhcHByb3ZlZCBieSB0aGUgcmVxdWlyZWQgdGhyZXNob2xkLixEaXNhcHByb3ZlZAQBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAME0EEgbW90aW9uIHdhcyBub3QgYXBwcm92ZWQgYnkgdGhlIHJlcXVpcmVkIHRocmVzaG9sZC4gRXhlY3V0ZWQIATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAABGHJlc3VsdFEHAThEaXNwYXRjaFJlc3VsdAAEBCEBQSBtb3Rpb24gd2FzIGV4ZWN1dGVkOyByZXN1bHQgd2lsbCBiZSBgT2tgIGlmIGl0IHJldHVybmVkIHdpdGhvdXQgZXJyb3IuOE1lbWJlckV4ZWN1dGVkCAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAARhyZXN1bHRRBwE4RGlzcGF0Y2hSZXN1bHQABQRJAUEgc2luZ2xlIG1lbWJlciBkaWQgc29tZSBhY3Rpb247IHJlc3VsdCB3aWxsIGJlIGBPa2AgaWYgaXQgcmV0dXJuZWQgd2l0aG91dCBlcnJvci4YQ2xvc2VkDAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gAAQx5ZXMoASxNZW1iZXJDb3VudAABCG5vKAEsTWVtYmVyQ291bnQABgRVAUEgcHJvcG9zYWwgd2FzIGNsb3NlZCBiZWNhdXNlIGl0cyB0aHJlc2hvbGQgd2FzIHJlYWNoZWQgb3IgYWZ0ZXIgaXRzIGR1cmF0aW9uIHdhcyB1cC4YS2lsbGVkBAE0cHJvcG9zYWxfaGFzaCwBHFQ6Okhhc2gABwRYQSBwcm9wb3NhbCB3YXMga2lsbGVkLkhQcm9wb3NhbENvc3RCdXJuZWQIATRwcm9wb3NhbF9oYXNoLAEcVDo6SGFzaAABDHdobwABMFQ6OkFjY291bnRJZAAIBLBTb21lIGNvc3QgZm9yIHN0b3JpbmcgYSBwcm9wb3NhbCB3YXMgYnVybmVkLlBQcm9wb3NhbENvc3RSZWxlYXNlZAgBNHByb3Bvc2FsX2hhc2gsARxUOjpIYXNoAAEMd2hvAAEwVDo6QWNjb3VudElkAAkEuFNvbWUgY29zdCBmb3Igc3RvcmluZyBhIHByb3Bvc2FsIHdhcyByZWxlYXNlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRpBwwwcGFsbGV0X3Byb3h5GHBhbGxldBRFdmVudAQEVAABHDRQcm94eUV4ZWN1dGVkBAEYcmVzdWx0UQcBOERpc3BhdGNoUmVzdWx0AAAEvEEgcHJveHkgd2FzIGV4ZWN1dGVkIGNvcnJlY3RseSwgd2l0aCB0aGUgZ2l2ZW4uLFB1cmVDcmVhdGVkEAEQcHVyZQABMFQ6OkFjY291bnRJZAABDHdobwABMFQ6OkFjY291bnRJZAABKHByb3h5X3R5cGXZAQEwVDo6UHJveHlUeXBlAAFQZGlzYW1iaWd1YXRpb25faW5kZXiAAQx1MTYAAQjcQSBwdXJlIGFjY291bnQgaGFzIGJlZW4gY3JlYXRlZCBieSBuZXcgcHJveHkgd2l0aCBnaXZlbpBkaXNhbWJpZ3VhdGlvbiBpbmRleCBhbmQgcHJveHkgdHlwZS4oUHVyZUtpbGxlZBABEHB1cmUAATBUOjpBY2NvdW50SWQAARxzcGF3bmVyAAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZdkBATBUOjpQcm94eVR5cGUAAVBkaXNhbWJpZ3VhdGlvbl9pbmRleIABDHUxNgACBJxBIHB1cmUgcHJveHkgd2FzIGtpbGxlZCBieSBpdHMgc3Bhd25lci4kQW5ub3VuY2VkDAEQcmVhbAABMFQ6OkFjY291bnRJZAABFHByb3h5AAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoLAE0Q2FsbEhhc2hPZjxUPgADBOBBbiBhbm5vdW5jZW1lbnQgd2FzIHBsYWNlZCB0byBtYWtlIGEgY2FsbCBpbiB0aGUgZnV0dXJlLihQcm94eUFkZGVkEAEkZGVsZWdhdG9yAAEwVDo6QWNjb3VudElkAAEkZGVsZWdhdGVlAAEwVDo6QWNjb3VudElkAAEocHJveHlfdHlwZdkBATBUOjpQcm94eVR5cGUAARRkZWxheSgBREJsb2NrTnVtYmVyRm9yPFQ+AAQESEEgcHJveHkgd2FzIGFkZGVkLjBQcm94eVJlbW92ZWQQASRkZWxlZ2F0b3IAATBUOjpBY2NvdW50SWQAASRkZWxlZ2F0ZWUAATBUOjpBY2NvdW50SWQAAShwcm94eV90eXBl2QEBMFQ6OlByb3h5VHlwZQABFGRlbGF5KAFEQmxvY2tOdW1iZXJGb3I8VD4ABQRQQSBwcm94eSB3YXMgcmVtb3ZlZC4wRGVwb3NpdFBva2VkEAEMd2hvAAEwVDo6QWNjb3VudElkAAEQa2luZG0HASxEZXBvc2l0S2luZAABLG9sZF9kZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAEsbmV3X2RlcG9zaXRAATBCYWxhbmNlT2Y8VD4ABgQJAUEgZGVwb3NpdCBzdG9yZWQgZm9yIHByb3hpZXMgb3IgYW5ub3VuY2VtZW50cyB3YXMgcG9rZWQgLyB1cGRhdGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldG0HCDBwYWxsZXRfcHJveHksRGVwb3NpdEtpbmQAAQgcUHJveGllcwAAADRBbm5vdW5jZW1lbnRzAAEAAHEHDDxwYWxsZXRfbXVsdGlzaWcYcGFsbGV0FEV2ZW50BARUAAEULE5ld011bHRpc2lnDAEkYXBwcm92aW5nAAEwVDo6QWNjb3VudElkAAEgbXVsdGlzaWcAATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gEASBDYWxsSGFzaAAABIxBIG5ldyBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZ3VuLkBNdWx0aXNpZ0FwcHJvdmFsEAEkYXBwcm92aW5nAAEwVDo6QWNjb3VudElkAAEkdGltZXBvaW505QEBcFRpbWVwb2ludDxCbG9ja051bWJlckZvcjxUPj4AASBtdWx0aXNpZwABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAQBIENhbGxIYXNoAAEEyEEgbXVsdGlzaWcgb3BlcmF0aW9uIGhhcyBiZWVuIGFwcHJvdmVkIGJ5IHNvbWVvbmUuQE11bHRpc2lnRXhlY3V0ZWQUASRhcHByb3ZpbmcAATBUOjpBY2NvdW50SWQAASR0aW1lcG9pbnTlAQFwVGltZXBvaW50PEJsb2NrTnVtYmVyRm9yPFQ+PgABIG11bHRpc2lnAAEwVDo6QWNjb3VudElkAAEkY2FsbF9oYXNoBAEgQ2FsbEhhc2gAARhyZXN1bHRRBwE4RGlzcGF0Y2hSZXN1bHQAAgScQSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gZXhlY3V0ZWQuRE11bHRpc2lnQ2FuY2VsbGVkEAEoY2FuY2VsbGluZwABMFQ6OkFjY291bnRJZAABJHRpbWVwb2ludOUBAXBUaW1lcG9pbnQ8QmxvY2tOdW1iZXJGb3I8VD4+AAEgbXVsdGlzaWcAATBUOjpBY2NvdW50SWQAASRjYWxsX2hhc2gEASBDYWxsSGFzaAADBKBBIG11bHRpc2lnIG9wZXJhdGlvbiBoYXMgYmVlbiBjYW5jZWxsZWQuMERlcG9zaXRQb2tlZBABDHdobwABMFQ6OkFjY291bnRJZAABJGNhbGxfaGFzaAQBIENhbGxIYXNoAAEsb2xkX2RlcG9zaXRAATBCYWxhbmNlT2Y8VD4AASxuZXdfZGVwb3NpdEABMEJhbGFuY2VPZjxUPgAEBPBUaGUgZGVwb3NpdCBmb3IgYSBtdWx0aXNpZyBvcGVyYXRpb24gaGFzIGJlZW4gdXBkYXRlZC9wb2tlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXR1Bww4cGFsbGV0X3VuaXF1ZXMYcGFsbGV0FEV2ZW50CARUAARJAAFsHENyZWF0ZWQMAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEcY3JlYXRvcgABMFQ6OkFjY291bnRJZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAAEbEEgYGNvbGxlY3Rpb25gIHdhcyBjcmVhdGVkLjBGb3JjZUNyZWF0ZWQIAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEUb3duZXIAATBUOjpBY2NvdW50SWQAAQSEQSBgY29sbGVjdGlvbmAgd2FzIGZvcmNlLWNyZWF0ZWQuJERlc3Ryb3llZAQBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAAgR0QSBgY29sbGVjdGlvbmAgd2FzIGRlc3Ryb3llZC4YSXNzdWVkDAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAADBFRBbiBgaXRlbWAgd2FzIGlzc3VlZC4sVHJhbnNmZXJyZWQQAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAABEGZyb20AATBUOjpBY2NvdW50SWQAAQh0bwABMFQ6OkFjY291bnRJZAAEBGhBbiBgaXRlbWAgd2FzIHRyYW5zZmVycmVkLhhCdXJuZWQMAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAUEYEFuIGBpdGVtYCB3YXMgZGVzdHJveWVkLhhGcm96ZW4IAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAAGBFxTb21lIGBpdGVtYCB3YXMgZnJvemVuLhhUaGF3ZWQIAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAAHBFxTb21lIGBpdGVtYCB3YXMgdGhhd2VkLkBDb2xsZWN0aW9uRnJvemVuBAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAAIBHRTb21lIGBjb2xsZWN0aW9uYCB3YXMgZnJvemVuLkBDb2xsZWN0aW9uVGhhd2VkBAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAAJBHRTb21lIGBjb2xsZWN0aW9uYCB3YXMgdGhhd2VkLjBPd25lckNoYW5nZWQIAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEkbmV3X293bmVyAAEwVDo6QWNjb3VudElkAAoESFRoZSBvd25lciBjaGFuZ2VkLixUZWFtQ2hhbmdlZBABKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARhpc3N1ZXIAATBUOjpBY2NvdW50SWQAARRhZG1pbgABMFQ6OkFjY291bnRJZAABHGZyZWV6ZXIAATBUOjpBY2NvdW50SWQACwRwVGhlIG1hbmFnZW1lbnQgdGVhbSBjaGFuZ2VkLkBBcHByb3ZlZFRyYW5zZmVyEAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABIGRlbGVnYXRlAAEwVDo6QWNjb3VudElkAAwIMQFBbiBgaXRlbWAgb2YgYSBgY29sbGVjdGlvbmAgaGFzIGJlZW4gYXBwcm92ZWQgYnkgdGhlIGBvd25lcmAgZm9yIHRyYW5zZmVyIGJ5NGEgYGRlbGVnYXRlYC5EQXBwcm92YWxDYW5jZWxsZWQQAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAEgZGVsZWdhdGUAATBUOjpBY2NvdW50SWQADQgZAUFuIGFwcHJvdmFsIGZvciBhIGBkZWxlZ2F0ZWAgYWNjb3VudCB0byB0cmFuc2ZlciB0aGUgYGl0ZW1gIG9mIGFuIGl0ZW2oYGNvbGxlY3Rpb25gIHdhcyBjYW5jZWxsZWQgYnkgaXRzIGBvd25lcmAuREl0ZW1TdGF0dXNDaGFuZ2VkBAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAAOBBEBQSBgY29sbGVjdGlvbmAgaGFzIGhhZCBpdHMgYXR0cmlidXRlcyBjaGFuZ2VkIGJ5IHRoZSBgRm9yY2VgIG9yaWdpbi5UQ29sbGVjdGlvbk1ldGFkYXRhU2V0DAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGRhdGEBAgF4Qm91bmRlZFZlYzx1OCwgVDo6U3RyaW5nTGltaXQ+AAEkaXNfZnJvemVuRAEQYm9vbAAPBLROZXcgbWV0YWRhdGEgaGFzIGJlZW4gc2V0IGZvciBhIGBjb2xsZWN0aW9uYC5kQ29sbGVjdGlvbk1ldGFkYXRhQ2xlYXJlZAQBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAEAS0TWV0YWRhdGEgaGFzIGJlZW4gY2xlYXJlZCBmb3IgYSBgY29sbGVjdGlvbmAuLE1ldGFkYXRhU2V0EAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAARBkYXRhAQIBeEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0PgABJGlzX2Zyb3plbkQBEGJvb2wAEQSYTmV3IG1ldGFkYXRhIGhhcyBiZWVuIHNldCBmb3IgYW4gaXRlbS48TWV0YWRhdGFDbGVhcmVkCAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAEgSYTWV0YWRhdGEgaGFzIGJlZW4gY2xlYXJlZCBmb3IgYW4gaXRlbS4sUmVkZXBvc2l0ZWQIAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAFAc3VjY2Vzc2Z1bF9pdGVtc/EBAThWZWM8VDo6SXRlbUlkPgATBJhNZXRhZGF0YSBoYXMgYmVlbiBjbGVhcmVkIGZvciBhbiBpdGVtLjBBdHRyaWJ1dGVTZXQQAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEobWF5YmVfaXRlbfUBAURPcHRpb248VDo6SXRlbUlkPgABDGtlefkBAWxCb3VuZGVkVmVjPHU4LCBUOjpLZXlMaW1pdD4AARR2YWx1Zf0BAXRCb3VuZGVkVmVjPHU4LCBUOjpWYWx1ZUxpbWl0PgAUBAUBTmV3IGF0dHJpYnV0ZSBtZXRhZGF0YSBoYXMgYmVlbiBzZXQgZm9yIGEgYGNvbGxlY3Rpb25gIG9yIGBpdGVtYC5AQXR0cmlidXRlQ2xlYXJlZAwBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAAShtYXliZV9pdGVt9QEBRE9wdGlvbjxUOjpJdGVtSWQ+AAEMa2V5+QEBbEJvdW5kZWRWZWM8dTgsIFQ6OktleUxpbWl0PgAVBAUBQXR0cmlidXRlIG1ldGFkYXRhIGhhcyBiZWVuIGNsZWFyZWQgZm9yIGEgYGNvbGxlY3Rpb25gIG9yIGBpdGVtYC5oT3duZXJzaGlwQWNjZXB0YW5jZUNoYW5nZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAAUBtYXliZV9jb2xsZWN0aW9u9QEBXE9wdGlvbjxUOjpDb2xsZWN0aW9uSWQ+ABYEwE93bmVyc2hpcCBhY2NlcHRhbmNlIGhhcyBjaGFuZ2VkIGZvciBhbiBhY2NvdW50LlhDb2xsZWN0aW9uTWF4U3VwcGx5U2V0CAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABKG1heF9zdXBwbHkoAQx1MzIAFwSkTWF4IHN1cHBseSBoYXMgYmVlbiBzZXQgZm9yIGEgY29sbGVjdGlvbi4wSXRlbVByaWNlU2V0EAEoY29sbGVjdGlvbkABPFQ6OkNvbGxlY3Rpb25JZAABEGl0ZW1AASRUOjpJdGVtSWQAARRwcmljZUABPEl0ZW1QcmljZTxULCBJPgABRHdoaXRlbGlzdGVkX2J1eWVyzQEBUE9wdGlvbjxUOjpBY2NvdW50SWQ+ABgEjFRoZSBwcmljZSB3YXMgc2V0IGZvciB0aGUgaW5zdGFuY2UuQEl0ZW1QcmljZVJlbW92ZWQIAShjb2xsZWN0aW9uQAE8VDo6Q29sbGVjdGlvbklkAAEQaXRlbUABJFQ6Okl0ZW1JZAAZBJxUaGUgcHJpY2UgZm9yIHRoZSBpbnN0YW5jZSB3YXMgcmVtb3ZlZC4oSXRlbUJvdWdodBQBKGNvbGxlY3Rpb25AATxUOjpDb2xsZWN0aW9uSWQAARBpdGVtQAEkVDo6SXRlbUlkAAEUcHJpY2VAATxJdGVtUHJpY2U8VCwgST4AARhzZWxsZXIAATBUOjpBY2NvdW50SWQAARRidXllcgABMFQ6OkFjY291bnRJZAAaBExBbiBpdGVtIHdhcyBib3VnaHQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0eQcMbHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbhhwYWxsZXQURXZlbnQEBFQAARAgTWlncmF0ZWQMAQx0b3AoAQx1MzIAARRjaGlsZCgBDHUzMgABHGNvbXB1dGV9BwFATWlncmF0aW9uQ29tcHV0ZQAACDkBR2l2ZW4gbnVtYmVyIG9mIGAodG9wLCBjaGlsZClgIGtleXMgd2VyZSBtaWdyYXRlZCByZXNwZWN0aXZlbHksIHdpdGggdGhlIGdpdmVuKGBjb21wdXRlYC4cU2xhc2hlZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABMEJhbGFuY2VPZjxUPgABBLRTb21lIGFjY291bnQgZ290IHNsYXNoZWQgYnkgdGhlIGdpdmVuIGFtb3VudC5UQXV0b01pZ3JhdGlvbkZpbmlzaGVkAAIEhFRoZSBhdXRvIG1pZ3JhdGlvbiB0YXNrIGZpbmlzaGVkLhhIYWx0ZWQEARRlcnJvcoEHASBFcnJvcjxUPgADBOxNaWdyYXRpb24gZ290IGhhbHRlZCBkdWUgdG8gYW4gZXJyb3Igb3IgbWlzcy1jb25maWd1cmF0aW9uLgRwSW5uZXIgZXZlbnRzIG9mIHRoaXMgcGFsbGV0Ln0HDGxwYWxsZXRfc3RhdGVfdHJpZV9taWdyYXRpb24YcGFsbGV0QE1pZ3JhdGlvbkNvbXB1dGUAAQgYU2lnbmVkAAAAEEF1dG8AAQAAgQcMbHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbhhwYWxsZXQURXJyb3IEBFQAARg8TWF4U2lnbmVkTGltaXRzAAAEgE1heCBzaWduZWQgbGltaXRzIG5vdCByZXNwZWN0ZWQuKEtleVRvb0xvbmcAARy0QSBrZXkgd2FzIGxvbmdlciB0aGFuIHRoZSBjb25maWd1cmVkIG1heGltdW0uABEBVGhpcyBtZWFucyB0aGF0IHRoZSBtaWdyYXRpb24gaGFsdGVkIGF0IHRoZSBjdXJyZW50IFtgUHJvZ3Jlc3NgXSBhbmQBAWNhbiBiZSByZXN1bWVkIHdpdGggYSBsYXJnZXIgW2BjcmF0ZTo6Q29uZmlnOjpNYXhLZXlMZW5gXSB2YWx1ZS4hAVJldHJ5aW5nIHdpdGggdGhlIHNhbWUgW2BjcmF0ZTo6Q29uZmlnOjpNYXhLZXlMZW5gXSB2YWx1ZSB3aWxsIG5vdCB3b3JrLkUBVGhlIHZhbHVlIHNob3VsZCBvbmx5IGJlIGluY3JlYXNlZCB0byBhdm9pZCBhIHN0b3JhZ2UgbWlncmF0aW9uIGZvciB0aGUgY3VycmVudGx5kHN0b3JlZCBbYGNyYXRlOjpQcm9ncmVzczo6TGFzdEtleWBdLjhOb3RFbm91Z2hGdW5kcwACBJRzdWJtaXR0ZXIgZG9lcyBub3QgaGF2ZSBlbm91Z2ggZnVuZHMuKEJhZFdpdG5lc3MAAwRoQmFkIHdpdG5lc3MgZGF0YSBwcm92aWRlZC5kU2lnbmVkTWlncmF0aW9uTm90QWxsb3dlZAAEBCUBU2lnbmVkIG1pZ3JhdGlvbiBpcyBub3QgYWxsb3dlZCBiZWNhdXNlIHRoZSBtYXhpbXVtIGxpbWl0IGlzIG5vdCBzZXQgeWV0LjBCYWRDaGlsZFJvb3QABQRgQmFkIGNoaWxkIHJvb3QgcHJvdmlkZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LoUHDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcYcGFsbGV0FEV2ZW50CARUAARJAAEUJERlbGVnYXRlZAgAAAEwVDo6QWNjb3VudElkAAAAATBUOjpBY2NvdW50SWQAAAQdAUFuIGFjY291bnQgaGFzIGRlbGVnYXRlZCB0aGVpciB2b3RlIHRvIGFub3RoZXIgYWNjb3VudC4gXFt3aG8sIHRhcmdldFxdLFVuZGVsZWdhdGVkBAAAATBUOjpBY2NvdW50SWQAAQT0QW4gXFthY2NvdW50XF0gaGFzIGNhbmNlbGxlZCBhIHByZXZpb3VzIGRlbGVnYXRpb24gb3BlcmF0aW9uLhRWb3RlZAgBDHdobwABMFQ6OkFjY291bnRJZAABEHZvdGUhAgFwQWNjb3VudFZvdGU8QmFsYW5jZU9mPFQsIEk+PgACBFBBbiBhY2NvdW50IGhhcyB2b3RlZCxWb3RlUmVtb3ZlZAgBDHdobwABMFQ6OkFjY291bnRJZAABEHZvdGUhAgFwQWNjb3VudFZvdGU8QmFsYW5jZU9mPFQsIEk+PgADBFxBIHZvdGUgaGFzIGJlZW4gcmVtb3ZlZDBWb3RlVW5sb2NrZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAARRjbGFzc4ABNENsYXNzT2Y8VCwgST4ABARFAVRoZSBsb2NrdXAgcGVyaW9kIG9mIGEgY29udmljdGlvbiB2b3RlIGV4cGlyZWQsIGFuZCB0aGUgZnVuZHMgaGF2ZSBiZWVuIHVubG9ja2VkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldIkHDEBwYWxsZXRfcmVmZXJlbmRhGHBhbGxldBRFdmVudAgEVAAESQABQCRTdWJtaXR0ZWQMARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0cmFja4ABPFRyYWNrSWRPZjxULCBJPgQlAVRoZSB0cmFjayAoYW5kIGJ5IGV4dGVuc2lvbiBwcm9wb3NhbCBkaXNwYXRjaCBvcmlnaW4pIG9mIHRoaXMgcmVmZXJlbmR1bS4BIHByb3Bvc2FsqQEBTEJvdW5kZWRDYWxsT2Y8VCwgST4EgFRoZSBwcm9wb3NhbCBmb3IgdGhlIHJlZmVyZW5kdW0uAASAQSByZWZlcmVuZHVtIGhhcyBiZWVuIHN1Ym1pdHRlZC5URGVjaXNpb25EZXBvc2l0UGxhY2VkDAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEMd2hvAAEwVDo6QWNjb3VudElkBIxUaGUgYWNjb3VudCB3aG8gcGxhY2VkIHRoZSBkZXBvc2l0LgEYYW1vdW50QAE8QmFsYW5jZU9mPFQsIEk+BIRUaGUgYW1vdW50IHBsYWNlZCBieSB0aGUgYWNjb3VudC4BBJRUaGUgZGVjaXNpb24gZGVwb3NpdCBoYXMgYmVlbiBwbGFjZWQuXERlY2lzaW9uRGVwb3NpdFJlZnVuZGVkDAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEMd2hvAAEwVDo6QWNjb3VudElkBIxUaGUgYWNjb3VudCB3aG8gcGxhY2VkIHRoZSBkZXBvc2l0LgEYYW1vdW50QAE8QmFsYW5jZU9mPFQsIEk+BIRUaGUgYW1vdW50IHBsYWNlZCBieSB0aGUgYWNjb3VudC4CBJxUaGUgZGVjaXNpb24gZGVwb3NpdCBoYXMgYmVlbiByZWZ1bmRlZC44RGVwb3NpdFNsYXNoZWQIAQx3aG8AATBUOjpBY2NvdW50SWQEjFRoZSBhY2NvdW50IHdobyBwbGFjZWQgdGhlIGRlcG9zaXQuARhhbW91bnRAATxCYWxhbmNlT2Y8VCwgST4EhFRoZSBhbW91bnQgcGxhY2VkIGJ5IHRoZSBhY2NvdW50LgMEbEEgZGVwb3NpdCBoYXMgYmVlbiBzbGFzaGVkLjxEZWNpc2lvblN0YXJ0ZWQQARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0cmFja4ABPFRyYWNrSWRPZjxULCBJPgQlAVRoZSB0cmFjayAoYW5kIGJ5IGV4dGVuc2lvbiBwcm9wb3NhbCBkaXNwYXRjaCBvcmlnaW4pIG9mIHRoaXMgcmVmZXJlbmR1bS4BIHByb3Bvc2FsqQEBTEJvdW5kZWRDYWxsT2Y8VCwgST4EgFRoZSBwcm9wb3NhbCBmb3IgdGhlIHJlZmVyZW5kdW0uARR0YWxseY0HASBUOjpUYWxseQS4VGhlIGN1cnJlbnQgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgQEvEEgcmVmZXJlbmR1bSBoYXMgbW92ZWQgaW50byB0aGUgZGVjaWRpbmcgcGhhc2UuOENvbmZpcm1TdGFydGVkBAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgUAOENvbmZpcm1BYm9ydGVkBAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgYAJENvbmZpcm1lZAgBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5jQcBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgcEIQFBIHJlZmVyZW5kdW0gaGFzIGVuZGVkIGl0cyBjb25maXJtYXRpb24gcGhhc2UgYW5kIGlzIHJlYWR5IGZvciBhcHByb3ZhbC4gQXBwcm92ZWQEARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uCAQNAUEgcmVmZXJlbmR1bSBoYXMgYmVlbiBhcHByb3ZlZCBhbmQgaXRzIHByb3Bvc2FsIGhhcyBiZWVuIHNjaGVkdWxlZC4gUmVqZWN0ZWQIARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uARR0YWxseY0HASBUOjpUYWxseQSwVGhlIGZpbmFsIHRhbGx5IG9mIHZvdGVzIGluIHRoaXMgcmVmZXJlbmR1bS4JBKxBIHByb3Bvc2FsIGhhcyBiZWVuIHJlamVjdGVkIGJ5IHJlZmVyZW5kdW0uIFRpbWVkT3V0CAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEUdGFsbHmNBwEgVDo6VGFsbHkEsFRoZSBmaW5hbCB0YWxseSBvZiB2b3RlcyBpbiB0aGlzIHJlZmVyZW5kdW0uCgTYQSByZWZlcmVuZHVtIGhhcyBiZWVuIHRpbWVkIG91dCB3aXRob3V0IGJlaW5nIGRlY2lkZWQuJENhbmNlbGxlZAgBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5jQcBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgsEgEEgcmVmZXJlbmR1bSBoYXMgYmVlbiBjYW5jZWxsZWQuGEtpbGxlZAgBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BFHRhbGx5jQcBIFQ6OlRhbGx5BLBUaGUgZmluYWwgdGFsbHkgb2Ygdm90ZXMgaW4gdGhpcyByZWZlcmVuZHVtLgwEdEEgcmVmZXJlbmR1bSBoYXMgYmVlbiBraWxsZWQuZFN1Ym1pc3Npb25EZXBvc2l0UmVmdW5kZWQMARRpbmRleCgBPFJlZmVyZW5kdW1JbmRleARgSW5kZXggb2YgdGhlIHJlZmVyZW5kdW0uAQx3aG8AATBUOjpBY2NvdW50SWQEjFRoZSBhY2NvdW50IHdobyBwbGFjZWQgdGhlIGRlcG9zaXQuARhhbW91bnRAATxCYWxhbmNlT2Y8VCwgST4EhFRoZSBhbW91bnQgcGxhY2VkIGJ5IHRoZSBhY2NvdW50Lg0EpFRoZSBzdWJtaXNzaW9uIGRlcG9zaXQgaGFzIGJlZW4gcmVmdW5kZWQuLE1ldGFkYXRhU2V0CAEUaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgEYEluZGV4IG9mIHRoZSByZWZlcmVuZHVtLgEQaGFzaCwBHFQ6Okhhc2gEOFByZWltYWdlIGhhc2guDgScTWV0YWRhdGEgZm9yIGEgcmVmZXJlbmR1bSBoYXMgYmVlbiBzZXQuPE1ldGFkYXRhQ2xlYXJlZAgBFGluZGV4KAE8UmVmZXJlbmR1bUluZGV4BGBJbmRleCBvZiB0aGUgcmVmZXJlbmR1bS4BEGhhc2gsARxUOjpIYXNoBDhQcmVpbWFnZSBoYXNoLg8ErE1ldGFkYXRhIGZvciBhIHJlZmVyZW5kdW0gaGFzIGJlZW4gY2xlYXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSNBwxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nFHR5cGVzFFRhbGx5CBRWb3RlcwFAFFRvdGFsAAAMARBheWVzQAEUVm90ZXMAARBuYXlzQAEUVm90ZXMAARxzdXBwb3J0QAEUVm90ZXMAAJEHDEBwYWxsZXRfd2hpdGVsaXN0GHBhbGxldBRFdmVudAQEVAABDDxDYWxsV2hpdGVsaXN0ZWQEASRjYWxsX2hhc2gsARxUOjpIYXNoAAAAWFdoaXRlbGlzdGVkQ2FsbFJlbW92ZWQEASRjYWxsX2hhc2gsARxUOjpIYXNoAAEAZFdoaXRlbGlzdGVkQ2FsbERpc3BhdGNoZWQIASRjYWxsX2hhc2gsARxUOjpIYXNoAAEYcmVzdWx0lQcBaERpc3BhdGNoUmVzdWx0V2l0aFBvc3RJbmZvAAIABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0lQcEGFJlc3VsdAgEVAGZBwRFAZ0HAQgIT2sEAJkHAAAAAAxFcnIEAJ0HAAABAACZBww0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQb3N0RGlzcGF0Y2hJbmZvAAAIATRhY3R1YWxfd2VpZ2h0/QUBOE9wdGlvbjxXZWlnaHQ+AAEgcGF5c19mZWUdBwEQUGF5cwAAnQcIKHNwX3J1bnRpbWVkRGlzcGF0Y2hFcnJvcldpdGhQb3N0SW5mbwQQSW5mbwGZBwAIASRwb3N0X2luZm+ZBwEQSW5mbwABFGVycm9yIQcBNERpc3BhdGNoRXJyb3IAAKEHDERwYWxsZXRfZGlzcGF0Y2hlchhwYWxsZXQURXZlbnQEBFQAAQx0VHJlYXN1cnlNYW5hZ2VyQ2FsbERpc3BhdGNoZWQIASRjYWxsX2hhc2gsARxUOjpIYXNoAAEYcmVzdWx0lQcBaERpc3BhdGNoUmVzdWx0V2l0aFBvc3RJbmZvAAAAZEFhdmVNYW5hZ2VyQ2FsbERpc3BhdGNoZWQIASRjYWxsX2hhc2gsARxUOjpIYXNoAAEYcmVzdWx0lQcBaERpc3BhdGNoUmVzdWx0V2l0aFBvc3RJbmZvAAEAcEVtZXJnZW5jeUFkbWluQ2FsbERpc3BhdGNoZWQIASRjYWxsX2hhc2gsARxUOjpIYXNoAAEYcmVzdWx0lQcBaERpc3BhdGNoUmVzdWx0V2l0aFBvc3RJbmZvAAIABHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0pQcMVHBhbGxldF9hc3NldF9yZWdpc3RyeRhwYWxsZXQURXZlbnQEBFQAARhYRXhpc3RlbnRpYWxEZXBvc2l0UGFpZAwBDHdobwABMFQ6OkFjY291bnRJZAABJGZlZV9hc3NldCgBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAAI0EV4aXN0ZW50aWFsIGRlcG9zaXQgZm9yIGluc3VmZmljaW5ldCBhc3NldCB3YXMgcGFpZC6cYFN1ZmZpY2llbmN5Q2hlY2tgIHRyaWdnZXJzIHRoaXMgZXZlbnQuKFJlZ2lzdGVyZWQgASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAShhc3NldF9uYW1lRQIBmE9wdGlvbjxCb3VuZGVkVmVjPHU4LCBUOjpTdHJpbmdMaW1pdD4+AAEoYXNzZXRfdHlwZU0CASRBc3NldFR5cGUAAUxleGlzdGVudGlhbF9kZXBvc2l0QAEcQmFsYW5jZQABOHhjbV9yYXRlX2xpbWl09QEBPE9wdGlvbjxCYWxhbmNlPgABGHN5bWJvbEUCAZhPcHRpb248Qm91bmRlZFZlYzx1OCwgVDo6U3RyaW5nTGltaXQ+PgABIGRlY2ltYWxzUQIBKE9wdGlvbjx1OD4AATRpc19zdWZmaWNpZW50RAEQYm9vbAABBFRBc3NldCB3YXMgcmVnaXN0ZXJlZC4cVXBkYXRlZCABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABKGFzc2V0X25hbWVFAgGYT3B0aW9uPEJvdW5kZWRWZWM8dTgsIFQ6OlN0cmluZ0xpbWl0Pj4AAShhc3NldF90eXBlTQIBJEFzc2V0VHlwZQABTGV4aXN0ZW50aWFsX2RlcG9zaXRAARxCYWxhbmNlAAE4eGNtX3JhdGVfbGltaXT1AQE8T3B0aW9uPEJhbGFuY2U+AAEYc3ltYm9sRQIBmE9wdGlvbjxCb3VuZGVkVmVjPHU4LCBUOjpTdHJpbmdMaW1pdD4+AAEgZGVjaW1hbHNRAgEoT3B0aW9uPHU4PgABNGlzX3N1ZmZpY2llbnREARBib29sAAIESEFzc2V0IHdhcyB1cGRhdGVkLixMb2NhdGlvblNldAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABIGxvY2F0aW9uWQIBWFQ6OkFzc2V0TmF0aXZlTG9jYXRpb24AAwSETmF0aXZlIGxvY2F0aW9uIHNldCBmb3IgYW4gYXNzZXQuLEFzc2V0QmFubmVkBAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAQEREFzc2V0IHdhcyBiYW5uZWQuNEFzc2V0VW5iYW5uZWQEASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQABQRgQXNzZXQncyBiYW4gd2FzIHJlbW92ZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0qQcMNHBhbGxldF9jbGFpbXMYcGFsbGV0FEV2ZW50BARUAAEEFENsYWltDAAAATBUOjpBY2NvdW50SWQAAK0HATxFdGhlcmV1bUFkZHJlc3MAAEABMEJhbGFuY2VPZjxUPgAAAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldK0HDDRwYWxsZXRfY2xhaW1zGHRyYWl0czxFdGhlcmV1bUFkZHJlc3MAAAQAXAEgW3U4OyAyMF0AALEHDFxwYWxsZXRfY29sbGF0b3JfcmV3YXJkcxhwYWxsZXQURXZlbnQEBFQAAQRAQ29sbGF0b3JSZXdhcmRlZAwBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAASBjdXJyZW5jeSgBNFQ6OkN1cnJlbmN5SWQAAARYQ29sbGF0b3Igd2FzIHJld2FyZGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLUHDGBwYWxsZXRfY29sbGF0b3Jfcm90YXRpb24YcGFsbGV0FEV2ZW50BARUAAEEPENvbGxhdG9yQmVuY2hlZAgBDHdobwABMFQ6OkFjY291bnRJZAABNHNlc3Npb25faW5kZXgoATBTZXNzaW9uSW5kZXgAAAAEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXS5Bww8cGFsbGV0X29tbmlwb29sGHBhbGxldBRFdmVudAQEVAABOChUb2tlbkFkZGVkDAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAE4aW5pdGlhbF9hbW91bnRAARxCYWxhbmNlAAE0aW5pdGlhbF9wcmljZVQBFFByaWNlAAAEeEFuIGFzc2V0IHdhcyBhZGRlZCB0byBPbW5pcG9vbDBUb2tlblJlbW92ZWQMASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAE0aHViX3dpdGhkcmF3bkABHEJhbGFuY2UAAQSIQW4gYXNzZXQgd2FzIHJlbW92ZWQgZnJvbSBPbW5pcG9vbDhMaXF1aWRpdHlBZGRlZBABDHdobwABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAIEsExpcXVpZGl0eSBvZiBhbiBhc3NldCB3YXMgYWRkZWQgdG8gT21uaXBvb2wuQExpcXVpZGl0eVJlbW92ZWQUAQx3aG8AATBUOjpBY2NvdW50SWQAASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAE4c2hhcmVzX3JlbW92ZWRAARxCYWxhbmNlAAEMZmVlVAEkRml4ZWRVMTI4AAMEwExpcXVpZGl0eSBvZiBhbiBhc3NldCB3YXMgcmVtb3ZlZCBmcm9tIE9tbmlwb29sLmBQcm90b2NvbExpcXVpZGl0eVJlbW92ZWQUAQx3aG8AATBUOjpBY2NvdW50SWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEoaHViX2Ftb3VudEABHEJhbGFuY2UAAThzaGFyZXNfcmVtb3ZlZEABHEJhbGFuY2UABAS0UFJvdG9jb2wgTGlxdWlkaXR5IHdhcyByZW1vdmVkIGZyb20gT21uaXBvb2wuMFNlbGxFeGVjdXRlZCQBDHdobwABMFQ6OkFjY291bnRJZAABIGFzc2V0X2luKAEoVDo6QXNzZXRJZAABJGFzc2V0X291dCgBKFQ6OkFzc2V0SWQAASRhbW91bnRfaW5AARxCYWxhbmNlAAEoYW1vdW50X291dEABHEJhbGFuY2UAATRodWJfYW1vdW50X2luQAEcQmFsYW5jZQABOGh1Yl9hbW91bnRfb3V0QAEcQmFsYW5jZQABQGFzc2V0X2ZlZV9hbW91bnRAARxCYWxhbmNlAAFMcHJvdG9jb2xfZmVlX2Ftb3VudEABHEJhbGFuY2UABQhQU2VsbCB0cmFkZSBleGVjdXRlZC7ERGVwcmVjYXRlZC4gUmVwbGFjZWQgYnkgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZCxCdXlFeGVjdXRlZCQBDHdobwABMFQ6OkFjY291bnRJZAABIGFzc2V0X2luKAEoVDo6QXNzZXRJZAABJGFzc2V0X291dCgBKFQ6OkFzc2V0SWQAASRhbW91bnRfaW5AARxCYWxhbmNlAAEoYW1vdW50X291dEABHEJhbGFuY2UAATRodWJfYW1vdW50X2luQAEcQmFsYW5jZQABOGh1Yl9hbW91bnRfb3V0QAEcQmFsYW5jZQABQGFzc2V0X2ZlZV9hbW91bnRAARxCYWxhbmNlAAFMcHJvdG9jb2xfZmVlX2Ftb3VudEABHEJhbGFuY2UABghMQnV5IHRyYWRlIGV4ZWN1dGVkLsREZXByZWNhdGVkLiBSZXBsYWNlZCBieSBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkPFBvc2l0aW9uQ3JlYXRlZBgBLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABFGFzc2V0KAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAARhzaGFyZXNAARxCYWxhbmNlAAEUcHJpY2VUARRQcmljZQAHBMBMUCBQb3NpdGlvbiB3YXMgY3JlYXRlZCBhbmQgTkZUIGluc3RhbmNlIG1pbnRlZC5EUG9zaXRpb25EZXN0cm95ZWQIASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAEUb3duZXIAATBUOjpBY2NvdW50SWQACATITFAgUG9zaXRpb24gd2FzIGRlc3Ryb3llZCBhbmQgTkZUIGluc3RhbmNlIGJ1cm5lZC48UG9zaXRpb25VcGRhdGVkGAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAABFG93bmVyAAEwVDo6QWNjb3VudElkAAEUYXNzZXQoAShUOjpBc3NldElkAAEYYW1vdW50QAEcQmFsYW5jZQABGHNoYXJlc0ABHEJhbGFuY2UAARRwcmljZVQBFFByaWNlAAkEYExQIFBvc2l0aW9uIHdhcyB1cGRhdGVkLlBUcmFkYWJsZVN0YXRlVXBkYXRlZAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABFHN0YXRleQIBLFRyYWRhYmlsaXR5AAoEoEFzc2V0J3MgdHJhZGFibGUgc3RhdGUgaGFzIGJlZW4gdXBkYXRlZC40QXNzZXRSZWZ1bmRlZAwBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABGGFtb3VudEABHEJhbGFuY2UAASRyZWNpcGllbnQAATBUOjpBY2NvdW50SWQACwRJAUFtb3VudCBoYXMgYmVlbiByZWZ1bmRlZCBmb3IgYXNzZXQgd2hpY2ggaGFzIG5vdCBiZWVuIGFjY2VwdGVkIHRvIGFkZCB0byBvbW5pcG9vbC5UQXNzZXRXZWlnaHRDYXBVcGRhdGVkCAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEMY2FwdQIBHFBlcm1pbGwADASQQXNzZXQncyB3ZWlnaHQgY2FwIGhhcyBiZWVuIHVwZGF0ZWQuKFNsaXBGZWVTZXQEASBzbGlwX2ZlZYECAVRPcHRpb248U2xpcEZlZUNvbmZpZz4ADQSMU2xpcCBmZWUgY29uZmlndXJhdGlvbiB3YXMgdXBkYXRlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXS9BwxgcGFsbGV0X3RyYW5zYWN0aW9uX3BhdXNlGHBhbGxldBRFdmVudAQEVAABCERUcmFuc2FjdGlvblBhdXNlZAgBRHBhbGxldF9uYW1lX2J5dGVzFAEcVmVjPHU4PgABTGZ1bmN0aW9uX25hbWVfYnl0ZXMUARxWZWM8dTg+AAAESFBhdXNlZCB0cmFuc2FjdGlvbkxUcmFuc2FjdGlvblVucGF1c2VkCAFEcGFsbGV0X25hbWVfYnl0ZXMUARxWZWM8dTg+AAFMZnVuY3Rpb25fbmFtZV9ieXRlcxQBHFZlYzx1OD4AAQRQVW5wYXVzZWQgdHJhbnNhY3Rpb24EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTBBww0cGFsbGV0X2R1c3RlchhwYWxsZXQURXZlbnQEBFQAAQwYRHVzdGVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEcQmFsYW5jZQAABDxBY2NvdW50IGR1c3RlZC4UQWRkZWQEAQx3aG8AATBUOjpBY2NvdW50SWQAAQSMQWNjb3VudCBhZGRlZCB0byBub24tZHVzdGFibGUgbGlzdC4cUmVtb3ZlZAQBDHdobwABMFQ6OkFjY291bnRJZAACBJxBY2NvdW50IHJlbW92ZWQgZnJvbSBub24tZHVzdGFibGUgbGlzdC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTFBwxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcYcGFsbGV0FEV2ZW50CARUAARJAAEMXEdsb2JhbEZhcm1BY2NSUFpVcGRhdGVkDAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATxhY2N1bXVsYXRlZF9ycHpUASRGaXhlZFUxMjgAATh0b3RhbF9zaGFyZXNfekABHEJhbGFuY2UAAATUR2xvYmFsIGZhcm0gYWNjdW11bGF0ZWQgcmV3YXJkIHBlciBzaGFyZSB3YXMgdXBkYXRlZC5cWWllbGRGYXJtQWNjUlBWU1VwZGF0ZWQQAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABQGFjY3VtdWxhdGVkX3JwdnNUASRGaXhlZFUxMjgAAUx0b3RhbF92YWx1ZWRfc2hhcmVzQAEcQmFsYW5jZQABBOxZaWVsZCBmYXJtIGFjY3VtdWxhdGVkIHJld2FyZCBwZXIgdmFsdWVkIHNoYXJlIHdhcyB1cGRhdGVkLlRBbGxSZXdhcmRzRGlzdHJpYnV0ZWQEAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAACBPBHbG9iYWwgZmFybSBoYXMgbm8gbW9yZSByZXdhcmRzIHRvIGRpc3RyaWJ1dGUgaW4gdGhlIG1vbWVudC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTJBwyAcGFsbGV0X29tbmlwb29sX2xpcXVpZGl0eV9taW5pbmcYcGFsbGV0FEV2ZW50BARUAAE0REdsb2JhbEZhcm1DcmVhdGVkKAEIaWQoATBHbG9iYWxGYXJtSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABNHRvdGFsX3Jld2FyZHNAARxCYWxhbmNlAAE8cmV3YXJkX2N1cnJlbmN5KAEoVDo6QXNzZXRJZAABQHlpZWxkX3Blcl9wZXJpb2SZAgEsUGVycXVpbnRpbGwAAWBwbGFubmVkX3lpZWxkaW5nX3BlcmlvZHMoASxQZXJpb2RPZjxUPgABRGJsb2Nrc19wZXJfcGVyaW9kKAFEQmxvY2tOdW1iZXJGb3I8VD4AAVRtYXhfcmV3YXJkX3Blcl9wZXJpb2RAARxCYWxhbmNlAAEsbWluX2RlcG9zaXRAARxCYWxhbmNlAAFUbHJuYV9wcmljZV9hZGp1c3RtZW50VAEkRml4ZWRVMTI4AAAEcE5ldyBnbG9iYWwgZmFybSB3YXMgY3JlYXRlZC5ER2xvYmFsRmFybVVwZGF0ZWQQAQhpZCgBMEdsb2JhbEZhcm1JZAABYHBsYW5uZWRfeWllbGRpbmdfcGVyaW9kcygBLFBlcmlvZE9mPFQ+AAFAeWllbGRfcGVyX3BlcmlvZJkCASxQZXJxdWludGlsbAABLG1pbl9kZXBvc2l0QAEcQmFsYW5jZQABBFxHbG9iYWwgZmFybSB3YXMgdXBkYXRlZFBHbG9iYWxGYXJtVGVybWluYXRlZBABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAE8cmV3YXJkX2N1cnJlbmN5KAEoVDo6QXNzZXRJZAABVHVuZGlzdHJpYnV0ZWRfcmV3YXJkc0ABHEJhbGFuY2UAAgRsR2xvYmFsIGZhcm0gd2FzIHRlcm1pbmF0ZWQuQFlpZWxkRmFybUNyZWF0ZWQUAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABKG11bHRpcGxpZXJUAThGYXJtTXVsdGlwbGllcgABNGxveWFsdHlfY3VydmWdAgFQT3B0aW9uPExveWFsdHlDdXJ2ZT4AAwSUTmV3IHlpZWxkIGZhcm0gd2FzIGFkZGVkIHRvIHRoZSBmYXJtLkBZaWVsZEZhcm1VcGRhdGVkFAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAAShtdWx0aXBsaWVyVAE4RmFybU11bHRpcGxpZXIABASIWWllbGQgZmFybSBtdWx0aXBsaWVyIHdhcyB1cGRhdGVkLkBZaWVsZEZhcm1TdG9wcGVkEAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQABQSYWWllbGQgZmFybSBmb3IgYGFzc2V0X2lkYCB3YXMgc3RvcHBlZC5AWWllbGRGYXJtUmVzdW1lZBQBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAYEmFlpZWxkIGZhcm0gZm9yIGBhc3NldF9pZGAgd2FzIHJlc3VtZWQuTFlpZWxkRmFybVRlcm1pbmF0ZWQQAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABDHdobwABMFQ6OkFjY291bnRJZAAHBLxZaWVsZCBmYXJtIHdhcyB0ZXJtaW5hdGVkIGZyb20gdGhlIGdsb2JhbCBmYXJtLjxTaGFyZXNEZXBvc2l0ZWQcAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABKGRlcG9zaXRfaWRAASREZXBvc2l0SWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAATRzaGFyZXNfYW1vdW50QAEcQmFsYW5jZQABLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQACASoTmV3IExQIHNoYXJlcyhMUCBwb3NpdGlvbikgd2VyZSBkZXBvc2l0ZWQuRFNoYXJlc1JlZGVwb3NpdGVkHAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAShkZXBvc2l0X2lkQAEkRGVwb3NpdElkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEMd2hvAAEwVDo6QWNjb3VudElkAAE0c2hhcmVzX2Ftb3VudEABHEJhbGFuY2UAASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAkEAQFBbHJlYWR5IGxvY2tlZCBMUCBzaGFyZXMgd2VyZSByZWRlcG9zaXRlZCB0byBhbm90aGVyIHlpZWxkIGZhcm0uNFJld2FyZENsYWltZWQYAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABHGNsYWltZWRAARxCYWxhbmNlAAE8cmV3YXJkX2N1cnJlbmN5KAEoVDo6QXNzZXRJZAABKGRlcG9zaXRfaWRAASREZXBvc2l0SWQACgRUUmV3YXJkcyB3ZXJlIGNsYWltZWQuPFNoYXJlc1dpdGhkcmF3bhQBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEcQmFsYW5jZQABKGRlcG9zaXRfaWRAASREZXBvc2l0SWQACwRkTFAgc2hhcmVzIHdlcmUgd2l0aGRyYXduLkBEZXBvc2l0RGVzdHJveWVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAAMBB0BQWxsIExQIHNoYXJlcyB3ZXJlIHVubG9ja2VkIGFuZCBORlQgcmVwcmVzZW50aW5nIGRlcG9zaXQgd2FzIGRlc3Ryb3llZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTNBwwocGFsbGV0X290YxhwYWxsZXQURXZlbnQEBFQAARAkQ2FuY2VsbGVkBAEgb3JkZXJfaWQoARxPcmRlcklkAAAEbEFuIE9yZGVyIGhhcyBiZWVuIGNhbmNlbGxlZBhGaWxsZWQUASBvcmRlcl9pZCgBHE9yZGVySWQAAQx3aG8AATBUOjpBY2NvdW50SWQAASRhbW91bnRfaW5AARxCYWxhbmNlAAEoYW1vdW50X291dEABHEJhbGFuY2UAAQxmZWVAARxCYWxhbmNlAAEIjEFuIE9yZGVyIGhhcyBiZWVuIGNvbXBsZXRlbHkgZmlsbGVkxERlcHJlY2F0ZWQuIFJlcGxhY2VkIGJ5IHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWQ8UGFydGlhbGx5RmlsbGVkFAEgb3JkZXJfaWQoARxPcmRlcklkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABKGFtb3VudF9vdXRAARxCYWxhbmNlAAEMZmVlQAEcQmFsYW5jZQACCIhBbiBPcmRlciBoYXMgYmVlbiBwYXJ0aWFsbHkgZmlsbGVkxERlcHJlY2F0ZWQuIFJlcGxhY2VkIGJ5IHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWQYUGxhY2VkGAEgb3JkZXJfaWQoARxPcmRlcklkAAEgYXNzZXRfaW4oAShUOjpBc3NldElkAAEkYXNzZXRfb3V0KAEoVDo6QXNzZXRJZAABJGFtb3VudF9pbkABHEJhbGFuY2UAAShhbW91bnRfb3V0QAEcQmFsYW5jZQABSHBhcnRpYWxseV9maWxsYWJsZUQBEGJvb2wAAwRgQW4gT3JkZXIgaGFzIGJlZW4gcGxhY2VkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV00QcMWHBhbGxldF9jaXJjdWl0X2JyZWFrZXIYcGFsbGV0FEV2ZW50BARUAAE0XFRyYWRlVm9sdW1lTGltaXRDaGFuZ2VkCAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAFIdHJhZGVfdm9sdW1lX2xpbWl0qQIBKCh1MzIsIHUzMikAAASsVHJhZGUgdm9sdW1lIGxpbWl0IG9mIGFuIGFzc2V0IHdhcyBjaGFuZ2VkLmBBZGRMaXF1aWRpdHlMaW1pdENoYW5nZWQIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAATxsaXF1aWRpdHlfbGltaXTRAgFIT3B0aW9uPCh1MzIsIHUzMik+AAEEsEFkZCBsaXF1aWRpdHkgbGltaXQgb2YgYW4gYXNzZXQgd2FzIGNoYW5nZWQubFJlbW92ZUxpcXVpZGl0eUxpbWl0Q2hhbmdlZAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABPGxpcXVpZGl0eV9saW1pdNECAUhPcHRpb248KHUzMiwgdTMyKT4AAgS8UmVtb3ZlIGxpcXVpZGl0eSBsaW1pdCBvZiBhbiBhc3NldCB3YXMgY2hhbmdlZC40QXNzZXRMb2NrZG93bggBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABFHVudGlsKAFEQmxvY2tOdW1iZXJGb3I8VD4AAwRYQXNzZXQgd2VudCB0byBsb2NrZG93blBBc3NldExvY2tkb3duUmVtb3ZlZAQBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAAEBGhBc3NldCBsb2NrZG93biB3YXMgcmVtb3ZlZDxEZXBvc2l0UmVsZWFzZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQABQSsQWxsIHJlc2VydmVkIGFtb3VudCBvZiBkZXBvc2l0IHdhcyByZWxlYXNlZFhXaXRoZHJhd0xvY2tkb3duTGlmdGVkAAYEHQFHbG9iYWwgd2l0aGRyYXcgbG9ja2Rvd24gd2FzIGxpZnRlZCAoZWl0aGVyIGF1dG9tYXRpY2FsbHkgb3IgYnkgcmVzZXQpLlRXaXRoZHJhd0xvY2tkb3duUmVzZXQABwQJAVdpdGhkcmF3IGxvY2tkb3duIGFjY3VtdWxhdG9yIGFuZCBzdGF0ZXMgd2VyZSByZXNldCBieSBnb3Zlcm5hbmNlLmhXaXRoZHJhd0xpbWl0Q29uZmlnVXBkYXRlZAgBFGxpbWl0QAEoVDo6QmFsYW5jZQABGHdpbmRvdxgBSHByaW1pdGl2ZXM6Ok1vbWVudAAIBNRHbG9iYWwgd2l0aGRyYXcgbGltaXQgY29uZmlnIHBhcmFtZXRlcnMgd2VyZSB1cGRhdGVkLmRXaXRoZHJhd0xvY2tkb3duVHJpZ2dlcmVkBAEUdW50aWwYAUhwcmltaXRpdmVzOjpNb21lbnQACQS8R2xvYmFsIHdpdGhkcmF3IGxvY2tkb3duIHdhcyBzZXQgYnkgZ292ZXJuYW5jZS5MRWdyZXNzQWNjb3VudHNBZGRlZAQBFGNvdW50KAEMdTMyAAoEsEEgbnVtYmVyIG9mIGVncmVzcyBhY2NvdW50cyBhZGRlZCB0byBhIGxpc3QuVEVncmVzc0FjY291bnRzUmVtb3ZlZAQBFGNvdW50KAEMdTMyAAsEwEEgbnVtYmVyIG9mIGVncmVzcyBhY2NvdW50cyByZW1vdmVkIGZyb20gYSBsaXN0LlBBc3NldENhdGVnb3J5VXBkYXRlZAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABIGNhdGVnb3J52QIBbE9wdGlvbjxHbG9iYWxBc3NldENhdGVnb3J5PgAMBIBBc3NldCBjYXRlZ29yeSBvdmVycmlkZSB1cGRhdGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldNUHDFRwYWxsZXRfcm91dGVfZXhlY3V0b3IYcGFsbGV0FEV2ZW50BARUAAEIIEV4ZWN1dGVkFAEgYXNzZXRfaW4oAShUOjpBc3NldElkAAEkYXNzZXRfb3V0KAEoVDo6QXNzZXRJZAABJGFtb3VudF9pbkABKFQ6OkJhbGFuY2UAAShhbW91bnRfb3V0QAEoVDo6QmFsYW5jZQABIGV2ZW50X2lkKAFESW5jcmVtZW50YWxJZFR5cGUAAATQVGhlIHJvdXRlIHdpdGggdHJhZGVzIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBleGVjdXRlZDBSb3V0ZVVwZGF0ZWQEASRhc3NldF9pZHO1AgE8VmVjPFQ6OkFzc2V0SWQ+AAEE0FRoZSByb3V0ZSB3aXRoIHRyYWRlcyBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgZXhlY3V0ZWQEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTZBwxMcGFsbGV0X2R5bmFtaWNfZmVlcxhwYWxsZXQURXZlbnQEBFQAAQhEQXNzZXRGZWVDb25maWdTZXQIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARhwYXJhbXP9AgFYQXNzZXRGZWVDb25maWc8VDo6RmVlPgAABJBBc3NldCBmZWUgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBzZXRUQXNzZXRGZWVDb25maWdSZW1vdmVkBAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEEoEFzc2V0IGZlZSBjb25maWd1cmF0aW9uIGhhcyBiZWVuIHJlbW92ZWQEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTdBww4cGFsbGV0X3N0YWtpbmcYcGFsbGV0FEV2ZW50BARUAAEcPFBvc2l0aW9uQ3JlYXRlZAwBDHdobwABMFQ6OkFjY291bnRJZAABLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQAARRzdGFrZUABHEJhbGFuY2UAAATQTmV3IHN0YWtpbmcgcG9zaXRpb24gd2FzIGNyZWF0ZWQgYW5kIE5GVCB3YXMgbWludGVkLihTdGFrZUFkZGVkHAEMd2hvAAEwVDo6QWNjb3VudElkAAEscG9zaXRpb25faWRAAURUOjpQb3NpdGlvbkl0ZW1JZAABFHN0YWtlQAEcQmFsYW5jZQABLHRvdGFsX3N0YWtlQAEcQmFsYW5jZQABOGxvY2tlZF9yZXdhcmRzQAEcQmFsYW5jZQABOHNsYXNoZWRfcG9pbnRzQAEUUG9pbnQAAUhwYXlhYmxlX3BlcmNlbnRhZ2VUASRGaXhlZFUxMjgAAQTIU3Rha2VkIGFtb3VudCBmb3IgZXhpc3RpbmcgcG9zaXRpb24gd2FzIGluY3JlYXNlZC44UmV3YXJkc0NsYWltZWQcAQx3aG8AATBUOjpBY2NvdW50SWQAASxwb3NpdGlvbl9pZEABRFQ6OlBvc2l0aW9uSXRlbUlkAAEwcGFpZF9yZXdhcmRzQAEcQmFsYW5jZQABQHVubG9ja2VkX3Jld2FyZHNAARxCYWxhbmNlAAE4c2xhc2hlZF9wb2ludHNAARRQb2ludAABWHNsYXNoZWRfdW5wYWlkX3Jld2FyZHNAARxCYWxhbmNlAAFIcGF5YWJsZV9wZXJjZW50YWdlVAEkRml4ZWRVMTI4AAIEVFJld2FyZHMgd2VyZSBjbGFpbWVkLiBVbnN0YWtlZAwBDHdobwABMFQ6OkFjY291bnRJZAABLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQAATh1bmxvY2tlZF9zdGFrZUABHEJhbGFuY2UAAwS8U3Rha2VkIGFtb3VudCB3YXMgd2l0aGRyYXduIGFuZCBORlQgd2FzIGJ1cm5lZC5IU3Rha2luZ0luaXRpYWxpemVkBAFQbm9uX2R1c3RhYmxlX2JhbGFuY2VAARxCYWxhbmNlAAQEYFN0YWtpbmcgd2FzIGluaXRpYWxpemVkLlRBY2N1bXVsYXRlZFJwc1VwZGF0ZWQIATxhY2N1bXVsYXRlZF9ycHNUASRGaXhlZFUxMjgAASx0b3RhbF9zdGFrZUABHEJhbGFuY2UABQTUU3Rha2luZydzIGBhY2N1bXVsYXRlZF9yZXdhcmRfcGVyX3N0YWtlYCB3YXMgdXBkYXRlZC40Rm9yY2VVbnN0YWtlZBQBDHdobwABMFQ6OkFjY291bnRJZAABLHBvc2l0aW9uX2lkQAFEVDo6UG9zaXRpb25JdGVtSWQAARRzdGFrZUABHEJhbGFuY2UAAThsb2NrZWRfcmV3YXJkc0ABHEJhbGFuY2UAATBwYWlkX3Jld2FyZHNAARxCYWxhbmNlAAYIBQFQb3NpdGlvbiB3YXMgZm9yY2UtdW5zdGFrZWQgdGhyb3VnaCB0aGUgR0lHQUhEWCBtaWdyYXRpb24gaGVscGVyLuxEaXN0aW5jdCBmcm9tIGBVbnN0YWtlZGAgYmVjYXVzZSBubyByZXdhcmRzIHdlcmUgZm9yZmVpdGVkLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldOEHDERwYWxsZXRfc3RhYmxlc3dhcBhwYWxsZXQURXZlbnQEBFQAASwsUG9vbENyZWF0ZWQUARxwb29sX2lkKAEoVDo6QXNzZXRJZAABGGFzc2V0c7UCATxWZWM8VDo6QXNzZXRJZD4AATRhbXBsaWZpY2F0aW9u5QcBKE5vblplcm9VMTYAAQxmZWV1AgEcUGVybWlsbAABDHBlZ+kHAchPcHRpb248UG9vbFBlZ0luZm88QmxvY2tOdW1iZXJGb3I8VD4sIFQ6OkFzc2V0SWQ+PgAABExBIHBvb2wgd2FzIGNyZWF0ZWQuKEZlZVVwZGF0ZWQIARxwb29sX2lkKAEoVDo6QXNzZXRJZAABDGZlZXUCARxQZXJtaWxsAAEEaFBvb2wgZmVlIGhhcyBiZWVuIHVwZGF0ZWQuOExpcXVpZGl0eUFkZGVkEAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhzaGFyZXNAARxCYWxhbmNlAAEYYXNzZXRzwQIBcFZlYzxBc3NldEFtb3VudDxUOjpBc3NldElkPj4AAgSoTGlxdWlkaXR5IG9mIGFuIGFzc2V0IHdhcyBhZGRlZCB0byBhIHBvb2wuQExpcXVpZGl0eVJlbW92ZWQUARxwb29sX2lkKAEoVDo6QXNzZXRJZAABDHdobwABMFQ6OkFjY291bnRJZAABGHNoYXJlc0ABHEJhbGFuY2UAARxhbW91bnRzwQIBcFZlYzxBc3NldEFtb3VudDxUOjpBc3NldElkPj4AAQxmZWVAARxCYWxhbmNlAAMESExpcXVpZGl0eSByZW1vdmVkLjBTZWxsRXhlY3V0ZWQcAQx3aG8AATBUOjpBY2NvdW50SWQAARxwb29sX2lkKAEoVDo6QXNzZXRJZAABIGFzc2V0X2luKAEoVDo6QXNzZXRJZAABJGFzc2V0X291dCgBKFQ6OkFzc2V0SWQAASRhbW91bnRfaW5AARxCYWxhbmNlAAEoYW1vdW50X291dEABHEJhbGFuY2UAAQxmZWVAARxCYWxhbmNlAAQIjQFTZWxsIHRyYWRlIGV4ZWN1dGVkLiBUcmFkZSBmZWUgcGFpZCBpbiBhc3NldCBsZWF2aW5nIHRoZSBwb29sIChhbHJlYWR5IHN1YnRyYWN0ZWQgZnJvbSBhbW91bnRfb3V0KS7ERGVwcmVjYXRlZC4gUmVwbGFjZWQgYnkgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZCxCdXlFeGVjdXRlZBwBDHdobwABMFQ6OkFjY291bnRJZAABHHBvb2xfaWQoAShUOjpBc3NldElkAAEgYXNzZXRfaW4oAShUOjpBc3NldElkAAEkYXNzZXRfb3V0KAEoVDo6QXNzZXRJZAABJGFtb3VudF9pbkABHEJhbGFuY2UAAShhbW91bnRfb3V0QAEcQmFsYW5jZQABDGZlZUABHEJhbGFuY2UABQh5AUJ1eSB0cmFkZSBleGVjdXRlZC4gVHJhZGUgZmVlIHBhaWQgaW4gYXNzZXQgZW50ZXJpbmcgdGhlIHBvb2wgKGFscmVhZHkgaW5jbHVkZWQgaW4gYW1vdW50X2luKS7ERGVwcmVjYXRlZC4gUmVwbGFjZWQgYnkgcGFsbGV0X2Jyb2FkY2FzdDo6U3dhcHBlZFBUcmFkYWJsZVN0YXRlVXBkYXRlZAwBHHBvb2xfaWQoAShUOjpBc3NldElkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEUc3RhdGURAwEsVHJhZGFiaWxpdHkABgSgQXNzZXQncyB0cmFkYWJsZSBzdGF0ZSBoYXMgYmVlbiB1cGRhdGVkLlRBbXBsaWZpY2F0aW9uQ2hhbmdpbmcUARxwb29sX2lkKAEoVDo6QXNzZXRJZAABVGN1cnJlbnRfYW1wbGlmaWNhdGlvbuUHAShOb25aZXJvVTE2AAFMZmluYWxfYW1wbGlmaWNhdGlvbuUHAShOb25aZXJvVTE2AAEsc3RhcnRfYmxvY2soAURCbG9ja051bWJlckZvcjxUPgABJGVuZF9ibG9jaygBREJsb2NrTnVtYmVyRm9yPFQ+AAcE1EFtcGxpZmljYXRpb24gb2YgYSBwb29sIGhhcyBiZWVuIHNjaGVkdWxlZCB0byBjaGFuZ2UuNFBvb2xEZXN0cm95ZWQEARxwb29sX2lkKAEoVDo6QXNzZXRJZAAIBGhBIHBvb2wgaGFzIGJlZW4gZGVzdHJveWVkLlBQb29sUGVnU291cmNlVXBkYXRlZAwBHHBvb2xfaWQoAShUOjpBc3NldElkAAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEocGVnX3NvdXJjZRkDAVRQZWdTb3VyY2U8VDo6QXNzZXRJZD4ACQSEUG9vbCBwZWcgc291cmNlIGhhcyBiZWVuIHVwZGF0ZWQuXFBvb2xNYXhQZWdVcGRhdGVVcGRhdGVkCAEccG9vbF9pZCgBKFQ6OkFzc2V0SWQAAThtYXhfcGVnX3VwZGF0ZSkDARxQZXJiaWxsAAoElFBvb2wgbWF4IHBlZyB1cGRhdGUgaGFzIGJlZW4gdXBkYXRlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXTlBwQoTm9uWmVyb1UxNgAABACAAAAA6QcEGE9wdGlvbgQEVAHtBwEIEE5vbmUAAAAQU29tZQQA7QcAAAEAAO0HDERwYWxsZXRfc3RhYmxlc3dhcBR0eXBlcyxQb29sUGVnSW5mbwgsQmxvY2tOdW1iZXIBKBxBc3NldElkASgAEAEYc291cmNlFQMBaEJvdW5kZWRQZWdTb3VyY2VzPEFzc2V0SWQ+AAEodXBkYXRlZF9hdCgBLEJsb2NrTnVtYmVyAAE4bWF4X3BlZ191cGRhdGUpAwEcUGVyYmlsbAABHGN1cnJlbnTxBwEsQm91bmRlZFBlZ3MAAPEHDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBfQIEUwAABAD1BwEYVmVjPFQ+AAD1BwAAAn0CAPkHDDBwYWxsZXRfYm9uZHMYcGFsbGV0FEV2ZW50BARUAAEMMFRva2VuQ3JlYXRlZBABGGlzc3VlcgABMFQ6OkFjY291bnRJZAABIGFzc2V0X2lkKAEcQXNzZXRJZAABHGJvbmRfaWQoARxBc3NldElkAAEgbWF0dXJpdHkYARhNb21lbnQAAARsQSBib25kIGFzc2V0IHdhcyByZWdpc3RlcmVkGElzc3VlZBABGGlzc3VlcgABMFQ6OkFjY291bnRJZAABHGJvbmRfaWQoARxBc3NldElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQABDGZlZUABKFQ6OkJhbGFuY2UAAQRQTmV3IGJvbmQgd2VyZSBpc3N1ZWQgUmVkZWVtZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAARxib25kX2lkKAEcQXNzZXRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAAgRMQm9uZHMgd2VyZSByZWRlZW1lZAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldP0HDFhwYWxsZXRfb3RjX3NldHRsZW1lbnRzGHBhbGxldBRFdmVudAQEVAABBCBFeGVjdXRlZAgBIGFzc2V0X2lkKAEwQXNzZXRJZE9mPFQ+AAEYcHJvZml0QAEcQmFsYW5jZQAABGRBIHRyYWRlIGhhcyBiZWVuIGV4ZWN1dGVkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0AQgMKHBhbGxldF9sYnAYcGFsbGV0FEV2ZW50BARUAAEYLFBvb2xDcmVhdGVkCAEQcG9vbAABJFBvb2xJZDxUPgABEGRhdGEFCAGUUG9vbDxUOjpBY2NvdW50SWQsIEJsb2NrTnVtYmVyRm9yPFQ+PgAABLBQb29sIHdhcyBjcmVhdGVkIGJ5IHRoZSBgQ3JlYXRlUG9vbGAgb3JpZ2luLixQb29sVXBkYXRlZAgBEHBvb2wAASRQb29sSWQ8VD4AARBkYXRhBQgBlFBvb2w8VDo6QWNjb3VudElkLCBCbG9ja051bWJlckZvcjxUPj4AAQRcUG9vbCBkYXRhIHdlcmUgdXBkYXRlZC44TGlxdWlkaXR5QWRkZWQUAQx3aG8AATBUOjpBY2NvdW50SWQAARxhc3NldF9hKAEcQXNzZXRJZAABHGFzc2V0X2IoARxBc3NldElkAAEgYW1vdW50X2FAATBCYWxhbmNlT2Y8VD4AASBhbW91bnRfYkABMEJhbGFuY2VPZjxUPgACBJxOZXcgbGlxdWlkaXR5IHdhcyBwcm92aWRlZCB0byB0aGUgcG9vbC5ATGlxdWlkaXR5UmVtb3ZlZBQBDHdobwABMFQ6OkFjY291bnRJZAABHGFzc2V0X2EoARxBc3NldElkAAEcYXNzZXRfYigBHEFzc2V0SWQAASBhbW91bnRfYUABMEJhbGFuY2VPZjxUPgABIGFtb3VudF9iQAEwQmFsYW5jZU9mPFQ+AAME/ExpcXVpZGl0eSB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBwb29sIGFuZCB0aGUgcG9vbCB3YXMgZGVzdHJveWVkLjBTZWxsRXhlY3V0ZWQcAQx3aG8AATBUOjpBY2NvdW50SWQAASBhc3NldF9pbigBHEFzc2V0SWQAASRhc3NldF9vdXQoARxBc3NldElkAAEYYW1vdW50QAEwQmFsYW5jZU9mPFQ+AAEoc2FsZV9wcmljZUABMEJhbGFuY2VPZjxUPgABJGZlZV9hc3NldCgBHEFzc2V0SWQAAShmZWVfYW1vdW50QAEwQmFsYW5jZU9mPFQ+AAQIOFNhbGUgZXhlY3V0ZWQuxERlcHJlY2F0ZWQuIFJlcGxhY2VkIGJ5IHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWQsQnV5RXhlY3V0ZWQcAQx3aG8AATBUOjpBY2NvdW50SWQAASRhc3NldF9vdXQoARxBc3NldElkAAEgYXNzZXRfaW4oARxBc3NldElkAAEYYW1vdW50QAEwQmFsYW5jZU9mPFQ+AAEkYnV5X3ByaWNlQAEwQmFsYW5jZU9mPFQ+AAEkZmVlX2Fzc2V0KAEcQXNzZXRJZAABKGZlZV9hbW91bnRAATBCYWxhbmNlT2Y8VD4ABQhIUHVyY2hhc2UgZXhlY3V0ZWQuxERlcHJlY2F0ZWQuIFJlcGxhY2VkIGJ5IHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWQEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQFCAgocGFsbGV0X2xicBBQb29sCCRBY2NvdW50SWQBACxCbG9ja051bWJlcgEoACgBFG93bmVyAAEkQWNjb3VudElkAAEUc3RhcnR0AUxPcHRpb248QmxvY2tOdW1iZXI+AAEMZW5kdAFMT3B0aW9uPEJsb2NrTnVtYmVyPgABGGFzc2V0c6kCAUgoQXNzZXRJZCwgQXNzZXRJZCkAAThpbml0aWFsX3dlaWdodCgBJExCUFdlaWdodAABMGZpbmFsX3dlaWdodCgBJExCUFdlaWdodAABMHdlaWdodF9jdXJ2ZTkDATxXZWlnaHRDdXJ2ZVR5cGUAAQxmZWWpAgEoKHUzMiwgdTMyKQABNGZlZV9jb2xsZWN0b3IAASRBY2NvdW50SWQAATByZXBheV90YXJnZXRAARxCYWxhbmNlAAAJCAwocGFsbGV0X3h5axhwYWxsZXQURXZlbnQEBFQAARg4TGlxdWlkaXR5QWRkZWQUAQx3aG8AATBUOjpBY2NvdW50SWQAARxhc3NldF9hKAEcQXNzZXRJZAABHGFzc2V0X2IoARxBc3NldElkAAEgYW1vdW50X2FAARxCYWxhbmNlAAEgYW1vdW50X2JAARxCYWxhbmNlAAAEnE5ldyBsaXF1aWRpdHkgd2FzIHByb3ZpZGVkIHRvIHRoZSBwb29sLkBMaXF1aWRpdHlSZW1vdmVkEAEMd2hvAAEwVDo6QWNjb3VudElkAAEcYXNzZXRfYSgBHEFzc2V0SWQAARxhc3NldF9iKAEcQXNzZXRJZAABGHNoYXJlc0ABHEJhbGFuY2UAAQSQTGlxdWlkaXR5IHdhcyByZW1vdmVkIGZyb20gdGhlIHBvb2wuLFBvb2xDcmVhdGVkGAEMd2hvAAEwVDo6QWNjb3VudElkAAEcYXNzZXRfYSgBHEFzc2V0SWQAARxhc3NldF9iKAEcQXNzZXRJZAABVGluaXRpYWxfc2hhcmVzX2Ftb3VudEABHEJhbGFuY2UAASxzaGFyZV90b2tlbigBHEFzc2V0SWQAARBwb29sAAEwVDo6QWNjb3VudElkAAIERFBvb2wgd2FzIGNyZWF0ZWQuNFBvb2xEZXN0cm95ZWQUAQx3aG8AATBUOjpBY2NvdW50SWQAARxhc3NldF9hKAEcQXNzZXRJZAABHGFzc2V0X2IoARxBc3NldElkAAEsc2hhcmVfdG9rZW4oARxBc3NldElkAAEQcG9vbAABMFQ6OkFjY291bnRJZAADBExQb29sIHdhcyBkZXN0cm95ZWQuMFNlbGxFeGVjdXRlZCABDHdobwABMFQ6OkFjY291bnRJZAABIGFzc2V0X2luKAEcQXNzZXRJZAABJGFzc2V0X291dCgBHEFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEoc2FsZV9wcmljZUABHEJhbGFuY2UAASRmZWVfYXNzZXQoARxBc3NldElkAAEoZmVlX2Ftb3VudEABHEJhbGFuY2UAARBwb29sAAEwVDo6QWNjb3VudElkAAQIUEFzc2V0IHNhbGUgZXhlY3V0ZWQuxERlcHJlY2F0ZWQuIFJlcGxhY2VkIGJ5IHBhbGxldF9icm9hZGNhc3Q6OlN3YXBwZWQsQnV5RXhlY3V0ZWQgAQx3aG8AATBUOjpBY2NvdW50SWQAASRhc3NldF9vdXQoARxBc3NldElkAAEgYXNzZXRfaW4oARxBc3NldElkAAEYYW1vdW50QAEcQmFsYW5jZQABJGJ1eV9wcmljZUABHEJhbGFuY2UAASRmZWVfYXNzZXQoARxBc3NldElkAAEoZmVlX2Ftb3VudEABHEJhbGFuY2UAARBwb29sAAEwVDo6QWNjb3VudElkAAUIYEFzc2V0IHB1cmNoYXNlIGV4ZWN1dGVkLsREZXByZWNhdGVkLiBSZXBsYWNlZCBieSBwYWxsZXRfYnJvYWRjYXN0OjpTd2FwcGVkBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0DQgMQHBhbGxldF9yZWZlcnJhbHMYcGFsbGV0FEV2ZW50BARUAAEcOENvZGVSZWdpc3RlcmVkCAEQY29kZUkDAWxSZWZlcnJhbENvZGU8VDo6Q29kZUxlbmd0aD4AARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAAEiFJlZmVycmFsIGNvZGUgaGFzIGJlZW4gcmVnaXN0ZXJlZC4oQ29kZUxpbmtlZAwBHGFjY291bnQAATBUOjpBY2NvdW50SWQAARBjb2RlSQMBbFJlZmVycmFsQ29kZTxUOjpDb2RlTGVuZ3RoPgABQHJlZmVycmFsX2FjY291bnQAATBUOjpBY2NvdW50SWQAAQSwUmVmZXJyYWwgY29kZSBoYXMgYmVlbiBsaW5rZWQgdG8gYW4gYWNjb3VudC4kQ29udmVydGVkCAEQZnJvbREIAVxBc3NldEFtb3VudDxUOjpBc3NldElkPgABCHRvEQgBXEFzc2V0QW1vdW50PFQ6OkFzc2V0SWQ+AAIEoEFzc2V0IGhhcyBiZWVuIGNvbnZlcnRlZCB0byBSZXdhcmRBc3NldC5AQ29udmVyc2lvbkZhaWxlZAgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABGHJlYXNvbiEHATREaXNwYXRjaEVycm9yAAME+EEgcGVuZGluZyBhc3NldCBjb3VsZCBub3QgYmUgY29udmVydGVkOyBza2lwcGVkLCBub3QgYmxvY2tpbmcuHENsYWltZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAAUByZWZlcnJlcl9yZXdhcmRzQAEcQmFsYW5jZQABNHRyYWRlX3Jld2FyZHNAARxCYWxhbmNlAAQEQFJld2FyZHMgY2xhaW1lZC5MQXNzZXRSZXdhcmRzVXBkYXRlZAwBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABFGxldmVsTQMBFExldmVsAAEccmV3YXJkc1EDATxGZWVEaXN0cmlidXRpb24ABQR8TmV3IGFzc2V0IHJld2FyZHMgaGFzIGJlZW4gc2V0LhxMZXZlbFVwCAEMd2hvAAEwVDo6QWNjb3VudElkAAEUbGV2ZWxNAwEUTGV2ZWwABgRsUmVmZXJyZXIgcmVhY2hlZCBuZXcgbGV2ZWwuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0EQgIQHBhbGxldF9yZWZlcnJhbHMsQXNzZXRBbW91bnQEHEFzc2V0SWQBKAAIASBhc3NldF9pZCgBHEFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAAVCAxIcGFsbGV0X2xpcXVpZGF0aW9uGHBhbGxldBRFdmVudAQEVAABCChMaXF1aWRhdGVkEAEQdXNlclgBKEV2bUFkZHJlc3MAAUBjb2xsYXRlcmFsX2Fzc2V0KAEcQXNzZXRJZAABKGRlYnRfYXNzZXQoARxBc3NldElkAAEYcHJvZml0QAEcQmFsYW5jZQAABKRNb25leSBtYXJrZXQgcG9zaXRpb24gaGFzIGJlZW4gbGlxdWlkYXRlZERHaWdhSGR4TGlxdWlkYXRlZBABEHVzZXJYAShFdm1BZGRyZXNzAAEsZGVidF9yZXBhaWRAARxCYWxhbmNlAAEoaGR4X3NlaXplZEABHEJhbGFuY2UAAThnaWdhaGR4X3NlaXplZEABHEJhbGFuY2UAARD8QSBnaWdhaGR4IE1vbmV5IE1hcmtldCBwb3NpdGlvbiB3YXMgbGlxdWlkYXRlZCBieSB0aGUgcHJvdG9jb2wu7GBoZHhfc2VpemVkYCBpcyB0aGUgbWF0Y2hpbmcgSERYIG1vdmVkIGZyb20gdGhlIGJvcnJvd2VyIHRv/HRoZSBnaWdhaGR4IGxpcXVpZGF0aW9uIGFjY291bnQ7IGBnaWdhaGR4X3NlaXplZGAgaXMgdGhlIGFUb2tlbuhhbW91bnQgdHJhbnNmZXJyZWQgb3V0IG9mIHRoZSBib3Jyb3dlcidzIGdpZ2FoZHggcG9zaXRpb24uBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0GQgMKHBhbGxldF9oc20YcGFsbGV0FEV2ZW50BARUAAEUPENvbGxhdGVyYWxBZGRlZBgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABHHBvb2xfaWQoAShUOjpBc3NldElkAAEwcHVyY2hhc2VfZmVldQIBHFBlcm1pbGwAAWRtYXhfYnV5X3ByaWNlX2NvZWZmaWNpZW50VAFAQ29lZmZpY2llbnRSYXRpbwABMGJ1eV9iYWNrX2ZlZXUCARxQZXJtaWxsAAEwYnV5YmFja19yYXRlKQMBHFBlcmJpbGwAACSAQSBuZXcgY29sbGF0ZXJhbCBhc3NldCB3YXMgYWRkZWQALFBhcmFtZXRlcnM61C0gYGFzc2V0X2lkYDogVGhlIElEIG9mIHRoZSBhc3NldCBhZGRlZCBhcyBjb2xsYXRlcmFs8C0gYHBvb2xfaWRgOiBUaGUgU3RhYmxlU3dhcCBwb29sIElEIHdoZXJlIHRoaXMgYXNzZXQgYmVsb25ncwEBLSBgcHVyY2hhc2VfZmVlYDogRmVlIGFwcGxpZWQgd2hlbiBidXlpbmcgSG9sbGFyIHdpdGggdGhpcyBhc3NldF0BLSBgbWF4X2J1eV9wcmljZV9jb2VmZmljaWVudGA6IE1heGltdW0gYnV5IHByaWNlIGNvZWZmaWNpZW50IGZvciBIU00gdG8gYnV5IGJhY2sgSG9sbGFy1C0gYGJ1eV9iYWNrX2ZlZWA6IEZlZSBhcHBsaWVkIHdoZW4gYnV5aW5nIGJhY2sgSG9sbGFyYQEtIGBidXliYWNrX3JhdGVgOiBQYXJhbWV0ZXIgdGhhdCBjb250cm9scyBob3cgcXVpY2tseSBIU00gY2FuIGJ1eSBIb2xsYXIgd2l0aCB0aGlzIGFzc2V0RENvbGxhdGVyYWxSZW1vdmVkBAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEQeEEgY29sbGF0ZXJhbCBhc3NldCB3YXMgcmVtb3ZlZAAsUGFyYW1ldGVyczroLSBgYXNzZXRfaWRgOiBUaGUgSUQgb2YgdGhlIGFzc2V0IHJlbW92ZWQgZnJvbSBjb2xsYXRlcmFsc0RDb2xsYXRlcmFsVXBkYXRlZBgBIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABMHB1cmNoYXNlX2ZlZWEDATxPcHRpb248UGVybWlsbD4AAWRtYXhfYnV5X3ByaWNlX2NvZWZmaWNpZW50ZQMBYE9wdGlvbjxDb2VmZmljaWVudFJhdGlvPgABMGJ1eV9iYWNrX2ZlZWEDATxPcHRpb248UGVybWlsbD4AATBidXliYWNrX3JhdGVpAwE8T3B0aW9uPFBlcmJpbGw+AAE4bWF4X2luX2hvbGRpbmdtAwFcT3B0aW9uPE9wdGlvbjxCYWxhbmNlPj4AAiR4QSBjb2xsYXRlcmFsIGFzc2V0IHdhcyB1cGRhdGVkACxQYXJhbWV0ZXJzOtAtIGBhc3NldF9pZGA6IFRoZSBJRCBvZiB0aGUgdXBkYXRlZCBjb2xsYXRlcmFsIGFzc2V0DQEtIGBwdXJjaGFzZV9mZWVgOiBOZXcgcHVyY2hhc2UgZmVlIGlmIHVwZGF0ZWQgKE5vbmUgaWYgbm90IGNoYW5nZWQpdQEtIGBtYXhfYnV5X3ByaWNlX2NvZWZmaWNpZW50YDogTmV3IG1heCBidXkgcHJpY2UgY29lZmZpY2llbnQgaWYgdXBkYXRlZCAoTm9uZSBpZiBub3QgY2hhbmdlZCkNAS0gYGJ1eV9iYWNrX2ZlZWA6IE5ldyBidXkgYmFjayBmZWUgaWYgdXBkYXRlZCAoTm9uZSBpZiBub3QgY2hhbmdlZCkNAS0gYGJ1eWJhY2tfcmF0ZWA6IE5ldyBidXliYWNrIHJhdGUgaWYgdXBkYXRlZCAoTm9uZSBpZiBub3QgY2hhbmdlZCk9AS0gYG1heF9pbl9ob2xkaW5nYDogTmV3IG1heCBjb2xsYXRlcmFsIGhvbGRpbmcgaWYgdXBkYXRlZCAoTm9uZSBpZiBub3QgY2hhbmdlZClEQXJiaXRyYWdlRXhlY3V0ZWQQASRhcmJpdHJhZ2UIAQh1OAABIGFzc2V0X2lkKAEoVDo6QXNzZXRJZAABNGhvbGxhcl9hbW91bnRAARxCYWxhbmNlAAEYcHJvZml0QAEcQmFsYW5jZQADFHxBcmJpdHJhZ2UgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5ACxQYXJhbWV0ZXJzOuAtIGBhc3NldF9pZGA6IFRoZSBjb2xsYXRlcmFsIGFzc2V0IHVzZWQgaW4gdGhlIGFyYml0cmFnZUEBLSBgaG9sbGFyX2Ftb3VudGA6IEFtb3VudCBvZiBIb2xsYXIgdGhhdCB3YXMgaW5jbHVkZWQgaW4gdGhlIGFyYml0cmFnZSBvcGVyYXRpb244Rmxhc2hNaW50ZXJTZXQEATBmbGFzaF9taW50ZXJYAShFdm1BZGRyZXNzAAQQYEZsYXNoIG1pbnRlciBhZGRyZXNzIHNldAAsUGFyYW1ldGVyczr4LSBgZmxhc2hfbWludGVyYDogVGhlIEVWTSBhZGRyZXNzIG9mIHRoZSBmbGFzaCBtaW50ZXIgY29udHJhY3QEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQdCAw0cGFsbGV0X3NpZ25ldBhwYWxsZXQURXZlbnQEBFQAASQ0Q29uZmlnVXBkYXRlZBABRHNpZ25hdHVyZV9kZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAFMbWF4X2NoYWluX2lkX2xlbmd0aCgBDHUzMgABTG1heF9ldm1fZGF0YV9sZW5ndGgoAQx1MzIAASBjaGFpbl9pZBQBHFZlYzx1OD4AAASYU2lnbmV0IGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gdXBkYXRlZC4YUGF1c2VkAAEE5FNpZ25ldCBoYXMgYmVlbiBwYXVzZWQuIE5vIG5ldyByZXF1ZXN0cyB3aWxsIGJlIGFjY2VwdGVkLiBVbnBhdXNlZAACBORTaWduZXQgaGFzIGJlZW4gdW5wYXVzZWQuIE5ldyByZXF1ZXN0cyBhcmUgYWxsb3dlZCBhZ2Fpbi44RnVuZHNXaXRoZHJhd24IARhhbW91bnRAATBCYWxhbmNlT2Y8VD4AASRyZWNpcGllbnQAATBUOjpBY2NvdW50SWQAAwSkRnVuZHMgaGF2ZSBiZWVuIHdpdGhkcmF3biBmcm9tIHRoZSBwYWxsZXRIU2lnbmF0dXJlUmVxdWVzdGVkJAEYc2VuZGVyAAEwVDo6QWNjb3VudElkAAEccGF5bG9hZAQBIFt1ODsgMzJdAAEsa2V5X3ZlcnNpb24oAQx1MzIAARxkZXBvc2l0QAEwQmFsYW5jZU9mPFQ+AAEgY2hhaW5faWQUARxWZWM8dTg+AAEQcGF0aBQBHFZlYzx1OD4AARBhbGdvFAEcVmVjPHU4PgABEGRlc3QUARxWZWM8dTg+AAEYcGFyYW1zFAEcVmVjPHU4PgAEBHhBIHNpZ25hdHVyZSBoYXMgYmVlbiByZXF1ZXN0ZWRoU2lnbkJpZGlyZWN0aW9uYWxSZXF1ZXN0ZWQsARhzZW5kZXIAATBUOjpBY2NvdW50SWQAAVhzZXJpYWxpemVkX3RyYW5zYWN0aW9uFAEcVmVjPHU4PgABIGNhaXAyX2lkFAEcVmVjPHU4PgABLGtleV92ZXJzaW9uKAEMdTMyAAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgABEHBhdGgUARxWZWM8dTg+AAEQYWxnbxQBHFZlYzx1OD4AARBkZXN0FAEcVmVjPHU4PgABGHBhcmFtcxQBHFZlYzx1OD4AAXRvdXRwdXRfZGVzZXJpYWxpemF0aW9uX3NjaGVtYRQBHFZlYzx1OD4AAXByZXNwb25kX3NlcmlhbGl6YXRpb25fc2NoZW1hFAEcVmVjPHU4PgAFBIBTaWduIGJpZGlyZWN0aW9uYWwgcmVxdWVzdCBldmVudEhTaWduYXR1cmVSZXNwb25kZWQMAShyZXF1ZXN0X2lkBAEgW3U4OyAzMl0AASRyZXNwb25kZXIAATBUOjpBY2NvdW50SWQAASRzaWduYXR1cmWhAwEkU2lnbmF0dXJlAAYEYFNpZ25hdHVyZSByZXNwb25zZSBldmVudDhTaWduYXR1cmVFcnJvcgwBKHJlcXVlc3RfaWQEASBbdTg7IDMyXQABJHJlc3BvbmRlcgABMFQ6OkFjY291bnRJZAABFGVycm9yFAEcVmVjPHU4PgAHBFRTaWduYXR1cmUgZXJyb3IgZXZlbnRkUmVzcG9uZEJpZGlyZWN0aW9uYWxFdmVudBABKHJlcXVlc3RfaWQEASBbdTg7IDMyXQABJHJlc3BvbmRlcgABMFQ6OkFjY291bnRJZAABRHNlcmlhbGl6ZWRfb3V0cHV0FAEcVmVjPHU4PgABJHNpZ25hdHVyZaEDASRTaWduYXR1cmUACARsUmVzcG9uZCBiaWRpcmVjdGlvbmFsIGV2ZW50BHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0IQgMQHBhbGxldF9kaXNwZW5zZXIYcGFsbGV0FEV2ZW50BARUAAEQNENvbmZpZ1VwZGF0ZWQYAThmYXVjZXRfYWRkcmVzc1gBKEV2bUFkZHJlc3MAAVBtaW5fZmF1Y2V0X3RocmVzaG9sZEABHEJhbGFuY2UAASxtaW5fcmVxdWVzdEABHEJhbGFuY2UAATBtYXhfZGlzcGVuc2VAARxCYWxhbmNlAAE0ZGlzcGVuc2VyX2ZlZUABHEJhbGFuY2UAAUhmYXVjZXRfYmFsYW5jZV93ZWlAARxCYWxhbmNlAAAEwERpc3BlbnNlciBjb25maWd1cmF0aW9uIGhhcyBiZWVuIHNldCBvciB1cGRhdGVkLhhQYXVzZWQAAQTwRGlzcGVuc2VyIGhhcyBiZWVuIHBhdXNlZC4gTm8gbmV3IHJlcXVlc3RzIHdpbGwgYmUgYWNjZXB0ZWQuIFVucGF1c2VkAAIE8ERpc3BlbnNlciBoYXMgYmVlbiB1bnBhdXNlZC4gTmV3IHJlcXVlc3RzIGFyZSBhbGxvd2VkIGFnYWluLjRGdW5kUmVxdWVzdGVkEAEocmVxdWVzdF9pZAQBHEJ5dGVzMzIEyFVuaXF1ZSByZXF1ZXN0IElEIGRlcml2ZWQgZnJvbSByZXF1ZXN0IHBhcmFtZXRlcnMuASRyZXF1ZXN0ZXIAATBUOjpBY2NvdW50SWQEjEFjY291bnQgdGhhdCBpbml0aWF0ZWQgdGhlIHJlcXVlc3QuAQh0b1gBKEV2bUFkZHJlc3MEiFRhcmdldCBFVk0gYWRkcmVzcyB0byByZWNlaXZlIEVUSC4BGGFtb3VudEABHEJhbGFuY2UEhFJlcXVlc3RlZCBhbW91bnQgb2YgRVRIIChpbiB3ZWkpLgMQvEEgZnVuZGluZyByZXF1ZXN0IGhhcyBiZWVuIHN1Ym1pdHRlZCB0byBTaWdOZXQuAA0BTm90ZTogVGhpcyBpbmRpY2F0ZXMgdGhlIHJlcXVlc3Qgd2FzIGZvcm1lZCBhbmQgc3VibWl0dGVkLCBub3QgdGhhdOh0aGUgRVZNIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGluY2x1ZGVkIG9uIHRoZSB0YXJnZXQgY2hhaW4uBDhQYWxsZXQgZXZlbnRzLiUIDDhwYWxsZXRfZ2lnYWhkeBhwYWxsZXQURXZlbnQEBFQAARwYU3Rha2VkDAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEcQmFsYW5jZQABHGdpZ2FoZHhAARxCYWxhbmNlAAAAIFVuc3Rha2VkGAEMd2hvAAEwVDo6QWNjb3VudElkAAEscG9zaXRpb25faWQoAURCbG9ja051bWJlckZvcjxUPgABOGdpZ2FoZHhfYW1vdW50QAEcQmFsYW5jZQABGHBheW91dEABHEJhbGFuY2UAASx5aWVsZF9zaGFyZUABHEJhbGFuY2UAAShleHBpcmVzX2F0KAFEQmxvY2tOdW1iZXJGb3I8VD4AAQAgVW5sb2NrZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAASxwb3NpdGlvbl9pZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAEYYW1vdW50QAEcQmFsYW5jZQACAEBVbnN0YWtlQ2FuY2VsbGVkEAEMd2hvAAEwVDo6QWNjb3VudElkAAEscG9zaXRpb25faWQoAURCbG9ja051bWJlckZvcjxUPgABGGFtb3VudEABHEJhbGFuY2UAARxnaWdhaGR4QAEcQmFsYW5jZQADAExQb29sQ29udHJhY3RVcGRhdGVkBAEgY29udHJhY3RYAShFdm1BZGRyZXNzAAQASE1pZ3JhdGVkRnJvbUxlZ2FjeQwBDHdobwABMFQ6OkFjY291bnRJZAABMGhkeF91bmxvY2tlZEABHEJhbGFuY2UAAUBnaWdhaGR4X3JlY2VpdmVkQAEcQmFsYW5jZQAFEPxDYWxsZXIgbWlncmF0ZWQgdGhlaXIgbGVnYWN5IE5GVCBzdGFraW5nIHBvc2l0aW9uIGludG8gZ2lnYWhkeC70YGhkeF91bmxvY2tlZGAgaXMgdGhlIHN1bSBvZiBsZWdhY3kgc3Rha2UgKyBwcmV2aW91c2x5IGxvY2tlZAEBcmV3YXJkcyArIGZyZXNobHkgcGFpZCByZXdhcmRzOyBgZ2lnYWhkeF9yZWNlaXZlZGAgaXMgdGhlIGFUb2tlbrRhbW91bnQgYWN0dWFsbHkgY3JlZGl0ZWQgYnkgdGhlIG1vbmV5IG1hcmtldC40WWllbGRSZWFsaXplZAgBDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABHEJhbGFuY2UABgwFAUFjY3J1ZWQgeWllbGQgd2FzIG1vdmVkIGZyb20gdGhlIGdpZ2Fwb3QgaW50byB0aGUgY2FsbGVyJ3MgbG9ja2Vk9HN0YWtlIHByaW5jaXBhbC4gYGFtb3VudGAgaXMgdGhlIEhEWCB0cmFuc2ZlcnJlZCBhbmQgYWRkZWQgdG8FAWBTdGFrZXNbd2hvXS5oZHhgOyBgZ2lnYWhkeGAgYW5kIHRoZSBleGNoYW5nZSByYXRlIGFyZSB1bmNoYW5nZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0KQgMWHBhbGxldF9naWdhaGR4X3Jld2FyZHMYcGFsbGV0FEV2ZW50BARUAAEMTFJld2FyZFBvb2xBbGxvY2F0ZWQUASRyZWZfaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgAASB0cmFja19pZIABKFQ6OlRyYWNrSWQAATB0b3RhbF9yZXdhcmRAARxCYWxhbmNlAAFQdG90YWxfd2VpZ2h0ZWRfdm90ZXNAARB1MTI4AAFAdm90ZXJzX3JlbWFpbmluZygBDHUzMgAACPxSZXdhcmRzIGZvciBhIGNvbXBsZXRlZCByZWZlcmVuZHVtIGhhdmUgYmVlbiBhbGxvY2F0ZWQgZnJvbSB0aGVAYWNjdW11bGF0b3IgcG90LkhVc2VyUmV3YXJkUmVjb3JkZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAASRyZWZfaW5kZXgoATxSZWZlcmVuZHVtSW5kZXgAATRyZXdhcmRfYW1vdW50QAEcQmFsYW5jZQABCPxBIHVzZXIncyBzaGFyZSBvZiBhIHJlZmVyZW5kdW0ncyByZXdhcmQgcG9vbCB3YXMgYWRkZWQgdG8gdGhlaXJEYFBlbmRpbmdSZXdhcmRzYC44UmV3YXJkc0NsYWltZWQMAQx3aG8AATBUOjpBY2NvdW50SWQAASR0b3RhbF9oZHhAARxCYWxhbmNlAAFAZ2lnYWhkeF9yZWNlaXZlZEABHEJhbGFuY2UAAgj8QSB1c2VyIGNvbnZlcnRlZCB0aGVpciBhY2N1bXVsYXRlZCBIRFggcmV3YXJkcyBpbnRvIEdJR0FIRFggdmlhQGBjbGFpbV9yZXdhcmRzYC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQtCAwsb3JtbF90b2tlbnMYbW9kdWxlFEV2ZW50BARUAAFEHEVuZG93ZWQMASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAAEuEFuIGFjY291bnQgd2FzIGNyZWF0ZWQgd2l0aCBzb21lIGZyZWUgYmFsYW5jZS4gRHVzdExvc3QMASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAAEI7EFuIGFjY291bnQgd2FzIHJlbW92ZWQgd2hvc2UgYmFsYW5jZSB3YXMgbm9uLXplcm8gYnV0IGJlbG93yEV4aXN0ZW50aWFsRGVwb3NpdCwgcmVzdWx0aW5nIGluIGFuIG91dHJpZ2h0IGxvc3MuIFRyYW5zZmVyEAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEQZnJvbQABMFQ6OkFjY291bnRJZAABCHRvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQACBExUcmFuc2ZlciBzdWNjZWVkZWQuIFJlc2VydmVkDAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQADBOBTb21lIGJhbGFuY2Ugd2FzIHJlc2VydmVkIChtb3ZlZCBmcm9tIGZyZWUgdG8gcmVzZXJ2ZWQpLihVbnJlc2VydmVkDAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAEBOhTb21lIGJhbGFuY2Ugd2FzIHVucmVzZXJ2ZWQgKG1vdmVkIGZyb20gcmVzZXJ2ZWQgdG8gZnJlZSkuSFJlc2VydmVSZXBhdHJpYXRlZBQBLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABEGZyb20AATBUOjpBY2NvdW50SWQAAQh0bwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAARhzdGF0dXM9BwE0QmFsYW5jZVN0YXR1cwAFCPRTb21lIHJlc2VydmVkIGJhbGFuY2Ugd2FzIHJlcGF0cmlhdGVkIChtb3ZlZCBmcm9tIHJlc2VydmVkIHRvRGFub3RoZXIgYWNjb3VudCkuKEJhbGFuY2VTZXQQASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARBmcmVlQAEoVDo6QmFsYW5jZQABIHJlc2VydmVkQAEoVDo6QmFsYW5jZQAGBGhBIGJhbGFuY2Ugd2FzIHNldCBieSByb290LkBUb3RhbElzc3VhbmNlU2V0CAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAHBLhUaGUgdG90YWwgaXNzdWFuY2Ugb2YgYW4gY3VycmVuY3kgaGFzIGJlZW4gc2V0JFdpdGhkcmF3bgwBLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UACATsU29tZSBiYWxhbmNlcyB3ZXJlIHdpdGhkcmF3biAoZS5nLiBwYXkgZm9yIHRyYW5zYWN0aW9uIGZlZSkcU2xhc2hlZBABLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABDHdobwABMFQ6OkFjY291bnRJZAABLGZyZWVfYW1vdW50QAEoVDo6QmFsYW5jZQABPHJlc2VydmVkX2Ftb3VudEABKFQ6OkJhbGFuY2UACQTUU29tZSBiYWxhbmNlcyB3ZXJlIHNsYXNoZWQgKGUuZy4gZHVlIHRvIG1pcy1iZWhhdmlvcikkRGVwb3NpdGVkDAEsY3VycmVuY3lfaWQoATRUOjpDdXJyZW5jeUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEoVDo6QmFsYW5jZQAKBJhEZXBvc2l0ZWQgc29tZSBiYWxhbmNlIGludG8gYW4gYWNjb3VudBxMb2NrU2V0EAEcbG9ja19pZCEBAThMb2NrSWRlbnRpZmllcgABLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UACwRUU29tZSBmdW5kcyBhcmUgbG9ja2VkLExvY2tSZW1vdmVkDAEcbG9ja19pZCEBAThMb2NrSWRlbnRpZmllcgABLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABDHdobwABMFQ6OkFjY291bnRJZAAMBHxTb21lIGxvY2tlZCBmdW5kcyB3ZXJlIHVubG9ja2VkGExvY2tlZAwBLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UADQR0U29tZSBmcmVlIGJhbGFuY2Ugd2FzIGxvY2tlZC4gVW5sb2NrZWQMASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAA4EeFNvbWUgbG9ja2VkIGJhbGFuY2Ugd2FzIGZyZWVkLhhJc3N1ZWQIASxjdXJyZW5jeV9pZCgBNFQ6OkN1cnJlbmN5SWQAARhhbW91bnRAAShUOjpCYWxhbmNlAA8AJFJlc2NpbmRlZAgBLGN1cnJlbmN5X2lkKAE0VDo6Q3VycmVuY3lJZAABGGFtb3VudEABKFQ6OkJhbGFuY2UAEAAEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQxCAxEcGFsbGV0X2N1cnJlbmNpZXMYbW9kdWxlFEV2ZW50BARUAAEQLFRyYW5zZmVycmVkEAEsY3VycmVuY3lfaWQoATxDdXJyZW5jeUlkT2Y8VD4AARBmcm9tAAEwVDo6QWNjb3VudElkAAEIdG8AATBUOjpBY2NvdW50SWQAARhhbW91bnRAATBCYWxhbmNlT2Y8VD4AAARoQ3VycmVuY3kgdHJhbnNmZXIgc3VjY2Vzcy44QmFsYW5jZVVwZGF0ZWQMASxjdXJyZW5jeV9pZCgBPEN1cnJlbmN5SWRPZjxUPgABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudNEDASxBbW91bnRPZjxUPgABBFxVcGRhdGUgYmFsYW5jZSBzdWNjZXNzLiREZXBvc2l0ZWQMASxjdXJyZW5jeV9pZCgBPEN1cnJlbmN5SWRPZjxUPgABDHdobwABMFQ6OkFjY291bnRJZAABGGFtb3VudEABMEJhbGFuY2VPZjxUPgACBEBEZXBvc2l0IHN1Y2Nlc3MuJFdpdGhkcmF3bgwBLGN1cnJlbmN5X2lkKAE8Q3VycmVuY3lJZE9mPFQ+AAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEwQmFsYW5jZU9mPFQ+AAMERFdpdGhkcmF3IHN1Y2Nlc3MuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0NQgMMG9ybWxfdmVzdGluZxhtb2R1bGUURXZlbnQEBFQAAQxQVmVzdGluZ1NjaGVkdWxlQWRkZWQMARBmcm9tAAEwVDo6QWNjb3VudElkAAEIdG8AATBUOjpBY2NvdW50SWQAAUB2ZXN0aW5nX3NjaGVkdWxl2QMBUFZlc3RpbmdTY2hlZHVsZU9mPFQ+AAAEbEFkZGVkIG5ldyB2ZXN0aW5nIHNjaGVkdWxlLhxDbGFpbWVkCAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEwQmFsYW5jZU9mPFQ+AAEEQENsYWltZWQgdmVzdGluZy5cVmVzdGluZ1NjaGVkdWxlc1VwZGF0ZWQEAQx3aG8AATBUOjpBY2NvdW50SWQAAgRoVXBkYXRlZCB2ZXN0aW5nIHNjaGVkdWxlcy4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXQ5CAwocGFsbGV0X2V2bRhwYWxsZXQURXZlbnQEBFQAARQMTG9nBAEMbG9nPQgBDExvZwAABHxFdGhlcmV1bSBldmVudHMgZnJvbSBjb250cmFjdHMuHENyZWF0ZWQEARxhZGRyZXNzWAEQSDE2MAABBLRBIGNvbnRyYWN0IGhhcyBiZWVuIGNyZWF0ZWQgYXQgZ2l2ZW4gYWRkcmVzcy40Q3JlYXRlZEZhaWxlZAQBHGFkZHJlc3NYARBIMTYwAAIEBQFBIGNvbnRyYWN0IHdhcyBhdHRlbXB0ZWQgdG8gYmUgY3JlYXRlZCwgYnV0IHRoZSBleGVjdXRpb24gZmFpbGVkLiBFeGVjdXRlZAQBHGFkZHJlc3NYARBIMTYwAAME+EEgY29udHJhY3QgaGFzIGJlZW4gZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5IHdpdGggc3RhdGVzIGFwcGxpZWQuOEV4ZWN1dGVkRmFpbGVkBAEcYWRkcmVzc1gBEEgxNjAABARlAUEgY29udHJhY3QgaGFzIGJlZW4gZXhlY3V0ZWQgd2l0aCBlcnJvcnMuIFN0YXRlcyBhcmUgcmV2ZXJ0ZWQgd2l0aCBvbmx5IGdhcyBmZWVzIGFwcGxpZWQuBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0PQgMIGV0aGVyZXVtDGxvZwxMb2cAAAwBHGFkZHJlc3NYARBIMTYwAAEYdG9waWNz7AEkVmVjPEgyNTY+AAEQZGF0YRQBFEJ5dGVzAABBCAw8cGFsbGV0X2V0aGVyZXVtGHBhbGxldBRFdmVudAABBCBFeGVjdXRlZBQBEGZyb21YARBIMTYwAAEIdG9YARBIMTYwAAFAdHJhbnNhY3Rpb25faGFzaCwBEEgyNTYAASxleGl0X3JlYXNvbkUIAShFeGl0UmVhc29uAAEoZXh0cmFfZGF0YRQBHFZlYzx1OD4AAATIQW4gZXRoZXJldW0gdHJhbnNhY3Rpb24gd2FzIHN1Y2Nlc3NmdWxseSBleGVjdXRlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRFCAwgZXZtX2NvcmUUZXJyb3IoRXhpdFJlYXNvbgABEBxTdWNjZWVkBABJCAEsRXhpdFN1Y2NlZWQAAAAURXJyb3IEAE0IASRFeGl0RXJyb3IAAQAYUmV2ZXJ0BABdCAEoRXhpdFJldmVydAACABRGYXRhbAQAYQgBJEV4aXRGYXRhbAADAABJCAwgZXZtX2NvcmUUZXJyb3IsRXhpdFN1Y2NlZWQAAQwcU3RvcHBlZAAAACBSZXR1cm5lZAABACBTdWljaWRlZAACAABNCAwgZXZtX2NvcmUUZXJyb3IkRXhpdEVycm9yAAFAOFN0YWNrVW5kZXJmbG93AAAANFN0YWNrT3ZlcmZsb3cAAQAsSW52YWxpZEp1bXAAAgAwSW52YWxpZFJhbmdlAAMARERlc2lnbmF0ZWRJbnZhbGlkAAQALENhbGxUb29EZWVwAAUAPENyZWF0ZUNvbGxpc2lvbgAGAExDcmVhdGVDb250cmFjdExpbWl0AAcALEludmFsaWRDb2RlBABRCAEYT3Bjb2RlAA8ALE91dE9mT2Zmc2V0AAgAIE91dE9mR2FzAAkAJE91dE9mRnVuZAAKACxQQ1VuZGVyZmxvdwALACxDcmVhdGVFbXB0eQAMABRPdGhlcgQAVQgBRENvdzwnc3RhdGljLCBzdHI+AA0AIE1heE5vbmNlAA4AAFEIDCBldm1fY29yZRhvcGNvZGUYT3Bjb2RlAAAEAAgBCHU4AABVCAQMQ293BARUAVkIAAQAWQgAAABZCAAABQIAXQgMIGV2bV9jb3JlFGVycm9yKEV4aXRSZXZlcnQAAQQgUmV2ZXJ0ZWQAAAAAYQgMIGV2bV9jb3JlFGVycm9yJEV4aXRGYXRhbAABEDBOb3RTdXBwb3J0ZWQAAABIVW5oYW5kbGVkSW50ZXJydXB0AAEAQENhbGxFcnJvckFzRmF0YWwEAE0IASRFeGl0RXJyb3IAAgAUT3RoZXIEAFUIAURDb3c8J3N0YXRpYywgc3RyPgADAABlCAxMcGFsbGV0X2V2bV9hY2NvdW50cxhwYWxsZXQURXZlbnQEBFQAASAUQm91bmQIARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAEcYWRkcmVzc1gBKEV2bUFkZHJlc3MAAARQQmluZGluZyB3YXMgY3JlYXRlZC40RGVwbG95ZXJBZGRlZAQBDHdob1gBKEV2bUFkZHJlc3MAAQRMRGVwbG95ZXIgd2FzIGFkZGVkLjxEZXBsb3llclJlbW92ZWQEAQx3aG9YAShFdm1BZGRyZXNzAAIEVERlcGxveWVyIHdhcyByZW1vdmVkLkBDb250cmFjdEFwcHJvdmVkBAEcYWRkcmVzc1gBKEV2bUFkZHJlc3MAAwRYQ29udHJhY3Qgd2FzIGFwcHJvdmVkLkxDb250cmFjdERpc2FwcHJvdmVkBAEcYWRkcmVzc1gBKEV2bUFkZHJlc3MABARkQ29udHJhY3Qgd2FzIGRpc2FwcHJvdmVkLjhBY2NvdW50Q2xhaW1lZAgBHGFjY291bnQAATBUOjpBY2NvdW50SWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQABQRQQWNjb3VudCB3YXMgY2xhaW1lZC4wTnR0TWludGVyU2V0CAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEYbWludGVyWAEoRXZtQWRkcmVzcwAGBIBOVFQgbWludGVyIHdhcyBzZXQgZm9yIGFuIGFzc2V0LkBOdHRNaW50ZXJDbGVhcmVkBAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAcEkE5UVCBtaW50ZXIgd2FzIGNsZWFyZWQgZm9yIGFuIGFzc2V0LgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldGkIDGxwYWxsZXRfeHlrX2xpcXVpZGl0eV9taW5pbmcYcGFsbGV0FEV2ZW50BARUAAE0REdsb2JhbEZhcm1DcmVhdGVkLAEIaWQoATBHbG9iYWxGYXJtSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABNHRvdGFsX3Jld2FyZHNAARxCYWxhbmNlAAE8cmV3YXJkX2N1cnJlbmN5KAEcQXNzZXRJZAABQHlpZWxkX3Blcl9wZXJpb2SZAgEsUGVycXVpbnRpbGwAAWBwbGFubmVkX3lpZWxkaW5nX3BlcmlvZHMoASxQZXJpb2RPZjxUPgABRGJsb2Nrc19wZXJfcGVyaW9kKAFEQmxvY2tOdW1iZXJGb3I8VD4AAUhpbmNlbnRpdml6ZWRfYXNzZXQoARxBc3NldElkAAFUbWF4X3Jld2FyZF9wZXJfcGVyaW9kQAEcQmFsYW5jZQABLG1pbl9kZXBvc2l0QAEcQmFsYW5jZQABQHByaWNlX2FkanVzdG1lbnRUASRGaXhlZFUxMjgAAARwTmV3IGdsb2JhbCBmYXJtIHdhcyBjcmVhdGVkLkRHbG9iYWxGYXJtVXBkYXRlZAgBCGlkKAEwR2xvYmFsRmFybUlkAAFAcHJpY2VfYWRqdXN0bWVudFQBJEZpeGVkVTEyOAABBLRHbG9iYWwgZmFybSdzIGBwcmljZV9hZGp1c3RtZW50YCB3YXMgdXBkYXRlZC5AWWllbGRGYXJtQ3JlYXRlZBQBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEobXVsdGlwbGllclQBOEZhcm1NdWx0aXBsaWVyAAEoYXNzZXRfcGFpcjUEASRBc3NldFBhaXIAATRsb3lhbHR5X2N1cnZlnQIBUE9wdGlvbjxMb3lhbHR5Q3VydmU+AAIEnE5ldyB5aWVsZCBmYXJtIHdhcyBhZGRlZCBpbnRvIHRoZSBmYXJtLlBHbG9iYWxGYXJtVGVybWluYXRlZBABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAE8cmV3YXJkX2N1cnJlbmN5KAEcQXNzZXRJZAABVHVuZGlzdHJpYnV0ZWRfcmV3YXJkc0ABHEJhbGFuY2UAAwRsR2xvYmFsIGZhcm0gd2FzIHRlcm1pbmF0ZWQuPFNoYXJlc0RlcG9zaXRlZBgBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEcQmFsYW5jZQABIGxwX3Rva2VuKAEcQXNzZXRJZAABKGRlcG9zaXRfaWRAASREZXBvc2l0SWQABARwTmV3IExQIHRva2VucyB3YXMgZGVwb3NpdGVkLkRTaGFyZXNSZWRlcG9zaXRlZBgBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEYYW1vdW50QAEcQmFsYW5jZQABIGxwX3Rva2VuKAEcQXNzZXRJZAABKGRlcG9zaXRfaWRAASREZXBvc2l0SWQABQTMTFAgdG9rZW4gd2FzIHJlZGVwb3NpdGVkIGZvciBhIG5ldyB5aWVsZCBmYXJtIGVudHJ5NFJld2FyZENsYWltZWQYAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABDHdobwABMFQ6OkFjY291bnRJZAABHGNsYWltZWRAARxCYWxhbmNlAAE8cmV3YXJkX2N1cnJlbmN5KAEcQXNzZXRJZAABKGRlcG9zaXRfaWRAASREZXBvc2l0SWQABgRQUmV3YXJkcyB3YXMgY2xhaW1lZC48U2hhcmVzV2l0aGRyYXduGAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAASBscF90b2tlbigBHEFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAAEoZGVwb3NpdF9pZEABJERlcG9zaXRJZAAHBGBMUCB0b2tlbnMgd2FzIHdpdGhkcmF3bi5AWWllbGRGYXJtU3RvcHBlZBABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEoYXNzZXRfcGFpcjUEASRBc3NldFBhaXIACASYWWllbGQgZmFybSBmb3IgYXNzZXQgcGFpciB3YXMgc3RvcHBlZC5AWWllbGRGYXJtUmVzdW1lZBQBOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEoYXNzZXRfcGFpcjUEASRBc3NldFBhaXIAAShtdWx0aXBsaWVyVAE4RmFybU11bHRpcGxpZXIACQSYWWllbGQgZmFybSBmb3IgYXNzZXQgcGFpciB3YXMgcmVzdW1lZC5MWWllbGRGYXJtVGVybWluYXRlZBABOGdsb2JhbF9mYXJtX2lkKAEwR2xvYmFsRmFybUlkAAE0eWllbGRfZmFybV9pZCgBLFlpZWxkRmFybUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEoYXNzZXRfcGFpcjUEASRBc3NldFBhaXIACgSsWWllbGQgZmFybSB3YXMgdGVybWluYXRlZCBmcm9tIGdsb2JhbCBmYXJtLkBZaWVsZEZhcm1VcGRhdGVkFAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAAShhc3NldF9wYWlyNQQBJEFzc2V0UGFpcgABKG11bHRpcGxpZXJUAThGYXJtTXVsdGlwbGllcgALBIhZaWVsZCBmYXJtIG11bHRpcGxpZXIgd2FzIHVwZGF0ZWQuQERlcG9zaXREZXN0cm95ZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAAShkZXBvc2l0X2lkQAEkRGVwb3NpdElkAAwErE5GVCByZXByZXNlbnRpbmcgZGVwb3NpdCBoYXMgYmVlbiBkZXN0cm95ZWQEfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRtCAxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcYcGFsbGV0FEV2ZW50CARUAARJAAEMXEdsb2JhbEZhcm1BY2NSUFpVcGRhdGVkDAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATxhY2N1bXVsYXRlZF9ycHpUASRGaXhlZFUxMjgAATh0b3RhbF9zaGFyZXNfekABHEJhbGFuY2UAAATUR2xvYmFsIGZhcm0gYWNjdW11bGF0ZWQgcmV3YXJkIHBlciBzaGFyZSB3YXMgdXBkYXRlZC5cWWllbGRGYXJtQWNjUlBWU1VwZGF0ZWQQAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABQGFjY3VtdWxhdGVkX3JwdnNUASRGaXhlZFUxMjgAAUx0b3RhbF92YWx1ZWRfc2hhcmVzQAEcQmFsYW5jZQABBOxZaWVsZCBmYXJtIGFjY3VtdWxhdGVkIHJld2FyZCBwZXIgdmFsdWVkIHNoYXJlIHdhcyB1cGRhdGVkLlRBbGxSZXdhcmRzRGlzdHJpYnV0ZWQEAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAACBPBHbG9iYWwgZmFybSBoYXMgbm8gbW9yZSByZXdhcmRzIHRvIGRpc3RyaWJ1dGUgaW4gdGhlIG1vbWVudC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXRxCAxYcGFsbGV0X3JlbGF5Y2hhaW5faW5mbxhwYWxsZXQURXZlbnQEBFQAAQRMQ3VycmVudEJsb2NrTnVtYmVycwgBWHBhcmFjaGFpbl9ibG9ja19udW1iZXIoAURCbG9ja051bWJlckZvcjxUPgABXHJlbGF5Y2hhaW5fYmxvY2tfbnVtYmVyKAFEQmxvY2tOdW1iZXJGb3I8VD4AAAhUQ3VycmVudCBibG9jayBudW1iZXJzzFsgUGFyYWNoYWluIGJsb2NrIG51bWJlciwgUmVsYXljaGFpbiBCbG9jayBudW1iZXIgXQR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldHUIDChwYWxsZXRfZGNhGHBhbGxldBRFdmVudAQEVAABJEBFeGVjdXRpb25TdGFydGVkCAEIaWQoAShTY2hlZHVsZUlkAAEUYmxvY2soAURCbG9ja051bWJlckZvcjxUPgAABHBUaGUgRENBIGV4ZWN1dGlvbiBpcyBzdGFydGVkJFNjaGVkdWxlZBQBCGlkKAEoU2NoZWR1bGVJZAABDHdobwABMFQ6OkFjY291bnRJZAABGHBlcmlvZCgBREJsb2NrTnVtYmVyRm9yPFQ+AAEwdG90YWxfYW1vdW50QAEcQmFsYW5jZQABFG9yZGVyUQQBRE9yZGVyPFQ6OkFzc2V0SWQ+AAEEnFRoZSBEQ0EgaXMgc2NoZWR1bGVkIGZvciBuZXh0IGV4ZWN1dGlvbkBFeGVjdXRpb25QbGFubmVkDAEIaWQoAShTY2hlZHVsZUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEUYmxvY2soAURCbG9ja051bWJlckZvcjxUPgACBIhUaGUgRENBIGlzIHBsYW5uZWQgZm9yIGJsb2NrbnVtYmVyNFRyYWRlRXhlY3V0ZWQQAQhpZCgBKFNjaGVkdWxlSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAASRhbW91bnRfaW5AARxCYWxhbmNlAAEoYW1vdW50X291dEABHEJhbGFuY2UAAwSYVGhlIERDQSB0cmFkZSBpcyBzdWNjZXNzZnVsbHkgZXhlY3V0ZWQsVHJhZGVGYWlsZWQMAQhpZCgBKFNjaGVkdWxlSWQAAQx3aG8AATBUOjpBY2NvdW50SWQAARRlcnJvciEHATREaXNwYXRjaEVycm9yAAQEhFRoZSBEQ0EgdHJhZGUgZXhlY3V0aW9uIGlzIGZhaWxlZChUZXJtaW5hdGVkDAEIaWQoAShTY2hlZHVsZUlkAAEMd2hvAAEwVDo6QWNjb3VudElkAAEUZXJyb3IhBwE0RGlzcGF0Y2hFcnJvcgAFBOxUaGUgRENBIGlzIHRlcm1pbmF0ZWQgYW5kIGNvbXBsZXRlbHkgcmVtb3ZlZCBmcm9tIHRoZSBjaGFpbiRDb21wbGV0ZWQIAQhpZCgBKFNjaGVkdWxlSWQAAQx3aG8AATBUOjpBY2NvdW50SWQABgToVGhlIERDQSBpcyBjb21wbGV0ZWQgYW5kIGNvbXBsZXRlbHkgcmVtb3ZlZCBmcm9tIHRoZSBjaGFpbmhSYW5kb21uZXNzR2VuZXJhdGlvbkZhaWxlZAgBFGJsb2NrKAFEQmxvY2tOdW1iZXJGb3I8VD4AARRlcnJvciEHATREaXNwYXRjaEVycm9yAAcEQQFSYW5kb21uZXNzIGdlbmVyYXRpb24gZmFpbGVkIHBvc3NpYmx5IGNvbWluZyBmcm9tIG1pc3NpbmcgZGF0YSBhYm91dCByZWxheSBjaGFpbjxSZXNlcnZlVW5sb2NrZWQIAQx3aG8AATBUOjpBY2NvdW50SWQAASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQACAT0RENBIHJlc2VydmUgZm9yIHRoZSBnaXZlbiBhc3NldCBoYXZlIGJlZW4gdW5sb2NrZWQgZm9yIGEgdXNlcgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldHkIDEBwYWxsZXRfc2NoZWR1bGVyGHBhbGxldBRFdmVudAQEVAABKCRTY2hlZHVsZWQIARB3aGVuKAFEQmxvY2tOdW1iZXJGb3I8VD4AARRpbmRleCgBDHUzMgAABFBTY2hlZHVsZWQgc29tZSB0YXNrLiBDYW5jZWxlZAgBEHdoZW4oAURCbG9ja051bWJlckZvcjxUPgABFGluZGV4KAEMdTMyAAEETENhbmNlbGVkIHNvbWUgdGFzay4oRGlzcGF0Y2hlZAwBEHRhc2upAgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWTxBgFAT3B0aW9uPFRhc2tOYW1lPgABGHJlc3VsdFEHAThEaXNwYXRjaFJlc3VsdAACBFREaXNwYXRjaGVkIHNvbWUgdGFzay4gUmV0cnlTZXQQARB0YXNrqQIBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlk8QYBQE9wdGlvbjxUYXNrTmFtZT4AARhwZXJpb2QoAURCbG9ja051bWJlckZvcjxUPgABHHJldHJpZXMIAQh1OAADBKBTZXQgYSByZXRyeSBjb25maWd1cmF0aW9uIGZvciBzb21lIHRhc2suOFJldHJ5Q2FuY2VsbGVkCAEQdGFza6kCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZPEGAUBPcHRpb248VGFza05hbWU+AAQErENhbmNlbCBhIHJldHJ5IGNvbmZpZ3VyYXRpb24gZm9yIHNvbWUgdGFzay48Q2FsbFVuYXZhaWxhYmxlCAEQdGFza6kCAXhUYXNrQWRkcmVzczxCbG9ja051bWJlckZvcjxUPj4AAQhpZPEGAUBPcHRpb248VGFza05hbWU+AAUEKQFUaGUgY2FsbCBmb3IgdGhlIHByb3ZpZGVkIGhhc2ggd2FzIG5vdCBmb3VuZCBzbyB0aGUgdGFzayBoYXMgYmVlbiBhYm9ydGVkLjhQZXJpb2RpY0ZhaWxlZAgBEHRhc2upAgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWTxBgFAT3B0aW9uPFRhc2tOYW1lPgAGBD0BVGhlIGdpdmVuIHRhc2sgd2FzIHVuYWJsZSB0byBiZSByZW5ld2VkIHNpbmNlIHRoZSBhZ2VuZGEgaXMgZnVsbCBhdCB0aGF0IGJsb2NrLixSZXRyeUZhaWxlZAgBEHRhc2upAgF4VGFza0FkZHJlc3M8QmxvY2tOdW1iZXJGb3I8VD4+AAEIaWTxBgFAT3B0aW9uPFRhc2tOYW1lPgAHCF0BVGhlIGdpdmVuIHRhc2sgd2FzIHVuYWJsZSB0byBiZSByZXRyaWVkIHNpbmNlIHRoZSBhZ2VuZGEgaXMgZnVsbCBhdCB0aGF0IGJsb2NrIG9yIHRoZXJlnHdhcyBub3QgZW5vdWdoIHdlaWdodCB0byByZXNjaGVkdWxlIGl0LlRQZXJtYW5lbnRseU92ZXJ3ZWlnaHQIARB0YXNrqQIBeFRhc2tBZGRyZXNzPEJsb2NrTnVtYmVyRm9yPFQ+PgABCGlk8QYBQE9wdGlvbjxUYXNrTmFtZT4ACATwVGhlIGdpdmVuIHRhc2sgY2FuIG5ldmVyIGJlIGV4ZWN1dGVkIHNpbmNlIGl0IGlzIG92ZXJ3ZWlnaHQuQEFnZW5kYUluY29tcGxldGUEARB3aGVuKAFEQmxvY2tOdW1iZXJGb3I8VD4ACQSEQWdlbmRhIGlzIGluY29tcGxldGUgZnJvbSBgd2hlbmAuBDBFdmVudHMgdHlwZS59CAx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbRhwYWxsZXQURXZlbnQEBFQAARhgVmFsaWRhdGlvbkZ1bmN0aW9uU3RvcmVkAAAE0FRoZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIGhhcyBiZWVuIHNjaGVkdWxlZCB0byBhcHBseS5kVmFsaWRhdGlvbkZ1bmN0aW9uQXBwbGllZAQBVHJlbGF5X2NoYWluX2Jsb2NrX251bSgBVFJlbGF5Q2hhaW5CbG9ja051bWJlcgABBEUBVGhlIHZhbGlkYXRpb24gZnVuY3Rpb24gd2FzIGFwcGxpZWQgYXMgb2YgdGhlIGNvbnRhaW5lZCByZWxheSBjaGFpbiBibG9jayBudW1iZXIubFZhbGlkYXRpb25GdW5jdGlvbkRpc2NhcmRlZAACBLBUaGUgcmVsYXktY2hhaW4gYWJvcnRlZCB0aGUgdXBncmFkZSBwcm9jZXNzLmBEb3dud2FyZE1lc3NhZ2VzUmVjZWl2ZWQEARRjb3VudCgBDHUzMgADBAEBU29tZSBkb3dud2FyZCBtZXNzYWdlcyBoYXZlIGJlZW4gcmVjZWl2ZWQgYW5kIHdpbGwgYmUgcHJvY2Vzc2VkLmREb3dud2FyZE1lc3NhZ2VzUHJvY2Vzc2VkCAEsd2VpZ2h0X3VzZWTkARhXZWlnaHQAASBkbXFfaGVhZCwBRHJlbGF5X2NoYWluOjpIYXNoAAQE4ERvd253YXJkIG1lc3NhZ2VzIHdlcmUgcHJvY2Vzc2VkIHVzaW5nIHRoZSBnaXZlbiB3ZWlnaHQuRFVwd2FyZE1lc3NhZ2VTZW50BAEwbWVzc2FnZV9oYXNo8QYBPE9wdGlvbjxYY21IYXNoPgAFBLhBbiB1cHdhcmQgbWVzc2FnZSB3YXMgc2VudCB0byB0aGUgcmVsYXkgY2hhaW4uBHxUaGUgYEV2ZW50YCBlbnVtIG9mIHRoaXMgcGFsbGV0gQgMKHBhbGxldF94Y20YcGFsbGV0FEV2ZW50BARUAAF0JEF0dGVtcHRlZAQBHG91dGNvbWWFCAFQeGNtOjpsYXRlc3Q6Ok91dGNvbWUAAASoRXhlY3V0aW9uIG9mIGFuIFhDTSBtZXNzYWdlIHdhcyBhdHRlbXB0ZWQuEFNlbnQQARhvcmlnaW6cASBMb2NhdGlvbgABLGRlc3RpbmF0aW9unAEgTG9jYXRpb24AARxtZXNzYWdltQUBHFhjbTwoKT4AAShtZXNzYWdlX2lkBAEcWGNtSGFzaAABBGBBbiBYQ00gbWVzc2FnZSB3YXMgc2VudC4oU2VuZEZhaWxlZBABGG9yaWdpbpwBIExvY2F0aW9uAAEsZGVzdGluYXRpb26cASBMb2NhdGlvbgABFGVycm9yjQgBJFNlbmRFcnJvcgABKG1lc3NhZ2VfaWQEARxYY21IYXNoAAIEeEFuIFhDTSBtZXNzYWdlIGZhaWxlZCB0byBzZW5kLjxQcm9jZXNzWGNtRXJyb3IMARhvcmlnaW6cASBMb2NhdGlvbgABFGVycm9y5QUBIFhjbUVycm9yAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gAAwSEQW4gWENNIG1lc3NhZ2UgZmFpbGVkIHRvIHByb2Nlc3MuSFVuZXhwZWN0ZWRSZXNwb25zZQgBGG9yaWdpbpwBIExvY2F0aW9uAAEgcXVlcnlfaWQYARxRdWVyeUlkAAQMWQFRdWVyeSByZXNwb25zZSByZWNlaXZlZCB3aGljaCBkb2VzIG5vdCBtYXRjaCBhIHJlZ2lzdGVyZWQgcXVlcnkuIFRoaXMgbWF5IGJlIGJlY2F1c2UgYVUBbWF0Y2hpbmcgcXVlcnkgd2FzIG5ldmVyIHJlZ2lzdGVyZWQsIGl0IG1heSBiZSBiZWNhdXNlIGl0IGlzIGEgZHVwbGljYXRlIHJlc3BvbnNlLCBvcnBiZWNhdXNlIHRoZSBxdWVyeSB0aW1lZCBvdXQuNFJlc3BvbnNlUmVhZHkIASBxdWVyeV9pZBgBHFF1ZXJ5SWQAASByZXNwb25zZdkFASBSZXNwb25zZQAFCF0BUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIGlzIHJlYWR5IGZvciB0YWtpbmcgd2l0aCBgdGFrZV9yZXNwb25zZWAuIFRoZXJlIGlzgG5vIHJlZ2lzdGVyZWQgbm90aWZpY2F0aW9uIGNhbGwuIE5vdGlmaWVkDAEgcXVlcnlfaWQYARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4CAEIdTgAAShjYWxsX2luZGV4CAEIdTgABghZAVF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCBxdWVyeSBpcyByZW1vdmVkLiBUaGUgcmVnaXN0ZXJlZCBub3RpZmljYXRpb24gaGFzqGJlZW4gZGlzcGF0Y2hlZCBhbmQgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5LkBOb3RpZnlPdmVyd2VpZ2h0FAEgcXVlcnlfaWQYARxRdWVyeUlkAAEwcGFsbGV0X2luZGV4CAEIdTgAAShjYWxsX2luZGV4CAEIdTgAATRhY3R1YWxfd2VpZ2h05AEYV2VpZ2h0AAFMbWF4X2J1ZGdldGVkX3dlaWdodOQBGFdlaWdodAAHDEkBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZSByZWdpc3RlcmVkIG5vdGlmaWNhdGlvblkBY291bGQgbm90IGJlIGRpc3BhdGNoZWQgYmVjYXVzZSB0aGUgZGlzcGF0Y2ggd2VpZ2h0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSB3ZWlnaHTkb3JpZ2luYWxseSBidWRnZXRlZCBieSB0aGlzIHJ1bnRpbWUgZm9yIHRoZSBxdWVyeSByZXN1bHQuTE5vdGlmeURpc3BhdGNoRXJyb3IMASBxdWVyeV9pZBgBHFF1ZXJ5SWQAATBwYWxsZXRfaW5kZXgIAQh1OAABKGNhbGxfaW5kZXgIAQh1OAAICFUBUXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYW5kIHF1ZXJ5IGlzIHJlbW92ZWQuIFRoZXJlIHdhcyBhIGdlbmVyYWwgZXJyb3Igd2l0aIhkaXNwYXRjaGluZyB0aGUgbm90aWZpY2F0aW9uIGNhbGwuSE5vdGlmeURlY29kZUZhaWxlZAwBIHF1ZXJ5X2lkGAEcUXVlcnlJZAABMHBhbGxldF9pbmRleAgBCHU4AAEoY2FsbF9pbmRleAgBCHU4AAkMUQFRdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBhbmQgcXVlcnkgaXMgcmVtb3ZlZC4gVGhlIGRpc3BhdGNoIHdhcyB1bmFibGUgdG8gYmVZAWRlY29kZWQgaW50byBhIGBDYWxsYDsgdGhpcyBtaWdodCBiZSBkdWUgdG8gZGlzcGF0Y2ggZnVuY3Rpb24gaGF2aW5nIGEgc2lnbmF0dXJlIHdoaWNolGlzIG5vdCBgKG9yaWdpbiwgUXVlcnlJZCwgUmVzcG9uc2UpYC5ASW52YWxpZFJlc3BvbmRlcgwBGG9yaWdpbpwBIExvY2F0aW9uAAEgcXVlcnlfaWQYARxRdWVyeUlkAAFEZXhwZWN0ZWRfbG9jYXRpb275BQFAT3B0aW9uPExvY2F0aW9uPgAKDFkBRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBvcmlnaW4gbG9jYXRpb24gb2YgdGhlIHJlc3BvbnNlIGRvZXNVAW5vdCBtYXRjaCB0aGF0IGV4cGVjdGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkIGZvciBhIGxhdGVyLCB2YWxpZCwgcmVzcG9uc2UgdG9sYmUgcmVjZWl2ZWQgYW5kIGFjdGVkIHVwb24uXEludmFsaWRSZXNwb25kZXJWZXJzaW9uCAEYb3JpZ2lunAEgTG9jYXRpb24AASBxdWVyeV9pZBgBHFF1ZXJ5SWQACxxRAUV4cGVjdGVkIHF1ZXJ5IHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkIGJ1dCB0aGUgZXhwZWN0ZWQgb3JpZ2luIGxvY2F0aW9uIHBsYWNlZCBpbk0Bc3RvcmFnZSBieSB0aGlzIHJ1bnRpbWUgcHJldmlvdXNseSBjYW5ub3QgYmUgZGVjb2RlZC4gVGhlIHF1ZXJ5IHJlbWFpbnMgcmVnaXN0ZXJlZC4AQQFUaGlzIGlzIHVuZXhwZWN0ZWQgKHNpbmNlIGEgbG9jYXRpb24gcGxhY2VkIGluIHN0b3JhZ2UgaW4gYSBwcmV2aW91c2x5IGV4ZWN1dGluZ00BcnVudGltZSBzaG91bGQgYmUgcmVhZGFibGUgcHJpb3IgdG8gcXVlcnkgdGltZW91dCkgYW5kIGRhbmdlcm91cyBzaW5jZSB0aGUgcG9zc2libHlZAXZhbGlkIHJlc3BvbnNlIHdpbGwgYmUgZHJvcHBlZC4gTWFudWFsIGdvdmVybmFuY2UgaW50ZXJ2ZW50aW9uIGlzIHByb2JhYmx5IGdvaW5nIHRvIGJlHG5lZWRlZC40UmVzcG9uc2VUYWtlbgQBIHF1ZXJ5X2lkGAEcUXVlcnlJZAAMBMhSZWNlaXZlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWFkIGFuZCByZW1vdmVkLjRBc3NldHNUcmFwcGVkDAEQaGFzaCwBEEgyNTYAARhvcmlnaW6cASBMb2NhdGlvbgABGGFzc2V0czEGATxWZXJzaW9uZWRBc3NldHMADQS4U29tZSBhc3NldHMgaGF2ZSBiZWVuIHBsYWNlZCBpbiBhbiBhc3NldCB0cmFwLlRWZXJzaW9uQ2hhbmdlTm90aWZpZWQQASxkZXN0aW5hdGlvbpwBIExvY2F0aW9uAAEYcmVzdWx0KAEoWGNtVmVyc2lvbgABEGNvc3TBBQEYQXNzZXRzAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gADgwlAUFuIFhDTSB2ZXJzaW9uIGNoYW5nZSBub3RpZmljYXRpb24gbWVzc2FnZSBoYXMgYmVlbiBhdHRlbXB0ZWQgdG8gYmUgc2VudC4A4FRoZSBjb3N0IG9mIHNlbmRpbmcgaXQgKGJvcm5lIGJ5IHRoZSBjaGFpbikgaXMgaW5jbHVkZWQuXFN1cHBvcnRlZFZlcnNpb25DaGFuZ2VkCAEgbG9jYXRpb26cASBMb2NhdGlvbgABHHZlcnNpb24oAShYY21WZXJzaW9uAA8IOQFUaGUgc3VwcG9ydGVkIHZlcnNpb24gb2YgYSBsb2NhdGlvbiBoYXMgYmVlbiBjaGFuZ2VkLiBUaGlzIG1pZ2h0IGJlIHRocm91Z2ggYW7AYXV0b21hdGljIG5vdGlmaWNhdGlvbiBvciBhIG1hbnVhbCBpbnRlcnZlbnRpb24uUE5vdGlmeVRhcmdldFNlbmRGYWlsDAEgbG9jYXRpb26cASBMb2NhdGlvbgABIHF1ZXJ5X2lkGAEcUXVlcnlJZAABFGVycm9y5QUBIFhjbUVycm9yABAIWQFBIGdpdmVuIGxvY2F0aW9uIHdoaWNoIGhhZCBhIHZlcnNpb24gY2hhbmdlIHN1YnNjcmlwdGlvbiB3YXMgZHJvcHBlZCBvd2luZyB0byBhbiBlcnJvcnxzZW5kaW5nIHRoZSBub3RpZmljYXRpb24gdG8gaXQuZE5vdGlmeVRhcmdldE1pZ3JhdGlvbkZhaWwIASBsb2NhdGlvbq0EAURWZXJzaW9uZWRMb2NhdGlvbgABIHF1ZXJ5X2lkGAEcUXVlcnlJZAARCFkBQSBnaXZlbiBsb2NhdGlvbiB3aGljaCBoYWQgYSB2ZXJzaW9uIGNoYW5nZSBzdWJzY3JpcHRpb24gd2FzIGRyb3BwZWQgb3dpbmcgdG8gYW4gZXJyb3K0bWlncmF0aW5nIHRoZSBsb2NhdGlvbiB0byBvdXIgbmV3IFhDTSBmb3JtYXQuVEludmFsaWRRdWVyaWVyVmVyc2lvbggBGG9yaWdpbpwBIExvY2F0aW9uAAEgcXVlcnlfaWQYARxRdWVyeUlkABIcVQFFeHBlY3RlZCBxdWVyeSByZXNwb25zZSBoYXMgYmVlbiByZWNlaXZlZCBidXQgdGhlIGV4cGVjdGVkIHF1ZXJpZXIgbG9jYXRpb24gcGxhY2VkIGluTQFzdG9yYWdlIGJ5IHRoaXMgcnVudGltZSBwcmV2aW91c2x5IGNhbm5vdCBiZSBkZWNvZGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkLgBBAVRoaXMgaXMgdW5leHBlY3RlZCAoc2luY2UgYSBsb2NhdGlvbiBwbGFjZWQgaW4gc3RvcmFnZSBpbiBhIHByZXZpb3VzbHkgZXhlY3V0aW5nTQFydW50aW1lIHNob3VsZCBiZSByZWFkYWJsZSBwcmlvciB0byBxdWVyeSB0aW1lb3V0KSBhbmQgZGFuZ2Vyb3VzIHNpbmNlIHRoZSBwb3NzaWJseVkBdmFsaWQgcmVzcG9uc2Ugd2lsbCBiZSBkcm9wcGVkLiBNYW51YWwgZ292ZXJuYW5jZSBpbnRlcnZlbnRpb24gaXMgcHJvYmFibHkgZ29pbmcgdG8gYmUcbmVlZGVkLjhJbnZhbGlkUXVlcmllchABGG9yaWdpbpwBIExvY2F0aW9uAAEgcXVlcnlfaWQYARxRdWVyeUlkAAFAZXhwZWN0ZWRfcXVlcmllcpwBIExvY2F0aW9uAAFQbWF5YmVfYWN0dWFsX3F1ZXJpZXL5BQFAT3B0aW9uPExvY2F0aW9uPgATDF0BRXhwZWN0ZWQgcXVlcnkgcmVzcG9uc2UgaGFzIGJlZW4gcmVjZWl2ZWQgYnV0IHRoZSBxdWVyaWVyIGxvY2F0aW9uIG9mIHRoZSByZXNwb25zZSBkb2VzUQFub3QgbWF0Y2ggdGhlIGV4cGVjdGVkLiBUaGUgcXVlcnkgcmVtYWlucyByZWdpc3RlcmVkIGZvciBhIGxhdGVyLCB2YWxpZCwgcmVzcG9uc2UgdG9sYmUgcmVjZWl2ZWQgYW5kIGFjdGVkIHVwb24uUFZlcnNpb25Ob3RpZnlTdGFydGVkDAEsZGVzdGluYXRpb26cASBMb2NhdGlvbgABEGNvc3TBBQEYQXNzZXRzAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gAFAhZAUEgcmVtb3RlIGhhcyByZXF1ZXN0ZWQgWENNIHZlcnNpb24gY2hhbmdlIG5vdGlmaWNhdGlvbiBmcm9tIHVzIGFuZCB3ZSBoYXZlIGhvbm9yZWQgaXQuHQFBIHZlcnNpb24gaW5mb3JtYXRpb24gbWVzc2FnZSBpcyBzZW50IHRvIHRoZW0gYW5kIGl0cyBjb3N0IGlzIGluY2x1ZGVkLlhWZXJzaW9uTm90aWZ5UmVxdWVzdGVkDAEsZGVzdGluYXRpb26cASBMb2NhdGlvbgABEGNvc3TBBQEYQXNzZXRzAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gAFQQ9AVdlIGhhdmUgcmVxdWVzdGVkIHRoYXQgYSByZW1vdGUgY2hhaW4gc2VuZCB1cyBYQ00gdmVyc2lvbiBjaGFuZ2Ugbm90aWZpY2F0aW9ucy5gVmVyc2lvbk5vdGlmeVVucmVxdWVzdGVkDAEsZGVzdGluYXRpb26cASBMb2NhdGlvbgABEGNvc3TBBQEYQXNzZXRzAAEobWVzc2FnZV9pZAQBHFhjbUhhc2gAFgglAVdlIGhhdmUgcmVxdWVzdGVkIHRoYXQgYSByZW1vdGUgY2hhaW4gc3RvcHMgc2VuZGluZyB1cyBYQ00gdmVyc2lvbiBjaGFuZ2U4bm90aWZpY2F0aW9ucy4gRmVlc1BhaWQIARhwYXlpbmecASBMb2NhdGlvbgABEGZlZXPBBQEYQXNzZXRzABcEMQFGZWVzIHdlcmUgcGFpZCBmcm9tIGEgbG9jYXRpb24gZm9yIGFuIG9wZXJhdGlvbiAob2Z0ZW4gZm9yIHVzaW5nIGBTZW5kWGNtYCkuNEFzc2V0c0NsYWltZWQMARBoYXNoLAEQSDI1NgABGG9yaWdpbpwBIExvY2F0aW9uAAEYYXNzZXRzMQYBPFZlcnNpb25lZEFzc2V0cwAYBMBTb21lIGFzc2V0cyBoYXZlIGJlZW4gY2xhaW1lZCBmcm9tIGFuIGFzc2V0IHRyYXBgVmVyc2lvbk1pZ3JhdGlvbkZpbmlzaGVkBAEcdmVyc2lvbigBKFhjbVZlcnNpb24AGQSEQSBYQ00gdmVyc2lvbiBtaWdyYXRpb24gZmluaXNoZWQuPEFsaWFzQXV0aG9yaXplZAwBHGFsaWFzZXKcASBMb2NhdGlvbgABGHRhcmdldJwBIExvY2F0aW9uAAEYZXhwaXJ5WQMBLE9wdGlvbjx1NjQ+ABoIXQFBbiBgYWxpYXNlcmAgbG9jYXRpb24gd2FzIGF1dGhvcml6ZWQgYnkgYHRhcmdldGAgdG8gYWxpYXMgaXQsIGF1dGhvcml6YXRpb24gdmFsaWQgdW50aWxYYGV4cGlyeWAgYmxvY2sgbnVtYmVyLmRBbGlhc0F1dGhvcml6YXRpb25SZW1vdmVkCAEcYWxpYXNlcpwBIExvY2F0aW9uAAEYdGFyZ2V0nAEgTG9jYXRpb24AGwTMYHRhcmdldGAgcmVtb3ZlZCBhbGlhcyBhdXRob3JpemF0aW9uIGZvciBgYWxpYXNlcmAucEFsaWFzZXNBdXRob3JpemF0aW9uc1JlbW92ZWQEARh0YXJnZXScASBMb2NhdGlvbgAcBKhgdGFyZ2V0YCByZW1vdmVkIGFsbCBhbGlhcyBhdXRob3JpemF0aW9ucy4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSFCBAsc3RhZ2luZ194Y20IdjUYdHJhaXRzHE91dGNvbWUAAQwgQ29tcGxldGUEARB1c2Vk5AEYV2VpZ2h0AAAAKEluY29tcGxldGUIARB1c2Vk5AEYV2VpZ2h0AAEUZXJyb3KJCAFASW5zdHJ1Y3Rpb25FcnJvcgABABRFcnJvcgQAiQgBQEluc3RydWN0aW9uRXJyb3IAAgAAiQgQLHN0YWdpbmdfeGNtCHY1GHRyYWl0c0BJbnN0cnVjdGlvbkVycm9yAAAIARRpbmRleAgBQEluc3RydWN0aW9uSW5kZXgAARRlcnJvcuUFARRFcnJvcgAAjQgQDHhjbQh2Mxh0cmFpdHMkU2VuZEVycm9yAAEcNE5vdEFwcGxpY2FibGUAAAAkVHJhbnNwb3J0AAEAKFVucm91dGFibGUAAgBYRGVzdGluYXRpb25VbnN1cHBvcnRlZAADAFRFeGNlZWRzTWF4TWVzc2FnZVNpemUABAA8TWlzc2luZ0FyZ3VtZW50AAUAEEZlZXMABgAAkQgMSGN1bXVsdXNfcGFsbGV0X3hjbRhwYWxsZXQURXZlbnQEBFQAAQw0SW52YWxpZEZvcm1hdAQABAEgW3U4OyAzMl0AAAiARG93bndhcmQgbWVzc2FnZSBpcyBpbnZhbGlkIFhDTS4gXFsgaWQgXF1IVW5zdXBwb3J0ZWRWZXJzaW9uBAAEASBbdTg7IDMyXQABCLxEb3dud2FyZCBtZXNzYWdlIGlzIHVuc3VwcG9ydGVkIHZlcnNpb24gb2YgWENNLiBcWyBpZCBcXUBFeGVjdXRlZERvd253YXJkCAAEASBbdTg7IDMyXQAAhQgBHE91dGNvbWUAAgjERG93bndhcmQgbWVzc2FnZSBleGVjdXRlZCB3aXRoIHRoZSBnaXZlbiBvdXRjb21lLkRcWyBpZCwgb3V0Y29tZSBcXQR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldJUIDGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlGHBhbGxldBRFdmVudAQEVAABBDxYY21wTWVzc2FnZVNlbnQEATBtZXNzYWdlX2hhc2gEARxYY21IYXNoAAAEwEFuIEhSTVAgbWVzc2FnZSB3YXMgc2VudCB0byBhIHNpYmxpbmcgcGFyYWNoYWluLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldJkIDFBwYWxsZXRfbWVzc2FnZV9xdWV1ZRhwYWxsZXQURXZlbnQEBFQAARBAUHJvY2Vzc2luZ0ZhaWxlZAwBCGlkLAEQSDI1NgSUVGhlIGBibGFrZTJfMjU2YCBoYXNoIG9mIHRoZSBtZXNzYWdlLgEYb3JpZ2lucQYBSE1lc3NhZ2VPcmlnaW5PZjxUPgRkVGhlIHF1ZXVlIG9mIHRoZSBtZXNzYWdlLgEUZXJyb3KdCAFMUHJvY2Vzc01lc3NhZ2VFcnJvchBgVGhlIGVycm9yIHRoYXQgb2NjdXJyZWQuAEkBVGhpcyBlcnJvciBpcyBwcmV0dHkgb3BhcXVlLiBNb3JlIGZpbmUtZ3JhaW5lZCBlcnJvcnMgbmVlZCB0byBiZSBlbWl0dGVkIGFzIGV2ZW50c2hieSB0aGUgYE1lc3NhZ2VQcm9jZXNzb3JgLgAEVQFNZXNzYWdlIGRpc2NhcmRlZCBkdWUgdG8gYW4gZXJyb3IgaW4gdGhlIGBNZXNzYWdlUHJvY2Vzc29yYCAodXN1YWxseSBhIGZvcm1hdCBlcnJvcikuJFByb2Nlc3NlZBABCGlkLAEQSDI1NgSUVGhlIGBibGFrZTJfMjU2YCBoYXNoIG9mIHRoZSBtZXNzYWdlLgEYb3JpZ2lucQYBSE1lc3NhZ2VPcmlnaW5PZjxUPgRkVGhlIHF1ZXVlIG9mIHRoZSBtZXNzYWdlLgEsd2VpZ2h0X3VzZWTkARhXZWlnaHQEwEhvdyBtdWNoIHdlaWdodCB3YXMgdXNlZCB0byBwcm9jZXNzIHRoZSBtZXNzYWdlLgEcc3VjY2Vzc0QBEGJvb2wYiFdoZXRoZXIgdGhlIG1lc3NhZ2Ugd2FzIHByb2Nlc3NlZC4ASQFOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBtZWFuIHRoYXQgdGhlIHVuZGVybHlpbmcgYE1lc3NhZ2VQcm9jZXNzb3JgIHdhcyBpbnRlcm5hbGx5NQFzdWNjZXNzZnVsLiBJdCAqc29sZWx5KiBtZWFucyB0aGF0IHRoZSBNUSBwYWxsZXQgd2lsbCB0cmVhdCB0aGlzIGFzIGEgc3VjY2Vzc00BY29uZGl0aW9uIGFuZCBkaXNjYXJkIHRoZSBtZXNzYWdlLiBBbnkgaW50ZXJuYWwgZXJyb3IgbmVlZHMgdG8gYmUgZW1pdHRlZCBhcyBldmVudHNoYnkgdGhlIGBNZXNzYWdlUHJvY2Vzc29yYC4BBFRNZXNzYWdlIGlzIHByb2Nlc3NlZC5IT3ZlcndlaWdodEVucXVldWVkEAEIaWQEASBbdTg7IDMyXQSUVGhlIGBibGFrZTJfMjU2YCBoYXNoIG9mIHRoZSBtZXNzYWdlLgEYb3JpZ2lucQYBSE1lc3NhZ2VPcmlnaW5PZjxUPgRkVGhlIHF1ZXVlIG9mIHRoZSBtZXNzYWdlLgEocGFnZV9pbmRleCgBJFBhZ2VJbmRleARgVGhlIHBhZ2Ugb2YgdGhlIG1lc3NhZ2UuATRtZXNzYWdlX2luZGV4KAEcVDo6U2l6ZQSkVGhlIGluZGV4IG9mIHRoZSBtZXNzYWdlIHdpdGhpbiB0aGUgcGFnZS4CBIxNZXNzYWdlIHBsYWNlZCBpbiBvdmVyd2VpZ2h0IHF1ZXVlLihQYWdlUmVhcGVkCAEYb3JpZ2lucQYBSE1lc3NhZ2VPcmlnaW5PZjxUPgRYVGhlIHF1ZXVlIG9mIHRoZSBwYWdlLgEUaW5kZXgoASRQYWdlSW5kZXgEWFRoZSBpbmRleCBvZiB0aGUgcGFnZS4DBFRUaGlzIHBhZ2Ugd2FzIHJlYXBlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSdCBA0ZnJhbWVfc3VwcG9ydBh0cmFpdHMgbWVzc2FnZXNMUHJvY2Vzc01lc3NhZ2VFcnJvcgABGCRCYWRGb3JtYXQAAAAcQ29ycnVwdAABACxVbnN1cHBvcnRlZAACAChPdmVyd2VpZ2h0BADkARhXZWlnaHQAAwAUWWllbGQABABEU3RhY2tMaW1pdFJlYWNoZWQABQAAoQgMRHBhbGxldF9taWdyYXRpb25zGHBhbGxldBRFdmVudAQEVAABIDhVcGdyYWRlU3RhcnRlZAQBKG1pZ3JhdGlvbnMoAQx1MzIQ0FRoZSBudW1iZXIgb2YgbWlncmF0aW9ucyB0aGF0IHRoaXMgdXBncmFkZSBjb250YWlucy4AQQFUaGlzIGNhbiBiZSB1c2VkIHRvIGRlc2lnbiBhIHByb2dyZXNzIGluZGljYXRvciBpbiBjb21iaW5hdGlvbiB3aXRoIGNvdW50aW5nIHRoZcxgTWlncmF0aW9uQ29tcGxldGVkYCBhbmQgYE1pZ3JhdGlvblNraXBwZWRgIGV2ZW50cy4ADGhBIFJ1bnRpbWUgdXBncmFkZSBzdGFydGVkLgD4SXRzIGVuZCBpcyBpbmRpY2F0ZWQgYnkgYFVwZ3JhZGVDb21wbGV0ZWRgIG9yIGBVcGdyYWRlRmFpbGVkYC5AVXBncmFkZUNvbXBsZXRlZAABDJhUaGUgY3VycmVudCBydW50aW1lIHVwZ3JhZGUgY29tcGxldGVkLgAdAVRoaXMgaW1wbGllcyB0aGF0IGFsbCBvZiBpdHMgbWlncmF0aW9ucyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IGFzIHdlbGwuNFVwZ3JhZGVGYWlsZWQAAgxcUnVudGltZSB1cGdyYWRlIGZhaWxlZC4A6FRoaXMgaXMgdmVyeSBiYWQgYW5kIHdpbGwgcmVxdWlyZSBnb3Zlcm5hbmNlIGludGVydmVudGlvbi5ATWlncmF0aW9uU2tpcHBlZAQBFGluZGV4KAEMdTMyBCkBVGhlIGluZGV4IG9mIHRoZSBza2lwcGVkIG1pZ3JhdGlvbiB3aXRoaW4gdGhlIFtgQ29uZmlnOjpNaWdyYXRpb25zYF0gbGlzdC4DBAkBQSBtaWdyYXRpb24gd2FzIHNraXBwZWQgc2luY2UgaXQgd2FzIGFscmVhZHkgZXhlY3V0ZWQgaW4gdGhlIHBhc3QuRE1pZ3JhdGlvbkFkdmFuY2VkCAEUaW5kZXgoAQx1MzIECQFUaGUgaW5kZXggb2YgdGhlIG1pZ3JhdGlvbiB3aXRoaW4gdGhlIFtgQ29uZmlnOjpNaWdyYXRpb25zYF0gbGlzdC4BEHRvb2soAURCbG9ja051bWJlckZvcjxUPgTUVGhlIG51bWJlciBvZiBibG9ja3MgdGhhdCB0aGlzIG1pZ3JhdGlvbiB0b29rIHNvIGZhci4EBFxBIG1pZ3JhdGlvbiBwcm9ncmVzc2VkLkhNaWdyYXRpb25Db21wbGV0ZWQIARRpbmRleCgBDHUzMgQJAVRoZSBpbmRleCBvZiB0aGUgbWlncmF0aW9uIHdpdGhpbiB0aGUgW2BDb25maWc6Ok1pZ3JhdGlvbnNgXSBsaXN0LgEQdG9vaygBREJsb2NrTnVtYmVyRm9yPFQ+BNRUaGUgbnVtYmVyIG9mIGJsb2NrcyB0aGF0IHRoaXMgbWlncmF0aW9uIHRvb2sgc28gZmFyLgUEWEEgTWlncmF0aW9uIGNvbXBsZXRlZC48TWlncmF0aW9uRmFpbGVkCAEUaW5kZXgoAQx1MzIECQFUaGUgaW5kZXggb2YgdGhlIG1pZ3JhdGlvbiB3aXRoaW4gdGhlIFtgQ29uZmlnOjpNaWdyYXRpb25zYF0gbGlzdC4BEHRvb2soAURCbG9ja051bWJlckZvcjxUPgTUVGhlIG51bWJlciBvZiBibG9ja3MgdGhhdCB0aGlzIG1pZ3JhdGlvbiB0b29rIHNvIGZhci4GDExBIE1pZ3JhdGlvbiBmYWlsZWQuAE0BVGhpcyBpbXBsaWVzIHRoYXQgdGhlIHdob2xlIHVwZ3JhZGUgZmFpbGVkIGFuZCBnb3Zlcm5hbmNlIGludGVydmVudGlvbiBpcyByZXF1aXJlZC48SGlzdG9yaWNDbGVhcmVkBAEsbmV4dF9jdXJzb3KRBgE8T3B0aW9uPFZlYzx1OD4+BOhTaG91bGQgYmUgcGFzc2VkIHRvIGBjbGVhcl9oaXN0b3JpY2AgaW4gYSBzdWNjZXNzaXZlIGNhbGwuBwTIVGhlIHNldCBvZiBoaXN0b3JpY2FsIG1pZ3JhdGlvbnMgaGFzIGJlZW4gY2xlYXJlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXSlCAwgb3JtbF94Y20YbW9kdWxlFEV2ZW50BARUAAEEEFNlbnQIAQh0b5wBIExvY2F0aW9uAAEcbWVzc2FnZbUFARxYY208KCk+AAAEhFhDTSBtZXNzYWdlIHNlbnQuIFxbdG8sIG1lc3NhZ2VcXQR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldKkIDDBvcm1sX3h0b2tlbnMYbW9kdWxlFEV2ZW50BARUAAEERFRyYW5zZmVycmVkQXNzZXRzEAEYc2VuZGVyAAEwVDo6QWNjb3VudElkAAEYYXNzZXRzwQUBGEFzc2V0cwABDGZlZckFARRBc3NldAABEGRlc3ScASBMb2NhdGlvbgAABHRUcmFuc2ZlcnJlZCBgQXNzZXRgIHdpdGggZmVlLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldK0IDExvcm1sX3Vua25vd25fdG9rZW5zGG1vZHVsZRRFdmVudAABCCREZXBvc2l0ZWQIARRhc3NldMkFARRBc3NldAABDHdob5wBIExvY2F0aW9uAAAEQERlcG9zaXQgc3VjY2Vzcy4kV2l0aGRyYXduCAEUYXNzZXTJBQEUQXNzZXQAAQx3aG+cASBMb2NhdGlvbgABBERXaXRoZHJhdyBzdWNjZXNzLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldLEIDGRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uGHBhbGxldBRFdmVudAQEVAABKEBOZXdJbnZ1bG5lcmFibGVzBAE0aW52dWxuZXJhYmxlc0gBRFZlYzxUOjpBY2NvdW50SWQ+AAAEbE5ldyBJbnZ1bG5lcmFibGVzIHdlcmUgc2V0LkRJbnZ1bG5lcmFibGVBZGRlZAQBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAAQR0QSBuZXcgSW52dWxuZXJhYmxlIHdhcyBhZGRlZC5MSW52dWxuZXJhYmxlUmVtb3ZlZAQBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQAAgRwQW4gSW52dWxuZXJhYmxlIHdhcyByZW1vdmVkLlBOZXdEZXNpcmVkQ2FuZGlkYXRlcwQBSGRlc2lyZWRfY2FuZGlkYXRlcygBDHUzMgADBKRUaGUgbnVtYmVyIG9mIGRlc2lyZWQgY2FuZGlkYXRlcyB3YXMgc2V0LkBOZXdDYW5kaWRhY3lCb25kBAEsYm9uZF9hbW91bnRAATBCYWxhbmNlT2Y8VD4ABARsVGhlIGNhbmRpZGFjeSBib25kIHdhcyBzZXQuOENhbmRpZGF0ZUFkZGVkCAEoYWNjb3VudF9pZAABMFQ6OkFjY291bnRJZAABHGRlcG9zaXRAATBCYWxhbmNlT2Y8VD4ABQRcQSBuZXcgY2FuZGlkYXRlIGpvaW5lZC5QQ2FuZGlkYXRlQm9uZFVwZGF0ZWQIAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAEcZGVwb3NpdEABMEJhbGFuY2VPZjxUPgAGBHBCb25kIG9mIGEgY2FuZGlkYXRlIHVwZGF0ZWQuQENhbmRpZGF0ZVJlbW92ZWQEAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAcEYEEgY2FuZGlkYXRlIHdhcyByZW1vdmVkLkRDYW5kaWRhdGVSZXBsYWNlZAwBDG9sZAABMFQ6OkFjY291bnRJZAABDG5ldwABMFQ6OkFjY291bnRJZAABHGRlcG9zaXRAATBCYWxhbmNlT2Y8VD4ACAT0QW4gYWNjb3VudCB3YXMgcmVwbGFjZWQgaW4gdGhlIGNhbmRpZGF0ZSBsaXN0IGJ5IGFub3RoZXIgb25lLmhJbnZhbGlkSW52dWxuZXJhYmxlU2tpcHBlZAQBKGFjY291bnRfaWQAATBUOjpBY2NvdW50SWQACQhVAUFuIGFjY291bnQgd2FzIHVuYWJsZSB0byBiZSBhZGRlZCB0byB0aGUgSW52dWxuZXJhYmxlcyBiZWNhdXNlIHRoZXkgZGlkIG5vdCBoYXZlIGtleXPIcmVnaXN0ZXJlZC4gT3RoZXIgSW52dWxuZXJhYmxlcyBtYXkgaGF2ZSBiZWVuIHNldC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXS1CAw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0FEV2ZW50BARUAAEQKE5ld1Nlc3Npb24EATRzZXNzaW9uX2luZGV4KAEwU2Vzc2lvbkluZGV4AAAIOQFOZXcgc2Vzc2lvbiBoYXMgaGFwcGVuZWQuIE5vdGUgdGhhdCB0aGUgYXJndW1lbnQgaXMgdGhlIHNlc3Npb24gaW5kZXgsIG5vdCB0aGWcYmxvY2sgbnVtYmVyIGFzIHRoZSB0eXBlIG1pZ2h0IHN1Z2dlc3QuJE5ld1F1ZXVlZAABCEkBVGhlIGBOZXdTZXNzaW9uYCBldmVudCBpbiB0aGUgY3VycmVudCBibG9jayBhbHNvIGltcGxpZXMgYSBuZXcgdmFsaWRhdG9yIHNldCB0byBiZRxxdWV1ZWQuRFZhbGlkYXRvckRpc2FibGVkBAEkdmFsaWRhdG9yAAE4VDo6VmFsaWRhdG9ySWQAAgRwVmFsaWRhdG9yIGhhcyBiZWVuIGRpc2FibGVkLkhWYWxpZGF0b3JSZWVuYWJsZWQEASR2YWxpZGF0b3IAAThUOjpWYWxpZGF0b3JJZAADBHhWYWxpZGF0b3IgaGFzIGJlZW4gcmUtZW5hYmxlZC4EfFRoZSBgRXZlbnRgIGVudW0gb2YgdGhpcyBwYWxsZXS5CAxEcGFsbGV0X2VtYV9vcmFjbGUYcGFsbGV0FEV2ZW50BARUAAEcQEFkZGVkVG9XaGl0ZWxpc3QIARhzb3VyY2UhAQEYU291cmNlAAEYYXNzZXRzqQIBSChBc3NldElkLCBBc3NldElkKQAABIhPcmFjbGUgd2FzIGFkZGVkIHRvIHRoZSB3aGl0ZWxpc3QuUFJlbW92ZWRGcm9tV2hpdGVsaXN0CAEYc291cmNlIQEBGFNvdXJjZQABGGFzc2V0c6kCAUgoQXNzZXRJZCwgQXNzZXRJZCkAAQSYT3JhY2xlIHdhcyByZW1vdmVkIGZyb20gdGhlIHdoaXRlbGlzdC40T3JhY2xlVXBkYXRlZAwBGHNvdXJjZSEBARhTb3VyY2UAARhhc3NldHOpAgFIKEFzc2V0SWQsIEFzc2V0SWQpAAEcdXBkYXRlc70IAXRCVHJlZU1hcDxPcmFjbGVQZXJpb2QsIFByaWNlPgACBGBPcmFjbGUgcHJpY2Ugd2FzIHVwZGF0ZWRgRXh0ZXJuYWxTb3VyY2VSZWdpc3RlcmVkBAEYc291cmNlIQEBGFNvdXJjZQADBKRBbiBleHRlcm5hbCBvcmFjbGUgc291cmNlIHdhcyByZWdpc3RlcmVkLlRFeHRlcm5hbFNvdXJjZVJlbW92ZWQEARhzb3VyY2UhAQEYU291cmNlAAQEmEFuIGV4dGVybmFsIG9yYWNsZSBzb3VyY2Ugd2FzIHJlbW92ZWQuWEF1dGhvcml6ZWRBY2NvdW50QWRkZWQMARhzb3VyY2UhAQEYU291cmNlAAEQcGFpcqkCAUgoQXNzZXRJZCwgQXNzZXRJZCkAARxhY2NvdW50AAEwVDo6QWNjb3VudElkAAUE9EFuIGFjY291bnQgd2FzIGF1dGhvcml6ZWQgdG8gdXBkYXRlIHRoZSBnaXZlbiAoc291cmNlLCBwYWlyKS5gQXV0aG9yaXplZEFjY291bnRSZW1vdmVkDAEYc291cmNlIQEBGFNvdXJjZQABEHBhaXKpAgFIKEFzc2V0SWQsIEFzc2V0SWQpAAEcYWNjb3VudAABMFQ6OkFjY291bnRJZAAGBA0BQW4gYXV0aG9yaXphdGlvbiB3YXMgcmVtb3ZlZCBmb3IgdGhlIGdpdmVuIChzb3VyY2UsIHBhaXIsIGFjY291bnQpLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldL0IBCBCVHJlZU1hcAgESwEhAwRWAcEIAAQAxQgAAADBCAw0aHlkcmFfZHhfbWF0aBRyYXRpbxRSYXRpbwAACAEEbkABEHUxMjgAAQRkQAEQdTEyOAAAxQgAAALJCADJCAAABAghA8EIAM0IDEBwYWxsZXRfYnJvYWRjYXN0GHBhbGxldBRFdmVudAQEVAABBCBTd2FwcGVkMyABHHN3YXBwZXIAATBUOjpBY2NvdW50SWQAARhmaWxsZXIAATBUOjpBY2NvdW50SWQAASxmaWxsZXJfdHlwZdEIARhGaWxsZXIAASRvcGVyYXRpb27VCAE4VHJhZGVPcGVyYXRpb24AARhpbnB1dHPZCAEoVmVjPEFzc2V0PgABHG91dHB1dHPZCAEoVmVjPEFzc2V0PgABEGZlZXPhCAFYVmVjPEZlZTxUOjpBY2NvdW50SWQ+PgABPG9wZXJhdGlvbl9zdGFja+0IAUhWZWM8RXhlY3V0aW9uVHlwZT4AACA8VHJhZGUgZXhlY3V0ZWQuAPBTd2FwcGVkMyBpcyBhIGZpeGVkIGFuZCByZW5hbWVkIHZlcnNpb24gb2Ygb3JpZ2luYWwgU3dhcHBlZCwFAWFzIFN3YXBwZWQgY29udGFpbmVkIHdyb25nIGlucHV0L291dHB1dCBhbW91bnRzIGZvciBYWUsgYnV5IHRyYWRlAPRTd2FwcGVkMyBpcyBhIGZpeGVkIGFuZCByZW5hbWVkIHZlcnNpb24gb2Ygb3JpZ2luYWwgU3dhcHBlZDMs4GFzIFN3YXBwZWQgY29udGFpbmVkIHdyb25nIGZpbGxlciBhY2NvdW50IG9uIEFBVkUgdHJhZGVzAAR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldNEIDEBwYWxsZXRfYnJvYWRjYXN0FHR5cGVzGEZpbGxlcgABHCBPbW5pcG9vbAAAAChTdGFibGVzd2FwBAAoARxBc3NldElkAAEADFhZSwQAKAEcQXNzZXRJZAACAAxMQlAAAwAMT1RDBAAoAShPdGNPcmRlcklkAAQAEEFBVkUABQAMSFNNAAYAANUIDEBwYWxsZXRfYnJvYWRjYXN0FHR5cGVzOFRyYWRlT3BlcmF0aW9uAAEUHEV4YWN0SW4AAAAgRXhhY3RPdXQAAQAUTGltaXQAAgAwTGlxdWlkaXR5QWRkAAMAPExpcXVpZGl0eVJlbW92ZQAEAADZCAAAAt0IAN0IDEBwYWxsZXRfYnJvYWRjYXN0FHR5cGVzFEFzc2V0AAAIARRhc3NldCgBHEFzc2V0SWQAARhhbW91bnRAARxCYWxhbmNlAADhCAAAAuUIAOUIDEBwYWxsZXRfYnJvYWRjYXN0FHR5cGVzDEZlZQQkQWNjb3VudElkAQAADAEUYXNzZXQoARxBc3NldElkAAEYYW1vdW50QAEcQmFsYW5jZQABLGRlc3RpbmF0aW9u6QgBWERlc3RpbmF0aW9uPEFjY291bnRJZD4AAOkIDEBwYWxsZXRfYnJvYWRjYXN0FHR5cGVzLERlc3RpbmF0aW9uBCRBY2NvdW50SWQBAAEIHEFjY291bnQEAAABJEFjY291bnRJZAAAABhCdXJuZWQAAQAA7QgAAALxCADxCAxAcGFsbGV0X2Jyb2FkY2FzdBR0eXBlczRFeGVjdXRpb25UeXBlAAEYGFJvdXRlcgQAKAFESW5jcmVtZW50YWxJZFR5cGUAAAAMRENBCAAoAShTY2hlZHVsZUlkAAAoAURJbmNyZW1lbnRhbElkVHlwZQABABRCYXRjaAQAKAFESW5jcmVtZW50YWxJZFR5cGUAAgAgT21uaXBvb2wEACgBREluY3JlbWVudGFsSWRUeXBlAAMALFhjbUV4Y2hhbmdlBAAoAURJbmNyZW1lbnRhbElkVHlwZQAEAAxYY20IAAQBIFt1ODsgMzJdAAAoAURJbmNyZW1lbnRhbElkVHlwZQAFAAD1CAxQcGFsbGV0X2ZlZV9wcm9jZXNzb3IYcGFsbGV0FEV2ZW50BARUAAEMLEZlZVJlY2VpdmVkDAEUYXNzZXQoAShUOjpBc3NldElkAAEYYW1vdW50QAEcQmFsYW5jZQABGHRyYWRlcs0BAVBPcHRpb248VDo6QWNjb3VudElkPgAABGBGZWUgcmVjZWl2ZWQgZnJvbSB0cmFkZS4kQ29udmVydGVkDAEgYXNzZXRfaWQoAShUOjpBc3NldElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABHGhkeF9vdXRAARxCYWxhbmNlAAEEvEFzc2V0IGNvbnZlcnRlZCB0byBIRFggYW5kIGRpc3RyaWJ1dGVkIHRvIHBvdHMuQENvbnZlcnNpb25GYWlsZWQIASBhc3NldF9pZCgBKFQ6OkFzc2V0SWQAARhyZWFzb24hBwE0RGlzcGF0Y2hFcnJvcgACBLBDb252ZXJzaW9uIGZhaWxlZCAobG9nZ2VkIGJ1dCBub3QgYmxvY2tpbmcpLgR8VGhlIGBFdmVudGAgZW51bSBvZiB0aGlzIHBhbGxldPkICDBmcmFtZV9zeXN0ZW0UUGhhc2UAAQw4QXBwbHlFeHRyaW5zaWMEACgBDHUzMgAAADBGaW5hbGl6YXRpb24AAQA4SW5pdGlhbGl6YXRpb24AAgAA/QgIMGZyYW1lX3N5c3RlbVhMYXN0UnVudGltZVVwZ3JhZGVJbmZvAAAIATBzcGVjX3ZlcnNpb25sAUxjb2RlYzo6Q29tcGFjdDx1MzI+AAEkc3BlY19uYW1lVQgBRENvdzwnc3RhdGljLCBzdHI+AAABCQgwZnJhbWVfc3lzdGVtYENvZGVVcGdyYWRlQXV0aG9yaXphdGlvbgQEVAAACAEkY29kZV9oYXNoLAEcVDo6SGFzaAABNGNoZWNrX3ZlcnNpb25EARBib29sAAAFCQwwZnJhbWVfc3lzdGVtGGxpbWl0czBCbG9ja1dlaWdodHMAAAwBKGJhc2VfYmxvY2vkARhXZWlnaHQAASRtYXhfYmxvY2vkARhXZWlnaHQAASRwZXJfY2xhc3MJCQGEUGVyRGlzcGF0Y2hDbGFzczxXZWlnaHRzUGVyQ2xhc3M+AAAJCQw0ZnJhbWVfc3VwcG9ydCBkaXNwYXRjaEBQZXJEaXNwYXRjaENsYXNzBARUAQ0JAAwBGG5vcm1hbA0JAQRUAAEsb3BlcmF0aW9uYWwNCQEEVAABJG1hbmRhdG9yeQ0JAQRUAAANCQwwZnJhbWVfc3lzdGVtGGxpbWl0czxXZWlnaHRzUGVyQ2xhc3MAABABOGJhc2VfZXh0cmluc2lj5AEYV2VpZ2h0AAE0bWF4X2V4dHJpbnNpY/0FAThPcHRpb248V2VpZ2h0PgABJG1heF90b3RhbP0FAThPcHRpb248V2VpZ2h0PgABIHJlc2VydmVk/QUBOE9wdGlvbjxXZWlnaHQ+AAARCQwwZnJhbWVfc3lzdGVtGGxpbWl0cyxCbG9ja0xlbmd0aAAABAEMbWF4FQkBVFBlckRpc3BhdGNoQ2xhc3M8dTMyPgAAFQkMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2hAUGVyRGlzcGF0Y2hDbGFzcwQEVAEoAAwBGG5vcm1hbCgBBFQAASxvcGVyYXRpb25hbCgBBFQAASRtYW5kYXRvcnkoAQRUAAAZCQgoc3Bfd2VpZ2h0czxSdW50aW1lRGJXZWlnaHQAAAgBEHJlYWQYAQx1NjQAARR3cml0ZRgBDHU2NAAAHQkIKHNwX3ZlcnNpb244UnVudGltZVZlcnNpb24AACABJHNwZWNfbmFtZVUIAURDb3c8J3N0YXRpYywgc3RyPgABJGltcGxfbmFtZVUIAURDb3c8J3N0YXRpYywgc3RyPgABRGF1dGhvcmluZ192ZXJzaW9uKAEMdTMyAAEwc3BlY192ZXJzaW9uKAEMdTMyAAEwaW1wbF92ZXJzaW9uKAEMdTMyAAEQYXBpcyEJARxBcGlzVmVjAAFMdHJhbnNhY3Rpb25fdmVyc2lvbigBDHUzMgABOHN5c3RlbV92ZXJzaW9uCAEIdTgAACEJBAxDb3cEBFQBJQkABAAlCQAAACUJAAACKQkAKQkAAAQIIQEoAC0JDDBmcmFtZV9zeXN0ZW0YcGFsbGV0FEVycm9yBARUAAEkPEludmFsaWRTcGVjTmFtZQAACBEBVGhlIG5hbWUgb2Ygc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBtYXRjaCBiZXR3ZWVuIHRoZSBjdXJyZW50IHJ1bnRpbWVQYW5kIHRoZSBuZXcgcnVudGltZS5oU3BlY1ZlcnNpb25OZWVkc1RvSW5jcmVhc2UAAQhBAVRoZSBzcGVjaWZpY2F0aW9uIHZlcnNpb24gaXMgbm90IGFsbG93ZWQgdG8gZGVjcmVhc2UgYmV0d2VlbiB0aGUgY3VycmVudCBydW50aW1lUGFuZCB0aGUgbmV3IHJ1bnRpbWUudEZhaWxlZFRvRXh0cmFjdFJ1bnRpbWVWZXJzaW9uAAIM7EZhaWxlZCB0byBleHRyYWN0IHRoZSBydW50aW1lIHZlcnNpb24gZnJvbSB0aGUgbmV3IHJ1bnRpbWUuAAkBRWl0aGVyIGNhbGxpbmcgYENvcmVfdmVyc2lvbmAgb3IgZGVjb2RpbmcgYFJ1bnRpbWVWZXJzaW9uYCBmYWlsZWQuTE5vbkRlZmF1bHRDb21wb3NpdGUAAwT8U3VpY2lkZSBjYWxsZWQgd2hlbiB0aGUgYWNjb3VudCBoYXMgbm9uLWRlZmF1bHQgY29tcG9zaXRlIGRhdGEuPE5vblplcm9SZWZDb3VudAAEBDUBVGhlcmUgaXMgYSBub24temVybyByZWZlcmVuY2UgY291bnQgcHJldmVudGluZyB0aGUgYWNjb3VudCBmcm9tIGJlaW5nIHB1cmdlZC4wQ2FsbEZpbHRlcmVkAAUE0FRoZSBvcmlnaW4gZmlsdGVyIHByZXZlbnQgdGhlIGNhbGwgdG8gYmUgZGlzcGF0Y2hlZC5sTXVsdGlCbG9ja01pZ3JhdGlvbnNPbmdvaW5nAAYEVQFBIG11bHRpLWJsb2NrIG1pZ3JhdGlvbiBpcyBvbmdvaW5nIGFuZCBwcmV2ZW50cyB0aGUgY3VycmVudCBjb2RlIGZyb20gYmVpbmcgcmVwbGFjZWQuRE5vdGhpbmdBdXRob3JpemVkAAcEWE5vIHVwZ3JhZGUgYXV0aG9yaXplZC4wVW5hdXRob3JpemVkAAgElFRoZSBzdWJtaXR0ZWQgY29kZSBpcyBub3QgYXV0aG9yaXplZC4EbEVycm9yIGZvciB0aGUgU3lzdGVtIHBhbGxldDEJEChzcF9ydW50aW1lHGdlbmVyaWMUYmxvY2sUQmxvY2sIGEhlYWRlcgGRBCRFeHRyaW5zaWMBNQkACAEYaGVhZGVykQQBGEhlYWRlcgABKGV4dHJpbnNpY3NFCQE4VmVjPEV4dHJpbnNpYz4AADUJDERmcF9zZWxmX2NvbnRhaW5lZEx1bmNoZWNrZWRfZXh0cmluc2ljSFVuY2hlY2tlZEV4dHJpbnNpYxAcQWRkcmVzcwEAEENhbGwBDCRTaWduYXR1cmUBlQEkRXh0ZW5zaW9uATkJAAQAQQkBAQFnZW5lcmljOjpVbmNoZWNrZWRFeHRyaW5zaWM8QWRkcmVzcywgQ2FsbCwgU2lnbmF0dXJlLCBFeHRlbnNpb24+AAA5CQh0Y3VtdWx1c19wYWxsZXRfd2VpZ2h0X3JlY2xhaW1QU3RvcmFnZVdlaWdodFJlY2xhaW0IBFQABFMBPQkABAA9CQEEUwAAPQkAAAQowQbFBskGzQbRBtkG3QbhBuUG6QYAQQkQKHNwX3J1bnRpbWUcZ2VuZXJpY0x1bmNoZWNrZWRfZXh0cmluc2ljSFVuY2hlY2tlZEV4dHJpbnNpYxAcQWRkcmVzcwEAEENhbGwBDCRTaWduYXR1cmUBlQEURXh0cmEBOQkABAAUAAAARQkAAAI1CQBJCQxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUAU0JBFMAAAQAVQkBGFZlYzxUPgAATQkMPHBhbGxldF9iYWxhbmNlcxR0eXBlcyxCYWxhbmNlTG9jawQcQmFsYW5jZQFAAAwBCGlkIQEBOExvY2tJZGVudGlmaWVyAAEYYW1vdW50QAEcQmFsYW5jZQABHHJlYXNvbnNRCQEcUmVhc29ucwAAUQkMPHBhbGxldF9iYWxhbmNlcxR0eXBlcxxSZWFzb25zAAEMDEZlZQAAABBNaXNjAAEADEFsbAACAABVCQAAAk0JAFkJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBXQkEUwAABABhCQEYVmVjPFQ+AABdCQw8cGFsbGV0X2JhbGFuY2VzFHR5cGVzLFJlc2VydmVEYXRhCERSZXNlcnZlSWRlbnRpZmllcgEhARxCYWxhbmNlAUAACAEIaWQhAQFEUmVzZXJ2ZUlkZW50aWZpZXIAARhhbW91bnRAARxCYWxhbmNlAABhCQAAAl0JAGUJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBaQkEUwAABACBCQEYVmVjPFQ+AABpCRQ0ZnJhbWVfc3VwcG9ydBh0cmFpdHMYdG9rZW5zEG1pc2MgSWRBbW91bnQICElkAW0JHEJhbGFuY2UBQAAIAQhpZG0JAQhJZAABGGFtb3VudEABHEJhbGFuY2UAAG0JCDxoeWRyYWR4X3J1bnRpbWVEUnVudGltZUhvbGRSZWFzb24AARAgUHJlaW1hZ2UEAHEJAWxwYWxsZXRfcHJlaW1hZ2U6OkhvbGRSZWFzb24ADwBIVGVjaG5pY2FsQ29tbWl0dGVlBAB1CQHscGFsbGV0X2NvbGxlY3RpdmU6OkhvbGRSZWFzb248cGFsbGV0X2NvbGxlY3RpdmU6Okluc3RhbmNlMj4AGQBIU3RhdGVUcmllTWlncmF0aW9uBAB5CQGccGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uOjpIb2xkUmVhc29uACMALFBvbGthZG90WGNtBAB9CQFYcGFsbGV0X3hjbTo6SG9sZFJlYXNvbgBrAABxCQw8cGFsbGV0X3ByZWltYWdlGHBhbGxldChIb2xkUmVhc29uAAEEIFByZWltYWdlAAAAAHUJDERwYWxsZXRfY29sbGVjdGl2ZRhwYWxsZXQoSG9sZFJlYXNvbgQESQABBEhQcm9wb3NhbFN1Ym1pc3Npb24AAAAAeQkMbHBhbGxldF9zdGF0ZV90cmllX21pZ3JhdGlvbhhwYWxsZXQoSG9sZFJlYXNvbgABBDxTbGFzaEZvck1pZ3JhdGUAAAAAfQkMKHBhbGxldF94Y20YcGFsbGV0KEhvbGRSZWFzb24AAQQ4QXV0aG9yaXplQWxpYXMAAAAAgQkAAAJpCQCFCQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAYkJBFMAAAQAjQkBGFZlYzxUPgAAiQkUNGZyYW1lX3N1cHBvcnQYdHJhaXRzGHRva2VucxBtaXNjIElkQW1vdW50CAhJZAFwHEJhbGFuY2UBQAAIAQhpZHABCElkAAEYYW1vdW50QAEcQmFsYW5jZQAAjQkAAAKJCQCRCQw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBRFcnJvcggEVAAESQABMDhWZXN0aW5nQmFsYW5jZQAABJxWZXN0aW5nIGJhbGFuY2UgdG9vIGhpZ2ggdG8gc2VuZCB2YWx1ZS5UTGlxdWlkaXR5UmVzdHJpY3Rpb25zAAEEyEFjY291bnQgbGlxdWlkaXR5IHJlc3RyaWN0aW9ucyBwcmV2ZW50IHdpdGhkcmF3YWwuTEluc3VmZmljaWVudEJhbGFuY2UAAgR4QmFsYW5jZSB0b28gbG93IHRvIHNlbmQgdmFsdWUuSEV4aXN0ZW50aWFsRGVwb3NpdAADBOxWYWx1ZSB0b28gbG93IHRvIGNyZWF0ZSBhY2NvdW50IGR1ZSB0byBleGlzdGVudGlhbCBkZXBvc2l0LjRFeHBlbmRhYmlsaXR5AAQEkFRyYW5zZmVyL3BheW1lbnQgd291bGQga2lsbCBhY2NvdW50LlxFeGlzdGluZ1Zlc3RpbmdTY2hlZHVsZQAFBMxBIHZlc3Rpbmcgc2NoZWR1bGUgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgYWNjb3VudC4sRGVhZEFjY291bnQABgSMQmVuZWZpY2lhcnkgYWNjb3VudCBtdXN0IHByZS1leGlzdC48VG9vTWFueVJlc2VydmVzAAcEuE51bWJlciBvZiBuYW1lZCByZXNlcnZlcyBleGNlZWQgYE1heFJlc2VydmVzYC4wVG9vTWFueUhvbGRzAAgE+E51bWJlciBvZiBob2xkcyBleGNlZWQgYFZhcmlhbnRDb3VudE9mPFQ6OlJ1bnRpbWVIb2xkUmVhc29uPmAuOFRvb01hbnlGcmVlemVzAAkEmE51bWJlciBvZiBmcmVlemVzIGV4Y2VlZCBgTWF4RnJlZXplc2AuTElzc3VhbmNlRGVhY3RpdmF0ZWQACgQBAVRoZSBpc3N1YW5jZSBjYW5ub3QgYmUgbW9kaWZpZWQgc2luY2UgaXQgaXMgYWxyZWFkeSBkZWFjdGl2YXRlZC4kRGVsdGFaZXJvAAsEZFRoZSBkZWx0YSBjYW5ub3QgYmUgemVyby4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQulQkIaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50IFJlbGVhc2VzAAEIJFYxQW5jaWVudAAAAAhWMgABAACZCQyAcGFsbGV0X3RyYW5zYWN0aW9uX211bHRpX3BheW1lbnQYcGFsbGV0FEVycm9yBARUAAE0TFVuc3VwcG9ydGVkQ3VycmVuY3kAAASMU2VsZWN0ZWQgY3VycmVuY3kgaXMgbm90IHN1cHBvcnRlZC4sWmVyb0JhbGFuY2UAAQSMQWNjb3VudCBiYWxhbmNlIHNob3VsZCBiZSBub24temVyby48QWxyZWFkeUFjY2VwdGVkAAIE3EN1cnJlbmN5IGlzIGFscmVhZHkgaW4gdGhlIGxpc3Qgb2YgYWNjZXB0ZWQgY3VycmVuY2llcy5MQ29yZUFzc2V0Tm90QWxsb3dlZAADBG0BSXQgaXMgbm90IGFsbG93ZWQgdG8gYWRkIENvcmUgQXNzZXQgYXMgYWNjZXB0ZWQgY3VycmVuY3kuIENvcmUgYXNzZXQgaXMgYWNjZXB0ZWQgYnkgZGVzaWduLiRaZXJvUHJpY2UABAR4RmFsbGJhY2sgcHJpY2UgY2Fubm90IGJlIHplcm8uVEZhbGxiYWNrUHJpY2VOb3RGb3VuZAAFBHRGYWxsYmFjayBwcmljZSB3YXMgbm90IGZvdW5kLiBPdmVyZmxvdwAGBDRNYXRoIG92ZXJmbG93UEV2bUFjY291bnROb3RBbGxvd2VkAAcE/El0IGlzIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSBwYXltZW50IGN1cnJlbmN5IG9mIGFuIEVWTSBhY2NvdW50LkBFdm1QZXJtaXRFeHBpcmVkAAgETEVWTSBwZXJtaXQgZXhwaXJlZC5ARXZtUGVybWl0SW52YWxpZAAJBFhFVk0gcGVybWl0IGlzIGludmFsaWQubEV2bVBlcm1pdENhbGxFeGVjdXRpb25FcnJvcgAKBFxFVk0gcGVybWl0IGNhbGwgZmFpbGVkLlBFdm1QZXJtaXRSdW5uZXJFcnJvcgALBFxFVk0gcGVybWl0IGNhbGwgZmFpbGVkLnxFdm1QZXJtaXROb25jZUludmFyaWFudFZpb2xhdGVkAAwEpEVWTSBwZXJtaXQgbXVzdCBub3QgYWZmZWN0IGFjY291bnQgbm9uY2UuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lp0JCDxwYWxsZXRfdHJlYXN1cnkgUHJvcG9zYWwIJEFjY291bnRJZAEAHEJhbGFuY2UBQAAQASBwcm9wb3NlcgABJEFjY291bnRJZAABFHZhbHVlQAEcQmFsYW5jZQABLGJlbmVmaWNpYXJ5AAEkQWNjb3VudElkAAEQYm9uZEABHEJhbGFuY2UAAKEJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBKARTAAAEALUCARhWZWM8VD4AAKUJCDxwYWxsZXRfdHJlYXN1cnksU3BlbmRTdGF0dXMUJEFzc2V0S2luZAFwMEFzc2V0QmFsYW5jZQFALEJlbmVmaWNpYXJ5AQAsQmxvY2tOdW1iZXIBKCRQYXltZW50SWQBcAAYAShhc3NldF9raW5kcAEkQXNzZXRLaW5kAAEYYW1vdW50QAEwQXNzZXRCYWxhbmNlAAEsYmVuZWZpY2lhcnkAASxCZW5lZmljaWFyeQABKHZhbGlkX2Zyb20oASxCbG9ja051bWJlcgABJGV4cGlyZV9hdCgBLEJsb2NrTnVtYmVyAAEYc3RhdHVzqQkBXFBheW1lbnRTdGF0ZTxQYXltZW50SWQ+AACpCQg8cGFsbGV0X3RyZWFzdXJ5MFBheW1lbnRTdGF0ZQQISWQBcAEMHFBlbmRpbmcAAAAkQXR0ZW1wdGVkBAEIaWRwAQhJZAABABhGYWlsZWQAAgAArQkINGZyYW1lX3N1cHBvcnQgUGFsbGV0SWQAAAQAIQEBHFt1ODsgOF0AALEJDDxwYWxsZXRfdHJlYXN1cnkYcGFsbGV0FEVycm9yCARUAARJAAEsMEludmFsaWRJbmRleAAABKxObyBwcm9wb3NhbCwgYm91bnR5IG9yIHNwZW5kIGF0IHRoYXQgaW5kZXguQFRvb01hbnlBcHByb3ZhbHMAAQSAVG9vIG1hbnkgYXBwcm92YWxzIGluIHRoZSBxdWV1ZS5YSW5zdWZmaWNpZW50UGVybWlzc2lvbgACCEUBVGhlIHNwZW5kIG9yaWdpbiBpcyB2YWxpZCBidXQgdGhlIGFtb3VudCBpdCBpcyBhbGxvd2VkIHRvIHNwZW5kIGlzIGxvd2VyIHRoYW4gdGhlTGFtb3VudCB0byBiZSBzcGVudC5MUHJvcG9zYWxOb3RBcHByb3ZlZAADBHxQcm9wb3NhbCBoYXMgbm90IGJlZW4gYXBwcm92ZWQuWEZhaWxlZFRvQ29udmVydEJhbGFuY2UABARRAVRoZSBiYWxhbmNlIG9mIHRoZSBhc3NldCBraW5kIGlzIG5vdCBjb252ZXJ0aWJsZSB0byB0aGUgYmFsYW5jZSBvZiB0aGUgbmF0aXZlIGFzc2V0LjBTcGVuZEV4cGlyZWQABQSwVGhlIHNwZW5kIGhhcyBleHBpcmVkIGFuZCBjYW5ub3QgYmUgY2xhaW1lZC4sRWFybHlQYXlvdXQABgSkVGhlIHNwZW5kIGlzIG5vdCB5ZXQgZWxpZ2libGUgZm9yIHBheW91dC5AQWxyZWFkeUF0dGVtcHRlZAAHBJxUaGUgcGF5bWVudCBoYXMgYWxyZWFkeSBiZWVuIGF0dGVtcHRlZC4sUGF5b3V0RXJyb3IACATMVGhlcmUgd2FzIHNvbWUgaXNzdWUgd2l0aCB0aGUgbWVjaGFuaXNtIG9mIHBheW1lbnQuME5vdEF0dGVtcHRlZAAJBKRUaGUgcGF5b3V0IHdhcyBub3QgeWV0IGF0dGVtcHRlZC9jbGFpbWVkLjBJbmNvbmNsdXNpdmUACgTEVGhlIHBheW1lbnQgaGFzIG5laXRoZXIgZmFpbGVkIG5vciBzdWNjZWVkZWQgeWV0LgR4RXJyb3IgZm9yIHRoZSB0cmVhc3VyeSBwYWxsZXQutQkMOHBhbGxldF91dGlsaXR5GHBhbGxldBRFcnJvcgQEVAABBDBUb29NYW55Q2FsbHMAAARcVG9vIG1hbnkgY2FsbHMgYmF0Y2hlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuuQkIPHBhbGxldF9wcmVpbWFnZUBPbGRSZXF1ZXN0U3RhdHVzCCRBY2NvdW50SWQBABxCYWxhbmNlAUABCCxVbnJlcXVlc3RlZAgBHGRlcG9zaXS9CQFQKEFjY291bnRJZCwgQmFsYW5jZSkAAQxsZW4oAQx1MzIAAAAkUmVxdWVzdGVkDAEcZGVwb3NpdMEJAXBPcHRpb248KEFjY291bnRJZCwgQmFsYW5jZSk+AAEUY291bnQoAQx1MzIAAQxsZW50ASxPcHRpb248dTMyPgABAAC9CQAABAgAQADBCQQYT3B0aW9uBARUAb0JAQgQTm9uZQAAABBTb21lBAC9CQAAAQAAxQkIPHBhbGxldF9wcmVpbWFnZTRSZXF1ZXN0U3RhdHVzCCRBY2NvdW50SWQBABhUaWNrZXQByQkBCCxVbnJlcXVlc3RlZAgBGHRpY2tldM0JAUwoQWNjb3VudElkLCBUaWNrZXQpAAEMbGVuKAEMdTMyAAAAJFJlcXVlc3RlZAwBMG1heWJlX3RpY2tldNEJAWxPcHRpb248KEFjY291bnRJZCwgVGlja2V0KT4AARRjb3VudCgBDHUzMgABJG1heWJlX2xlbnQBLE9wdGlvbjx1MzI+AAEAAMkJFDRmcmFtZV9zdXBwb3J0GHRyYWl0cxh0b2tlbnMgZnVuZ2libGVESG9sZENvbnNpZGVyYXRpb24UBEEABEYABFIABEQACEZwAAAEAEABKEY6OkJhbGFuY2UAAM0JAAAECADJCQDRCQQYT3B0aW9uBARUAc0JAQgQTm9uZQAAABBTb21lBADNCQAAAQAA1QkAAAQILCgA2QkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AADdCQw8cGFsbGV0X3ByZWltYWdlGHBhbGxldBRFcnJvcgQEVAABIBhUb29CaWcAAASgUHJlaW1hZ2UgaXMgdG9vIGxhcmdlIHRvIHN0b3JlIG9uLWNoYWluLjBBbHJlYWR5Tm90ZWQAAQSkUHJlaW1hZ2UgaGFzIGFscmVhZHkgYmVlbiBub3RlZCBvbi1jaGFpbi40Tm90QXV0aG9yaXplZAACBMhUaGUgdXNlciBpcyBub3QgYXV0aG9yaXplZCB0byBwZXJmb3JtIHRoaXMgYWN0aW9uLiBOb3ROb3RlZAADBPxUaGUgcHJlaW1hZ2UgY2Fubm90IGJlIHJlbW92ZWQgc2luY2UgaXQgaGFzIG5vdCB5ZXQgYmVlbiBub3RlZC4kUmVxdWVzdGVkAAQECQFBIHByZWltYWdlIG1heSBub3QgYmUgcmVtb3ZlZCB3aGVuIHRoZXJlIGFyZSBvdXRzdGFuZGluZyByZXF1ZXN0cy4wTm90UmVxdWVzdGVkAAUELQFUaGUgcHJlaW1hZ2UgcmVxdWVzdCBjYW5ub3QgYmUgcmVtb3ZlZCBzaW5jZSBubyBvdXRzdGFuZGluZyByZXF1ZXN0cyBleGlzdC4cVG9vTWFueQAGBFUBTW9yZSB0aGFuIGBNQVhfSEFTSF9VUEdSQURFX0JVTEtfQ09VTlRgIGhhc2hlcyB3ZXJlIHJlcXVlc3RlZCB0byBiZSB1cGdyYWRlZCBhdCBvbmNlLhhUb29GZXcABwTkVG9vIGZldyBoYXNoZXMgd2VyZSByZXF1ZXN0ZWQgdG8gYmUgdXBncmFkZWQgKGkuZS4gemVybykuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LuEJDDxwYWxsZXRfaWRlbnRpdHkUdHlwZXMwUmVnaXN0cmF0aW9uDBxCYWxhbmNlAUA0TWF4SnVkZ2VtZW50cwAwSWRlbnRpdHlJbmZvAfQADAEoanVkZ2VtZW50c+UJAfxCb3VuZGVkVmVjPChSZWdpc3RyYXJJbmRleCwgSnVkZ2VtZW50PEJhbGFuY2U+KSwgTWF4SnVkZ2VtZW50cz4AARxkZXBvc2l0QAEcQmFsYW5jZQABEGluZm/0ATBJZGVudGl0eUluZm8AAOUJDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB6QkEUwAABADtCQEYVmVjPFQ+AADpCQAABAgojQEA7QkAAALpCQDxCQAABAhA9QkA9QkMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEABFMAAAQASAEYVmVjPFQ+AAD5CQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAf0JBFMAAAQABQoBGFZlYzxUPgAA/QkEGE9wdGlvbgQEVAEBCgEIEE5vbmUAAAAQU29tZQQAAQoAAAEAAAEKDDxwYWxsZXRfaWRlbnRpdHkUdHlwZXM0UmVnaXN0cmFySW5mbwwcQmFsYW5jZQFAJEFjY291bnRJZAEAHElkRmllbGQBGAAMARxhY2NvdW50AAEkQWNjb3VudElkAAEMZmVlQAEcQmFsYW5jZQABGGZpZWxkcxgBHElkRmllbGQAAAUKAAAC/QkACQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AAANCgw8cGFsbGV0X2lkZW50aXR5FHR5cGVzTEF1dGhvcml0eVByb3BlcnRpZXMEHEFjY291bnQBAAAIAShhY2NvdW50X2lkAAEcQWNjb3VudAABKGFsbG9jYXRpb24oAShBbGxvY2F0aW9uAAARCgw8cGFsbGV0X2lkZW50aXR5FHR5cGVzTFVzZXJuYW1lSW5mb3JtYXRpb24IHEFjY291bnQBABxCYWxhbmNlAUAACAEUb3duZXIAARxBY2NvdW50AAEgcHJvdmlkZXIVCgFEUHJvdmlkZXI8QmFsYW5jZT4AABUKDDxwYWxsZXRfaWRlbnRpdHkUdHlwZXMgUHJvdmlkZXIEHEJhbGFuY2UBQAEMKEFsbG9jYXRpb24AAABAQXV0aG9yaXR5RGVwb3NpdAQAQAEcQmFsYW5jZQABABhTeXN0ZW0AAgAAGQoAAAQMACgVCgAdCgw8cGFsbGV0X2lkZW50aXR5GHBhbGxldBRFcnJvcgQEVAABeEhUb29NYW55U3ViQWNjb3VudHMAAARcVG9vIG1hbnkgc3Vicy1hY2NvdW50cy4gTm90Rm91bmQAAQRQQWNjb3VudCBpc24ndCBmb3VuZC4gTm90TmFtZWQAAgRQQWNjb3VudCBpc24ndCBuYW1lZC4oRW1wdHlJbmRleAADBDBFbXB0eSBpbmRleC4oRmVlQ2hhbmdlZAAEBDxGZWUgaXMgY2hhbmdlZC4oTm9JZGVudGl0eQAFBEhObyBpZGVudGl0eSBmb3VuZC48U3RpY2t5SnVkZ2VtZW50AAYERFN0aWNreSBqdWRnZW1lbnQuOEp1ZGdlbWVudEdpdmVuAAcEQEp1ZGdlbWVudCBnaXZlbi5ASW52YWxpZEp1ZGdlbWVudAAIBEhJbnZhbGlkIGp1ZGdlbWVudC4wSW52YWxpZEluZGV4AAkEVFRoZSBpbmRleCBpcyBpbnZhbGlkLjRJbnZhbGlkVGFyZ2V0AAoEWFRoZSB0YXJnZXQgaXMgaW52YWxpZC5EVG9vTWFueVJlZ2lzdHJhcnMACwToTWF4aW11bSBhbW91bnQgb2YgcmVnaXN0cmFycyByZWFjaGVkLiBDYW5ub3QgYWRkIGFueSBtb3JlLjhBbHJlYWR5Q2xhaW1lZAAMBHBBY2NvdW50IElEIGlzIGFscmVhZHkgbmFtZWQuGE5vdFN1YgANBHBTZW5kZXIgaXMgbm90IGEgc3ViLWFjY291bnQuIE5vdE93bmVkAA4EiFN1Yi1hY2NvdW50IGlzbid0IG93bmVkIGJ5IHNlbmRlci50SnVkZ2VtZW50Rm9yRGlmZmVyZW50SWRlbnRpdHkADwTQVGhlIHByb3ZpZGVkIGp1ZGdlbWVudCB3YXMgZm9yIGEgZGlmZmVyZW50IGlkZW50aXR5LlhKdWRnZW1lbnRQYXltZW50RmFpbGVkABAE+EVycm9yIHRoYXQgb2NjdXJzIHdoZW4gdGhlcmUgaXMgYW4gaXNzdWUgcGF5aW5nIGZvciBqdWRnZW1lbnQuNEludmFsaWRTdWZmaXgAEQSAVGhlIHByb3ZpZGVkIHN1ZmZpeCBpcyB0b28gbG9uZy5QTm90VXNlcm5hbWVBdXRob3JpdHkAEgTgVGhlIHNlbmRlciBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gaXNzdWUgYSB1c2VybmFtZS4wTm9BbGxvY2F0aW9uABMExFRoZSBhdXRob3JpdHkgY2Fubm90IGFsbG9jYXRlIGFueSBtb3JlIHVzZXJuYW1lcy5ASW52YWxpZFNpZ25hdHVyZQAUBKhUaGUgc2lnbmF0dXJlIG9uIGEgdXNlcm5hbWUgd2FzIG5vdCB2YWxpZC5EUmVxdWlyZXNTaWduYXR1cmUAFQQJAVNldHRpbmcgdGhpcyB1c2VybmFtZSByZXF1aXJlcyBhIHNpZ25hdHVyZSwgYnV0IG5vbmUgd2FzIHByb3ZpZGVkLjxJbnZhbGlkVXNlcm5hbWUAFgSwVGhlIHVzZXJuYW1lIGRvZXMgbm90IG1lZXQgdGhlIHJlcXVpcmVtZW50cy40VXNlcm5hbWVUYWtlbgAXBHhUaGUgdXNlcm5hbWUgaXMgYWxyZWFkeSB0YWtlbi4oTm9Vc2VybmFtZQAYBJhUaGUgcmVxdWVzdGVkIHVzZXJuYW1lIGRvZXMgbm90IGV4aXN0LihOb3RFeHBpcmVkABkELQFUaGUgdXNlcm5hbWUgY2Fubm90IGJlIGZvcmNlZnVsbHkgcmVtb3ZlZCBiZWNhdXNlIGl0IGNhbiBzdGlsbCBiZSBhY2NlcHRlZC4gVG9vRWFybHkAGgQZAVRoZSB1c2VybmFtZSBjYW5ub3QgYmUgcmVtb3ZlZCBiZWNhdXNlIGl0J3Mgc3RpbGwgaW4gdGhlIGdyYWNlIHBlcmlvZC4wTm90VW5iaW5kaW5nABsE7FRoZSB1c2VybmFtZSBjYW5ub3QgYmUgcmVtb3ZlZCBiZWNhdXNlIGl0IGlzIG5vdCB1bmJpbmRpbmcuQEFscmVhZHlVbmJpbmRpbmcAHAT8VGhlIHVzZXJuYW1lIGNhbm5vdCBiZSB1bmJvdW5kIGJlY2F1c2UgaXQgaXMgYWxyZWFkeSB1bmJpbmRpbmcuWEluc3VmZmljaWVudFByaXZpbGVnZXMAHQhFAVRoZSBhY3Rpb24gY2Fubm90IGJlIHBlcmZvcm1lZCBiZWNhdXNlIG9mIGluc3VmZmljaWVudCBwcml2aWxlZ2VzIChlLmcuIGF1dGhvcml0edB0cnlpbmcgdG8gdW5iaW5kIGEgdXNlcm5hbWUgcHJvdmlkZWQgYnkgdGhlIHN5c3RlbSkuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LiEKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBJQoEUwAABAApCgEYVmVjPFQ+AAAlCgAABAwoqQEAACkKAAACJQoALQoAAAQIMQpAADEKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBAARTAAAEAEgBGFZlYzxUPgAANQoMQHBhbGxldF9kZW1vY3JhY3kUdHlwZXM4UmVmZXJlbmR1bUluZm8MLEJsb2NrTnVtYmVyASggUHJvcG9zYWwBqQEcQmFsYW5jZQFAAQgcT25nb2luZwQAOQoBwFJlZmVyZW5kdW1TdGF0dXM8QmxvY2tOdW1iZXIsIFByb3Bvc2FsLCBCYWxhbmNlPgAAACBGaW5pc2hlZAgBIGFwcHJvdmVkRAEQYm9vbAABDGVuZCgBLEJsb2NrTnVtYmVyAAEAADkKDEBwYWxsZXRfZGVtb2NyYWN5FHR5cGVzQFJlZmVyZW5kdW1TdGF0dXMMLEJsb2NrTnVtYmVyASggUHJvcG9zYWwBqQEcQmFsYW5jZQFAABQBDGVuZCgBLEJsb2NrTnVtYmVyAAEgcHJvcG9zYWypAQEgUHJvcG9zYWwAASR0aHJlc2hvbGRhBwE0Vm90ZVRocmVzaG9sZAABFGRlbGF5KAEsQmxvY2tOdW1iZXIAARR0YWxseT0KAThUYWxseTxCYWxhbmNlPgAAPQoMQHBhbGxldF9kZW1vY3JhY3kUdHlwZXMUVGFsbHkEHEJhbGFuY2UBQAAMARBheWVzQAEcQmFsYW5jZQABEG5heXNAARxCYWxhbmNlAAEcdHVybm91dEABHEJhbGFuY2UAAEEKDEBwYWxsZXRfZGVtb2NyYWN5EHZvdGUYVm90aW5nEBxCYWxhbmNlAUAkQWNjb3VudElkAQAsQmxvY2tOdW1iZXIBKCBNYXhWb3RlcwABCBhEaXJlY3QMARR2b3Rlc0UKAfRCb3VuZGVkVmVjPChSZWZlcmVuZHVtSW5kZXgsIEFjY291bnRWb3RlPEJhbGFuY2U+KSwgTWF4Vm90ZXM+AAEsZGVsZWdhdGlvbnNRCgFQRGVsZWdhdGlvbnM8QmFsYW5jZT4AARRwcmlvclUKAXxQcmlvckxvY2s8QmxvY2tOdW1iZXIsIEJhbGFuY2U+AAAAKERlbGVnYXRpbmcUARxiYWxhbmNlQAEcQmFsYW5jZQABGHRhcmdldAABJEFjY291bnRJZAABKGNvbnZpY3Rpb269AQEoQ29udmljdGlvbgABLGRlbGVnYXRpb25zUQoBUERlbGVnYXRpb25zPEJhbGFuY2U+AAEUcHJpb3JVCgF8UHJpb3JMb2NrPEJsb2NrTnVtYmVyLCBCYWxhbmNlPgABAABFCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAUkKBFMAAAQATQoBGFZlYzxUPgAASQoAAAQIKLUBAE0KAAACSQoAUQoMQHBhbGxldF9kZW1vY3JhY3kUdHlwZXMsRGVsZWdhdGlvbnMEHEJhbGFuY2UBQAAIARR2b3Rlc0ABHEJhbGFuY2UAARxjYXBpdGFsQAEcQmFsYW5jZQAAVQoMQHBhbGxldF9kZW1vY3JhY3kQdm90ZSRQcmlvckxvY2sILEJsb2NrTnVtYmVyASgcQmFsYW5jZQFAAAgAKAEsQmxvY2tOdW1iZXIAAEABHEJhbGFuY2UAAFkKAAAECKkBYQcAXQoAAAQIKDEKAGEKDEBwYWxsZXRfZGVtb2NyYWN5GHBhbGxldBRFcnJvcgQEVAABYCBWYWx1ZUxvdwAABDRWYWx1ZSB0b28gbG93PFByb3Bvc2FsTWlzc2luZwABBFxQcm9wb3NhbCBkb2VzIG5vdCBleGlzdDxBbHJlYWR5Q2FuY2VsZWQAAgSUQ2Fubm90IGNhbmNlbCB0aGUgc2FtZSBwcm9wb3NhbCB0d2ljZUREdXBsaWNhdGVQcm9wb3NhbAADBFRQcm9wb3NhbCBhbHJlYWR5IG1hZGVMUHJvcG9zYWxCbGFja2xpc3RlZAAEBGhQcm9wb3NhbCBzdGlsbCBibGFja2xpc3RlZEROb3RTaW1wbGVNYWpvcml0eQAFBKhOZXh0IGV4dGVybmFsIHByb3Bvc2FsIG5vdCBzaW1wbGUgbWFqb3JpdHksSW52YWxpZEhhc2gABgQwSW52YWxpZCBoYXNoKE5vUHJvcG9zYWwABwRQTm8gZXh0ZXJuYWwgcHJvcG9zYWw0QWxyZWFkeVZldG9lZAAIBJhJZGVudGl0eSBtYXkgbm90IHZldG8gYSBwcm9wb3NhbCB0d2ljZURSZWZlcmVuZHVtSW52YWxpZAAJBIRWb3RlIGdpdmVuIGZvciBpbnZhbGlkIHJlZmVyZW5kdW0sTm9uZVdhaXRpbmcACgRQTm8gcHJvcG9zYWxzIHdhaXRpbmcgTm90Vm90ZXIACwTEVGhlIGdpdmVuIGFjY291bnQgZGlkIG5vdCB2b3RlIG9uIHRoZSByZWZlcmVuZHVtLjBOb1Blcm1pc3Npb24ADATIVGhlIGFjdG9yIGhhcyBubyBwZXJtaXNzaW9uIHRvIGNvbmR1Y3QgdGhlIGFjdGlvbi5EQWxyZWFkeURlbGVnYXRpbmcADQSIVGhlIGFjY291bnQgaXMgYWxyZWFkeSBkZWxlZ2F0aW5nLkRJbnN1ZmZpY2llbnRGdW5kcwAOBPxUb28gaGlnaCBhIGJhbGFuY2Ugd2FzIHByb3ZpZGVkIHRoYXQgdGhlIGFjY291bnQgY2Fubm90IGFmZm9yZC40Tm90RGVsZWdhdGluZwAPBKBUaGUgYWNjb3VudCBpcyBub3QgY3VycmVudGx5IGRlbGVnYXRpbmcuKFZvdGVzRXhpc3QAEAhVAVRoZSBhY2NvdW50IGN1cnJlbnRseSBoYXMgdm90ZXMgYXR0YWNoZWQgdG8gaXQgYW5kIHRoZSBvcGVyYXRpb24gY2Fubm90IHN1Y2NlZWQgdW50aWzodGhlc2UgYXJlIHJlbW92ZWQsIGVpdGhlciB0aHJvdWdoIGB1bnZvdGVgIG9yIGByZWFwX3ZvdGVgLkRJbnN0YW50Tm90QWxsb3dlZAARBNhUaGUgaW5zdGFudCByZWZlcmVuZHVtIG9yaWdpbiBpcyBjdXJyZW50bHkgZGlzYWxsb3dlZC4gTm9uc2Vuc2UAEgSURGVsZWdhdGlvbiB0byBvbmVzZWxmIG1ha2VzIG5vIHNlbnNlLjxXcm9uZ1VwcGVyQm91bmQAEwRQSW52YWxpZCB1cHBlciBib3VuZC48TWF4Vm90ZXNSZWFjaGVkABQEgE1heGltdW0gbnVtYmVyIG9mIHZvdGVzIHJlYWNoZWQuHFRvb01hbnkAFQSATWF4aW11bSBudW1iZXIgb2YgaXRlbXMgcmVhY2hlZC48Vm90aW5nUGVyaW9kTG93ABYEVFZvdGluZyBwZXJpb2QgdG9vIGxvd0BQcmVpbWFnZU5vdEV4aXN0ABcEcFRoZSBwcmVpbWFnZSBkb2VzIG5vdCBleGlzdC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuZQoMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEsBFMAAAQA7AEYVmVjPFQ+AABpCgAABAgAcABtCghEcGFsbGV0X2NvbGxlY3RpdmUUVm90ZXMIJEFjY291bnRJZAEALEJsb2NrTnVtYmVyASgAFAEUaW5kZXgoATRQcm9wb3NhbEluZGV4AAEkdGhyZXNob2xkKAEsTWVtYmVyQ291bnQAARBheWVzSAE4VmVjPEFjY291bnRJZD4AARBuYXlzSAE4VmVjPEFjY291bnRJZD4AAQxlbmQoASxCbG9ja051bWJlcgAAcQoMRHBhbGxldF9jb2xsZWN0aXZlGHBhbGxldBRFcnJvcggEVAAESQABMCROb3RNZW1iZXIAAARcQWNjb3VudCBpcyBub3QgYSBtZW1iZXJERHVwbGljYXRlUHJvcG9zYWwAAQR8RHVwbGljYXRlIHByb3Bvc2FscyBub3QgYWxsb3dlZDxQcm9wb3NhbE1pc3NpbmcAAgRMUHJvcG9zYWwgbXVzdCBleGlzdChXcm9uZ0luZGV4AAMEQE1pc21hdGNoZWQgaW5kZXg0RHVwbGljYXRlVm90ZQAEBFhEdXBsaWNhdGUgdm90ZSBpZ25vcmVkSEFscmVhZHlJbml0aWFsaXplZAAFBIBNZW1iZXJzIGFyZSBhbHJlYWR5IGluaXRpYWxpemVkISBUb29FYXJseQAGBAEBVGhlIGNsb3NlIGNhbGwgd2FzIG1hZGUgdG9vIGVhcmx5LCBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgdm90aW5nLkBUb29NYW55UHJvcG9zYWxzAAcE/FRoZXJlIGNhbiBvbmx5IGJlIGEgbWF4aW11bSBvZiBgTWF4UHJvcG9zYWxzYCBhY3RpdmUgcHJvcG9zYWxzLkxXcm9uZ1Byb3Bvc2FsV2VpZ2h0AAgE0FRoZSBnaXZlbiB3ZWlnaHQgYm91bmQgZm9yIHRoZSBwcm9wb3NhbCB3YXMgdG9vIGxvdy5MV3JvbmdQcm9wb3NhbExlbmd0aAAJBNBUaGUgZ2l2ZW4gbGVuZ3RoIGJvdW5kIGZvciB0aGUgcHJvcG9zYWwgd2FzIHRvbyBsb3cuVFByaW1lQWNjb3VudE5vdE1lbWJlcgAKBHRQcmltZSBhY2NvdW50IGlzIG5vdCBhIG1lbWJlcjhQcm9wb3NhbEFjdGl2ZQALBGRQcm9wb3NhbCBpcyBzdGlsbCBhY3RpdmUuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LnUKAAAECHkKQAB5CgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAX0KBFMAAAQAgQoBGFZlYzxUPgAAfQoIMHBhbGxldF9wcm94eTxQcm94eURlZmluaXRpb24MJEFjY291bnRJZAEAJFByb3h5VHlwZQHZASxCbG9ja051bWJlcgEoAAwBIGRlbGVnYXRlAAEkQWNjb3VudElkAAEocHJveHlfdHlwZdkBASRQcm94eVR5cGUAARRkZWxheSgBLEJsb2NrTnVtYmVyAACBCgAAAn0KAIUKAAAECIkKQACJCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAY0KBFMAAAQAkQoBGFZlYzxUPgAAjQoIMHBhbGxldF9wcm94eTBBbm5vdW5jZW1lbnQMJEFjY291bnRJZAEAEEhhc2gBLCxCbG9ja051bWJlcgEoAAwBEHJlYWwAASRBY2NvdW50SWQAASRjYWxsX2hhc2gsARBIYXNoAAEYaGVpZ2h0KAEsQmxvY2tOdW1iZXIAAJEKAAACjQoAlQoMMHBhbGxldF9wcm94eRhwYWxsZXQURXJyb3IEBFQAASAcVG9vTWFueQAABCEBVGhlcmUgYXJlIHRvbyBtYW55IHByb3hpZXMgcmVnaXN0ZXJlZCBvciB0b28gbWFueSBhbm5vdW5jZW1lbnRzIHBlbmRpbmcuIE5vdEZvdW5kAAEEdFByb3h5IHJlZ2lzdHJhdGlvbiBub3QgZm91bmQuIE5vdFByb3h5AAIEzFNlbmRlciBpcyBub3QgYSBwcm94eSBvZiB0aGUgYWNjb3VudCB0byBiZSBwcm94aWVkLixVbnByb3h5YWJsZQADBCEBQSBjYWxsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBwcm94eSB0eXBlJ3MgZmlsdGVyIHdhcyBhdHRlbXB0ZWQuJER1cGxpY2F0ZQAEBGxBY2NvdW50IGlzIGFscmVhZHkgYSBwcm94eS4wTm9QZXJtaXNzaW9uAAUEFQFDYWxsIG1heSBub3QgYmUgbWFkZSBieSBwcm94eSBiZWNhdXNlIGl0IG1heSBlc2NhbGF0ZSBpdHMgcHJpdmlsZWdlcy4sVW5hbm5vdW5jZWQABgTQQW5ub3VuY2VtZW50LCBpZiBtYWRlIGF0IGFsbCwgd2FzIG1hZGUgdG9vIHJlY2VudGx5LixOb1NlbGZQcm94eQAHBGRDYW5ub3QgYWRkIHNlbGYgYXMgcHJveHkuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LpkKAAAECAAEAJ0KCDxwYWxsZXRfbXVsdGlzaWcgTXVsdGlzaWcQLEJsb2NrTnVtYmVyASgcQmFsYW5jZQFAJEFjY291bnRJZAEAME1heEFwcHJvdmFscwAAEAEQd2hlbuUBAVhUaW1lcG9pbnQ8QmxvY2tOdW1iZXI+AAEcZGVwb3NpdEABHEJhbGFuY2UAASRkZXBvc2l0b3IAASRBY2NvdW50SWQAASRhcHByb3ZhbHOhCgGMQm91bmRlZFZlYzxBY2NvdW50SWQsIE1heEFwcHJvdmFscz4AAKEKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBAARTAAAEAEgBGFZlYzxUPgAApQoMPHBhbGxldF9tdWx0aXNpZxhwYWxsZXQURXJyb3IEBFQAAThATWluaW11bVRocmVzaG9sZAAABHxUaHJlc2hvbGQgbXVzdCBiZSAyIG9yIGdyZWF0ZXIuPEFscmVhZHlBcHByb3ZlZAABBKxDYWxsIGlzIGFscmVhZHkgYXBwcm92ZWQgYnkgdGhpcyBzaWduYXRvcnkuRE5vQXBwcm92YWxzTmVlZGVkAAIEnENhbGwgZG9lc24ndCBuZWVkIGFueSAobW9yZSkgYXBwcm92YWxzLkRUb29GZXdTaWduYXRvcmllcwADBKhUaGVyZSBhcmUgdG9vIGZldyBzaWduYXRvcmllcyBpbiB0aGUgbGlzdC5IVG9vTWFueVNpZ25hdG9yaWVzAAQErFRoZXJlIGFyZSB0b28gbWFueSBzaWduYXRvcmllcyBpbiB0aGUgbGlzdC5UU2lnbmF0b3JpZXNPdXRPZk9yZGVyAAUEDQFUaGUgc2lnbmF0b3JpZXMgd2VyZSBwcm92aWRlZCBvdXQgb2Ygb3JkZXI7IHRoZXkgc2hvdWxkIGJlIG9yZGVyZWQuTFNlbmRlckluU2lnbmF0b3JpZXMABgQNAVRoZSBzZW5kZXIgd2FzIGNvbnRhaW5lZCBpbiB0aGUgb3RoZXIgc2lnbmF0b3JpZXM7IGl0IHNob3VsZG4ndCBiZS4gTm90Rm91bmQABwSgTXVsdGlzaWcgb3BlcmF0aW9uIG5vdCBmb3VuZCBpbiBzdG9yYWdlLiBOb3RPd25lcgAICFEBT25seSB0aGUgYWNjb3VudCB0aGF0IG9yaWdpbmFsbHkgY3JlYXRlZCB0aGUgbXVsdGlzaWcgaXMgYWJsZSB0byBjYW5jZWwgaXQgb3IgdXBkYXRlNGl0cyBkZXBvc2l0cy4sTm9UaW1lcG9pbnQACQQdAU5vIHRpbWVwb2ludCB3YXMgZ2l2ZW4sIHlldCB0aGUgbXVsdGlzaWcgb3BlcmF0aW9uIGlzIGFscmVhZHkgdW5kZXJ3YXkuOFdyb25nVGltZXBvaW50AAoELQFBIGRpZmZlcmVudCB0aW1lcG9pbnQgd2FzIGdpdmVuIHRvIHRoZSBtdWx0aXNpZyBvcGVyYXRpb24gdGhhdCBpcyB1bmRlcndheS5MVW5leHBlY3RlZFRpbWVwb2ludAALBPRBIHRpbWVwb2ludCB3YXMgZ2l2ZW4sIHlldCBubyBtdWx0aXNpZyBvcGVyYXRpb24gaXMgdW5kZXJ3YXkuPE1heFdlaWdodFRvb0xvdwAMBNBUaGUgbWF4aW11bSB3ZWlnaHQgaW5mb3JtYXRpb24gcHJvdmlkZWQgd2FzIHRvbyBsb3cuNEFscmVhZHlTdG9yZWQADQSgVGhlIGRhdGEgdG8gYmUgc3RvcmVkIGlzIGFscmVhZHkgc3RvcmVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6pCgw4cGFsbGV0X3VuaXF1ZXMUdHlwZXNEQ29sbGVjdGlvbkRldGFpbHMIJEFjY291bnRJZAEAOERlcG9zaXRCYWxhbmNlAUAAKAEUb3duZXIAASRBY2NvdW50SWQAARhpc3N1ZXIAASRBY2NvdW50SWQAARRhZG1pbgABJEFjY291bnRJZAABHGZyZWV6ZXIAASRBY2NvdW50SWQAATR0b3RhbF9kZXBvc2l0QAE4RGVwb3NpdEJhbGFuY2UAATBmcmVlX2hvbGRpbmdEARBib29sAAEUaXRlbXMoAQx1MzIAAThpdGVtX21ldGFkYXRhcygBDHUzMgABKGF0dHJpYnV0ZXMoAQx1MzIAASRpc19mcm96ZW5EARBib29sAACtCgAABAwAQEAAsQoMOHBhbGxldF91bmlxdWVzFHR5cGVzLEl0ZW1EZXRhaWxzCCRBY2NvdW50SWQBADhEZXBvc2l0QmFsYW5jZQFAABABFG93bmVyAAEkQWNjb3VudElkAAEgYXBwcm92ZWTNAQFET3B0aW9uPEFjY291bnRJZD4AASRpc19mcm96ZW5EARBib29sAAEcZGVwb3NpdEABOERlcG9zaXRCYWxhbmNlAAC1Cgw4cGFsbGV0X3VuaXF1ZXMUdHlwZXNIQ29sbGVjdGlvbk1ldGFkYXRhCDhEZXBvc2l0QmFsYW5jZQFALFN0cmluZ0xpbWl0AAAMARxkZXBvc2l0QAE4RGVwb3NpdEJhbGFuY2UAARBkYXRhAQIBbEJvdW5kZWRWZWM8dTgsIFN0cmluZ0xpbWl0PgABJGlzX2Zyb3plbkQBEGJvb2wAALkKDDhwYWxsZXRfdW5pcXVlcxR0eXBlczBJdGVtTWV0YWRhdGEIOERlcG9zaXRCYWxhbmNlAUAsU3RyaW5nTGltaXQAAAwBHGRlcG9zaXRAAThEZXBvc2l0QmFsYW5jZQABEGRhdGEBAgFsQm91bmRlZFZlYzx1OCwgU3RyaW5nTGltaXQ+AAEkaXNfZnJvemVuRAEQYm9vbAAAvQoAAAQMQPUB+QEAwQoAAAQI/QFAAMUKAAAECEDNAQDJCgw4cGFsbGV0X3VuaXF1ZXMYcGFsbGV0FEVycm9yCARUAARJAAFYME5vUGVybWlzc2lvbgAABOhUaGUgc2lnbmluZyBhY2NvdW50IGhhcyBubyBwZXJtaXNzaW9uIHRvIGRvIHRoZSBvcGVyYXRpb24uRFVua25vd25Db2xsZWN0aW9uAAEEdFRoZSBnaXZlbiBpdGVtIElEIGlzIHVua25vd24uNEFscmVhZHlFeGlzdHMAAgS4VGhlIGl0ZW0gSUQgaGFzIGFscmVhZHkgYmVlbiB1c2VkIGZvciBhbiBpdGVtLihXcm9uZ093bmVyAAME6FRoZSBvd25lciB0dXJuZWQgb3V0IHRvIGJlIGRpZmZlcmVudCB0byB3aGF0IHdhcyBleHBlY3RlZC4oQmFkV2l0bmVzcwAEBGxJbnZhbGlkIHdpdG5lc3MgZGF0YSBnaXZlbi4USW5Vc2UABQR0VGhlIGl0ZW0gSUQgaXMgYWxyZWFkeSB0YWtlbi4YRnJvemVuAAYEhFRoZSBpdGVtIG9yIGNvbGxlY3Rpb24gaXMgZnJvemVuLjRXcm9uZ0RlbGVnYXRlAAcE9FRoZSBkZWxlZ2F0ZSB0dXJuZWQgb3V0IHRvIGJlIGRpZmZlcmVudCB0byB3aGF0IHdhcyBleHBlY3RlZC4oTm9EZWxlZ2F0ZQAIBHhUaGVyZSBpcyBubyBkZWxlZ2F0ZSBhcHByb3ZlZC4oVW5hcHByb3ZlZAAJBMRObyBhcHByb3ZhbCBleGlzdHMgdGhhdCB3b3VsZCBhbGxvdyB0aGUgdHJhbnNmZXIuKFVuYWNjZXB0ZWQACgQlAVRoZSBuYW1lZCBvd25lciBoYXMgbm90IHNpZ25lZCBvd25lcnNoaXAgb2YgdGhlIGNvbGxlY3Rpb24gaXMgYWNjZXB0YWJsZS4YTG9ja2VkAAsETFRoZSBpdGVtIGlzIGxvY2tlZC5ATWF4U3VwcGx5UmVhY2hlZAAMBGxBbGwgaXRlbXMgaGF2ZSBiZWVuIG1pbnRlZC5MTWF4U3VwcGx5QWxyZWFkeVNldAANBJBUaGUgbWF4IHN1cHBseSBoYXMgYWxyZWFkeSBiZWVuIHNldC5ETWF4U3VwcGx5VG9vU21hbGwADgRBAVRoZSBwcm92aWRlZCBtYXggc3VwcGx5IGlzIGxlc3MgdG8gdGhlIGFtb3VudCBvZiBpdGVtcyBhIGNvbGxlY3Rpb24gYWxyZWFkeSBoYXMuLFVua25vd25JdGVtAA8EdFRoZSBnaXZlbiBpdGVtIElEIGlzIHVua25vd24uKE5vdEZvclNhbGUAEARUSXRlbSBpcyBub3QgZm9yIHNhbGUuJEJpZFRvb0xvdwARBHBUaGUgcHJvdmlkZWQgYmlkIGlzIHRvbyBsb3cuKE5vTWV0YWRhdGEAEgRUTm8gbWV0YWRhdGEgaXMgZm91bmQuNFdyb25nTWV0YWRhdGEAEwSgV3JvbmcgbWV0YWRhdGEga2V5L3ZhbHVlIGJ5dGVzIHN1cHBsaWVkLkRBdHRyaWJ1dGVOb3RGb3VuZAAUBGhBbiBhdHRyaWJ1dGUgaXMgbm90IGZvdW5kLjhXcm9uZ0F0dHJpYnV0ZQAVBKRXcm9uZyBhdHRyaWJ1dGUga2V5L3ZhbHVlIGJ5dGVzIHN1cHBsaWVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7NCgAABAgAgADRCgxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUYVm90aW5nFBxCYWxhbmNlAUAkQWNjb3VudElkAQAsQmxvY2tOdW1iZXIBKCRQb2xsSW5kZXgBKCBNYXhWb3RlcwABCBxDYXN0aW5nBADVCgHIQ2FzdGluZzxCYWxhbmNlLCBCbG9ja051bWJlciwgUG9sbEluZGV4LCBNYXhWb3Rlcz4AAAAoRGVsZWdhdGluZwQA7QoBrERlbGVnYXRpbmc8QmFsYW5jZSwgQWNjb3VudElkLCBCbG9ja051bWJlcj4AAQAA1QoMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxB2b3RlHENhc3RpbmcQHEJhbGFuY2UBQCxCbG9ja051bWJlcgEoJFBvbGxJbmRleAEoIE1heFZvdGVzAAAMARR2b3Rlc9kKAdxCb3VuZGVkVmVjPChQb2xsSW5kZXgsIEFjY291bnRWb3RlPEJhbGFuY2U+KSwgTWF4Vm90ZXM+AAEsZGVsZWdhdGlvbnPlCgFQRGVsZWdhdGlvbnM8QmFsYW5jZT4AARRwcmlvcukKAXxQcmlvckxvY2s8QmxvY2tOdW1iZXIsIEJhbGFuY2U+AADZCgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAd0KBFMAAAQA4QoBGFZlYzxUPgAA3QoAAAQIKCECAOEKAAAC3QoA5QoMYHBhbGxldF9jb252aWN0aW9uX3ZvdGluZxR0eXBlcyxEZWxlZ2F0aW9ucwQcQmFsYW5jZQFAAAgBFHZvdGVzQAEcQmFsYW5jZQABHGNhcGl0YWxAARxCYWxhbmNlAADpCgxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUkUHJpb3JMb2NrCCxCbG9ja051bWJlcgEoHEJhbGFuY2UBQAAIACgBLEJsb2NrTnVtYmVyAABAARxCYWxhbmNlAADtCgxgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nEHZvdGUoRGVsZWdhdGluZwwcQmFsYW5jZQFAJEFjY291bnRJZAEALEJsb2NrTnVtYmVyASgAFAEcYmFsYW5jZUABHEJhbGFuY2UAARh0YXJnZXQAASRBY2NvdW50SWQAAShjb252aWN0aW9uKQIBKENvbnZpY3Rpb24AASxkZWxlZ2F0aW9uc+UKAVBEZWxlZ2F0aW9uczxCYWxhbmNlPgABFHByaW9y6QoBfFByaW9yTG9jazxCbG9ja051bWJlciwgQmFsYW5jZT4AAPEKDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB9QoEUwAABAD5CgEYVmVjPFQ+AAD1CgAABAiAQAD5CgAAAvUKAP0KDGBwYWxsZXRfY29udmljdGlvbl92b3RpbmcYcGFsbGV0FEVycm9yCARUAARJAAEwKE5vdE9uZ29pbmcAAARQUG9sbCBpcyBub3Qgb25nb2luZy4gTm90Vm90ZXIAAQSsVGhlIGdpdmVuIGFjY291bnQgZGlkIG5vdCB2b3RlIG9uIHRoZSBwb2xsLjBOb1Blcm1pc3Npb24AAgTIVGhlIGFjdG9yIGhhcyBubyBwZXJtaXNzaW9uIHRvIGNvbmR1Y3QgdGhlIGFjdGlvbi48Tm9QZXJtaXNzaW9uWWV0AAMEWQFUaGUgYWN0b3IgaGFzIG5vIHBlcm1pc3Npb24gdG8gY29uZHVjdCB0aGUgYWN0aW9uIHJpZ2h0IG5vdyBidXQgd2lsbCBkbyBpbiB0aGUgZnV0dXJlLkRBbHJlYWR5RGVsZWdhdGluZwAEBIhUaGUgYWNjb3VudCBpcyBhbHJlYWR5IGRlbGVnYXRpbmcuNEFscmVhZHlWb3RpbmcABQhVAVRoZSBhY2NvdW50IGN1cnJlbnRseSBoYXMgdm90ZXMgYXR0YWNoZWQgdG8gaXQgYW5kIHRoZSBvcGVyYXRpb24gY2Fubm90IHN1Y2NlZWQgdW50aWygdGhlc2UgYXJlIHJlbW92ZWQgdGhyb3VnaCBgcmVtb3ZlX3ZvdGVgLkRJbnN1ZmZpY2llbnRGdW5kcwAGBPxUb28gaGlnaCBhIGJhbGFuY2Ugd2FzIHByb3ZpZGVkIHRoYXQgdGhlIGFjY291bnQgY2Fubm90IGFmZm9yZC40Tm90RGVsZWdhdGluZwAHBKBUaGUgYWNjb3VudCBpcyBub3QgY3VycmVudGx5IGRlbGVnYXRpbmcuIE5vbnNlbnNlAAgElERlbGVnYXRpb24gdG8gb25lc2VsZiBtYWtlcyBubyBzZW5zZS48TWF4Vm90ZXNSZWFjaGVkAAkEgE1heGltdW0gbnVtYmVyIG9mIHZvdGVzIHJlYWNoZWQuLENsYXNzTmVlZGVkAAoEOQFUaGUgY2xhc3MgbXVzdCBiZSBzdXBwbGllZCBzaW5jZSBpdCBpcyBub3QgZWFzaWx5IGRldGVybWluYWJsZSBmcm9tIHRoZSBzdGF0ZS4gQmFkQ2xhc3MACwSEVGhlIGNsYXNzIElEIHN1cHBsaWVkIGlzIGludmFsaWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LgELDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzOFJlZmVyZW5kdW1JbmZvIBxUcmFja0lkAYA0UnVudGltZU9yaWdpbgGEGE1vbWVudAEoEENhbGwBqQEcQmFsYW5jZQFAFFRhbGx5AY0HJEFjY291bnRJZAEAPFNjaGVkdWxlQWRkcmVzcwGpAgEYHE9uZ29pbmcEAAULAY0BUmVmZXJlbmR1bVN0YXR1czxUcmFja0lkLCBSdW50aW1lT3JpZ2luLCBNb21lbnQsIENhbGwsIEJhbGFuY2UsIFRhbGx5LApBY2NvdW50SWQsIFNjaGVkdWxlQWRkcmVzcyw+AAAAIEFwcHJvdmVkDAAoARhNb21lbnQAAA0LAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAADQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAEAIFJlamVjdGVkDAAoARhNb21lbnQAAA0LAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAADQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAIAJENhbmNlbGxlZAwAKAEYTW9tZW50AAANCwGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAA0LAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgADACBUaW1lZE91dAwAKAEYTW9tZW50AAANCwGMT3B0aW9uPERlcG9zaXQ8QWNjb3VudElkLCBCYWxhbmNlPj4AAA0LAYxPcHRpb248RGVwb3NpdDxBY2NvdW50SWQsIEJhbGFuY2U+PgAEABhLaWxsZWQEACgBGE1vbWVudAAFAAAFCwxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlc0BSZWZlcmVuZHVtU3RhdHVzIBxUcmFja0lkAYA0UnVudGltZU9yaWdpbgGEGE1vbWVudAEoEENhbGwBqQEcQmFsYW5jZQFAFFRhbGx5AY0HJEFjY291bnRJZAEAPFNjaGVkdWxlQWRkcmVzcwGpAgAsARR0cmFja4ABHFRyYWNrSWQAARhvcmlnaW6EATRSdW50aW1lT3JpZ2luAAEgcHJvcG9zYWypAQEQQ2FsbAABJGVuYWN0bWVudDUCAVBEaXNwYXRjaFRpbWU8TW9tZW50PgABJHN1Ym1pdHRlZCgBGE1vbWVudAABSHN1Ym1pc3Npb25fZGVwb3NpdAkLAWxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4AAUBkZWNpc2lvbl9kZXBvc2l0DQsBjE9wdGlvbjxEZXBvc2l0PEFjY291bnRJZCwgQmFsYW5jZT4+AAEgZGVjaWRpbmcRCwF4T3B0aW9uPERlY2lkaW5nU3RhdHVzPE1vbWVudD4+AAEUdGFsbHmNBwEUVGFsbHkAASBpbl9xdWV1ZUQBEGJvb2wAARRhbGFybRkLAYRPcHRpb248KE1vbWVudCwgU2NoZWR1bGVBZGRyZXNzKT4AAAkLDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzHERlcG9zaXQIJEFjY291bnRJZAEAHEJhbGFuY2UBQAAIAQx3aG8AASRBY2NvdW50SWQAARhhbW91bnRAARxCYWxhbmNlAAANCwQYT3B0aW9uBARUAQkLAQgQTm9uZQAAABBTb21lBAAJCwAAAQAAEQsEGE9wdGlvbgQEVAEVCwEIEE5vbmUAAAAQU29tZQQAFQsAAAEAABULDEBwYWxsZXRfcmVmZXJlbmRhFHR5cGVzOERlY2lkaW5nU3RhdHVzBCxCbG9ja051bWJlcgEoAAgBFHNpbmNlKAEsQmxvY2tOdW1iZXIAAShjb25maXJtaW5ndAFMT3B0aW9uPEJsb2NrTnVtYmVyPgAAGQsEGE9wdGlvbgQEVAEdCwEIEE5vbmUAAAAQU29tZQQAHQsAAAEAAB0LAAAECCipAgAhCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAT0DBFMAAAQAoQYBGFZlYzxUPgAAJQsAAAIpCwApCwAABAiALQsALQsMQHBhbGxldF9yZWZlcmVuZGEUdHlwZXMwVHJhY2tEZXRhaWxzDBxCYWxhbmNlAUAYTW9tZW50ASgQTmFtZQFZCAAkARBuYW1lWQgBEE5hbWUAATBtYXhfZGVjaWRpbmcoAQx1MzIAAUBkZWNpc2lvbl9kZXBvc2l0QAEcQmFsYW5jZQABOHByZXBhcmVfcGVyaW9kKAEYTW9tZW50AAE8ZGVjaXNpb25fcGVyaW9kKAEYTW9tZW50AAE4Y29uZmlybV9wZXJpb2QoARhNb21lbnQAAVBtaW5fZW5hY3RtZW50X3BlcmlvZCgBGE1vbWVudAABMG1pbl9hcHByb3ZhbDELARRDdXJ2ZQABLG1pbl9zdXBwb3J0MQsBFEN1cnZlAAAxCwxAcGFsbGV0X3JlZmVyZW5kYRR0eXBlcxRDdXJ2ZQABDEBMaW5lYXJEZWNyZWFzaW5nDAEYbGVuZ3RoKQMBHFBlcmJpbGwAARRmbG9vcikDARxQZXJiaWxsAAEQY2VpbCkDARxQZXJiaWxsAAAARFN0ZXBwZWREZWNyZWFzaW5nEAEUYmVnaW4pAwEcUGVyYmlsbAABDGVuZCkDARxQZXJiaWxsAAEQc3RlcCkDARxQZXJiaWxsAAEYcGVyaW9kKQMBHFBlcmJpbGwAAQAoUmVjaXByb2NhbAwBGGZhY3RvcjULASBGaXhlZEk2NAABIHhfb2Zmc2V0NQsBIEZpeGVkSTY0AAEgeV9vZmZzZXQ1CwEgRml4ZWRJNjQAAgAANQsMNHNwX2FyaXRobWV0aWMsZml4ZWRfcG9pbnQgRml4ZWRJNjQAAAQAOQsBDGk2NAAAOQsAAAUMAD0LDEBwYWxsZXRfcmVmZXJlbmRhGHBhbGxldBRFcnJvcggEVAAESQABOChOb3RPbmdvaW5nAAAEaFJlZmVyZW5kdW0gaXMgbm90IG9uZ29pbmcuKEhhc0RlcG9zaXQAAQS4UmVmZXJlbmR1bSdzIGRlY2lzaW9uIGRlcG9zaXQgaXMgYWxyZWFkeSBwYWlkLiBCYWRUcmFjawACBJxUaGUgdHJhY2sgaWRlbnRpZmllciBnaXZlbiB3YXMgaW52YWxpZC4QRnVsbAADBDEBVGhlcmUgYXJlIGFscmVhZHkgYSBmdWxsIGNvbXBsZW1lbnQgb2YgcmVmZXJlbmRhIGluIHByb2dyZXNzIGZvciB0aGlzIHRyYWNrLihRdWV1ZUVtcHR5AAQEgFRoZSBxdWV1ZSBvZiB0aGUgdHJhY2sgaXMgZW1wdHkuNEJhZFJlZmVyZW5kdW0ABQTkVGhlIHJlZmVyZW5kdW0gaW5kZXggcHJvdmlkZWQgaXMgaW52YWxpZCBpbiB0aGlzIGNvbnRleHQuLE5vdGhpbmdUb0RvAAYErFRoZXJlIHdhcyBub3RoaW5nIHRvIGRvIGluIHRoZSBhZHZhbmNlbWVudC4cTm9UcmFjawAHBKBObyB0cmFjayBleGlzdHMgZm9yIHRoZSBwcm9wb3NhbCBvcmlnaW4uKFVuZmluaXNoZWQACAQBAUFueSBkZXBvc2l0IGNhbm5vdCBiZSByZWZ1bmRlZCB1bnRpbCBhZnRlciB0aGUgZGVjaXNpb24gaXMgb3Zlci4wTm9QZXJtaXNzaW9uAAkEqFRoZSBkZXBvc2l0IHJlZnVuZGVyIGlzIG5vdCB0aGUgZGVwb3NpdG9yLiROb0RlcG9zaXQACgTMVGhlIGRlcG9zaXQgY2Fubm90IGJlIHJlZnVuZGVkIHNpbmNlIG5vbmUgd2FzIG1hZGUuJEJhZFN0YXR1cwALBNBUaGUgcmVmZXJlbmR1bSBzdGF0dXMgaXMgaW52YWxpZCBmb3IgdGhpcyBvcGVyYXRpb24uQFByZWltYWdlTm90RXhpc3QADARwVGhlIHByZWltYWdlIGRvZXMgbm90IGV4aXN0LoRQcmVpbWFnZVN0b3JlZFdpdGhEaWZmZXJlbnRMZW5ndGgADQQVAVRoZSBwcmVpbWFnZSBpcyBzdG9yZWQgd2l0aCBhIGRpZmZlcmVudCBsZW5ndGggdGhhbiB0aGUgb25lIHByb3ZpZGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5BCwxAcGFsbGV0X3doaXRlbGlzdBhwYWxsZXQURXJyb3IEBFQAARRMVW5hdmFpbGFibGVQcmVJbWFnZQAABMhUaGUgcHJlaW1hZ2Ugb2YgdGhlIGNhbGwgaGFzaCBjb3VsZCBub3QgYmUgbG9hZGVkLjxVbmRlY29kYWJsZUNhbGwAAQR4VGhlIGNhbGwgY291bGQgbm90IGJlIGRlY29kZWQuYEludmFsaWRDYWxsV2VpZ2h0V2l0bmVzcwACBOxUaGUgd2VpZ2h0IG9mIHRoZSBkZWNvZGVkIGNhbGwgd2FzIGhpZ2hlciB0aGFuIHRoZSB3aXRuZXNzLlBDYWxsSXNOb3RXaGl0ZWxpc3RlZAADBHRUaGUgY2FsbCB3YXMgbm90IHdoaXRlbGlzdGVkLlhDYWxsQWxyZWFkeVdoaXRlbGlzdGVkAAQEoFRoZSBjYWxsIHdhcyBhbHJlYWR5IHdoaXRlbGlzdGVkOyBOby1PcC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuRQsMRHBhbGxldF9kaXNwYXRjaGVyGHBhbGxldBRFcnJvcgQEVAABKDRFdm1DYWxsRmFpbGVkAAAIPQFUaGUgRVZNIGNhbGwgZXhlY3V0aW9uIGZhaWxlZC4gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIEVWTSByZXR1cm5zIGFuIGV4aXQgcmVhc29u9G90aGVyIHRoYW4gYEV4aXRTdWNjZWVkKFJldHVybmVkKWAgb3IgYEV4aXRTdWNjZWVkKFN0b3BwZWQpYC4oTm90RXZtQ2FsbAABBG0BVGhlIHByb3ZpZGVkIGNhbGwgaXMgbm90IGFuIEVWTSBjYWxsLiBUaGlzIGV4dHJpbnNpYyBvbmx5IGFjY2VwdHMgYHBhbGxldF9ldm06OkNhbGw6OmNhbGxgLixFdm1PdXRPZkdhcwACBHBUaGUgRVZNIGNhbGwgcmFuIG91dCBvZiBnYXMugEV2bUFyaXRobWV0aWNPdmVyZmxvd09yVW5kZXJmbG93AAME9FRoZSBFVk0gY2FsbCByZXN1bHRlZCBpbiBhbiBhcml0aG1ldGljIG92ZXJmbG93IG9yIHVuZGVyZmxvdy5UQWF2ZVN1cHBseUNhcEV4Y2VlZGVkAAQEkEFhdmUgLSBzdXBwbHkgY2FwIGhhcyBiZWVuIGV4Y2VlZGVkLlRBYXZlQm9ycm93Q2FwRXhjZWVkZWQABQSQQWF2ZSAtIGJvcnJvdyBjYXAgaGFzIGJlZW4gZXhjZWVkZWQuhEFhdmVIZWFsdGhGYWN0b3JOb3RCZWxvd1RocmVzaG9sZAAGBMBBYXZlIC0gaGVhbHRoIGZhY3RvciBpcyBub3QgYmVsb3cgdGhlIHRocmVzaG9sZC60QWF2ZUhlYWx0aEZhY3Rvckxvd2VyVGhhbkxpcXVpZGF0aW9uVGhyZXNob2xkAAcE9EFhdmUgLSBoZWFsdGggZmFjdG9yIGlzIGxlc3NlciB0aGFuIHRoZSBsaXF1aWRhdGlvbiB0aHJlc2hvbGR4Q29sbGF0ZXJhbENhbm5vdENvdmVyTmV3Qm9ycm93AAgE7EFhdmUgLSB0aGVyZSBpcyBub3QgZW5vdWdoIGNvbGxhdGVyYWwgdG8gY292ZXIgYSBuZXcgYm9ycm93REFhdmVSZXNlcnZlUGF1c2VkAAkE6EFhdmUgLSB0aGUgcmVzZXJ2ZSBpcyBwYXVzZWQgYW5kIG5vIG9wZXJhdGlvbnMgYXJlIGFsbG93ZWQEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuSQsMVHBhbGxldF9hc3NldF9yZWdpc3RyeRR0eXBlczBBc3NldERldGFpbHMELFN0cmluZ0xpbWl0AAAcARBuYW1lRQIBZE9wdGlvbjxOYW1lPFN0cmluZ0xpbWl0Pj4AAShhc3NldF90eXBlTQIBJEFzc2V0VHlwZQABTGV4aXN0ZW50aWFsX2RlcG9zaXRAARxCYWxhbmNlAAEYc3ltYm9sRQIBbE9wdGlvbjxTeW1ib2w8U3RyaW5nTGltaXQ+PgABIGRlY2ltYWxzUQIBKE9wdGlvbjx1OD4AATh4Y21fcmF0ZV9saW1pdPUBATxPcHRpb248QmFsYW5jZT4AATRpc19zdWZmaWNpZW50RAEQYm9vbAAATQsMVHBhbGxldF9hc3NldF9yZWdpc3RyeRhwYWxsZXQURXJyb3IEBFQAATw0Tm9JZEF2YWlsYWJsZQAABHEBQXNzZXQgSUQgaXMgbm90IGF2YWlsYWJsZS4gVGhpcyBvbmx5IGhhcHBlbnMgd2hlbiBpdCByZWFjaGVzIHRoZSBNQVggdmFsdWUgb2YgZ2l2ZW4gaWQgdHlwZS40QXNzZXROb3RGb3VuZAABBHRJbnZhbGlkIGFzc2V0IG5hbWUgb3Igc3ltYm9sLiBUb29TaG9ydAACBMhMZW5ndGggb2YgbmFtZSBvciBzeW1ib2wgaXMgbGVzcyB0aGFuIG1pbi4gbGVuZ3RoLjRJbnZhbGlkU3ltYm9sAAME0EFzc2V0J3Mgc3ltYm9sIGNhbid0IGNvbnRhaW4gd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIC5IQXNzZXROb3RSZWdpc3RlcmVkAAQExEFzc2V0IElEIGlzIG5vdCByZWdpc3RlcmVkIGluIHRoZSBhc3NldC1yZWdpc3RyeS5YQXNzZXRBbHJlYWR5UmVnaXN0ZXJlZAAFBHBBc3NldCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuVEludmFsaWRTaGFyZWRBc3NldExlbgAGBOxJbmNvcnJlY3QgbnVtYmVyIG9mIGFzc2V0cyBwcm92aWRlZCB0byBjcmVhdGUgc2hhcmVkIGFzc2V0LlBDYW5ub3RVcGRhdGVMb2NhdGlvbgAHBHRDYW5ub3QgdXBkYXRlIGFzc2V0IGxvY2F0aW9uLkhOb3RJblJlc2VydmVkUmFuZ2UACASsU2VsZWN0ZWQgYXNzZXQgaWQgaXMgb3V0IG9mIHJlc2VydmVkIHJhbmdlLmRMb2NhdGlvbkFscmVhZHlSZWdpc3RlcmVkAAkExExvY2F0aW9uIGFscmVhZHkgcmVnaXN0ZXJlZCB3aXRoIGRpZmZlcmVudCBhc3NldC4kRm9yYmlkZGVuAAoEoE9yaWdpbiBpcyBmb3JiaWRkZW4gdG8gc2V0L3VwZGF0ZSB2YWx1ZS5MSW5zdWZmaWNpZW50QmFsYW5jZQALBEBCYWxhbmNlIHRvbyBsb3cuaEZvcmJpZGRlblN1ZmZpY2llbmN5Q2hhbmdlAAwEzFN1ZmZpY2llbnQgYXNzZXRzIGNhbid0IGJlIGNoYW5nZWQgdG8gaW5zdWZmaWNpZW50LkhBc3NldEFscmVhZHlCYW5uZWQADQRgQXNzZXQgaXMgYWxyZWFkeSBiYW5uZWQuOEFzc2V0Tm90QmFubmVkAA4EUEFzc2V0IGlzIG5vdCBiYW5uZWQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LlELDDRwYWxsZXRfY2xhaW1zGHBhbGxldBRFcnJvcgQEVAABDGBJbnZhbGlkRXRoZXJldW1TaWduYXR1cmUAAAR8RXRoZXJldW0gc2lnbmF0dXJlIGlzIG5vdCB2YWxpZFxOb0NsYWltT3JBbHJlYWR5Q2xhaW1lZAABBEhDbGFpbSBpcyBub3QgdmFsaWQ8QmFsYW5jZU92ZXJmbG93AAIE3FZhbHVlIHJlYWNoZWQgbWF4aW11bSBhbmQgY2Fubm90IGJlIGluY3JlbWVudGVkIGZ1cnRoZXIEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuVQsIWHBhbGxldF9nZW5lc2lzX2hpc3RvcnkUQ2hhaW4AAAgBMGdlbmVzaXNfaGFzaCwBEEgyNTYAATxsYXN0X2Jsb2NrX2hhc2gsARBIMjU2AABZCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQAEUwAABABIARhWZWM8VD4AAF0LDFxwYWxsZXRfY29sbGF0b3JfcmV3YXJkcxhwYWxsZXQURXJyb3IEBFQAAQAEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuYQsMPHBhbGxldF9vbW5pcG9vbBR0eXBlcyhBc3NldFN0YXRlBBxCYWxhbmNlAUAAFAEsaHViX3Jlc2VydmVAARxCYWxhbmNlAAEYc2hhcmVzQAEcQmFsYW5jZQABPHByb3RvY29sX3NoYXJlc0ABHEJhbGFuY2UAAQxjYXBAARB1MTI4AAEgdHJhZGFibGV5AgEsVHJhZGFiaWxpdHkAAGULDDxwYWxsZXRfb21uaXBvb2wUdHlwZXMgUG9zaXRpb24IHEJhbGFuY2UBQBxBc3NldElkASgAEAEgYXNzZXRfaWQoARxBc3NldElkAAEYYW1vdW50QAEcQmFsYW5jZQABGHNoYXJlc0ABHEJhbGFuY2UAARRwcmljZX0CAUgoQmFsYW5jZSwgQmFsYW5jZSkAAGkLEDRoeWRyYV9keF9tYXRoIG9tbmlwb29sFHR5cGVzNFNpZ25lZEJhbGFuY2UAAQggUG9zaXRpdmUEAEABHEJhbGFuY2UAAAAgTmVnYXRpdmUEAEABHEJhbGFuY2UAAQAAbQsMPHBhbGxldF9vbW5pcG9vbBhwYWxsZXQURXJyb3IEBFQAAYxMSW5zdWZmaWNpZW50QmFsYW5jZQAABDxCYWxhbmNlIHRvbyBsb3dEQXNzZXRBbHJlYWR5QWRkZWQAAQRwQXNzZXQgaXMgYWxyZWFkeSBpbiBvbW5pcG9vbDRBc3NldE5vdEZvdW5kAAIEYEFzc2V0IGlzIG5vdCBpbiBvbW5pcG9vbDhNaXNzaW5nQmFsYW5jZQADBBkBRmFpbGVkIHRvIGFkZCB0b2tlbiB0byBPbW5pcG9vbCBkdWUgdG8gaW5zdWZmaWNpZW50IGluaXRpYWwgbGlxdWlkaXR5LmBJbnZhbGlkSW5pdGlhbEFzc2V0UHJpY2UABARwSW52YWxpZCBpbml0aWFsIGFzc2V0IHByaWNlLkhCdXlMaW1pdE5vdFJlYWNoZWQABQTkU2xpcHBhZ2UgcHJvdGVjdGlvbiAtIG1pbmltdW0gbGltaXQgaGFzIG5vdCBiZWVuIHJlYWNoZWQuRFNlbGxMaW1pdEV4Y2VlZGVkAAYE2FNsaXBwYWdlIHByb3RlY3Rpb24gLSBtYXhpbXVtIGxpbWl0IGhhcyBiZWVuIGV4Y2VlZGVkLkBQb3NpdGlvbk5vdEZvdW5kAAcEcFBvc2l0aW9uIGhhcyBub3QgYmVlbiBmb3VuZC5ISW5zdWZmaWNpZW50U2hhcmVzAAgEfEluc3VmZmljaWVudCBzaGFyZXMgaW4gcG9zaXRpb24oTm90QWxsb3dlZAAJBIhBc3NldCBpcyBub3QgYWxsb3dlZCB0byBiZSB0cmFkZWQuJEZvcmJpZGRlbgAKBMRTaWduZWQgYWNjb3VudCBpcyBub3Qgb3duZXIgb2YgcG9zaXRpb24gaW5zdGFuY2UuWEFzc2V0V2VpZ2h0Q2FwRXhjZWVkZWQACwSMQXNzZXQgd2VpZ2h0IGNhcCBoYXMgYmVlbiBleGNlZWRlZC5IQXNzZXROb3RSZWdpc3RlcmVkAAwEpEFzc2V0IGlzIG5vdCByZWdpc3RlcmVkIGluIGFzc2V0IHJlZ2lzdHJ5VEluc3VmZmljaWVudExpcXVpZGl0eQANBMRQcm92aWRlZCBsaXF1aWRpdHkgaXMgYmVsb3cgbWluaW11bSBhbGxvd2VkIGxpbWl0ZEluc3VmZmljaWVudFRyYWRpbmdBbW91bnQADgSwVHJhZGVkIGFtb3VudCBpcyBiZWxvdyBtaW5pbXVtIGFsbG93ZWQgbGltaXRgU2FtZUFzc2V0VHJhZGVOb3RBbGxvd2VkAA8EvFNlbGwgb3IgYnV5IHdpdGggc2FtZSBhc3NldCBpZHMgaXMgbm90IGFsbG93ZWQuTEh1YkFzc2V0VXBkYXRlRXJyb3IAEAQVAUh1YiBhc3NldCByZXNlcnZlIHVwZGF0ZSBhZnRlciB0cmFkZSByZXN1bHRlZCBpbiB1bmV4cGVjdGVkIERlY3JlYXNlLkxJbnZhbGlkU2hhcmVzQW1vdW50ABEEmEFtb3VudCBvZiBzaGFyZXMgcHJvdmlkZWQgY2Fubm90IGJlIDAucEludmFsaWRIdWJBc3NldFRyYWRhYmxlU3RhdGUAEgSUSHViIGFzc2V0IGlzIG9ubHkgYWxsb3dlZCB0byBiZSBzb2xkLlRBc3NldFJlZnVuZE5vdEFsbG93ZWQAEwSQQXNzZXQgaXMgbm90IGFsbG93ZWQgdG8gYmUgcmVmdW5kZWQuTE1heE91dFJhdGlvRXhjZWVkZWQAFAS8TWF4IGZyYWN0aW9uIG9mIGFzc2V0IHRvIGJ1eSBoYXMgYmVlbiBleGNlZWRlZC5ITWF4SW5SYXRpb0V4Y2VlZGVkABUEwE1heCBmcmFjdGlvbiBvZiBhc3NldCB0byBzZWxsIGhhcyBiZWVuIGV4Y2VlZGVkLlhQcmljZURpZmZlcmVuY2VUb29IaWdoABYEvE1heCBhbGxvd2VkIHByaWNlIGRpZmZlcmVuY2UgaGFzIGJlZW4gZXhjZWVkZWQuSEludmFsaWRPcmFjbGVQcmljZQAXBKBJbnZhbGlkIG9yYWNsZSBwcmljZSAtIGRpdmlzaW9uIGJ5IHplcm8uUEludmFsaWRXaXRoZHJhd2FsRmVlABgEjEZhaWxlZCB0byBjYWxjdWxhdGUgd2l0aGRyYXdhbCBmZWUuMEZlZU92ZXJkcmFmdAAZBNRNb3JlIHRoYW4gYWxsb3dlZCBhbW91bnQgb2YgZmVlIGhhcyBiZWVuIHRyYW5zZmVycmVkLjxTaGFyZXNSZW1haW5pbmcAGgQ9AVRva2VuIGNhbm5vdCBiZSByZW1vdmVkIGZyb20gT21uaXBvb2wgZHVlIHRvIHNoYXJlcyBzdGlsbCBvd25lZCBieSBvdGhlciB1c2Vycy44QXNzZXROb3RGcm96ZW4AGwQJAVRva2VuIGNhbm5vdCBiZSByZW1vdmVkIGZyb20gT21uaXBvb2wgYmVjYXVzZSBhc3NldCBpcyBub3QgZnJvemVuLjRaZXJvQW1vdW50T3V0ABwEuENhbGN1bGF0ZWQgYW1vdW50IG91dCBmcm9tIHNlbGwgdHJhZGUgaXMgemVyby54RXhpc3RlbnRpYWxEZXBvc2l0Tm90QXZhaWxhYmxlAB0EuEV4aXN0ZW50aWFsIGRlcG9zaXQgb2YgYXNzZXQgaXMgbm90IGF2YWlsYWJsZS40U2xpcHBhZ2VMaW1pdAAeBExTbGlwcGFnZSBwcm90ZWN0aW9uWFByb3RvY29sRmVlTm90Q29uc3VtZWQAHwSkRXh0cmEgcHJvdG9jb2wgZmVlIGhhcyBub3QgYmVlbiBjb25zdW1lZC5ETWF4U2xpcEZlZVRvb0hpZ2gAIATkU2xpcCBmZWUgY29uZmlndXJhdGlvbiBleGNlZWRzIHRoZSBhbGxvd2VkIG1heGltdW0gKDUwJSkuOEludmFyaWFudEVycm9yACEE9EludmFyaWFudCBjaGVjayBmYWlsZWQgaW5zaWRlIGEgdHJhZGUgb3IgbGlxdWlkaXR5IG9wZXJhdGlvbi5kSW52YWxpZE9tbmlwb29sSHViUmVzZXJ2ZQAiCD0BSHViIGFzc2V0IGZyZWUgYmFsYW5jZSBpbiB0aGUgcHJvdG9jb2wgYWNjb3VudCBpcyBsZXNzIHRoYW4gdGhlIHN1bSBvZiByZWNvcmRlZEkBYXNzZXQgaHViIHJlc2VydmVzLiBJbmRpY2F0ZXMgY29ycnVwdGVkIGh1Yi1hc3NldCBhY2NvdW50aW5nOyBzaG91bGQgbmV2ZXIgaGFwcGVuLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5xCwAABAiFA4UDAHULDGBwYWxsZXRfdHJhbnNhY3Rpb25fcGF1c2UYcGFsbGV0FEVycm9yBARUAAEMLENhbm5vdFBhdXNlAAAENGNhbiBub3QgcGF1c2VASW52YWxpZENoYXJhY3RlcgABBGhpbnZhbGlkIGNoYXJhY3RlciBlbmNvZGluZyxOYW1lVG9vTG9uZwACBKBwYWxsZXQgbmFtZSBvciBmdW5jdGlvbiBuYW1lIGlzIHRvbyBsb25nBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LnkLDDRwYWxsZXRfZHVzdGVyGHBhbGxldBRFcnJvcgQEVAABGEhBY2NvdW50V2hpdGVsaXN0ZWQAAASEQWNjb3VudCBpcyBleGNsdWRlZCBmcm9tIGR1c3RpbmcuVEFjY291bnROb3RXaGl0ZWxpc3RlZAABBMBBY2NvdW50IGlzIG5vdCBwcmVzZW50IGluIHRoZSBub24tZHVzdGFibGUgbGlzdC4sWmVyb0JhbGFuY2UAAgRQVGhlIGJhbGFuY2UgaXMgemVyby44Tm9uWmVyb0JhbGFuY2UAAwSpAVRoZSBiYWxhbmNlIHdhcyBub3QgZnVsbHkgZHVzdGVkLCB0aGVyZSBpcyBzb21lIGxlZnRvdmVyIG9uIHRoZSBhY2NvdW50LiBOb3JtYWxseSwgaXQgc2hvdWxkIG5ldmVyIGhhcHBlbi5EQmFsYW5jZVN1ZmZpY2llbnQABAS8VGhlIGJhbGFuY2UgaXMgc3VmZmljaWVudCB0byBrZWVwIGFjY291bnQgb3Blbi5QUmVzZXJ2ZUFjY291bnROb3RTZXQABQRsUmVzZXJ2ZSBhY2NvdW50IGlzIG5vdCBzZXQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Ln0LDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlczhHbG9iYWxGYXJtRGF0YQgEVAAESQAASAEIaWQoATBHbG9iYWxGYXJtSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABKHVwZGF0ZWRfYXQoASxQZXJpb2RPZjxUPgABOHRvdGFsX3NoYXJlc196QAEcQmFsYW5jZQABPGFjY3VtdWxhdGVkX3JwelQBJEZpeGVkVTEyOAABPHJld2FyZF9jdXJyZW5jeSgBKFQ6OkFzc2V0SWQAATxwZW5kaW5nX3Jld2FyZHNAARxCYWxhbmNlAAFgYWNjdW11bGF0ZWRfcGFpZF9yZXdhcmRzQAEcQmFsYW5jZQABQHlpZWxkX3Blcl9wZXJpb2SZAgEsUGVycXVpbnRpbGwAAWBwbGFubmVkX3lpZWxkaW5nX3BlcmlvZHMoASxQZXJpb2RPZjxUPgABRGJsb2Nrc19wZXJfcGVyaW9kKAFEQmxvY2tOdW1iZXJGb3I8VD4AAUhpbmNlbnRpdml6ZWRfYXNzZXQoAShUOjpBc3NldElkAAFUbWF4X3Jld2FyZF9wZXJfcGVyaW9kQAEcQmFsYW5jZQABLG1pbl9kZXBvc2l0QAEcQmFsYW5jZQABWGxpdmVfeWllbGRfZmFybXNfY291bnQoAQx1MzIAAVx0b3RhbF95aWVsZF9mYXJtc19jb3VudCgBDHUzMgABQHByaWNlX2FkanVzdG1lbnRUASRGaXhlZFUxMjgAARRzdGF0ZYELASRGYXJtU3RhdGUAAIELDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlcyRGYXJtU3RhdGUAAQwYQWN0aXZlAAAAHFN0b3BwZWQAAQAoVGVybWluYXRlZAACAACFCwAABAwoKCgAiQsMXHBhbGxldF9saXF1aWRpdHlfbWluaW5nFHR5cGVzNFlpZWxkRmFybURhdGEIBFQABEkAADABCGlkKAEYRmFybUlkAAEodXBkYXRlZF9hdCgBLFBlcmlvZE9mPFQ+AAEwdG90YWxfc2hhcmVzQAEcQmFsYW5jZQABTHRvdGFsX3ZhbHVlZF9zaGFyZXNAARxCYWxhbmNlAAFAYWNjdW11bGF0ZWRfcnB2c1QBJEZpeGVkVTEyOAABPGFjY3VtdWxhdGVkX3JwelQBJEZpeGVkVTEyOAABNGxveWFsdHlfY3VydmWdAgFQT3B0aW9uPExveWFsdHlDdXJ2ZT4AAShtdWx0aXBsaWVyVAE4RmFybU11bHRpcGxpZXIAARRzdGF0ZYELASRGYXJtU3RhdGUAATRlbnRyaWVzX2NvdW50GAEMdTY0AAFIbGVmdF90b19kaXN0cmlidXRlQAEcQmFsYW5jZQABNHRvdGFsX3N0b3BwZWQoASxQZXJpb2RPZjxUPgAAjQsMXHBhbGxldF9saXF1aWRpdHlfbWluaW5nFHR5cGVzLERlcG9zaXREYXRhCARUAARJAAAMARhzaGFyZXNAARxCYWxhbmNlAAEsYW1tX3Bvb2xfaWQoATBUOjpBbW1Qb29sSWQAAUh5aWVsZF9mYXJtX2VudHJpZXORCwH0Qm91bmRlZFZlYzxZaWVsZEZhcm1FbnRyeTxULCBJPiwgVDo6TWF4RmFybUVudHJpZXNQZXJEZXBvc2l0PgAAkQsMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGVCwRTAAAEAJkLARhWZWM8VD4AAJULDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlczhZaWVsZEZhcm1FbnRyeQgEVAAESQAAIAE4Z2xvYmFsX2Zhcm1faWQoATBHbG9iYWxGYXJtSWQAATR5aWVsZF9mYXJtX2lkKAEsWWllbGRGYXJtSWQAATR2YWx1ZWRfc2hhcmVzQAEcQmFsYW5jZQABQGFjY3VtdWxhdGVkX3JwdnNUASRGaXhlZFUxMjgAAWxhY2N1bXVsYXRlZF9jbGFpbWVkX3Jld2FyZHNAARxCYWxhbmNlAAEoZW50ZXJlZF9hdCgBLFBlcmlvZE9mPFQ+AAEodXBkYXRlZF9hdCgBLFBlcmlvZE9mPFQ+AAFMc3RvcHBlZF9hdF9jcmVhdGlvbigBLFBlcmlvZE9mPFQ+AACZCwAAApULAJ0LDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxhwYWxsZXQURXJyb3IIBFQABEkAAXRIR2xvYmFsRmFybU5vdEZvdW5kAAAEbEdsb2JhbCBmYXJtIGRvZXMgbm90IGV4aXN0LkRZaWVsZEZhcm1Ob3RGb3VuZAABBGhZaWVsZCBmYXJtIGRvZXMgbm90IGV4aXN0LkxEb3VibGVDbGFpbUluUGVyaW9kAAIEyE11bHRpcGxlIGNsYWltcyBpbiB0aGUgc2FtZSBwZXJpb2QgaXMgbm90IGFsbG93ZWQuXExpcXVpZGl0eU1pbmluZ0NhbmNlbGVkAAMEdExpcXVpZGl0eSBtaW5pbmcgaXMgY2FuY2VsZWQuXExpcXVpZGl0eU1pbmluZ0lzQWN0aXZlAAQEhExpcXVpZGl0eSBtaW5pbmcgaXMgbm90IGNhbmNlbGVkLmxMaXF1aWRpdHlNaW5pbmdJc05vdFN0b3BwZWQABQRVAUxpcXVpZGl0eSBtaW5pbmcgaXMgaW4gYGFjdGl2ZWAgb3IgYHRlcm1pbmF0ZWRgIHN0YXRlIGFuZCBhY3Rpb24gY2Fubm90IGJlIGNvbXBsZXRlZC4kRm9yYmlkZGVuAAYEpEFjY291bnQgaXMgbm90IGFsbG93ZWQgdG8gcGVyZm9ybSBhY3Rpb24uREludmFsaWRNdWx0aXBsaWVyAAcEhFlpZWxkIGZhcm0gbXVsdGlwbGllciBjYW4ndCBiZSAwLlhZaWVsZEZhcm1BbHJlYWR5RXhpc3RzAAgECQFZaWVsZCBmYXJtIHdpdGggZ2l2ZW4gYGFtbV9wb29sX2lkYCBhbHJlYWR5IGV4aXN0cyBpbiBnbG9iYWwgZmFybS54SW52YWxpZEluaXRpYWxSZXdhcmRQZXJjZW50YWdlAAkEPQFMb3lhbHR5IGN1cnZlJ3MgaW5pdGlhbCByZXdhcmQgcGVyY2VudGFnZSBpcyBub3QgdmFsaWQuIFZhbGlkIHJhbmdlIGlzOiBbMCwgMSkuUEdsb2JhbEZhcm1Jc05vdEVtcHR5AAoEtE9uZSBvciBtb3JlIHlpZWxkIGZhcm1zIGV4aXN0IGluIGdsb2JhbCBmYXJtLmBNaXNzaW5nSW5jZW50aXZpemVkQXNzZXQACwT4RmFybSdzIGBpbmNlbnRpdml6ZWRfYXNzZXRgIGlzIG1pc3NpbmcgaW4gcHJvdmlkZWQgYXNzZXQgcGFpci6ESW5zdWZmaWNpZW50UmV3YXJkQ3VycmVuY3lCYWxhbmNlAAwEqFJld2FyZCBjdXJyZW5jeSBiYWxhbmNlIGlzIG5vdCBzdWZmaWNpZW50LlhJbnZhbGlkQmxvY2tzUGVyUGVyaW9kAA0EdEJsb2NrcyBwZXIgcGVyaW9kIGNhbid0IGJlIDAuVEludmFsaWRZaWVsZFBlclBlcmlvZAAOBHBZaWVsZCBwZXIgcGVyaW9kIGNhbid0IGJlIDAuTEludmFsaWRUb3RhbFJld2FyZHMADwTEVG90YWwgcmV3YXJkcyBpcyBsZXNzIHRoYW4gYE1pblRvdGFsRmFybVJld2FyZHNgLnRJbnZhbGlkUGxhbm5lZFlpZWxkaW5nUGVyaW9kcwAQBAkBUGxhbm5lZCB5aWVsZGluZyBwZXJpb2RzIGlzIGxlc3MgdGhhbiBgTWluUGxhbm5lZFlpZWxkaW5nUGVyaW9kc2AuUE1heEVudHJpZXNQZXJEZXBvc2l0ABEEsE1heGltdW0gbnVtYmVyIG9mIGxvY2tzIHJlYWNoZWQgZm9yIGRlcG9zaXQuKERvdWJsZUxvY2sAEgTgVHJ5aW5nIHRvIGxvY2sgTFAgc2hhcmVzIGludG8gYWxyZWFkeSBsb2NrZWQgeWllbGQgZmFybS5YWWllbGRGYXJtRW50cnlOb3RGb3VuZAATBMRZaWVsZCBmYXJtIGVudHJ5IGRvZXNuJ3QgZXhpc3QgZm9yIGdpdmVuIGRlcG9zaXQuQEdsb2JhbEZhcm1Jc0Z1bGwAFAhJAU1heCBudW1iZXIgb2YgeWllbGQgZmFybXMgaW4gZ2xvYmFsIGZhcm0gd2FzIHJlYWNoZWQuIEdsb2JhbCBmYXJtIGNhbid0IGFjY2VwdCBuZXf4eWllbGQgZmFybXMgdW50aWwgc29tZSB5aWVsZCBmYXJtIGlzIG5vdCByZW1vdmVkIGZyb20gc3RvcmFnZS5ESW52YWxpZE1pbkRlcG9zaXQAFQS0SW52YWxpZCBtaW4uIGRlcG9zaXQgd2FzIHNldCBmb3IgZ2xvYmFsIGZhcm0uWEludmFsaWRQcmljZUFkanVzdG1lbnQAFgScUHJpY2UgYWRqdXN0bWVudCBtdWx0aXBsaWVyIGNhbid0IGJlIDAuREVycm9yR2V0QWNjb3VudElkABcEgEFjY291bnQgY3JlYXRpb24gZnJvbSBpZCBmYWlsZWQuVEluY29ycmVjdFZhbHVlZFNoYXJlcwAYBCUBVmFsdWUgb2YgZGVwb3NpdGVkIHNoYXJlcyBhbW91bnQgaW4gcmV3YXJkIGN1cnJlbmN5IGlzIGJlbGxvdyBtaW4uIGxpbWl0LmxSZXdhcmRDdXJyZW5jeU5vdFJlZ2lzdGVyZWQAGQTYYHJld2FyZF9jdXJyZW5jeWAgaXMgbm90IHJlZ2lzdGVyZWQgaW4gYXNzZXQgcmVnaXN0cnkueEluY2VudGl2aXplZEFzc2V0Tm90UmVnaXN0ZXJlZAAaBORgaW5jZW50aXZpemVkX2Fzc2V0YCBpcyBub3QgcmVnaXN0ZXJlZCBpbiBhc3NldCByZWdpc3RyeS5EQW1tUG9vbElkTWlzbWF0Y2gAGwT0UHJvdmlkZWQgYGFtbV9wb29sX2lkYCBkb2Vzbid0IG1hdGNoIGRlcG9zaXQncyBgYW1tX3Bvb2xfaWRgLkRJbmNvbnNpc3RlbnRTdGF0ZQQAoQsBWEluY29uc2lzdGVudFN0YXRlRXJyb3IAHAhlAUFjdGlvbiBjYW5ub3QgYmUgY29tcGxldGVkIGJlY2F1c2UgdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJyZWQuIFRoaXMgc2hvdWxkIGJlIHJlcG9ydGVkYHRvIHByb3RvY29sIG1haW50YWluZXJzLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6hCwxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcYcGFsbGV0WEluY29uc2lzdGVudFN0YXRlRXJyb3IAAUREWWllbGRGYXJtTm90Rm91bmQAAABIR2xvYmFsRmFybU5vdEZvdW5kAAEAUExpcXVpZGl0eUlzTm90QWN0aXZlAAIAVEdsb2JhbEZhcm1Jc05vdEFjdGl2ZQADADxEZXBvc2l0Tm90Rm91bmQABAA0SW52YWxpZFBlcmlvZAAFAGxOb3RFbm91Z2hSZXdhcmRzSW5ZaWVsZEZhcm0ABgBkSW52YWxpZExpdmVZaWVsRmFybXNDb3VudAAHAGxJbnZhbGlkVG90YWxZaWVsZEZhcm1zQ291bnQACABwSW52YWxpZFlpZWxkRmFybUVudHJpZXNDb3VudAAJAEhJbnZhbGlkVG90YWxTaGFyZXMACgBMSW52YWxpZFZhbHVlZFNoYXJlcwALAExJbnZhbGlkVG90YWxTaGFyZXNaAAwAdEludmFsaWRQYWlkQWNjdW11bGF0ZWRSZXdhcmRzAA0ANEludmFsaWRGYXJtSWQADgBgSW52YWxpZExveWFsdHlNdWx0aXBsaWVyAA8AcE5vRXhpc3RlbnRpYWxEZXBvc2l0Rm9yQXNzZXQAEAAApQsMgHBhbGxldF9vbW5pcG9vbF9saXF1aWRpdHlfbWluaW5nGHBhbGxldBRFcnJvcgQEVAABJDRBc3NldE5vdEZvdW5kAAAEdEFzc2V0IGlzIG5vdCBpbiB0aGUgb21uaXBvb2wuJEZvcmJpZGRlbgABBKxTaWduZWQgYWNjb3VudCBpcyBub3Qgb3duZXIgb2YgdGhlIGRlcG9zaXQuSFplcm9DbGFpbWVkUmV3YXJkcwACBFxSZXdhcmRzIHRvIGNsYWltIGFyZSAwLkRJbmNvbnNpc3RlbnRTdGF0ZQQAqQsBWEluY29uc2lzdGVudFN0YXRlRXJyb3IAAwhlAUFjdGlvbiBjYW5ub3QgYmUgY29tcGxldGVkIGJlY2F1c2UgdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJyZWQuIFRoaXMgc2hvdWxkIGJlIHJlcG9ydGVkYHRvIHByb3RvY29sIG1haW50YWluZXJzLkhPcmFjbGVOb3RBdmFpbGFibGUABAS8T3JhY2xlIGNvdWxkIG5vdCBiZSBmb3VuZCBmb3IgcmVxdWVzdGVkIGFzc2V0cy5sUHJpY2VBZGp1c3RtZW50Tm90QXZhaWxhYmxlAAUEMQFPcmFjbGUgcHJvdmlkaW5nIGBwcmljZV9hZGp1c3RtZW50YCBjb3VsZCBub3QgYmUgZm91bmQgZm9yIHJlcXVlc3RlZCBhc3NldHMuWE5vRmFybUVudHJpZXNTcGVjaWZpZWQABgRoTm8gZmFybXMgc3BlY2lmaWVkIHRvIGpvaW5ETm9Bc3NldHNTcGVjaWZpZWQABwSUTm8gYXNzZXRzIHNwZWNpZmllZCBpbiB0aGUgd2l0aGRyYXdhbEhQb3NpdGlvbklkTWlzbWF0Y2gACAQpAVRoZSBwcm92aWRlZCBwb3NpdGlvbl9pZCBkb2VzIG5vdCBtYXRjaCB0aGUgZGVwb3NpdCdzIGFzc29jaWF0ZWQgcG9zaXRpb24uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LqkLDIBwYWxsZXRfb21uaXBvb2xfbGlxdWlkaXR5X21pbmluZxhwYWxsZXRYSW5jb25zaXN0ZW50U3RhdGVFcnJvcgABCERNaXNzaW5nTHBQb3NpdGlvbgAAAExEZXBvc2l0RGF0YU5vdEZvdW5kAAEAAK0LCChwYWxsZXRfb3RjFE9yZGVyCCRBY2NvdW50SWQBABxBc3NldElkASgAGAEUb3duZXIAASRBY2NvdW50SWQAASBhc3NldF9pbigBHEFzc2V0SWQAASRhc3NldF9vdXQoARxBc3NldElkAAEkYW1vdW50X2luQAEcQmFsYW5jZQABKGFtb3VudF9vdXRAARxCYWxhbmNlAAFIcGFydGlhbGx5X2ZpbGxhYmxlRAEQYm9vbAAAsQsMKHBhbGxldF9vdGMYcGFsbGV0FEVycm9yBARUAAEgSEFzc2V0Tm90UmVnaXN0ZXJlZAAABIBBc3NldCBkb2VzIG5vdCBleGlzdCBpbiByZWdpc3RyeTRPcmRlck5vdEZvdW5kAAEEVE9yZGVyIGNhbm5vdCBiZSBmb3VuZERPcmRlcklkT3V0T2ZCb3VuZAACBIhTaXplIG9mIG9yZGVyIElEIGV4Y2VlZHMgdGhlIGJvdW5kZE9yZGVyTm90UGFydGlhbGx5RmlsbGFibGUAAwT4Q2Fubm90IHBhcnRpYWxseSBmaWxsIGFuIG9yZGVyIHdoaWNoIGlzIG5vdCBwYXJ0aWFsbHkgZmlsbGFibGVMT3JkZXJBbW91bnRUb29TbWFsbAAEDGEBT3JkZXIgYW1vdW50X2luIGFuZCBhbW91bnRfb3V0IG11c3QgYXQgYWxsIHRpbWVzIGJlIGdyZWF0ZXIgdGhhbiB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdPRmb3IgdGhlIGFzc2V0IG11bHRpcGxpZWQgYnkgdGhlIEV4aXN0ZW50aWFsRGVwb3NpdE11bHRpcGxpZXIu8EEgZmlsbCBvcmRlciBtYXkgbm90IGxlYXZlIGJlaGluZCBhbW91bnRzIHNtYWxsZXIgdGhhbiB0aGlzLiRNYXRoRXJyb3IABQRwRXJyb3Igd2l0aCBtYXRoIGNhbGN1bGF0aW9ucyRGb3JiaWRkZW4ABgToVGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gY29tcGxldGUgdGhlIGFjdGlvbmhJbnN1ZmZpY2llbnRSZXNlcnZlZEFtb3VudAAHBHxSZXNlcnZlZCBhbW91bnQgbm90IHN1ZmZpY2llbnQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LrULCFhwYWxsZXRfY2lyY3VpdF9icmVha2VyQFRyYWRlVm9sdW1lTGltaXQEBFQAAAwBJHZvbHVtZV9pbkABKFQ6OkJhbGFuY2UAASh2b2x1bWVfb3V0QAEoVDo6QmFsYW5jZQABFGxpbWl0QAEoVDo6QmFsYW5jZQAAuQsIWHBhbGxldF9jaXJjdWl0X2JyZWFrZXI4TGlxdWlkaXR5TGltaXQEBFQAAAgBJGxpcXVpZGl0eUABKFQ6OkJhbGFuY2UAARRsaW1pdEABKFQ6OkJhbGFuY2UAAL0LDFhwYWxsZXRfY2lyY3VpdF9icmVha2VyFHR5cGVzOExvY2tkb3duU3RhdHVzCCxCbG9ja051bWJlcgEoHEJhbGFuY2UBQAEIGExvY2tlZAQAKAEsQmxvY2tOdW1iZXIAAAAgVW5sb2NrZWQEAD0DAVgoQmxvY2tOdW1iZXIsIEJhbGFuY2UpAAEAAMELAAAECEAYAMULDFhwYWxsZXRfY2lyY3VpdF9icmVha2VyGHBhbGxldBRFcnJvcgQEVAABNERJbnZhbGlkTGltaXRWYWx1ZQAABMhJbnZhbGlkIHZhbHVlIGZvciBhIGxpbWl0LiBMaW1pdCBtdXN0IGJlIG5vbi16ZXJvLnxMaXF1aWRpdHlMaW1pdE5vdFN0b3JlZEZvckFzc2V0AAEEvEFsbG93ZWQgbGlxdWlkaXR5IGxpbWl0IGlzIG5vdCBzdG9yZWQgZm9yIGFzc2V0YFRva2VuT3V0Zmxvd0xpbWl0UmVhY2hlZAACBLhUb2tlbiB0cmFkZSBvdXRmbG93IHBlciBibG9jayBoYXMgYmVlbiByZWFjaGVkXFRva2VuSW5mbHV4TGltaXRSZWFjaGVkAAMEtFRva2VuIHRyYWRlIGluZmx1eCBwZXIgYmxvY2sgaGFzIGJlZW4gcmVhY2hlZIBNYXhMaXF1aWRpdHlMaW1pdFBlckJsb2NrUmVhY2hlZAAEBORNYXhpbXVtIHBvb2wncyBsaXF1aWRpdHkgbGltaXQgcGVyIGJsb2NrIGhhcyBiZWVuIHJlYWNoZWQoTm90QWxsb3dlZAAFBJBBc3NldCBpcyBub3QgYWxsb3dlZCB0byBoYXZlIGEgbGltaXQ8QXNzZXRJbkxvY2tkb3duAAYMOQFBc3NldCBzdGlsbCBpbiBsb2NrZG93biBhcyBpdCByZWFjaGVkIHRoZSBhbGxvd2VkIGRlcG9zaXQgbGltaXQgZm9yIHRoZSBwZXJpb2RxAVF1ZXJ5IHRoZSBgYXNzZXRfbG9ja2Rvd25fc3RhdGVgIHN0b3JhZ2UgdG8gZGV0ZXJtaW5lIHVudGlsIHdoaWNoIGJsb2NrIHRoZSBhc3NldCBpcyBsb2NrZWQsuHNvIHRoYXQgdGhlIGRlcG9zaXQgY2FuIGJlIHJlbGVhc2VkIGFmdGVyd2FyZC5IQXNzZXROb3RJbkxvY2tkb3duAAcEaEFzc2V0IGlzIG5vdCBpbiBhIGxvY2tkb3duNEludmFsaWRBbW91bnQACAR4SW52YWxpZCBhbW91bnQgdG8gc2F2ZSBkZXBvc2l0pERlcG9zaXRMaW1pdEV4Y2VlZGVkRm9yV2hpdGVsaXN0ZWRBY2NvdW50AAkI6ERlcG9zaXQgbGltaXQgd291bGQgYmUgZXhjZWVkZWQgZm9yIGEgd2hpdGVsaXN0ZWQgYWNjb3VudC4RAU9wZXJhdGlvbiByZWplY3RlZCB0byBwcmV2ZW50IGZ1bmRzIGJlaW5nIGxvY2tlZCBvbiBzeXN0ZW0gYWNjb3VudHMuWFdpdGhkcmF3TG9ja2Rvd25BY3RpdmUACgRtAUdsb2JhbCBsb2NrZG93biBpcyBhY3RpdmUgYW5kIHdpdGhkcmF3YWxzIHRoYXQgcGFydGljaXBhdGUgaW4gdGhlIGdsb2JhbCBsaW1pdCBhcmUgYmxvY2tlZC5sR2xvYmFsV2l0aGRyYXdMaW1pdEV4Y2VlZGVkAAsEtQFBcHBseWluZyB0aGUgaW5jcmVtZW50IHdvdWxkIGV4Y2VlZCB0aGUgY29uZmlndXJlZCBnbG9iYWwgbGltaXQgLT4gbG9ja2Rvd24gaXMgdHJpZ2dlcmVkIGFuZCBvcGVyYXRpb24gZmFpbHMuUEZhaWxlZFRvQ29udmVydEFzc2V0AAwE8EFzc2V0IHRvIHdpdGhkcmF3IGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gcmVmZXJlbmNlIGN1cnJlbmN5LgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7JCwxUcGFsbGV0X3JvdXRlX2V4ZWN1dG9yGHBhbGxldBRFcnJvcgQEVAABKExUcmFkaW5nTGltaXRSZWFjaGVkAAAEiFRoZSB0cmFkaW5nIGxpbWl0IGhhcyBiZWVuIHJlYWNoZWRETWF4VHJhZGVzRXhjZWVkZWQAAQS0VGhlIHRoZSBtYXggbnVtYmVyIG9mIHRyYWRlcyBsaW1pdCBpcyByZWFjaGVkQFBvb2xOb3RTdXBwb3J0ZWQAAgTIVGhlIEFNTSBwb29sIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGV4ZWN1dGluZyB0cmFkZXNMSW5zdWZmaWNpZW50QmFsYW5jZQADBNBUaGUgdXNlciBoYXMgbm90IGVub3VnaCBiYWxhbmNlIHRvIGV4ZWN1dGUgdGhlIHRyYWRlWFJvdXRlQ2FsY3VsYXRpb25GYWlsZWQABAQNAVRoZSBjYWxjdWxhdGlvbiBvZiByb3V0ZSB0cmFkZSBhbW91bnRzIGZhaWxlZCBpbiB0aGUgdW5kZXJseWluZyBBTU0wSW52YWxpZFJvdXRlAAUEUFRoZSByb3V0ZSBpcyBpbnZhbGlkaFJvdXRlVXBkYXRlSXNOb3RTdWNjZXNzZnVsAAYEjFRoZSByb3V0ZSB1cGRhdGUgd2FzIG5vdCBzdWNjZXNzZnVsQFJvdXRlSGFzTm9PcmFjbGUABwS0Um91dGUgY29udGFpbnMgYXNzZXRzIHRoYXQgaGFzIG5vIG9yYWNsZSBkYXRhVEludmFsaWRSb3V0ZUV4ZWN1dGlvbgAIBMBUaGUgcm91dGUgZXhlY3V0aW9uIGZhaWxlZCBpbiB0aGUgdW5kZXJseWluZyBBTU0oTm90QWxsb3dlZAAJBIxUcmFkaW5nIHNhbWUgYXNzZXRzIGlzIG5vdCBhbGxvd2VkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7NCwxMcGFsbGV0X2R5bmFtaWNfZmVlcxR0eXBlcyBGZWVFbnRyeQgMRmVlAXUCFEJsb2NrASgADAEkYXNzZXRfZmVldQIBDEZlZQABMHByb3RvY29sX2ZlZXUCAQxGZWUAASR0aW1lc3RhbXAoARRCbG9jawAA0QsMTHBhbGxldF9keW5hbWljX2ZlZXMYcGFsbGV0FEVycm9yBARUAAEEUEludmFsaWRGZWVQYXJhbWV0ZXJzAAAEfEludmFsaWQgZmVlIHBhcmFtZXRlcnMgcHJvdmlkZWQEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu1QsMOHBhbGxldF9zdGFraW5nFHR5cGVzLFN0YWtpbmdEYXRhAAAMASx0b3RhbF9zdGFrZUABHEJhbGFuY2UAAXBhY2N1bXVsYXRlZF9yZXdhcmRfcGVyX3N0YWtlVAEkRml4ZWRVMTI4AAFQcG90X3Jlc2VydmVkX2JhbGFuY2VAARxCYWxhbmNlAADZCww4cGFsbGV0X3N0YWtpbmcUdHlwZXMgUG9zaXRpb24ELEJsb2NrTnVtYmVyASgAHAEUc3Rha2VAARxCYWxhbmNlAAE0YWN0aW9uX3BvaW50c0ABFFBvaW50AAFAcmV3YXJkX3Blcl9zdGFrZVQBJEZpeGVkVTEyOAABKGNyZWF0ZWRfYXQoASxCbG9ja051bWJlcgABYGFjY3VtdWxhdGVkX3NsYXNoX3BvaW50c0ABFFBvaW50AAFoYWNjdW11bGF0ZWRfdW5wYWlkX3Jld2FyZHNAARxCYWxhbmNlAAFoYWNjdW11bGF0ZWRfbG9ja2VkX3Jld2FyZHNAARxCYWxhbmNlAADdCww4cGFsbGV0X3N0YWtpbmcUdHlwZXMYVm90aW5nBCBNYXhWb3RlcwAABAEUdm90ZXPhCwG0Qm91bmRlZFZlYzwoUmVmZXJlbmR1bUluZGV4LCBWb3RlKSwgTWF4Vm90ZXM+AADhCwxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAeULBFMAAAQA8QsBGFZlYzxUPgAA5QsAAAQIKOkLAOkLDDhwYWxsZXRfc3Rha2luZxR0eXBlcxBWb3RlAAAIARhhbW91bnRAARxCYWxhbmNlAAEoY29udmljdGlvbu0LAShDb252aWN0aW9uAADtCww4cGFsbGV0X3N0YWtpbmcUdHlwZXMoQ29udmljdGlvbgABHBBOb25lAAAAIExvY2tlZDF4AAEAIExvY2tlZDJ4AAIAIExvY2tlZDN4AAMAIExvY2tlZDR4AAQAIExvY2tlZDV4AAUAIExvY2tlZDZ4AAYAAPELAAAC5QsA9QsAAAQIACgA+QsMOHBhbGxldF9zdGFraW5nGHBhbGxldBRFcnJvcgQEVAABPExJbnN1ZmZpY2llbnRCYWxhbmNlAAAETEJhbGFuY2UgaXMgdG9vIGxvdy5ESW5zdWZmaWNpZW50U3Rha2UAAQRkU3Rha2VkIGFtb3VudCBpcyB0b28gbG93LkBQb3NpdGlvbk5vdEZvdW5kAAIEkFN0YWtpbmcgcG9zaXRpb24gaGFzIG5vdCBiZWVuIGZvdW5kLjxNYXhWb3Rlc1JlYWNoZWQAAwToTWF4aW11bSBhbW91bnQgb2Ygdm90ZXMgd2VyZSByZWFjaGVkIGZvciBzdGFraW5nIHBvc2l0aW9uLjhOb3RJbml0aWFsaXplZAAEBGxTdGFraW5nIGlzIG5vdCBpbml0aWFsaXplZC5IQWxyZWFkeUluaXRpYWxpemVkAAUEfFN0YWtpbmcgaXMgYWxyZWFkeSBpbml0aWFsaXplZC4oQXJpdGhtZXRpYwAGBERBcml0aG1ldGljIGVycm9yLkRNaXNzaW5nUG90QmFsYW5jZQAHBFhQb3QncyBiYWxhbmNlIGlzIHplcm8uVFBvc2l0aW9uQWxyZWFkeUV4aXN0cwAIBIhBY2NvdW50J3MgcG9zaXRpb24gYWxyZWFkeSBleGlzdHMuJEZvcmJpZGRlbgAJBLxTaWduZXIgaXMgbm90IGFuIG93bmVyIG9mIHRoZSBzdGFraW5nIHBvc2l0aW9uLjRFeGlzdGluZ1ZvdGVzAAoEjFBvc2l0aW9uIGNvbnRhaW5zIHJlZ2lzdGVyZWQgdm90ZXMuWEV4aXN0aW5nUHJvY2Vzc2VkVm90ZXMACwSFAVBvc2l0aW9uIGNvbnRhaW5zIHByb2Nlc3NlZCB2b3Rlcy4gUmVtb3ZlZCB0aGVzZSB2b3RlcyBmaXJzdCBiZWZvcmUgaW5jcmVhc2luZyBzdGFrZSBvciBjbGFpbWluZy5IQWN0aXZlVm90ZXNPbmdvaW5nAAwMEQFSZXRhaW5lZCBmb3IgQVBJL2Vycm9yLWluZGV4IHN0YWJpbGl0eS4gTm8gbG9uZ2VyIGVtaXR0ZWQ6IG1pZ3JhdGlvbh0BKGBmb3JjZV91bnN0YWtlYCkgbm93IHJlZnVzZXMgYW55IHJlZ2lzdGVyZWQgdm90ZSB3aXRoIGBFeGlzdGluZ1ZvdGVzYCywbWF0Y2hpbmcgdGhlIHJlZ3VsYXIgYHVuc3Rha2VgIHByZWNvbmRpdGlvbi5UQmxvY2tlZEJ5RXh0ZXJuYWxMb2NrAA0M8ENhbGxlcidzIEhEWCBpcyBjbGFpbWVkIGJ5IGFub3RoZXIgcGFsbGV0IChlLmcuIGBnaGR4bG9ja2ApLg0BU3RyaWN0IHBvbGljeTogbGVnYWN5IHN0YWtpbmcgcmVmdXNlcyBhbnkgSERYIGJhY2tpbmcgdGhhdCBvdmVybGFwc5h3aXRoIGEgbm9uLXdoaXRlbGlzdGVkIGxvY2sgZWxzZXdoZXJlLkRJbmNvbnNpc3RlbnRTdGF0ZQQA/QsBWEluY29uc2lzdGVudFN0YXRlRXJyb3IADghlAUFjdGlvbiBjYW5ub3QgYmUgY29tcGxldGVkIGJlY2F1c2UgdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJyZWQuIFRoaXMgc2hvdWxkIGJlIHJlcG9ydGVkYHRvIHByb3RvY29sIG1haW50YWluZXJzLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC79Cww4cGFsbGV0X3N0YWtpbmcYcGFsbGV0WEluY29uc2lzdGVudFN0YXRlRXJyb3IAARRAUG9zaXRpb25Ob3RGb3VuZAAAAFhOZWdhdGl2ZVBlbmRpbmdSZXdhcmRzAAEAVE5lZ2F0aXZlVW5wYWlkUmV3YXJkcwACAEBUb29NYW55UG9zaXRpb25zAAMAKEFyaXRobWV0aWMABAAAAQwMRHBhbGxldF9zdGFibGVzd2FwFHR5cGVzIFBvb2xJbmZvCBxBc3NldElkASgsQmxvY2tOdW1iZXIBKAAYARhhc3NldHMNAwHEQm91bmRlZFZlYzxBc3NldElkLCBDb25zdFUzMjxNQVhfQVNTRVRTX0lOX1BPT0w+PgABVGluaXRpYWxfYW1wbGlmaWNhdGlvbuUHAShOb25aZXJvVTE2AAFMZmluYWxfYW1wbGlmaWNhdGlvbuUHAShOb25aZXJvVTE2AAE0aW5pdGlhbF9ibG9jaygBLEJsb2NrTnVtYmVyAAEsZmluYWxfYmxvY2soASxCbG9ja051bWJlcgABDGZlZXUCARxQZXJtaWxsAAAFDAxEcGFsbGV0X3N0YWJsZXN3YXAUdHlwZXMwUG9vbFNuYXBzaG90BBxBc3NldElkASgAHAEYYXNzZXRzDQMBxEJvdW5kZWRWZWM8QXNzZXRJZCwgQ29uc3RVMzI8TUFYX0FTU0VUU19JTl9QT09MPj4AASByZXNlcnZlcwkMAdhCb3VuZGVkVmVjPEFzc2V0UmVzZXJ2ZSwgQ29uc3RVMzI8TUFYX0FTU0VUU19JTl9QT09MPj4AATRhbXBsaWZpY2F0aW9uQAEQdTEyOAABDGZlZXUCARxQZXJtaWxsAAEkYmxvY2tfZmVldQIBHFBlcm1pbGwAARBwZWdz8QcBxEJvdW5kZWRWZWM8UGVnVHlwZSwgQ29uc3RVMzI8TUFYX0FTU0VUU19JTl9QT09MPj4AAThzaGFyZV9pc3N1YW5jZUABHEJhbGFuY2UAAAkMDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBDQwEUwAABAARDAEYVmVjPFQ+AAANDBA0aHlkcmFfZHhfbWF0aChzdGFibGVzd2FwFHR5cGVzMEFzc2V0UmVzZXJ2ZQAACAEYYW1vdW50QAEcQmFsYW5jZQABIGRlY2ltYWxzCAEIdTgAABEMAAACDQwAFQwEOFJhbmdlSW5jbHVzaXZlBAxJZHgB5QcACAEUc3RhcnTlBwEMSWR4AAEMZW5k5QcBDElkeAAAGQwMRHBhbGxldF9zdGFibGVzd2FwGHBhbGxldBRFcnJvcgQEVAABhDxJbmNvcnJlY3RBc3NldHMAAAQZAUNyZWF0aW5nIGEgcG9vbCB3aXRoIHNhbWUgYXNzZXRzIG9yIGxlc3MgdGhhbiAyIGFzc2V0cyBpcyBub3QgYWxsb3dlZC5ETWF4QXNzZXRzRXhjZWVkZWQAAQSsTWF4aW11bSBudW1iZXIgb2YgYXNzZXRzIGhhcyBiZWVuIGV4Y2VlZGVkLjBQb29sTm90Rm91bmQAAgSgQSBwb29sIHdpdGggZ2l2ZW4gYXNzZXRzIGRvZXMgbm90IGV4aXN0LihQb29sRXhpc3RzAAMEoEEgcG9vbCB3aXRoIGdpdmVuIGFzc2V0cyBhbHJlYWR5IGV4aXN0cy44QXNzZXROb3RJblBvb2wABARkQXNzZXQgaXMgbm90IGluIHRoZSBwb29sLlxTaGFyZUFzc2V0Tm90UmVnaXN0ZXJlZAAFBKhTaGFyZSBhc3NldCBpcyBub3QgcmVnaXN0ZXJlZCBpbiBSZWdpc3RyeS5YU2hhcmVBc3NldEluUG9vbEFzc2V0cwAGBMhTaGFyZSBhc3NldCBpcyBhbW91bnQgYXNzZXRzIHdoZW4gY3JlYXRpbmcgYSBwb29sLkhBc3NldE5vdFJlZ2lzdGVyZWQABwTYT25lIG9yIG1vcmUgYXNzZXRzIGFyZSBub3QgcmVnaXN0ZXJlZCBpbiBBc3NldFJlZ2lzdHJ5SEludmFsaWRBc3NldEFtb3VudAAIBAEBSW52YWxpZCBhc3NldCBhbW91bnQgcHJvdmlkZWQuIEFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLkxJbnN1ZmZpY2llbnRCYWxhbmNlAAkE5EJhbGFuY2Ugb2YgYW4gYXNzZXQgaXMgbm90IHN1ZmZpY2llbnQgdG8gcGVyZm9ybSBhIHRyYWRlLkhJbnN1ZmZpY2llbnRTaGFyZXMACgQFAUJhbGFuY2Ugb2YgYSBzaGFyZSBhc3NldCBpcyBub3Qgc3VmZmljaWVudCB0byB3aXRoZHJhdyBsaXF1aWRpdHkuVEluc3VmZmljaWVudExpcXVpZGl0eQALBLxMaXF1aWRpdHkgaGFzIG5vdCByZWFjaGVkIHRoZSByZXF1aXJlZCBtaW5pbXVtLnhJbnN1ZmZpY2llbnRMaXF1aWRpdHlSZW1haW5pbmcADATkSW5zdWZmaWNpZW50IGxpcXVpZGl0eSBsZWZ0IGluIHRoZSBwb29sIGFmdGVyIHdpdGhkcmF3YWwuZEluc3VmZmljaWVudFRyYWRpbmdBbW91bnQADQToQW1vdW50IGlzIGxlc3MgdGhhbiB0aGUgbWluaW11bSB0cmFkaW5nIGFtb3VudCBjb25maWd1cmVkLkhCdXlMaW1pdE5vdFJlYWNoZWQADgTATWluaW11bSBsaW1pdCBoYXMgbm90IGJlZW4gcmVhY2hlZCBkdXJpbmcgdHJhZGUuRFNlbGxMaW1pdEV4Y2VlZGVkAA8EtE1heGltdW0gbGltaXQgaGFzIGJlZW4gZXhjZWVkZWQgZHVyaW5nIHRyYWRlLlxJbnZhbGlkSW5pdGlhbExpcXVpZGl0eQAQBJxJbml0aWFsIGxpcXVpZGl0eSBvZiBhc3NldCBtdXN0IGJlID4gMC5QSW52YWxpZEFtcGxpZmljYXRpb24AEQSoQW1wbGlmaWNhdGlvbiBpcyBvdXRzaWRlIGNvbmZpZ3VyZWQgcmFuZ2UuYEluc3VmZmljaWVudFNoYXJlQmFsYW5jZQASBBkBUmVtYWluaW5nIGJhbGFuY2Ugb2Ygc2hhcmUgYXNzZXQgaXMgYmVsb3cgYXNzZXQncyBleGlzdGVudGlhbCBkZXBvc2l0LihOb3RBbGxvd2VkABMEzE5vdCBhbGxvd2VkIHRvIHBlcmZvcm0gYW4gb3BlcmF0aW9uIG9uIGdpdmVuIGFzc2V0LiRQYXN0QmxvY2sAFASMRnV0dXJlIGJsb2NrIG51bWJlciBpcyBpbiB0aGUgcGFzdC5EU2FtZUFtcGxpZmljYXRpb24AFQTETmV3IGFtcGxpZmljYXRpb24gaXMgZXF1YWwgdG8gdGhlIHByZXZpb3VzIHZhbHVlLjRTbGlwcGFnZUxpbWl0ABYEUFNsaXBwYWdlIHByb3RlY3Rpb24uPFVua25vd25EZWNpbWFscwAXBIhGYWlsZWQgdG8gcmV0cmlldmUgYXNzZXQgZGVjaW1hbHMuUEluY29ycmVjdEluaXRpYWxQZWdzABgEjExpc3Qgb2YgcHJvdmlkZWQgcGVncyBpcyBpbmNvcnJlY3QuWE1pc3NpbmdUYXJnZXRQZWdPcmFjbGUAGQSARmFpbGVkIHRvIHJldHJpZXZlIG9yYWNsZSBlbnRyeS5YSW5jb3JyZWN0QXNzZXREZWNpbWFscwAaBCUBQ3JlYXRpbmcgcG9vbCB3aXRoIHBlZ3MgaXMgbm90IGFsbG93ZWQgZm9yIGFzc2V0IHdpdGggZGlmZmVyZW50IGRlY2ltYWxzLixOb1BlZ1NvdXJjZQAbBIxQb29sIGRvZXMgbm90IGhhdmUgcGVncyBjb25maWd1cmVkLjRaZXJvQW1vdW50T3V0ABwEmFRyYWRlIHdvdWxkIHJlc3VsdCBpbiB6ZXJvIGFtb3VudCBvdXQuMFplcm9BbW91bnRJbgAdBJRUcmFkZSB3b3VsZCByZXN1bHQgaW4gemVybyBhbW91bnQgaW4uOEludmFyaWFudEVycm9yAB4E9EludmFyaWFudCBjaGVjayBmYWlsZWQgaW5zaWRlIGEgdHJhZGUgb3IgbGlxdWlkaXR5IG9wZXJhdGlvbi5kSW5zdWZmaWNpZW50U2hhcmVJc3N1YW5jZQAfBA0BQXR0ZW1wdCB0byBidXJuIG1vcmUgc2hhcmVzIHRoYW4gdGhlIHBvb2wncyB0cmFja2VkIHNoYXJlIGlzc3VhbmNlLmBVbmFjY291bnRlZFNoYXJlSXNzdWFuY2UAIASpAVRvdGFsIGlzc3VhbmNlIG9mIHBvb2wgc2hhcmVzIGV4Y2VlZHMgdGhlIHBhbGxldC10cmFja2VkIGlzc3VhbmNlIC0gc2hhcmVzIHdlcmUgbWludGVkIG91dHNpZGUgdGhlIHBhbGxldC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuHQwAAAQIKBgAIQwMMHBhbGxldF9ib25kcxhwYWxsZXQURXJyb3IEBFQAARw0Tm90UmVnaXN0ZXJlZAAABExCb25kIG5vdCByZWdpc3RlcmVkJE5vdE1hdHVyZQABBEhCb25kIGlzIG5vdCBtYXR1cmU8SW52YWxpZE1hdHVyaXR5AAIEYE1hdHVyaXR5IG5vdCBsb25nIGVub3VnaDxEaXNhbGxvd2VkQXNzZXQAAwSsQXNzZXQgdHlwZSBub3QgYWxsb3dlZCBmb3IgdW5kZXJseWluZyBhc3NldDRBc3NldE5vdEZvdW5kAAQEqEFzc2V0IGlzIG5vdCByZWdpc3RlcmVkIGluIGBBc3NldFJlZ2lzdHJ5YDxJbnZhbGlkQm9uZE5hbWUABQRwR2VuZXJhdGVkIG5hbWUgaXMgbm90IHZhbGlkLjxGYWlsVG9QYXJzZU5hbWUABgSYQm9uZCdzIG5hbWUgcGFyc2luZyB3YXMgbm93IHN1Y2Nlc3NmdWwEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuJQwMWHBhbGxldF9vdGNfc2V0dGxlbWVudHMYcGFsbGV0FEVycm9yBARUAAEcNE9yZGVyTm90Rm91bmQAAARMT3RjIG9yZGVyIG5vdCBmb3VuZFBOb3RQYXJ0aWFsbHlGaWxsYWJsZQABBIxPVEMgb3JkZXIgaXMgbm90IHBhcnRpYWxseSBmaWxsYWJsZTBJbnZhbGlkUm91dGUAAgS8UHJvdmlkZWQgcm91dGUgZG9lc24ndCBtYXRjaCB0aGUgZXhpc3Rpbmcgcm91dGVQQmFsYW5jZUluY29uc2lzdGVuY3kAAwScSW5pdGlhbCBhbmQgZmluYWwgYmFsYW5jZSBhcmUgZGlmZmVyZW50SFRyYWRlQW1vdW50VG9vSGlnaAAEBIhUcmFkZSBhbW91bnQgaGlnaGVyIHRoYW4gbmVjZXNzYXJ5RFRyYWRlQW1vdW50VG9vTG93AAUEhFRyYWRlIGFtb3VudCBsb3dlciB0aGFuIG5lY2Vzc2FyeURQcmljZU5vdEF2YWlsYWJsZQAGBIhQcmljZSBmb3IgYSByb3V0ZSBpcyBub3QgYXZhaWxhYmxlBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LikMDChwYWxsZXRfbGJwGHBhbGxldBRFcnJvcgQEVAABXHhDYW5ub3RDcmVhdGVQb29sV2l0aFNhbWVBc3NldHMAAAR8UG9vbCBhc3NldHMgY2FuIG5vdCBiZSB0aGUgc2FtZSBOb3RPd25lcgABBGxBY2NvdW50IGlzIG5vdCBhIHBvb2wgb3duZXIsU2FsZVN0YXJ0ZWQAAgRQU2FsZSBhbHJlYWR5IHN0YXJ0ZWQwU2FsZU5vdEVuZGVkAAMEZFNhbGUgaXMgc3RpbGwgaW4gcHJvZ3Jlc3NAU2FsZUlzTm90UnVubmluZwAEBExTYWxlIGlzIG5vdCBydW5uaW5nXE1heFNhbGVEdXJhdGlvbkV4Y2VlZGVkAAUEZFNhbGUgZHVyYXRpb24gaXMgdG9vIGxvbmdYQ2Fubm90QWRkWmVyb0xpcXVpZGl0eQAGBKBMaXF1aWRpdHkgYmVpbmcgYWRkZWQgc2hvdWxkIG5vdCBiZSB6ZXJvYEluc3VmZmljaWVudEFzc2V0QmFsYW5jZQAHBFRBc3NldCBiYWxhbmNlIHRvbyBsb3cwUG9vbE5vdEZvdW5kAAgETFBvb2wgZG9lcyBub3QgZXhpc3REUG9vbEFscmVhZHlFeGlzdHMACQR0UG9vbCBoYXMgYmVlbiBhbHJlYWR5IGNyZWF0ZWRESW52YWxpZEJsb2NrUmFuZ2UACgRMSW52YWxpZCBibG9jayByYW5nZVhXZWlnaHRDYWxjdWxhdGlvbkVycm9yAAsERENhbGN1bGF0aW9uIGVycm9yNEludmFsaWRXZWlnaHQADARoV2VpZ2h0IHNldCBpcyBvdXQgb2YgcmFuZ2UoWmVyb0Ftb3VudAANBKBDYW4gbm90IHBlcmZvcm0gYSB0cmFkZSB3aXRoIHplcm8gYW1vdW50SE1heEluUmF0aW9FeGNlZWRlZAAOBGBUcmFkZSBhbW91bnQgaXMgdG9vIGhpZ2hMTWF4T3V0UmF0aW9FeGNlZWRlZAAPBGBUcmFkZSBhbW91bnQgaXMgdG9vIGhpZ2hARmVlQW1vdW50SW52YWxpZAAQBEhJbnZhbGlkIGZlZSBhbW91bnRMVHJhZGluZ0xpbWl0UmVhY2hlZAARBFRUcmFkaW5nIGxpbWl0IHJlYWNoZWQgT3ZlcmZsb3cAEgScQW4gdW5leHBlY3RlZCBpbnRlZ2VyIG92ZXJmbG93IG9jY3VycmVkPE5vdGhpbmdUb1VwZGF0ZQATBEROb3RoaW5nIHRvIHVwZGF0ZVRJbnN1ZmZpY2llbnRMaXF1aWRpdHkAFAS8TGlxdWlkaXR5IGhhcyBub3QgcmVhY2hlZCB0aGUgcmVxdWlyZWQgbWluaW11bS5kSW5zdWZmaWNpZW50VHJhZGluZ0Ftb3VudAAVBKhBbW91bnQgaXMgbGVzcyB0aGFuIG1pbmltdW0gdHJhZGluZyBsaW1pdC6ARmVlQ29sbGVjdG9yV2l0aEFzc2V0QWxyZWFkeVVzZWQAFgSwTm90IG1vcmUgdGhhbiBvbmUgZmVlIGNvbGxlY3RvciBwZXIgYXNzZXQgaWQEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuLQwMKHBhbGxldF94eWsYcGFsbGV0FEVycm9yBARUAAFceENhbm5vdENyZWF0ZVBvb2xXaXRoU2FtZUFzc2V0cwAABNxJdCBpcyBub3QgYWxsb3dlZCB0byBjcmVhdGUgYSBwb29sIGJldHdlZW4gc2FtZSBhc3NldHMuVEluc3VmZmljaWVudExpcXVpZGl0eQABBLxMaXF1aWRpdHkgaGFzIG5vdCByZWFjaGVkIHRoZSByZXF1aXJlZCBtaW5pbXVtLmRJbnN1ZmZpY2llbnRUcmFkaW5nQW1vdW50AAIEmEFtb3VudCBpcyBsZXNzIHRoYW4gbWluIHRyYWRpbmcgbGltaXQuNFplcm9MaXF1aWRpdHkAAwRITGlxdWlkaXR5IGlzIHplcm8uWEludmFsaWRNaW50ZWRMaXF1aWRpdHkABAQgT3ZlcmZsb3dYSW52YWxpZExpcXVpZGl0eUFtb3VudAAFBCBPdmVyZmxvd2BBc3NldEFtb3VudEV4Y2VlZGVkTGltaXQABgSYQXNzZXQgYW1vdW50IGhhcyBleGNlZWRlZCBnaXZlbiBsaW1pdC5oQXNzZXRBbW91bnROb3RSZWFjaGVkTGltaXQABwSkQXNzZXQgYW1vdW50IGhhcyBub3QgcmVhY2hlZCBnaXZlbiBsaW1pdC5gSW5zdWZmaWNpZW50QXNzZXRCYWxhbmNlAAgEgEFzc2V0IGJhbGFuY2UgaXMgbm90IHN1ZmZpY2llbnQucEluc3VmZmljaWVudFBvb2xBc3NldEJhbGFuY2UACQScTm90IGVub3VnaCBhc3NldCBsaXF1aWRpdHkgaW4gdGhlIHBvb2wuhEluc3VmZmljaWVudE5hdGl2ZUN1cnJlbmN5QmFsYW5jZQAKBLBOb3QgZW5vdWdoIGNvcmUgYXNzZXQgbGlxdWlkaXR5IGluIHRoZSBwb29sLkRUb2tlblBvb2xOb3RGb3VuZAALBLxMaXF1aWRpdHkgcG9vbCBmb3IgZ2l2ZW4gYXNzZXRzIGRvZXMgbm90IGV4aXN0LlhUb2tlblBvb2xBbHJlYWR5RXhpc3RzAAwEvExpcXVpZGl0eSBwb29sIGZvciBnaXZlbiBhc3NldHMgYWxyZWFkeSBleGlzdHMuVEFkZEFzc2V0QW1vdW50SW52YWxpZAANBCBPdmVyZmxvd2BSZW1vdmVBc3NldEFtb3VudEludmFsaWQADgQgT3ZlcmZsb3dYU2VsbEFzc2V0QW1vdW50SW52YWxpZAAPBCBPdmVyZmxvd1RCdXlBc3NldEFtb3VudEludmFsaWQAEAQgT3ZlcmZsb3dARmVlQW1vdW50SW52YWxpZAARBCBPdmVyZmxvd0xNYXhPdXRSYXRpb0V4Y2VlZGVkABIEEQFNYXggZnJhY3Rpb24gb2YgcG9vbCB0byBidXkgaW4gc2luZ2xlIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4Y2VlZGVkLkhNYXhJblJhdGlvRXhjZWVkZWQAEwQVAU1heCBmcmFjdGlvbiBvZiBwb29sIHRvIHNlbGwgaW4gc2luZ2xlIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4Y2VlZGVkLiBPdmVyZmxvdwAUBCBPdmVyZmxvd0BDYW5ub3RDcmVhdGVQb29sABUEuFBvb2wgY2Fubm90IGJlIGNyZWF0ZWQgZHVlIHRvIG91dHNpZGUgZmFjdG9ycy40U2xpcHBhZ2VMaW1pdAAWBFBTbGlwcGFnZSBwcm90ZWN0aW9uLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4xDAAABAhNA0AANQwAAAQIKE0DADkMAAAEDChAAAA9DAxAcGFsbGV0X3JlZmVycmFscxhwYWxsZXQURXJyb3IEBFQAATgcVG9vTG9uZwAABGhSZWZlcnJhbCBjb2RlIGlzIHRvbyBsb25nLiBUb29TaG9ydAABBGxSZWZlcnJhbCBjb2RlIGlzIHRvbyBzaG9ydC5ASW52YWxpZENoYXJhY3RlcgACBE0BUmVmZXJyYWwgY29kZSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3Rlci4gT25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhcmUgYWxsb3dlZC40QWxyZWFkeUV4aXN0cwADBHRSZWZlcnJhbCBjb2RlIGFscmVhZHkgZXhpc3RzLixJbnZhbGlkQ29kZQAEBCEBUHJvdmlkZWQgcmVmZXJyYWwgY29kZSBpcyBpbnZhbGlkLiBFaXRoZXIgZG9lcyBub3QgZXhpc3Qgb3IgaXMgdG9vIGxvbmcuNEFscmVhZHlMaW5rZWQABQTYQWNjb3VudCBpcyBhbHJlYWR5IGxpbmtlZCB0byBhbm90aGVyIHJlZmVycmFsIGFjY291bnQuKFplcm9BbW91bnQABgTITm90aGluZyBpbiB0aGUgcmVmZXJyYWwgcG90IGFjY291bnQgZm9yIHRoZSBhc3NldC44TGlua05vdEFsbG93ZWQABwT8TGlua2luZyBhbiBhY2NvdW50IHRvIHRoZSBzYW1lIHJlZmVycmFsIGFjY291bnQgaXMgbm90IGFsbG93ZWQuaEluY29ycmVjdFJld2FyZENhbGN1bGF0aW9uAAgEkQFDYWxjdWxhdGVkIHJld2FyZHMgYXJlIG1vcmUgdGhhbiB0aGUgZmVlIGFtb3VudC4gVGhpcyBjYW4gaGFwcGVuIGlmIHBlcmNlbnRhZ2VzIGFyZSBpbmNvcnJlY3RseSBzZXQuZEluY29ycmVjdFJld2FyZFBlcmNlbnRhZ2UACQTsR2l2ZW4gcmVmZXJyZXIgYW5kIHRyYWRlciBwZXJjZW50YWdlcyBleGNlZWRzIDEwMCUgcGVyY2VudC5EQWxyZWFkeVJlZ2lzdGVyZWQACgSoVGhlIGFjY291bnQgaGFzIGFscmVhZHkgYSBjb2RlIHJlZ2lzdGVyZWQuNFByaWNlTm90Rm91bmQACwSUUHJpY2UgZm9yIGdpdmVuIGFzc2V0IHBhaXIgbm90IGZvdW5kLpBDb252ZXJzaW9uTWluVHJhZGluZ0Ftb3VudE5vdFJlYWNoZWQADATsTWluaW11bSB0cmFkaW5nIGFtb3VudCBmb3IgY29udmVyc2lvbiBoYXMgbm90IGJlZW4gcmVhY2hlZC5wQ29udmVyc2lvblplcm9BbW91bnRSZWNlaXZlZAANBJRaZXJvIGFtb3VudCByZWNlaXZlZCBmcm9tIGNvbnZlcnNpb24uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkEMDEhwYWxsZXRfbGlxdWlkYXRpb24YcGFsbGV0FEVycm9yBARUAAFEVEFzc2V0Q29udmVyc2lvbkZhaWxlZAAABKBBc3NldElkIHRvIEVWTSBhZGRyZXNzIGNvbnZlcnNpb24gZmFpbGVkVExpcXVpZGF0aW9uQ2FsbEZhaWxlZAABBFxMaXF1aWRhdGlvbiBjYWxsIGZhaWxlZDBJbnZhbGlkUm91dGUAAgS8UHJvdmlkZWQgcm91dGUgZG9lc24ndCBtYXRjaCB0aGUgZXhpc3Rpbmcgcm91dGU0Tm90UHJvZml0YWJsZQADBORMaXF1aWRhdGlvbiB3YXMgbm90IHByb2ZpdGFibGUgZW5vdWdoIHRvIHJlcGF5IGZsYXNoIGxvYW5ERmxhc2hNaW50ZXJOb3RTZXQABAQ5AUZsYXNoIG1pbnRlciBjb250cmFjdCBhZGRyZXNzIG5vdCBzZXQuIEl0IGlzIHJlcXVpcmVkIGZvciBIb2xsYXIgbGlxdWlkYXRpb25zLlhJbnZhbGlkTGlxdWlkYXRpb25EYXRhAAUEhEludmFsaWQgbGlxdWlkYXRpb24gZGF0YSBwcm92aWRlZFBVbnN1cHBvcnRlZERlYnRBc3NldAAGBLhHaWdhaGR4IGxpcXVpZGF0aW9uIG9ubHkgc3VwcG9ydHMgSE9MTEFSIGRlYnQuRE5vR2lnYUhkeFBvc2l0aW9uAAcEoEJvcnJvd2VyIGhhcyBubyBhY3RpdmUgZ2lnYWhkeCBwb3NpdGlvbi5IUmVhbGl6ZVlpZWxkRmFpbGVkAAgEHQFSZWFsaXppbmcgdGhlIGJvcnJvd2VyJ3MgYWNjcnVlZCBnaWdhaGR4IHlpZWxkIGJlZm9yZSB0aGUgc2VpemUgZmFpbGVkLmhMaXF1aWRhdGlvbkFjY291bnROb3RCb3VuZAAJCA0BVGhlIGdpZ2FoZHggbGlxdWlkYXRpb24gYWNjb3VudCBpcyBub3QgYm91bmQgdG8gaXRzIEVWTSBhZGRyZXNzLCBzbxEBdGhlIHNlaXplZCBhVG9rZW4gd291bGQgbGFuZCBpbiBhIGRpZmZlcmVudCBhY2NvdW50IHRoYW4gdGhlIGxlZGdlci5YQ2xlYXJWb3RpbmdMb2Nrc0ZhaWxlZAAKBLBTZWxlY3RpdmUgdm90ZSBjbGVhcmluZyBmYWlsZWQgYmVmb3JlIHNlaXplLjBCb3Jyb3dGYWlsZWQACwTsVHJlYXN1cnkncyBIT0xMQVIgYm9ycm93IGFnYWluc3QgdGhlIEdJR0FIRFggcG9vbCByZXZlcnRlZC4sU2VpemVGYWlsZWQADATYRmluYWwgc3RhdGUgbW92ZSAoSERYIHRyYW5zZmVyICsgbG9jayByZWZyZXNoKSBmYWlsZWQuREdpZ2FIZHhQb29sTm90U2V0AA0E6EdJR0FIRFggcG9vbCBjb250cmFjdCBhZGRyZXNzIG5vdCBzZXQgaW4gYHBhbGxldF9naWdhaGR4YC4oTm9Qb29sRGVidAAOCAkBQm9ycm93ZXIgaGFzIG5vIGBkZWJ0X2Fzc2V0YCBkZWJ0IG9uIHRoZSBHSUdBSERYIHBvb2wsIHNvIHRoZXJlIGlzVG5vdGhpbmcgdG8gbGlxdWlkYXRlLixSZXBheUZhaWxlZAAPBAkBUmVwYXlpbmcgdGhlIHVuY29uc3VtZWQgcHJvdG9jb2wtYm9ycm93ZWQgSE9MTEFSIHN1cnBsdXMgcmV2ZXJ0ZWQuTFBvb2xBZGRyZXNzTWlzbWF0Y2gAEAg1AVRoZSBgcG9vbGAgcHJvdmlkZWQgdG8gYGxpcXVpZGF0ZV93aXRoX3Bvb2xgIGlzIG5vdCB0aGUgcG9vbCB0aGlzIGxpcXVpZGF0aW9uWHdvdWxkIGV4ZWN1dGUgYWdhaW5zdC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuRQwMKHBhbGxldF9oc20UdHlwZXM4Q29sbGF0ZXJhbEluZm8EHEFzc2V0SWQBKAAYARxwb29sX2lkKAEcQXNzZXRJZAABMHB1cmNoYXNlX2ZlZXUCARxQZXJtaWxsAAFkbWF4X2J1eV9wcmljZV9jb2VmZmljaWVudFQBQENvZWZmaWNpZW50UmF0aW8AATBidXliYWNrX3JhdGUpAwEcUGVyYmlsbAABMGJ1eV9iYWNrX2ZlZXUCARxQZXJtaWxsAAE4bWF4X2luX2hvbGRpbmf1AQE8T3B0aW9uPEJhbGFuY2U+AABJDAwocGFsbGV0X2hzbRhwYWxsZXQURXJyb3IEBFQAAVRAQXNzZXROb3RBcHByb3ZlZAAADIxBc3NldCBpcyBub3QgYXBwcm92ZWQgYXMgY29sbGF0ZXJhbABlAVRoZSBvcGVyYXRpb24gYXR0ZW1wdGVkIHRvIHVzZSBhbiBhc3NldCB0aGF0IGlzIG5vdCByZWdpc3RlcmVkIGFzIGFuIGFwcHJvdmVkIGNvbGxhdGVyYWwuUEFzc2V0QWxyZWFkeUFwcHJvdmVkAAEMnEFzc2V0IGlzIGFscmVhZHkgYXBwcm92ZWQgYXMgY29sbGF0ZXJhbAAVAUF0dGVtcHRlZCB0byBhZGQgYW4gYXNzZXQgdGhhdCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgYXMgYSBjb2xsYXRlcmFsLmBQb29sQWxyZWFkeUhhc0NvbGxhdGVyYWwAAgzQQW5vdGhlciBhc3NldCBmcm9tIHRoZSBzYW1lIHBvb2wgaXMgYWxyZWFkeSBhcHByb3ZlZAANAU9ubHkgb25lIGFzc2V0IGZyb20gZWFjaCBTdGFibGVTd2FwIHBvb2wgY2FuIGJlIHVzZWQgYXMgY29sbGF0ZXJhbC5ASW52YWxpZEFzc2V0UGFpcgADDOhJbnZhbGlkIGFzc2V0IHBhaXIsIG11c3QgYmUgSG9sbGFyIGFuZCBhcHByb3ZlZCBjb2xsYXRlcmFsAL0BVGhlIGFzc2V0IHBhaXIgZm9yIGJ1eS9zZWxsIG9wZXJhdGlvbnMgbXVzdCBpbmNsdWRlIEhvbGxhciBhcyBvbmUgc2lkZSBhbmQgYW4gYXBwcm92ZWQgY29sbGF0ZXJhbCBhcyB0aGUgb3RoZXIuTE1heEJ1eVByaWNlRXhjZWVkZWQABAxYTWF4IGJ1eSBwcmljZSBleGNlZWRlZABJAVRoZSBjYWxjdWxhdGVkIGJ1eSBwcmljZSBleGNlZWRzIHRoZSBtYXhpbXVtIGFsbG93ZWQgYnV5IHByaWNlIGZvciB0aGUgY29sbGF0ZXJhbC5ITWF4QnV5QmFja0V4Y2VlZGVkAAUMsE1heCBidXkgYmFjayBhbW91bnQgaW4gc2luZ2xlIGJsb2NrIGV4Y2VlZGVkAKUBVGhlIGFtb3VudCBvZiBIb2xsYXIgYmVpbmcgc29sZCB0byBIU00gZXhjZWVkcyB0aGUgbWF4aW11bSBhbGxvd2VkIGluIGEgc2luZ2xlIGJsb2NrIGZvciB0aGlzIGNvbGxhdGVyYWwuSE1heEhvbGRpbmdFeGNlZWRlZAAGDKhNYXggaG9sZGluZyBhbW91bnQgZm9yIGNvbGxhdGVyYWwgZXhjZWVkZWQAdQFUaGUgb3BlcmF0aW9uIHdvdWxkIGNhdXNlIHRoZSBIU00gdG8gaG9sZCBtb3JlIG9mIHRoZSBjb2xsYXRlcmFsIHRoYW4gdGhlIGNvbmZpZ3VyZWQgbWF4aW11bS5UU2xpcHBhZ2VMaW1pdEV4Y2VlZGVkAAcMXFNsaXBwYWdlIGxpbWl0IGV4Y2VlZGVkAAEBVGhlIGNhbGN1bGF0ZWQgYW1vdW50IGlzIHdvcnNlIHRoYW4gdGhlIHByb3ZpZGVkIHNsaXBwYWdlIGxpbWl0LlRJbnZhbGlkRVZNSW50ZXJhY3Rpb24ACAyASW52YWxpZCBFVk0gY29udHJhY3QgaW50ZXJhY3Rpb24A3FRoZSBjYWxsIHRvIHRoZSBFVk0gY29udHJhY3QgKEdITyBIb2xsYXIgdG9rZW4pIGZhaWxlZC5YRGVjaW1hbFJldHJpZXZhbEZhaWxlZAAJDGBEZWNpbWFsIHJldHJpZXZhbCBmYWlsZWQA4EZhaWxlZCB0byByZXRyaWV2ZSB0aGUgZGVjaW1hbCBpbmZvcm1hdGlvbiBmb3IgYW4gYXNzZXQuWE5vQXJiaXRyYWdlT3Bwb3J0dW5pdHkACgxgTm8gYXJiaXRyYWdlIG9wcG9ydHVuaXR5ACkBVGhlcmUgaXMgbm8gcHJvZml0YWJsZSBhcmJpdHJhZ2Ugb3Bwb3J0dW5pdHkgZm9yIHRoZSBzcGVjaWZpZWQgY29sbGF0ZXJhbC40QXNzZXROb3RGb3VuZAALDFRBc3NldCBub3QgaW4gdGhlIHBvb2wAuFRoZSBzcGVjaWZpZWQgYXNzZXQgd2FzIG5vdCBmb3VuZCBpbiB0aGUgcG9vbC5ASW52YWxpZFBvb2xTdGF0ZQAMDHhQcm92aWRlZCBwb29sIHN0YXRlIGlzIGludmFsaWQA6FRoZSByZXRyaWV2ZWQgcG9vbCBzdGF0ZSBoYXMgaW5jb25zaXN0ZW50IG9yIGludmFsaWQgZGF0YS5IQ29sbGF0ZXJhbE5vdEVtcHR5AA0MXENvbGxhdGVyYWwgaXMgbm90IGVtcHR5AFkBQ2Fubm90IHJlbW92ZSBhIGNvbGxhdGVyYWwgYXNzZXQgdGhhdCBzdGlsbCBoYXMgYSBub24temVybyBiYWxhbmNlIGluIHRoZSBIU00gYWNjb3VudC44QXNzZXROb3RJblBvb2wADgxUQXNzZXQgbm90IGluIHRoZSBwb29sAOhUaGUgY29sbGF0ZXJhbCBhc3NldCBpcyBub3QgcHJlc2VudCBpbiB0aGUgc3BlY2lmaWVkIHBvb2wuPEhvbGxhck5vdEluUG9vbAAPDGRIb2xsYXIgaXMgbm90IGluIHRoZSBwb29sANhUaGUgSG9sbGFyIGFzc2V0IGlzIG5vdCBwcmVzZW50IGluIHRoZSBzcGVjaWZpZWQgcG9vbC50SW5zdWZmaWNpZW50Q29sbGF0ZXJhbEJhbGFuY2UAEAx8SW5zdWZmaWNpZW50IGNvbGxhdGVyYWwgYmFsYW5jZQA9AVRoZSBIU00gZG9lcyBub3QgaGF2ZSBlbm91Z2ggb2YgdGhlIGNvbGxhdGVyYWwgYXNzZXQgdG8gY29tcGxldGUgdGhlIG9wZXJhdGlvbi50SG9sbGFyQ29udHJhY3RBZGRyZXNzTm90Rm91bmQAEQx4R0hPIENvbnRyYWN0IGFkZHJlc3Mgbm90IGZvdW5kAAkBVGhlIEVWTSBhZGRyZXNzIGZvciB0aGUgR0hPIChIb2xsYXIpIHRva2VuIGNvbnRyYWN0IHdhcyBub3QgZm91bmQudE1heE51bWJlck9mQ29sbGF0ZXJhbHNSZWFjaGVkABIE5EhTTSBjb250YWlucyBtYXhpbXVtIG51bWJlciBvZiBhbGxvd2VkIGNvbGxhdGVyYWwgYXNzZXRzLkRGbGFzaE1pbnRlck5vdFNldAATBHBGbGFzaCBtaW50ZXIgYWRkcmVzcyBub3Qgc2V0UEludmFsaWRBcmJpdHJhZ2VEYXRhABQEiFByb3ZpZGVkIGFyYml0cmFnZSBkYXRhIGlzIGludmFsaWQEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuTQwMNHBhbGxldF9zaWduZXQYcGFsbGV0QFNpZ25ldENvbmZpZ0RhdGEEHEJhbGFuY2UBQAAUARhwYXVzZWREARBib29sAAFEc2lnbmF0dXJlX2RlcG9zaXRAARxCYWxhbmNlAAFMbWF4X2NoYWluX2lkX2xlbmd0aCgBDHUzMgABTG1heF9ldm1fZGF0YV9sZW5ndGgoAQx1MzIAASBjaGFpbl9pZLEBAbRCb3VuZGVkVmVjPHU4LCBDb25zdFUzMjxNQVhfQ0hBSU5fSURfTEVOR1RIPj4AAFEMDDRwYWxsZXRfc2lnbmV0GHBhbGxldBRFcnJvcgQEVAABIDROb3RDb25maWd1cmVkAAAEmFRoZSBwYWxsZXQgaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWQgeWV0GFBhdXNlZAABBLhQYWxsZXQgaXMgcGF1c2VkIGFuZCBjYW5ub3QgcHJvY2VzcyB0aGlzIGNhbGwuREluc3VmZmljaWVudEZ1bmRzAAIEhEluc3VmZmljaWVudCBmdW5kcyBmb3Igd2l0aGRyYXdhbEhJbnZhbGlkVHJhbnNhY3Rpb24AAwSASW52YWxpZCB0cmFuc2FjdGlvbiBkYXRhIChlbXB0eSlISW52YWxpZElucHV0TGVuZ3RoAAQEgEFycmF5cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoLERhdGFUb29Mb25nAAUEvFRyYW5zYWN0aW9uIGRhdGEgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoOEludmFsaWRBZGRyZXNzAAYExEludmFsaWQgYWRkcmVzcyBmb3JtYXQgLSBtdXN0IGJlIGV4YWN0bHkgMjAgYnl0ZXM8SW52YWxpZEdhc1ByaWNlAAcEBQFQcmlvcml0eSBmZWUgY2Fubm90IGV4Y2VlZCBtYXggZmVlIHBlciBnYXMgKEVJUC0xNTU5IHJlcXVpcmVtZW50KQSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5VDAxAcGFsbGV0X2Rpc3BlbnNlchhwYWxsZXRMRGlzcGVuc2VyQ29uZmlnRGF0YQAAHAEYcGF1c2VkRAEQYm9vbAABSGZhdWNldF9iYWxhbmNlX3dlaUABHEJhbGFuY2UAAThmYXVjZXRfYWRkcmVzc1gBKEV2bUFkZHJlc3MAAVBtaW5fZmF1Y2V0X3RocmVzaG9sZEABHEJhbGFuY2UAASxtaW5fcmVxdWVzdEABHEJhbGFuY2UAATBtYXhfZGlzcGVuc2VAARxCYWxhbmNlAAE0ZGlzcGVuc2VyX2ZlZUABHEJhbGFuY2UAAFkMDEBwYWxsZXRfZGlzcGVuc2VyGHBhbGxldBRFcnJvcgQEVAABNDROb3RDb25maWd1cmVkAAAEnFRoZSBwYWxsZXQgaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWQgeWV0LkBEdXBsaWNhdGVSZXF1ZXN0AAEEhFJlcXVlc3QgSUQgaGFzIGFscmVhZHkgYmVlbiB1c2VkLjRTZXJpYWxpemF0aW9uAAIEdEZhaWxlZCB0byAoZGUpc2VyaWFsaXplIGRhdGEuNEludmFsaWRPdXRwdXQAAwS4T3V0cHV0IGRhdGEgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LkBJbnZhbGlkUmVxdWVzdElkAAQE/FJlcXVlc3QgSUQgZG9lcyBub3QgbWF0Y2ggdGhlIGRlcml2ZWQgSUQgZm9yIHRoZSBwcm92aWRlZCBkYXRhLhhQYXVzZWQABQS4UGFsbGV0IGlzIHBhdXNlZCBhbmQgY2Fubm90IHByb2Nlc3MgdGhpcyBjYWxsLjhBbW91bnRUb29TbWFsbAAGBMRSZXF1ZXN0ZWQgYW1vdW50IGlzIGJlbG93IHRoZSBjb25maWd1cmVkIG1pbmltdW0uOEFtb3VudFRvb0xhcmdlAAcEwFJlcXVlc3RlZCBhbW91bnQgZXhjZWVkcyB0aGUgY29uZmlndXJlZCBtYXhpbXVtLjhJbnZhbGlkQWRkcmVzcwAIBNhFVk0gYWRkcmVzcyBwYXJhbWV0ZXIgaXMgaW52YWxpZCAoZS5nLiwgemVybyBhZGRyZXNzKS5sRmF1Y2V0QmFsYW5jZUJlbG93VGhyZXNob2xkAAkEMQFGYXVjZXQgYmFsYW5jZSB3b3VsZCBmYWxsIGJlbG93IHRoZSBjb25maWd1cmVkIHRocmVzaG9sZCBhZnRlciB0aGlzIHJlcXVlc3QuRE5vdEVub3VnaEZlZUZ1bmRzAAoE1ENhbGxlciBkb2VzIG5vdCBoYXZlIGVub3VnaCBiYWxhbmNlIG9mIHRoZSBmZWUgYXNzZXQuUE5vdEVub3VnaEZhdWNldEZ1bmRzAAsE4ENhbGxlciBkb2VzIG5vdCBoYXZlIGVub3VnaCBiYWxhbmNlIG9mIHRoZSBmYXVjZXQgYXNzZXQuNEludmFsaWRDb25maWcADAQhAUNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUgaW52YWxpZCAoZS5nLiwgbWluX3JlcXVlc3QgPiBtYXhfZGlzcGVuc2UpLgQ4UGFsbGV0IGVycm9ycy5dDAw4cGFsbGV0X2dpZ2FoZHgYcGFsbGV0LFN0YWtlUmVjb3JkAAAQAQxoZHhAARxCYWxhbmNlAAEcZ2lnYWhkeEABHEJhbGFuY2UAASR1bnN0YWtpbmdAARxCYWxhbmNlAAE8dW5zdGFraW5nX2NvdW50gAEMdTE2AABhDAw4cGFsbGV0X2dpZ2FoZHgYcGFsbGV0OFBlbmRpbmdVbnN0YWtlAAAEARhhbW91bnRAARxCYWxhbmNlAABlDAw4cGFsbGV0X2dpZ2FoZHgYcGFsbGV0FEVycm9yBARUAAFENEJlbG93TWluU3Rha2UAAASkU3Rha2UgYW1vdW50IGlzIGJlbG93IGBDb25maWc6Ok1pblN0YWtlYC5cSW5zdWZmaWNpZW50RnJlZUJhbGFuY2UAAQj0Q2FsbGVyIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggdW5lbmN1bWJlcmVkIEhEWCB0byBiYWNrIHRoZSBzdGFrZdBhZnRlciBzdWJ0cmFjdGluZyB0aGVpciBleGlzdGluZyBnaWdhaGR4IGNvbW1pdG1lbnQuVEJsb2NrZWRCeUV4dGVybmFsTG9jawACFAkBQ2FsbGVyIGhvbGRzIGEgbm9uLW92ZXJsYXBwaW5nIGxvY2sgKGxlZ2FjeSBzdGFraW5nLCB2ZXN0aW5nLCDigKYp8HJlcG9ydGVkIGJ5IGBDb25maWc6OkV4dGVybmFsQ2xhaW1zYC4gU3RyaWN0IHBvbGljeTogZ2lnYWhkePBhZG1pc3Npb24gcmVxdWlyZXMgdGhlIGNhbGxlciB0byBoYXZlIG5vIGNsYWltcyBvbiB0aGVpciBIRFjkb3RoZXIgdGhhbiB0aG9zZSB0aGUgcnVudGltZSBleHBsaWNpdGx5IGFsbG93cyB0byBjb2V4aXN0/ChlLmcuIGBweWNvbnZvdGApLiBSZWxlYXNlIHRoZSBjb25mbGljdGluZyBsb2NrIGJlZm9yZSBzdGFraW5nLkRJbnN1ZmZpY2llbnRTdGFrZQADBNRVbnN0YWtlIGFtb3VudCBleGNlZWRzIHRoZSBjYWxsZXIncyBgU3Rha2VzLmdpZ2FoZHhgLhxOb1N0YWtlAAQEiENhbGxlciBoYXMgbm8gYWN0aXZlIHN0YWtlIHJlY29yZC4oWmVyb0Ftb3VudAAFBKhBbW91bnQgbXVzdCBiZSBzdHJpY3RseSBncmVhdGVyIHRoYW4gemVyby48U3RIZHhNaW50RmFpbGVkAAYQ9HN0SERYIG1pbnQgZmFpbGVkIChhc3NldCBub3QgcmVnaXN0ZXJlZCwgbWF4IGlzc3VhbmNlIGhpdCwgb3Lwb3RoZXIgYGZ1bmdpYmxlczo6TXV0YXRlOjptaW50X2ludG9gIHByZWNvbmRpdGlvbiB2aW9sYXRlZCkuEQFEaXN0aW5jdCBmcm9tIGBNb25leU1hcmtldFN1cHBseUZhaWxlZGAg4oCUIHRoaXMgaXMgYSBzdWJzdHJhdGUtc2lkZbhhc3NldC1yZWdpc3RyeSBlcnJvciwgbm90IGFuIEFBVkUtc2lkZSByZXZlcnQuXE1vbmV5TWFya2V0U3VwcGx5RmFpbGVkAAcMEQFBQVZFIGBQb29sLnN1cHBseWAgcmV2ZXJ0ZWQg4oCUIHR5cGljYWwgY2F1c2VzOiBjYWxsZXIncyBFVk0gYWRkcmVzc/hpcyBub3QgYm91bmQsIHRoZSBhc3NldCByZXNlcnZlIGlzIG1pc2NvbmZpZ3VyZWQsIG9yIGBQb29sYCBpcxxwYXVzZWQuZE1vbmV5TWFya2V0V2l0aGRyYXdGYWlsZWQACAR4QUFWRSBgUG9vbC53aXRoZHJhd2AgcmV2ZXJ0ZWQuIE92ZXJmbG93AAkE+EFyaXRobWV0aWMgb3ZlcmZsb3cgZHVyaW5nIHJhdGUsIGxvY2ssIG9yIHN0b3JhZ2UgdXBkYXRlIG1hdGguSENvb2xkb3duTm90RWxhcHNlZAAKBAkBVGhlIGNvb2xkb3duIHBlcmlvZCBoYXMgbm90IHlldCBlbGFwc2VkIGZvciB0aGUgdGFyZ2V0ZWQgcG9zaXRpb24uWFBlbmRpbmdVbnN0YWtlTm90Rm91bmQACwQdAU5vIHBlbmRpbmcgdW5zdGFrZSBwb3NpdGlvbiB3aXRoIHRoZSBzdXBwbGllZCBpZCBleGlzdHMgZm9yIHRoZSBjYWxsZXIuWFRvb01hbnlQZW5kaW5nVW5zdGFrZXMADAQVAUNhbGxlciBoYXMgcmVhY2hlZCBgQ29uZmlnOjpNYXhQZW5kaW5nVW5zdGFrZXNgIGNvbmN1cnJlbnQgcG9zaXRpb25zLkBPdXRzdGFuZGluZ1N0YWtlAA0MAQFgc2V0X3Bvb2xfY29udHJhY3RgIHdhcyBjYWxsZWQgd2hpbGUgZ2lnYWhkeCAoYVRva2VuIC8gc3RIRFgpIGlzAQFzdGlsbCBpbiBjaXJjdWxhdGlvbi4gVGhlIHBvb2wgaXMgc2V0dGFibGUgb25seSB3aGVuIHRvdGFsIHN0SERYPHN1cHBseSBpcyB6ZXJvLixTdGFrZUZyb3plbgAODPhVbnN0YWtlIHdvdWxkIGRyb3AgYFN0YWtlc1t3aG9dLmhkeGAgYmVsb3cgdGhlIEhEWCBiYWNraW5nIHRoZQkBY2FsbGVyJ3MgYWN0aXZlIHZvdGVzIChgVDo6Vm90aW5nQ29tbWl0bWVudGApOyByZW1vdmUgdGhlIHJlbGV2YW50XGNvbnZpY3Rpb24gdm90ZXMgZmlyc3QuLFNlaXplRmFpbGVkAA8IAQFgc2xhc2hgIGZhbGxiYWNrIGNvdWxkIG5vdCBleHRyYWN0IHRoZSBmdWxsIGBzZWl6ZV9oZHhgIGZyb20gdGhl5GJvcnJvd2VyJ3MgYWNjb3VudCAoZS5nLiBleGlzdGVudGlhbC1kZXBvc2l0IGNvbnN0cmFpbnQpLkxHaWdhcG90SW5zdWZmaWNpZW50ABAI+FRoZSBnaWdhcG90IGxhY2tzIHRoZSBIRFggdG8gY292ZXIgdGhlIGNhbGxlcidzIGFjY3J1ZWQgeWllbGQuAQFPbmx5IHJlYWNoYWJsZSBpbiBhIGRyYWluZWQvZmxvb3JlZCBzdGF0ZSwgbm90IG5vcm1hbCBvcGVyYXRpb24uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LmkMDFhwYWxsZXRfZ2lnYWhkeF9yZXdhcmRzFHR5cGVzTFJlZmVyZW5kdW1MaXZlVGFsbHkAAAgBOHRvdGFsX3dlaWdodGVkQAEQdTEyOAABMHZvdGVyc19jb3VudCgBDHUzMgAAbQwMWHBhbGxldF9naWdhaGR4X3Jld2FyZHMUdHlwZXM8UmVmZXJlbmRhUmV3YXJkBBxUcmFja0lkAYAAFAEgdHJhY2tfaWSAARxUcmFja0lkAAEwdG90YWxfcmV3YXJkQAEcQmFsYW5jZQABUHRvdGFsX3dlaWdodGVkX3ZvdGVzQAEQdTEyOAABQHZvdGVyc19yZW1haW5pbmcoAQx1MzIAAUByZW1haW5pbmdfcmV3YXJkQAEcQmFsYW5jZQAAcQwMWHBhbGxldF9naWdhaGR4X3Jld2FyZHMUdHlwZXM4VXNlclZvdGVSZWNvcmQAAAwBSHN0YWtlZF92b3RlX2Ftb3VudEABHEJhbGFuY2UAAShjb252aWN0aW9uKQIBKENvbnZpY3Rpb24AASB3ZWlnaHRlZEABEHUxMjgAAHUMDFhwYWxsZXRfZ2lnYWhkeF9yZXdhcmRzGHBhbGxldBRFcnJvcgQEVAABDEBOb1BlbmRpbmdSZXdhcmRzAAAEeGBQZW5kaW5nUmV3YXJkc1t3aG9dYCBpcyB6ZXJvLjxQb3RJbnN1ZmZpY2llbnQAAQQFAU5vdCBlbm91Z2ggcmV3YXJkcyBpbiB0aGUgYWxsb2NhdGVkIHBvdCB0byBjb3ZlciB0aGUgYW1vdW50IG93ZWQuIE92ZXJmbG93AAIEtEFyaXRobWV0aWMgb3ZlcmZsb3cgZHVyaW5nIHNoYXJlIGNvbXB1dGF0aW9uLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC55DAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAX0MBFMAAAQAgQwBGFZlYzxUPgAAfQwILG9ybWxfdG9rZW5zLEJhbGFuY2VMb2NrBBxCYWxhbmNlAUAACAEIaWQhAQE4TG9ja0lkZW50aWZpZXIAARhhbW91bnRAARxCYWxhbmNlAACBDAAAAn0MAIUMCCxvcm1sX3Rva2VucyxBY2NvdW50RGF0YQQcQmFsYW5jZQFAAAwBEGZyZWVAARxCYWxhbmNlAAEgcmVzZXJ2ZWRAARxCYWxhbmNlAAEYZnJvemVuQAEcQmFsYW5jZQAAiQwMTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAGNDARTAAAEAJEMARhWZWM8VD4AAI0MCCxvcm1sX3Rva2VucyxSZXNlcnZlRGF0YQhEUmVzZXJ2ZUlkZW50aWZpZXIBIQEcQmFsYW5jZQFAAAgBCGlkIQEBRFJlc2VydmVJZGVudGlmaWVyAAEYYW1vdW50QAEcQmFsYW5jZQAAkQwAAAKNDACVDAwsb3JtbF90b2tlbnMYbW9kdWxlFEVycm9yBARUAAEgNEJhbGFuY2VUb29Mb3cAAARYVGhlIGJhbGFuY2UgaXMgdG9vIGxvd1xBbW91bnRJbnRvQmFsYW5jZUZhaWxlZAABBJxDYW5ub3QgY29udmVydCBBbW91bnQgaW50byBCYWxhbmNlIHR5cGVUTGlxdWlkaXR5UmVzdHJpY3Rpb25zAAIE0EZhaWxlZCBiZWNhdXNlIGxpcXVpZGl0eSByZXN0cmljdGlvbnMgZHVlIHRvIGxvY2tpbmdATWF4TG9ja3NFeGNlZWRlZAADBLRGYWlsZWQgYmVjYXVzZSB0aGUgbWF4aW11bSBsb2NrcyB3YXMgZXhjZWVkZWQkS2VlcEFsaXZlAAQEjFRyYW5zZmVyL3BheW1lbnQgd291bGQga2lsbCBhY2NvdW50SEV4aXN0ZW50aWFsRGVwb3NpdAAFBOhWYWx1ZSB0b28gbG93IHRvIGNyZWF0ZSBhY2NvdW50IGR1ZSB0byBleGlzdGVudGlhbCBkZXBvc2l0LERlYWRBY2NvdW50AAYEiEJlbmVmaWNpYXJ5IGFjY291bnQgbXVzdCBwcmUtZXhpc3Q8VG9vTWFueVJlc2VydmVzAAcABIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LpkMDERwYWxsZXRfY3VycmVuY2llcxhtb2R1bGUURXJyb3IEBFQAARBcQW1vdW50SW50b0JhbGFuY2VGYWlsZWQAAAS8VW5hYmxlIHRvIGNvbnZlcnQgdGhlIEFtb3VudCB0eXBlIGludG8gQmFsYW5jZS40QmFsYW5jZVRvb0xvdwABBExCYWxhbmNlIGlzIHRvbyBsb3cuNERlcG9zaXRGYWlsZWQAAgR4RGVwb3NpdCByZXN1bHQgaXMgbm90IGV4cGVjdGVkME5vdFN1cHBvcnRlZAADBLBPcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBjdXJyZW5jeQSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6dDAxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAdkDBFMAAAQA3QMBGFZlYzxUPgAAoQwMMG9ybWxfdmVzdGluZxhtb2R1bGUURXJyb3IEBFQAARhEWmVyb1Zlc3RpbmdQZXJpb2QAAARYVmVzdGluZyBwZXJpb2QgaXMgemVyb1haZXJvVmVzdGluZ1BlcmlvZENvdW50AAEEXE51bWJlciBvZiB2ZXN0cyBpcyB6ZXJvZEluc3VmZmljaWVudEJhbGFuY2VUb0xvY2sAAgSYSW5zdWZmaWNpZW50IGFtb3VudCBvZiBiYWxhbmNlIHRvIGxvY2tcVG9vTWFueVZlc3RpbmdTY2hlZHVsZXMAAwSwVGhpcyBhY2NvdW50IGhhdmUgdG9vIG1hbnkgdmVzdGluZyBzY2hlZHVsZXMkQW1vdW50TG93AAQElFRoZSB2ZXN0ZWQgdHJhbnNmZXIgYW1vdW50IGlzIHRvbyBsb3dsTWF4VmVzdGluZ1NjaGVkdWxlc0V4Y2VlZGVkAAUE5EZhaWxlZCBiZWNhdXNlIHRoZSBtYXhpbXVtIHZlc3Rpbmcgc2NoZWR1bGVzIHdhcyBleGNlZWRlZASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6lDAgocGFsbGV0X2V2bTBDb2RlTWV0YWRhdGEAAAgBEHNpemUYAQx1NjQAARBoYXNoLAEQSDI1NgAAqQwAAAQIWCwArQwMKHBhbGxldF9ldm0YcGFsbGV0FEVycm9yBARUAAE8KEJhbGFuY2VMb3cAAASQTm90IGVub3VnaCBiYWxhbmNlIHRvIHBlcmZvcm0gYWN0aW9uLEZlZU92ZXJmbG93AAEEgENhbGN1bGF0aW5nIHRvdGFsIGZlZSBvdmVyZmxvd2VkPFBheW1lbnRPdmVyZmxvdwACBJBDYWxjdWxhdGluZyB0b3RhbCBwYXltZW50IG92ZXJmbG93ZWQ4V2l0aGRyYXdGYWlsZWQAAwRMV2l0aGRyYXcgZmVlIGZhaWxlZDhHYXNQcmljZVRvb0xvdwAEBFRHYXMgcHJpY2UgaXMgdG9vIGxvdy4wSW52YWxpZE5vbmNlAAUEQE5vbmNlIGlzIGludmFsaWQ4R2FzTGltaXRUb29Mb3cABgRUR2FzIGxpbWl0IGlzIHRvbyBsb3cuZEdhc0xpbWl0RXhjZWVkc0Jsb2NrTGltaXQABwSIR2FzIGxpbWl0IGV4Y2VlZHMgYmxvY2sgZ2FzIGxpbWl0LjhJbnZhbGlkQ2hhaW5JZAAIBGBUaGUgY2hhaW4gaWQgaXMgaW52YWxpZC5ASW52YWxpZFNpZ25hdHVyZQAJBGR0aGUgc2lnbmF0dXJlIGlzIGludmFsaWQuKFJlZW50cmFuY3kACgQ4RVZNIHJlZW50cmFuY3loVHJhbnNhY3Rpb25NdXN0Q29tZUZyb21FT0EACwQkRUlQLTM2MDcsJFVuZGVmaW5lZAAMBEBVbmRlZmluZWQgZXJyb3IuWENyZWF0ZU9yaWdpbk5vdEFsbG93ZWQADQQpAUFkZHJlc3Mgbm90IGFsbG93ZWQgdG8gZGVwbG95IGNvbnRyYWN0cyBlaXRoZXIgdmlhIENSRUFURSBvciBDQUxMKENSRUFURSkudFRyYW5zYWN0aW9uR2FzTGltaXRFeGNlZWRzQ2FwAA4E8EVJUC03ODI1OiBUcmFuc2FjdGlvbiBnYXMgbGltaXQgZXhjZWVkcyBwcm90b2NvbCBjYXAgKDJeMjQpLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC6xDAAABAwBBLUMyQwAtQwIGGZwX3JwY0RUcmFuc2FjdGlvblN0YXR1cwAAHAFAdHJhbnNhY3Rpb25faGFzaCwBEEgyNTYAAUR0cmFuc2FjdGlvbl9pbmRleCgBDHUzMgABEGZyb21YARxBZGRyZXNzAAEIdG+5DAE8T3B0aW9uPEFkZHJlc3M+AAFAY29udHJhY3RfYWRkcmVzc7kMATxPcHRpb248QWRkcmVzcz4AARBsb2dzvQwBIFZlYzxMb2c+AAEobG9nc19ibG9vbcEMARRCbG9vbQAAuQwEGE9wdGlvbgQEVAFYAQgQTm9uZQAAABBTb21lBABYAAABAAC9DAAAAj0IAMEMCCBldGhibG9vbRRCbG9vbQAABADFDAFAW3U4OyBCTE9PTV9TSVpFXQAAxQwAAAMAAQAACADJDAwgZXRoZXJldW0ccmVjZWlwdCRSZWNlaXB0VjQAARAYTGVnYWN5BADNDAFERUlQNjU4UmVjZWlwdERhdGEAAAAcRUlQMjkzMAQAzQwBSEVJUDI5MzBSZWNlaXB0RGF0YQABABxFSVAxNTU5BADNDAFIRUlQMTU1OVJlY2VpcHREYXRhAAIAHEVJUDc3MDIEAM0MAUhFSVA3NzAyUmVjZWlwdERhdGEAAwAAzQwMIGV0aGVyZXVtHHJlY2VpcHRERUlQNjU4UmVjZWlwdERhdGEAABABLHN0YXR1c19jb2RlCAEIdTgAASB1c2VkX2dhc2ABEFUyNTYAAShsb2dzX2Jsb29twQwBFEJsb29tAAEQbG9nc70MASBWZWM8TG9nPgAA0QwMIGV0aGVyZXVtFGJsb2NrFEJsb2NrBARUAQEEAAwBGGhlYWRlctUMARhIZWFkZXIAATB0cmFuc2FjdGlvbnPdDAEYVmVjPFQ+AAEYb21tZXJz4QwBLFZlYzxIZWFkZXI+AADVDAwgZXRoZXJldW0YaGVhZGVyGEhlYWRlcgAAPAEscGFyZW50X2hhc2gsARBIMjU2AAEsb21tZXJzX2hhc2gsARBIMjU2AAEsYmVuZWZpY2lhcnlYARBIMTYwAAEoc3RhdGVfcm9vdCwBEEgyNTYAAUR0cmFuc2FjdGlvbnNfcm9vdCwBEEgyNTYAATRyZWNlaXB0c19yb290LAEQSDI1NgABKGxvZ3NfYmxvb23BDAEUQmxvb20AAShkaWZmaWN1bHR5YAEQVTI1NgABGG51bWJlcmABEFUyNTYAASRnYXNfbGltaXRgARBVMjU2AAEgZ2FzX3VzZWRgARBVMjU2AAEkdGltZXN0YW1wGAEMdTY0AAEoZXh0cmFfZGF0YRQBFEJ5dGVzAAEgbWl4X2hhc2gsARBIMjU2AAEUbm9uY2XZDAEMSDY0AADZDAw4ZXRoZXJldW1fdHlwZXMQaGFzaAxINjQAAAQAIQEBHFt1ODsgOF0AAN0MAAACAQQA4QwAAALVDADlDAAAAskMAOkMAAACtQwA7QwMPHBhbGxldF9ldGhlcmV1bRhwYWxsZXQURXJyb3IEBFQAAQhASW52YWxpZFNpZ25hdHVyZQAABFRTaWduYXR1cmUgaXMgaW52YWxpZC4wUHJlTG9nRXhpc3RzAAEE2FByZS1sb2cgaXMgcHJlc2VudCwgdGhlcmVmb3JlIHRyYW5zYWN0IGlzIG5vdCBhbGxvd2VkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC7xDAAABAwoWFgA9QwMTHBhbGxldF9ldm1fYWNjb3VudHMYcGFsbGV0FEVycm9yBARUAAEgbFRydW5jYXRlZEFjY291bnRBbHJlYWR5VXNlZAAABIhBY3RpdmUgRVZNIGFjY291bnQgY2Fubm90IGJlIGJvdW5kTEFkZHJlc3NBbHJlYWR5Qm91bmQAAQRgQWRkcmVzcyBpcyBhbHJlYWR5IGJvdW5kYEJvdW5kQWRkcmVzc0Nhbm5vdEJlVXNlZAACBHBCb3VuZCBhZGRyZXNzIGNhbm5vdCBiZSB1c2VkVEFkZHJlc3NOb3RXaGl0ZWxpc3RlZAADBFxBZGRyZXNzIG5vdCB3aGl0ZWxpc3RlZEBJbnZhbGlkU2lnbmF0dXJlAAQEdFByb3ZpZGVkIHNpZ25hdHVyZSBpcyBpbnZhbGlkUEFjY291bnRBbHJlYWR5RXhpc3RzAAUErEFjY291bnQgYWxyZWFkeSBleGlzdHMgaW4gdGhlIHN5c3RlbSBwYWxsZXRgSW5zdWZmaWNpZW50QXNzZXRCYWxhbmNlAAYEvEluc3VmZmljaWVudCBhc3NldCBiYWxhbmNlIG9mIHRoZSBjbGFpbWVkIGFzc2V0UEludmFsaWRNaW50ZXJBZGRyZXNzAAcEnFplcm8gYWRkcmVzcyBjYW5ub3QgYmUgdXNlZCBhcyBhIG1pbnRlcgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC75DAxscGFsbGV0X3h5a19saXF1aWRpdHlfbWluaW5nGHBhbGxldBRFcnJvcgQEVAABNFBDYW50RmluZERlcG9zaXRPd25lcgAABIhOZnQgcGFsbGV0IGRpZG4ndCByZXR1cm4gYW4gb3duZXIucEluc3VmZmljaWVudFh5a1NoYXJlc0JhbGFuY2UAAQTUQWNjb3VudCBiYWxhbmNlIG9mIFhZSyBwb29sIHNoYXJlcyBpcyBub3Qgc3VmZmljaWVudC5IWHlrUG9vbERvZXNudEV4aXN0AAIEXFhZSyBwb29sIGRvZXMgbm90IGV4aXN0PE5vdERlcG9zaXRPd25lcgADBHRBY2NvdW50IGlzIG5vdCBkZXBvc2l0IG93bmVyLkBDYW50R2V0WHlrQXNzZXRzAAQErFhZSyBkaWQgbm90IHJldHVybiBhc3NldHMgZm9yIGdpdmVuIHBvb2wgaWRMRGVwb3NpdERhdGFOb3RGb3VuZAAFBFhEZXBvc2l0IGRhdGEgbm90IGZvdW5kSFplcm9DbGFpbWVkUmV3YXJkcwAGBIBDYWxjdWxhdGVkIHJld2FyZCB0byBjbGFpbSBpcyAwLkxBc3NldE5vdEluQXNzZXRQYWlyAAcEgEFzc2V0IGlzIG5vdCBpbiB0aGUgYEFzc2V0UGFpcmAuQEludmFsaWRBc3NldFBhaXIACATAUHJvdmlkZWQgYEFzc2V0UGFpcmAgaXMgbm90IHVzZWQgYnkgdGhlIGRlcG9zaXQuSEFzc2V0Tm90UmVnaXN0ZXJlZAAJBKhBc3NldCBpcyBub3QgcmVnaXN0ZXJlZCBpbiBhc3NldCByZWdpc3RyeS44RmFpbFRvR2V0UG90SWQACgSQRmFpbGVkIHRvIGNhbGN1bGF0ZSBgcG90YCdzIGFjY291bnQuQE5vRmFybXNTcGVjaWZpZWQACwTMTm8gZ2xvYmFsIGZhcm0gLSB5aWVsZCBmYXJtIHBhaXJzIHNwZWNpZmllZCB0byBqb2luTEZhaWxlZFRvVmFsdWVTaGFyZXMADAScRmFpbGVkIHRvIGNhbGN1bGF0ZSB2YWx1ZSBvZiB4eWsgc2hhcmVzBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lv0MDFxwYWxsZXRfbGlxdWlkaXR5X21pbmluZxR0eXBlczhHbG9iYWxGYXJtRGF0YQgEVAAESQAASAEIaWQoATBHbG9iYWxGYXJtSWQAARRvd25lcgABMFQ6OkFjY291bnRJZAABKHVwZGF0ZWRfYXQoASxQZXJpb2RPZjxUPgABOHRvdGFsX3NoYXJlc196QAEcQmFsYW5jZQABPGFjY3VtdWxhdGVkX3JwelQBJEZpeGVkVTEyOAABPHJld2FyZF9jdXJyZW5jeSgBKFQ6OkFzc2V0SWQAATxwZW5kaW5nX3Jld2FyZHNAARxCYWxhbmNlAAFgYWNjdW11bGF0ZWRfcGFpZF9yZXdhcmRzQAEcQmFsYW5jZQABQHlpZWxkX3Blcl9wZXJpb2SZAgEsUGVycXVpbnRpbGwAAWBwbGFubmVkX3lpZWxkaW5nX3BlcmlvZHMoASxQZXJpb2RPZjxUPgABRGJsb2Nrc19wZXJfcGVyaW9kKAFEQmxvY2tOdW1iZXJGb3I8VD4AAUhpbmNlbnRpdml6ZWRfYXNzZXQoAShUOjpBc3NldElkAAFUbWF4X3Jld2FyZF9wZXJfcGVyaW9kQAEcQmFsYW5jZQABLG1pbl9kZXBvc2l0QAEcQmFsYW5jZQABWGxpdmVfeWllbGRfZmFybXNfY291bnQoAQx1MzIAAVx0b3RhbF95aWVsZF9mYXJtc19jb3VudCgBDHUzMgABQHByaWNlX2FkanVzdG1lbnRUASRGaXhlZFUxMjgAARRzdGF0ZYELASRGYXJtU3RhdGUAAAENAAAEDAAoKAAFDQxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXM0WWllbGRGYXJtRGF0YQgEVAAESQAAMAEIaWQoARhGYXJtSWQAASh1cGRhdGVkX2F0KAEsUGVyaW9kT2Y8VD4AATB0b3RhbF9zaGFyZXNAARxCYWxhbmNlAAFMdG90YWxfdmFsdWVkX3NoYXJlc0ABHEJhbGFuY2UAAUBhY2N1bXVsYXRlZF9ycHZzVAEkRml4ZWRVMTI4AAE8YWNjdW11bGF0ZWRfcnB6VAEkRml4ZWRVMTI4AAE0bG95YWx0eV9jdXJ2ZZ0CAVBPcHRpb248TG95YWx0eUN1cnZlPgABKG11bHRpcGxpZXJUAThGYXJtTXVsdGlwbGllcgABFHN0YXRlgQsBJEZhcm1TdGF0ZQABNGVudHJpZXNfY291bnQYAQx1NjQAAUhsZWZ0X3RvX2Rpc3RyaWJ1dGVAARxCYWxhbmNlAAE0dG90YWxfc3RvcHBlZCgBLFBlcmlvZE9mPFQ+AAAJDQxccGFsbGV0X2xpcXVpZGl0eV9taW5pbmcUdHlwZXMsRGVwb3NpdERhdGEIBFQABEkAAAwBGHNoYXJlc0ABHEJhbGFuY2UAASxhbW1fcG9vbF9pZAABMFQ6OkFtbVBvb2xJZAABSHlpZWxkX2Zhcm1fZW50cmllcw0NAfRCb3VuZGVkVmVjPFlpZWxkRmFybUVudHJ5PFQsIEk+LCBUOjpNYXhGYXJtRW50cmllc1BlckRlcG9zaXQ+AAANDQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUARENBFMAAAQAFQ0BGFZlYzxUPgAAEQ0MXHBhbGxldF9saXF1aWRpdHlfbWluaW5nFHR5cGVzOFlpZWxkRmFybUVudHJ5CARUAARJAAAgAThnbG9iYWxfZmFybV9pZCgBMEdsb2JhbEZhcm1JZAABNHlpZWxkX2Zhcm1faWQoASxZaWVsZEZhcm1JZAABNHZhbHVlZF9zaGFyZXNAARxCYWxhbmNlAAFAYWNjdW11bGF0ZWRfcnB2c1QBJEZpeGVkVTEyOAABbGFjY3VtdWxhdGVkX2NsYWltZWRfcmV3YXJkc0ABHEJhbGFuY2UAAShlbnRlcmVkX2F0KAEsUGVyaW9kT2Y8VD4AASh1cGRhdGVkX2F0KAEsUGVyaW9kT2Y8VD4AAUxzdG9wcGVkX2F0X2NyZWF0aW9uKAEsUGVyaW9kT2Y8VD4AABUNAAACEQ0AGQ0MXHBhbGxldF9saXF1aWRpdHlfbWluaW5nGHBhbGxldBRFcnJvcggEVAAESQABdEhHbG9iYWxGYXJtTm90Rm91bmQAAARsR2xvYmFsIGZhcm0gZG9lcyBub3QgZXhpc3QuRFlpZWxkRmFybU5vdEZvdW5kAAEEaFlpZWxkIGZhcm0gZG9lcyBub3QgZXhpc3QuTERvdWJsZUNsYWltSW5QZXJpb2QAAgTITXVsdGlwbGUgY2xhaW1zIGluIHRoZSBzYW1lIHBlcmlvZCBpcyBub3QgYWxsb3dlZC5cTGlxdWlkaXR5TWluaW5nQ2FuY2VsZWQAAwR0TGlxdWlkaXR5IG1pbmluZyBpcyBjYW5jZWxlZC5cTGlxdWlkaXR5TWluaW5nSXNBY3RpdmUABASETGlxdWlkaXR5IG1pbmluZyBpcyBub3QgY2FuY2VsZWQubExpcXVpZGl0eU1pbmluZ0lzTm90U3RvcHBlZAAFBFUBTGlxdWlkaXR5IG1pbmluZyBpcyBpbiBgYWN0aXZlYCBvciBgdGVybWluYXRlZGAgc3RhdGUgYW5kIGFjdGlvbiBjYW5ub3QgYmUgY29tcGxldGVkLiRGb3JiaWRkZW4ABgSkQWNjb3VudCBpcyBub3QgYWxsb3dlZCB0byBwZXJmb3JtIGFjdGlvbi5ESW52YWxpZE11bHRpcGxpZXIABwSEWWllbGQgZmFybSBtdWx0aXBsaWVyIGNhbid0IGJlIDAuWFlpZWxkRmFybUFscmVhZHlFeGlzdHMACAQJAVlpZWxkIGZhcm0gd2l0aCBnaXZlbiBgYW1tX3Bvb2xfaWRgIGFscmVhZHkgZXhpc3RzIGluIGdsb2JhbCBmYXJtLnhJbnZhbGlkSW5pdGlhbFJld2FyZFBlcmNlbnRhZ2UACQQ9AUxveWFsdHkgY3VydmUncyBpbml0aWFsIHJld2FyZCBwZXJjZW50YWdlIGlzIG5vdCB2YWxpZC4gVmFsaWQgcmFuZ2UgaXM6IFswLCAxKS5QR2xvYmFsRmFybUlzTm90RW1wdHkACgS0T25lIG9yIG1vcmUgeWllbGQgZmFybXMgZXhpc3QgaW4gZ2xvYmFsIGZhcm0uYE1pc3NpbmdJbmNlbnRpdml6ZWRBc3NldAALBPhGYXJtJ3MgYGluY2VudGl2aXplZF9hc3NldGAgaXMgbWlzc2luZyBpbiBwcm92aWRlZCBhc3NldCBwYWlyLoRJbnN1ZmZpY2llbnRSZXdhcmRDdXJyZW5jeUJhbGFuY2UADASoUmV3YXJkIGN1cnJlbmN5IGJhbGFuY2UgaXMgbm90IHN1ZmZpY2llbnQuWEludmFsaWRCbG9ja3NQZXJQZXJpb2QADQR0QmxvY2tzIHBlciBwZXJpb2QgY2FuJ3QgYmUgMC5USW52YWxpZFlpZWxkUGVyUGVyaW9kAA4EcFlpZWxkIHBlciBwZXJpb2QgY2FuJ3QgYmUgMC5MSW52YWxpZFRvdGFsUmV3YXJkcwAPBMRUb3RhbCByZXdhcmRzIGlzIGxlc3MgdGhhbiBgTWluVG90YWxGYXJtUmV3YXJkc2AudEludmFsaWRQbGFubmVkWWllbGRpbmdQZXJpb2RzABAECQFQbGFubmVkIHlpZWxkaW5nIHBlcmlvZHMgaXMgbGVzcyB0aGFuIGBNaW5QbGFubmVkWWllbGRpbmdQZXJpb2RzYC5QTWF4RW50cmllc1BlckRlcG9zaXQAEQSwTWF4aW11bSBudW1iZXIgb2YgbG9ja3MgcmVhY2hlZCBmb3IgZGVwb3NpdC4oRG91YmxlTG9jawASBOBUcnlpbmcgdG8gbG9jayBMUCBzaGFyZXMgaW50byBhbHJlYWR5IGxvY2tlZCB5aWVsZCBmYXJtLlhZaWVsZEZhcm1FbnRyeU5vdEZvdW5kABMExFlpZWxkIGZhcm0gZW50cnkgZG9lc24ndCBleGlzdCBmb3IgZ2l2ZW4gZGVwb3NpdC5AR2xvYmFsRmFybUlzRnVsbAAUCEkBTWF4IG51bWJlciBvZiB5aWVsZCBmYXJtcyBpbiBnbG9iYWwgZmFybSB3YXMgcmVhY2hlZC4gR2xvYmFsIGZhcm0gY2FuJ3QgYWNjZXB0IG5ld/h5aWVsZCBmYXJtcyB1bnRpbCBzb21lIHlpZWxkIGZhcm0gaXMgbm90IHJlbW92ZWQgZnJvbSBzdG9yYWdlLkRJbnZhbGlkTWluRGVwb3NpdAAVBLRJbnZhbGlkIG1pbi4gZGVwb3NpdCB3YXMgc2V0IGZvciBnbG9iYWwgZmFybS5YSW52YWxpZFByaWNlQWRqdXN0bWVudAAWBJxQcmljZSBhZGp1c3RtZW50IG11bHRpcGxpZXIgY2FuJ3QgYmUgMC5ERXJyb3JHZXRBY2NvdW50SWQAFwSAQWNjb3VudCBjcmVhdGlvbiBmcm9tIGlkIGZhaWxlZC5USW5jb3JyZWN0VmFsdWVkU2hhcmVzABgEJQFWYWx1ZSBvZiBkZXBvc2l0ZWQgc2hhcmVzIGFtb3VudCBpbiByZXdhcmQgY3VycmVuY3kgaXMgYmVsbG93IG1pbi4gbGltaXQubFJld2FyZEN1cnJlbmN5Tm90UmVnaXN0ZXJlZAAZBNhgcmV3YXJkX2N1cnJlbmN5YCBpcyBub3QgcmVnaXN0ZXJlZCBpbiBhc3NldCByZWdpc3RyeS54SW5jZW50aXZpemVkQXNzZXROb3RSZWdpc3RlcmVkABoE5GBpbmNlbnRpdml6ZWRfYXNzZXRgIGlzIG5vdCByZWdpc3RlcmVkIGluIGFzc2V0IHJlZ2lzdHJ5LkRBbW1Qb29sSWRNaXNtYXRjaAAbBPRQcm92aWRlZCBgYW1tX3Bvb2xfaWRgIGRvZXNuJ3QgbWF0Y2ggZGVwb3NpdCdzIGBhbW1fcG9vbF9pZGAuREluY29uc2lzdGVudFN0YXRlBAChCwFYSW5jb25zaXN0ZW50U3RhdGVFcnJvcgAcCGUBQWN0aW9uIGNhbm5vdCBiZSBjb21wbGV0ZWQgYmVjYXVzZSB1bmV4cGVjdGVkIGVycm9yIGhhcyBvY2N1cnJlZC4gVGhpcyBzaG91bGQgYmUgcmVwb3J0ZWRgdG8gcHJvdG9jb2wgbWFpbnRhaW5lcnMuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lh0NDFhwYWxsZXRfcmVsYXljaGFpbl9pbmZvGHBhbGxldBRFcnJvcgQEVAABAASAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4hDQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUASgEUwAABAC1AgEYVmVjPFQ+AAAlDQw0c3BfYXJpdGhtZXRpYyhwZXJfdGhpbmdzHFBlcmNlbnQAAAQACAEIdTgAACkNDChwYWxsZXRfZGNhGHBhbGxldBRFcnJvcgQEVAABVEBTY2hlZHVsZU5vdEZvdW5kAAAESFNjaGVkdWxlIG5vdCBleGlzdGBNaW5UcmFkZUFtb3VudE5vdFJlYWNoZWQAAQSMVGhlIG1pbiB0cmFkZSBhbW91bnQgaXMgbm90IHJlYWNoZWQkRm9yYmlkZGVuAAIE2EZvcmJpZGRlbiBhcyB0aGUgdXNlciBpcyBub3QgdGhlIG93bmVyIG9mIHRoZSBzY2hlZHVsZWBCbG9ja051bWJlcklzTm90SW5GdXR1cmUAAwTQVGhlIG5leHQgZXhlY3V0aW9uIGJsb2NrIG51bWJlciBpcyBub3QgaW4gdGhlIGZ1dHVyZTRQcmljZVVuc3RhYmxlAAQENQFQcmljZSBpcyB1bnN0YWJsZSBhcyBwcmljZSBjaGFuZ2UgZnJvbSBvcmFjbGUgZGF0YSBpcyBiaWdnZXIgdGhhbiBtYXggYWxsb3dlZBhCdW1wZWQABQSwT3JkZXIgd2FzIHJhbmRvbWx5IHJlc2NoZWR1bGVkIHRvIG5leHQgYmxvY2tUQ2FsY3VsYXRpbmdQcmljZUVycm9yAAYElEVycm9yIG9jY3VycmVkIHdoZW4gY2FsY3VsYXRpbmcgcHJpY2WEVG90YWxBbW91bnRJc1NtYWxsZXJUaGFuTWluQnVkZ2V0AAcE6FRoZSB0b3RhbCBhbW91bnQgdG8gYmUgcmVzZXJ2ZWQgaXMgc21hbGxlciB0aGFuIG1pbiBidWRnZXQwQnVkZ2V0VG9vTG93AAgE3FRoZSBidWRnZXQgaXMgdG9vIGxvdyBmb3IgZXhlY3V0aW5nIGF0IGxlYXN0IHR3byBvcmRlcnNATm9GcmVlQmxvY2tGb3VuZAAJBMhUaGVyZSBpcyBubyBmcmVlIGJsb2NrIGZvdW5kIHRvIHBsYW4gRENBIGV4ZWN1dGlvbkhNYW51YWxseVRlcm1pbmF0ZWQACgS0VGhlIERDQSBzY2hlZHVsZSBoYXMgYmVlbiBtYW51YWxseSB0ZXJtaW5hdGVkPE1heFJldHJ5UmVhY2hlZAALBKhNYXggbnVtYmVyIG9mIHJldHJpZXMgcmVhY2hlZCBmb3Igc2NoZWR1bGVEVHJhZGVMaW1pdFJlYWNoZWQADATAQWJzb2x1dGVseSB0cmFkZSBsaW1pdCByZWFjaGVkLCBsZWFkaW5nIHRvIHJldHJ5UFNsaXBwYWdlTGltaXRSZWFjaGVkAA0ECQFTbGlwcGFnZSBsaW1pdCBjYWxjdWxhdGVkIGZyb20gb3JhY2xlIGlzIHJlYWNoZWQsIGxlYWRpbmcgdG8gcmV0cnlETm9QYXJlbnRIYXNoRm91bmQADgS4Tm8gcGFyZW50IGhhc2ggaGFzIGJlZW4gZm91bmQgZnJvbSByZWxheSBjaGFpbjBJbnZhbGlkU3RhdGUADwSFAUVycm9yIHRoYXQgc2hvdWxkIG5vdCByZWFsbHkgaGFwcGVuIG9ubHkgaW4gY2FzZSBvZiBpbnZhbGlkIHN0YXRlIG9mIHRoZSBzY2hlZHVsZSBzdG9yYWdlIGVudHJpZXM4UGVyaW9kVG9vU2hvcnQAEASUUGVyaW9kIHNob3VsZCBiZSBsb25nZXIgdGhhbiA1IGJsb2Nrc2RTdGFiaWxpdHlUaHJlc2hvbGRUb29IaWdoABEEWQFTdGFiaWxpdHkgdGhyZXNob2xkIGNhbm5vdCBiZSBoaWdoZXIgdGhhbiBgTWF4Q29uZmlndXJhYmxlUHJpY2VEaWZmZXJlbmNlQmV0d2VlbkJsb2NrYEhIYXNBY3RpdmVTY2hlZHVsZXMAEgT4VXNlciBzdGlsbCBoYXMgYWN0aXZlIERDQSBzY2hlZHVsZXMgYW5kIGNhbm5vdCB1bmxvY2sgcmVzZXJ2ZXNATm9SZXNlcnZlc0xvY2tlZAATBNxObyByZXNlcnZlcyBhcmUgbG9ja2VkIGZvciB0aGUgdXNlciBmb3IgdGhlIGdpdmVuIGFzc2V0RE5vTG9uZ2VyU3VwcG9ydGVkABQENQFCdXkgb3JkZXJzIGNhbiBubyBsb25nZXIgYmUgc2NoZWR1bGVkLiBFeGlzdGluZyBidXkgc2NoZWR1bGVzIGtlZXAgZXhlY3V0aW5nLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC4tDQxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUATENBFMAAAQAOQ0BGFZlYzxUPgAAMQ0EGE9wdGlvbgQEVAE1DQEIEE5vbmUAAAAQU29tZQQANQ0AAAEAADUNCEBwYWxsZXRfc2NoZWR1bGVyJFNjaGVkdWxlZBQQTmFtZQEEEENhbGwBqQEsQmxvY2tOdW1iZXIBKDRQYWxsZXRzT3JpZ2luAYQkQWNjb3VudElkAQAAFAEgbWF5YmVfaWTxBgEwT3B0aW9uPE5hbWU+AAEgcHJpb3JpdHkIAUhzY2hlZHVsZTo6UHJpb3JpdHkAARBjYWxsqQEBEENhbGwAAThtYXliZV9wZXJpb2RpY9ECAZRPcHRpb248c2NoZWR1bGU6OlBlcmlvZDxCbG9ja051bWJlcj4+AAEYb3JpZ2luhAE0UGFsbGV0c09yaWdpbgAAOQ0AAAIxDQA9DQhAcGFsbGV0X3NjaGVkdWxlcixSZXRyeUNvbmZpZwQYUGVyaW9kASgADAE0dG90YWxfcmV0cmllcwgBCHU4AAEkcmVtYWluaW5nCAEIdTgAARhwZXJpb2QoARhQZXJpb2QAAEENDEBwYWxsZXRfc2NoZWR1bGVyGHBhbGxldBRFcnJvcgQEVAABFEBGYWlsZWRUb1NjaGVkdWxlAAAEZEZhaWxlZCB0byBzY2hlZHVsZSBhIGNhbGwgTm90Rm91bmQAAQR8Q2Fubm90IGZpbmQgdGhlIHNjaGVkdWxlZCBjYWxsLlxUYXJnZXRCbG9ja051bWJlckluUGFzdAACBKRHaXZlbiB0YXJnZXQgYmxvY2sgbnVtYmVyIGlzIGluIHRoZSBwYXN0LkhSZXNjaGVkdWxlTm9DaGFuZ2UAAwTwUmVzY2hlZHVsZSBmYWlsZWQgYmVjYXVzZSBpdCBkb2VzIG5vdCBjaGFuZ2Ugc2NoZWR1bGVkIHRpbWUuFE5hbWVkAAQE0EF0dGVtcHQgdG8gdXNlIGEgbm9uLW5hbWVkIGZ1bmN0aW9uIG9uIGEgbmFtZWQgdGFzay4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuRQ0AAAJJDQBJDQx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQgQW5jZXN0b3IEBEgBLAAMATh1c2VkX2JhbmR3aWR0aE0NATRVc2VkQmFuZHdpZHRoAAE4cGFyYV9oZWFkX2hhc2jFAQEkT3B0aW9uPEg+AAFgY29uc3VtZWRfZ29fYWhlYWRfc2lnbmFsYQ0BjE9wdGlvbjxyZWxheV9jaGFpbjo6VXBncmFkZUdvQWhlYWQ+AABNDQx8Y3VtdWx1c19wYWxsZXRfcGFyYWNoYWluX3N5c3RlbUh1bmluY2x1ZGVkX3NlZ21lbnQ0VXNlZEJhbmR3aWR0aAAADAE0dW1wX21zZ19jb3VudCgBDHUzMgABPHVtcF90b3RhbF9ieXRlcygBDHUzMgABNGhybXBfb3V0Z29pbmdRDQGMQlRyZWVNYXA8UGFyYUlkLCBIcm1wQ2hhbm5lbFVwZGF0ZT4AAFENBCBCVHJlZU1hcAgESwHgBFYBVQ0ABABZDQAAAFUNDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudERIcm1wQ2hhbm5lbFVwZGF0ZQAACAEkbXNnX2NvdW50KAEMdTMyAAEsdG90YWxfYnl0ZXMoAQx1MzIAAFkNAAACXQ0AXQ0AAAQI4FUNAGENBBhPcHRpb24EBFQBZQ0BCBBOb25lAAAAEFNvbWUEAGUNAAABAABlDQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2ODhVcGdyYWRlR29BaGVhZAABCBRBYm9ydAAAABxHb0FoZWFkAAEAAGkNDHxjdW11bHVzX3BhbGxldF9wYXJhY2hhaW5fc3lzdGVtSHVuaW5jbHVkZWRfc2VnbWVudDhTZWdtZW50VHJhY2tlcgQESAEsAAwBOHVzZWRfYmFuZHdpZHRoTQ0BNFVzZWRCYW5kd2lkdGgAAThocm1wX3dhdGVybWFya3QBgE9wdGlvbjxyZWxheV9jaGFpbjo6QmxvY2tOdW1iZXI+AAFgY29uc3VtZWRfZ29fYWhlYWRfc2lnbmFsYQ0BjE9wdGlvbjxyZWxheV9jaGFpbjo6VXBncmFkZUdvQWhlYWQ+AABtDQQYT3B0aW9uBARUAXENAQgQTm9uZQAAABBTb21lBABxDQAAAQAAcQ0MTHBvbGthZG90X3ByaW1pdGl2ZXMIdjhIVXBncmFkZVJlc3RyaWN0aW9uAAEEHFByZXNlbnQAAAAAdQ0MfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1QcmVsYXlfc3RhdGVfc25hcHNob3RYTWVzc2FnaW5nU3RhdGVTbmFwc2hvdAAAEAEwZG1xX21xY19oZWFkLAFEcmVsYXlfY2hhaW46Okhhc2gAAZxyZWxheV9kaXNwYXRjaF9xdWV1ZV9yZW1haW5pbmdfY2FwYWNpdHl5DQGMUmVsYXlEaXNwYXRjaFF1ZXVlUmVtYWluaW5nQ2FwYWNpdHkAAUBpbmdyZXNzX2NoYW5uZWxzfQ0BiFZlYzwoUGFyYUlkLCBBYnJpZGdlZEhybXBDaGFubmVsKT4AATxlZ3Jlc3NfY2hhbm5lbHN9DQGIVmVjPChQYXJhSWQsIEFicmlkZ2VkSHJtcENoYW5uZWwpPgAAeQ0MfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW1QcmVsYXlfc3RhdGVfc25hcHNob3SMUmVsYXlEaXNwYXRjaFF1ZXVlUmVtYWluaW5nQ2FwYWNpdHkAAAgBPHJlbWFpbmluZ19jb3VudCgBDHUzMgABOHJlbWFpbmluZ19zaXplKAEMdTMyAAB9DQAAAoENAIENAAAECOCFDQCFDQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OExBYnJpZGdlZEhybXBDaGFubmVsAAAYATBtYXhfY2FwYWNpdHkoAQx1MzIAAThtYXhfdG90YWxfc2l6ZSgBDHUzMgABQG1heF9tZXNzYWdlX3NpemUoAQx1MzIAASRtc2dfY291bnQoAQx1MzIAASh0b3RhbF9zaXplKAEMdTMyAAEgbXFjX2hlYWTFAQEwT3B0aW9uPEhhc2g+AACJDQxMcG9sa2Fkb3RfcHJpbWl0aXZlcwh2OGRBYnJpZGdlZEhvc3RDb25maWd1cmF0aW9uAAAoATRtYXhfY29kZV9zaXplKAEMdTMyAAFIbWF4X2hlYWRfZGF0YV9zaXplKAEMdTMyAAFYbWF4X3Vwd2FyZF9xdWV1ZV9jb3VudCgBDHUzMgABVG1heF91cHdhcmRfcXVldWVfc2l6ZSgBDHUzMgABXG1heF91cHdhcmRfbWVzc2FnZV9zaXplKAEMdTMyAAGQbWF4X3Vwd2FyZF9tZXNzYWdlX251bV9wZXJfY2FuZGlkYXRlKAEMdTMyAAGIaHJtcF9tYXhfbWVzc2FnZV9udW1fcGVyX2NhbmRpZGF0ZSgBDHUzMgABbHZhbGlkYXRpb25fdXBncmFkZV9jb29sZG93bigBLEJsb2NrTnVtYmVyAAFgdmFsaWRhdGlvbl91cGdyYWRlX2RlbGF5KAEsQmxvY2tOdW1iZXIAAVBhc3luY19iYWNraW5nX3BhcmFtc40NAUhBc3luY0JhY2tpbmdQYXJhbXMAAI0NEExwb2xrYWRvdF9wcmltaXRpdmVzCHY4NGFzeW5jX2JhY2tpbmdIQXN5bmNCYWNraW5nUGFyYW1zAAAIAUxtYXhfY2FuZGlkYXRlX2RlcHRoKAEMdTMyAAFQYWxsb3dlZF9hbmNlc3RyeV9sZW4oAQx1MzIAAJENCJRjdW11bHVzX3ByaW1pdGl2ZXNfcGFyYWNoYWluX2luaGVyZW50RE1lc3NhZ2VRdWV1ZUNoYWluAAAEACwBJFJlbGF5SGFzaAAAlQ0EIEJUcmVlTWFwCARLAeAEVgGRDQAEAJkNAAAAmQ0AAAKdDQCdDQAABAjgkQ0AoQ0AAAKlDQClDQhgcG9sa2Fkb3RfY29yZV9wcmltaXRpdmVzTE91dGJvdW5kSHJtcE1lc3NhZ2UECElkAeAACAEkcmVjaXBpZW504AEISWQAARBkYXRhFAFMYWxsb2M6OnZlYzo6VmVjPHU4PgAAqQ0MfGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW0YcGFsbGV0FEVycm9yBARUAAEYTE92ZXJsYXBwaW5nVXBncmFkZXMAAAQZAUF0dGVtcHQgdG8gdXBncmFkZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHdoaWxlIGV4aXN0aW5nIHVwZ3JhZGUgcGVuZGluZy5QUHJvaGliaXRlZEJ5UG9sa2Fkb3QAAQRNAVBvbGthZG90IGN1cnJlbnRseSBwcm9oaWJpdHMgdGhpcyBwYXJhY2hhaW4gZnJvbSB1cGdyYWRpbmcgaXRzIHZhbGlkYXRpb24gZnVuY3Rpb24uGFRvb0JpZwACCEUBVGhlIHN1cHBsaWVkIHZhbGlkYXRpb24gZnVuY3Rpb24gaGFzIGNvbXBpbGVkIGludG8gYSBibG9iIGxhcmdlciB0aGFuIFBvbGthZG90IGlzPHdpbGxpbmcgdG8gcnVuLmhWYWxpZGF0aW9uRGF0YU5vdEF2YWlsYWJsZQADBB0BVGhlIGluaGVyZW50IHdoaWNoIHN1cHBsaWVzIHRoZSB2YWxpZGF0aW9uIGRhdGEgZGlkIG5vdCBydW4gdGhpcyBibG9jay50SG9zdENvbmZpZ3VyYXRpb25Ob3RBdmFpbGFibGUABAQpAVRoZSBpbmhlcmVudCB3aGljaCBzdXBwbGllcyB0aGUgaG9zdCBjb25maWd1cmF0aW9uIGRpZCBub3QgcnVuIHRoaXMgYmxvY2suME5vdFNjaGVkdWxlZAAFBNhObyB2YWxpZGF0aW9uIGZ1bmN0aW9uIHVwZ3JhZGUgaXMgY3VycmVudGx5IHNjaGVkdWxlZC4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQurQ0MKHBhbGxldF94Y20YcGFsbGV0LFF1ZXJ5U3RhdHVzBCxCbG9ja051bWJlcgEoAQwcUGVuZGluZxABJHJlc3BvbmRlcq0EAURWZXJzaW9uZWRMb2NhdGlvbgABTG1heWJlX21hdGNoX3F1ZXJpZXKxDQFkT3B0aW9uPFZlcnNpb25lZExvY2F0aW9uPgABMG1heWJlX25vdGlmebUNAUBPcHRpb248KHU4LCB1OCk+AAEcdGltZW91dCgBLEJsb2NrTnVtYmVyAAAAPFZlcnNpb25Ob3RpZmllcggBGG9yaWdpbq0EAURWZXJzaW9uZWRMb2NhdGlvbgABJGlzX2FjdGl2ZUQBEGJvb2wAAQAUUmVhZHkIASByZXNwb25zZb0NAURWZXJzaW9uZWRSZXNwb25zZQABCGF0KAEsQmxvY2tOdW1iZXIAAgAAsQ0EGE9wdGlvbgQEVAGtBAEIEE5vbmUAAAAQU29tZQQArQQAAAEAALUNBBhPcHRpb24EBFQBuQ0BCBBOb25lAAAAEFNvbWUEALkNAAABAAC5DQAABAgICAC9DQgMeGNtRFZlcnNpb25lZFJlc3BvbnNlAAEMCFYzBAAhBQEwdjM6OlJlc3BvbnNlAAMACFY0BACNBQEwdjQ6OlJlc3BvbnNlAAQACFY1BADZBQEwdjU6OlJlc3BvbnNlAAUAAMENAAAECCitBADFDQAABAwY5CgAyQ0MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAHNDQRTAAAEANENARhWZWM8VD4AAM0NAAAECK0EKADRDQAAAs0NANUNDChwYWxsZXRfeGNtGHBhbGxldFRWZXJzaW9uTWlncmF0aW9uU3RhZ2UAARBcTWlncmF0ZVN1cHBvcnRlZFZlcnNpb24AAABcTWlncmF0ZVZlcnNpb25Ob3RpZmllcnMAAQBQTm90aWZ5Q3VycmVudFRhcmdldHMEAJEGATxPcHRpb248VmVjPHU4Pj4AAgBoTWlncmF0ZUFuZE5vdGlmeU9sZFRhcmdldHMAAwAA2Q0AAAQMKABlBgDdDQwocGFsbGV0X3hjbRhwYWxsZXRoUmVtb3RlTG9ja2VkRnVuZ2libGVSZWNvcmQISENvbnN1bWVySWRlbnRpZmllcgFwME1heENvbnN1bWVycwAAEAEYYW1vdW50QAEQdTEyOAABFG93bmVyrQQBRFZlcnNpb25lZExvY2F0aW9uAAEYbG9ja2VyrQQBRFZlcnNpb25lZExvY2F0aW9uAAEkY29uc3VtZXJz4Q0B0EJvdW5kZWRWZWM8KENvbnN1bWVySWRlbnRpZmllciwgdTEyOCksIE1heENvbnN1bWVycz4AAOENDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB5Q0EUwAABADpDQEYVmVjPFQ+AADlDQAABAhwQADpDQAAAuUNAO0NDExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB8Q0EUwAABAD1DQEYVmVjPFQ+AADxDQAABAhArQQA9Q0AAALxDQD5DQgocGFsbGV0X3hjbVhBdXRob3JpemVkQWxpYXNlc0VudHJ5CBhUaWNrZXQB/Q0MTUFYAQEOAAgBIGFsaWFzZXJzBQ4BeEJvdW5kZWRWZWM8T3JpZ2luQWxpYXNlciwgTUFYPgABGHRpY2tldP0NARhUaWNrZXQAAP0NEDRmcmFtZV9zdXBwb3J0GHRyYWl0cxxzdG9yYWdlIERpc2FibGVkAAAAAAEODChwYWxsZXRfeGNtGHBhbGxldFBNYXhBdXRob3JpemVkQWxpYXNlcwAAAAAFDgxMYm91bmRlZF9jb2xsZWN0aW9ucyxib3VuZGVkX3ZlYyhCb3VuZGVkVmVjCARUAQkOBFMAAAQADQ4BGFZlYzxUPgAACQ4MQHhjbV9ydW50aW1lX2FwaXNIYXV0aG9yaXplZF9hbGlhc2VzNE9yaWdpbkFsaWFzZXIAAAgBIGxvY2F0aW9urQQBRFZlcnNpb25lZExvY2F0aW9uAAEYZXhwaXJ5WQMBLE9wdGlvbjx1NjQ+AAANDgAAAgkOABEODChwYWxsZXRfeGNtGHBhbGxldBRFcnJvcgQEVAABcCxVbnJlYWNoYWJsZQAACF0BVGhlIGRlc2lyZWQgZGVzdGluYXRpb24gd2FzIHVucmVhY2hhYmxlLCBnZW5lcmFsbHkgYmVjYXVzZSB0aGVyZSBpcyBhIG5vIHdheSBvZiByb3V0aW5nGHRvIGl0LixTZW5kRmFpbHVyZQABCEEBVGhlcmUgd2FzIHNvbWUgb3RoZXIgaXNzdWUgKGkuZS4gbm90IHRvIGRvIHdpdGggcm91dGluZykgaW4gc2VuZGluZyB0aGUgbWVzc2FnZS7IUGVyaGFwcyBhIGxhY2sgb2Ygc3BhY2UgZm9yIGJ1ZmZlcmluZyB0aGUgbWVzc2FnZS4gRmlsdGVyZWQAAgScVGhlIG1lc3NhZ2UgZXhlY3V0aW9uIGZhaWxzIHRoZSBmaWx0ZXIuSFVud2VpZ2hhYmxlTWVzc2FnZQADBLRUaGUgbWVzc2FnZSdzIHdlaWdodCBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC5gRGVzdGluYXRpb25Ob3RJbnZlcnRpYmxlAAQE3FRoZSBkZXN0aW5hdGlvbiBgTG9jYXRpb25gIHByb3ZpZGVkIGNhbm5vdCBiZSBpbnZlcnRlZC4URW1wdHkABQSAVGhlIGFzc2V0cyB0byBiZSBzZW50IGFyZSBlbXB0eS44Q2Fubm90UmVhbmNob3IABgQ1AUNvdWxkIG5vdCByZS1hbmNob3IgdGhlIGFzc2V0cyB0byBkZWNsYXJlIHRoZSBmZWVzIGZvciB0aGUgZGVzdGluYXRpb24gY2hhaW4uNFRvb01hbnlBc3NldHMABwTEVG9vIG1hbnkgYXNzZXRzIGhhdmUgYmVlbiBhdHRlbXB0ZWQgZm9yIHRyYW5zZmVyLjRJbnZhbGlkT3JpZ2luAAgEeE9yaWdpbiBpcyBpbnZhbGlkIGZvciBzZW5kaW5nLihCYWRWZXJzaW9uAAkEIQFUaGUgdmVyc2lvbiBvZiB0aGUgYFZlcnNpb25lZGAgdmFsdWUgdXNlZCBpcyBub3QgYWJsZSB0byBiZSBpbnRlcnByZXRlZC4sQmFkTG9jYXRpb24ACghBAVRoZSBnaXZlbiBsb2NhdGlvbiBjb3VsZCBub3QgYmUgdXNlZCAoZS5nLiBiZWNhdXNlIGl0IGNhbm5vdCBiZSBleHByZXNzZWQgaW4gdGhlYGRlc2lyZWQgdmVyc2lvbiBvZiBYQ00pLjhOb1N1YnNjcmlwdGlvbgALBLxUaGUgcmVmZXJlbmNlZCBzdWJzY3JpcHRpb24gY291bGQgbm90IGJlIGZvdW5kLkRBbHJlYWR5U3Vic2NyaWJlZAAMBBEBVGhlIGxvY2F0aW9uIGlzIGludmFsaWQgc2luY2UgaXQgYWxyZWFkeSBoYXMgYSBzdWJzY3JpcHRpb24gZnJvbSB1cy5YQ2Fubm90Q2hlY2tPdXRUZWxlcG9ydAANBCkBQ291bGQgbm90IGNoZWNrLW91dCB0aGUgYXNzZXRzIGZvciB0ZWxlcG9ydGF0aW9uIHRvIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4oTG93QmFsYW5jZQAOBEEBVGhlIG93bmVyIGRvZXMgbm90IG93biAoYWxsKSBvZiB0aGUgYXNzZXQgdGhhdCB0aGV5IHdpc2ggdG8gZG8gdGhlIG9wZXJhdGlvbiBvbi4wVG9vTWFueUxvY2tzAA8EwFRoZSBhc3NldCBvd25lciBoYXMgdG9vIG1hbnkgbG9ja3Mgb24gdGhlIGFzc2V0LkxBY2NvdW50Tm90U292ZXJlaWduABAEMQFUaGUgZ2l2ZW4gYWNjb3VudCBpcyBub3QgYW4gaWRlbnRpZmlhYmxlIHNvdmVyZWlnbiBhY2NvdW50IGZvciBhbnkgbG9jYXRpb24uKEZlZXNOb3RNZXQAEQQpAVRoZSBvcGVyYXRpb24gcmVxdWlyZWQgZmVlcyB0byBiZSBwYWlkIHdoaWNoIHRoZSBpbml0aWF0b3IgY291bGQgbm90IG1lZXQuMExvY2tOb3RGb3VuZAASBPRBIHJlbW90ZSBsb2NrIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgZGF0YSBjb3VsZCBub3QgYmUgZm91bmQuFEluVXNlABMESQFUaGUgdW5sb2NrIG9wZXJhdGlvbiBjYW5ub3Qgc3VjY2VlZCBiZWNhdXNlIHRoZXJlIGFyZSBzdGlsbCBjb25zdW1lcnMgb2YgdGhlIGxvY2suaEludmFsaWRBc3NldFVua25vd25SZXNlcnZlABUE8EludmFsaWQgYXNzZXQsIHJlc2VydmUgY2hhaW4gY291bGQgbm90IGJlIGRldGVybWluZWQgZm9yIGl0LnhJbnZhbGlkQXNzZXRVbnN1cHBvcnRlZFJlc2VydmUAFgRFAUludmFsaWQgYXNzZXQsIGRvIG5vdCBzdXBwb3J0IHJlbW90ZSBhc3NldCByZXNlcnZlcyB3aXRoIGRpZmZlcmVudCBmZWVzIHJlc2VydmVzLjxUb29NYW55UmVzZXJ2ZXMAFwRJAVRvbyBtYW55IGFzc2V0cyB3aXRoIGRpZmZlcmVudCByZXNlcnZlIGxvY2F0aW9ucyBoYXZlIGJlZW4gYXR0ZW1wdGVkIGZvciB0cmFuc2Zlci5gTG9jYWxFeGVjdXRpb25JbmNvbXBsZXRlABgEfExvY2FsIFhDTSBleGVjdXRpb24gaW5jb21wbGV0ZS5gVG9vTWFueUF1dGhvcml6ZWRBbGlhc2VzABkEuFRvbyBtYW55IGxvY2F0aW9ucyBhdXRob3JpemVkIHRvIGFsaWFzIG9yaWdpbi40RXhwaXJlc0luUGFzdAAaBIxFeHBpcnkgYmxvY2sgbnVtYmVyIGlzIGluIHRoZSBwYXN0LjRBbGlhc05vdEZvdW5kABsE0FRoZSBhbGlhcyB0byByZW1vdmUgYXV0aG9yaXphdGlvbiBmb3Igd2FzIG5vdCBmb3VuZC6ETG9jYWxFeGVjdXRpb25JbmNvbXBsZXRlV2l0aEVycm9yCAEUaW5kZXgIAUBJbnN0cnVjdGlvbkluZGV4AAEUZXJyb3IVDgE4RXhlY3V0aW9uRXJyb3IAHAg1AUxvY2FsIFhDTSBleGVjdXRpb24gaW5jb21wbGV0ZSB3aXRoIHRoZSBhY3R1YWwgWENNIGVycm9yIGFuZCB0aGUgaW5kZXggb2YgdGhliGluc3RydWN0aW9uIHRoYXQgY2F1c2VkIHRoZSBlcnJvci4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQuFQ4MKHBhbGxldF94Y20YZXJyb3JzOEV4ZWN1dGlvbkVycm9yAAGkIE92ZXJmbG93AAAANFVuaW1wbGVtZW50ZWQAAQBgVW50cnVzdGVkUmVzZXJ2ZUxvY2F0aW9uAAIAZFVudHJ1c3RlZFRlbGVwb3J0TG9jYXRpb24AAwAwTG9jYXRpb25GdWxsAAQAVExvY2F0aW9uTm90SW52ZXJ0aWJsZQAFACRCYWRPcmlnaW4ABgA8SW52YWxpZExvY2F0aW9uAAcANEFzc2V0Tm90Rm91bmQACABURmFpbGVkVG9UcmFuc2FjdEFzc2V0AAkAPE5vdFdpdGhkcmF3YWJsZQAKAEhMb2NhdGlvbkNhbm5vdEhvbGQACwBURXhjZWVkc01heE1lc3NhZ2VTaXplAAwAWERlc3RpbmF0aW9uVW5zdXBwb3J0ZWQADQAkVHJhbnNwb3J0AA4AKFVucm91dGFibGUADwAwVW5rbm93bkNsYWltABAAOEZhaWxlZFRvRGVjb2RlABEAQE1heFdlaWdodEludmFsaWQAEgA4Tm90SG9sZGluZ0ZlZXMAEwAwVG9vRXhwZW5zaXZlABQAEFRyYXAAFQBARXhwZWN0YXRpb25GYWxzZQAWADhQYWxsZXROb3RGb3VuZAAXADBOYW1lTWlzbWF0Y2gAGABMVmVyc2lvbkluY29tcGF0aWJsZQAZAFBIb2xkaW5nV291bGRPdmVyZmxvdwAaACxFeHBvcnRFcnJvcgAbADhSZWFuY2hvckZhaWxlZAAcABhOb0RlYWwAHQAoRmVlc05vdE1ldAAeACRMb2NrRXJyb3IAHwAwTm9QZXJtaXNzaW9uACAAKFVuYW5jaG9yZWQAIQA4Tm90RGVwb3NpdGFibGUAIgA0VG9vTWFueUFzc2V0cwAjAExVbmhhbmRsZWRYY21WZXJzaW9uACQASFdlaWdodExpbWl0UmVhY2hlZAAlABxCYXJyaWVyACYATFdlaWdodE5vdENvbXB1dGFibGUAJwBERXhjZWVkc1N0YWNrTGltaXQAKAAAGQ4MTGJvdW5kZWRfY29sbGVjdGlvbnNEYm91bmRlZF9idHJlZV9zZXQ8Qm91bmRlZEJUcmVlU2V0CARUAeAEUwAABAAdDgEsQlRyZWVTZXQ8VD4AAB0OBCBCVHJlZVNldAQEVAHgAAQAIQ4AAAAhDgAAAuAAJQ4MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEpDgRTAAAEADEOARhWZWM8VD4AACkOCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlWE91dGJvdW5kQ2hhbm5lbERldGFpbHMAABQBJHJlY2lwaWVudOABGFBhcmFJZAABFHN0YXRlLQ4BNE91dGJvdW5kU3RhdGUAATRzaWduYWxzX2V4aXN0RAEQYm9vbAABLGZpcnN0X2luZGV4gAEMdTE2AAEobGFzdF9pbmRleIABDHUxNgAALQ4IZGN1bXVsdXNfcGFsbGV0X3hjbXBfcXVldWU0T3V0Ym91bmRTdGF0ZQABCAhPawAAACRTdXNwZW5kZWQAAQAAMQ4AAAIpDgA1DgAABAjggAA5DgxMYm91bmRlZF9jb2xsZWN0aW9uc0B3ZWFrX2JvdW5kZWRfdmVjOFdlYWtCb3VuZGVkVmVjCARUAQgEUwAABAAUARhWZWM8VD4AAD0OCGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlPFF1ZXVlQ29uZmlnRGF0YQAADAFEc3VzcGVuZF90aHJlc2hvbGQoAQx1MzIAAThkcm9wX3RocmVzaG9sZCgBDHUzMgABQHJlc3VtZV90aHJlc2hvbGQoAQx1MzIAAEEODGRjdW11bHVzX3BhbGxldF94Y21wX3F1ZXVlGHBhbGxldBRFcnJvcgQEVAABFDhCYWRRdWV1ZUNvbmZpZwAABBEBU2V0dGluZyB0aGUgcXVldWUgY29uZmlnIGZhaWxlZCBzaW5jZSBvbmUgb2YgaXRzIHZhbHVlcyB3YXMgaW52YWxpZC5AQWxyZWFkeVN1c3BlbmRlZAABBIxUaGUgZXhlY3V0aW9uIGlzIGFscmVhZHkgc3VzcGVuZGVkLjhBbHJlYWR5UmVzdW1lZAACBIRUaGUgZXhlY3V0aW9uIGlzIGFscmVhZHkgcmVzdW1lZC50VG9vTWFueUFjdGl2ZU91dGJvdW5kQ2hhbm5lbHMAAwSwVGhlcmUgYXJlIHRvbyBtYW55IGFjdGl2ZSBvdXRib3VuZCBjaGFubmVscy4YVG9vQmlnAAQEXFRoZSBtZXNzYWdlIGlzIHRvbyBiaWcuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LkUOCFBwYWxsZXRfbWVzc2FnZV9xdWV1ZSRCb29rU3RhdGUENE1lc3NhZ2VPcmlnaW4BcQYAGAEUYmVnaW4oASRQYWdlSW5kZXgAAQxlbmQoASRQYWdlSW5kZXgAARRjb3VudCgBJFBhZ2VJbmRleAABQHJlYWR5X25laWdoYm91cnNJDgGET3B0aW9uPE5laWdoYm91cnM8TWVzc2FnZU9yaWdpbj4+AAE0bWVzc2FnZV9jb3VudBgBDHU2NAABEHNpemUYAQx1NjQAAEkOBBhPcHRpb24EBFQBTQ4BCBBOb25lAAAAEFNvbWUEAE0OAAABAABNDghQcGFsbGV0X21lc3NhZ2VfcXVldWUoTmVpZ2hib3VycwQ0TWVzc2FnZU9yaWdpbgFxBgAIARBwcmV2cQYBNE1lc3NhZ2VPcmlnaW4AARBuZXh0cQYBNE1lc3NhZ2VPcmlnaW4AAFEOAAAECHEGKABVDghQcGFsbGV0X21lc3NhZ2VfcXVldWUQUGFnZQgQU2l6ZQEoIEhlYXBTaXplAAAYASRyZW1haW5pbmcoARBTaXplAAE4cmVtYWluaW5nX3NpemUoARBTaXplAAEsZmlyc3RfaW5kZXgoARBTaXplAAEUZmlyc3QoARBTaXplAAEQbGFzdCgBEFNpemUAARBoZWFwWQ4BnEJvdW5kZWRWZWM8dTgsIEludG9VMzI8SGVhcFNpemUsIFNpemU+PgAAWQ4MTGJvdW5kZWRfY29sbGVjdGlvbnMsYm91bmRlZF92ZWMoQm91bmRlZFZlYwgEVAEIBFMAAAQAFAEYVmVjPFQ+AABdDgxQcGFsbGV0X21lc3NhZ2VfcXVldWUYcGFsbGV0FEVycm9yBARUAAEkLE5vdFJlYXBhYmxlAAAISQFQYWdlIGlzIG5vdCByZWFwYWJsZSBiZWNhdXNlIGl0IGhhcyBpdGVtcyByZW1haW5pbmcgdG8gYmUgcHJvY2Vzc2VkIGFuZCBpcyBub3Qgb2xkHGVub3VnaC4YTm9QYWdlAAEEhFBhZ2UgdG8gYmUgcmVhcGVkIGRvZXMgbm90IGV4aXN0LiROb01lc3NhZ2UAAgSoVGhlIHJlZmVyZW5jZWQgbWVzc2FnZSBjb3VsZCBub3QgYmUgZm91bmQuQEFscmVhZHlQcm9jZXNzZWQAAwQBAVRoZSBtZXNzYWdlIHdhcyBhbHJlYWR5IHByb2Nlc3NlZCBhbmQgY2Fubm90IGJlIHByb2Nlc3NlZCBhZ2Fpbi4YUXVldWVkAAQErFRoZSBtZXNzYWdlIGlzIHF1ZXVlZCBmb3IgZnV0dXJlIGV4ZWN1dGlvbi5ISW5zdWZmaWNpZW50V2VpZ2h0AAUEGQFUaGVyZSBpcyB0ZW1wb3JhcmlseSBub3QgZW5vdWdoIHdlaWdodCB0byBjb250aW51ZSBzZXJ2aWNpbmcgbWVzc2FnZXMuYFRlbXBvcmFyaWx5VW5wcm9jZXNzYWJsZQAGEKhUaGlzIG1lc3NhZ2UgaXMgdGVtcG9yYXJpbHkgdW5wcm9jZXNzYWJsZS4AWQFTdWNoIGVycm9ycyBhcmUgZXhwZWN0ZWQsIGJ1dCBub3QgZ3VhcmFudGVlZCwgdG8gcmVzb2x2ZSB0aGVtc2VsdmVzIGV2ZW50dWFsbHkgdGhyb3VnaCRyZXRyeWluZy4sUXVldWVQYXVzZWQABwzsVGhlIHF1ZXVlIGlzIHBhdXNlZCBhbmQgbm8gbWVzc2FnZSBjYW4gYmUgZXhlY3V0ZWQgZnJvbSBpdC4AHQFUaGlzIGNhbiBjaGFuZ2UgYXQgYW55IHRpbWUgYW5kIG1heSByZXNvbHZlIGluIHRoZSBmdXR1cmUgYnkgcmUtdHJ5aW5nLkxSZWN1cnNpdmVEaXNhbGxvd2VkAAgEMQFBbm90aGVyIGNhbGwgaXMgaW4gcHJvZ3Jlc3MgYW5kIG5lZWRzIHRvIGZpbmlzaCBiZWZvcmUgdGhpcyBjYWxsIGNhbiBoYXBwZW4uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LmEODERwYWxsZXRfbWlncmF0aW9ucxhwYWxsZXQURXJyb3IEBFQAAQQcT25nb2luZwAABOhUaGUgb3BlcmF0aW9uIGNhbm5vdCBjb21wbGV0ZSBzaW5jZSBzb21lIE1CTXMgYXJlIG9uZ29pbmcuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LmUODCBvcm1sX3hjbRhtb2R1bGUURXJyb3IEBFQAAQwsVW5yZWFjaGFibGUAAAgNAVRoZSBtZXNzYWdlIGFuZCBkZXN0aW5hdGlvbiBjb21iaW5hdGlvbiB3YXMgbm90IHJlY29nbml6ZWQgYXMgYmVpbmcocmVhY2hhYmxlLixTZW5kRmFpbHVyZQABCAUBVGhlIG1lc3NhZ2UgYW5kIGRlc3RpbmF0aW9uIHdhcyByZWNvZ25pemVkIGFzIGJlaW5nIHJlYWNoYWJsZSBidXSUdGhlIG9wZXJhdGlvbiBjb3VsZCBub3QgYmUgY29tcGxldGVkLihCYWRWZXJzaW9uAAII7FRoZSB2ZXJzaW9uIG9mIHRoZSBgVmVyc2lvbmVkYCB2YWx1ZSB1c2VkIGlzIG5vdCBhYmxlIHRvIGJlMGludGVycHJldGVkLgSAVGhlIGBFcnJvcmAgZW51bSBvZiB0aGlzIHBhbGxldC5pDgwwb3JtbF94dG9rZW5zGG1vZHVsZRRFcnJvcgQEVAABUERBc3NldEhhc05vUmVzZXJ2ZQAABHhBc3NldCBoYXMgbm8gcmVzZXJ2ZSBsb2NhdGlvbi5UTm90Q3Jvc3NDaGFpblRyYW5zZmVyAAEEZE5vdCBjcm9zcy1jaGFpbiB0cmFuc2Zlci4sSW52YWxpZERlc3QAAgR0SW52YWxpZCB0cmFuc2ZlciBkZXN0aW5hdGlvbi6ETm90Q3Jvc3NDaGFpblRyYW5zZmVyYWJsZUN1cnJlbmN5AAMEpEN1cnJlbmN5IGlzIG5vdCBjcm9zcy1jaGFpbiB0cmFuc2ZlcmFibGUuSFVud2VpZ2hhYmxlTWVzc2FnZQAEBLRUaGUgbWVzc2FnZSdzIHdlaWdodCBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC5IWGNtRXhlY3V0aW9uRmFpbGVkAAUEVFhDTSBleGVjdXRpb24gZmFpbGVkLjhDYW5ub3RSZWFuY2hvcgAGCOhDb3VsZCBub3QgcmUtYW5jaG9yIHRoZSBhc3NldHMgdG8gZGVjbGFyZSB0aGUgZmVlcyBmb3IgdGhlSGRlc3RpbmF0aW9uIGNoYWluLjxJbnZhbGlkQW5jZXN0cnkABwTEQ291bGQgbm90IGdldCBhbmNlc3RyeSBvZiBhc3NldCByZXNlcnZlIGxvY2F0aW9uLjBJbnZhbGlkQXNzZXQACARUVGhlIEFzc2V0IGlzIGludmFsaWQuYERlc3RpbmF0aW9uTm90SW52ZXJ0aWJsZQAJBNxUaGUgZGVzdGluYXRpb24gYExvY2F0aW9uYCBwcm92aWRlZCBjYW5ub3QgYmUgaW52ZXJ0ZWQuKEJhZFZlcnNpb24ACgjsVGhlIHZlcnNpb24gb2YgdGhlIGBWZXJzaW9uZWRgIHZhbHVlIHVzZWQgaXMgbm90IGFibGUgdG8gYmUwaW50ZXJwcmV0ZWQudERpc3RpbmN0UmVzZXJ2ZUZvckFzc2V0QW5kRmVlAAsI/FdlIHRyaWVkIHNlbmRpbmcgZGlzdGluY3QgYXNzZXQgYW5kIGZlZSBidXQgdGhleSBoYXZlIGRpZmZlcmVudDxyZXNlcnZlIGNoYWlucy4cWmVyb0ZlZQAMBEBUaGUgZmVlIGlzIHplcm8uKFplcm9BbW91bnQADQSYVGhlIHRyYW5zZmVycmluZyBhc3NldCBhbW91bnQgaXMgemVyby5YVG9vTWFueUFzc2V0c0JlaW5nU2VudAAOBNBUaGUgbnVtYmVyIG9mIGFzc2V0cyB0byBiZSBzZW50IGlzIG92ZXIgdGhlIG1heGltdW0uVEFzc2V0SW5kZXhOb25FeGlzdGVudAAPBNhUaGUgc3BlY2lmaWVkIGluZGV4IGRvZXMgbm90IGV4aXN0IGluIGEgQXNzZXRzIHN0cnVjdC4wRmVlTm90RW5vdWdoABAESEZlZSBpcyBub3QgZW5vdWdoLlBOb3RTdXBwb3J0ZWRMb2NhdGlvbgARBFhOb3Qgc3VwcG9ydGVkIExvY2F0aW9uTE1pblhjbUZlZU5vdERlZmluZWQAEgTUTWluWGNtRmVlIG5vdCByZWdpc3RlcmVkIGZvciBjZXJ0YWluIHJlc2VydmUgbG9jYXRpb24sUmF0ZUxpbWl0ZWQAEwSkQXNzZXQgdHJhbnNmZXIgaXMgbGltaXRlZCBieSBSYXRlTGltaXRlci4EgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQubQ4AAAQInJwAcQ4AAAQInBQAdQ4MTG9ybWxfdW5rbm93bl90b2tlbnMYbW9kdWxlFEVycm9yBARUAAEMNEJhbGFuY2VUb29Mb3cAAARcVGhlIGJhbGFuY2UgaXMgdG9vIGxvdy48QmFsYW5jZU92ZXJmbG93AAEEtFRoZSBvcGVyYXRpb24gd2lsbCBjYXVzZSBiYWxhbmNlIHRvIG92ZXJmbG93LjhVbmhhbmRsZWRBc3NldAACBEBVbmhhbmRsZWQgYXNzZXQuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LnkODExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBfQ4EUwAABACBDgEYVmVjPFQ+AAB9DgxkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbhhwYWxsZXQ0Q2FuZGlkYXRlSW5mbwgkQWNjb3VudElkAQAcQmFsYW5jZQFAAAgBDHdobwABJEFjY291bnRJZAABHGRlcG9zaXRAARxCYWxhbmNlAACBDgAAAn0OAIUODGRwYWxsZXRfY29sbGF0b3Jfc2VsZWN0aW9uGHBhbGxldBRFcnJvcgQEVAABRERUb29NYW55Q2FuZGlkYXRlcwAABIxUaGUgcGFsbGV0IGhhcyB0b28gbWFueSBjYW5kaWRhdGVzLlxUb29GZXdFbGlnaWJsZUNvbGxhdG9ycwABBKxMZWF2aW5nIHdvdWxkIHJlc3VsdCBpbiB0b28gZmV3IGNhbmRpZGF0ZXMuQEFscmVhZHlDYW5kaWRhdGUAAgR8QWNjb3VudCBpcyBhbHJlYWR5IGEgY2FuZGlkYXRlLjBOb3RDYW5kaWRhdGUAAwRsQWNjb3VudCBpcyBub3QgYSBjYW5kaWRhdGUuUFRvb01hbnlJbnZ1bG5lcmFibGVzAAQEhFRoZXJlIGFyZSB0b28gbWFueSBJbnZ1bG5lcmFibGVzLkxBbHJlYWR5SW52dWxuZXJhYmxlAAUEjEFjY291bnQgaXMgYWxyZWFkeSBhbiBJbnZ1bG5lcmFibGUuPE5vdEludnVsbmVyYWJsZQAGBHxBY2NvdW50IGlzIG5vdCBhbiBJbnZ1bG5lcmFibGUuXE5vQXNzb2NpYXRlZFZhbGlkYXRvcklkAAcEnEFjY291bnQgaGFzIG5vIGFzc29jaWF0ZWQgdmFsaWRhdG9yIElELlhWYWxpZGF0b3JOb3RSZWdpc3RlcmVkAAgEjFZhbGlkYXRvciBJRCBpcyBub3QgeWV0IHJlZ2lzdGVyZWQubEluc2VydFRvQ2FuZGlkYXRlTGlzdEZhaWxlZAAJBJxDb3VsZCBub3QgaW5zZXJ0IGluIHRoZSBjYW5kaWRhdGUgbGlzdC50UmVtb3ZlRnJvbUNhbmRpZGF0ZUxpc3RGYWlsZWQACgSkQ291bGQgbm90IHJlbW92ZSBmcm9tIHRoZSBjYW5kaWRhdGUgbGlzdC40RGVwb3NpdFRvb0xvdwALBPROZXcgZGVwb3NpdCBhbW91bnQgd291bGQgYmUgYmVsb3cgdGhlIG1pbmltdW0gY2FuZGlkYWN5IGJvbmQuZFVwZGF0ZUNhbmRpZGF0ZUxpc3RGYWlsZWQADASQQ291bGQgbm90IHVwZGF0ZSB0aGUgY2FuZGlkYXRlIGxpc3QuQEluc3VmZmljaWVudEJvbmQADQQpAURlcG9zaXQgYW1vdW50IGlzIHRvbyBsb3cgdG8gdGFrZSB0aGUgdGFyZ2V0J3Mgc2xvdCBpbiB0aGUgY2FuZGlkYXRlIGxpc3QuUFRhcmdldElzTm90Q2FuZGlkYXRlAA4ELQFUaGUgdGFyZ2V0IGFjY291bnQgdG8gYmUgcmVwbGFjZWQgaW4gdGhlIGNhbmRpZGF0ZSBsaXN0IGlzIG5vdCBhIGNhbmRpZGF0ZS5ASWRlbnRpY2FsRGVwb3NpdAAPBA0BVGhlIHVwZGF0ZWQgZGVwb3NpdCBhbW91bnQgaXMgZXF1YWwgdG8gdGhlIGFtb3VudCBhbHJlYWR5IHJlc2VydmVkLkBJbnZhbGlkVW5yZXNlcnZlABAEPQFDYW5ub3QgbG93ZXIgY2FuZGlkYWN5IGJvbmQgd2hpbGUgb2NjdXB5aW5nIGEgZnV0dXJlIGNvbGxhdG9yIHNsb3QgaW4gdGhlIGxpc3QuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LokOAAACjQ4AjQ4AAAQIAK0GAJEOAAAClQ4AlQ4AAAQIKJkOAJkODChzcF9zdGFraW5nHG9mZmVuY2U8T2ZmZW5jZVNldmVyaXR5AAAEACkDARxQZXJiaWxsAACdDgAABAihDhQAoQ4MHHNwX2NvcmUYY3J5cHRvJEtleVR5cGVJZAAABAC4ARxbdTg7IDRdAAClDgw4cGFsbGV0X3Nlc3Npb24YcGFsbGV0FEVycm9yBARUAAEUMEludmFsaWRQcm9vZgAABGBJbnZhbGlkIG93bmVyc2hpcCBwcm9vZi5cTm9Bc3NvY2lhdGVkVmFsaWRhdG9ySWQAAQScTm8gYXNzb2NpYXRlZCB2YWxpZGF0b3IgSUQgZm9yIGFjY291bnQuNER1cGxpY2F0ZWRLZXkAAgRkUmVnaXN0ZXJlZCBkdXBsaWNhdGUga2V5LhhOb0tleXMAAwSkTm8ga2V5cyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYWNjb3VudC4kTm9BY2NvdW50AAQEGQFLZXkgc2V0dGluZyBhY2NvdW50IGlzIG5vdCBsaXZlLCBzbyBpdCdzIGltcG9zc2libGUgdG8gYXNzb2NpYXRlIGtleXMuBHRFcnJvciBmb3IgdGhlIHNlc3Npb24gcGFsbGV0LqkODExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQBsQYEUwAABACtDgEYVmVjPFQ+AACtDgAAArEGALEOCEhzcF9jb25zZW5zdXNfc2xvdHMQU2xvdAAABAAYAQx1NjQAALUOAAAECLEOKAC5DgQgQlRyZWVNYXAIBEsBvQ4EVgHBDgAEAM0OAAAAvQ4AAAQIIQGpAgDBDgxEcGFsbGV0X2VtYV9vcmFjbGUUdHlwZXMsT3JhY2xlRW50cnkELEJsb2NrTnVtYmVyASgAFAEUcHJpY2XBCAEUUHJpY2UAARh2b2x1bWXFDgE8Vm9sdW1lPEJhbGFuY2U+AAEkbGlxdWlkaXR5yQ4BSExpcXVpZGl0eTxCYWxhbmNlPgABPHNoYXJlc19pc3N1YW5jZfUBATxPcHRpb248QmFsYW5jZT4AASh1cGRhdGVkX2F0KAEsQmxvY2tOdW1iZXIAAMUODDhoeWRyYWR4X3RyYWl0cxhvcmFjbGUYVm9sdW1lBBxCYWxhbmNlAUAAEAEQYV9pbkABHEJhbGFuY2UAARRiX291dEABHEJhbGFuY2UAARRhX291dEABHEJhbGFuY2UAARBiX2luQAEcQmFsYW5jZQAAyQ4MOGh5ZHJhZHhfdHJhaXRzGG9yYWNsZSRMaXF1aWRpdHkEHEJhbGFuY2UBQAAIAQRhQAEcQmFsYW5jZQABBGJAARxCYWxhbmNlAADNDgAAAtEOANEOAAAECL0OwQ4A1Q4AAAQMIQGpAiEDANkOAAAECMEOKADdDgxMYm91bmRlZF9jb2xsZWN0aW9uc0Rib3VuZGVkX2J0cmVlX3NldDxCb3VuZGVkQlRyZWVTZXQIBFQBvQ4EUwAABADhDgEsQlRyZWVTZXQ8VD4AAOEOBCBCVHJlZVNldAQEVAG9DgAEAOUOAAAA5Q4AAAK9DgDpDgAABAwhAakCAADtDgxEcGFsbGV0X2VtYV9vcmFjbGUYcGFsbGV0FEVycm9yBARUAAEgUFRvb01hbnlVbmlxdWVFbnRyaWVzAAAAQE9uVHJhZGVWYWx1ZVplcm8AAQA4T3JhY2xlTm90Rm91bmQAAgA0QXNzZXROb3RGb3VuZAADBDxBc3NldCBub3QgZm91bmRcU291cmNlQWxyZWFkeVJlZ2lzdGVyZWQABASoVGhlIGV4dGVybmFsIHNvdXJjZSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuOFNvdXJjZU5vdEZvdW5kAAUEiFRoZSBleHRlcm5hbCBzb3VyY2Ugd2FzIG5vdCBmb3VuZC40Tm90QXV0aG9yaXplZAAGBOhUaGUgY2FsbGVyIGlzIG5vdCBhdXRob3JpemVkIGZvciB0aGUgZ2l2ZW4gKHNvdXJjZSwgcGFpcikuLFByaWNlSXNaZXJvAAcEXFByaWNlIG11c3Qgbm90IGJlIHplcm8uBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0LvEODExib3VuZGVkX2NvbGxlY3Rpb25zLGJvdW5kZWRfdmVjKEJvdW5kZWRWZWMIBFQB8QgEUwAABADtCAEYVmVjPFQ+AAD1DgxAcGFsbGV0X2Jyb2FkY2FzdBhwYWxsZXQURXJyb3IEBFQAAQhoRXhlY3V0aW9uQ2FsbFN0YWNrT3ZlcmZsb3cAAAT0VGhlIGV4ZWN1dGlvbiBjb250ZXh0IGNhbGwgc3RhY2sgaGFzIHJlYWNoZWQgaXRzIG1heGltdW0gc2l6ZWxFeGVjdXRpb25DYWxsU3RhY2tVbmRlcmZsb3cAAQQNAVRoZSBleGVjdXRpb24gY29udGV4dCBjYWxsIHN0YWNrIGlzIGVtcHR5LCB1bmFibGUgdG8gZGVjcmVhc2UgbGV2ZWwEgFRoZSBgRXJyb3JgIGVudW0gb2YgdGhpcyBwYWxsZXQu+Q4MUHBhbGxldF9mZWVfcHJvY2Vzc29yGHBhbGxldBRFcnJvcgQEVAABFChBbHJlYWR5SGR4AAAErEFzc2V0IGlzIGFscmVhZHkgSERYLCBubyBjb252ZXJzaW9uIG5lZWRlZC5AQ29udmVyc2lvbkZhaWxlZAABBEhDb252ZXJzaW9uIGZhaWxlZC44VHJhbnNmZXJGYWlsZWQAAgRAVHJhbnNmZXIgZmFpbGVkLkRQcmljZU5vdEF2YWlsYWJsZQADBKBTcG90IHByaWNlIG5vdCBhdmFpbGFibGUgZm9yIGFzc2V0IHBhaXIuKEFyaXRobWV0aWMABAR4QXJpdGhtZXRpYyBvdmVyZmxvdy91bmRlcmZsb3cuBIBUaGUgYEVycm9yYCBlbnVtIG9mIHRoaXMgcGFsbGV0Lv0OCChzcF9ydW50aW1lWEV4dHJpbnNpY0luY2x1c2lvbk1vZGUAAQg0QWxsRXh0cmluc2ljcwAAADRPbmx5SW5oZXJlbnRzAAEAAAEPCBxzcF9jb3JlOE9wYXF1ZU1ldGFkYXRhAAAEABQBHFZlYzx1OD4AAAUPBBhPcHRpb24EBFQBAQ8BCBBOb25lAAAAEFNvbWUEAAEPAAABAAAJDwQYUmVzdWx0CARUAVEHBEUBDQ8BCAhPawQAUQcAAAAADEVycgQADQ8AAAEAAA0PDChzcF9ydW50aW1lUHRyYW5zYWN0aW9uX3ZhbGlkaXR5YFRyYW5zYWN0aW9uVmFsaWRpdHlFcnJvcgABCBxJbnZhbGlkBAARDwFISW52YWxpZFRyYW5zYWN0aW9uAAAAHFVua25vd24EABUPAUhVbmtub3duVHJhbnNhY3Rpb24AAQAAEQ8MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlISW52YWxpZFRyYW5zYWN0aW9uAAE0EENhbGwAAAAcUGF5bWVudAABABhGdXR1cmUAAgAUU3RhbGUAAwAgQmFkUHJvb2YABABEQW5jaWVudEJpcnRoQmxvY2sABQBERXhoYXVzdHNSZXNvdXJjZXMABgAYQ3VzdG9tBAAIAQh1OAAHADBCYWRNYW5kYXRvcnkACABMTWFuZGF0b3J5VmFsaWRhdGlvbgAJACRCYWRTaWduZXIACgBUSW5kZXRlcm1pbmF0ZUltcGxpY2l0AAsANFVua25vd25PcmlnaW4ADAAAFQ8MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlIVW5rbm93blRyYW5zYWN0aW9uAAEMMENhbm5vdExvb2t1cAAAAExOb1Vuc2lnbmVkVmFsaWRhdG9yAAEAGEN1c3RvbQQACAEIdTgAAgAAGQ8IMHNwX2luaGVyZW50czBJbmhlcmVudERhdGEAAAQBEGRhdGEdDwGUQlRyZWVNYXA8SW5oZXJlbnRJZGVudGlmaWVyLCBWZWM8dTg+PgAAHQ8EIEJUcmVlTWFwCARLASEBBFYBFAAEACEPAAAAIQ8AAAIlDwAlDwAABAghARQAKQ8IMHNwX2luaGVyZW50c1BDaGVja0luaGVyZW50c1Jlc3VsdAAADAEQb2theUQBEGJvb2wAASxmYXRhbF9lcnJvckQBEGJvb2wAARhlcnJvcnMZDwEwSW5oZXJlbnREYXRhAAAtDwwoc3BfcnVudGltZVB0cmFuc2FjdGlvbl92YWxpZGl0eURUcmFuc2FjdGlvblNvdXJjZQABDBxJbkJsb2NrAAAAFExvY2FsAAEAIEV4dGVybmFsAAIAADEPBBhSZXN1bHQIBFQBNQ8ERQENDwEICE9rBAA1DwAAAAAMRXJyBAANDwAAAQAANQ8MKHNwX3J1bnRpbWVQdHJhbnNhY3Rpb25fdmFsaWRpdHlAVmFsaWRUcmFuc2FjdGlvbgAAFAEgcHJpb3JpdHkYAUxUcmFuc2FjdGlvblByaW9yaXR5AAEgcmVxdWlyZXMkAUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEgcHJvdmlkZXMkAUxWZWM8VHJhbnNhY3Rpb25UYWc+AAEkbG9uZ2V2aXR5GAFQVHJhbnNhY3Rpb25Mb25nZXZpdHkAASRwcm9wYWdhdGVEARBib29sAAA5DwQYT3B0aW9uBARUAT0PAQgQTm9uZQAAABBTb21lBAA9DwAAAQAAPQ8AAAJBDwBBDwAABAgUoQ4ARQ8ISHNwX2NvbnNlbnN1c19zbG90czBTbG90RHVyYXRpb24AAAQAGAEMdTY0AABJDwhcY3VtdWx1c19wcmltaXRpdmVzX2NvcmU0Q29sbGF0aW9uSW5mbwAAGAE8dXB3YXJkX21lc3NhZ2VzJAFIVmVjPFVwd2FyZE1lc3NhZ2U+AAFMaG9yaXpvbnRhbF9tZXNzYWdlc6ENAWBWZWM8T3V0Ym91bmRIcm1wTWVzc2FnZT4AAUxuZXdfdmFsaWRhdGlvbl9jb2RlTQ8BjE9wdGlvbjxyZWxheV9jaGFpbjo6VmFsaWRhdGlvbkNvZGU+AAFscHJvY2Vzc2VkX2Rvd253YXJkX21lc3NhZ2VzKAEMdTMyAAE4aHJtcF93YXRlcm1hcmsoAWByZWxheV9jaGFpbjo6QmxvY2tOdW1iZXIAASRoZWFkX2RhdGFlBAEgSGVhZERhdGEAAE0PBBhPcHRpb24EBFQBUQ8BCBBOb25lAAAAEFNvbWUEAFEPAAABAABRDwx0cG9sa2Fkb3RfcGFyYWNoYWluX3ByaW1pdGl2ZXMocHJpbWl0aXZlczhWYWxpZGF0aW9uQ29kZQAABAAUARxWZWM8dTg+AABVDwAABAhZD10PAFkPDExwb2xrYWRvdF9wcmltaXRpdmVzIHZzdGFnaW5nMENvcmVTZWxlY3RvcgAABAAIAQh1OAAAXQ8MTHBvbGthZG90X3ByaW1pdGl2ZXMgdnN0YWdpbmdAQ2xhaW1RdWV1ZU9mZnNldAAABAAIAQh1OAAAYQ8IhHBhbGxldF9jdXJyZW5jaWVzX3JwY19ydW50aW1lX2FwaSxBY2NvdW50RGF0YQQcQmFsYW5jZQFAAAwBEGZyZWVAARxCYWxhbmNlAAEgcmVzZXJ2ZWRAARxCYWxhbmNlAAEYZnJvemVuQAEcQmFsYW5jZQAAZQ8AAAJpDwBpDwAABAgoYQ8AbQ8MaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzTFJ1bnRpbWVEaXNwYXRjaEluZm8IHEJhbGFuY2UBQBhXZWlnaHQB5AAMARh3ZWlnaHTkARhXZWlnaHQAARRjbGFzcxkHATREaXNwYXRjaENsYXNzAAEscGFydGlhbF9mZWVAARxCYWxhbmNlAABxDwxocGFsbGV0X3RyYW5zYWN0aW9uX3BheW1lbnQUdHlwZXMoRmVlRGV0YWlscwQcQmFsYW5jZQFAAAgBNGluY2x1c2lvbl9mZWV1DwF0T3B0aW9uPEluY2x1c2lvbkZlZTxCYWxhbmNlPj4AAQx0aXBAARxCYWxhbmNlAAB1DwQYT3B0aW9uBARUAXkPAQgQTm9uZQAAABBTb21lBAB5DwAAAQAAeQ8MaHBhbGxldF90cmFuc2FjdGlvbl9wYXltZW50FHR5cGVzMEluY2x1c2lvbkZlZQQcQmFsYW5jZQFAAAwBIGJhc2VfZmVlQAEcQmFsYW5jZQABHGxlbl9mZWVAARxCYWxhbmNlAAFMYWRqdXN0ZWRfd2VpZ2h0X2ZlZUABHEJhbGFuY2UAAH0PDAxldm0cYmFja2VuZBRCYXNpYwAACAEcYmFsYW5jZWABEFUyNTYAARRub25jZWABEFUyNTYAAIEPBBhPcHRpb24EBFQB6QMBCBBOb25lAAAAEFNvbWUEAOkDAAABAACFDwQYT3B0aW9uBARUAfEDAQgQTm9uZQAAABBTb21lBADxAwAAAQAAiQ8EGFJlc3VsdAgEVAGNDwRFASEHAQgIT2sEAI0PAAAAAAxFcnIEACEHAAABAACNDwgYZnBfZXZtPEV4ZWN1dGlvbkluZm9WMgQEVAEUABQBLGV4aXRfcmVhc29uRQgBKEV4aXRSZWFzb24AARR2YWx1ZRQBBFQAASB1c2VkX2dhc5EPARxVc2VkR2FzAAEsd2VpZ2h0X2luZm+VDwFIT3B0aW9uPFdlaWdodEluZm8+AAEQbG9nc70MASBWZWM8TG9nPgAAkQ8IGGZwX2V2bRxVc2VkR2FzAAAIASBzdGFuZGFyZGABEFUyNTYAASRlZmZlY3RpdmVgARBVMjU2AACVDwQYT3B0aW9uBARUAZkPAQgQTm9uZQAAABBTb21lBACZDwAAAQAAmQ8IGGZwX2V2bShXZWlnaHRJbmZvAAAQAThyZWZfdGltZV9saW1pdFkDASxPcHRpb248dTY0PgABQHByb29mX3NpemVfbGltaXRZAwEsT3B0aW9uPHU2ND4AAThyZWZfdGltZV91c2FnZVkDASxPcHRpb248dTY0PgABQHByb29mX3NpemVfdXNhZ2VZAwEsT3B0aW9uPHU2ND4AAJ0PBBhSZXN1bHQIBFQBoQ8ERQEhBwEICE9rBAChDwAAAAAMRXJyBAAhBwAAAQAAoQ8IGGZwX2V2bTxFeGVjdXRpb25JbmZvVjIEBFQBWAAUASxleGl0X3JlYXNvbkUIAShFeGl0UmVhc29uAAEUdmFsdWVYAQRUAAEgdXNlZF9nYXORDwEcVXNlZEdhcwABLHdlaWdodF9pbmZvlQ8BSE9wdGlvbjxXZWlnaHRJbmZvPgABEGxvZ3O9DAEgVmVjPExvZz4AAKUPBBhPcHRpb24EBFQB0QwBCBBOb25lAAAAEFNvbWUEANEMAAABAACpDwQYT3B0aW9uBARUAeUMAQgQTm9uZQAAABBTb21lBADlDAAAAQAArQ8EGE9wdGlvbgQEVAHpDAEIEE5vbmUAAAAQU29tZQQA6QwAAAEAALEPAAAEDKUPqQ+tDwC1DwAABAilD60PALkPBBhSZXN1bHQIBFQBvQ8ERQHBDwEICE9rBAC9DwAAAAAMRXJyBADBDwAAAQAAvQ8AAAJlBgDBDwxAeGNtX3J1bnRpbWVfYXBpcxBmZWVzFEVycm9yAAEYNFVuaW1wbGVtZW50ZWQAAABkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABAExXZWlnaHROb3RDb21wdXRhYmxlAAIATFVuaGFuZGxlZFhjbVZlcnNpb24AAwA0QXNzZXROb3RGb3VuZAAEAChVbnJvdXRhYmxlAAUAAMUPBBhSZXN1bHQIBFQB5ARFAcEPAQgIT2sEAOQAAAAADEVycgQAwQ8AAAEAAMkPBBhSZXN1bHQIBFQBQARFAcEPAQgIT2sEAEAAAAAADEVycgQAwQ8AAAEAAM0PBBhSZXN1bHQIBFQBMQYERQHBDwEICE9rBAAxBgAAAAAMRXJyBADBDwAAAQAA0Q8EGFJlc3VsdAgEVAHVDwRFAe0PAQgIT2sEANUPAAAAAAxFcnIEAO0PAAABAADVDwxAeGNtX3J1bnRpbWVfYXBpcxxkcnlfcnVuRENhbGxEcnlSdW5FZmZlY3RzBBRFdmVudAENBwAQAUBleGVjdXRpb25fcmVzdWx0lQcBaERpc3BhdGNoUmVzdWx0V2l0aFBvc3RJbmZvAAE4ZW1pdHRlZF9ldmVudHPZDwEoVmVjPEV2ZW50PgABJGxvY2FsX3hjbd0PAWBPcHRpb248VmVyc2lvbmVkWGNtPCgpPj4AAThmb3J3YXJkZWRfeGNtc+EPAbxWZWM8KFZlcnNpb25lZExvY2F0aW9uLCBWZWM8VmVyc2lvbmVkWGNtPCgpPj4pPgAA2Q8AAAINBwDdDwQYT3B0aW9uBARUAfkEAQgQTm9uZQAAABBTb21lBAD5BAAAAQAA4Q8AAALlDwDlDwAABAitBOkPAOkPAAAC+QQA7Q8MQHhjbV9ydW50aW1lX2FwaXMcZHJ5X3J1bhRFcnJvcgABCDRVbmltcGxlbWVudGVkAAAAZFZlcnNpb25lZENvbnZlcnNpb25GYWlsZWQAAQAA8Q8EGFJlc3VsdAgEVAH1DwRFAe0PAQgIT2sEAPUPAAAAAAxFcnIEAO0PAAABAAD1DwxAeGNtX3J1bnRpbWVfYXBpcxxkcnlfcnVuQFhjbURyeVJ1bkVmZmVjdHMEFEV2ZW50AQ0HAAwBQGV4ZWN1dGlvbl9yZXN1bHSFCAEcT3V0Y29tZQABOGVtaXR0ZWRfZXZlbnRz2Q8BKFZlYzxFdmVudD4AAThmb3J3YXJkZWRfeGNtc+EPAbxWZWM8KFZlcnNpb25lZExvY2F0aW9uLCBWZWM8VmVyc2lvbmVkWGNtPCgpPj4pPgAA+Q8EGFJlc3VsdAgEVAEABEUB/Q8BCAhPawQAAAAAAAAMRXJyBAD9DwAAAQAA/Q8MQHhjbV9ydW50aW1lX2FwaXMsY29udmVyc2lvbnMURXJyb3IAAQgsVW5zdXBwb3J0ZWQAAABkVmVyc2lvbmVkQ29udmVyc2lvbkZhaWxlZAABAAABEAQYT3B0aW9uBARUAQUQAQgQTm9uZQAAABBTb21lBAAFEAAAAQAABRAAAAQQKCghAyEBAAkQEDxoeWRyYWR4X3J1bnRpbWUMZXZtTGFhdmVfdHJhZGVfZXhlY3V0b3IgUG9vbERhdGEEHEJhbGFuY2UBQAAQARxyZXNlcnZlKAEcQXNzZXRJZAABGGF0b2tlbigBHEFzc2V0SWQAASxsaXF1ZGl0eV9pbkABHEJhbGFuY2UAATBsaXF1ZGl0eV9vdXRAARxCYWxhbmNlAAANEAAAAgkQABEQBBhSZXN1bHQIBFQBcARFAVkIAQgIT2sEAHAAAAAADEVycgQAWQgAAAEAABUQBBhPcHRpb24EBFQBWQgBCBBOb25lAAAAEFNvbWUEAFkIAAABAAAZEAAAAlkIAB0QCDxoeWRyYWR4X3J1bnRpbWUwUnVudGltZUVycm9yAAEJARhTeXN0ZW0EAC0JAXBmcmFtZV9zeXN0ZW06OkVycm9yPFJ1bnRpbWU+AAEAIEJhbGFuY2VzBACRCQF8cGFsbGV0X2JhbGFuY2VzOjpFcnJvcjxSdW50aW1lPgAHAFxNdWx0aVRyYW5zYWN0aW9uUGF5bWVudAQAmQkBwHBhbGxldF90cmFuc2FjdGlvbl9tdWx0aV9wYXltZW50OjpFcnJvcjxSdW50aW1lPgDLACBUcmVhc3VyeQQAsQkBfHBhbGxldF90cmVhc3VyeTo6RXJyb3I8UnVudGltZT4ACwAcVXRpbGl0eQQAtQkBeHBhbGxldF91dGlsaXR5OjpFcnJvcjxSdW50aW1lPgANACBQcmVpbWFnZQQA3QkBfHBhbGxldF9wcmVpbWFnZTo6RXJyb3I8UnVudGltZT4ADwAgSWRlbnRpdHkEAB0KAXxwYWxsZXRfaWRlbnRpdHk6OkVycm9yPFJ1bnRpbWU+ABEAJERlbW9jcmFjeQQAYQoBgHBhbGxldF9kZW1vY3JhY3k6OkVycm9yPFJ1bnRpbWU+ABMASFRlY2huaWNhbENvbW1pdHRlZQQAcQoB/HBhbGxldF9jb2xsZWN0aXZlOjpFcnJvcjxSdW50aW1lLCBwYWxsZXRfY29sbGVjdGl2ZTo6SW5zdGFuY2UyPgAZABRQcm94eQQAlQoBcHBhbGxldF9wcm94eTo6RXJyb3I8UnVudGltZT4AHQAgTXVsdGlzaWcEAKUKAXxwYWxsZXRfbXVsdGlzaWc6OkVycm9yPFJ1bnRpbWU+AB8AHFVuaXF1ZXMEAMkKAXhwYWxsZXRfdW5pcXVlczo6RXJyb3I8UnVudGltZT4AIABIU3RhdGVUcmllTWlncmF0aW9uBACBBwGscGFsbGV0X3N0YXRlX3RyaWVfbWlncmF0aW9uOjpFcnJvcjxSdW50aW1lPgAjAEBDb252aWN0aW9uVm90aW5nBAD9CgGgcGFsbGV0X2NvbnZpY3Rpb25fdm90aW5nOjpFcnJvcjxSdW50aW1lPgAkACRSZWZlcmVuZGEEAD0LAYBwYWxsZXRfcmVmZXJlbmRhOjpFcnJvcjxSdW50aW1lPgAlACRXaGl0ZWxpc3QEAEELAYBwYWxsZXRfd2hpdGVsaXN0OjpFcnJvcjxSdW50aW1lPgAnAChEaXNwYXRjaGVyBABFCwGEcGFsbGV0X2Rpc3BhdGNoZXI6OkVycm9yPFJ1bnRpbWU+ACgANEFzc2V0UmVnaXN0cnkEAE0LAZRwYWxsZXRfYXNzZXRfcmVnaXN0cnk6OkVycm9yPFJ1bnRpbWU+ADMAGENsYWltcwQAUQsBdHBhbGxldF9jbGFpbXM6OkVycm9yPFJ1bnRpbWU+ADUAPENvbGxhdG9yUmV3YXJkcwQAXQsBnHBhbGxldF9jb2xsYXRvcl9yZXdhcmRzOjpFcnJvcjxSdW50aW1lPgA5ACBPbW5pcG9vbAQAbQsBfHBhbGxldF9vbW5pcG9vbDo6RXJyb3I8UnVudGltZT4AOwBAVHJhbnNhY3Rpb25QYXVzZQQAdQsBoHBhbGxldF90cmFuc2FjdGlvbl9wYXVzZTo6RXJyb3I8UnVudGltZT4APAAYRHVzdGVyBAB5CwF0cGFsbGV0X2R1c3Rlcjo6RXJyb3I8UnVudGltZT4APQBMT21uaXBvb2xXYXJlaG91c2VMTQQAnQsBSQF3YXJlaG91c2VfbGlxdWlkaXR5X21pbmluZzo6RXJyb3I8UnVudGltZSwgd2FyZWhvdXNlX2xpcXVpZGl0eV9taW5pbmc6OgpJbnN0YW5jZTE+AD4AXE9tbmlwb29sTGlxdWlkaXR5TWluaW5nBAClCwHAcGFsbGV0X29tbmlwb29sX2xpcXVpZGl0eV9taW5pbmc6OkVycm9yPFJ1bnRpbWU+AD8ADE9UQwQAsQsBaHBhbGxldF9vdGM6OkVycm9yPFJ1bnRpbWU+AEAAOENpcmN1aXRCcmVha2VyBADFCwGYcGFsbGV0X2NpcmN1aXRfYnJlYWtlcjo6RXJyb3I8UnVudGltZT4AQQAYUm91dGVyBADJCwGUcGFsbGV0X3JvdXRlX2V4ZWN1dG9yOjpFcnJvcjxSdW50aW1lPgBDACxEeW5hbWljRmVlcwQA0QsBjHBhbGxldF9keW5hbWljX2ZlZXM6OkVycm9yPFJ1bnRpbWU+AEQAHFN0YWtpbmcEAPkLAXhwYWxsZXRfc3Rha2luZzo6RXJyb3I8UnVudGltZT4ARQAoU3RhYmxlc3dhcAQAGQwBhHBhbGxldF9zdGFibGVzd2FwOjpFcnJvcjxSdW50aW1lPgBGABRCb25kcwQAIQwBcHBhbGxldF9ib25kczo6RXJyb3I8UnVudGltZT4ARwA4T3RjU2V0dGxlbWVudHMEACUMAZhwYWxsZXRfb3RjX3NldHRsZW1lbnRzOjpFcnJvcjxSdW50aW1lPgBIAAxMQlAEACkMAWhwYWxsZXRfbGJwOjpFcnJvcjxSdW50aW1lPgBJAAxYWUsEAC0MAWhwYWxsZXRfeHlrOjpFcnJvcjxSdW50aW1lPgBKACRSZWZlcnJhbHMEAD0MAYBwYWxsZXRfcmVmZXJyYWxzOjpFcnJvcjxSdW50aW1lPgBLACxMaXF1aWRhdGlvbgQAQQwBiHBhbGxldF9saXF1aWRhdGlvbjo6RXJyb3I8UnVudGltZT4ATAAMSFNNBABJDAFocGFsbGV0X2hzbTo6RXJyb3I8UnVudGltZT4AUgAYU2lnbmV0BABRDAF0cGFsbGV0X3NpZ25ldDo6RXJyb3I8UnVudGltZT4AVAAwRXRoRGlzcGVuc2VyBABZDAGAcGFsbGV0X2Rpc3BlbnNlcjo6RXJyb3I8UnVudGltZT4AVQAcR2lnYUhkeAQAZQwBeHBhbGxldF9naWdhaGR4OjpFcnJvcjxSdW50aW1lPgBWADhHaWdhSGR4UmV3YXJkcwQAdQwBmHBhbGxldF9naWdhaGR4X3Jld2FyZHM6OkVycm9yPFJ1bnRpbWU+AFcAGFRva2VucwQAlQwBbG9ybWxfdG9rZW5zOjpFcnJvcjxSdW50aW1lPgBNAChDdXJyZW5jaWVzBACZDAGEcGFsbGV0X2N1cnJlbmNpZXM6OkVycm9yPFJ1bnRpbWU+AE8AHFZlc3RpbmcEAKEMAXBvcm1sX3Zlc3Rpbmc6OkVycm9yPFJ1bnRpbWU+AFEADEVWTQQArQwBaHBhbGxldF9ldm06OkVycm9yPFJ1bnRpbWU+AFoAIEV0aGVyZXVtBADtDAF8cGFsbGV0X2V0aGVyZXVtOjpFcnJvcjxSdW50aW1lPgBcACxFVk1BY2NvdW50cwQA9QwBjHBhbGxldF9ldm1fYWNjb3VudHM6OkVycm9yPFJ1bnRpbWU+AF0ASFhZS0xpcXVpZGl0eU1pbmluZwQA+QwBrHBhbGxldF94eWtfbGlxdWlkaXR5X21pbmluZzo6RXJyb3I8UnVudGltZT4AXwA4WFlLV2FyZWhvdXNlTE0EABkNAUkBd2FyZWhvdXNlX2xpcXVpZGl0eV9taW5pbmc6OkVycm9yPFJ1bnRpbWUsIHdhcmVob3VzZV9saXF1aWRpdHlfbWluaW5nOjoKSW5zdGFuY2UyPgBgADhSZWxheUNoYWluSW5mbwQAHQ0BmHBhbGxldF9yZWxheWNoYWluX2luZm86OkVycm9yPFJ1bnRpbWU+AMkADERDQQQAKQ0BaHBhbGxldF9kY2E6OkVycm9yPFJ1bnRpbWU+AEIAJFNjaGVkdWxlcgQAQQ0BgHBhbGxldF9zY2hlZHVsZXI6OkVycm9yPFJ1bnRpbWU+AAUAPFBhcmFjaGFpblN5c3RlbQQAqQ0BvGN1bXVsdXNfcGFsbGV0X3BhcmFjaGFpbl9zeXN0ZW06OkVycm9yPFJ1bnRpbWU+AGcALFBvbGthZG90WGNtBAARDgFocGFsbGV0X3hjbTo6RXJyb3I8UnVudGltZT4AawAkWGNtcFF1ZXVlBABBDgGkY3VtdWx1c19wYWxsZXRfeGNtcF9xdWV1ZTo6RXJyb3I8UnVudGltZT4AbwAwTWVzc2FnZVF1ZXVlBABdDgGQcGFsbGV0X21lc3NhZ2VfcXVldWU6OkVycm9yPFJ1bnRpbWU+AHIAUE11bHRpQmxvY2tNaWdyYXRpb25zBABhDgGEcGFsbGV0X21pZ3JhdGlvbnM6OkVycm9yPFJ1bnRpbWU+AHQAHE9ybWxYY20EAGUOAWBvcm1sX3hjbTo6RXJyb3I8UnVudGltZT4AhwAcWFRva2VucwQAaQ4BcG9ybWxfeHRva2Vuczo6RXJyb3I8UnVudGltZT4AiQA0VW5rbm93blRva2VucwQAdQ4BjG9ybWxfdW5rbm93bl90b2tlbnM6OkVycm9yPFJ1bnRpbWU+AIsARENvbGxhdG9yU2VsZWN0aW9uBACFDgGkcGFsbGV0X2NvbGxhdG9yX3NlbGVjdGlvbjo6RXJyb3I8UnVudGltZT4AowAcU2Vzc2lvbgQApQ4BeHBhbGxldF9zZXNzaW9uOjpFcnJvcjxSdW50aW1lPgClACRFbWFPcmFjbGUEAO0OAYRwYWxsZXRfZW1hX29yYWNsZTo6RXJyb3I8UnVudGltZT4AygAkQnJvYWRjYXN0BAD1DgGAcGFsbGV0X2Jyb2FkY2FzdDo6RXJyb3I8UnVudGltZT4AzAAwRmVlUHJvY2Vzc29yBAD5DgGQcGFsbGV0X2ZlZV9wcm9jZXNzb3I6OkVycm9yPFJ1bnRpbWU+AM8AAEEBGFN5c3RlbQEYU3lzdGVtTBxBY2NvdW50AQEEAgD1BkEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAE6CBUaGUgZnVsbCBhY2NvdW50IGluZm9ybWF0aW9uIGZvciBhIHBhcnRpY3VsYXIgYWNjb3VudCBJRC4AOEV4dHJpbnNpY0NvdW50AAAoBAAEuCBUb3RhbCBleHRyaW5zaWNzIGNvdW50IGZvciB0aGUgY3VycmVudCBibG9jay4AQEluaGVyZW50c0FwcGxpZWQBAEQEAASkIFdoZXRoZXIgYWxsIGluaGVyZW50cyBoYXZlIGJlZW4gYXBwbGllZC4ALEJsb2NrV2VpZ2h0AQABBxgAAAAAAAAEiCBUaGUgY3VycmVudCB3ZWlnaHQgZm9yIHRoZSBibG9jay4AQEFsbEV4dHJpbnNpY3NMZW4AACgEAARBASBUb3RhbCBsZW5ndGggKGluIGJ5dGVzKSBmb3IgYWxsIGV4dHJpbnNpY3MgcHV0IHRvZ2V0aGVyLCBmb3IgdGhlIGN1cnJlbnQgYmxvY2suACRCbG9ja0hhc2gBAQQFKCyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEmCBNYXAgb2YgYmxvY2sgbnVtYmVycyB0byBibG9jayBoYXNoZXMuADRFeHRyaW5zaWNEYXRhAQEEBSgUBAAEPQEgRXh0cmluc2ljcyBkYXRhIGZvciB0aGUgY3VycmVudCBibG9jayAobWFwcyBhbiBleHRyaW5zaWMncyBpbmRleCB0byBpdHMgZGF0YSkuABhOdW1iZXIBACgQAAAAAAQJASBUaGUgY3VycmVudCBibG9jayBudW1iZXIgYmVpbmcgcHJvY2Vzc2VkLiBTZXQgYnkgYGV4ZWN1dGVfYmxvY2tgLgAoUGFyZW50SGFzaAEALIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwIEhhc2ggb2YgdGhlIHByZXZpb3VzIGJsb2NrLgAYRGlnZXN0AQCVBAQABPAgRGlnZXN0IG9mIHRoZSBjdXJyZW50IGJsb2NrLCBhbHNvIHBhcnQgb2YgdGhlIGJsb2NrIGhlYWRlci4AGEV2ZW50cwEABQcEABygIEV2ZW50cyBkZXBvc2l0ZWQgZm9yIHRoZSBjdXJyZW50IGJsb2NrLgAdASBOT1RFOiBUaGUgaXRlbSBpcyB1bmJvdW5kIGFuZCBzaG91bGQgdGhlcmVmb3JlIG5ldmVyIGJlIHJlYWQgb24gY2hhaW4u0CBJdCBjb3VsZCBvdGhlcndpc2UgaW5mbGF0ZSB0aGUgUG9WIHNpemUgb2YgYSBibG9jay4ALQEgRXZlbnRzIGhhdmUgYSBsYXJnZSBpbi1tZW1vcnkgc2l6ZS4gQm94IHRoZSBldmVudHMgdG8gbm90IGdvIG91dC1vZi1tZW1vcnn8IGp1c3QgaW4gY2FzZSBzb21lb25lIHN0aWxsIHJlYWRzIHRoZW0gZnJvbSB3aXRoaW4gdGhlIHJ1bnRpbWUuAChFdmVudENvdW50AQAoEAAAAAAEuCBUaGUgbnVtYmVyIG9mIGV2ZW50cyBpbiB0aGUgYEV2ZW50czxUPmAgbGlzdC4ALEV2ZW50VG9waWNzAQEEAiytAgQAKCUBIE1hcHBpbmcgYmV0d2VlbiBhIHRvcGljIChyZXByZXNlbnRlZCBieSBUOjpIYXNoKSBhbmQgYSB2ZWN0b3Igb2YgaW5kZXhlc5Qgb2YgZXZlbnRzIGluIHRoZSBgPEV2ZW50czxUPj5gIGxpc3QuAFEBIEFsbCB0b3BpYyB2ZWN0b3JzIGhhdmUgZGV0ZXJtaW5pc3RpYyBzdG9yYWdlIGxvY2F0aW9ucyBkZXBlbmRpbmcgb24gdGhlIHRvcGljLiBUaGlzRQEgYWxsb3dzIGxpZ2h0LWNsaWVudHMgdG8gbGV2ZXJhZ2UgdGhlIGNoYW5nZXMgdHJpZSBzdG9yYWdlIHRyYWNraW5nIG1lY2hhbmlzbSBhbmTkIGluIGNhc2Ugb2YgY2hhbmdlcyBmZXRjaCB0aGUgbGlzdCBvZiBldmVudHMgb2YgaW50ZXJlc3QuAFkBIFRoZSB2YWx1ZSBoYXMgdGhlIHR5cGUgYChCbG9ja051bWJlckZvcjxUPiwgRXZlbnRJbmRleClgIGJlY2F1c2UgaWYgd2UgdXNlZCBvbmx5IGp1c3RNASB0aGUgYEV2ZW50SW5kZXhgIHRoZW4gaW4gY2FzZSBpZiB0aGUgdG9waWMgaGFzIHRoZSBzYW1lIGNvbnRlbnRzIG9uIHRoZSBuZXh0IGJsb2NrAQEgbm8gbm90aWZpY2F0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIHRodXMgdGhlIGV2ZW50IG1pZ2h0IGJlIGxvc3QuAEhMYXN0UnVudGltZVVwZ3JhZGUAAP0IBAAEVQEgU3RvcmVzIHRoZSBgc3BlY192ZXJzaW9uYCBhbmQgYHNwZWNfbmFtZWAgb2Ygd2hlbiB0aGUgbGFzdCBydW50aW1lIHVwZ3JhZGUgaGFwcGVuZWQuAFRVcGdyYWRlZFRvVTMyUmVmQ291bnQBAEQEAARNASBUcnVlIGlmIHdlIGhhdmUgdXBncmFkZWQgc28gdGhhdCBgdHlwZSBSZWZDb3VudGAgaXMgYHUzMmAuIEZhbHNlIChkZWZhdWx0KSBpZiBub3QuAGBVcGdyYWRlZFRvVHJpcGxlUmVmQ291bnQBAEQEAAhdASBUcnVlIGlmIHdlIGhhdmUgdXBncmFkZWQgc28gdGhhdCBBY2NvdW50SW5mbyBjb250YWlucyB0aHJlZSB0eXBlcyBvZiBgUmVmQ291bnRgLiBGYWxzZUggKGRlZmF1bHQpIGlmIG5vdC4AOEV4ZWN1dGlvblBoYXNlAAD5CAQABIggVGhlIGV4ZWN1dGlvbiBwaGFzZSBvZiB0aGUgYmxvY2suAERBdXRob3JpemVkVXBncmFkZQAAAQkEAAS4IGBTb21lYCBpZiBhIGNvZGUgdXBncmFkZSBoYXMgYmVlbiBhdXRob3JpemVkLgBgRXh0cmluc2ljV2VpZ2h0UmVjbGFpbWVkAQDkCAAAHKAgVGhlIHdlaWdodCByZWNsYWltZWQgZm9yIHRoZSBleHRyaW5zaWMuACEBIFRoaXMgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIGV4dHJpbnNpYyBleGVjdXRpb24uIQEgTW9yZSBwcmVjaXNlbHkgdGhpcyBpbmZvcm1hdGlvbiBpcyByZW1vdmVkIGluIGBub3RlX2FwcGxpZWRfZXh0cmluc2ljYC4AcQEgTG9naWMgZG9pbmcgc29tZSBwb3N0IGRpc3BhdGNoIHdlaWdodCByZWR1Y3Rpb24gbXVzdCB1cGRhdGUgdGhpcyBzdG9yYWdlIHRvIGF2b2lkIGR1cGxpY2F0ZSwgcmVkdWN0aW9uLgABEAABEQcAGDBCbG9ja1dlaWdodHMFCZUBwqDnZgALAJj3Pl0BAgCAAgM4Qwtq6bABB8jXAcr8Gk/PAQELALI57wUBAgDgAQEAAAM4Qwtq6bABC8i9vxlUARpPbwIBCwCY9z5dAQIAgAIBBwDmvU9XAgCgAAM4Qwtq6bAAAAAE0CBCbG9jayAmIGV4dHJpbnNpY3Mgd2VpZ2h0czogYmFzZSB2YWx1ZXMgYW5kIGxpbWl0cy4ALEJsb2NrTGVuZ3RoEQkwAAA8AAAAUAAAAFAABKggVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgYmxvY2sgKGluIGJ5dGVzKS4AOEJsb2NrSGFzaENvdW50KBAgHAAABFUBIE1heGltdW0gbnVtYmVyIG9mIGJsb2NrIG51bWJlciB0byBibG9jayBoYXNoIG1hcHBpbmdzIHRvIGtlZXAgKG9sZGVzdCBwcnVuZWQgZmlyc3QpLgAgRGJXZWlnaHQZCUBAeH0BAAAAAADh9QUAAAAABAkBIFRoZSB3ZWlnaHQgb2YgcnVudGltZSBkYXRhYmFzZSBvcGVyYXRpb25zIHRoZSBydW50aW1lIGNhbiBpbnZva2UuABxWZXJzaW9uHQk5BRxoeWRyYWR4HGh5ZHJhZHgBAAAAuAEAAAAAAABk32rLaJkHYJsFAAAAN+OX/HyR9eQCAAAAQP461AH4lZoGAAAA0ryYl+7QjxUDAAAA94sni+U/RUwCAAAAqzwFcikf64sBAAAA3XGNXMUyYtQBAAAA6pPj8W89aWIDAAAAaVyARGuLPU4BAAAAmvhnUbcMES0BAAAAvJ2JkE9bkj8BAAAAN8i7E1CpoqgEAAAAWCIR9luxS4kGAAAA5lsA5Gzt0KoCAAAAC7Z6UvzQQP8BAAAANKPUiBZrWlUBAAAAVCM0/k/XytoBAAAAb/Uu6Fjmxb0BAAAA173YonLKDWUCAAAABOcFIaDT0vgBAAAAkbHIsWMo65ICAAAAn/tQWqc41pwBAAAAK19bzSRg5PABAAAAorK0hPy4aUMBAAAA+8V3uddH79YBAAAAAQAAAAEEhCBHZXQgdGhlIGNoYWluJ3MgaW4tY29kZSB2ZXJzaW9uLgAoU1M1OFByZWZpeIAIAAAUqCBUaGUgZGVzaWduYXRlZCBTUzU4IHByZWZpeCBvZiB0aGlzIGNoYWluLgA5ASBUaGlzIHJlcGxhY2VzIHRoZSAic3M1OEZvcm1hdCIgcHJvcGVydHkgZGVjbGFyZWQgaW4gdGhlIGNoYWluIHNwZWMuIFJlYXNvbiBpczEBIHRoYXQgdGhlIHJ1bnRpbWUgc2hvdWxkIGtub3cgYWJvdXQgdGhlIHByZWZpeCBpbiBvcmRlciB0byBtYWtlIHVzZSBvZiBpdCBhc3AgYW4gaWRlbnRpZmllciBvZiB0aGUgY2hhaW4uAAEtCQAcLFJ1bnRpbWVDYWxsDASMIFRoZSBhZ2dyZWdhdGVkIGBSdW50aW1lQ2FsbGAgdHlwZS4UTm9uY2UoBEkBIFRoaXMgc3RvcmVzIHRoZSBudW1iZXIgb2YgcHJldmlvdXMgdHJhbnNhY3Rpb25zIGFzc29jaWF0ZWQgd2l0aCBhIHNlbmRlciBhY2NvdW50LhBIYXNoLASYIFRoZSBvdXRwdXQgb2YgdGhlIGBIYXNoaW5nYCBmdW5jdGlvbi4cSGFzaGluZ60BBCEBIFRoZSBoYXNoaW5nIHN5c3RlbSAoYWxnb3JpdGhtKSBiZWluZyB1c2VkIGluIHRoZSBydW50aW1lIChlLmcuIEJsYWtlMikuJEFjY291bnRJZAAEyCBUaGUgdXNlciBhY2NvdW50IGlkZW50aWZpZXIgdHlwZSBmb3IgdGhlIHJ1bnRpbWUuFEJsb2NrMQkIYQEgVGhlIEJsb2NrIHR5cGUgdXNlZCBieSB0aGUgcnVudGltZS4gVGhpcyBpcyB1c2VkIGJ5IGBjb25zdHJ1Y3RfcnVudGltZWAgdG8gcmV0cmlldmUgdGhlzCBleHRyaW5zaWNzIG9yIG90aGVyIGJsb2NrIHNwZWNpZmljIGRhdGEgYXMgbmVlZGVkLixBY2NvdW50RGF0YfkGCGEBIERhdGEgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIGFuIGFjY291bnQgKG90aGVyIHRoYW4gbm9uY2UvdHJhbnNhY3Rpb24gY291bnRlciwgd2hpY2ggdGhpc2QgcGFsbGV0IGRvZXMgcmVnYXJkbGVzcykuAAEAACRUaW1lc3RhbXABJFRpbWVzdGFtcAgMTm93AQAYIAAAAAAAAAAABKAgVGhlIGN1cnJlbnQgdGltZSBmb3IgdGhlIGN1cnJlbnQgYmxvY2suACREaWRVcGRhdGUBAEQEABDYIFdoZXRoZXIgdGhlIHRpbWVzdGFtcCBoYXMgYmVlbiB1cGRhdGVkIGluIHRoaXMgYmxvY2suAFUBIFRoaXMgdmFsdWUgaXMgdXBkYXRlZCB0byBgdHJ1ZWAgdXBvbiBzdWNjZXNzZnVsIHN1Ym1pc3Npb24gb2YgYSB0aW1lc3RhbXAgYnkgYSBub2RlLkUBIEl0IGlzIHRoZW4gY2hlY2tlZCBhdCB0aGUgZW5kIG9mIGVhY2ggYmxvY2sgZXhlY3V0aW9uIGluIHRoZSBgb25fZmluYWxpemVgIGhvb2suAAEwAAAENE1pbmltdW1QZXJpb2QYIAAAAAAAAAAAGIwgVGhlIG1pbmltdW0gcGVyaW9kIGJldHdlZW4gYmxvY2tzLgBNASBCZSBhd2FyZSB0aGF0IHRoaXMgaXMgZGlmZmVyZW50IHRvIHRoZSAqZXhwZWN0ZWQqIHBlcmlvZCB0aGF0IHRoZSBibG9jayBwcm9kdWN0aW9uSQEgYXBwYXJhdHVzIHByb3ZpZGVzLiBZb3VyIGNob3NlbiBjb25zZW5zdXMgc3lzdGVtIHdpbGwgZ2VuZXJhbGx5IHdvcmsgd2l0aCB0aGlzIHRvYQEgZGV0ZXJtaW5lIGEgc2Vuc2libGUgYmxvY2sgdGltZS4gRm9yIGV4YW1wbGUsIGluIHRoZSBBdXJhIHBhbGxldCBpdCB3aWxsIGJlIGRvdWJsZSB0aGlzcCBwZXJpb2Qgb24gZGVmYXVsdCBzZXR0aW5ncy4AAAQYTW9tZW50GASYIFR5cGUgdXNlZCBmb3IgZXhwcmVzc2luZyBhIHRpbWVzdGFtcC4AAwAAIEJhbGFuY2VzASBCYWxhbmNlcxw0VG90YWxJc3N1YW5jZQEAQEAAAAAAAAAAAAAAAAAAAAAABJggVGhlIHRvdGFsIHVuaXRzIGlzc3VlZCBpbiB0aGUgc3lzdGVtLgBASW5hY3RpdmVJc3N1YW5jZQEAQEAAAAAAAAAAAAAAAAAAAAAABAkBIFRoZSB0b3RhbCB1bml0cyBvZiBvdXRzdGFuZGluZyBkZWFjdGl2YXRlZCBiYWxhbmNlIGluIHRoZSBzeXN0ZW0uABxBY2NvdW50AQEEAgD5BgEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgGAJASBUaGUgQmFsYW5jZXMgcGFsbGV0IGV4YW1wbGUgb2Ygc3RvcmluZyB0aGUgYmFsYW5jZSBvZiBhbiBhY2NvdW50LgAoICMgRXhhbXBsZQA0IGBgYG5vY29tcGlsZbAgIGltcGwgcGFsbGV0X2JhbGFuY2VzOjpDb25maWcgZm9yIFJ1bnRpbWUgexkCICAgIHR5cGUgQWNjb3VudFN0b3JlID0gU3RvcmFnZU1hcFNoaW08U2VsZjo6QWNjb3VudDxSdW50aW1lPiwgZnJhbWVfc3lzdGVtOjpQcm92aWRlcjxSdW50aW1lPiwgQWNjb3VudElkLCBTZWxmOjpBY2NvdW50RGF0YTxCYWxhbmNlPj4MICB9ECBgYGAAFQEgWW91IGNhbiBhbHNvIHN0b3JlIHRoZSBiYWxhbmNlIG9mIGFuIGFjY291bnQgaW4gdGhlIGBTeXN0ZW1gIHBhbGxldC4AKCAjIEV4YW1wbGUANCBgYGBub2NvbXBpbGWwICBpbXBsIHBhbGxldF9iYWxhbmNlczo6Q29uZmlnIGZvciBSdW50aW1lIHt0ICAgdHlwZSBBY2NvdW50U3RvcmUgPSBTeXN0ZW0MICB9ECBgYGAAUQEgQnV0IHRoaXMgY29tZXMgd2l0aCB0cmFkZW9mZnMsIHN0b3JpbmcgYWNjb3VudCBiYWxhbmNlcyBpbiB0aGUgc3lzdGVtIHBhbGxldCBzdG9yZXNtASBgZnJhbWVfc3lzdGVtYCBkYXRhIGFsb25nc2lkZSB0aGUgYWNjb3VudCBkYXRhIGNvbnRyYXJ5IHRvIHN0b3JpbmcgYWNjb3VudCBiYWxhbmNlcyBpbiB0aGUpASBgQmFsYW5jZXNgIHBhbGxldCwgd2hpY2ggdXNlcyBhIGBTdG9yYWdlTWFwYCB0byBzdG9yZSBiYWxhbmNlcyBkYXRhIG9ubHkuQQEgTk9URTogVGhpcyBpcyBvbmx5IHVzZWQgaW4gdGhlIGNhc2UgdGhhdCB0aGlzIHBhbGxldCBpcyB1c2VkIHRvIHN0b3JlIGJhbGFuY2VzLgAUTG9ja3MBAQQCAEkJBAAQuCBBbnkgbGlxdWlkaXR5IGxvY2tzIG9uIHNvbWUgYWNjb3VudCBiYWxhbmNlcy4lASBOT1RFOiBTaG91bGQgb25seSBiZSBhY2Nlc3NlZCB3aGVuIHNldHRpbmcsIGNoYW5naW5nIGFuZCBmcmVlaW5nIGEgbG9jay4ArQEgVXNlIG9mIGxvY2tzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGZyZWV6ZXMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAgUmVzZXJ2ZXMBAQQCAFkJBAAMpCBOYW1lZCByZXNlcnZlcyBvbiBzb21lIGFjY291bnQgYmFsYW5jZXMuALEBIFVzZSBvZiByZXNlcnZlcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBob2xkcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gABRIb2xkcwEBBAIAZQkEAARsIEhvbGRzIG9uIGFjY291bnQgYmFsYW5jZXMuABxGcmVlemVzAQEEAgCFCQQABIggRnJlZXplIGxvY2tzIG9uIGFjY291bnQgYmFsYW5jZXMuAAE4AAE5BwAQSEV4aXN0ZW50aWFsRGVwb3NpdEBAABCl1OgAAAAAAAAAAAAAACBBASBUaGUgbWluaW11bSBhbW91bnQgcmVxdWlyZWQgdG8ga2VlcCBhbiBhY2NvdW50IG9wZW4uIE1VU1QgQkUgR1JFQVRFUiBUSEFOIFpFUk8hAFkBIElmIHlvdSAqcmVhbGx5KiBuZWVkIGl0IHRvIGJlIHplcm8sIHlvdSBjYW4gZW5hYmxlIHRoZSBmZWF0dXJlIGBpbnNlY3VyZV96ZXJvX2VkYCBmb3JhASB0aGlzIHBhbGxldC4gSG93ZXZlciwgeW91IGRvIHNvIGF0IHlvdXIgb3duIHJpc2s6IHRoaXMgd2lsbCBvcGVuIHVwIGEgbWFqb3IgRG9TIHZlY3Rvci5ZASBJbiBjYXNlIHlvdSBoYXZlIG11bHRpcGxlIHNvdXJjZXMgb2YgcHJvdmlkZXIgcmVmZXJlbmNlcywgeW91IG1heSBhbHNvIGdldCB1bmV4cGVjdGVkjCBiZWhhdmlvdXIgaWYgeW91IHNldCB0aGlzIHRvIHplcm8uAPAgQm90dG9tIGxpbmU6IERvIHlvdXJzZWxmIGEgZmF2b3VyIGFuZCBtYWtlIGl0IGF0IGxlYXN0IG9uZSEAIE1heExvY2tzKBAyAAAAEPQgVGhlIG1heGltdW0gbnVtYmVyIG9mIGxvY2tzIHRoYXQgc2hvdWxkIGV4aXN0IG9uIGFuIGFjY291bnQu3CBOb3Qgc3RyaWN0bHkgZW5mb3JjZWQsIGJ1dCB1c2VkIGZvciB3ZWlnaHQgZXN0aW1hdGlvbi4ArQEgVXNlIG9mIGxvY2tzIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGZyZWV6ZXMuIFNlZSBgaHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvc3Vic3RyYXRlL3B1bGwvMTI5NTEvYAAsTWF4UmVzZXJ2ZXMoEDIAAAAMDQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIG5hbWVkIHJlc2VydmVzIHRoYXQgY2FuIGV4aXN0IG9uIGFuIGFjY291bnQuALEBIFVzZSBvZiByZXNlcnZlcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBob2xkcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gAChNYXhGcmVlemVzKBAAAAAABGEBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpbmRpdmlkdWFsIGZyZWV6ZSBsb2NrcyB0aGF0IGNhbiBleGlzdCBvbiBhbiBhY2NvdW50IGF0IGFueSB0aW1lLgABkQkAEERSdW50aW1lSG9sZFJlYXNvbm0JBHQgVGhlIG92ZXJhcmNoaW5nIGhvbGQgcmVhc29uLhxCYWxhbmNlQARsIFRoZSBiYWxhbmNlIG9mIGFuIGFjY291bnQuRFJlc2VydmVJZGVudGlmaWVyIQEMaCBUaGUgSUQgdHlwZSBmb3IgcmVzZXJ2ZXMuALEBIFVzZSBvZiByZXNlcnZlcyBpcyBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBob2xkcy4gU2VlIGBodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvcHVsbC8xMjk1MS9gQEZyZWV6ZUlkZW50aWZpZXJwBGQgVGhlIElEIHR5cGUgZm9yIGZyZWV6ZXMuAAcAAEhUcmFuc2FjdGlvblBheW1lbnQBSFRyYW5zYWN0aW9uUGF5bWVudAhETmV4dEZlZU11bHRpcGxpZXIBAFRAAABkp7O24A0AAAAAAAAAAAAAOFN0b3JhZ2VWZXJzaW9uAQCVCQQAAAAAAUEHAARgT3BlcmF0aW9uYWxGZWVNdWx0aXBsaWVyCAQAVFkBIEEgZmVlIG11bHRpcGxpZXIgZm9yIGBPcGVyYXRpb25hbGAgZXh0cmluc2ljcyB0byBjb21wdXRlICJ2aXJ0dWFsIHRpcCIgdG8gYm9vc3QgdGhlaXIsIGBwcmlvcml0eWAAUQEgVGhpcyB2YWx1ZSBpcyBtdWx0aXBsaWVkIGJ5IHRoZSBgZmluYWxfZmVlYCB0byBvYnRhaW4gYSAidmlydHVhbCB0aXAiIHRoYXQgaXMgbGF0ZXL0IGFkZGVkIHRvIGEgdGlwIGNvbXBvbmVudCBpbiByZWd1bGFyIGBwcmlvcml0eWAgY2FsY3VsYXRpb25zLk0BIEl0IG1lYW5zIHRoYXQgYSBgTm9ybWFsYCB0cmFuc2FjdGlvbiBjYW4gZnJvbnQtcnVuIGEgc2ltaWxhcmx5LXNpemVkIGBPcGVyYXRpb25hbGBBASBleHRyaW5zaWMgKHdpdGggbm8gdGlwKSwgYnkgaW5jbHVkaW5nIGEgdGlwIHZhbHVlIGdyZWF0ZXIgdGhhbiB0aGUgdmlydHVhbCB0aXAuADwgYGBgcnVzdCxpZ25vcmVAIC8vIEZvciBgTm9ybWFsYIwgbGV0IHByaW9yaXR5ID0gcHJpb3JpdHlfY2FsYyh0aXApOwBUIC8vIEZvciBgT3BlcmF0aW9uYWxgEQEgbGV0IHZpcnR1YWxfdGlwID0gKGluY2x1c2lvbl9mZWUgKyB0aXApICogT3BlcmF0aW9uYWxGZWVNdWx0aXBsaWVyO8QgbGV0IHByaW9yaXR5ID0gcHJpb3JpdHlfY2FsYyh0aXAgKyB2aXJ0dWFsX3RpcCk7ECBgYGAAUQEgTm90ZSB0aGF0IHNpbmNlIHdlIHVzZSBgZmluYWxfZmVlYCB0aGUgbXVsdGlwbGllciBhcHBsaWVzIGFsc28gdG8gdGhlIHJlZ3VsYXIgYHRpcGBdASBzZW50IHdpdGggdGhlIHRyYW5zYWN0aW9uLiBTbywgbm90IG9ubHkgZG9lcyB0aGUgdHJhbnNhY3Rpb24gZ2V0IGEgcHJpb3JpdHkgYnVtcCBiYXNlZGEBIG9uIHRoZSBgaW5jbHVzaW9uX2ZlZWAsIGJ1dCB3ZSBhbHNvIGFtcGxpZnkgdGhlIGltcGFjdCBvZiB0aXBzIGFwcGxpZWQgdG8gYE9wZXJhdGlvbmFsYDggdHJhbnNhY3Rpb25zLgAAAAAJAABcTXVsdGlUcmFuc2FjdGlvblBheW1lbnQBXE11bHRpVHJhbnNhY3Rpb25QYXltZW50EEhBY2NvdW50Q3VycmVuY3lNYXAAAQQCACgEAARUIEFjY291bnQgY3VycmVuY3kgbWFwAEhBY2NlcHRlZEN1cnJlbmNpZXMAAQQFKFQEAARlASBDdXJhdGVkIGxpc3Qgb2YgY3VycmVuY2llcyB3aGljaCBmZWVzIGNhbiBiZSBwYWlkIG1hcHBlZCB0byBjb3JyZXNwb25kaW5nIGZhbGxiYWNrIHByaWNlAFRBY2NlcHRlZEN1cnJlbmN5UHJpY2UAAQQFKFQEAAQhAiBBc3NldCBwcmljZXMgZnJvbSB0aGUgc3BvdCBwcmljZSBwcm92aWRlciBvciB0aGUgZmFsbGJhY2sgcHJpY2UgaWYgdGhlIHByaWNlIGlzIG5vdCBhdmFpbGFibGUuIFVwZGF0ZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBldmVyeSBibG9jay4AbFRyYW5zYWN0aW9uQ3VycmVuY3lPdmVycmlkZQABBAUAKAQAAAABUAABRQcADDROYXRpdmVBc3NldElkKBAAAAAABDQgTmF0aXZlIEFzc2V0AFRQb2xrYWRvdE5hdGl2ZUFzc2V0SWQoEAUAAAAEcCBQb2xrYWRvdCBOYXRpdmUgQXNzZXQgKERPVCkAKEV2bUFzc2V0SWQoEBQAAAAEKCBFVk0gQXNzZXQAAZkJAAAAywAAIFRyZWFzdXJ5ASBUcmVhc3VyeRw0UHJvcG9zYWxDb3VudAEAKBAAAAAAEEEBIERFUFJFQ0FURUQ6IGFzc29jaWF0ZWQgd2l0aCBgc3BlbmRfbG9jYWxgIGNhbGwgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBNYXkgMjAyNS5pASBSZWZlciB0byA8aHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvcG9sa2Fkb3Qtc2RrL3B1bGwvNTk2MT4gZm9yIG1pZ3JhdGlvbiB0byBgc3BlbmRgLgCkIE51bWJlciBvZiBwcm9wb3NhbHMgdGhhdCBoYXZlIGJlZW4gbWFkZS4AJFByb3Bvc2FscwABBAUonQkEABBBASBERVBSRUNBVEVEOiBhc3NvY2lhdGVkIHdpdGggYHNwZW5kX2xvY2FsYCBjYWxsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gTWF5IDIwMjUuaQEgUmVmZXIgdG8gPGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3BvbGthZG90LXNkay9wdWxsLzU5NjE+IGZvciBtaWdyYXRpb24gdG8gYHNwZW5kYC4AfCBQcm9wb3NhbHMgdGhhdCBoYXZlIGJlZW4gbWFkZS4ALERlYWN0aXZhdGVkAQBAQAAAAAAAAAAAAAAAAAAAAAAE8CBUaGUgYW1vdW50IHdoaWNoIGhhcyBiZWVuIHJlcG9ydGVkIGFzIGluYWN0aXZlIHRvIEN1cnJlbmN5LgAkQXBwcm92YWxzAQChCQQAEEEBIERFUFJFQ0FURUQ6IGFzc29jaWF0ZWQgd2l0aCBgc3BlbmRfbG9jYWxgIGNhbGwgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBNYXkgMjAyNS5pASBSZWZlciB0byA8aHR0cHM6Ly9naXRodWIuY29tL3Bhcml0eXRlY2gvcG9sa2Fkb3Qtc2RrL3B1bGwvNTk2MT4gZm9yIG1pZ3JhdGlvbiB0byBgc3BlbmRgLgD4IFByb3Bvc2FsIGluZGljZXMgdGhhdCBoYXZlIGJlZW4gYXBwcm92ZWQgYnV0IG5vdCB5ZXQgYXdhcmRlZC4AKFNwZW5kQ291bnQBACgQAAAAAASkIFRoZSBjb3VudCBvZiBzcGVuZHMgdGhhdCBoYXZlIGJlZW4gbWFkZS4AGFNwZW5kcwABBAUopQkEAATQIFNwZW5kcyB0aGF0IGhhdmUgYmVlbiBhcHByb3ZlZCBhbmQgYmVpbmcgcHJvY2Vzc2VkLgA8TGFzdFNwZW5kUGVyaW9kAAAoBAAE1CBUaGUgYmxvY2tudW1iZXIgZm9yIHRoZSBsYXN0IHRyaWdnZXJlZCBzcGVuZCBwZXJpb2QuAAFoCAMClQFUaGUgYHNwZW5kX2xvY2FsYCBjYWxsIHdpbGwgYmUgcmVtb3ZlZCBieSBNYXkgMjAyNS4gTWlncmF0ZSB0byB0aGUgbmV3IGZsb3cgYW5kIHVzZSB0aGUgYHNwZW5kYCBjYWxsLgAEArUBVGhlIGByZW1vdmVfYXBwcm92YWxgIGNhbGwgd2lsbCBiZSByZW1vdmVkIGJ5IE1heSAyMDI1LiBJdCBhc3NvY2lhdGVkIHdpdGggdGhlIGRlcHJlY2F0ZWQgYHNwZW5kX2xvY2FsYCBjYWxsLgABSQcAGCxTcGVuZFBlcmlvZCgQwKgAAASIIFBlcmlvZCBiZXR3ZWVuIHN1Y2Nlc3NpdmUgc3BlbmRzLgAQQnVybnUCEAAAAAAEEQEgUGVyY2VudGFnZSBvZiBzcGFyZSBmdW5kcyAoaWYgYW55KSB0aGF0IGFyZSBidXJudCBwZXIgc3BlbmQgcGVyaW9kLgAgUGFsbGV0SWStCSBweS90cnNyeQQZASBUaGUgdHJlYXN1cnkncyBwYWxsZXQgaWQsIHVzZWQgZm9yIGRlcml2aW5nIGl0cyBzb3ZlcmVpZ24gYWNjb3VudCBJRC4AME1heEFwcHJvdmFscygQZAAAABhBASBERVBSRUNBVEVEOiBhc3NvY2lhdGVkIHdpdGggYHNwZW5kX2xvY2FsYCBjYWxsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gTWF5IDIwMjUuaQEgUmVmZXIgdG8gPGh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3BvbGthZG90LXNkay9wdWxsLzU5NjE+IGZvciBtaWdyYXRpb24gdG8gYHNwZW5kYC4AFQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGFwcHJvdmFscyB0aGF0IGNhbiB3YWl0IGluIHRoZSBzcGVuZGluZyBxdWV1ZS4ATQEgTk9URTogVGhpcyBwYXJhbWV0ZXIgaXMgYWxzbyB1c2VkIHdpdGhpbiB0aGUgQm91bnRpZXMgUGFsbGV0IGV4dGVuc2lvbiBpZiBlbmFibGVkLgAwUGF5b3V0UGVyaW9kKBCAxhMABBkBIFRoZSBwZXJpb2QgZHVyaW5nIHdoaWNoIGFuIGFwcHJvdmVkIHRyZWFzdXJ5IHNwZW5kIGhhcyB0byBiZSBjbGFpbWVkLgAscG90X2FjY291bnQAgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABKAgR2V0cyB0aGlzIHBhbGxldCdzIGRlcml2ZWQgcG90IGFjY291bnQuAAGxCQAIJEFzc2V0S2luZHAELQEgVHlwZSBwYXJhbWV0ZXIgcmVwcmVzZW50aW5nIHRoZSBhc3NldCBraW5kcyB0byBiZSBzcGVudCBmcm9tIHRoZSB0cmVhc3VyeS4sQmVuZWZpY2lhcnkABF0BIFR5cGUgcGFyYW1ldGVyIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGJlbmVmaWNpYXJpZXMgZWxpZ2libGUgdG8gcmVjZWl2ZSB0cmVhc3VyeSBzcGVuZHMuAAsAABxVdGlsaXR5AAF4AAFNBwAETGJhdGNoZWRfY2FsbHNfbGltaXQoEKoqAAAEqCBUaGUgbGltaXQgb24gdGhlIG51bWJlciBvZiBiYXRjaGVkIGNhbGxzLgABtQkACCxSdW50aW1lQ2FsbAwEbCBUaGUgb3ZlcmFyY2hpbmcgY2FsbCB0eXBlLjRQYWxsZXRzT3JpZ2luhATwIFRoZSBjYWxsZXIgb3JpZ2luLCBvdmVyYXJjaGluZyB0eXBlIG9mIGFsbCBwYWxsZXRzIG9yaWdpbnMuAA0AACBQcmVpbWFnZQEgUHJlaW1hZ2UMJFN0YXR1c0ZvcgABBAYsuQkEAASQIFRoZSByZXF1ZXN0IHN0YXR1cyBvZiBhIGdpdmVuIGhhc2guAkBSZXF1ZXN0U3RhdHVzRm9yAEBSZXF1ZXN0U3RhdHVzRm9yAAEEBizFCQQABJAgVGhlIHJlcXVlc3Qgc3RhdHVzIG9mIGEgZ2l2ZW4gaGFzaC4ALFByZWltYWdlRm9yAAEEBtUJ2QkEAAAAAegAAVUHAAAB3QkAAAAPAAAgSWRlbnRpdHkBIElkZW50aXR5JChJZGVudGl0eU9mAAEEBQDhCQQAEGkBIEluZm9ybWF0aW9uIHRoYXQgaXMgcGVydGluZW50IHRvIGlkZW50aWZ5IHRoZSBlbnRpdHkgYmVoaW5kIGFuIGFjY291bnQuIEZpcnN0IGl0ZW0gaXMgdGhl4CByZWdpc3RyYXRpb24sIHNlY29uZCBpcyB0aGUgYWNjb3VudCdzIHByaW1hcnkgdXNlcm5hbWUuAMAgVFdPWC1OT1RFOiBPSyDigJUgYEFjY291bnRJZGAgaXMgYSBzZWN1cmUgaGFzaC4AKFVzZXJuYW1lT2YAAQQFAKEBBAAEvCBJZGVudGlmaWVzIHRoZSBwcmltYXJ5IHVzZXJuYW1lIG9mIGFuIGFjY291bnQuABxTdXBlck9mAAEEAgCJAQQACGEBIFRoZSBzdXBlci1pZGVudGl0eSBvZiBhbiBhbHRlcm5hdGl2ZSAic3ViIiBpZGVudGl0eSB0b2dldGhlciB3aXRoIGl0cyBuYW1lLCB3aXRoaW4gdGhhdFEBIGNvbnRleHQuIElmIHRoZSBhY2NvdW50IGlzIG5vdCBzb21lIG90aGVyIGFjY291bnQncyBzdWItaWRlbnRpdHksIHRoZW4ganVzdCBgTm9uZWAuABhTdWJzT2YBAQQFAPEJRAAAAAAAAAAAAAAAAAAAAAAAFLggQWx0ZXJuYXRpdmUgInN1YiIgaWRlbnRpdGllcyBvZiB0aGlzIGFjY291bnQuAB0BIFRoZSBmaXJzdCBpdGVtIGlzIHRoZSBkZXBvc2l0LCB0aGUgc2Vjb25kIGlzIGEgdmVjdG9yIG9mIHRoZSBhY2NvdW50cy4AwCBUV09YLU5PVEU6IE9LIOKAlSBgQWNjb3VudElkYCBpcyBhIHNlY3VyZSBoYXNoLgAoUmVnaXN0cmFycwEA+QkEABBNASBUaGUgc2V0IG9mIHJlZ2lzdHJhcnMuIE5vdCBleHBlY3RlZCB0byBnZXQgdmVyeSBiaWcgYXMgY2FuIG9ubHkgYmUgYWRkZWQgdGhyb3VnaCBhqCBzcGVjaWFsIG9yaWdpbiAobGlrZWx5IGEgY291bmNpbCBtb3Rpb24pLgApASBUaGUgaW5kZXggaW50byB0aGlzIGNhbiBiZSBjYXN0IHRvIGBSZWdpc3RyYXJJbmRleGAgdG8gZ2V0IGEgdmFsaWQgdmFsdWUuACxBdXRob3JpdHlPZgABBAUJCg0KBAAE9CBBIG1hcCBvZiB0aGUgYWNjb3VudHMgd2hvIGFyZSBhdXRob3JpemVkIHRvIGdyYW50IHVzZXJuYW1lcy4AOFVzZXJuYW1lSW5mb09mAAEEAqEBEQoEABh1ASBSZXZlcnNlIGxvb2t1cCBmcm9tIGB1c2VybmFtZWAgdG8gdGhlIGBBY2NvdW50SWRgIHRoYXQgaGFzIHJlZ2lzdGVyZWQgaXQgYW5kIHRoZSBwcm92aWRlciBvZm0BIHRoZSB1c2VybmFtZS4gVGhlIGBvd25lcmAgdmFsdWUgc2hvdWxkIGJlIGEga2V5IGluIHRoZSBgVXNlcm5hbWVPZmAgbWFwLCBidXQgaXQgbWF5IG5vdCBpZvAgdGhlIHVzZXIgaGFzIGNsZWFyZWQgdGhlaXIgdXNlcm5hbWUgb3IgaXQgaGFzIGJlZW4gcmVtb3ZlZC4AaQEgTXVsdGlwbGUgdXNlcm5hbWVzIG1heSBtYXAgdG8gdGhlIHNhbWUgYEFjY291bnRJZGAsIGJ1dCBgVXNlcm5hbWVPZmAgd2lsbCBvbmx5IG1hcCB0byBvbmVIIHByaW1hcnkgdXNlcm5hbWUuAEBQZW5kaW5nVXNlcm5hbWVzAAEEAqEBGQoEABhtASBVc2VybmFtZXMgdGhhdCBhbiBhdXRob3JpdHkgaGFzIGdyYW50ZWQsIGJ1dCB0aGF0IHRoZSBhY2NvdW50IGNvbnRyb2xsZXIgaGFzIG5vdCBjb25maXJtZWRxASB0aGF0IHRoZXkgd2FudCBpdC4gVXNlZCBwcmltYXJpbHkgaW4gY2FzZXMgd2hlcmUgdGhlIGBBY2NvdW50SWRgIGNhbm5vdCBwcm92aWRlIGEgc2lnbmF0dXJlXQEgYmVjYXVzZSB0aGV5IGFyZSBhIHB1cmUgcHJveHksIG11bHRpc2lnLCBldGMuIEluIG9yZGVyIHRvIGNvbmZpcm0gaXQsIHRoZXkgc2hvdWxkIGNhbGywIFthY2NlcHRfdXNlcm5hbWVdKGBDYWxsOjphY2NlcHRfdXNlcm5hbWVgKS4AHQEgRmlyc3QgdHVwbGUgaXRlbSBpcyB0aGUgYWNjb3VudCBhbmQgc2Vjb25kIGlzIHRoZSBhY2NlcHRhbmNlIGRlYWRsaW5lLgBIVW5iaW5kaW5nVXNlcm5hbWVzAAEEAqEBKAQAEF0BIFVzZXJuYW1lcyBmb3Igd2hpY2ggdGhlIGF1dGhvcml0eSB0aGF0IGdyYW50ZWQgdGhlbSBoYXMgc3RhcnRlZCB0aGUgcmVtb3ZhbCBwcm9jZXNzIGJ5cQEgdW5iaW5kaW5nIHRoZW0uIEVhY2ggdW5iaW5kaW5nIHVzZXJuYW1lIG1hcHMgdG8gaXRzIGdyYWNlIHBlcmlvZCBleHBpcnksIHdoaWNoIGlzIHRoZSBmaXJzdNwgYmxvY2sgaW4gd2hpY2ggdGhlIHVzZXJuYW1lIGNvdWxkIGJlIGRlbGV0ZWQgdGhyb3VnaCBhxCBbcmVtb3ZlX3VzZXJuYW1lXShgQ2FsbDo6cmVtb3ZlX3VzZXJuYW1lYCkgY2FsbC4AAfAAAVkHACgwQmFzaWNEZXBvc2l0QEAAQGNSv8YBAAAAAAAAAAAABNggVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgZm9yIGEgcmVnaXN0ZXJlZCBpZGVudGl0eS4ALEJ5dGVEZXBvc2l0QEAAoHJOGAkAAAAAAAAAAAAABB0BIFRoZSBhbW91bnQgaGVsZCBvbiBkZXBvc2l0IHBlciBlbmNvZGVkIGJ5dGUgZm9yIGEgcmVnaXN0ZXJlZCBpZGVudGl0eS4APFVzZXJuYW1lRGVwb3NpdEBAAEBjUr/GAQAAAAAAAAAAAAhVASBUaGUgYW1vdW50IGhlbGQgb24gZGVwb3NpdCBwZXIgcmVnaXN0ZXJlZCB1c2VybmFtZS4gVGhpcyB2YWx1ZSBzaG91bGQgY2hhbmdlIG9ubHkgaW70IHJ1bnRpbWUgdXBncmFkZXMgd2l0aCBwcm9wZXIgbWlncmF0aW9uIG9mIGV4aXN0aW5nIGRlcG9zaXRzLgBEU3ViQWNjb3VudERlcG9zaXRAQABAY1K/xgEAAAAAAAAAAAAMZQEgVGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQgZm9yIGEgcmVnaXN0ZXJlZCBzdWJhY2NvdW50LiBUaGlzIHNob3VsZCBhY2NvdW50IGZvciB0aGUgZmFjdGUBIHRoYXQgb25lIHN0b3JhZ2UgaXRlbSdzIHZhbHVlIHdpbGwgaW5jcmVhc2UgYnkgdGhlIHNpemUgb2YgYW4gYWNjb3VudCBJRCwgYW5kIHRoZXJlIHdpbGw1ASBiZSBhbm90aGVyIHRyaWUgaXRlbSB3aG9zZSB2YWx1ZSBpcyB0aGUgc2l6ZSBvZiBhbiBhY2NvdW50IElEIHBsdXMgMzIgYnl0ZXMuADhNYXhTdWJBY2NvdW50cygQZAAAAAQNASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3ViLWFjY291bnRzIGFsbG93ZWQgcGVyIGlkZW50aWZpZWQgYWNjb3VudC4ANE1heFJlZ2lzdHJhcnMoEBQAAAAITQEgTWF4aW11bSBudW1iZXIgb2YgcmVnaXN0cmFycyBhbGxvd2VkIGluIHRoZSBzeXN0ZW0uIE5lZWRlZCB0byBib3VuZCB0aGUgY29tcGxleGl0eXwgb2YsIGUuZy4sIHVwZGF0aW5nIGp1ZGdlbWVudHMuAGRQZW5kaW5nVXNlcm5hbWVFeHBpcmF0aW9uKBBAnQQABBUBIFRoZSBudW1iZXIgb2YgYmxvY2tzIHdpdGhpbiB3aGljaCBhIHVzZXJuYW1lIGdyYW50IG11c3QgYmUgYWNjZXB0ZWQuAExVc2VybmFtZUdyYWNlUGVyaW9kKBCAxhMACFkBIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRoYXQgbXVzdCBwYXNzIHRvIGVuYWJsZSB0aGUgcGVybWFuZW50IGRlbGV0aW9uIG9mIGEgdXNlcm5hbWUgYnloIGl0cyByZXNwZWN0aXZlIGF1dGhvcml0eS4APE1heFN1ZmZpeExlbmd0aCgQBwAAAASAIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIHN1ZmZpeC4ARE1heFVzZXJuYW1lTGVuZ3RoKBAgAAAABGEBIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIHVzZXJuYW1lLCBpbmNsdWRpbmcgaXRzIHN1ZmZpeCBhbmQgYW55IHN5c3RlbS1hZGRlZCBkZWxpbWl0ZXJzLgABHQoABERPZmZjaGFpblNpZ25hdHVyZZUBDOAgU2lnbmF0dXJlIHR5cGUgZm9yIHByZS1hdXRob3JpemluZyB1c2VybmFtZXMgb2ZmLWNoYWluLgARASBDYW4gdmVyaWZ5IHdoZXRoZXIgYW4gYFNlbGY6OlNpZ25pbmdQdWJsaWNLZXlgIGNyZWF0ZWQgYSBzaWduYXR1cmUuABEAACREZW1vY3JhY3kBJERlbW9jcmFjeTA8UHVibGljUHJvcENvdW50AQAoEAAAAAAE9CBUaGUgbnVtYmVyIG9mIChwdWJsaWMpIHByb3Bvc2FscyB0aGF0IGhhdmUgYmVlbiBtYWRlIHNvIGZhci4ALFB1YmxpY1Byb3BzAQAhCgQABAUBIFRoZSBwdWJsaWMgcHJvcG9zYWxzLiBVbnNvcnRlZC4gVGhlIHNlY29uZCBpdGVtIGlzIHRoZSBwcm9wb3NhbC4AJERlcG9zaXRPZgABBAUoLQoEAAyEIFRob3NlIHdobyBoYXZlIGxvY2tlZCBhIGRlcG9zaXQuANggVFdPWC1OT1RFOiBTYWZlLCBhcyBpbmNyZWFzaW5nIGludGVnZXIga2V5cyBhcmUgc2FmZS4APFJlZmVyZW5kdW1Db3VudAEAKBAAAAAABDEBIFRoZSBuZXh0IGZyZWUgcmVmZXJlbmR1bSBpbmRleCwgYWthIHRoZSBudW1iZXIgb2YgcmVmZXJlbmRhIHN0YXJ0ZWQgc28gZmFyLgA0TG93ZXN0VW5iYWtlZAEAKBAAAAAACCUBIFRoZSBsb3dlc3QgcmVmZXJlbmR1bSBpbmRleCByZXByZXNlbnRpbmcgYW4gdW5iYWtlZCByZWZlcmVuZHVtLiBFcXVhbCB0b9wgYFJlZmVyZW5kdW1Db3VudGAgaWYgdGhlcmUgaXNuJ3QgYSB1bmJha2VkIHJlZmVyZW5kdW0uAEBSZWZlcmVuZHVtSW5mb09mAAEEBSg1CgQADLQgSW5mb3JtYXRpb24gY29uY2VybmluZyBhbnkgZ2l2ZW4gcmVmZXJlbmR1bS4ACQEgVFdPWC1OT1RFOiBTQUZFIGFzIGluZGV4ZXMgYXJlIG5vdCB1bmRlciBhbiBhdHRhY2tlcuKAmXMgY29udHJvbC4AIFZvdGluZ09mAQEEBQBBCtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQXQEgQWxsIHZvdGVzIGZvciBhIHBhcnRpY3VsYXIgdm90ZXIuIFdlIHN0b3JlIHRoZSBiYWxhbmNlIGZvciB0aGUgbnVtYmVyIG9mIHZvdGVzIHRoYXQgd2VdASBoYXZlIHJlY29yZGVkLiBUaGUgc2Vjb25kIGl0ZW0gaXMgdGhlIHRvdGFsIGFtb3VudCBvZiBkZWxlZ2F0aW9ucywgdGhhdCB3aWxsIGJlIGFkZGVkLgDoIFRXT1gtTk9URTogU0FGRSBhcyBgQWNjb3VudElkYHMgYXJlIGNyeXB0byBoYXNoZXMgYW55d2F5LgBUTGFzdFRhYmxlZFdhc0V4dGVybmFsAQBEBAAIWQEgVHJ1ZSBpZiB0aGUgbGFzdCByZWZlcmVuZHVtIHRhYmxlZCB3YXMgc3VibWl0dGVkIGV4dGVybmFsbHkuIEZhbHNlIGlmIGl0IHdhcyBhIHB1YmxpYyggcHJvcG9zYWwuADBOZXh0RXh0ZXJuYWwAAFkKBAAQWQEgVGhlIHJlZmVyZW5kdW0gdG8gYmUgdGFibGVkIHdoZW5ldmVyIGl0IHdvdWxkIGJlIHZhbGlkIHRvIHRhYmxlIGFuIGV4dGVybmFsIHByb3Bvc2FsLlUBIFRoaXMgaGFwcGVucyB3aGVuIGEgcmVmZXJlbmR1bSBuZWVkcyB0byBiZSB0YWJsZWQgYW5kIG9uZSBvZiB0d28gY29uZGl0aW9ucyBhcmUgbWV0OqQgLSBgTGFzdFRhYmxlZFdhc0V4dGVybmFsYCBpcyBgZmFsc2VgOyBvcmggLSBgUHVibGljUHJvcHNgIGlzIGVtcHR5LgAkQmxhY2tsaXN0AAEEBixdCgQACFEBIEEgcmVjb3JkIG9mIHdobyB2ZXRvZWQgd2hhdC4gTWFwcyBwcm9wb3NhbCBoYXNoIHRvIGEgcG9zc2libGUgZXhpc3RlbnQgYmxvY2sgbnVtYmVy6CAodW50aWwgd2hlbiBpdCBtYXkgbm90IGJlIHJlc3VibWl0dGVkKSBhbmQgd2hvIHZldG9lZCBpdC4ANENhbmNlbGxhdGlvbnMBAQQGLEQEAAQpASBSZWNvcmQgb2YgYWxsIHByb3Bvc2FscyB0aGF0IGhhdmUgYmVlbiBzdWJqZWN0IHRvIGVtZXJnZW5jeSBjYW5jZWxsYXRpb24uAChNZXRhZGF0YU9mAAEEAsEBLAQAGOwgR2VuZXJhbCBpbmZvcm1hdGlvbiBjb25jZXJuaW5nIGFueSBwcm9wb3NhbCBvciByZWZlcmVuZHVtLkkBIFRoZSBgSGFzaGAgcmVmZXJzIHRvIHRoZSBwcmVpbWFnZSBvZiB0aGUgYFByZWltYWdlc2AgcHJvdmlkZXIgd2hpY2ggY2FuIGJlIGEgSlNPToggZHVtcCBvciBJUEZTIGhhc2ggb2YgYSBKU09OIGZpbGUuAHUBIENvbnNpZGVyIGEgZ2FyYmFnZSBjb2xsZWN0aW9uIGZvciBhIG1ldGFkYXRhIG9mIGZpbmlzaGVkIHJlZmVyZW5kdW1zIHRvIGB1bnJlcXVlc3RgIChyZW1vdmUpRCBsYXJnZSBwcmVpbWFnZXMuAAGlAQABXQcAMDxFbmFjdG1lbnRQZXJpb2QoEMCoAAAU6CBUaGUgcGVyaW9kIGJldHdlZW4gYSBwcm9wb3NhbCBiZWluZyBhcHByb3ZlZCBhbmQgZW5hY3RlZC4AMQEgSXQgc2hvdWxkIGdlbmVyYWxseSBiZSBhIGxpdHRsZSBtb3JlIHRoYW4gdGhlIHVuc3Rha2UgcGVyaW9kIHRvIGVuc3VyZSB0aGF0UQEgdm90aW5nIHN0YWtlcnMgaGF2ZSBhbiBvcHBvcnR1bml0eSB0byByZW1vdmUgdGhlbXNlbHZlcyBmcm9tIHRoZSBzeXN0ZW0gaW4gdGhlIGNhc2W0IHdoZXJlIHRoZXkgYXJlIG9uIHRoZSBsb3Npbmcgc2lkZSBvZiBhIHZvdGUuADBMYXVuY2hQZXJpb2QoEED6AQAE5CBIb3cgb2Z0ZW4gKGluIGJsb2NrcykgbmV3IHB1YmxpYyByZWZlcmVuZGEgYXJlIGxhdW5jaGVkLgAwVm90aW5nUGVyaW9kKBBA+gEABLggSG93IG9mdGVuIChpbiBibG9ja3MpIHRvIGNoZWNrIGZvciBuZXcgdm90ZXMuAERWb3RlTG9ja2luZ1BlcmlvZCgQgPQDABCQIFRoZSBtaW5pbXVtIHBlcmlvZCBvZiB2b3RlIGxvY2tpbmcuAGUBIEl0IHNob3VsZCBiZSBubyBzaG9ydGVyIHRoYW4gZW5hY3RtZW50IHBlcmlvZCB0byBlbnN1cmUgdGhhdCBpbiB0aGUgY2FzZSBvZiBhbiBhcHByb3ZhbCxJASB0aG9zZSBzdWNjZXNzZnVsIHZvdGVycyBhcmUgbG9ja2VkIGludG8gdGhlIGNvbnNlcXVlbmNlcyB0aGF0IHRoZWlyIHZvdGVzIGVudGFpbC4AOE1pbmltdW1EZXBvc2l0QEAAAIpdeEVjAQAAAAAAAAAABDUBIFRoZSBtaW5pbXVtIGFtb3VudCB0byBiZSB1c2VkIGFzIGEgZGVwb3NpdCBmb3IgYSBwdWJsaWMgcmVmZXJlbmR1bSBwcm9wb3NhbC4AOEluc3RhbnRBbGxvd2VkRAQBDFUBIEluZGljYXRvciBmb3Igd2hldGhlciBhbiBlbWVyZ2VuY3kgb3JpZ2luIGlzIGV2ZW4gYWxsb3dlZCB0byBoYXBwZW4uIFNvbWUgY2hhaW5zIG1heWEBIHdhbnQgdG8gc2V0IHRoaXMgcGVybWFuZW50bHkgdG8gYGZhbHNlYCwgb3RoZXJzIG1heSB3YW50IHRvIGNvbmRpdGlvbiBpdCBvbiB0aGluZ3Mgc3VjaKAgYXMgYW4gdXBncmFkZSBoYXZpbmcgaGFwcGVuZWQgcmVjZW50bHkuAFRGYXN0VHJhY2tWb3RpbmdQZXJpb2QoEBgVAAAE7CBNaW5pbXVtIHZvdGluZyBwZXJpb2QgYWxsb3dlZCBmb3IgYSBmYXN0LXRyYWNrIHJlZmVyZW5kdW0uADRDb29sb2ZmUGVyaW9kKBBAnQQABGEBIFBlcmlvZCBpbiBibG9ja3Mgd2hlcmUgYW4gZXh0ZXJuYWwgcHJvcG9zYWwgbWF5IG5vdCBiZSByZS1zdWJtaXR0ZWQgYWZ0ZXIgYmVpbmcgdmV0b2VkLgAgTWF4Vm90ZXMoEGQAAAAQsCBUaGUgbWF4aW11bSBudW1iZXIgb2Ygdm90ZXMgZm9yIGFuIGFjY291bnQuANQgQWxzbyB1c2VkIHRvIGNvbXB1dGUgd2VpZ2h0LCBhbiBvdmVybHkgYmlnIHZhbHVlIGNhbhUBIGxlYWQgdG8gZXh0cmluc2ljIHdpdGggdmVyeSBiaWcgd2VpZ2h0OiBzZWUgYGRlbGVnYXRlYCBmb3IgaW5zdGFuY2UuADBNYXhQcm9wb3NhbHMoEGQAAAAEDQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHB1YmxpYyBwcm9wb3NhbHMgdGhhdCBjYW4gZXhpc3QgYXQgYW55IHRpbWUuACxNYXhEZXBvc2l0cygQZAAAAAQdASBUaGUgbWF4aW11bSBudW1iZXIgb2YgZGVwb3NpdHMgYSBwdWJsaWMgcHJvcG9zYWwgbWF5IGhhdmUgYXQgYW55IHRpbWUuADhNYXhCbGFja2xpc3RlZCgQZAAAAATYIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpdGVtcyB3aGljaCBjYW4gYmUgYmxhY2tsaXN0ZWQuAAFhCgAAABMAAEhUZWNobmljYWxDb21taXR0ZWUBSFRlY2huaWNhbENvbW1pdHRlZRwkUHJvcG9zYWxzAQBlCgQABJAgVGhlIGhhc2hlcyBvZiB0aGUgYWN0aXZlIHByb3Bvc2Fscy4AKFByb3Bvc2FsT2YAAQQGLAwEAATMIEFjdHVhbCBwcm9wb3NhbCBmb3IgYSBnaXZlbiBoYXNoLCBpZiBpdCdzIGN1cnJlbnQuABhDb3N0T2YAAQQGLGkKBAAQCQEgQ29uc2lkZXJhdGlvbiBjb3N0IGNyZWF0ZWQgZm9yIHB1Ymxpc2hpbmcgYW5kIHN0b3JpbmcgYSBwcm9wb3NhbC4AcQEgRGV0ZXJtaW5lZCBieSBbQ29uZmlnOjpDb25zaWRlcmF0aW9uXSBhbmQgbWF5IGJlIG5vdCBwcmVzZW50IGZvciBjZXJ0YWluIHByb3Bvc2FscyAoZS5nLiBpZg0BIHRoZSBwcm9wb3NhbCBjb3VudCBhdCB0aGUgdGltZSBvZiBjcmVhdGlvbiB3YXMgYmVsb3cgdGhyZXNob2xkIE4pLgAYVm90aW5nAAEEBixtCgQABLQgVm90ZXMgb24gYSBnaXZlbiBwcm9wb3NhbCwgaWYgaXQgaXMgb25nb2luZy4ANFByb3Bvc2FsQ291bnQBACgQAAAAAARIIFByb3Bvc2FscyBzbyBmYXIuABxNZW1iZXJzAQBIBAAEOQEgVGhlIGN1cnJlbnQgbWVtYmVycyBvZiB0aGUgY29sbGVjdGl2ZS4gVGhpcyBpcyBzdG9yZWQgc29ydGVkIChqdXN0IGJ5IHZhbHVlKS4AFFByaW1lAAAABAAEYQEgVGhlIHByaW1lIG1lbWJlciB0aGF0IGhlbHBzIGRldGVybWluZSB0aGUgZGVmYXVsdCB2b3RlIGJlaGF2aW9yIGluIGNhc2Ugb2YgYWJzdGVudGlvbnMuAAHJAQABZQcABERNYXhQcm9wb3NhbFdlaWdodOQoBwDMe5+uAgBAAQQlASBUaGUgbWF4aW11bSB3ZWlnaHQgb2YgYSBkaXNwYXRjaCBjYWxsIHRoYXQgY2FuIGJlIHByb3Bvc2VkIGFuZCBleGVjdXRlZC4AAXEKAAQgUHJvcG9zYWwMBIAgVGhlIHJ1bnRpbWUgY2FsbCBkaXNwYXRjaCB0eXBlLgAZAAAUUHJveHkBFFByb3h5CBxQcm94aWVzAQEEBQB1CkQAAAAAAAAAAAAAAAAAAAAAAAhFASBUaGUgc2V0IG9mIGFjY291bnQgcHJveGllcy4gTWFwcyB0aGUgYWNjb3VudCB3aGljaCBoYXMgZGVsZWdhdGVkIHRvIHRoZSBhY2NvdW50cyEBIHdoaWNoIGFyZSBiZWluZyBkZWxlZ2F0ZWQgdG8sIHRvZ2V0aGVyIHdpdGggdGhlIGFtb3VudCBoZWxkIG9uIGRlcG9zaXQuADRBbm5vdW5jZW1lbnRzAQEEBQCFCkQAAAAAAAAAAAAAAAAAAAAAAASsIFRoZSBhbm5vdW5jZW1lbnRzIG1hZGUgYnkgdGhlIHByb3h5IChrZXkpLgAB0QEAAWkHABhAUHJveHlEZXBvc2l0QmFzZUBAAOARAh62AAAAAAAAAAAAABARASBUaGUgYmFzZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHRvIHJlc2VydmUgZm9yIGNyZWF0aW5nIGEgcHJveHkuAAEBIFRoaXMgaXMgaGVsZCBmb3IgYW4gYWRkaXRpb25hbCBzdG9yYWdlIGl0ZW0gd2hvc2UgdmFsdWUgc2l6ZSBpcyUBIGBzaXplb2YoQmFsYW5jZSlgIGJ5dGVzIGFuZCB3aG9zZSBrZXkgc2l6ZSBpcyBgc2l6ZW9mKEFjY291bnRJZClgIGJ5dGVzLgBIUHJveHlEZXBvc2l0RmFjdG9yQEAALJmA5gAAAAAAAAAAAAAAFLwgVGhlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgcGVyIHByb3h5IGFkZGVkLgA1ASBUaGlzIGlzIGhlbGQgZm9yIGFkZGluZyAzMiBieXRlcyBwbHVzIGFuIGluc3RhbmNlIG9mIGBQcm94eVR5cGVgIG1vcmUgaW50byBhYQEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuIFRodXMsIHdoZW4gY29uZmlndXJpbmcgYFByb3h5RGVwb3NpdEZhY3RvcmAgb25lIHNob3VsZCB0YWtl9CBpbnRvIGFjY291bnQgYDMyICsgcHJveHlfdHlwZS5lbmNvZGUoKS5sZW4oKWAgYnl0ZXMgb2YgZGF0YS4AKE1heFByb3hpZXMoECAAAAAE8CBUaGUgbWF4aW11bSBhbW91bnQgb2YgcHJveGllcyBhbGxvd2VkIGZvciBhIHNpbmdsZSBhY2NvdW50LgAoTWF4UGVuZGluZygQIAAAAARFASBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZS1kZWxheWVkIGFubm91bmNlbWVudHMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSBwZW5kaW5nLgBcQW5ub3VuY2VtZW50RGVwb3NpdEJhc2VAQADgEQIetgAAAAAAAAAAAAAQMQEgVGhlIGJhc2UgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCB0byByZXNlcnZlIGZvciBjcmVhdGluZyBhbiBhbm5vdW5jZW1lbnQuAEkBIFRoaXMgaXMgaGVsZCB3aGVuIGEgbmV3IHN0b3JhZ2UgaXRlbSBob2xkaW5nIGEgYEJhbGFuY2VgIGlzIGNyZWF0ZWQgKHR5cGljYWxseSAxNiAgYnl0ZXMpLgBkQW5ub3VuY2VtZW50RGVwb3NpdEZhY3RvckBAAFgyAc0BAAAAAAAAAAAAABDUIFRoZSBhbW91bnQgb2YgY3VycmVuY3kgbmVlZGVkIHBlciBhbm5vdW5jZW1lbnQgbWFkZS4AWQEgVGhpcyBpcyBoZWxkIGZvciBhZGRpbmcgYW4gYEFjY291bnRJZGAsIGBIYXNoYCBhbmQgYEJsb2NrTnVtYmVyYCAodHlwaWNhbGx5IDY4IGJ5dGVzKYwgaW50byBhIHByZS1leGlzdGluZyBzdG9yYWdlIHZhbHVlLgABlQoACCxSdW50aW1lQ2FsbAwEbCBUaGUgb3ZlcmFyY2hpbmcgY2FsbCB0eXBlLiRQcm94eVR5cGXZARBVASBBIGtpbmQgb2YgcHJveHk7IHNwZWNpZmllZCB3aXRoIHRoZSBwcm94eSBhbmQgcGFzc2VkIGluIHRvIHRoZSBgSXNQcm94eWFibGVgIGZpbHRlci5RASBUaGUgaW5zdGFuY2UgZmlsdGVyIGRldGVybWluZXMgd2hldGhlciBhIGdpdmVuIGNhbGwgbWF5IGJlIHByb3hpZWQgdW5kZXIgdGhpcyB0eXBlLgBNASBJTVBPUlRBTlQ6IGBEZWZhdWx0YCBtdXN0IGJlIHByb3ZpZGVkIGFuZCBNVVNUIEJFIHRoZSB0aGUgKm1vc3QgcGVybWlzc2l2ZSogdmFsdWUuCBgJ14NGcnoO9YwPoDuvoyPLxRSI2SoapxN7A7+1DvwXRGNoZWNrX3Blcm1pc3Npb25zCBBjYWxsDChwcm94eV90eXBl2QFEBPQgQ2hlY2sgaWYgYSBgUnVudGltZUNhbGxgIGlzIGFsbG93ZWQgZm9yIGEgZ2l2ZW4gYFByb3h5VHlwZWAuABgJ14NGcnoO9YwPoDuvoyMXFLBgfWKvCjs7CtLF1VxYLGlzX3N1cGVyc2V0CCB0b19jaGVja9kBHGFnYWluc3TZAUQE9CBDaGVjayBpZiBvbmUgYFByb3h5VHlwZWAgaXMgYSBzdWJzZXQgb2YgYW5vdGhlciBgUHJveHlUeXBlYC4AHQAAIE11bHRpc2lnASBNdWx0aXNpZwQkTXVsdGlzaWdzAAEIBQKZCp0KBAAElCBUaGUgc2V0IG9mIG9wZW4gbXVsdGlzaWcgb3BlcmF0aW9ucy4AAd0BAAFxBwAMLERlcG9zaXRCYXNlQEAAoDfNTLgAAAAAAAAAAAAAGFkBIFRoZSBiYXNlIGFtb3VudCBvZiBjdXJyZW5jeSBuZWVkZWQgdG8gcmVzZXJ2ZSBmb3IgY3JlYXRpbmcgYSBtdWx0aXNpZyBleGVjdXRpb24gb3IgdG+EIHN0b3JlIGEgZGlzcGF0Y2ggY2FsbCBmb3IgbGF0ZXIuAAEBIFRoaXMgaXMgaGVsZCBmb3IgYW4gYWRkaXRpb25hbCBzdG9yYWdlIGl0ZW0gd2hvc2UgdmFsdWUgc2l6ZSBpczEBIGA0ICsgc2l6ZW9mKChCbG9ja051bWJlciwgQmFsYW5jZSwgQWNjb3VudElkKSlgIGJ5dGVzIGFuZCB3aG9zZSBrZXkgc2l6ZSBpc4AgYDMyICsgc2l6ZW9mKEFjY291bnRJZClgIGJ5dGVzLgA0RGVwb3NpdEZhY3RvckBAAIB1hN8AAAAAAAAAAAAAAAxVASBUaGUgYW1vdW50IG9mIGN1cnJlbmN5IG5lZWRlZCBwZXIgdW5pdCB0aHJlc2hvbGQgd2hlbiBjcmVhdGluZyBhIG11bHRpc2lnIGV4ZWN1dGlvbi4AJQEgVGhpcyBpcyBoZWxkIGZvciBhZGRpbmcgMzIgYnl0ZXMgbW9yZSBpbnRvIGEgcHJlLWV4aXN0aW5nIHN0b3JhZ2UgdmFsdWUuADhNYXhTaWduYXRvcmllcygQZAAAAATsIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBzaWduYXRvcmllcyBhbGxvd2VkIGluIHRoZSBtdWx0aXNpZy4AAaUKAAQsUnVudGltZUNhbGwMBGwgVGhlIG92ZXJhcmNoaW5nIGNhbGwgdHlwZS4AHwAAHFVuaXF1ZXMBHFVuaXF1ZXMoFENsYXNzAAEEAkCpCgQABGQgRGV0YWlscyBvZiBhIGNvbGxlY3Rpb24uAExPd25lcnNoaXBBY2NlcHRhbmNlAAEEAgBABAAEKQEgVGhlIGNvbGxlY3Rpb24sIGlmIGFueSwgb2Ygd2hpY2ggYW4gYWNjb3VudCBpcyB3aWxsaW5nIHRvIHRha2Ugb3duZXJzaGlwLgAcQWNjb3VudAABDAICAq0KcAQACFkBIFRoZSBpdGVtcyBoZWxkIGJ5IGFueSBnaXZlbiBhY2NvdW50OyBzZXQgb3V0IHRoaXMgd2F5IHNvIHRoYXQgaXRlbXMgb3duZWQgYnkgYSBzaW5nbGVsIGFjY291bnQgY2FuIGJlIGVudW1lcmF0ZWQuADBDbGFzc0FjY291bnQAAQgCAr0JcAQACGkBIFRoZSBjb2xsZWN0aW9ucyBvd25lZCBieSBhbnkgZ2l2ZW4gYWNjb3VudDsgc2V0IG91dCB0aGlzIHdheSBzbyB0aGF0IGNvbGxlY3Rpb25zIG93bmVkIGJ5kCBhIHNpbmdsZSBhY2NvdW50IGNhbiBiZSBlbnVtZXJhdGVkLgAUQXNzZXQAAQgCAn0CsQoEAATQIFRoZSBpdGVtcyBpbiBleGlzdGVuY2UgYW5kIHRoZWlyIG93bmVyc2hpcCBkZXRhaWxzLgA8Q2xhc3NNZXRhZGF0YU9mAAEEAkC1CgQABGggTWV0YWRhdGEgb2YgYSBjb2xsZWN0aW9uLgBISW5zdGFuY2VNZXRhZGF0YU9mAAEIAgJ9ArkKBAAEVCBNZXRhZGF0YSBvZiBhbiBpdGVtLgAkQXR0cmlidXRlAAEMAgICvQrBCgQABHAgQXR0cmlidXRlcyBvZiBhIGNvbGxlY3Rpb24uACxJdGVtUHJpY2VPZgABCAICfQLFCgQABHAgUHJpY2Ugb2YgYW4gYXNzZXQgaW5zdGFuY2UuAExDb2xsZWN0aW9uTWF4U3VwcGx5AAEEAkAoBAAE8CBLZWVwcyB0cmFjayBvZiB0aGUgbnVtYmVyIG9mIGl0ZW1zIGEgY29sbGVjdGlvbiBtaWdodCBoYXZlLgAB6QEAAXUHACBEQ29sbGVjdGlvbkRlcG9zaXRAQAAAAAAAAAAAAAAAAAAAAAAEAQEgVGhlIGJhc2ljIGFtb3VudCBvZiBmdW5kcyB0aGF0IG11c3QgYmUgcmVzZXJ2ZWQgZm9yIGNvbGxlY3Rpb24uACxJdGVtRGVwb3NpdEBAAAAAAAAAAAAAAAAAAAAAAAT0IFRoZSBiYXNpYyBhbW91bnQgb2YgZnVuZHMgdGhhdCBtdXN0IGJlIHJlc2VydmVkIGZvciBhbiBpdGVtLgBMTWV0YWRhdGFEZXBvc2l0QmFzZUBAAIDGpH6NAwAAAAAAAAAAAARNASBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCB3aGVuIGFkZGluZyBtZXRhZGF0YSB0byB5b3VyIGl0ZW0uAFBBdHRyaWJ1dGVEZXBvc2l0QmFzZUBAABCl1OgAAAAAAAAAAAAAAARVASBUaGUgYmFzaWMgYW1vdW50IG9mIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCB3aGVuIGFkZGluZyBhbiBhdHRyaWJ1dGUgdG8gYW4gaXRlbS4AOERlcG9zaXRQZXJCeXRlQEAAEKXU6AAAAAAAAAAAAAAACFkBIFRoZSBhZGRpdGlvbmFsIGZ1bmRzIHRoYXQgbXVzdCBiZSByZXNlcnZlZCBmb3IgdGhlIG51bWJlciBvZiBieXRlcyBzdG9yZSBpbiBtZXRhZGF0YSzAIGVpdGhlciAibm9ybWFsIiBtZXRhZGF0YSBvciBhdHRyaWJ1dGUgbWV0YWRhdGEuACxTdHJpbmdMaW1pdCgQSAAAAASwIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBkYXRhIHN0b3JlZCBvbi1jaGFpbi4AIEtleUxpbWl0KBAAAQAABKAgVGhlIG1heGltdW0gbGVuZ3RoIG9mIGFuIGF0dHJpYnV0ZSBrZXkuAChWYWx1ZUxpbWl0KBAABAAABKggVGhlIG1heGltdW0gbGVuZ3RoIG9mIGFuIGF0dHJpYnV0ZSB2YWx1ZS4AAckKAAgwQ29sbGVjdGlvbklkQAScIElkZW50aWZpZXIgZm9yIHRoZSBjb2xsZWN0aW9uIG9mIGl0ZW0uGEl0ZW1JZEAE9CBUaGUgdHlwZSB1c2VkIHRvIGlkZW50aWZ5IGEgdW5pcXVlIGl0ZW0gd2l0aGluIGEgY29sbGVjdGlvbi4AIAAASFN0YXRlVHJpZU1pZ3JhdGlvbgFIU3RhdGVUcmllTWlncmF0aW9uDEBNaWdyYXRpb25Qcm9jZXNzAQARAjgAAAAAAAAAAAAAAAAAABBQIE1pZ3JhdGlvbiBwcm9ncmVzcy4AXQEgVGhpcyBzdG9yZXMgdGhlIHNuYXBzaG90IG9mIHRoZSBsYXN0IG1pZ3JhdGVkIGtleXMuIEl0IGNhbiBiZSBzZXQgaW50byBtb3Rpb24gYW5kIG1vdmXUIGZvcndhcmQgYnkgYW55IG9mIHRoZSBtZWFucyBwcm92aWRlZCBieSB0aGlzIHBhbGxldC4AKEF1dG9MaW1pdHMBAAkCBAAM1CBUaGUgbGltaXRzIHRoYXQgYXJlIGltcG9zZWQgb24gYXV0b21hdGljIG1pZ3JhdGlvbnMuANQgSWYgc2V0IHRvIE5vbmUsIHRoZW4gbm8gYXV0b21hdGljIG1pZ3JhdGlvbiBoYXBwZW5zLgBgU2lnbmVkTWlncmF0aW9uTWF4TGltaXRzAAANAgQADOAgVGhlIG1heGltdW0gbGltaXRzIHRoYXQgdGhlIHNpZ25lZCBtaWdyYXRpb24gY291bGQgdXNlLgC0IElmIG5vdCBzZXQsIG5vIHNpZ25lZCBzdWJtaXNzaW9uIGlzIGFsbG93ZWQuAAEFAgABeQcABCRNYXhLZXlMZW4oEAACAABUtCBNYXhpbWFsIG51bWJlciBvZiBieXRlcyB0aGF0IGEga2V5IGNhbiBoYXZlLgCwIEZSQU1FIGl0c2VsZiBkb2VzIG5vdCBsaW1pdCB0aGUga2V5IGxlbmd0aC4BASBUaGUgY29uY3JldGUgdmFsdWUgbXVzdCB0aGVyZWZvcmUgZGVwZW5kIG9uIHlvdXIgc3RvcmFnZSB1c2FnZS5ZASBBIFtgZnJhbWVfc3VwcG9ydDo6c3RvcmFnZTo6U3RvcmFnZU5NYXBgXSBmb3IgZXhhbXBsZSBjYW4gaGF2ZSBhbiBhcmJpdHJhcnkgbnVtYmVyIG9mRQEga2V5cyB3aGljaCBhcmUgdGhlbiBoYXNoZWQgYW5kIGNvbmNhdGVuYXRlZCwgcmVzdWx0aW5nIGluIGFyYml0cmFyaWx5IGxvbmcga2V5cy4AQQEgVXNlIHRoZSAqc3RhdGUgbWlncmF0aW9uIFJQQyogdG8gcmV0cmlldmUgdGhlIGxlbmd0aCBvZiB0aGUgbG9uZ2VzdCBrZXkgaW4geW91cgEBIHN0b3JhZ2U6IDxodHRwczovL2dpdGh1Yi5jb20vcGFyaXR5dGVjaC9zdWJzdHJhdGUvaXNzdWVzLzExNjQyPgApASBUaGUgbWlncmF0aW9uIHdpbGwgaGFsdCB3aXRoIGEgYEhhbHRlZGAgZXZlbnQgaWYgdGhpcyB2YWx1ZSBpcyB0b28gc21hbGwuSQEgU2luY2UgdGhlcmUgaXMgbm8gcmVhbCBwZW5hbHR5IGZyb20gb3Zlci1lc3RpbWF0aW5nLCBpdCBpcyBhZHZpc2VkIHRvIHVzZSBhIGxhcmdlgCB2YWx1ZS4gVGhlIGRlZmF1bHQgaXMgNTEyIGJ5dGUuAIAgU29tZSBrZXkgbGVuZ3RocyBmb3IgcmVmZXJlbmNlOtAgLSBbYGZyYW1lX3N1cHBvcnQ6OnN0b3JhZ2U6OlN0b3JhZ2VWYWx1ZWBdOiAzMiBieXRlyCAtIFtgZnJhbWVfc3VwcG9ydDo6c3RvcmFnZTo6U3RvcmFnZU1hcGBdOiA2NCBieXRl4CAtIFtgZnJhbWVfc3VwcG9ydDo6c3RvcmFnZTo6U3RvcmFnZURvdWJsZU1hcGBdOiA5NiBieXRlAEggRm9yIG1vcmUgaW5mbyBzZWVJASA8aHR0cHM6Ly93d3cuc2hhd250YWJyaXppLmNvbS9ibG9nL3N1YnN0cmF0ZS9xdWVyeWluZy1zdWJzdHJhdGUtc3RvcmFnZS12aWEtcnBjLz4AAYEHAAAAIwAAQENvbnZpY3Rpb25Wb3RpbmcBQENvbnZpY3Rpb25Wb3RpbmcIJFZvdGluZ0ZvcgEBCAUFzQrRCtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIdQEgQWxsIHZvdGluZyBmb3IgYSBwYXJ0aWN1bGFyIHZvdGVyIGluIGEgcGFydGljdWxhciB2b3RpbmcgY2xhc3MuIFdlIHN0b3JlIHRoZSBiYWxhbmNlIGZvciB0aGWcIG51bWJlciBvZiB2b3RlcyB0aGF0IHdlIGhhdmUgcmVjb3JkZWQuADRDbGFzc0xvY2tzRm9yAQEEBQDxCgQADGkBIFRoZSB2b3RpbmcgY2xhc3NlcyB3aGljaCBoYXZlIGEgbm9uLXplcm8gbG9jayByZXF1aXJlbWVudCBhbmQgdGhlIGxvY2sgYW1vdW50cyB3aGljaCB0aGV5bQEgcmVxdWlyZS4gVGhlIGFjdHVhbCBhbW91bnQgbG9ja2VkIG9uIGJlaGFsZiBvZiB0aGlzIHBhbGxldCBzaG91bGQgYWx3YXlzIGJlIHRoZSBtYXhpbXVtIG9mLCB0aGlzIGxpc3QuAAEdAgABhQcACCBNYXhWb3RlcygQGQAAABDwIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IHZvdGVzIGFuIGFjY291bnQgbWF5IGhhdmUuAFUBIEFsc28gdXNlZCB0byBjb21wdXRlIHdlaWdodCwgYW4gb3Zlcmx5IGxhcmdlIHZhbHVlIGNhbiBsZWFkIHRvIGV4dHJpbnNpY3Mgd2l0aCBsYXJnZcAgd2VpZ2h0IGVzdGltYXRpb246IHNlZSBgZGVsZWdhdGVgIGZvciBpbnN0YW5jZS4ARFZvdGVMb2NraW5nUGVyaW9kKBBAnQQAEJAgVGhlIG1pbmltdW0gcGVyaW9kIG9mIHZvdGUgbG9ja2luZy4AZQEgSXQgc2hvdWxkIGJlIG5vIHNob3J0ZXIgdGhhbiBlbmFjdG1lbnQgcGVyaW9kIHRvIGVuc3VyZSB0aGF0IGluIHRoZSBjYXNlIG9mIGFuIGFwcHJvdmFsLEkBIHRob3NlIHN1Y2Nlc3NmdWwgdm90ZXJzIGFyZSBsb2NrZWQgaW50byB0aGUgY29uc2VxdWVuY2VzIHRoYXQgdGhlaXIgdm90ZXMgZW50YWlsLgAB/QoAAAAkAAAkUmVmZXJlbmRhASRSZWZlcmVuZGEUPFJlZmVyZW5kdW1Db3VudAEAKBAAAAAABDEBIFRoZSBuZXh0IGZyZWUgcmVmZXJlbmR1bSBpbmRleCwgYWthIHRoZSBudW1iZXIgb2YgcmVmZXJlbmRhIHN0YXJ0ZWQgc28gZmFyLgBEUmVmZXJlbmR1bUluZm9Gb3IAAQQCKAELBAAEtCBJbmZvcm1hdGlvbiBjb25jZXJuaW5nIGFueSBnaXZlbiByZWZlcmVuZHVtLgAoVHJhY2tRdWV1ZQEBBAWAIQsEABBdASBUaGUgc29ydGVkIGxpc3Qgb2YgcmVmZXJlbmRhIHJlYWR5IHRvIGJlIGRlY2lkZWQgYnV0IG5vdCB5ZXQgYmVpbmcgZGVjaWRlZCwgb3JkZXJlZCBieXwgY29udmljdGlvbi13ZWlnaHRlZCBhcHByb3ZhbHMuAEEBIFRoaXMgc2hvdWxkIGJlIGVtcHR5IGlmIGBEZWNpZGluZ0NvdW50YCBpcyBsZXNzIHRoYW4gYFRyYWNrSW5mbzo6bWF4X2RlY2lkaW5nYC4ANERlY2lkaW5nQ291bnQBAQQFgCgQAAAAAATEIFRoZSBudW1iZXIgb2YgcmVmZXJlbmRhIGJlaW5nIGRlY2lkZWQgY3VycmVudGx5LgAoTWV0YWRhdGFPZgABBAIoLAQAGAUBIFRoZSBtZXRhZGF0YSBpcyBhIGdlbmVyYWwgaW5mb3JtYXRpb24gY29uY2VybmluZyB0aGUgcmVmZXJlbmR1bS5JASBUaGUgYEhhc2hgIHJlZmVycyB0byB0aGUgcHJlaW1hZ2Ugb2YgdGhlIGBQcmVpbWFnZXNgIHByb3ZpZGVyIHdoaWNoIGNhbiBiZSBhIEpTT06IIGR1bXAgb3IgSVBGUyBoYXNoIG9mIGEgSlNPTiBmaWxlLgB1ASBDb25zaWRlciBhIGdhcmJhZ2UgY29sbGVjdGlvbiBmb3IgYSBtZXRhZGF0YSBvZiBmaW5pc2hlZCByZWZlcmVuZHVtcyB0byBgdW5yZXF1ZXN0YCAocmVtb3ZlKUQgbGFyZ2UgcHJlaW1hZ2VzLgABMQIAAYkHABREU3VibWlzc2lvbkRlcG9zaXRAQABAehDzWgAAAAAAAAAAAAAENQEgVGhlIG1pbmltdW0gYW1vdW50IHRvIGJlIHVzZWQgYXMgYSBkZXBvc2l0IGZvciBhIHB1YmxpYyByZWZlcmVuZHVtIHByb3Bvc2FsLgAkTWF4UXVldWVkKBBkAAAABOQgTWF4aW11bSBzaXplIG9mIHRoZSByZWZlcmVuZHVtIHF1ZXVlIGZvciBhIHNpbmdsZSB0cmFjay4ARFVuZGVjaWRpbmdUaW1lb3V0KBCAUQEACFUBIFRoZSBudW1iZXIgb2YgYmxvY2tzIGFmdGVyIHN1Ym1pc3Npb24gdGhhdCBhIHJlZmVyZW5kdW0gbXVzdCBiZWdpbiBiZWluZyBkZWNpZGVkIGJ5LuQgT25jZSB0aGlzIHBhc3NlcywgdGhlbiBhbnlvbmUgbWF5IGNhbmNlbCB0aGUgcmVmZXJlbmR1bS4ANEFsYXJtSW50ZXJ2YWwoEAEAAAAMXQEgUXVhbnRpemF0aW9uIGxldmVsIGZvciB0aGUgcmVmZXJlbmR1bSB3YWtldXAgc2NoZWR1bGVyLiBBIGhpZ2hlciBudW1iZXIgd2lsbCByZXN1bHQgaW5dASBmZXdlciBzdG9yYWdlIHJlYWRzL3dyaXRlcyBuZWVkZWQgZm9yIHNtYWxsZXIgdm90ZXJzLCBidXQgYWxzbyByZXN1bHQgaW4gZGVsYXlzIHRvIHRoZVUBIGF1dG9tYXRpYyByZWZlcmVuZHVtIHN0YXR1cyBjaGFuZ2VzLiBFeHBsaWNpdCBzZXJ2aWNpbmcgaW5zdHJ1Y3Rpb25zIGFyZSB1bmFmZmVjdGVkLgAYVHJhY2tzJQuFECgAAGRyb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAZKeztuANAAAAAAAAAAAIBwAAQJ0EAGBUAAAsAQAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAAAypo7AAAAAAAqdRUBAGR3aGl0ZWxpc3RlZF9jYWxsZXIAAAAAAAAAAwAAAAAAxS68orEAAAAAAAAAAAAsAQAAQPoBACAcAAAsAQAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAALfxwUAAAAAAKIIDAAAAAAATGYrAQAAAAACAGRyZWZlcmVuZHVtX2NhbmNlbGxlcgAAAAAAAwAAAAAA2emsLXgDAAAAAAAAAAAIBwAAQPoBAAgHAAAsAQAAANtODyIAZc0dAMqaOwId7HoAAAAAAFIiTgEAAAAANLaH//////8DAGRyZWZlcmVuZHVtX2tpbGxlcgAAAAAAAAAAAwAAAAAAi70GiWgKAAAAAAAAAAAIBwAAQPoBAAgHAAAsAQAAANtODyIAZc0dAMqaOwId7HoAAAAAAFIiTgEAAAAANLaH//////8EAGRnZW5lcmFsX2FkbWluAAAAAAAAAAAAAAAAAwAAAAAA2emsLXgDAAAAAAAAAAAIBwAAQJ0EABgVAAAsAQAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAIYDscBAAAAAMvAlQQAAAAA6nJZ/v////8FAGR0cmVhc3VyZXIAAAAAAAAAAAAAAAAAAAAAAwAAAAAAi70GiWgKAAAAAAAAAAAIBwAAQJ0EAGBUAAAsAQAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAAAypo7AAAAAACVugoGAGRzcGVuZGVyAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAil14RWMBAAAAAAAAAAAIBwAAQJ0EABgVAAAsAQAAAADKmjsAZc0dAMqaOwIYDscBAAAAAMvAlQQAAAAA6nJZ/v////8HAGR0aXBwZXIAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAwW/yhiMAAAAAAAAAAAAIBwAAQJ0EABgVAAAsAQAAANtODyIAZc0dAMqaOwId7HoAAAAAAFIiTgEAAAAANLaH//////8IAGRvbW5pcG9vbF9hZG1pbgAAAAAAAAAAAAAAAwAAAAAA2emsLXgDAAAAAAAAAAAIBwAAQJ0EABgVAAAsAQAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAIYDscBAAAAAMvAlQQAAAAA6nJZ/v////8JAGRlY29ub21pY19wYXJhbWV0ZXJzAAAAAAAAAwAAAAAAi70GiWgKAAAAAAAAAAAIBwAAQJ0EAGBUAAAsAQAAApDXPg0AAAAAV0PeEwAAAABUQ94TAAAAAAAAypo7AAAAAACVugoMSCBBIGxpc3Qgb2YgdHJhY2tzLgBdASBOb3RlOiBpZiB0aGUgdHJhY2tzIGFyZSBkeW5hbWljLCB0aGUgdmFsdWUgaW4gdGhlIHN0YXRpYyBtZXRhZGF0YSBtaWdodCBiZSBpbmFjY3VyYXRlLgABPQsADCxSdW50aW1lQ2FsbAwAFFZvdGVzQATMIFRoZSBjb3VudGluZyB0eXBlIGZvciB2b3Rlcy4gVXN1YWxseSBqdXN0IGJhbGFuY2UuFFRhbGx5jQcETCBUaGUgdGFsbHlpbmcgdHlwZS4AJQAAHE9yaWdpbnMAAAAAAAAAJgAAJFdoaXRlbGlzdAEkV2hpdGVsaXN0BDxXaGl0ZWxpc3RlZENhbGwAAQQFLHAEAAAAATkCAAGRBwAAAUELAAQsUnVudGltZUNhbGwMBGwgVGhlIG92ZXJhcmNoaW5nIGNhbGwgdHlwZS4AJwAAKERpc3BhdGNoZXIBKERpc3BhdGNoZXIMSEFhdmVNYW5hZ2VyQWNjb3VudAEAAICqfgAAAAAAAAAAAAAAAAAAAAqn4AAAAAAAAAAAAAAAAAAAIEV4dHJhR2FzAQAYIAAAAAAAAAAAAABUTGFzdEV2bUNhbGxFeGl0UmVhc29uAABFCAQAAAABPQIAAaEHAAABRQsABCxSdW50aW1lQ2FsbAwEbCBUaGUgb3ZlcmFyY2hpbmcgY2FsbCB0eXBlLgAoAAA0QXNzZXRSZWdpc3RyeQE0QXNzZXRSZWdpc3RyeRwYQXNzZXRzAAEEAihJCwQABFQgRGV0YWlscyBvZiBhbiBhc3NldC4ALE5leHRBc3NldElkAQAoEAEAAAAEXQEgTmV4dCBhdmFpbGFibGUgYXNzZXQgaWQuIFRoaXMgaXMgc2VxdWVudGlhbCBpZCBhc3NpZ25lZCBmb3IgZWFjaCBuZXcgcmVnaXN0ZXJlZCBhc3NldC4AIEFzc2V0SWRzAAEEAkkCKAQABKQgTWFwcGluZyBiZXR3ZWVuIGFzc2V0IG5hbWUgYW5kIGFzc2V0IGlkLgA4QXNzZXRMb2NhdGlvbnMAAQQCKFkCBAAEdCBOYXRpdmUgbG9jYXRpb24gb2YgYW4gYXNzZXQuADBCYW5uZWRBc3NldHMAAQQCKHAEAASwIE5vbi1uYXRpdmUgYXNzZXRzIHdoaWNoIHRyYW5zZmVyIGlzIGJhbm5lZC4AOExvY2F0aW9uQXNzZXRzAAEEAlkCKAQABIQgTG9jYWwgYXNzZXQgZm9yIG5hdGl2ZSBsb2NhdGlvbi4AZEV4aXN0ZW50aWFsRGVwb3NpdENvdW50ZXIBAEBAAAAAAAAAAAAAAAAAAAAAAAgtASBOdW1iZXIgb2YgYWNjb3VudHMgdGhhdCBwYWlkIGV4aXN0ZW50aWFsIGRlcG9zaXRzIGZvciBpbnN1ZmZpY2llbnQgYXNzZXRzLrAgVGhpcyBzdG9yYWdlIGlzIHVzZWQgYnkgYFN1ZmZpY2llbmN5Q2hlY2tgLgABQQIAAaUHABBMU2VxdWVudGlhbElkU3RhcnRBdCgQQEIPAAAALFN0cmluZ0xpbWl0KBAgAAAABOAgVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgbmFtZSBvciBzeW1ib2wgc3RvcmVkIG9uLWNoYWluLgA4TWluU3RyaW5nTGltaXQoEAMAAAAE0CBUaGUgbWluIGxlbmd0aCBvZiBhIG5hbWUgb3Igc3ltYm9sIHN0b3JlZCBvbi1jaGFpbi4AbFJlZ0V4dGVybmFsV2VpZ2h0TXVsdGlwbGllchggCgAAAAAAAAAE0CBXZWlnaHQgbXVsdGlwbGllciBmb3IgYHJlZ2lzdGVyX2V4dGVybmFsYCBleHRyaW5zaWMAAU0LAAgcQXNzZXRJZCgELCBBc3NldCB0eXBlTEFzc2V0TmF0aXZlTG9jYXRpb25ZAgRQIEFzc2V0IGxvY2F0aW9uIHR5cGUAMwAAGENsYWltcwEYQ2xhaW1zBBhDbGFpbXMBAQQCrQdAQAAAAAAAAAAAAAAAAAAAAAAEnCBBc3NldCBpZCBzdG9yYWdlIGZvciBlYWNoIHNoYXJlZCB0b2tlbgABZQIAAakHAAABUQsAAAA1AAA4R2VuZXNpc0hpc3RvcnkBOEdlbmVzaXNIaXN0b3J5BDRQcmV2aW91c0NoYWluAQBVCwEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW0CAAAAAAAANwAAPENvbGxhdG9yUmV3YXJkcwE8Q29sbGF0b3JSZXdhcmRzBCRDb2xsYXRvcnMBAQQFKFkLBAAEqCBTdG9yZXMgdGhlIGNvbGxhdG9ycyBwZXIgc2Vzc2lvbiAoaW5kZXgpLgAAAbEHAAxEUmV3YXJkUGVyQ29sbGF0b3JAQHj6i3UongEAAAAAAAAAAAAEgCBSZXdhcmQgYW1vdW50IHBlciBvbmUgY29sbGF0b3IuAEBSZXdhcmRDdXJyZW5jeUlkKBAAAAAABEAgUmV3YXJkIEFzc2V0IElkAChSZXdhcmRzQmFnAIBtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV0LAAgcQmFsYW5jZUAENCBCYWxhbmNlIHR5cGUoQ3VycmVuY3lJZCgAADkAAEBDb2xsYXRvclJvdGF0aW9uAAABtQcAAAAAADoAACBPbW5pcG9vbAEgT21uaXBvb2wcGEFzc2V0cwABBAIoYQsEAASIIFN0YXRlIG9mIGFuIGFzc2V0IGluIHRoZSBvbW5pcG9vbABMSHViQXNzZXRUcmFkYWJpbGl0eQEAeQIEAQR0IFRyYWRhYmxlIHN0YXRlIG9mIGh1YiBhc3NldC4AJFBvc2l0aW9ucwABBAJAZQsEAAT0IExQIHBvc2l0aW9ucy4gTWFwcyBORlQgaW5zdGFuY2UgaWQgdG8gY29ycmVzcG9uZGluZyBwb3NpdGlvbgA4TmV4dFBvc2l0aW9uSWQBAEBAAAAAAAAAAAAAAAAAAAAAAARcIFBvc2l0aW9uIGlkcyBzZXF1ZW5jZXIAHFNsaXBGZWUAAIUCBAAMfCBHbG9iYWwgc2xpcCBmZWUgY29uZmlndXJhdGlvbi4FASBgTm9uZWAgPSBzbGlwIGZlZXMgZGlzYWJsZWQgKGRlZmF1bHQpLiBgU29tZShjb25maWcpYCA9IGVuYWJsZWQuvCBTZXQgdmlhIGBzZXRfc2xpcF9mZWVgIGV4dHJpbnNpYyAoZ292ZXJuYW5jZSkuAHRTbGlwRmVlSHViUmVzZXJ2ZUF0QmxvY2tTdGFydAABBAIoQAQACCEBIFNuYXBzaG90IG9mIGVhY2ggYXNzZXQncyBodWJfcmVzZXJ2ZSBhdCB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgYmxvY2suNQEgTGF6aWx5IHBvcHVsYXRlZCBvbiBmaXJzdCB0cmFkZSBwZXIgYXNzZXQgcGVyIGJsb2NrLCBjbGVhcmVkIGluIG9uX2ZpbmFsaXplLgAwU2xpcEZlZURlbHRhAQEEAihpC0QAAAAAAAAAAAAAAAAAAAAAAAz8IEN1bXVsYXRpdmUgbmV0IGh1YiBhc3NldCBkZWx0YSBwZXIgYXNzZXQgaW4gdGhlIGN1cnJlbnQgYmxvY2suDQEgTmVnYXRpdmUgPSBuZXQgaHViIGFzc2V0IG91dGZsb3csIHBvc2l0aXZlID0gbmV0IGh1YiBhc3NldCBpbmZsb3cuYCBDbGVhcmVkIGluIG9uX2ZpbmFsaXplLgABcQIAAbkHACQoSGR4QXNzZXRJZCgQAAAAAARAIE5hdGl2ZSBBc3NldCBJRAAoSHViQXNzZXRJZCgQAQAAAAQ0IEh1YiBBc3NldCBJRABATWluV2l0aGRyYXdhbEZlZXUCEGQAAAAEXCBNaW5pbXVtIHdpdGhkcmF3YWwgZmVlAExNaW5pbXVtVHJhZGluZ0xpbWl0QEDoAwAAAAAAAAAAAAAAAAAABFggTWluaW11bSB0cmFkaW5nIGxpbWl0AFBNaW5pbXVtUG9vbExpcXVpZGl0eUBAQEIPAAAAAAAAAAAAAAAAAASoIE1pbmltdW0gcG9vbCBsaXF1aWRpdHkgd2hpY2ggY2FuIGJlIGFkZGVkAChNYXhJblJhdGlvQEADAAAAAAAAAAAAAAAAAAAABPAgTWF4IGZyYWN0aW9uIG9mIGFzc2V0IHJlc2VydmUgdG8gc2VsbCBpbiBzaW5nbGUgdHJhbnNhY3Rpb24ALE1heE91dFJhdGlvQEADAAAAAAAAAAAAAAAAAAAABOwgTWF4IGZyYWN0aW9uIG9mIGFzc2V0IHJlc2VydmUgdG8gYnV5IGluIHNpbmdsZSB0cmFuc2FjdGlvbgA8TkZUQ29sbGVjdGlvbklkQEA5BQAAAAAAAAAAAAAAAAAABFggTm9uIGZ1bmdpYmxlIGNsYXNzIGlkADxCdXJuUHJvdG9jb2xGZWV1AhAAAAAAAAABbQsADBxBc3NldElkKAQwIEFzc2V0IHR5cGUuOFBvc2l0aW9uSXRlbUlkQARkIFBvc2l0aW9uIGlkZW50aWZpZXIgdHlwZTBDb2xsZWN0aW9uSWRABEwgQ29sbGVjdGlvbiBpZCB0eXBlADsAAEBUcmFuc2FjdGlvblBhdXNlAUBUcmFuc2FjdGlvblBhdXNlBEhQYXVzZWRUcmFuc2FjdGlvbnMAAQQFcQtwBAAMbCBUaGUgcGF1c2VkIHRyYW5zYWN0aW9uIG1hcADcIG1hcCAoUGFsbGV0TmFtZUJ5dGVzLCBGdW5jdGlvbk5hbWVCeXRlcykgPT4gT3B0aW9uPCgpPgABiQIAAb0HAAABdQsAAAA8AAAYRHVzdGVyARhEdXN0ZXIEQEFjY291bnRXaGl0ZWxpc3QAAQQCAHAEAASAIEFjY291bnRzIGV4Y2x1ZGVkIGZyb20gZHVzdGluZy4AAY0CAAHBBwAERFRyZWFzdXJ5QWNjb3VudElkAIBtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAASsIFRyZWFzdXJ5IGFjY291bnQsIHdoaWNoIHJlY2VpdmVzIHRoZSBkdXN0LgABeQsABBxBc3NldElkKAQsIEFzc2V0IHR5cGUAPQAATE9tbmlwb29sV2FyZWhvdXNlTE0BTE9tbmlwb29sV2FyZWhvdXNlTE0YNEZhcm1TZXF1ZW5jZXIBACgQAAAAAAS8IElkIHNlcXVlbmNlciBmb3IgYEdsb2JhbEZhcm1gIGFuZCBgWWllbGRGYXJtYC4AQERlcG9zaXRTZXF1ZW5jZXIBAEBAAAAAAAAAAAAAAAAAAAAAAAAAKEdsb2JhbEZhcm0AAQQCKH0LBAAAACRZaWVsZEZhcm0AAQwCAgKFC4kLBAAEUCBZaWVsZCBmYXJtIGRldGFpbHMuABxEZXBvc2l0AAEEBUCNCwQABEQgRGVwb3NpdCBkZXRhaWxzLgA8QWN0aXZlWWllbGRGYXJtAAEIAgKpAigEAAT4IEFjdGl2ZShmYXJtcyBhYmxlIHRvIHJlY2VpdmUgTFAgc2hhcmVzIGRlcG9zaXRzKSB5aWVsZCBmYXJtcy4AAZECAAHFBwAYIFBhbGxldElkrQkgT21uaVdoTE0ELCBQYWxsZXQgaWQuAERUcmVhc3VyeUFjY291bnRJZACAbW9kbHB5L3Ryc3J5AAAAAAAAAAAAAAAAAAAAAAAAAAAE6CBUcmVhc3VyeSBhY2NvdW50IHRvIHJlY2VpdmUgY2xhaW1lZCByZXdhcmRzIGxvd2VyIHRoYW4gRUQATE1pblRvdGFsRmFybVJld2FyZHNAQAAQpdToAAAAAAAAAAAAAAAEOQEgTWluaW11bSB0b3RhbCByZXdhcmRzIHRvIGRpc3RyaWJ1dGUgZnJvbSBnbG9iYWwgZmFybSBkdXJpbmcgbGlxdWlkaXR5IG1pbmluZy4AZE1pblBsYW5uZWRZaWVsZGluZ1BlcmlvZHMoEGg4AAAE7CBNaW5pbXVtIG51bWJlciBvZiBwZXJpb2RzIHRvIHJ1biBsaXF1aWRpdHkgbWluaW5nIHByb2dyYW0uAGBNYXhGYXJtRW50cmllc1BlckRlcG9zaXQoEAUAAAAIZQEgTWF4aW11bSBudW1iZXIgb2YgeWllbGQgZmFybXMgc2FtZSBMUCBzaGFyZXMgY2FuIGJlIHJlL2RlcG9zaXRlZCBpbnRvLiBUaGlzIHZhbHVlIGFsd2F5c1wgTVVTVCBCRSA+PSAxLiAgICAgICAgIABoTWF4WWllbGRGYXJtc1Blckdsb2JhbEZhcm0oEDIAAAAITQEgTWF4IG51bWJlciBvZiB5aWVsZCBmYXJtcyBjYW4gZXhpc3QgaW4gZ2xvYmFsIGZhcm0uIFRoaXMgaW5jbHVkZXMgYWxsIGZhcm1zIGluIHRoZZggc3RvcmFnZShhY3RpdmUsIHN0b3BwZWQsIHRlcm1pbmF0ZWQpLgABnQsACBxBc3NldElkKAQwIEFzc2V0IHR5cGUuJEFtbVBvb2xJZCgE5CBJZCB1c2VkIHRvIGlkZW50aWZ5IGFtbSBwb29sIGluIGxpcXVpZGl0eSBtaW5pbmcgcGFsbGV0LgA+AABcT21uaXBvb2xMaXF1aWRpdHlNaW5pbmcBXE9tbmlwb29sTGlxdWlkaXR5TWluaW5nBDhPbW5pUG9zaXRpb25JZAABBAJAQAQABNAgTWFwIG9mIG9tbmlwb29sIHBvc2l0aW9uJ3MgaWRzIHRvIExNJ3MgZGVwb3NpdCBpZHMuAAGVAgAByQcADDxORlRDb2xsZWN0aW9uSWRAQBgKAAAAAAAAAAAAAAAAAAAE3CBORlQgY29sbGVjdGlvbiBpZCBmb3IgbGlxdWlkaXR5IG1pbmluZydzIGRlcG9zaXQgbmZ0cy4AME9yYWNsZVNvdXJjZSEBIG9tbmlwb29sBIQgSWRlbnRpZmllciBvZiBvcmFjbGUgZGF0YSBzb3J1Y2UAME9yYWNsZVBlcmlvZCEDBAIEjCBPcmFjbGUncyBwcmljZSBhZ2dyZWdhdGlvbiBwZXJpb2QuAAGlCwAAAD8AAAxPVEMBDE9UQwgsTmV4dE9yZGVySWQBACgQAAAAAARgIElEIHNlcXVlbmNlciBmb3IgT3JkZXJzABhPcmRlcnMAAQQCKK0LBAAAAAHJAgABzQcADHBFeGlzdGVudGlhbERlcG9zaXRNdWx0aXBsaWVyCAQFBEEBIE11bHRpcGxpZXIgdXNlZCB0byBjb21wdXRlIG1pbmltYWwgYW1vdW50cyBvZiBhc3NldF9pbiBhbmQgYXNzZXRfb3V0IGluIGFuIE9UQy4ADEZlZXUCEOgDAAAEeCBGZWUgZGVkdWN0ZWQgZnJvbSBhbW91bnRfb3V0LgAsRmVlUmVjZWl2ZXIAgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABDggRmVlIHJlY2VpdmVyLgABsQsABBxBc3NldElkKASMIElkZW50aWZpZXIgZm9yIHRoZSBjbGFzcyBvZiBhc3NldC4AQAAAOENpcmN1aXRCcmVha2VyAThDaXJjdWl0QnJlYWtlcjhgVHJhZGVWb2x1bWVMaW1pdFBlckFzc2V0AQEEAiipAiCGBgAAECcAAAj0IFRyYWRlIHZvbHVtZSBsaW1pdHMgb2YgYXNzZXRzIHNldCBieSBzZXRfdHJhZGVfdm9sdW1lX2xpbWl0LpwgSWYgbm90IHNldCwgcmV0dXJucyB0aGUgZGVmYXVsdCBsaW1pdC4AfEFsbG93ZWRUcmFkZVZvbHVtZUxpbWl0UGVyQXNzZXQAAQQCKLULBAAEYCBUcmFkZSB2b2x1bWVzIHBlciBhc3NldABkTGlxdWlkaXR5QWRkTGltaXRQZXJBc3NldAEBBAIo0QIkAacAAAAQJwAACMQgTGlxdWlkaXR5IGxpbWl0cyBvZiBhc3NldHMgZm9yIGFkZGluZyBsaXF1aWRpdHkunCBJZiBub3Qgc2V0LCByZXR1cm5zIHRoZSBkZWZhdWx0IGxpbWl0LgCEQWxsb3dlZEFkZExpcXVpZGl0eUFtb3VudFBlckFzc2V0AAEEAii5CwQABIAgQWRkIGxpcXVpZGl0eSB2b2x1bWVzIHBlciBhc3NldABIQXNzZXRMb2NrZG93blN0YXRlAAEEAii9CwQAAABwTGlxdWlkaXR5UmVtb3ZlTGltaXRQZXJBc3NldAEBBAIo0QIkAacAAAAQJwAACMwgTGlxdWlkaXR5IGxpbWl0cyBvZiBhc3NldHMgZm9yIHJlbW92aW5nIGxpcXVpZGl0eS6cIElmIG5vdCBzZXQsIHJldHVybnMgdGhlIGRlZmF1bHQgbGltaXQuAJBBbGxvd2VkUmVtb3ZlTGlxdWlkaXR5QW1vdW50UGVyQXNzZXQAAQQCKLkLBAAEjCBSZW1vdmUgbGlxdWlkaXR5IHZvbHVtZXMgcGVyIGFzc2V0AGRHbG9iYWxXaXRoZHJhd0xpbWl0Q29uZmlnAADVAgQABLAgQ29uZmlndXJlZCBnbG9iYWwgd2l0aGRyYXcgbGltaXQgcGFyYW1ldGVycwBgV2l0aGRyYXdMaW1pdEFjY3VtdWxhdG9yAQDBC2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAQEgVHVwbGUgb2YgKGN1cnJlbnRfYWNjdW11bGF0b3JfaW5fcmVmLCBsYXN0X3VwZGF0ZV90aW1lc3RhbXBfbXMpAFRXaXRoZHJhd0xvY2tkb3duVW50aWwAABgEAATkIElmIHNvbWUsIGdsb2JhbCBsb2NrZG93biBpcyBhY3RpdmUgdW50aWwgdGhpcyB0aW1lc3RhbXAuADhFZ3Jlc3NBY2NvdW50cwABBAIAcAQABNAgQSBtYXAgb2YgYWNjb3VudHMgdGhhdCBhcmUgY29uc2lkZXJlZCBlZ3Jlc3Mgc2lua3MuAExJZ25vcmVXaXRoZHJhd0xpbWl0AQBEBAAEwCBXaGVuIHNldCB0byB0cnVlLCBlZ3Jlc3MgYWNjb3VudGluZyBpcyBza2lwcGVkLgBQR2xvYmFsQXNzZXRPdmVycmlkZXMAAQQCKN0CBAAErCBPdmVycmlkZXMgZm9yIGdsb2JhbCBhc3NldCBjYXRlZ29yaXphdGlvbi4APFhjbUVncmVzc0J1ZmZlcgAAfQIEAAjoIFBlci1YQ00tbWVzc2FnZSBidWZmZXIgb2YgKHdpdGhkcmF3bl9oZHgsIGRlcG9zaXRlZF9oZHgpLg0BIE5vbmUgbWVhbnMgYnVmZmVyIGlzIGluYWN0aXZlIChub3QgaW5zaWRlIFhDTSBtZXNzYWdlIHByb2Nlc3NpbmcpLgABzQIAAdEHAAyURGVmYXVsdE1heE5ldFRyYWRlVm9sdW1lTGltaXRQZXJCbG9ja6kCIIYGAAAQJwAACDEBIFRoZSBtYXhpbXVtIHBlcmNlbnRhZ2Ugb2YgYSBwb29sJ3MgbGlxdWlkaXR5IHRoYXQgY2FuIGJlIHRyYWRlZCBpbiBhIGJsb2NrLnUBIFJlcHJlc2VudGVkIGFzIGEgbm9uLXplcm8gZnJhY3Rpb24gKG5vbWluYXRvciwgZGVub21pbmF0b3IpIHdpdGggdGhlIG1heCB2YWx1ZSBiZWluZyAxMF8wMDAuAIxEZWZhdWx0TWF4QWRkTGlxdWlkaXR5TGltaXRQZXJCbG9ja9ECJAGnAAAAECcAAAwtASBUaGUgbWF4aW11bSBwZXJjZW50YWdlIG9mIGEgcG9vbCdzIGxpcXVpZGl0eSB0aGF0IGNhbiBiZSBhZGRlZCBpbiBhIGJsb2NrLp0BIFJlcHJlc2VudGVkIGFzIGFuIG9wdGlvbmFsIG5vbi16ZXJvIGZyYWN0aW9uIChub21pbmF0b3IsIGRlbm9taW5hdG9yKSB3aXRoIHRoZSBtYXggdmFsdWUgYmVpbmcgMTBfMDAwLrQgSWYgc2V0IHRvIE5vbmUsIHRoZSBsaW1pdHMgYXJlIG5vdCBlbmZvcmNlZC4AmERlZmF1bHRNYXhSZW1vdmVMaXF1aWRpdHlMaW1pdFBlckJsb2Nr0QIkAacAAAAQJwAADDUBIFRoZSBtYXhpbXVtIHBlcmNlbnRhZ2Ugb2YgYSBwb29sJ3MgbGlxdWlkaXR5IHRoYXQgY2FuIGJlIHJlbW92ZWQgaW4gYSBibG9jay6dASBSZXByZXNlbnRlZCBhcyBhbiBvcHRpb25hbCBub24temVybyBmcmFjdGlvbiAobm9taW5hdG9yLCBkZW5vbWluYXRvcikgd2l0aCB0aGUgbWF4IHZhbHVlIGJlaW5nIDEwXzAwMC60IElmIHNldCB0byBOb25lLCB0aGUgbGltaXRzIGFyZSBub3QgZW5mb3JjZWQuAAHFCwAIHEFzc2V0SWQoBIwgSWRlbnRpZmllciBmb3IgdGhlIGNsYXNzIG9mIGFzc2V0LhxCYWxhbmNlQAQ4IEJhbGFuY2UgdHlwZS4AQQAAGFJvdXRlcgEYUm91dGVyBBhSb3V0ZXMAAQQC9QLlAgQABHwgU3RvcmluZyByb3V0ZXMgZm9yIGFzc2V0IHBhaXJzAAHhAgAB1QcACDROYXRpdmVBc3NldElkKBAAAAAABEAgTmF0aXZlIEFzc2V0IElkADBPcmFjbGVQZXJpb2QhAwQCBIwgT3JhY2xlJ3MgcHJpY2UgYWdncmVnYXRpb24gcGVyaW9kLgAByQsACBxBc3NldElkKAQ4IEFzc2V0IGlkIHR5cGUcQmFsYW5jZUAENCBCYWxhbmNlIHR5cGUAQwAALER5bmFtaWNGZWVzASxEeW5hbWljRmVlcwggQXNzZXRGZWUAAQQFKM0LBAAISQEgU3RvcmVzIGxhc3QgY2FsY3VsYXRlZCBmZWUgb2YgYW4gYXNzZXQgYW5kIGJsb2NrIG51bWJlciBpbiB3aGljaCBpdCB3YXMgY2hhbmdlZC4uyCBTdG9yZWQgYXMgKEFzc2V0IGZlZSwgUHJvdG9jb2wgZmVlLCBCbG9jayBudW1iZXIpAFRBc3NldEZlZUNvbmZpZ3VyYXRpb24AAQQFKP0CBAAE2CBTdG9yZXMgcGVyLWFzc2V0IGZlZSBjb25maWd1cmF0aW9uIChGaXhlZCBvciBEeW5hbWljKQAB+QIAAdkHAAhIQXNzZXRGZWVQYXJhbWV0ZXJzAQOgxAkAAFDDAACrCr+CKA8AAAAAAAAAAAAAAADITmdtwRsAAAAAAAAAAAAAVFByb3RvY29sRmVlUGFyYW1ldGVycwEDoPQBAADECQAAVYVfQZQHAAAAAAAAAAAAAAAAZKeztuANAAAAAAAAAAAAAAHRCwAIDEZlZXUCBEggRmVlIFBlclRoaW5nIHR5cGUcQXNzZXRJZCgEOCBBc3NldCBpZCB0eXBlAEQAABxTdGFraW5nARxTdGFraW5nIBxTdGFraW5nAQDVC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWCBHbG9iYWwgc3Rha2luZyBzdGF0ZS4AJFBvc2l0aW9ucwABBAJA2QsEAARcIFVzZXIncyBwb3NpdGlvbiBzdGF0ZS4AOE5leHRQb3NpdGlvbklkAQBAQAAAAAAAAAAAAAAAAAAAAAAEYCBQb3NpdGlvbiBpZHMgc2VxdWVuY2VyLgAUVm90ZXMBAQQCQN0LBAAEYCBMaXN0IG9mIHBvc2l0aW9uIHZvdGVzLgA0Vm90ZXNSZXdhcmRlZAABCAIC9QvpCwQABJ0BIExpc3Qgb2YgcHJvY2Vzc2VkIHZvdGUuIFVzZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSB2b3RlIHNob3VsZCBiZSBsb2NrZWQgaW4gY2FzZSBvZiB2b3Rpbmcgbm90IGluIGZhdm9yLgA0UG9zaXRpb25Wb3RlcwEBBAJA3QsEAARpASBMZWdhY3kgc3RvcmFnZSEgLSBVc2VkIHRvIGhhbmRsZSBkZW1vY3JhY3kgdm90ZXMgdW50aWwgZGVtb2NyYWN5IHBhbGxldCBpcyBmdWxseSByZW1vdmVkLgA4UHJvY2Vzc2VkVm90ZXMAAQgCAvUL6QsEAASRASBMZWdhY3kgc3RvcmFnZSEgLSBVc2VkIHRvIGhhbmRsZSBkZW1vY3JhY3kgcHJvY2Vzc2VkIHZvdGVzIHVudGlsIGRlbW9jcmFjeSBwYWxsZXQgaXMgZnVsbHkgcmVtb3ZlZC4ARFNpeFNlY0Jsb2Nrc1NpbmNlAQAoEP////8EwCBCbG9jayBudW1iZXIgd2hlbiB3ZSBzd2l0Y2hlZCB0byA2IHNlYy4gYmxvY2tzLgABBQMAAd0HACwwUGVyaW9kTGVuZ3RoKBAgHAAABIQgU3Rha2luZyBwZXJpb2QgbGVuZ3RoIGluIGJsb2Nrcy4AIFBhbGxldElkrQkgc3Rha2luZyMELCBQYWxsZXQgaWQuADROYXRpdmVBc3NldElkKBAAAAAABEQgTmF0aXZlIEFzc2V0IElELgAgTWluU3Rha2VAQACAxqR+jQMAAAAAAAAAAAAEcCBNaW4gYW1vdW50IHVzZXIgbXVzdCBzdGFrZS4AQFRpbWVQb2ludHNXZWlnaHR1AhBAQg8ABOAgV2VpZ2h0IG9mIHRoZSB0aW1lIHBvaW50cyBpbiB0b3RhbCBwb2ludHMgY2FsY3VsYXRpb25zLgBIQWN0aW9uUG9pbnRzV2VpZ2h0KQMQAMLrCwToIFdlaWdodCBvZiB0aGUgYWN0aW9uIHBvaW50cyBpbiB0b3RhbCBwb2ludHMgY2FsY3VsYXRpb25zLgBMVGltZVBvaW50c1BlclBlcmlvZAgEAQTUIE51bWJlciBvZiB0aW1lIHBvaW50cyB1c2VycyByZWNlaXZlIGZvciBlYWNoIHBlcmlvZC4ASFVuY2xhaW1hYmxlUGVyaW9kc0BAAQAAAAAAAAAAAAAAAAAAAAh1ASBOdW1iZXIgb2YgcGVyaW9kcyB1c2VyIGNhbid0IGNsYWltIHJld2FyZHMgZm9yLiBVc2VyIGNhbiBleGl0IGJ1dCB3b24ndCByZWNlaXZlIGFueSByZXdhcmRzLnEBIElmIGhlIHN0YXkgbG9uZ2VyIHRoYW4gYFVuY2xhaW1hYmxlUGVyaW9kc2AgaGUgd2lsbCByZWNlaXZlIHJld2FyZHMgYWxzbyBmb3IgdGhlc2UgcGVyaW9kcy4ASEN1cnJlbnRTdGFrZVdlaWdodAgEAgSxASBXZWlnaHQgb2YgdGhlIGFjdHVhbCBzdGFrZSBpbiBzbGFzaCBwb2ludHMgY2FsY3VsYXRpb24uIEJpZ2dlciB0aGUgdmFsdWUgbG93ZXIgdGhlIGNhbGN1bGF0ZWQgc2xhc2ggcG9pbnRzLgAgTWF4Vm90ZXMoEBkAAAAEzCBNYXggYW1vdW50IG9mIHZvdGVzIHRoZSB1c2VyIGNhbiBoYXZlIGF0IGFueSB0aW1lLgA8TkZUQ29sbGVjdGlvbklkQECuCAAAAAAAAAAAAAAAAAAABEwgTkZUIGNvbGxlY3Rpb24gaWQuAAH5CwAMHEFzc2V0SWQoBIwgSWRlbnRpZmllciBmb3IgdGhlIGNsYXNzIG9mIGFzc2V0LjhQb3NpdGlvbkl0ZW1JZEAEaCBQb3NpdGlvbiBpZGVudGlmaWVyIHR5cGUuMENvbGxlY3Rpb25JZEAEUCBDb2xsZWN0aW9uIGlkIHR5cGUuAEUAAChTdGFibGVzd2FwAShTdGFibGVzd2FwGBRQb29scwABBAIoAQwEAAQ8IEV4aXN0aW5nIHBvb2xzACBQb29sUGVncwABBAIo7QcEAAQ8IFBvb2wgcGVnIGluZm8uAEBBc3NldFRyYWRhYmlsaXR5AQEIAgKpAhEDBA8EiCBUcmFkYWJpbGl0eSBzdGF0ZSBvZiBwb29sIGFzc2V0cy4ANFBvb2xTbmFwc2hvdHMAAQQCKAUMBAAEOQEgVGVtcG9yYXJ5IHBvb2wgc3RhdGUgc3RvcmFnZS4gVXNlZCB0byBzYXZlIGEgc3RhdGUgb2YgcG9vbCBpbiBhIHNpbmdsZSBibG9jay4AIEJsb2NrRmVlAAEEAih1AgQABLggVGVtcG9yYXJ5IHBvb2wncyB0cmFkZSBmZWUgZm9yIGN1cnJlbnQgYmxvY2suADRTaGFyZUlzc3VhbmNlAQEEAihAQAAAAAAAAAAAAAAAAAAAAAAMDQEgUGFsbGV0LXRyYWNrZWQgaXNzdWFuY2Ugb2YgcG9vbCBzaGFyZSB0b2tlbnMgKCJ2aXJ0dWFsIGlzc3VhbmNlIikuKQEgVXBkYXRlZCBvbmx5IHdoZW4gdGhpcyBwYWxsZXQgbWludHMvYnVybnMgc2hhcmVzLCBzbyBleHRlcm5hbCBtaW50cy9idXJuc7wgb2YgdGhlIHNoYXJlIHRva2VuIGNhbm5vdCBpbmZsdWVuY2UgcG9vbCBtYXRoLgABCQMAAeEHAAxATWluUG9vbExpcXVpZGl0eUBAQEIPAAAAAAAAAAAAAAAAAARcIE1pbmltdW0gcG9vbCBsaXF1aWRpdHkAPE1pblRyYWRpbmdMaW1pdEBA6AMAAAAAAAAAAAAAAAAAAARcIE1pbmltdW0gdHJhZGluZyBhbW91bnQASEFtcGxpZmljYXRpb25SYW5nZRUMEAIAECcEPQEgQW1wbGlmaWNhdGlvbiBpbmNsdXNpdmUgcmFuZ2UuIFBvb2wncyBhbXAgY2FuIGJlIHNlbGVjdGVkIGZyb20gdGhlIHJhbmdlIG9ubHkuAAEZDAAEHEFzc2V0SWQoBIwgSWRlbnRpZmllciBmb3IgdGhlIGNsYXNzIG9mIGFzc2V0LgBGAAAUQm9uZHMBFEJvbmRzCBxCb25kSWRzAAEEAh0MKAQACFQgUmVnaXN0ZXJlZCBib25kIGlkcy7AIE1hcHMgKHVuZGVybHlpbmcgYXNzZXQgSUQsIG1hdHVyaXR5KSAtPiBib25kIElEABRCb25kcwABBAIoHQwEAAhIIFJlZ2lzdGVyZWQgYm9uZHMuwCBNYXBzIGJvbmQgSUQgLT4gKHVuZGVybHlpbmcgYXNzZXQgSUQsIG1hdHVyaXR5KQABLQMAAfkHAAggUGFsbGV0SWStCSBwbHRib25kcwTsIFRoZSBwYWxsZXQgaWQsIHVzZWQgZm9yIGRlcml2aW5nIGl0cyBzb3ZlcmVpZ24gYWNjb3VudCBJRC4ANElzc3VlckFjY291bnQAgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABFkBIEFjY291bnQgdGhhdCBwYXlzIHRoZSB1bmRlcmx5aW5nIGFzc2V0IGFuZCByZWNlaXZlcyB0aGUgYm9uZHMgd2hlbiBgaXNzdWVgIGlzIGNhbGxlZC4AASEMAAQcQmFsYW5jZUAEOCBCYWxhbmNlIHR5cGUuAEcAADhPdGNTZXR0bGVtZW50cwABMQMAAf0HABQ4UHJvZml0UmVjZWl2ZXIAgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABIQgQWNjb3VudCB3aG8gcmVjZWl2ZXMgdGhlIHByb2ZpdC4ATE1pblByb2ZpdFBlcmNlbnRhZ2UpAxAQJwAABJwgTWluaW11bSBwcm9maXQgaW4gdGVybXMgb2YgcGVyY2VudGFnZS4AOFByaWNlUHJlY2lzaW9uVEAAAMFv8oYjAAAAAAAAAAAABNAgRGV0ZXJtaW5lcyB3aGVuIHdlIGNvbnNpZGVyIGFuIGFyYml0cmFnZSBhcyBjbG9zZWQuADxNaW5UcmFkaW5nTGltaXRAQOgDAAAAAAAAAAAAAAAAAAAEXCBNaW5pbXVtIHRyYWRpbmcgbGltaXQuADRNYXhJdGVyYXRpb25zKBAoAAAABG0BIE1heGltdW0gbnVtYmVyIG9mIGl0ZXJhdGlvbnMgdXNlZCBpbiB0aGUgYmluYXJ5IHNlYXJjaCBhbGdvcml0aG0gdG8gZmluZCB0aGUgdHJhZGUgYW1vdW50LgABJQwAAABIAAAMTEJQAQxMQlAIIFBvb2xEYXRhAAEEAgAFCAQABEwgRGV0YWlscyBvZiBhIHBvb2wuAFRGZWVDb2xsZWN0b3JXaXRoQXNzZXQBAQgCAvULRAQACMggU3RvcmFnZSB1c2VkIGZvciB0cmFja2luZyBleGlzdGluZyBmZWUgY29sbGVjdG9yc8wgTm90IG1vcmUgdGhhbiBvbmUgZmVlIGNvbGxlY3RvciBwZXIgYXNzZXQgcG9zc2libGUAATUDAAEBCAAUPE1pblRyYWRpbmdMaW1pdEBA6AMAAAAAAAAAAAAAAAAAAAQhASBNaW5pbXVtIHRyYWRpbmcgbGltaXQsIHNvbGUgcHVycG9zZSBvZiB0aGlzIGlzIHRvIGtlZXAgdGhlIG1hdGggd29ya2luZwBATWluUG9vbExpcXVpZGl0eUBAQEIPAAAAAAAAAAAAAAAAAAQlASBNaW5pbXVtIHBvb2wgbGlxdWlkaXR5LCBzb2xlIHB1cnBvc2Ugb2YgdGhpcyBpcyB0byBrZWVwIHRoZSBtYXRoIHdvcmtpbmcAKE1heEluUmF0aW9AQAMAAAAAAAAAAAAAAAAAAAAEzCBNYXggZnJhY3Rpb24gb2YgcG9vbCB0byBzZWxsIGluIHNpbmdsZSB0cmFuc2FjdGlvbgAsTWF4T3V0UmF0aW9AQAMAAAAAAAAAAAAAAAAAAAAEyCBNYXggZnJhY3Rpb24gb2YgcG9vbCB0byBidXkgaW4gc2luZ2xlIHRyYW5zYWN0aW9uACRyZXBheV9mZWWpAiACAAAACgAAAAAAASkMAAAASQAADFhZSwEMWFlLDChTaGFyZVRva2VuAQEEAgAoEAAAAAAEoCBBc3NldCBpZCBzdG9yYWdlIGZvciBzaGFyZWQgcG9vbCB0b2tlbnMAOFRvdGFsTGlxdWlkaXR5AQEEAgBAQAAAAAAAAAAAAAAAAAAAAAAEbCBUb3RhbCBsaXF1aWRpdHkgaW4gYSBwb29sLgAoUG9vbEFzc2V0cwABBAIAqQIEAARYIEFzc2V0IHBhaXIgaW4gYSBwb29sLgABQQMAAQkIABw0TmF0aXZlQXNzZXRJZCgQAAAAAARAIE5hdGl2ZSBBc3NldCBJZAA4R2V0RXhjaGFuZ2VGZWWpAiADAAAA6AMAAAREIFRyYWRpbmcgZmVlIHJhdGUAPE1pblRyYWRpbmdMaW1pdEBA6AMAAAAAAAAAAAAAAAAAAARYIE1pbmltdW0gdHJhZGluZyBsaW1pdABATWluUG9vbExpcXVpZGl0eUBAQEIPAAAAAAAAAAAAAAAAAARcIE1pbmltdW0gcG9vbCBsaXF1aWRpdHkAKE1heEluUmF0aW9AQAMAAAAAAAAAAAAAAAAAAAAEzCBNYXggZnJhY3Rpb24gb2YgcG9vbCB0byBzZWxsIGluIHNpbmdsZSB0cmFuc2FjdGlvbgAsTWF4T3V0UmF0aW9AQAMAAAAAAAAAAAAAAAAAAAAEyCBNYXggZnJhY3Rpb24gb2YgcG9vbCB0byBidXkgaW4gc2luZ2xlIHRyYW5zYWN0aW9uADBPcmFjbGVTb3VyY2UhASBoeWRyYXh5awSoIE9yYWNsZSBzb3VyY2UgaWRlbnRpZmllciBmb3IgdGhpcyBwYWxsZXQuAAEtDAAAAEoAACRSZWZlcnJhbHMBJFJlZmVycmFscyg0UmVmZXJyYWxDb2RlcwABBAJJAwAEAAg8IFJlZmVycmFsIGNvZGVzkCBNYXBzIGEgcmVmZXJyYWwgY29kZSB0byBhbiBhY2NvdW50LgBAUmVmZXJyYWxBY2NvdW50cwABBAIASQMEAAhIIFJlZmVycmFsIGFjY291bnRzkCBNYXBzIGFuIGFjY291bnQgdG8gYSByZWZlcnJhbCBjb2RlLgA4TGlua2VkQWNjb3VudHMAAQQCAAAEAAhEIExpbmtlZCBhY2NvdW50cy6cIE1hcHMgYW4gYWNjb3VudCB0byBhIHJlZmVycmFsIGFjY291bnQuADhSZWZlcnJlclNoYXJlcwEBBAIAQEAAAAAAAAAAAAAAAAAAAAAABHQgU2hhcmVzIG9mIGEgcmVmZXJyYWwgYWNjb3VudAAwVHJhZGVyU2hhcmVzAQEEAgBAQAAAAAAAAAAAAAAAAAAAAAAEbCBTaGFyZXMgb2YgYSB0cmFkZXIgYWNjb3VudAAsVG90YWxTaGFyZXMBAEBAAAAAAAAAAAAAAAAAAAAAAARYIFRvdGFsIHNoYXJlIGlzc3VhbmNlLgAgUmVmZXJyZXIAAQQCADEMBAAM3CBSZWZlcmVyIGxldmVsIGFuZCB0b3RhbCBhY2N1bXVsYXRlZCByZXdhcmRzIG92ZXIgdGltZS7VASBNYXBzIHJlZmVycmVyIGFjY291bnQgdG8gKExldmVsLCBCYWxhbmNlKS4gTGV2ZWwgaW5kaWNhdGVzIGN1cnJlbnQgcmV3YXJkcyBhbmQgQmFsYW5jZSBpcyB1c2VkIHRvIHVubG9jayBuZXh0IGxldmVsLrkBIERldiBub3RlOiB3ZSB1c2UgT3B0aW9uUXVlcnkgaGVyZSBiZWNhdXNlIHRoaXMgaGVscHMgdG8gZWFzaWx5IGRldGVybWluZSB0aGF0IGFuIGFjY291bnQgaWYgcmVmZXJyZXIgYWNjb3VudC4AMEFzc2V0UmV3YXJkcwABCAICNQxRAwQACLAgQXNzZXQgZmVlIGRpc3RyaWJ1dGlvbiByZXdhcmRzIGluZm9ybWF0aW9uLtAgTWFwcyAoYXNzZXRfaWQsIGxldmVsKSB0byBhc3NldCByZXdhcmQgcGVyY2VudGFnZXMuAEhQZW5kaW5nQ29udmVyc2lvbnMAAQQCKHAEAAgBASBJbmZvcm1hdGlvbiBhYm91dCBhc3NldHMgdGhhdCBhcmUgY3VycmVudGx5IGluIHRoZSByZXdhcmRzIHBvdC4NASBVc2VkIHRvIGVhc2lseSBkZXRlcm1pbmUgbGlzdCBvZiBhc3NldHMgdGhhdCBuZWVkIHRvIGJlIGNvbnZlcnRlZC4AcENvdW50ZXJGb3JQZW5kaW5nQ29udmVyc2lvbnMBACgQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcAABRQMAAQ0IABgsUmV3YXJkQXNzZXQoEAAAAAAE2CBJRCBvZiBhbiBhc3NldCB0aGF0IGlzIHVzZWQgdG8gZGlzdHJpYnV0ZSByZXdhcmRzIGluLgAgUGFsbGV0SWStCSByZWZlcnJhbARFASBQYWxsZXQgaWQuIERldGVybWluZXMgYWNjb3VudCB3aGljaCBob2xkcyBhY2N1bXVsYXRlZCByZXdhcmRzIGluIHZhcmlvdXMgYXNzZXRzLgA8UmVnaXN0cmF0aW9uRmVlOQzQAAAAAADgI2foyQAAAAAAAAAAAABtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAAhoIFJlZ2lzdHJhdGlvbiBmZWUgZGV0YWlscy4lASAoSUQgb2YgYW4gYXNzZXQgd2hpY2ggZmVlIGlzIHRvIGJlIHBhaWQgaW4sIEFtb3VudCwgQmVuZWZpY2lhcnkgYWNjb3VudCkAKENvZGVMZW5ndGgoEAoAAAAEeCBNYXhpbXVtIHJlZmVycmFsIGNvZGUgbGVuZ3RoLgA0TWluQ29kZUxlbmd0aCgQBAAAAAR4IE1pbmltdW0gcmVmZXJyYWwgY29kZSBsZW5ndGguAEBTZWVkTmF0aXZlQW1vdW50QEAAoHJOGAkAAAAAAAAAAAAABLQgU2VlZCBhbW91bnQgdGhhdCB3YXMgc2VudCB0byB0aGUgcmV3YXJkIHBvdC4AAT0MAAAASwAALExpcXVpZGF0aW9uASxMaXF1aWRhdGlvbgREQm9ycm93aW5nQ29udHJhY3QBAFhQGwLgUWg7XPrFkpwl6ErbJuz4ezgEiCBCb3Jyb3dpbmcgbWFya2V0IGNvbnRyYWN0IGFkZHJlc3MAAVUDAAEVCAAMIEdhc0xpbWl0GCAACT0AAAAAAATkIFRoZSBnYXMgbGltaXQgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhlIGxpcXVpZGF0aW9uIGNhbGwuADhQcm9maXRSZWNlaXZlcgCARVRIAOUlZ/8GrNbL57qU3Hd6MSbhgLbZAAAAAAAAAAAEhCBBY2NvdW50IHdobyByZWNlaXZlcyB0aGUgcHJvZml0LgAgSG9sbGFySWQoEN4AAAAETCBBc3NldCBJRCBvZiBIb2xsYXIAAUEMAAAATAAADEhTTQEMSFNNDCxDb2xsYXRlcmFscwABBAIoRQwEABToIExpc3Qgb2YgYXBwcm92ZWQgYXNzZXRzIHRoYXQgSG9sbGFyIGNhbiBiZSBwdXJjaGFzZWQgd2l0aAAtASBUaGlzIHN0b3JhZ2UgbWFwcyBhc3NldCBJRHMgdG8gdGhlaXIgY29sbGF0ZXJhbCBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uLikBIE9ubHkgYXNzZXRzIGluIHRoaXMgbWFwIGNhbiBiZSB1c2VkIHRvIG1pbnQgb3IgcmVkZWVtIEhvbGxhciB0aHJvdWdoIEhTTS5RASBFYWNoIGNvbGxhdGVyYWwgaGFzIHNwZWNpZmljIHBhcmFtZXRlcnMgY29udHJvbGxpbmcgaXRzIHVzYWdlIGluIHRoZSBIU00gbWVjaGFuaXNtLgBQSG9sbGFyQW1vdW50UmVjZWl2ZWQBAQQCKEBAAAAAAAAAAAAAAAAAAAAAABTgIEFtb3VudCBvZiBIb2xsYXIgYm91Z2h0IHdpdGggYW4gYXNzZXQgaW4gYSBzaW5nbGUgYmxvY2sAUQEgVGhpcyBzdG9yYWdlIHRyYWNrcyBob3cgbXVjaCBIb2xsYXIgaGFzIGJlZW4gYm91Z2h0IGJhY2sgYnkgSFNNIGZvciBlYWNoIGNvbGxhdGVyYWx1ASBhc3NldCB3aXRoaW4gdGhlIGN1cnJlbnQgYmxvY2suIFRoaXMgaXMgdXNlZCB0byBlbmZvcmNlIHJhdGUgbGltaXRpbmcgb24gSG9sbGFyIHJlZGVtcHRpb25zLgkBIFZhbHVlcyBhcmUgcmVzZXQgdG8gemVybyBhdCB0aGUgZW5kIG9mIGVhY2ggYmxvY2sgaW4gb25fZmluYWxpemUuACxGbGFzaE1pbnRlcgAAWAQABJAgQWRkcmVzcyBvZiB0aGUgZmxhc2ggbG9hbiByZWNlaXZlci4AAV0DAAEZCAAUIEhvbGxhcklkKBDeAAAABEwgQXNzZXQgSUQgb2YgSG9sbGFyACBQYWxsZXRJZK0JIHB5L2hzbW9kBIwgUGFsbGV0IElEIHRvIGRldGVybWluZSBIU00gYWNjb3VudABITWluQXJiaXRyYWdlQW1vdW50QEAAAGSns7bgDQAAAAAAAAAAAABERmxhc2hMb2FuUmVjZWl2ZXJYUAAAAAAAAAAAAAAAAAAAAAAAAAkKAAAgR2FzTGltaXQYIIAaBgAAAAAABLQgVGhlIGdhcyBsaW1pdCBmb3IgdGhlIGV4ZWN1dGlvbiBvZiBFVk0gY2FsbHMAAUkMAAAAUgAAKFBhcmFtZXRlcnMBKFBhcmFtZXRlcnMMJElzVGVzdG5ldAEARAQAAABkUmVsYXlQYXJlbnRPZmZzZXRPdmVycmlkZQEARAQAAABEVHdvU2VjQmxvY2tzU2luY2UBACgQ/////wQ1ASBCbG9jayBudW1iZXIgYXQgd2hpY2ggdGhlIHJ1bnRpbWUgc3dpdGNoZWQgZnJvbSA2LXNlY29uZCB0byAyLXNlY29uZCBibG9ja3MuAAAAAAAAAFMAABhTaWduZXQBGFNpZ25ldAQwU2lnbmV0Q29uZmlnAABNDAQADLAgR2xvYmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzaWduZXQgcGFsbGV0LgAZASBJZiBgTm9uZWAsIHRoZSBwYWxsZXQgaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWQgeWV0IGFuZCBjYW5ub3QgYmUgdXNlZC4AAXkDAAEdCAAEIFBhbGxldElkrQkgcHkvc2lnbnQEwCBUaGUgcGFsbGV0J3MgdW5pcXVlIElEIGZvciBkZXJpdmluZyBpdHMgYWNjb3VudAABUQwAAABUAAAwRXRoRGlzcGVuc2VyATBFdGhEaXNwZW5zZXIIPERpc3BlbnNlckNvbmZpZwAAVQwEAAygIEdsb2JhbCBjb25maWd1cmF0aW9uIGZvciB0aGUgZGlzcGVuc2VyLgAtASBJZiBgTm9uZWAsIHRoZSBwYWxsZXQgaGFzIG5vdCBiZWVuIGNvbmZpZ3VyZWQgYW5kIGNhbm5vdCBwcm9jZXNzIHJlcXVlc3RzLgA4VXNlZFJlcXVlc3RJZHMAAQQCBHAEAAykIFJlcXVlc3QgSURzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gdXNlZC4AJQEgVGhpcyBwcmV2ZW50cyBhY2NpZGVudGFsIG9yIG1hbGljaW91cyByZS1zdWJtaXNzaW9uIG9mIHRoZSBzYW1lIHJlcXVlc3QuAAG5AwABIQgAECBGZWVBc3NldCgQAAAAAAjAIEFzc2V0IElEIHVzZWQgdG8gY2hhcmdlIHRoZSBmYXVjZXQgcmVxdWVzdCBmZWUuKCAoSERYIC0gMCkALEZhdWNldEFzc2V0KBAUAAAACPggQXNzZXQgSUQgZGVkdWN0ZWQgdG8gcmVjZWl2ZSBmYXVjZXQgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLjAgKFdFVEggLSAyMCkAOEZlZURlc3RpbmF0aW9uAIBtb2RscHkvdHJzcnkAAAAAAAAAAAAAAAAAAAAAAAAAAAQVASBBY2NvdW50IHRoYXQgcmVjZWl2ZXMgdGhlIGNvbGxlY3RlZCBkaXNwZW5zZXIgZmVlcyBhbmQgZmF1Y2V0IGFzc2V0LgAgUGFsbGV0SWStCSBweS9mdWNldATkIFBhbGxldCBJRCB1c2VkIHRvIGRlcml2ZSB0aGUgcGFsbGV0J3Mgc292ZXJlaWduIGFjY291bnQuAAFZDAAAAFUAABxHaWdhSGR4ARxHaWdhSGR4EBhTdGFrZXMAAQQCAF0MBAAIEQEgUGVyLWFjY291bnQgc3Rha2UgcmVjb3JkLiBBYnNlbnQgaWYgdGhlIGFjY291bnQgaGFzIG5ldmVyIHN0YWtlZCBvclAgaGFzIGZ1bGx5IHVuc3Rha2VkLgAsVG90YWxMb2NrZWQBAEBAAAAAAAAAAAAAAAAAAAAAAARwIFN1bSBvZiBhbGwgYFN0YWtlc1thXS5oZHhgLgBMR2lnYUhkeFBvb2xDb250cmFjdAAAWAQADOQgQWF2ZSBWMyBQb29sIGNvbnRyYWN0IGFkZHJlc3MuIE11c3QgYmUgc2V0IGV4cGxpY2l0bHkgYnkVASBgQXV0aG9yaXR5T3JpZ2luYCBiZWZvcmUgYW55IHN0YWtlL3Vuc3Rha2Ug4oCUIHRoZSBwYWxsZXQgcmVmdXNlcyB0b5ggc2lsZW50bHkgZGVmYXVsdCB0byB0aGUgemVybyBhZGRyZXNzLgA8UGVuZGluZ1Vuc3Rha2VzAAEIAgX1C2EMBAAMEQEgUGVuZGluZyB1bnN0YWtlIHBvc2l0aW9ucywga2V5ZWQgYnkgYChhY2NvdW50LCBvcmlnaW5hdGluZ19ibG9jaylgLgUBIFNhbWUtYmxvY2sgdW5zdGFrZXMgYnkgdGhlIHNhbWUgYWNjb3VudCBjb21wb3VuZCBpbnRvIG9uZSBlbnRyeS7sIFBlci1hY2NvdW50IGNvdW50IGJvdW5kZWQgYnkgYENvbmZpZzo6TWF4UGVuZGluZ1Vuc3Rha2VzYC4AAcEDAAElCAAYMFN0SGR4QXNzZXRJZCgQngIAAAAAIFBhbGxldElkrQkgZ2lnYWhkeCEI/CBQYWxsZXQgYWNjb3VudCBpZCB1c2VkIGFzIHRoZSBnaWdhcG90ICh5aWVsZCkgYWNjb3VudC4gRGVyaXZlZKQgdmlhIGBQYWxsZXRJZDo6aW50b19hY2NvdW50X3RydW5jYXRpbmdgLgAYTG9ja0lkIQEgZ2hkeGxvY2sI8CBMb2NrSWRlbnRpZmllciB1bmRlciB3aGljaCB1c2VyIEhEWCAoYWN0aXZlIHN0YWtlICsgcGVuZGluZ1AgdW5zdGFrZSkgaXMgbG9ja2VkLgAgTWluU3Rha2VAQAAQpdToAAAAAAAAAAAAAAAE4CBNaW5pbXVtIEhEWCB0aGF0IGNhbiBiZSBzdGFrZWQgaW4gb25lIGNhbGwgKGFudGktZHVzdCkuADhDb29sZG93blBlcmlvZCgQAHUSAAjsIENvb2xkb3duIHBlcmlvZCAoaW4gYmxvY2tzKSBiZXR3ZWVuIGBnaWdhX3Vuc3Rha2VgIGFuZCB0aGVgIG1hdGNoaW5nIGB1bmxvY2tgIGNhbGwuAEhNYXhQZW5kaW5nVW5zdGFrZXMoEAoAAAAEEQEgTWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCBwZW5kaW5nLXVuc3Rha2UgcG9zaXRpb25zIHBlciBhY2NvdW50LgABZQwAAABWAAA4R2lnYUhkeFJld2FyZHMBOEdpZ2FIZHhSZXdhcmRzGGxSZWZlcmVuZGFUb3RhbFdlaWdodGVkVm90ZXMAAQQCKGkMBAAIGQEgTGl2ZSB0YWxseSBtYWludGFpbmVkIGR1cmluZyB0aGUgdm90aW5nIHBlcmlvZC4gRGVsZXRlZCBhdCBhbGxvY2F0aW9uyCB0aW1lOyB0aGUgdmFsdWVzIG1vdmUgaW50byBgUmVmZXJlbmRhUmV3YXJkUG9vbGAuAEBSZWZlcmVuZHVtVHJhY2tzAAEEAiiABAAIBQEgVHJhY2sgaWQgY2FjaGVkIGF0IHZvdGUgdGltZS4gRGVsZXRlZCBhdCBhbGxvY2F0aW9uOyBsaXZlcyBvbiBpbpQgYFJlZmVyZW5kYVJld2FyZFBvb2xbcmVmXS50cmFja19pZGAuAExSZWZlcmVuZGFSZXdhcmRQb29sAAEEAihtDAQACBEBIFBlci1yZWZlcmVuZHVtIGZyb3plbiBzbmFwc2hvdC4gUHJlc2VuY2UgZG91YmxlcyBhcyAiYWxsb2NhdGlvbiBoYXPYIHJ1bi4iIERlbGV0ZWQgd2hlbiB0aGUgbGFzdCB2b3RlciBjbGFpbXMgdGhlaXIgc2hhcmUuADxVc2VyVm90ZVJlY29yZHMAAQgCAvULcQwEAAgRASBQZXIgKHVzZXIsIHJlZmVyZW5kdW0pIHNuYXBzaG90IG9mIHRoZSBlbGlnaWJsZSB2b3RlIHdlaWdodCBhdCBjYXN04CB0aW1lLiBVcGRhdGVkIG9uIHZvdGUgZWRpdHM7IHRha2VuIG9uIGBvbl9yZW1vdmVfdm90ZWAuADRVc2VyVm90ZUNvdW50AQEEAgAoEAAAAAAQIQEgTnVtYmVyIG9mIGBVc2VyVm90ZVJlY29yZHNgIGVudHJpZXMgaGVsZCBieSBgd2hvYCwgbWFpbnRhaW5lZCBvbiBpbnNlcnQZASBhbmQgcmVtb3ZhbC4gTGV0cyB0aGUgZ2lnYWhkeCBsaXF1aWRhdGlvbiBjaGFyZ2UgZXhhY3Qgd2VpZ2h0IGZvciB0aGUdASB2b3RlLWNsZWFyYW5jZSBsb29wIGZyb20gdGhlIGJvcnJvd2VyJ3MgY291bnQsIHdpdGhvdXQgYW4gTyhuKSBzY2FuIGF0ZCB3ZWlnaHQtY2FsY3VsYXRpb24gdGltZS4AOFBlbmRpbmdSZXdhcmRzAQEEAgBAQAAAAAAAAAAAAAAAAAAAAAAEBQEgUnVubmluZyBzdW0gb2YgSERYIG93ZWQgdG8gYHdob2AgYWNyb3NzIGFsbCBjb21wbGV0ZWQgcmVmZXJlbmRhLgABxQMAASkIAAREUmV3YXJkUG90UGFsbGV0SWStCSBnaWdhcndkIQz0IFBhbGxldElkIG9mIHRoZSBleHRlcm5hbGx5LWZ1bmRlZCBhY2N1bXVsYXRvciBwb3QuIFNvdXJjZSBvZvggZXZlcnkgcGVyLXJlZmVyZW5kdW0gYWxsb2NhdGlvbi4gVGhlIGFsbG9jYXRlZC1yZXdhcmRzIHBvdCBpc9wgZGVyaXZlZCBkZXRlcm1pbmlzdGljYWxseSBhcyBhIHN1Yi1hY2NvdW50IG9mIHRoaXMgaWQuAAF1DAAEHFRyYWNrSWSAAABXAAAYVG9rZW5zARhUb2tlbnMQNFRvdGFsSXNzdWFuY2UBAQQFKEBAAAAAAAAAAAAAAAAAAAAAAASQIFRoZSB0b3RhbCBpc3N1YW5jZSBvZiBhIHRva2VuIHR5cGUuABRMb2NrcwEBCAIF9Qt5DAQACNggQW55IGxpcXVpZGl0eSBsb2NrcyBvZiBhIHRva2VuIHR5cGUgdW5kZXIgYW4gYWNjb3VudC4lASBOT1RFOiBTaG91bGQgb25seSBiZSBhY2Nlc3NlZCB3aGVuIHNldHRpbmcsIGNoYW5naW5nIGFuZCBmcmVlaW5nIGEgbG9jay4AIEFjY291bnRzAQEIAgX1C4UMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABi4IFRoZSBiYWxhbmNlIG9mIGEgdG9rZW4gdHlwZSB1bmRlciBhbiBhY2NvdW50LgD8IE5PVEU6IElmIHRoZSB0b3RhbCBpcyBldmVyIHplcm8sIGRlY3JlYXNlIGFjY291bnQgcmVmIGFjY291bnQuABkBIE5PVEU6IFRoaXMgaXMgb25seSB1c2VkIGluIHRoZSBjYXNlIHRoYXQgdGhpcyBtb2R1bGUgaXMgdXNlZCB0byBzdG9yZSggYmFsYW5jZXMuACBSZXNlcnZlcwEBCAIF9QuJDAQABKQgTmFtZWQgcmVzZXJ2ZXMgb24gc29tZSBhY2NvdW50IGJhbGFuY2VzLgAByQMAAS0IAAggTWF4TG9ja3MoEDIAAAAAACxNYXhSZXNlcnZlcygQMgAAAAQNASBUaGUgbWF4aW11bSBudW1iZXIgb2YgbmFtZWQgcmVzZXJ2ZXMgdGhhdCBjYW4gZXhpc3Qgb24gYW4gYWNjb3VudC4AAZUMAAwYQW1vdW500QME3CBUaGUgYW1vdW50IHR5cGUsIHNob3VsZCBiZSBzaWduZWQgdmVyc2lvbiBvZiBgQmFsYW5jZWAoQ3VycmVuY3lJZCgEVCBUaGUgY3VycmVuY3kgSUQgdHlwZURSZXNlcnZlSWRlbnRpZmllciEBBIAgVGhlIGlkIHR5cGUgZm9yIG5hbWVkIHJlc2VydmVzLgBNAAAoQ3VycmVuY2llcwABzQMAATEIAAg4UmVzZXJ2ZUFjY291bnQAgG1vZGxjdXJyZXNlcgAAAAAAAAAAAAAAAAAAAAAAAAAAAABMR2V0TmF0aXZlQ3VycmVuY3lJZCgQAAAAAAAAAZkMAAAATwAAHFZlc3RpbmcBHFZlc3RpbmcEQFZlc3RpbmdTY2hlZHVsZXMBAQQCAJ0MBAAMhCBWZXN0aW5nIHNjaGVkdWxlcyBvZiBhbiBhY2NvdW50LgDgIFZlc3RpbmdTY2hlZHVsZXM6IG1hcCBBY2NvdW50SWQgPT4gVmVjPFZlc3RpbmdTY2hlZHVsZT4AAdUDAAE1CAAERE1pblZlc3RlZFRyYW5zZmVyQEBkAAAAAAAAAAAAAAAAAAAABOggVGhlIG1pbmltdW0gYW1vdW50IHRyYW5zZmVycmVkIHRvIGNhbGwgYHZlc3RlZF90cmFuc2ZlcmAuAAGhDAAAAFEAAAxFVk0BDEVWTQwwQWNjb3VudENvZGVzAQEEAlgUBAAAAFBBY2NvdW50Q29kZXNNZXRhZGF0YQABBAJYpQwEAAAAPEFjY291bnRTdG9yYWdlcwEBCAICqQwsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4QMAATkIAAABrQwAAABaAAAoRVZNQ2hhaW5JZAEoRVZNQ2hhaW5JZAQcQ2hhaW5JZAEAGCAAAAAAAAAAAARIIFRoZSBFVk0gY2hhaW4gSUQuAAAAAAAAAFsAACBFdGhlcmV1bQEgRXRoZXJldW0YHFBlbmRpbmcAAQQGKLEMBAAENQEgTWFwcGluZyBmcm9tIHRyYW5zYWN0aW9uIGluZGV4IHRvIHRyYW5zYWN0aW9uIGluIHRoZSBjdXJyZW50IGJ1aWxkaW5nIGJsb2NrLgBEQ291bnRlckZvclBlbmRpbmcBACgQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcAAwQ3VycmVudEJsb2NrAADRDAQABHAgVGhlIGN1cnJlbnQgRXRoZXJldW0gYmxvY2suADxDdXJyZW50UmVjZWlwdHMAAOUMBAAEfCBUaGUgY3VycmVudCBFdGhlcmV1bSByZWNlaXB0cy4AaEN1cnJlbnRUcmFuc2FjdGlvblN0YXR1c2VzAADpDAQABIggVGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gc3RhdHVzZXMuACRCbG9ja0hhc2gBAQQFYCyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH9AwABQQgAAAHtDAAAAFwAACxFVk1BY2NvdW50cwEsRVZNQWNjb3VudHMYQEFjY291bnRFeHRlbnNpb24AAQQCWDEBBAAEBQEgTWFwcyBhbiBFVk0gYWRkcmVzcyB0byB0aGUgbGFzdCAxMiBieXRlcyBvZiBhIHN1YnN0cmF0ZSBhY2NvdW50LgBAQ29udHJhY3REZXBsb3llcgABBAJYcAQABAkBIFdoaXRlbGlzdGVkIGFkZHJlc3NlcyB0aGF0IGFyZSBhbGxvd2VkIHRvIGRlcGxveSBzbWFydCBjb250cmFjdHMuAEBBcHByb3ZlZENvbnRyYWN0AAEEAlhwBAAEGQEgV2hpdGVsaXN0ZWQgY29udHJhY3RzIHRoYXQgYXJlIGFsbG93ZWQgdG8gbWFuYWdlIGJhbGFuY2VzIGFuZCB0b2tlbnMuAERNYXJrZWRFdm1BY2NvdW50cwABBAIAcAQAFNwgVHJhY2tzIGFjY291bnRzIHRoYXQgaGF2ZSBiZWVuIG1hcmtlZCBhcyBFVk0gYWNjb3VudHMuHQEgQW4gYWNjb3VudCBpcyBtYXJrZWQgYXMgRVZNIGFjY291bnQgcmlnaHQgYmVmb3JlIHdlIGNoYXJnZSB0aGUgZXZtIGZlZQEBIFRoaXMgaXMgdXNlZCB0byBhdm9pZCByZXNldHRpbmcgZnJhbWUgc3lzdGVtIG5vbmNlIG9mIGFjY291bnRzLkUBIFdoZW4gd2UgbWFyayBhY2NvdW50IGFzIEVWTSBhY2NvdW50LCB3ZSBpbmNyZWFzZSBpdHMgc3VmZmljaWVudHMgY291bnRlciBieSBvbmUuXQEgV2UgbmV2ZXIgZGVjcmVhc2UgdGhpcyBzdWZmaWNpZW50cywgc28gc2lkZSBlZmZlY3QgaXMgdGhhdCBhY2NvdW50IGNhbiBuZXZlciBiZSByZWFwZWQAKEFsbG93YW5jZXMBAQwCAgLxDEBAAAAAAAAAAAAAAAAAAAAAAAgFASBFUkMyMC1zdHlsZSBhbGxvd2FuY2VzIHN0b3JhZ2UgZm9yIHRoZSBNdWx0aUN1cnJlbmN5IHByZWNvbXBpbGU6oCAoYXNzZXRfaWQsIG93bmVyLCBzcGVuZGVyKSAtPiBhbGxvd2FuY2UAKE50dE1pbnRlcnMAAQQCKFgEAAhJASBOVFQgc3Bva2UgbWFuYWdlciBhbGxvd2VkIHRvIG1pbnQvYnVybiBhbiBhc3NldCB2aWEgdGhlIE11bHRpQ3VycmVuY3kgcHJlY29tcGlsZS5oIGFzc2V0X2lkIC0+IG1pbnRlciAoSDE2MCkAAS0EAAFlCAAENEZlZU11bHRpcGxpZXIoEDIAAAAEtCBGZWUgbXVsdGlwbGllciBmb3IgdGhlIGJpbmRpbmcgb2YgYWRkcmVzc2VzLgAB9QwABBxBc3NldElkKAQ8IEFzc2V0IGlkIHR5cGUuAF0AADREeW5hbWljRXZtRmVlATREeW5hbWljRXZtRmVlBDRCYXNlRmVlUGVyR2FzAQBggMDh5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEQgQmFzZSBmZWUgcGVyIGdhcwAAAAQsV2V0aEFzc2V0SWQoEBQAAAAEOCBXRVRIIEFzc2V0IElkAAAEHEFzc2V0SWQoBIwgSWRlbnRpZmllciBmb3IgdGhlIGNsYXNzIG9mIGFzc2V0LgBeAABIWFlLTGlxdWlkaXR5TWluaW5nAAExBAABaQgADDxORlRDb2xsZWN0aW9uSWRAQA0VAAAAAAAAAAAAAAAAAAAE3CBORlQgY29sbGVjdGlvbiBpZCBmb3IgbGlxdWlkaXR5IG1pbmluZydzIGRlcG9zaXQgbmZ0cy4AME9yYWNsZVNvdXJjZSEBIGh5ZHJheHlrBKggT3JhY2xlIHNvdXJjZSBpZGVudGlmaWVyIGZvciB0aGlzIHBhbGxldC4AME9yYWNsZVBlcmlvZCEDBAIEnCBPcmFjbGUncyBsaXF1aWRpdHkgYWdncmVnYXRpb24gcGVyaW9kLgAB+QwAAABfAAA4WFlLV2FyZWhvdXNlTE0BOFhZS1dhcmVob3VzZUxNGDRGYXJtU2VxdWVuY2VyAQAoEAAAAAAEvCBJZCBzZXF1ZW5jZXIgZm9yIGBHbG9iYWxGYXJtYCBhbmQgYFlpZWxkRmFybWAuAEBEZXBvc2l0U2VxdWVuY2VyAQBAQAAAAAAAAAAAAAAAAAAAAAAAAChHbG9iYWxGYXJtAAEEAij9DAQAAAAkWWllbGRGYXJtAAEMAgICAQ0FDQQABFAgWWllbGQgZmFybSBkZXRhaWxzLgAcRGVwb3NpdAABBAVACQ0EAAREIERlcG9zaXQgZGV0YWlscy4APEFjdGl2ZVlpZWxkRmFybQABCAIC9QsoBAAE+CBBY3RpdmUoZmFybXMgYWJsZSB0byByZWNlaXZlIExQIHNoYXJlcyBkZXBvc2l0cykgeWllbGQgZmFybXMuAAFBBAABbQgAGCBQYWxsZXRJZK0JIHh5a0xNcElEBCwgUGFsbGV0IGlkLgBEVHJlYXN1cnlBY2NvdW50SWQAgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABOggVHJlYXN1cnkgYWNjb3VudCB0byByZWNlaXZlIGNsYWltZWQgcmV3YXJkcyBsb3dlciB0aGFuIEVEAExNaW5Ub3RhbEZhcm1SZXdhcmRzQEAAEKXU6AAAAAAAAAAAAAAABDkBIE1pbmltdW0gdG90YWwgcmV3YXJkcyB0byBkaXN0cmlidXRlIGZyb20gZ2xvYmFsIGZhcm0gZHVyaW5nIGxpcXVpZGl0eSBtaW5pbmcuAGRNaW5QbGFubmVkWWllbGRpbmdQZXJpb2RzKBBoOAAABOwgTWluaW11bSBudW1iZXIgb2YgcGVyaW9kcyB0byBydW4gbGlxdWlkaXR5IG1pbmluZyBwcm9ncmFtLgBgTWF4RmFybUVudHJpZXNQZXJEZXBvc2l0KBAFAAAACGUBIE1heGltdW0gbnVtYmVyIG9mIHlpZWxkIGZhcm1zIHNhbWUgTFAgc2hhcmVzIGNhbiBiZSByZS9kZXBvc2l0ZWQgaW50by4gVGhpcyB2YWx1ZSBhbHdheXNcIE1VU1QgQkUgPj0gMS4gICAgICAgICAAaE1heFlpZWxkRmFybXNQZXJHbG9iYWxGYXJtKBAyAAAACE0BIE1heCBudW1iZXIgb2YgeWllbGQgZmFybXMgY2FuIGV4aXN0IGluIGdsb2JhbCBmYXJtLiBUaGlzIGluY2x1ZGVzIGFsbCBmYXJtcyBpbiB0aGWYIHN0b3JhZ2UoYWN0aXZlLCBzdG9wcGVkLCB0ZXJtaW5hdGVkKS4AARkNAAgcQXNzZXRJZCgEMCBBc3NldCB0eXBlLiRBbW1Qb29sSWQABOQgSWQgdXNlZCB0byBpZGVudGlmeSBhbW0gcG9vbCBpbiBsaXF1aWRpdHkgbWluaW5nIHBhbGxldC4AYAAAOFJlbGF5Q2hhaW5JbmZvAAFFBAABcQgAAAEdDQAAAMkAAAxEQ0EBDERDQSBMU2NoZWR1bGVJZFNlcXVlbmNlcgEAKBAAAAAABGwgSWQgc2VxdWVuY2VyIGZvciBzY2hlZHVsZXMAJFNjaGVkdWxlcwABBAIoTQQEAARkIFN0b3Jpbmcgc2NoZWR1bGUgZGV0YWlscwBEU2NoZWR1bGVPd25lcnNoaXAAAQgCBfULcAQABGwgU3RvcmluZyBzY2hlZHVsZSBvd25lcnNoaXAAQFJlbWFpbmluZ0Ftb3VudHMAAQQCKEAEAAT8IEtlZXAgdHJhY2tpbmcgdGhlIHJlbWFpbmluZyBhbW91bnRzIHRvIHNwZW5kIGZvciBEQ0Egc2NoZWR1bGVzADhSZXRyaWVzT25FcnJvcgEBBAIoCAQABOAgS2VlcCB0cmFja2luZyB0aGUgcmV0cnkgb24gZXJyb3IgZmxhZyBmb3IgRENBIHNjaGVkdWxlcwBYU2NoZWR1bGVFeGVjdXRpb25CbG9jawABBAIoKAQABCkBIEtlZXAgdHJhY2tpbmcgdGhlIGJsb2NrbnVtYmVyIHdoZW4gdGhlIHNjaGVkdWxlIGlzIHBsYW5uZWQgdG8gYmUgZXhlY3V0ZWQATFNjaGVkdWxlSWRzUGVyQmxvY2sBAQQCKCENBAAE+CBLZWVwIHRyYWNraW5nIG9mIHRoZSBzY2hlZHVsZSBpZHMgdG8gYmUgZXhlY3V0ZWQgaW4gdGhlIGJsb2NrAEBTY2hlZHVsZUV4dHJhR2FzAQEEAigYIAAAAAAAAAAADNggU3RvcmVzIHRoZSBjdXJyZW50IGV4dHJhIGdhcyB2YWx1ZSBmb3IgZWFjaCBzY2hlZHVsZS5JASBJbml0aWFsaXplZCB0byAwLCBpbmNyZW1lbnRzIG9uIEV2bU91dE9mR2FzLCBwZXJzaXN0cyBhZnRlciBzdWNjZXNzZnVsIGV4ZWN1dGlvbi7IIENsZWFuZWQgdXAgd2hlbiBzY2hlZHVsZSB0ZXJtaW5hdGVzIG9yIGNvbXBsZXRlcy4AAUkEAAF1CAAwfE1heFByaWNlRGlmZmVyZW5jZUJldHdlZW5CbG9ja3N1AhCYOgAABKxNYXggcHJpY2UgZGlmZmVyZW5jZSBhbGxvd2VkIGJldHdlZW4gYmxvY2tzAKxNYXhDb25maWd1cmFibGVQcmljZURpZmZlcmVuY2VCZXR3ZWVuQmxvY2tzdQIQUMMAAATgTWF4IGNvbmZpZ3VyYWJsZSBwcmljZSBkaWZmZXJlbmNlIGFsbG93ZWQgYmV0d2VlbiBibG9ja3MATE1heFNjaGVkdWxlUGVyQmxvY2soEAYAAAAE0FRoZSBudW1iZXIgb2YgbWF4IHNjaGVkdWxlcyB0byBiZSBleGVjdXRlZCBwZXIgYmxvY2sAZE1heE51bWJlck9mUmV0cmllc09uRXJyb3IIBAME2FRoZSBudW1iZXIgb2YgbWF4IHJldHJpZXMgaW4gY2FzZSBvZiB0cmFkZSBsaW1pdCBlcnJvcgA0TWluaW1hbFBlcmlvZCgQDwAAAASETWluaW1hbCBwZXJpb2QgYmV0d2VlbiBleGVjdXRpb25zAChCdW1wQ2hhbmNlJQ0EEQSEQ2hhbmNlIG9mIHRoZSByYW5kb20gcmVzY2hlZHVsaW5nAExNaW5pbXVtVHJhZGluZ0xpbWl0QEDoAwAAAAAAAAAAAAAAAAAABKQgTWluaW11bSB0cmFkaW5nIGxpbWl0IGZvciBhIHNpbmdsZSB0cmFkZQA0TmF0aXZlQXNzZXRJZCgQAAAAAARAIE5hdGl2ZSBBc3NldCBJZABUUG9sa2Fkb3ROYXRpdmVBc3NldElkKBAFAAAABHwgUG9sa2Fkb3QgTmF0aXZlIEFzc2V0IElkIChET1QpAGRNaW5CdWRnZXRJbk5hdGl2ZUN1cnJlbmN5QEAAgMakfo0DAAAAAAAAAAAABCUBTWluaW11bSBidWRnZXQgdG8gYmUgYWJsZSB0byBzY2hlZHVsZSBhIERDQSwgc3BlY2lmaWVkIGluIG5hdGl2ZSBjdXJyZW5jeQAsRmVlUmVjZWl2ZXIAgG1vZGxweS90cnNyeQAAAAAAAAAAAAAAAAAAAAAAAAAABJRUaGUgZmVlIHJlY2VpdmVyIGZvciB0cmFuc2FjdGlvbiBmZWVzADhOYW1lZFJlc2VydmVJZCEBIGRjYW9yZGVyBCkBIE5hbWVkIHJlc2VydmUgaWRlbnRpZmllciB0byBzdG9yZSBuYW1lZCByZXNlcnZlcyBmb3Igb3JkZXJzIG9mIGVhY2ggdXNlcnMAASkNAAQcQXNzZXRJZCgEOCBBc3NldCBpZCB0eXBlAEIAACRTY2hlZHVsZXIBJFNjaGVkdWxlchA8SW5jb21wbGV0ZVNpbmNlAAAoBAAE9CBCbG9jayBudW1iZXIgYXQgd2hpY2ggdGhlIGFnZW5kYSBiZWdhbiBpbmNvbXBsZXRlIGV4ZWN1dGlvbi4AGEFnZW5kYQEBBAUoLQ0EAARNASBJdGVtcyB0byBiZSBleGVjdXRlZCwgaW5kZXhlZCBieSB0aGUgYmxvY2sgbnVtYmVyIHRoYXQgdGhleSBzaG91bGQgYmUgZXhlY3V0ZWQgb24uABxSZXRyaWVzAAEEAqkCPQ0EAAQhASBSZXRyeSBjb25maWd1cmF0aW9ucyBmb3IgaXRlbXMgdG8gYmUgZXhlY3V0ZWQsIGluZGV4ZWQgYnkgdGFzayBhZGRyZXNzLgAYTG9va3VwAAEEBQSpAgQAEPggTG9va3VwIGZyb20gYSBuYW1lIHRvIHRoZSBibG9jayBudW1iZXIgYW5kIGluZGV4IG9mIHRoZSB0YXNrLgBZASBGb3IgdjMgLT4gdjQgdGhlIHByZXZpb3VzbHkgdW5ib3VuZGVkIGlkZW50aXRpZXMgYXJlIEJsYWtlMi0yNTYgaGFzaGVkIHRvIGZvcm0gdGhlIHY0MCBpZGVudGl0aWVzLgABVQQAAXkIAAg0TWF4aW11bVdlaWdodOQsCwDgkmUXAQIAAAIEKQEgVGhlIG1heGltdW0gd2VpZ2h0IHRoYXQgbWF5IGJlIHNjaGVkdWxlZCBwZXIgYmxvY2sgZm9yIGFueSBkaXNwYXRjaGFibGVzLgBQTWF4U2NoZWR1bGVkUGVyQmxvY2soEDIAAAAUHQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIHNjaGVkdWxlZCBjYWxscyBpbiB0aGUgcXVldWUgZm9yIGEgc2luZ2xlIGJsb2NrLgAYIE5PVEU6UQEgKyBEZXBlbmRlbnQgcGFsbGV0cycgYmVuY2htYXJrcyBtaWdodCByZXF1aXJlIGEgaGlnaGVyIGxpbWl0IGZvciB0aGUgc2V0dGluZy4gU2V0IGHEIGhpZ2hlciBsaW1pdCB1bmRlciBgcnVudGltZS1iZW5jaG1hcmtzYCBmZWF0dXJlLgABQQ0ABCxSdW50aW1lQ2FsbAwEaCBUaGUgYWdncmVnYXRlZCBjYWxsIHR5cGUuAAUAADxQYXJhY2hhaW5TeXN0ZW0BPFBhcmFjaGFpblN5c3RlbWBEVW5pbmNsdWRlZFNlZ21lbnQBAEUNBAAYSQEgTGF0ZXN0IGluY2x1ZGVkIGJsb2NrIGRlc2NlbmRhbnRzIHRoZSBydW50aW1lIGFjY2VwdGVkLiBJbiBvdGhlciB3b3JkcywgdGhlc2UgYXJlYQEgYW5jZXN0b3JzIG9mIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIGJsb2NrIHdoaWNoIGhhdmUgbm90IGJlZW4gaW5jbHVkZWQgaW4gdGhlIG9ic2VydmVkTCByZWxheS1jaGFpbiBzdGF0ZS4AdQEgVGhlIHNlZ21lbnQgbGVuZ3RoIGlzIGxpbWl0ZWQgYnkgdGhlIGNhcGFjaXR5IHJldHVybmVkIGZyb20gdGhlIFtgQ29uc2Vuc3VzSG9va2BdIGNvbmZpZ3VyZWQ8IGluIHRoZSBwYWxsZXQuAGxBZ2dyZWdhdGVkVW5pbmNsdWRlZFNlZ21lbnQAAGkNBAAMaQEgU3RvcmFnZSBmaWVsZCB0aGF0IGtlZXBzIHRyYWNrIG9mIGJhbmR3aWR0aCB1c2VkIGJ5IHRoZSB1bmluY2x1ZGVkIHNlZ21lbnQgYWxvbmcgd2l0aCB0aGUtASBsYXRlc3QgSFJNUCB3YXRlcm1hcmsuIFVzZWQgZm9yIGxpbWl0aW5nIHRoZSBhY2NlcHRhbmNlIG9mIG5ldyBibG9ja3Mgd2l0aJAgcmVzcGVjdCB0byByZWxheSBjaGFpbiBjb25zdHJhaW50cy4AVFBlbmRpbmdWYWxpZGF0aW9uQ29kZQEAFAQAGFkBIEluIGNhc2Ugb2YgYSBzY2hlZHVsZWQgdXBncmFkZSwgdGhpcyBzdG9yYWdlIGZpZWxkIGNvbnRhaW5zIHRoZSB2YWxpZGF0aW9uIGNvZGUgdG8gYmUkIGFwcGxpZWQuAD0BIEFzIHNvb24gYXMgdGhlIHJlbGF5IGNoYWluIGdpdmVzIHVzIHRoZSBnby1haGVhZCBzaWduYWwsIHdlIHdpbGwgb3ZlcndyaXRlIHRoZXEBIFtgOmNvZGVgXVtzcF9jb3JlOjpzdG9yYWdlOjp3ZWxsX2tub3duX2tleXM6OkNPREVdIHdoaWNoIHdpbGwgcmVzdWx0IHRoZSBuZXh0IGJsb2NrIHByb2Nlc3MJASB3aXRoIHRoZSBuZXcgdmFsaWRhdGlvbiBjb2RlLiBUaGlzIGNvbmNsdWRlcyB0aGUgdXBncmFkZSBwcm9jZXNzLgBETmV3VmFsaWRhdGlvbkNvZGUAABQEABRdASBWYWxpZGF0aW9uIGNvZGUgdGhhdCBpcyBzZXQgYnkgdGhlIHBhcmFjaGFpbiBhbmQgaXMgdG8gYmUgY29tbXVuaWNhdGVkIHRvIGNvbGxhdG9yIGFuZHggY29uc2VxdWVudGx5IHRoZSByZWxheS1jaGFpbi4AZQEgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrIGlmIG5vIG90aGVyIHBhbGxldCBhbHJlYWR5IHNldCwgdGhlIHZhbHVlLgA4VmFsaWRhdGlvbkRhdGEAAGEEBAAM0CBUaGUgW2BQZXJzaXN0ZWRWYWxpZGF0aW9uRGF0YWBdIHNldCBmb3IgdGhpcyBibG9jay4tASBUaGlzIHZhbHVlIGlzIGV4cGVjdGVkIHRvIGJlIHNldCBvbmx5IG9uY2UgcGVyIGJsb2NrIGFuZCBpdCdzIG5ldmVyIHN0b3JlZDQgaW4gdGhlIHRyaWUuAFBEaWRTZXRWYWxpZGF0aW9uQ29kZQEARAQABOAgV2VyZSB0aGUgdmFsaWRhdGlvbiBkYXRhIHNldCB0byBub3RpZnkgdGhlIHJlbGF5IGNoYWluPwBkTGFzdFJlbGF5Q2hhaW5CbG9ja051bWJlcgEAKBAAAAAADB0BIFRoZSByZWxheSBjaGFpbiBibG9jayBudW1iZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBsYXN0IHBhcmFjaGFpbiBibG9jay4AiCBUaGlzIGlzIHVwZGF0ZWQgaW4gYG9uX2ZpbmFsaXplYC4AYFVwZ3JhZGVSZXN0cmljdGlvblNpZ25hbAEAbQ0EABx1ASBBbiBvcHRpb24gd2hpY2ggaW5kaWNhdGVzIGlmIHRoZSByZWxheS1jaGFpbiByZXN0cmljdHMgc2lnbmFsbGluZyBhIHZhbGlkYXRpb24gY29kZSB1cGdyYWRlLmEBIEluIG90aGVyIHdvcmRzLCBpZiB0aGlzIGlzIGBTb21lYCBhbmQgW2BOZXdWYWxpZGF0aW9uQ29kZWBdIGlzIGBTb21lYCB0aGVuIHRoZSBwcm9kdWNlZGwgY2FuZGlkYXRlIHdpbGwgYmUgaW52YWxpZC4AcQEgVGhpcyBzdG9yYWdlIGl0ZW0gaXMgYSBtaXJyb3Igb2YgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgZm9yIHRoZSBjdXJyZW50IHBhcmFjaGFpbiBmcm9tIHRoZW0BIHJlbGF5LWNoYWluLiBUaGlzIHZhbHVlIGlzIGVwaGVtZXJhbCB3aGljaCBtZWFucyBpdCBkb2Vzbid0IGhpdCB0aGUgc3RvcmFnZS4gVGhpcyB2YWx1ZSBpc2Agc2V0IGFmdGVyIHRoZSBpbmhlcmVudC4AOFVwZ3JhZGVHb0FoZWFkAQBhDQQAFNwgT3B0aW9uYWwgdXBncmFkZSBnby1haGVhZCBzaWduYWwgZnJvbSB0aGUgcmVsYXktY2hhaW4uAHEBIFRoaXMgc3RvcmFnZSBpdGVtIGlzIGEgbWlycm9yIG9mIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGZvciB0aGUgY3VycmVudCBwYXJhY2hhaW4gZnJvbSB0aGVtASByZWxheS1jaGFpbi4gVGhpcyB2YWx1ZSBpcyBlcGhlbWVyYWwgd2hpY2ggbWVhbnMgaXQgZG9lc24ndCBoaXQgdGhlIHN0b3JhZ2UuIFRoaXMgdmFsdWUgaXNgIHNldCBhZnRlciB0aGUgaW5oZXJlbnQuADxSZWxheVN0YXRlUHJvb2YAAGkEBAAYxCBUaGUgc3RhdGUgcHJvb2YgZm9yIHRoZSBsYXN0IHJlbGF5IHBhcmVudCBibG9jay4AbQEgVGhpcyBmaWVsZCBpcyBtZWFudCB0byBiZSB1cGRhdGVkIGVhY2ggYmxvY2sgd2l0aCB0aGUgdmFsaWRhdGlvbiBkYXRhIGluaGVyZW50LiBUaGVyZWZvcmUsTQEgYmVmb3JlIHByb2Nlc3Npbmcgb2YgdGhlIGluaGVyZW50LCBlLmcuIGluIGBvbl9pbml0aWFsaXplYCB0aGlzIGRhdGEgbWF5IGJlIHN0YWxlLgCsIFRoaXMgZGF0YSBpcyBhbHNvIGFic2VudCBmcm9tIHRoZSBnZW5lc2lzLgBYUmVsZXZhbnRNZXNzYWdpbmdTdGF0ZQAAdQ0EABxlASBUaGUgc25hcHNob3Qgb2Ygc29tZSBzdGF0ZSByZWxhdGVkIHRvIG1lc3NhZ2luZyByZWxldmFudCB0byB0aGUgY3VycmVudCBwYXJhY2hhaW4gYXMgcGVySCB0aGUgcmVsYXkgcGFyZW50LgBtASBUaGlzIGZpZWxkIGlzIG1lYW50IHRvIGJlIHVwZGF0ZWQgZWFjaCBibG9jayB3aXRoIHRoZSB2YWxpZGF0aW9uIGRhdGEgaW5oZXJlbnQuIFRoZXJlZm9yZSxNASBiZWZvcmUgcHJvY2Vzc2luZyBvZiB0aGUgaW5oZXJlbnQsIGUuZy4gaW4gYG9uX2luaXRpYWxpemVgIHRoaXMgZGF0YSBtYXkgYmUgc3RhbGUuAKwgVGhpcyBkYXRhIGlzIGFsc28gYWJzZW50IGZyb20gdGhlIGdlbmVzaXMuAERIb3N0Q29uZmlndXJhdGlvbgAAiQ0EABgpASBUaGUgcGFyYWNoYWluIGhvc3QgY29uZmlndXJhdGlvbiB0aGF0IHdhcyBvYnRhaW5lZCBmcm9tIHRoZSByZWxheSBwYXJlbnQuAG0BIFRoaXMgZmllbGQgaXMgbWVhbnQgdG8gYmUgdXBkYXRlZCBlYWNoIGJsb2NrIHdpdGggdGhlIHZhbGlkYXRpb24gZGF0YSBpbmhlcmVudC4gVGhlcmVmb3JlLE0BIGJlZm9yZSBwcm9jZXNzaW5nIG9mIHRoZSBpbmhlcmVudCwgZS5nLiBpbiBgb25faW5pdGlhbGl6ZWAgdGhpcyBkYXRhIG1heSBiZSBzdGFsZS4ArCBUaGlzIGRhdGEgaXMgYWxzbyBhYnNlbnQgZnJvbSB0aGUgZ2VuZXNpcy4AOExhc3REbXFNcWNIZWFkAQCRDYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABD0IFRoZSBsYXN0IGRvd253YXJkIG1lc3NhZ2UgcXVldWUgY2hhaW4gaGVhZCB3ZSBoYXZlIG9ic2VydmVkLgBlASBUaGlzIHZhbHVlIGlzIGxvYWRlZCBiZWZvcmUgYW5kIHNhdmVkIGFmdGVyIHByb2Nlc3NpbmcgaW5ib3VuZCBkb3dud2FyZCBtZXNzYWdlcyBjYXJyaWVkYCBieSB0aGUgc3lzdGVtIGluaGVyZW50LgBATGFzdEhybXBNcWNIZWFkcwEAlQ0EABBJASBUaGUgbWVzc2FnZSBxdWV1ZSBjaGFpbiBoZWFkcyB3ZSBoYXZlIG9ic2VydmVkIHBlciBlYWNoIGNoYW5uZWwgaW5jb21pbmcgY2hhbm5lbC4AZQEgVGhpcyB2YWx1ZSBpcyBsb2FkZWQgYmVmb3JlIGFuZCBzYXZlZCBhZnRlciBwcm9jZXNzaW5nIGluYm91bmQgZG93bndhcmQgbWVzc2FnZXMgY2FycmllZGAgYnkgdGhlIHN5c3RlbSBpbmhlcmVudC4AZFByb2Nlc3NlZERvd253YXJkTWVzc2FnZXMBACgQAAAAAAzIIE51bWJlciBvZiBkb3dud2FyZCBtZXNzYWdlcyBwcm9jZXNzZWQgaW4gYSBibG9jay4A7CBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25faW5pdGlhbGl6ZWAgb2YgZWFjaCBuZXcgYmxvY2suADRIcm1wV2F0ZXJtYXJrAQAoEAAAAAAMoCBIUk1QIHdhdGVybWFyayB0aGF0IHdhcyBzZXQgaW4gYSBibG9jay4A7CBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25faW5pdGlhbGl6ZWAgb2YgZWFjaCBuZXcgYmxvY2suAFBIcm1wT3V0Ym91bmRNZXNzYWdlcwEAoQ0EAAykIEhSTVAgbWVzc2FnZXMgdGhhdCB3ZXJlIHNlbnQgaW4gYSBibG9jay4A7CBUaGlzIHdpbGwgYmUgY2xlYXJlZCBpbiBgb25faW5pdGlhbGl6ZWAgb2YgZWFjaCBuZXcgYmxvY2suADhVcHdhcmRNZXNzYWdlcwEAJAQADKwgVXB3YXJkIG1lc3NhZ2VzIHRoYXQgd2VyZSBzZW50IGluIGEgYmxvY2suAOwgVGhpcyB3aWxsIGJlIGNsZWFyZWQgaW4gYG9uX2luaXRpYWxpemVgIG9mIGVhY2ggbmV3IGJsb2NrLgBUUGVuZGluZ1Vwd2FyZE1lc3NhZ2VzAQAkBAAEMQEgVXB3YXJkIG1lc3NhZ2VzIHRoYXQgYXJlIHN0aWxsIHBlbmRpbmcgYW5kIG5vdCB5ZXQgc2VuZCB0byB0aGUgcmVsYXkgY2hhaW4uAFxVcHdhcmREZWxpdmVyeUZlZUZhY3RvcgEAVEAAAGSns7bgDQAAAAAAAAAABOQgVGhlIGZhY3RvciB0byBtdWx0aXBseSB0aGUgYmFzZSBkZWxpdmVyeSBmZWUgYnkgZm9yIFVNUC4AhEFubm91bmNlZEhybXBNZXNzYWdlc1BlckNhbmRpZGF0ZQEAKBAAAAAACGUBIFRoZSBudW1iZXIgb2YgSFJNUCBtZXNzYWdlcyB3ZSBvYnNlcnZlZCBpbiBgb25faW5pdGlhbGl6ZWAgYW5kIHRodXMgdXNlZCB0aGF0IG51bWJlciBmb3LwIGFubm91bmNpbmcgdGhlIHdlaWdodCBvZiBgb25faW5pdGlhbGl6ZWAgYW5kIGBvbl9maW5hbGl6ZWAuAGhSZXNlcnZlZFhjbXBXZWlnaHRPdmVycmlkZQAA5AQACF0BIFRoZSB3ZWlnaHQgd2UgcmVzZXJ2ZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBibG9jayBmb3IgcHJvY2Vzc2luZyBYQ01QIG1lc3NhZ2VzLiBUaGlzuCBvdmVycmlkZXMgdGhlIGFtb3VudCBzZXQgaW4gdGhlIENvbmZpZyB0cmFpdC4AZFJlc2VydmVkRG1wV2VpZ2h0T3ZlcnJpZGUAAOQEAAhZASBUaGUgd2VpZ2h0IHdlIHJlc2VydmUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYmxvY2sgZm9yIHByb2Nlc3NpbmcgRE1QIG1lc3NhZ2VzLiBUaGlzuCBvdmVycmlkZXMgdGhlIGFtb3VudCBzZXQgaW4gdGhlIENvbmZpZyB0cmFpdC4AYEN1c3RvbVZhbGlkYXRpb25IZWFkRGF0YQAAFAQADCkBIEEgY3VzdG9tIGhlYWQgZGF0YSB0aGF0IHNob3VsZCBiZSByZXR1cm5lZCBhcyByZXN1bHQgb2YgYHZhbGlkYXRlX2Jsb2NrYC4AEQEgU2VlIGBQYWxsZXQ6OnNldF9jdXN0b21fdmFsaWRhdGlvbl9oZWFkX2RhdGFgIGZvciBtb3JlIGluZm9ybWF0aW9uLgABWQQAAX0IAAQoU2VsZlBhcmFJZOAQ8gcAAAS4IFJldHVybnMgdGhlIHBhcmFjaGFpbiBJRCB3ZSBhcmUgcnVubmluZyB3aXRoLgABqQ0AAABnAAA0UGFyYWNoYWluSW5mbwE0UGFyYWNoYWluSW5mbwQsUGFyYWNoYWluSWQBAOAQZAAAAAAAAaUEAAAAAAAAaQAALFBvbGthZG90WGNtASxQb2xrYWRvdFhjbTwwUXVlcnlDb3VudGVyAQAYIAAAAAAAAAAABIggVGhlIGxhdGVzdCBhdmFpbGFibGUgcXVlcnkgaW5kZXguABxRdWVyaWVzAAEEAhitDQQABFQgVGhlIG9uZ29pbmcgcXVlcmllcy4AKEFzc2V0VHJhcHMBAQQGLCgQAAAAABBoIFRoZSBleGlzdGluZyBhc3NldCB0cmFwcy4AYQEgS2V5IGlzIHRoZSBibGFrZTIgMjU2IGhhc2ggb2YgKG9yaWdpbiwgdmVyc2lvbmVkIGBBc3NldHNgKSBwYWlyLiBWYWx1ZSBpcyB0aGUgbnVtYmVyIG9mHQEgdGltZXMgdGhpcyBwYWlyIGhhcyBiZWVuIHRyYXBwZWQgKHVzdWFsbHkganVzdCAxIGlmIGl0IGV4aXN0cyBhdCBhbGwpLgA4U2FmZVhjbVZlcnNpb24AACgEAAhhASBEZWZhdWx0IHZlcnNpb24gdG8gZW5jb2RlIFhDTSB3aGVuIGxhdGVzdCB2ZXJzaW9uIG9mIGRlc3RpbmF0aW9uIGlzIHVua25vd24uIElmIGBOb25lYCw9ASB0aGVuIHRoZSBkZXN0aW5hdGlvbnMgd2hvc2UgWENNIHZlcnNpb24gaXMgdW5rbm93biBhcmUgY29uc2lkZXJlZCB1bnJlYWNoYWJsZS4AQFN1cHBvcnRlZFZlcnNpb24AAQgFAsENKAQABPAgVGhlIExhdGVzdCB2ZXJzaW9ucyB0aGF0IHdlIGtub3cgdmFyaW91cyBsb2NhdGlvbnMgc3VwcG9ydC4AQFZlcnNpb25Ob3RpZmllcnMAAQgFAsENGAQABAUBIEFsbCBsb2NhdGlvbnMgdGhhdCB3ZSBoYXZlIHJlcXVlc3RlZCB2ZXJzaW9uIG5vdGlmaWNhdGlvbnMgZnJvbS4AUFZlcnNpb25Ob3RpZnlUYXJnZXRzAAEIBQLBDcUNBAAIcQEgVGhlIHRhcmdldCBsb2NhdGlvbnMgdGhhdCBhcmUgc3Vic2NyaWJlZCB0byBvdXIgdmVyc2lvbiBjaGFuZ2VzLCBhcyB3ZWxsIGFzIHRoZSBtb3N0IHJlY2VudJQgb2Ygb3VyIHZlcnNpb25zIHdlIGluZm9ybWVkIHRoZW0gb2YuAFRWZXJzaW9uRGlzY292ZXJ5UXVldWUBAMkNBAAMZQEgRGVzdGluYXRpb25zIHdob3NlIGxhdGVzdCBYQ00gdmVyc2lvbiB3ZSB3b3VsZCBsaWtlIHRvIGtub3cuIER1cGxpY2F0ZXMgbm90IGFsbG93ZWQsIGFuZHEBIHRoZSBgdTMyYCBjb3VudGVyIGlzIHRoZSBudW1iZXIgb2YgdGltZXMgdGhhdCBhIHNlbmQgdG8gdGhlIGRlc3RpbmF0aW9uIGhhcyBiZWVuIGF0dGVtcHRlZCyMIHdoaWNoIGlzIHVzZWQgYXMgYSBwcmlvcml0aXphdGlvbi4AQEN1cnJlbnRNaWdyYXRpb24AANUNBAAEnCBUaGUgY3VycmVudCBtaWdyYXRpb24ncyBzdGFnZSwgaWYgYW55LgBUUmVtb3RlTG9ja2VkRnVuZ2libGVzAAEMBQIC2Q3dDQQABPAgRnVuZ2libGUgYXNzZXRzIHdoaWNoIHdlIGtub3cgYXJlIGxvY2tlZCBvbiBhIHJlbW90ZSBjaGFpbi4APExvY2tlZEZ1bmdpYmxlcwABBAIA7Q0EAATgIEZ1bmdpYmxlIGFzc2V0cyB3aGljaCB3ZSBrbm93IGFyZSBsb2NrZWQgb24gdGhpcyBjaGFpbi4AVFhjbUV4ZWN1dGlvblN1c3BlbmRlZAEARAQABLQgR2xvYmFsIHN1c3BlbnNpb24gc3RhdGUgb2YgdGhlIFhDTSBleGVjdXRvci4APFNob3VsZFJlY29yZFhjbQEARAQAHFkBIFdoZXRoZXIgb3Igbm90IGluY29taW5nIFhDTXMgKGJvdGggZXhlY3V0ZWQgbG9jYWxseSBhbmQgcmVjZWl2ZWQpIHNob3VsZCBiZSByZWNvcmRlZC7EIE9ubHkgb25lIFhDTSBwcm9ncmFtIHdpbGwgYmUgcmVjb3JkZWQgYXQgYSB0aW1lLikBIFRoaXMgaXMgbWVhbnQgdG8gYmUgdXNlZCBpbiBydW50aW1lIEFQSXMsIGFuZCBpdCdzIGFkdmlzZWQgaXQgc3RheXMgZmFsc2UNASBmb3IgYWxsIG90aGVyIHVzZSBjYXNlcywgc28gYXMgdG8gbm90IGRlZ3JhZGUgcmVndWxhciBwZXJmb3JtYW5jZS4AWQEgT25seSByZWxldmFudCBpZiB0aGlzIHBhbGxldCBpcyBiZWluZyB1c2VkIGFzIHRoZSBbYHhjbV9leGVjdXRvcjo6dHJhaXRzOjpSZWNvcmRYY21gXcggaW1wbGVtZW50YXRpb24gaW4gdGhlIFhDTSBleGVjdXRvciBjb25maWd1cmF0aW9uLgAsUmVjb3JkZWRYY20AALUFBAAYSQEgSWYgW2BTaG91bGRSZWNvcmRYY21gXSBpcyBzZXQgdG8gdHJ1ZSwgdGhlbiB0aGUgbGFzdCBYQ00gcHJvZ3JhbSBleGVjdXRlZCBsb2NhbGx5VCB3aWxsIGJlIHN0b3JlZCBoZXJlLikBIFJ1bnRpbWUgQVBJcyBjYW4gZmV0Y2ggdGhlIFhDTSB0aGF0IHdhcyBleGVjdXRlZCBieSBhY2Nlc3NpbmcgdGhpcyB2YWx1ZS4AWQEgT25seSByZWxldmFudCBpZiB0aGlzIHBhbGxldCBpcyBiZWluZyB1c2VkIGFzIHRoZSBbYHhjbV9leGVjdXRvcjo6dHJhaXRzOjpSZWNvcmRYY21gXcggaW1wbGVtZW50YXRpb24gaW4gdGhlIFhDTSBleGVjdXRvciBjb25maWd1cmF0aW9uLgBEQXV0aG9yaXplZEFsaWFzZXMAAQQCrQT5DQQADGUBIE1hcCBvZiBhdXRob3JpemVkIGFsaWFzZXJzIG9mIGxvY2FsIG9yaWdpbnMuIEVhY2ggbG9jYWwgbG9jYXRpb24gY2FuIGF1dGhvcml6ZSBhIGxpc3Qgb2ZZASBvdGhlciBsb2NhdGlvbnMgdG8gYWxpYXMgaW50byBpdC4gRWFjaCBhbGlhc2VyIGlzIG9ubHkgdmFsaWQgdW50aWwgaXRzIGlubmVyIGBleHBpcnlgOCBibG9jayBudW1iZXIuAAGpBAgBArkBVGhpcyBleHRyaW5zaWMgdXNlcyBgV2VpZ2h0TGltaXQ6OlVubGltaXRlZGAsIHBsZWFzZSBtaWdyYXRlIHRvIGBsaW1pdGVkX3RlbGVwb3J0X2Fzc2V0c2Agb3IgYHRyYW5zZmVyX2Fzc2V0c2AAAgLZAVRoaXMgZXh0cmluc2ljIHVzZXMgYFdlaWdodExpbWl0OjpVbmxpbWl0ZWRgLCBwbGVhc2UgbWlncmF0ZSB0byBgbGltaXRlZF9yZXNlcnZlX3RyYW5zZmVyX2Fzc2V0c2Agb3IgYHRyYW5zZmVyX2Fzc2V0c2AAAYEIABBEVW5pdmVyc2FsTG9jYXRpb26gGAIJAgDJHwSEIFRoaXMgY2hhaW4ncyBVbml2ZXJzYWwgTG9jYXRpb24uAFBBZHZlcnRpc2VkWGNtVmVyc2lvbigQBQAAAAglASBUaGUgbGF0ZXN0IHN1cHBvcnRlZCB2ZXJzaW9uIHRoYXQgd2UgYWR2ZXJ0aXNlLiBHZW5lcmFsbHkganVzdCBzZXQgaXQgdG+EIGBwYWxsZXRfeGNtOjpDdXJyZW50WGNtVmVyc2lvbmAuAChNYXhMb2NrZXJzKBAIAAAABBkBIFRoZSBtYXhpbXVtIG51bWJlciBvZiBsb2NhbCBYQ00gbG9ja3MgdGhhdCBhIHNpbmdsZSBhY2NvdW50IG1heSBoYXZlLgBYTWF4UmVtb3RlTG9ja0NvbnN1bWVycygQAAAAAAT8IFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb25zdW1lcnMgYSBzaW5nbGUgcmVtb3RlIGxvY2sgbWF5IGhhdmUuAAERDgQYArxVc2UgYExvY2FsRXhlY3V0aW9uSW5jb21wbGV0ZVdpdGhFcnJvcmAgaW5zdGVhZAEYMjAuMC4wCCxSdW50aW1lQ2FsbAwEZCBUaGUgcnVudGltZSBgQ2FsbGAgdHlwZS5wUmVtb3RlTG9ja0NvbnN1bWVySWRlbnRpZmllcnAExCBUaGUgSUQgdHlwZSBmb3IgbG9jYWwgY29uc3VtZXJzIG9mIHJlbW90ZSBsb2Nrcy4AawAAKEN1bXVsdXNYY20AAWkGAAGRCAAAAAAAbQAAJFhjbXBRdWV1ZQEkWGNtcFF1ZXVlHFBJbmJvdW5kWGNtcFN1c3BlbmRlZAEAGQ4EACANASBUaGUgc3VzcGVuZGVkIGluYm91bmQgWENNUCBjaGFubmVscy4gQWxsIG90aGVycyBhcmUgbm90IHN1c3BlbmRlZC4AcQEgVGhpcyBpcyBhIGBTdG9yYWdlVmFsdWVgIGluc3RlYWQgb2YgYSBgU3RvcmFnZU1hcGAgc2luY2Ugd2UgZXhwZWN0IG11bHRpcGxlIHJlYWRzIHBlciBibG9ja2kBIHRvIGRpZmZlcmVudCBrZXlzIHdpdGggYSBvbmUgYnl0ZSBwYXlsb2FkLiBUaGUgYWNjZXNzIHRvIGBCb3VuZGVkQlRyZWVTZXRgIHdpbGwgYmUgY2FjaGVkFQEgd2l0aGluIHRoZSBibG9jayBhbmQgdGhlcmVmb3JlIG9ubHkgaW5jbHVkZWQgb25jZSBpbiB0aGUgcHJvb2Ygc2l6ZS4AZQEgTk9URTogVGhlIFBvViBiZW5jaG1hcmtpbmcgY2Fubm90IGtub3cgdGhpcyBhbmQgd2lsbCBvdmVyLWVzdGltYXRlLCBidXQgdGhlIGFjdHVhbCBwcm9vZkQgd2lsbCBiZSBzbWFsbGVyLgBIT3V0Ym91bmRYY21wU3RhdHVzAQAlDgQAGF0BIFRoZSBub24tZW1wdHkgWENNUCBjaGFubmVscyBpbiBvcmRlciBvZiBiZWNvbWluZyBub24tZW1wdHksIGFuZCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0UQEgYW5kIGxhc3Qgb3V0Ym91bmQgbWVzc2FnZS4gSWYgdGhlIHR3byBpbmRpY2VzIGFyZSBlcXVhbCwgdGhlbiBpdCBpbmRpY2F0ZXMgYW4gZW1wdHlZASBxdWV1ZSBhbmQgdGhlcmUgbXVzdCBiZSBhIG5vbi1gT2tgIGBPdXRib3VuZFN0YXR1c2AuIFdlIGFzc3VtZSBxdWV1ZXMgZ3JvdyBubyBncmVhdGVyWQEgdGhhbiA2NTUzNSBpdGVtcy4gUXVldWUgaW5kaWNlcyBmb3Igbm9ybWFsIG1lc3NhZ2VzIGJlZ2luIGF0IG9uZTsgemVybyBpcyByZXNlcnZlZCBpbhEBIGNhc2Ugb2YgdGhlIG5lZWQgdG8gc2VuZCBhIGhpZ2gtcHJpb3JpdHkgc2lnbmFsIG1lc3NhZ2UgdGhpcyBibG9jay4JASBUaGUgYm9vbCBpcyB0cnVlIGlmIHRoZXJlIGlzIGEgc2lnbmFsIG1lc3NhZ2Ugd2FpdGluZyB0byBiZSBzZW50LgBQT3V0Ym91bmRYY21wTWVzc2FnZXMBAQgCBTUOOQ4EAAS8IFRoZSBtZXNzYWdlcyBvdXRib3VuZCBpbiBhIGdpdmVuIFhDTVAgY2hhbm5lbC4AOFNpZ25hbE1lc3NhZ2VzAQEEAuA5DgQABKAgQW55IHNpZ25hbCBtZXNzYWdlcyB3YWl0aW5nIHRvIGJlIHNlbnQuACxRdWV1ZUNvbmZpZwEAPQ4wIAAAADAAAAAIAAAABBUBIFRoZSBjb25maWd1cmF0aW9uIHdoaWNoIGNvbnRyb2xzIHRoZSBkeW5hbWljcyBvZiB0aGUgb3V0Ym91bmQgcXVldWUuADhRdWV1ZVN1c3BlbmRlZAEARAQABEEBIFdoZXRoZXIgb3Igbm90IHRoZSBYQ01QIHF1ZXVlIGlzIHN1c3BlbmRlZCBmcm9tIGV4ZWN1dGluZyBpbmNvbWluZyBYQ01zIG9yIG5vdC4ARERlbGl2ZXJ5RmVlRmFjdG9yAQEEBeBUQAAAZKeztuANAAAAAAAAAAAExCBUaGUgZmFjdG9yIHRvIG11bHRpcGx5IHRoZSBiYXNlIGRlbGl2ZXJ5IGZlZSBieS4AAAGVCAAMTE1heEluYm91bmRTdXNwZW5kZWQoEOgDAAAUSQEgVGhlIG1heGltdW0gbnVtYmVyIG9mIGluYm91bmQgWENNUCBjaGFubmVscyB0aGF0IGNhbiBiZSBzdXNwZW5kZWQgc2ltdWx0YW5lb3VzbHkuAF0BIEFueSBmdXJ0aGVyIGNoYW5uZWwgc3VzcGVuc2lvbnMgd2lsbCBmYWlsIGFuZCBtZXNzYWdlcyBtYXkgZ2V0IGRyb3BwZWQgd2l0aG91dCBmdXJ0aGVyRQEgbm90aWNlLiBDaG9vc2luZyBhIGhpZ2ggdmFsdWUgKDEwMDApIGlzIG9rYXk7IHRoZSB0cmFkZS1vZmYgdGhhdCBpcyBkZXNjcmliZWQgaW7YIFtgSW5ib3VuZFhjbXBTdXNwZW5kZWRgXSBzdGlsbCBhcHBsaWVzIGF0IHRoYXQgc2NhbGUuAGRNYXhBY3RpdmVPdXRib3VuZENoYW5uZWxzKBCAAAAAIGUBIE1heGltYWwgbnVtYmVyIG9mIG91dGJvdW5kIFhDTVAgY2hhbm5lbHMgdGhhdCBjYW4gaGF2ZSBtZXNzYWdlcyBxdWV1ZWQgYXQgdGhlIHNhbWUgdGltZS4AVQEgSWYgdGhpcyBpcyByZWFjaGVkLCB0aGVuIG5vIGZ1cnRoZXIgbWVzc2FnZXMgY2FuIGJlIHNlbnQgdG8gY2hhbm5lbHMgdGhhdCBkbyBub3QgeWV0XQEgaGF2ZSBhIG1lc3NhZ2UgcXVldWVkLiBUaGlzIHNob3VsZCBiZSBzZXQgdG8gdGhlIGV4cGVjdGVkIG1heGltdW0gb2Ygb3V0Ym91bmQgY2hhbm5lbHNhASB3aGljaCBpcyBkZXRlcm1pbmVkIGJ5IFtgU2VsZjo6Q2hhbm5lbEluZm9gXS4gSXQgaXMgaW1wb3J0YW50IHRvIHNldCB0aGlzIGxhcmdlIGVub3VnaCxdASBzaW5jZSBvdGhlcndpc2UgdGhlIGNvbmdlc3Rpb24gY29udHJvbCBwcm90b2NvbCB3aWxsIG5vdCB3b3JrIGFzIGludGVuZGVkIGFuZCBtZXNzYWdlc1EBIG1heSBiZSBkcm9wcGVkLiBUaGlzIHZhbHVlIGluY3JlYXNlcyB0aGUgUG9WIGFuZCBzaG91bGQgdGhlcmVmb3JlIG5vdCBiZSBwaWNrZWQgdG9vTQEgaGlnaC4gR292ZXJuYW5jZSBuZWVkcyB0byBwYXkgYXR0ZW50aW9uIHRvIG5vdCBvcGVuIG1vcmUgY2hhbm5lbHMgdGhhbiB0aGlzIHZhbHVlLgAsTWF4UGFnZVNpemUoEAAAAgAUuCBUaGUgbWF4aW1hbCBwYWdlIHNpemUgZm9yIEhSTVAgbWVzc2FnZSBwYWdlcy4AYQEgQSBsb3dlciBsaW1pdCBjYW4gYmUgc2V0IGR5bmFtaWNhbGx5LCBidXQgdGhpcyBpcyB0aGUgaGFyZC1saW1pdCBmb3IgdGhlIFBvViB3b3JzdCBjYXNlVQEgYmVuY2htYXJraW5nLiBUaGUgbGltaXQgZm9yIHRoZSBzaXplIG9mIGEgbWVzc2FnZSBpcyBzbGlnaHRseSBiZWxvdyB0aGlzLCBzaW5jZSBzb21luCBvdmVyaGVhZCBpcyBpbmN1cnJlZCBmb3IgZW5jb2RpbmcgdGhlIGZvcm1hdC4AAUEOAAAAbwAAME1lc3NhZ2VRdWV1ZQEwTWVzc2FnZVF1ZXVlDDBCb29rU3RhdGVGb3IBAQQFcQZFDnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATMIFRoZSBpbmRleCBvZiB0aGUgZmlyc3QgYW5kIGxhc3QgKG5vbi1lbXB0eSkgcGFnZXMuACxTZXJ2aWNlSGVhZAAAcQYEAAS8IFRoZSBvcmlnaW4gYXQgd2hpY2ggd2Ugc2hvdWxkIGJlZ2luIHNlcnZpY2luZy4AFFBhZ2VzAAEIBQVRDlUOBAAEiCBUaGUgbWFwIG9mIHBhZ2UgaW5kaWNlcyB0byBwYWdlcy4AAW0GAAGZCAAQIEhlYXBTaXplKBAADAIAFD0BIFRoZSBzaXplIG9mIHRoZSBwYWdlOyB0aGlzIGltcGxpZXMgdGhlIG1heGltdW0gbWVzc2FnZSBzaXplIHdoaWNoIGNhbiBiZSBzZW50LgBZASBBIGdvb2QgdmFsdWUgZGVwZW5kcyBvbiB0aGUgZXhwZWN0ZWQgbWVzc2FnZSBzaXplcywgdGhlaXIgd2VpZ2h0cywgdGhlIHdlaWdodCB0aGF0IGlzXQEgYXZhaWxhYmxlIGZvciBwcm9jZXNzaW5nIHRoZW0gYW5kIHRoZSBtYXhpbWFsIG5lZWRlZCBtZXNzYWdlIHNpemUuIFRoZSBtYXhpbWFsIG1lc3NhZ2URASBzaXplIGlzIHNsaWdodGx5IGxvd2VyIHRoYW4gdGhpcyBhcyBkZWZpbmVkIGJ5IFtgTWF4TWVzc2FnZUxlbk9mYF0uACBNYXhTdGFsZSgQCAAAAAxdASBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3RhbGUgcGFnZXMgKGkuZS4gb2Ygb3ZlcndlaWdodCBtZXNzYWdlcykgYWxsb3dlZCBiZWZvcmUgY3VsbGluZ1EBIGNhbiBoYXBwZW4uIE9uY2UgdGhlcmUgYXJlIG1vcmUgc3RhbGUgcGFnZXMgdGhhbiB0aGlzLCB0aGVuIGhpc3RvcmljYWwgcGFnZXMgbWF5IGJl/CBkcm9wcGVkLCBldmVuIGlmIHRoZXkgY29udGFpbiB1bnByb2Nlc3NlZCBvdmVyd2VpZ2h0IG1lc3NhZ2VzLgA0U2VydmljZVdlaWdodP0FLAEHALhk2UUCAIAAGEEBIFRoZSBhbW91bnQgb2Ygd2VpZ2h0IChpZiBhbnkpIHdoaWNoIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZSBmb3KoIHNlcnZpY2luZyBlbnF1ZXVlZCBpdGVtcyBgb25faW5pdGlhbGl6ZWAuAPwgVGhpcyBtYXkgYmUgbGVnaXRpbWF0ZWx5IGBOb25lYCBpbiB0aGUgY2FzZSB0aGF0IHlvdSB3aWxsIGNhbGxdASBgU2VydmljZVF1ZXVlczo6c2VydmljZV9xdWV1ZXNgIG1hbnVhbGx5IG9yIHNldCBbYFNlbGY6OklkbGVNYXhTZXJ2aWNlV2VpZ2h0YF0gdG8gaGF2ZVQgaXQgcnVuIGluIGBvbl9pZGxlYC4AUElkbGVNYXhTZXJ2aWNlV2VpZ2h0/QUEABRdASBUaGUgbWF4aW11bSBhbW91bnQgb2Ygd2VpZ2h0IChpZiBhbnkpIHRvIGJlIHVzZWQgZnJvbSByZW1haW5pbmcgd2VpZ2h0IGBvbl9pZGxlYCB3aGljaEEBIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZSBmb3Igc2VydmljaW5nIGVucXVldWVkIGl0ZW1zIGBvbl9pZGxlYC49ASBVc2VmdWwgZm9yIHBhcmFjaGFpbnMgdG8gcHJvY2VzcyBtZXNzYWdlcyBhdCB0aGUgc2FtZSBibG9jayB0aGV5IGFyZSByZWNlaXZlZC4AKQEgSWYgYE5vbmVgLCBpdCB3aWxsIG5vdCBjYWxsIGBTZXJ2aWNlUXVldWVzOjpzZXJ2aWNlX3F1ZXVlc2AgaW4gYG9uX2lkbGVgLgABXQ4ABBBTaXplKARUIFBhZ2UvaGVhcCBzaXplIHR5cGUuAHIAADRXZWlnaHRSZWNsYWltAAAAAAAAAHMIgQEgUGFsbGV0IHRvIHVzZSBhbG9uZ3NpZGUgdGhlIHRyYW5zYWN0aW9uIGV4dGVuc2lvbiBbYFN0b3JhZ2VXZWlnaHRSZWNsYWltYF0sIHRoZSBwYWxsZXQgcHJvdmlkZXOMIHdlaWdodCBpbmZvcm1hdGlvbiBhbmQgYmVuY2htYXJrcy4AUE11bHRpQmxvY2tNaWdyYXRpb25zAVBNdWx0aUJsb2NrTWlncmF0aW9ucwgYQ3Vyc29yAAB9BgQADNggVGhlIGN1cnJlbnRseSBhY3RpdmUgbWlncmF0aW9uIHRvIHJ1biBhbmQgaXRzIGN1cnNvci4AvCBgTm9uZWAgaW5kaWNhdGVzIHRoYXQgbm8gbWlncmF0aW9uIGlzIHJ1bm5pbmcuACBIaXN0b3JpYwABBAV9A3AEABC0IFNldCBvZiBhbGwgc3VjY2Vzc2Z1bGx5IGV4ZWN1dGVkIG1pZ3JhdGlvbnMuAHEBIFRoaXMgaXMgdXNlZCBhcyBibGFja2xpc3QsIHRvIG5vdCByZS1leGVjdXRlIG1pZ3JhdGlvbnMgdGhhdCBoYXZlIG5vdCBiZWVuIHJlbW92ZWQgZnJvbSB0aGUxASBjb2RlYmFzZSB5ZXQuIEdvdmVybmFuY2UgY2FuIHJlZ3VsYXJseSBjbGVhciB0aGlzIG91dCB2aWEgYGNsZWFyX2hpc3RvcmljYC4AAXUGAAGhCAAIMEN1cnNvck1heExlbigQAAABABCkIFRoZSBtYXhpbWFsIGxlbmd0aCBvZiBhbiBlbmNvZGVkIGN1cnNvci4AZQEgQSBnb29kIGRlZmF1bHQgbmVlZHMgdG8gc2VsZWN0ZWQgc3VjaCB0aGF0IG5vIG1pZ3JhdGlvbiB3aWxsIGV2ZXIgaGF2ZSBhIGN1cnNvciB3aXRoIE1FTAkBIGFib3ZlIHRoaXMgbGltaXQuIFRoaXMgaXMgc3RhdGljYWxseSBjaGVja2VkIGluIGBpbnRlZ3JpdHlfdGVzdGAuAEBJZGVudGlmaWVyTWF4TGVuKBAAAQAAELQgVGhlIG1heGltYWwgbGVuZ3RoIG9mIGFuIGVuY29kZWQgaWRlbnRpZmllci4AVQEgQSBnb29kIGRlZmF1bHQgbmVlZHMgdG8gc2VsZWN0ZWQgc3VjaCB0aGF0IG5vIG1pZ3JhdGlvbiB3aWxsIGV2ZXIgaGF2ZSBhbiBpZGVudGlmaWVyLQEgd2l0aCBNRUwgYWJvdmUgdGhpcyBsaW1pdC4gVGhpcyBpcyBzdGF0aWNhbGx5IGNoZWNrZWQgaW4gYGludGVncml0eV90ZXN0YC4AAWEOAAAAdAAAHE9ybWxYY20AAZUGAAGlCAAAAWUOAAAAhwAAHFhUb2tlbnMAAZkGAAGpCAAMMFNlbGZMb2NhdGlvbpwUAQEAyR8EVCBTZWxmIGNoYWluIGxvY2F0aW9uLgA0QmFzZVhjbVdlaWdodOQUAoTXFwAQRCBCYXNlIFhDTSB3ZWlnaHQuAPggVGhlIGFjdHVhbGx5IHdlaWdodCBmb3IgYW4gWENNIG1lc3NhZ2UgaXMgYFQ6OkJhc2VYY21XZWlnaHQgK2wgVDo6V2VpZ2hlcjo6d2VpZ2h0KCZtc2cpYC4ANFJhdGVMaW1pdGVySWRwAARsIFRoZSBpZCBvZiB0aGUgUmF0ZUxpbWl0ZXIuAAFpDgAIHEJhbGFuY2VABEggVGhlIGJhbGFuY2UgdHlwZS4oQ3VycmVuY3lJZCgENCBDdXJyZW5jeSBJZC4AiQAANFVua25vd25Ub2tlbnMBNFVua25vd25Ub2tlbnMIYENvbmNyZXRlRnVuZ2libGVCYWxhbmNlcwEBCAICbQ5AQAAAAAAAAAAAAAAAAAAAAAAQBQEgQ29uY3JldGUgZnVuZ2libGUgYmFsYW5jZXMgdW5kZXIgYSBnaXZlbiBsb2NhdGlvbiBhbmQgYSBjb25jcmV0ZTQgZnVuZ2libGUgaWQuAIggZG91YmxlX21hcDogd2hvLCBhc3NldF9pZCA9PiB1MTI4AGBBYnN0cmFjdEZ1bmdpYmxlQmFsYW5jZXMBAQgCAnEOQEAAAAAAAAAAAAAAAAAAAAAAEAUBIEFic3RyYWN0IGZ1bmdpYmxlIGJhbGFuY2VzIHVuZGVyIGEgZ2l2ZW4gbG9jYXRpb24gYW5kIGEgYWJzdHJhY3Q0IGZ1bmdpYmxlIGlkLgCIIGRvdWJsZV9tYXA6IHdobywgYXNzZXRfaWQgPT4gdTEyOAAAAa0IAAABdQ4AAACLAAAoQXV0aG9yc2hpcAEoQXV0aG9yc2hpcAQYQXV0aG9yAAAABAAEZCBBdXRob3Igb2YgY3VycmVudCBibG9jay4AAAAAAAAAoQAARENvbGxhdG9yU2VsZWN0aW9uAURDb2xsYXRvclNlbGVjdGlvbhQ0SW52dWxuZXJhYmxlcwEAWQsEAAQRASBUaGUgaW52dWxuZXJhYmxlLCBwZXJtaXNzaW9uZWQgY29sbGF0b3JzLiBUaGlzIGxpc3QgbXVzdCBiZSBzb3J0ZWQuADRDYW5kaWRhdGVMaXN0AQB5DgQAFGkBIFRoZSAoY29tbXVuaXR5LCBsaW1pdGVkKSBjb2xsYXRpb24gY2FuZGlkYXRlcy4gYENhbmRpZGF0ZXNgIGFuZCBgSW52dWxuZXJhYmxlc2Agc2hvdWxkIGJlUCBtdXR1YWxseSBleGNsdXNpdmUuAHUBIFRoaXMgbGlzdCBpcyBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIGJ5IGRlcG9zaXQgYW5kIHdoZW4gdGhlIGRlcG9zaXRzIGFyZSBlcXVhbCwgdGhlIGxlYXN0oCByZWNlbnRseSB1cGRhdGVkIGlzIGNvbnNpZGVyZWQgZ3JlYXRlci4ARExhc3RBdXRob3JlZEJsb2NrAQEEBQAoEAAAAAAEhCBMYXN0IGJsb2NrIGF1dGhvcmVkIGJ5IGNvbGxhdG9yLgBERGVzaXJlZENhbmRpZGF0ZXMBACgQAAAAAAx4IERlc2lyZWQgbnVtYmVyIG9mIGNhbmRpZGF0ZXMuAHUBIFRoaXMgc2hvdWxkIGlkZWFsbHkgYWx3YXlzIGJlIGxlc3MgdGhhbiBbYENvbmZpZzo6TWF4Q2FuZGlkYXRlc2BdIGZvciB3ZWlnaHRzIHRvIGJlIGNvcnJlY3QuADRDYW5kaWRhY3lCb25kAQBAQAAAAAAAAAAAAAAAAAAAAAAMuCBGaXhlZCBhbW91bnQgdG8gZGVwb3NpdCB0byBiZWNvbWUgYSBjb2xsYXRvci4AQQEgV2hlbiBhIGNvbGxhdG9yIGNhbGxzIGBsZWF2ZV9pbnRlbnRgIHRoZXkgaW1tZWRpYXRlbHkgcmVjZWl2ZSB0aGUgZGVwb3NpdCBiYWNrLgABpQYAAbEIABgUUG90SWStCSBQb3RTdGFrZQT0IEFjY291bnQgSWRlbnRpZmllciBmcm9tIHdoaWNoIHRoZSBpbnRlcm5hbCBQb3QgaXMgZ2VuZXJhdGVkLgA0TWF4Q2FuZGlkYXRlcygQAAAAAAzIIE1heGltdW0gbnVtYmVyIG9mIGNhbmRpZGF0ZXMgdGhhdCB3ZSBzaG91bGQgaGF2ZS4AzCBUaGlzIGRvZXMgbm90IHRha2UgaW50byBhY2NvdW50IHRoZSBpbnZ1bG5lcmFibGVzLgBQTWluRWxpZ2libGVDb2xsYXRvcnMoEAQAAAAMVQEgTWluaW11bSBudW1iZXIgZWxpZ2libGUgY29sbGF0b3JzLiBTaG91bGQgYWx3YXlzIGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLiBUaGlzIGluY2x1ZGVzUQEgSW52dWxuZXJhYmxlIGNvbGxhdG9ycy4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlcmUgd2lsbCBhbHdheXMgYmUgb25lIGNvbGxhdG9yIHdobyBjYW5EIHByb2R1Y2UgYSBibG9jay4AQE1heEludnVsbmVyYWJsZXMoEDIAAAAEhCBNYXhpbXVtIG51bWJlciBvZiBpbnZ1bG5lcmFibGVzLgA0S2lja1RocmVzaG9sZCgQIBwAAAAALHBvdF9hY2NvdW50AIBtb2RsUG90U3Rha2UAAAAAAAAAAAAAAAAAAAAAAAAAAASgIEdldHMgdGhpcyBwYWxsZXQncyBkZXJpdmVkIHBvdCBhY2NvdW50LgABhQ4ABCxWYWxpZGF0b3JJZAAEdCBBIHN0YWJsZSBJRCBmb3IgYSB2YWxpZGF0b3IuAKMAABxTZXNzaW9uARxTZXNzaW9uHChWYWxpZGF0b3JzAQBIBAAEfCBUaGUgY3VycmVudCBzZXQgb2YgdmFsaWRhdG9ycy4AMEN1cnJlbnRJbmRleAEAKBAAAAAABHggQ3VycmVudCBpbmRleCBvZiB0aGUgc2Vzc2lvbi4ANFF1ZXVlZENoYW5nZWQBAEQEAAg5ASBUcnVlIGlmIHRoZSB1bmRlcmx5aW5nIGVjb25vbWljIGlkZW50aXRpZXMgb3Igd2VpZ2h0aW5nIGJlaGluZCB0aGUgdmFsaWRhdG9yc6QgaGFzIGNoYW5nZWQgaW4gdGhlIHF1ZXVlZCB2YWxpZGF0b3Igc2V0LgAoUXVldWVkS2V5cwEAiQ4EAAg9ASBUaGUgcXVldWVkIGtleXMgZm9yIHRoZSBuZXh0IHNlc3Npb24uIFdoZW4gdGhlIG5leHQgc2Vzc2lvbiBiZWdpbnMsIHRoZXNlIGtleXPgIHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHZhbGlkYXRvcidzIHNlc3Npb24ga2V5cy4ASERpc2FibGVkVmFsaWRhdG9ycwEAkQ4EABSAIEluZGljZXMgb2YgZGlzYWJsZWQgdmFsaWRhdG9ycy4APQEgVGhlIHZlYyBpcyBhbHdheXMga2VwdCBzb3J0ZWQgc28gdGhhdCB3ZSBjYW4gZmluZCB3aGV0aGVyIGEgZ2l2ZW4gdmFsaWRhdG9yIGlzPQEgZGlzYWJsZWQgdXNpbmcgYmluYXJ5IHNlYXJjaC4gSXQgZ2V0cyBjbGVhcmVkIHdoZW4gYG9uX3Nlc3Npb25fZW5kaW5nYCByZXR1cm5zZCBhIG5ldyBzZXQgb2YgaWRlbnRpdGllcy4AIE5leHRLZXlzAAEEBQCtBgQABJwgVGhlIG5leHQgc2Vzc2lvbiBrZXlzIGZvciBhIHZhbGlkYXRvci4AIEtleU93bmVyAAEEBZ0OAAQABAkBIFRoZSBvd25lciBvZiBhIGtleS4gVGhlIGtleSBpcyB0aGUgYEtleVR5cGVJZGAgKyB0aGUgZW5jb2RlZCBrZXkuAAGpBgABtQgAAAGlDgAILFZhbGlkYXRvcklkAAR0IEEgc3RhYmxlIElEIGZvciBhIHZhbGlkYXRvci4QS2V5c60GBCggVGhlIGtleXMuAKUAABBBdXJhARBBdXJhCCxBdXRob3JpdGllcwEAqQ4EAARsIFRoZSBjdXJyZW50IGF1dGhvcml0eSBzZXQuACxDdXJyZW50U2xvdAEAsQ4gAAAAAAAAAAAMgCBUaGUgY3VycmVudCBzbG90IG9mIHRoaXMgYmxvY2suAJQgVGhpcyB3aWxsIGJlIHNldCBpbiBgb25faW5pdGlhbGl6ZWAuAAAABDBTbG90RHVyYXRpb24YIHAXAAAAAAAAEA0BIFRoZSBzbG90IGR1cmF0aW9uIEF1cmEgc2hvdWxkIHJ1biB3aXRoLCBleHByZXNzZWQgaW4gbWlsbGlzZWNvbmRzLj0BIFRoZSBlZmZlY3RpdmUgdmFsdWUgb2YgdGhpcyB0eXBlIHNob3VsZCBub3QgY2hhbmdlIHdoaWxlIHRoZSBjaGFpbiBpcyBydW5uaW5nLgA1ASBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZWl0aGVyIHVzZSBbYE1pbmltdW1QZXJpb2RUaW1lc1R3b2BdIG9yIGEgY29uc3QuAAAELEF1dGhvcml0eUlksQYEmCBUaGUgaWRlbnRpZmllciB0eXBlIGZvciBhbiBhdXRob3JpdHkuAKcAABxBdXJhRXh0ARxBdXJhRXh0CCxBdXRob3JpdGllcwEAqQ4EABSUIFNlcnZlcyBhcyBjYWNoZSBmb3IgdGhlIGF1dGhvcml0aWVzLgBxASBUaGUgYXV0aG9yaXRpZXMgaW4gQXVSYSBhcmUgb3ZlcndyaXR0ZW4gaW4gYG9uX2luaXRpYWxpemVgIHdoZW4gd2Ugc3dpdGNoIHRvIGEgbmV3IHNlc3Npb24sXQEgYnV0IHdlIHJlcXVpcmUgdGhlIG9sZCBhdXRob3JpdGllcyB0byB2ZXJpZnkgdGhlIHNlYWwgd2hlbiB2YWxpZGF0aW5nIGEgUG9WLiBUaGlzIHdpbGwNASBhbHdheXMgYmUgdXBkYXRlZCB0byB0aGUgbGF0ZXN0IEF1UmEgYXV0aG9yaXRpZXMgaW4gYG9uX2ZpbmFsaXplYC4ANFJlbGF5U2xvdEluZm8AALUOBAAQCQEgQ3VycmVudCByZWxheSBjaGFpbiBzbG90IHBhaXJlZCB3aXRoIGEgbnVtYmVyIG9mIGF1dGhvcmVkIGJsb2Nrcy4AZQEgVGhpcyBpcyB1cGRhdGVkIGluIFtgRml4ZWRWZWxvY2l0eUNvbnNlbnN1c0hvb2s6Om9uX3N0YXRlX3Byb29mYF0gd2l0aCB0aGUgY3VycmVudCByZWxhedwgY2hhaW4gc2xvdCBhcyBwcm92aWRlZCBieSB0aGUgcmVsYXkgY2hhaW4gc3RhdGUgcHJvb2YuAAAAAAAAAKkAACRFbWFPcmFjbGUBJEVtYU9yYWNsZRQsQWNjdW11bGF0b3IBALkOBAAEcQEgQWNjdW11bGF0b3IgZm9yIG9yYWNsZSBkYXRhIGluIGN1cnJlbnQgYmxvY2sgdGhhdCB3aWxsIGJlIHJlY29yZGVkIGF0IHRoZSBlbmQgb2YgdGhlIGJsb2NrLgAcT3JhY2xlcwABDAUFBdUO2Q4EAAx1ASBPcmFjbGUgc3RvcmFnZSBrZXllZCBieSBkYXRhIHNvdXJjZSwgaW52b2x2ZWQgYXNzZXQgaWRzIGFuZCB0aGUgcGVyaW9kIGxlbmd0aCBvZiB0aGUgb3JhY2xlLgBlASBTdG9yZXMgdGhlIGRhdGEgZW50cnkgYXMgd2VsbCBhcyB0aGUgYmxvY2sgbnVtYmVyIHdoZW4gdGhlIG9yYWNsZSB3YXMgZmlyc3QgaW5pdGlhbGl6ZWQuAERXaGl0ZWxpc3RlZEFzc2V0cwEA3Q4EAATcIEFzc2V0cyB0aGF0IGFyZSB3aGl0ZWxpc3RlZCBhbmQgdHJhY2tlZCBieSB0aGUgcGFsbGV0LgA8RXh0ZXJuYWxTb3VyY2VzAAEEBSEBcAQABJAgUmVnaXN0ZXJlZCBleHRlcm5hbCBvcmFjbGUgc291cmNlcy4ASEF1dGhvcml6ZWRBY2NvdW50cwABDAUFBekOcAQAFPggQXV0aG9yaXplZCBhY2NvdW50cyBwZXIgKGV4dGVybmFsIG9yYWNsZSBzb3VyY2UsIGFzc2V0IHBhaXIpLgBNASBBdXRob3JpemF0aW9uIGlzIHNjb3BlZCBwZXItcGFpciBzbyB0aGF0IGEgY29tcHJvbWlzZWQgZXh0ZXJuYWwgb3JhY2xlIGFjY291bnQgY2FuSQEgb25seSB1cGRhdGUgdGhlIHNwZWNpZmljIHBhaXJzIGl0IHdhcyBhdXRob3JpemVkIGZvciwgbGltaXRpbmcgRERvUyBibGFzdCByYWRpdXMuxCBUaGUgYXNzZXQgcGFpciBpcyBzdG9yZWQgaW4gYG9yZGVyZWRfcGFpcmAgZm9ybS4AAbUGBAIC2QFVc2UgYHNldF9leHRlcm5hbF9vcmFjbGVgIGluc3RlYWQuIEtlcHQgb25seSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIGJpZnJvc3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlAAG5CAAEQE1heFVuaXF1ZUVudHJpZXMoECgAAAAE/CBNYXhpbXVtIG51bWJlciBvZiB1bmlxdWUgb3JhY2xlIGVudHJpZXMgZXhwZWN0ZWQgaW4gb25lIGJsb2NrLgAB7Q4AAADKAAAkQnJvYWRjYXN0ASRCcm9hZGNhc3QMNEluY3JlbWVudGFsSWQBACgQAAAAAAR4IE5leHQgYXZhaWxhYmxlIGluY3JlbWVudGFsIElEAEBFeGVjdXRpb25Db250ZXh0AQDxDgQABA0BIEV4ZWN1dGlvbiBjb250ZXh0IHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhlIHRyYWRlIGlzIG9yaWdpbmF0ZWQgZnJvbQAcU3dhcHBlcgAAAAQABKUBSWYgZmlsbGVkLCB3ZSBvdmVyd3JpdGUgdGhlIG9yaWdpbmFsIHN3YXBwZXIuIE1haW5seSB1c2VkIGluIHJvdXRlciB0byBub3QgdG8gdXNlIHRlbXBvcmFyeSB0cmFkZSBhY2NvdW50AAG5BgABzQgAAAH1DgAAAMwAADBGZWVQcm9jZXNzb3IBMEZlZVByb2Nlc3NvcgxIUGVuZGluZ0NvbnZlcnNpb25zAAEEAihwBAAEiCBBc3NldHMgcGVuZGluZyBjb252ZXJzaW9uIHRvIEhEWC4AcENvdW50ZXJGb3JQZW5kaW5nQ29udmVyc2lvbnMBACgQAAAAAASsQ291bnRlciBmb3IgdGhlIHJlbGF0ZWQgY291bnRlZCBzdG9yYWdlIG1hcAAgSGVsZEZlZXMBAQQCAEBAAAAAAAAAAAAAAAAAAAAAABApASBIRFggaGVsZCBpbiB0aGUgcG90IGZvciBhIGBob2xkX3VudGlsX2VkYCByZWNlaXZlciB3aG9zZSBhY2NvdW50IGlzIHN0aWxs7CBiZWxvdyB0aGUgZXhpc3RlbnRpYWwgZGVwb3NpdC4gVGhlIEhEWCBwaHlzaWNhbGx5IGxpdmVzIGluKQEgYHBvdF9hY2NvdW50X2lkKClgOyB0aGlzIG1hcCBvbmx5IGVhcm1hcmtzIGhvdyBtdWNoIG9mIGl0IGJlbG9uZ3MgdG8gZWFjaDkBIGRlc3RpbmF0aW9uLiBGbHVzaGVkIHRvIHRoZSBkZXN0aW5hdGlvbiBvbmNlIGBiYWxhbmNlICsgaGVsZCArIHNsaWNlIOKJpSBFRGAuAAG9BgAB9QgAECBQYWxsZXRJZK0JIGZlZXByb2MvBLAgUGFsbGV0IElEIGZvciB0aGUgZmVlIGFjY3VtdWxhdGlvbiBhY2NvdW50LgAoSGR4QXNzZXRJZCgQAAAAAAS0IEhEWCBhc3NldCBJRCAodGFyZ2V0IGFzc2V0IGZvciBjb252ZXJzaW9ucykuACxMcm5hQXNzZXRJZCgQAQAAAATUIExSTkEgYXNzZXQgSUQgKGh1YiBhc3NldCwgZmVlcyBpbiBMUk5BIGFyZSBza2lwcGVkKS4AWE1heENvbnZlcnNpb25zUGVyQmxvY2soEAUAAAAEmCBNYXhpbXVtIGNvbnZlcnNpb25zIHBlciBvbl9pZGxlIGNhbGwuAAH5DgAEHEFzc2V0SWQoBDwgQXNzZXQgSUQgdHlwZS4AzwAACAQFAAyVAQQALAAECAwQFBgcICQoLEhDaGVja05vblplcm9TZW5kZXLBBnBAQ2hlY2tTcGVjVmVyc2lvbsUGKDhDaGVja1R4VmVyc2lvbskGKDBDaGVja0dlbmVzaXPNBiw4Q2hlY2tNb3J0YWxpdHnRBiwoQ2hlY2tOb25jZdkGcCxDaGVja1dlaWdodN0GcGBDaGFyZ2VUcmFuc2FjdGlvblBheW1lbnThBnA0VmFsaWRhdGVDbGFpbeUGcERDaGVja01ldGFkYXRhSGFzaOkG8QZQU3RvcmFnZVdlaWdodFJlY2xhaW1wcGQQQ29yZQwcdmVyc2lvbgAdCQSQIFJldHVybnMgdGhlIHZlcnNpb24gb2YgdGhlIHJ1bnRpbWUuADRleGVjdXRlX2Jsb2NrBBRibG9jazEJcARkIEV4ZWN1dGUgdGhlIGdpdmVuIGJsb2NrLgBAaW5pdGlhbGl6ZV9ibG9jawQYaGVhZGVykQT9DgRBASBJbml0aWFsaXplIGEgYmxvY2sgd2l0aCB0aGUgZ2l2ZW4gaGVhZGVyIGFuZCByZXR1cm4gdGhlIHJ1bnRpbWUgZXhlY3V0aXZlIG1vZGUuAAQhASBUaGUgYENvcmVgIHJ1bnRpbWUgYXBpIHRoYXQgZXZlcnkgU3Vic3RyYXRlIHJ1bnRpbWUgbmVlZHMgdG8gaW1wbGVtZW50LhQAIE1ldGFkYXRhDCBtZXRhZGF0YQABDwSMIFJldHVybnMgdGhlIG1ldGFkYXRhIG9mIGEgcnVudGltZS4ATG1ldGFkYXRhX2F0X3ZlcnNpb24EHHZlcnNpb24oBQ8QpCBSZXR1cm5zIHRoZSBtZXRhZGF0YSBhdCBhIGdpdmVuIHZlcnNpb24uAAUBIElmIHRoZSBnaXZlbiBgdmVyc2lvbmAgaXNuJ3Qgc3VwcG9ydGVkLCB0aGlzIHdpbGwgcmV0dXJuIGBOb25lYC51ASBVc2UgW2BTZWxmOjptZXRhZGF0YV92ZXJzaW9uc2BdIHRvIGZpbmQgb3V0IGFib3V0IHN1cHBvcnRlZCBtZXRhZGF0YSB2ZXJzaW9uIG9mIHRoZSBydW50aW1lLgBEbWV0YWRhdGFfdmVyc2lvbnMAtQIMpCBSZXR1cm5zIHRoZSBzdXBwb3J0ZWQgbWV0YWRhdGEgdmVyc2lvbnMuAMAgVGhpcyBjYW4gYmUgdXNlZCB0byBjYWxsIGBtZXRhZGF0YV9hdF92ZXJzaW9uYC4ABAEBIFRoZSBgTWV0YWRhdGFgIGFwaSB0cmFpdCB0aGF0IHJldHVybnMgbWV0YWRhdGEgZm9yIHRoZSBydW50aW1lLggAMEJsb2NrQnVpbGRlchA8YXBwbHlfZXh0cmluc2ljBCRleHRyaW5zaWM1CQkPEGwgQXBwbHkgdGhlIGdpdmVuIGV4dHJpbnNpYy4AOQEgUmV0dXJucyBhbiBpbmNsdXNpb24gb3V0Y29tZSB3aGljaCBzcGVjaWZpZXMgaWYgdGhpcyBleHRyaW5zaWMgaXMgaW5jbHVkZWQgaW5MIHRoaXMgYmxvY2sgb3Igbm90LgA4ZmluYWxpemVfYmxvY2sAkQQEaCBGaW5pc2ggdGhlIGN1cnJlbnQgYmxvY2suAExpbmhlcmVudF9leHRyaW5zaWNzBCBpbmhlcmVudBkPRQkEPQEgR2VuZXJhdGUgaW5oZXJlbnQgZXh0cmluc2ljcy4gVGhlIGluaGVyZW50IGRhdGEgd2lsbCB2YXJ5IGZyb20gY2hhaW4gdG8gY2hhaW4uADxjaGVja19pbmhlcmVudHMIFGJsb2NrMQkQZGF0YRkPKQ8EVQEgQ2hlY2sgdGhhdCB0aGUgaW5oZXJlbnRzIGFyZSB2YWxpZC4gVGhlIGluaGVyZW50IGRhdGEgd2lsbCB2YXJ5IGZyb20gY2hhaW4gdG8gY2hhaW4uAARxASBUaGUgYEJsb2NrQnVpbGRlcmAgYXBpIHRyYWl0IHRoYXQgcHJvdmlkZXMgdGhlIHJlcXVpcmVkIGZ1bmN0aW9uYWxpdHkgZm9yIGJ1aWxkaW5nIGEgYmxvY2suGABYVGFnZ2VkVHJhbnNhY3Rpb25RdWV1ZQRQdmFsaWRhdGVfdHJhbnNhY3Rpb24MGHNvdXJjZS0PCHR4NQkoYmxvY2tfaGFzaCwxDyRoIFZhbGlkYXRlIHRoZSB0cmFuc2FjdGlvbi4AZQEgVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0aGUgdHJhbnNhY3Rpb24gcG9vbCB0byBsZWFybiBkZXRhaWxzIGFib3V0IGdpdmVuIHRyYW5zYWN0aW9uLkUBIFRoZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgbWFrZSBzdXJlIHRvIHZlcmlmeSB0aGUgY29ycmVjdG5lc3Mgb2YgdGhlIHRyYW5zYWN0aW9uTQEgYWdhaW5zdCBjdXJyZW50IHN0YXRlLiBUaGUgZ2l2ZW4gYGJsb2NrX2hhc2hgIGNvcnJlc3BvbmRzIHRvIHRoZSBoYXNoIG9mIHRoZSBibG9ja3wgdGhhdCBpcyB1c2VkIGFzIGN1cnJlbnQgc3RhdGUuAEUBIE5vdGUgdGhhdCB0aGlzIGNhbGwgbWF5IGJlIHBlcmZvcm1lZCBieSB0aGUgcG9vbCBtdWx0aXBsZSB0aW1lcyBhbmQgdHJhbnNhY3Rpb25zpCBtaWdodCBiZSB2ZXJpZmllZCBpbiBhbnkgcG9zc2libGUgb3JkZXIuAARNASBUaGUgYFRhZ2dlZFRyYW5zYWN0aW9uUXVldWVgIGFwaSB0cmFpdCBmb3IgaW50ZXJmZXJpbmcgd2l0aCB0aGUgdHJhbnNhY3Rpb24gcXVldWUuDABET2ZmY2hhaW5Xb3JrZXJBcGkEPG9mZmNoYWluX3dvcmtlcgQYaGVhZGVykQRwBMggU3RhcnRzIHRoZSBvZmYtY2hhaW4gdGFzayBmb3IgZ2l2ZW4gYmxvY2sgaGVhZGVyLgAEZCBUaGUgb2ZmY2hhaW4gd29ya2VyIGFwaS4IACxTZXNzaW9uS2V5cwhUZ2VuZXJhdGVfc2Vzc2lvbl9rZXlzBBBzZWVkkQYUHBUBIEdlbmVyYXRlIGEgc2V0IG9mIHNlc3Npb24ga2V5cyB3aXRoIG9wdGlvbmFsbHkgdXNpbmcgdGhlIGdpdmVuIHNlZWQuCQEgVGhlIGtleXMgc2hvdWxkIGJlIHN0b3JlZCB3aXRoaW4gdGhlIGtleXN0b3JlIGV4cG9zZWQgdmlhIHJ1bnRpbWU8IGV4dGVybmFsaXRpZXMuALAgVGhlIHNlZWQgbmVlZHMgdG8gYmUgYSB2YWxpZCBgdXRmOGAgc3RyaW5nLgDQIFJldHVybnMgdGhlIGNvbmNhdGVuYXRlZCBTQ0FMRSBlbmNvZGVkIHB1YmxpYyBrZXlzLgBMZGVjb2RlX3Nlc3Npb25fa2V5cwQcZW5jb2RlZBQ5DwyYIERlY29kZSB0aGUgZ2l2ZW4gcHVibGljIHNlc3Npb24ga2V5cy4A3CBSZXR1cm5zIHRoZSBsaXN0IG9mIHB1YmxpYyByYXcgcHVibGljIGtleXMgKyBrZXkgdHlwZS4ABGggU2Vzc2lvbiBrZXlzIHJ1bnRpbWUgYXBpLgQAHEF1cmFBcGkINHNsb3RfZHVyYXRpb24ARQ8MkCBSZXR1cm5zIHRoZSBzbG90IGR1cmF0aW9uIGZvciBBdXJhLgAlASBDdXJyZW50bHksIG9ubHkgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoaXMgdHlwZSBhdCBnZW5lc2lzIHdpbGwgYmUgdXNlZC4ALGF1dGhvcml0aWVzAK0OBJwgUmV0dXJuIHRoZSBjdXJyZW50IHNldCBvZiBhdXRob3JpdGllcy4ABLggQVBJIG5lY2Vzc2FyeSBmb3IgYmxvY2sgYXV0aG9yc2hpcCB3aXRoIGF1cmEuBABQQ29sbGVjdENvbGxhdGlvbkluZm8EWGNvbGxlY3RfY29sbGF0aW9uX2luZm8EGGhlYWRlcpEESQ8QnCBDb2xsZWN0IGluZm9ybWF0aW9uIGFib3V0IGEgY29sbGF0aW9uLgD0IFRoZSBnaXZlbiBgaGVhZGVyYCBpcyB0aGUgaGVhZGVyIG9mIHRoZSBidWlsdCBibG9jayBmb3IgdGhhdKggd2UgYXJlIGNvbGxlY3RpbmcgdGhlIGNvbGxhdGlvbiBpbmZvIGZvci4AFNggUnVudGltZSBhcGkgdG8gY29sbGVjdCBpbmZvcm1hdGlvbiBhYm91dCBhIGNvbGxhdGlvbi4ARCBWZXJzaW9uIGhpc3Rvcnk6AQEgLSBWZXJzaW9uIDI6IENoYW5nZWQgW2BTZWxmOjpjb2xsZWN0X2NvbGxhdGlvbl9pbmZvYF0gc2lnbmF0dXJlNQEgLSBWZXJzaW9uIDM6IFNpZ25hbHMgdG8gdGhlIG5vZGUgdG8gdXNlIHZlcnNpb24gMSBvZiBbYFBhcmFjaGFpbkJsb2NrRGF0YWBdLgwASEdldENvcmVTZWxlY3RvckFwaQQ0Y29yZV9zZWxlY3RvcgBVDwQJASBSZXRyaWV2ZSBjb3JlIHNlbGVjdG9yIGFuZCBjbGFpbSBxdWV1ZSBvZmZzZXQgZm9yIHRoZSBuZXh0IGJsb2NrLgAEMQEgUnVudGltZSBhcGkgdXNlZCB0byBzZWxlY3QgdGhlIGNvcmUgZm9yIHdoaWNoIHRoZSBuZXh0IGJsb2NrIHdpbGwgYmUgYnVpbHQuBAA0Q3VycmVuY2llc0FwaRAcYWNjb3VudAggYXNzZXRfaWQoDHdobwBhDwAAIGFjY291bnRzBAx3aG8AZQ8AADBmcmVlX2JhbGFuY2UIIGFzc2V0X2lkKAx3aG8AQAAAPG1pbmltdW1fYmFsYW5jZQQgYXNzZXRfaWQoQAAAAAQAPEFjY291bnROb25jZUFwaQQ0YWNjb3VudF9ub25jZQQcYWNjb3VudAAoBMAgR2V0IGN1cnJlbnQgYWNjb3VudCBub25jZSBvZiBnaXZlbiBgQWNjb3VudElkYC4ABIAgVGhlIEFQSSB0byBxdWVyeSBhY2NvdW50IG5vbmNlLgQAVFRyYW5zYWN0aW9uUGF5bWVudEFwaRAocXVlcnlfaW5mbwgMdXh0NQkMbGVuKG0PAABEcXVlcnlfZmVlX2RldGFpbHMIDHV4dDUJDGxlbihxDwAATHF1ZXJ5X3dlaWdodF90b19mZWUEGHdlaWdodORAAABMcXVlcnlfbGVuZ3RoX3RvX2ZlZQQYbGVuZ3RoKEAAAAAQAFRFdGhlcmV1bVJ1bnRpbWVSUENBcGlEIGNoYWluX2lkABgEtCBSZXR1cm5zIHJ1bnRpbWUgZGVmaW5lZCBwYWxsZXRfZXZtOjpDaGFpbklkLgA0YWNjb3VudF9iYXNpYwQcYWRkcmVzc1h9DwSkIFJldHVybnMgcGFsbGV0X2V2bTo6QWNjb3VudHMgYnkgYWRkcmVzcy4AJGdhc19wcmljZQBgBJQgUmV0dXJucyBGaXhlZEdhc1ByaWNlOjptaW5fZ2FzX3ByaWNlADxhY2NvdW50X2NvZGVfYXQEHGFkZHJlc3NYFAT8IEZvciBhIGdpdmVuIGFjY291bnQgYWRkcmVzcywgcmV0dXJucyBwYWxsZXRfZXZtOjpBY2NvdW50Q29kZXMuABhhdXRob3IAWATwIFJldHVybnMgdGhlIGNvbnZlcnRlZCBGaW5kQXV0aG9yOjpmaW5kX2F1dGhvciBhdXRob3JpdHkgaWQuAChzdG9yYWdlX2F0CBxhZGRyZXNzWBRpbmRleGAsBDEBIEZvciBhIGdpdmVuIGFjY291bnQgYWRkcmVzcyBhbmQgaW5kZXgsIHJldHVybnMgcGFsbGV0X2V2bTo6QWNjb3VudFN0b3JhZ2VzLgAQY2FsbCwQZnJvbVgIdG9YEGRhdGEUFHZhbHVlYCRnYXNfbGltaXRgPG1heF9mZWVfcGVyX2dhc+UDYG1heF9wcmlvcml0eV9mZWVfcGVyX2dhc+UDFG5vbmNl5QMgZXN0aW1hdGVELGFjY2Vzc19saXN0gQ9IYXV0aG9yaXphdGlvbl9saXN0hQ+JDwAAGGNyZWF0ZSgQZnJvbVgQZGF0YRQUdmFsdWVgJGdhc19saW1pdGA8bWF4X2ZlZV9wZXJfZ2Fz5QNgbWF4X3ByaW9yaXR5X2ZlZV9wZXJfZ2Fz5QMUbm9uY2XlAyBlc3RpbWF0ZUQsYWNjZXNzX2xpc3SBD0hhdXRob3JpemF0aW9uX2xpc3SFD50PAAA0Y3VycmVudF9ibG9jawClDwRoIFJldHVybiB0aGUgY3VycmVudCBibG9jay4AQGN1cnJlbnRfcmVjZWlwdHMAqQ8EcCBSZXR1cm4gdGhlIGN1cnJlbnQgcmVjZWlwdC4AcGN1cnJlbnRfdHJhbnNhY3Rpb25fc3RhdHVzZXMArQ8EnCBSZXR1cm4gdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gc3RhdHVzLgAsY3VycmVudF9hbGwAsQ8AAEBleHRyaW5zaWNfZmlsdGVyBAx4dHNFCd0MBDUBIFJlY2VpdmVzIGEgYFZlYzxPcGFxdWVFeHRyaW5zaWM+YCBhbmQgZmlsdGVycyBhbGwgdGhlIGV0aGVyZXVtIHRyYW5zYWN0aW9ucy4AKGVsYXN0aWNpdHkAYQMEiCBSZXR1cm4gdGhlIGVsYXN0aWNpdHkgbXVsdGlwbGllci4AcGdhc19saW1pdF9tdWx0aXBsaWVyX3N1cHBvcnQAcAh1ASBVc2VkIHRvIGRldGVybWluZSBpZiBnYXMgbGltaXQgbXVsdGlwbGllciBmb3Igbm9uLXRyYW5zYWN0aW9uYWwgY2FsbHMgKGV0aF9jYWxsL2VzdGltYXRlR2FzKTggaXMgc3VwcG9ydGVkLgA0cGVuZGluZ19ibG9jawQMeHRzRQm1DwRoIFJldHVybiB0aGUgcGVuZGluZyBibG9jay4AYGluaXRpYWxpemVfcGVuZGluZ19ibG9jawQYaGVhZGVykQRwFHggSW5pdGlhbGl6ZSB0aGUgcGVuZGluZyBibG9jay41ASBUaGUgYmVoYXZpb3Igc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBydW50aW1lIGFwaSBDb3JlX2luaXRpYWxpemVfYmxvY2sgYnV0XCBmb3IgYSAicGVuZGluZyIgYmxvY2suYQEgSWYgeW91ciBwcm9qZWN0IGRvbid0IG5lZWQgdG8gaGF2ZSBhIGRpZmZlcmVudCBiZWhhdmlvciB0byBpbml0aWFsaXplICJwZW5kaW5nIiBibG9ja3Ms4CB5b3UgY2FuIGNvcHkgeW91ciBDb3JlX2luaXRpYWxpemVfYmxvY2sgaW1wbGVtZW50YXRpb24uAATAIEFQSSBuZWNlc3NhcnkgZm9yIEV0aGVyZXVtLWNvbXBhdGliaWxpdHkgbGF5ZXIuGABwQ29udmVydFRyYW5zYWN0aW9uUnVudGltZUFwaQRMY29udmVydF90cmFuc2FjdGlvbgQsdHJhbnNhY3Rpb24BBDUJAAAACAA4RXZtQWNjb3VudHNBcGkMLGV2bV9hZGRyZXNzBChhY2NvdW50X2lkAFgEwCBnZXQgdGhlIEVWTSBhZGRyZXNzIGZyb20gdGhlIHN1YnN0cmF0ZSBhZGRyZXNzLgBAYm91bmRfYWNjb3VudF9pZAQsZXZtX2FkZHJlc3NYzQEEVQEgUmV0dXJuIHRoZSBTdWJzdHJhdGUgYWRkcmVzcyBib3VuZCB0byB0aGUgRVZNIGFjY291bnQuIElmIG5vdCBib3VuZCwgcmV0dXJucyBgTm9uZWAuAChhY2NvdW50X2lkBCxldm1fYWRkcmVzc1gACMAgR2V0IHRoZSBTdWJzdHJhdGUgYWRkcmVzcyBmcm9tIHRoZSBFVk0gYWRkcmVzcy4lASBSZXR1cm5zIHRoZSB0cnVuY2F0ZWQgdmVyc2lvbiBvZiB0aGUgYWRkcmVzcyBpZiB0aGUgYWRkcmVzcyB3YXNuJ3QgYmluZC4ABKggVGhlIEFQSSB0byBxdWVyeSBFVk0gYWNjb3VudCBjb252ZXJzaW9ucy4EACREdXN0ZXJBcGkEOGlzX3doaXRlbGlzdGVkBBxhY2NvdW50AEQI9CBDaGVjayBpZiBhbiBhY2NvdW50IGlzIHdoaXRlbGlzdGVkIChwcm90ZWN0ZWQgZnJvbSBkdXN0aW5nKS70IFJldHVybnMgdHJ1ZSBpZiB0aGUgYWNjb3VudCBpcyB3aGl0ZWxpc3RlZCwgZmFsc2Ugb3RoZXJ3aXNlLgAEjCBSdW50aW1lIEFQSSBmb3IgdGhlIGR1c3RlciBwYWxsZXQuBAA8RXJjMjBNYXBwaW5nQXBpCDRhc3NldF9hZGRyZXNzBCBhc3NldF9pZChYBIggR2V0IHRoZSBFVk0gYWRkcmVzcyBvZiB0aGUgYXNzZXQuAEBhZGRyZXNzX3RvX2Fzc2V0BBxhZGRyZXNzWHQENQEgR2V0IHRoZSBhc3NldCBpZCBjb3JyZXNwb25kaW5nIHRvIEVWTSBhZGRyZXNzLiBJZiBub3QgZm91bmQsIHJldHVybnMgYE5vbmVgLgAE2CBUaGUgQVBJIHRvIHF1ZXJ5IEFzc2V0SWQgPC0+IEVWTSBhZGRyZXNzIGNvbnZlcnNpb25zLgQANFhjbVBheW1lbnRBcGkQfHF1ZXJ5X2FjY2VwdGFibGVfcGF5bWVudF9hc3NldHMELHhjbV92ZXJzaW9uKLkPFLQgUmV0dXJucyBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBwYXltZW50IGFzc2V0cy4AMCAjIEFyZ3VtZW50cwBoICogYHhjbV92ZXJzaW9uYDogVmVyc2lvbi4AQHF1ZXJ5X3hjbV93ZWlnaHQEHG1lc3NhZ2X5BMUPFKggUmV0dXJucyBhIHdlaWdodCBuZWVkZWQgdG8gZXhlY3V0ZSBhIFhDTS4AMCAjIEFyZ3VtZW50cwB0ICogYG1lc3NhZ2VgOiBgVmVyc2lvbmVkWGNtYC4AZHF1ZXJ5X3dlaWdodF90b19hc3NldF9mZWUIGHdlaWdodOQUYXNzZXRlBskPGOggQ29udmVydHMgYSB3ZWlnaHQgaW50byBhIGZlZSBmb3IgdGhlIHNwZWNpZmllZCBgQXNzZXRJZGAuADAgIyBBcmd1bWVudHMAiCAqIGB3ZWlnaHRgOiBjb252ZXJ0aWJsZSBgV2VpZ2h0YC58ICogYGFzc2V0YDogYFZlcnNpb25lZEFzc2V0SWRgLgBMcXVlcnlfZGVsaXZlcnlfZmVlcwgsZGVzdGluYXRpb26tBBxtZXNzYWdl+QTNDyAdASBHZXQgZGVsaXZlcnkgZmVlcyBmb3Igc2VuZGluZyBhIHNwZWNpZmljIGBtZXNzYWdlYCB0byBhIGBkZXN0aW5hdGlvbmAu9CBUaGVzZSBhbHdheXMgY29tZSBpbiBhIHNwZWNpZmljIGFzc2V0LCBkZWZpbmVkIGJ5IHRoZSBjaGFpbi4AMCAjIEFyZ3VtZW50c4EBICogYG1lc3NhZ2VgOiBUaGUgbWVzc2FnZSB0aGF0J2xsIGJlIHNlbnQsIG5lY2Vzc2FyeSBiZWNhdXNlIG1vc3QgZGVsaXZlcnkgZmVlcyBhcmUgYmFzZWQgb24gdGhlXCAgIHNpemUgb2YgdGhlIG1lc3NhZ2UuYQEgKiBgZGVzdGluYXRpb25gOiBUaGUgZGVzdGluYXRpb24gdG8gc2VuZCB0aGUgbWVzc2FnZSB0by4gRGlmZmVyZW50IGRlc3RpbmF0aW9ucyBtYXkgdXNlwCAgIGRpZmZlcmVudCBzZW5kZXJzIHRoYXQgY2hhcmdlIGRpZmZlcmVudCBmZWVzLgAscCBBIHRyYWl0IG9mIFhDTSBwYXltZW50IEFQSS4AqCBBUEkgcHJvdmlkZXMgZnVuY3Rpb25hbGl0eSBmb3Igb2J0YWluaW5nOgDEICogdGhlIHdlaWdodCByZXF1aXJlZCB0byBleGVjdXRlIGFuIFhDTSBtZXNzYWdlLAUBICogYSBsaXN0IG9mIGFjY2VwdGFibGUgYEFzc2V0SWRgcyBmb3IgbWVzc2FnZSBleGVjdXRpb24gcGF5bWVudCwBASAqIHRoZSBjb3N0IG9mIHRoZSB3ZWlnaHQgaW4gdGhlIHNwZWNpZmllZCBhY2NlcHRhYmxlIGBBc3NldElkYC6gICogdGhlIGZlZXMgZm9yIGFuIFhDTSBtZXNzYWdlIGRlbGl2ZXJ5LgDwIFRvIGRldGVybWluZSB0aGUgZXhlY3V0aW9uIHdlaWdodCBvZiB0aGUgY2FsbHMgcmVxdWlyZWQgZm9ydQEgW2B4Y206OmxhdGVzdDo6SW5zdHJ1Y3Rpb246OlRyYW5zYWN0YF0gaW5zdHJ1Y3Rpb24sIGBUcmFuc2FjdGlvblBheW1lbnRDYWxsQXBpYCBjYW4gYmUgdXNlZC4EAGBBdXJhVW5pbmNsdWRlZFNlZ21lbnRBcGkEOGNhbl9idWlsZF91cG9uCDRpbmNsdWRlZF9oYXNoLBBzbG90sQ5EKDkBIFdoZXRoZXIgaXQgaXMgbGVnYWwgdG8gZXh0ZW5kIHRoZSBjaGFpbiwgYXNzdW1pbmcgdGhlIGdpdmVuIGJsb2NrIGlzIHRoZSBtb3N0NQEgcmVjZW50bHkgaW5jbHVkZWQgb25lIGFzLW9mIHRoZSByZWxheSBwYXJlbnQgdGhhdCB3aWxsIGJlIGJ1aWx0IGFnYWluc3QsIGFuZHAgdGhlIGdpdmVuIHJlbGF5IGNoYWluIHNsb3QuAFEBIFRoaXMgc2hvdWxkIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgbG9naWMgdGhlIHJ1bnRpbWUgdXNlcyB3aGVuIHZhbGlkYXRpbmcgYmxvY2tzIHRvOCBhdm9pZCBpc3N1ZXMuAGEBIFdoZW4gdGhlIHVuaW5jbHVkZWQgc2VnbWVudCBpcyBlbXB0eSwgaS5lLiBgaW5jbHVkZWRfaGFzaCA9PSBhdGAsIHdoZXJlIGF0IGlzIHRoZSBibG9ja2EBIHdob3NlIHN0YXRlIHdlIGFyZSBxdWVyeWluZyBhZ2FpbnN0LCB0aGlzIG11c3QgYWx3YXlzIHJldHVybiBgdHJ1ZWAgYXMgbG9uZyBhcyB0aGUgc2xvdLwgaXMgbW9yZSByZWNlbnQgdGhhbiB0aGUgaW5jbHVkZWQgYmxvY2sgaXRzZWxmLgA0NQEgVGhpcyBydW50aW1lIEFQSSBpcyB1c2VkIHRvIGluZm9ybSBwb3RlbnRpYWwgYmxvY2sgYXV0aG9ycyB3aGV0aGVyIHRoZXkgd2lsbCUBIGhhdmUgdGhlIHJpZ2h0IHRvIGF1dGhvciBhdCBhIHNsb3QsIGFzc3VtaW5nIHRoZXkgaGF2ZSBjbGFpbWVkIHRoZSBzbG90LgB1ASBJbiBwYXJ0aWN1bGFyLCB0aGlzIEFQSSBhbGxvd3MgQXVyYS1iYXNlZCBwYXJhY2hhaW5zIHRvIHJlZ3VsYXRlIHRoZWlyICJ1bmluY2x1ZGVkIHNlZ21lbnQiLG0BIHdoaWNoIGlzIHRoZSBzZWN0aW9uIG9mIHRoZSBoZWFkIG9mIHRoZSBjaGFpbiB3aGljaCBoYXMgbm90IHlldCBiZWVuIG1hZGUgYXZhaWxhYmxlIGluIHRoZTQgcmVsYXkgY2hhaW4uAGEBIFdoZW4gdGhlIHVuaW5jbHVkZWQgc2VnbWVudCBpcyBzaG9ydCwgQXVyYSBjaGFpbnMgd2lsbCBhbGxvdyBhdXRob3JzIHRvIGNyZWF0ZSBtdWx0aXBsZV0BIGJsb2NrcyBwZXIgc2xvdCBpbiBvcmRlciB0byBidWlsZCBhIGJhY2tsb2cuIFdoZW4gaXQgaXMgc2F0dXJhdGVkLCB0aGlzIEFQSSB3aWxsIGxpbWl0qCB0aGUgYW1vdW50IG9mIGJsb2NrcyB0aGF0IGNhbiBiZSBjcmVhdGVkLgAkIENoYW5nZXM6kQEgLSBWZXJzaW9uIDI6IFVwZGF0ZSB0byBgY2FuX2J1aWxkX3Vwb25gIHRvIHRha2UgYSByZWxheSBjaGFpbiBgU2xvdGAgaW5zdGVhZCBvZiBhIHBhcmFjaGFpbiBgU2xvdGAuCABQUmVsYXlQYXJlbnRPZmZzZXRBcGkETHJlbGF5X3BhcmVudF9vZmZzZXQAKAT0IEZldGNoIHRoZSBzbG90IG9mZnNldCB0aGF0IGlzIGV4cGVjdGVkIGZyb20gdGhlIHJlbGF5IGNoYWluLgAQBQEgQVBJIHRvIHRlbGwgdGhlIG5vZGUgc2lkZSBob3cgdGhlIHJlbGF5IHBhcmVudCBzaG91bGQgYmUgY2hvc2VuLgBpASBBIGxhcmdlciBvZmZzZXQgaW5kaWNhdGVzIHRoYXQgdGhlIHJlbGF5IHBhcmVudCBzaG91bGQgbm90IGJlIHRoZSB0aXAgb2YgdGhlIHJlbGF5IGNoYWluLDEBIGJ1dCBgTmAgYmxvY2tzIGJlaGluZCB0aGUgdGlwLiBUaGlzIG9mZnNldCBpcyB0aGVuIGVuZm9yY2VkIGJ5IHRoZSBydW50aW1lLgQAJERyeVJ1bkFwaQgwZHJ5X3J1bl9jYWxsDBhvcmlnaW6EEGNhbGwMTHJlc3VsdF94Y21zX3ZlcnNpb24o0Q8ERCBEcnkgcnVuIGNhbGwgVjIuACxkcnlfcnVuX3hjbQg8b3JpZ2luX2xvY2F0aW9urQQMeGNtNQbxDwRQIERyeSBydW4gWENNIHByb2dyYW0AJLEBIEFQSSBmb3IgZHJ5LXJ1bm5pbmcgZXh0cmluc2ljcyBhbmQgWENNIHByb2dyYW1zIHRvIGdldCB0aGUgcHJvZ3JhbXMgdGhhdCBuZWVkIHRvIGJlIHBhc3NlZCB0byB0aGUgZmVlcyBBUEkuAIEBIEFsbCBjYWxscyByZXR1cm4gYSB2ZWN0b3Igb2YgdHVwbGVzIChsb2NhdGlvbiwgeGNtKSB3aGVyZSBlYWNoICJ4Y20iIGlzIGV4ZWN1dGVkIGluICJsb2NhdGlvbiIu5CBJZiB0aGVyZSdzIGxvY2FsIGV4ZWN1dGlvbiwgdGhlIGxvY2F0aW9uIHdpbGwgYmUgIkhlcmUiLh0BIFRoaXMgdmVjdG9yIGNhbiBiZSB1c2VkIHRvIGNhbGN1bGF0ZSBib3RoIGV4ZWN1dGlvbiBhbmQgZGVsaXZlcnkgZmVlcy4AmQEgQ2FsbHMgb3IgWENNcyBtaWdodCBmYWlsIHdoZW4gZXhlY3V0ZWQsIHRoaXMgZG9lc24ndCBtZWFuIHRoZSByZXN1bHQgb2YgdGhlc2UgY2FsbHMgd2lsbCBiZSBhbiBgRXJyYC5lASBJbiB0aG9zZSBjYXNlcywgdGhlcmUgbWlnaHQgc3RpbGwgYmUgYSB2YWxpZCByZXN1bHQsIHdpdGggdGhlIGV4ZWN1dGlvbiBlcnJvciBpbnNpZGUgaXQuZQEgVGhlIG9ubHkgcmVhc29ucyB3aHkgdGhlc2UgY2FsbHMgbWlnaHQgcmV0dXJuIGFuIGVycm9yIGFyZSBsaXN0ZWQgaW4gdGhlIFtgRXJyb3JgXSBlbnVtLggAUExvY2F0aW9uVG9BY2NvdW50QXBpBEBjb252ZXJ0X2xvY2F0aW9uBCBsb2NhdGlvbq0E+Q8EkCBDb252ZXJ0cyBgTG9jYXRpb25gIHRvIGBBY2NvdW50SWRgLgAEDQEgQVBJIGZvciB1c2VmdWwgY29udmVyc2lvbnMgYmV0d2VlbiBYQ00gYExvY2F0aW9uYCBhbmQgYEFjY291bnRJZGAuBABMQ2hhaW5saW5rQWRhcHRlckFwaQhUZW5jb2RlX29yYWNsZV9hZGRyZXNzEChhc3NldF9pZF9hKChhc3NldF9pZF9iKBhwZXJpb2QhAxhzb3VyY2UhAVgAAFRkZWNvZGVfb3JhY2xlX2FkZHJlc3MEOG9yYWNsZV9hZGRyZXNzWAEQAAAEqCBUaGUgQVBJIHRvIHF1ZXJ5IEVWTSBhY2NvdW50IGNvbnZlcnNpb25zLgQAREFhdmVUcmFkZUV4ZWN1dG9yEBRwYWlycwCtAgAAPGxpcXVpZGl0eV9kZXB0aAggYXNzZXRfaW4oJGFzc2V0X291dCj1AQAAEHBvb2wIHHJlc2VydmUoGGF0b2tlbigJEAAAFHBvb2xzAA0QAAAABAA4R2VuZXNpc0J1aWxkZXIMLGJ1aWxkX3N0YXRlBBBqc29uFBEQKGUBIEJ1aWxkIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZnJvbSBhIEpTT04gYmxvYiBub3QgdXNpbmcgYW55IGRlZmF1bHRzIGFuZCBzdG9yZSBpdCBpbiB0aGUkIHN0b3JhZ2UuACkBIEluIHRoZSBjYXNlIG9mIGEgRlJBTUUtYmFzZWQgcnVudGltZSwgdGhpcyBmdW5jdGlvbiBkZXNlcmlhbGl6ZXMgdGhlIGZ1bGxVASBgUnVudGltZUdlbmVzaXNDb25maWdgIGZyb20gdGhlIGdpdmVuIEpTT04gYmxvYiBhbmQgcHV0cyBpdCBpbnRvIHRoZSBzdG9yYWdlLiBJZiB0aGVVASBwcm92aWRlZCBKU09OIGJsb2IgaXMgaW5jb3JyZWN0IG9yIGluY29tcGxldGUgb3IgdGhlIGRlc2VyaWFsaXphdGlvbiBmYWlscywgYW4gZXJyb3I0IGlzIHJldHVybmVkLgBdASBQbGVhc2Ugbm90ZSB0aGF0IHByb3ZpZGVkIEpTT04gYmxvYiBtdXN0IGNvbnRhaW4gYWxsIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZmllbGRzLCBub1wgZGVmYXVsdHMgd2lsbCBiZSB1c2VkLgAoZ2V0X3ByZXNldAQIaWQVEJEGOGEBIFJldHVybnMgYSBKU09OIGJsb2IgcmVwcmVzZW50YXRpb24gb2YgdGhlIGJ1aWx0LWluIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgaWRlbnRpZmllZCBieRggYGlkYC4AVQEgSWYgYGlkYCBpcyBgTm9uZWAgdGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gSlNPTiBibG9iIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZWZhdWx0SQEgYFJ1bnRpbWVHZW5lc2lzQ29uZmlnYCBzdHJ1Y3Qgb2YgdGhlIHJ1bnRpbWUuIEltcGxlbWVudGF0aW9uIG11c3QgcHJvdmlkZSBkZWZhdWx0YCBgUnVudGltZUdlbmVzaXNDb25maWdgLgAhASBPdGhlcndpc2UgZnVuY3Rpb24gcmV0dXJucyBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGJ1aWx0LWluLCBuYW1lZFEBIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgcHJlc2V0IGlkZW50aWZpZWQgYnkgYGlkYCwgb3IgYE5vbmVgIGlmIHN1Y2ggcHJlc2V0IGRvZXMgbm90YQEgZXhpc3QuIFJldHVybmVkIGBWZWM8dTg+YCBjb250YWlucyBieXRlcyBvZiBKU09OIGJsb2IgKHBhdGNoKSB3aGljaCBjb21wcmlzZXMgYSBsaXN0IG9mTQEgKHBvdGVudGlhbGx5IG5lc3RlZCkga2V5LXZhbHVlIHBhaXJzIHRoYXQgYXJlIGludGVuZGVkIGZvciBjdXN0b21pemluZyB0aGUgZGVmYXVsdGUBIHJ1bnRpbWUgZ2VuZXNpcyBjb25maWcuIFRoZSBwYXRjaCBzaGFsbCBiZSBtZXJnZWQgKHJmYzczODYpIHdpdGggdGhlIEpTT04gcmVwcmVzZW50YXRpb25hASBvZiB0aGUgZGVmYXVsdCBgUnVudGltZUdlbmVzaXNDb25maWdgIHRvIGNyZWF0ZSBhIGNvbXByZWhlbnNpdmUgZ2VuZXNpcyBjb25maWcgdGhhdCBjYW6EIGJlIHVzZWQgaW4gYGJ1aWxkX3N0YXRlYCBtZXRob2QuADBwcmVzZXRfbmFtZXMAGRAQUQEgUmV0dXJucyBhIGxpc3Qgb2YgaWRlbnRpZmllcnMgZm9yIGF2YWlsYWJsZSBidWlsdGluIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgcHJlc2V0cy4AYQEgVGhlIHByZXNldHMgZnJvbSB0aGUgbGlzdCBjYW4gYmUgcXVlcmllZCB3aXRoIFtgR2VuZXNpc0J1aWxkZXI6OmdldF9wcmVzZXRgXSBtZXRob2QuIElmAQEgbm8gbmFtZWQgcHJlc2V0cyBhcmUgcHJvdmlkZWQgYnkgdGhlIHJ1bnRpbWUgdGhlIGxpc3QgaXMgZW1wdHkuAATwIEFQSSB0byBpbnRlcmFjdCB3aXRoIGBSdW50aW1lR2VuZXNpc0NvbmZpZ2AgZm9yIHRoZSBydW50aW1lBAAMDQcdEAA=";
2
+
3
+ export { binMeta as default };